@remotion/studio 4.0.295 → 4.0.297

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.
@@ -1,6 +1,6 @@
1
1
 
2
2
  
3
- > @remotion/studio@4.0.295 make /Users/jonathanburger/remotion/packages/studio
3
+ > @remotion/studio@4.0.297 make /Users/jonathanburger/remotion/packages/studio
4
4
  > tsc -d && bun --env-file=../.env.bundle bundle.ts
5
5
 
6
- [63.65ms] Generated.
6
+ [97.70ms] Generated.
@@ -1,8 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.visualControl = void 0;
4
+ const remotion_1 = require("remotion");
4
5
  const VisualControls_1 = require("../visual-controls/VisualControls");
5
6
  const visualControl = (key, value, schema) => {
7
+ if ((0, remotion_1.getRemotionEnvironment)().isRendering) {
8
+ return value;
9
+ }
6
10
  if (!VisualControls_1.visualControlRef.current) {
7
11
  throw new Error('visualControlRef is not set');
8
12
  }
@@ -32,10 +32,13 @@ const AskAiModal = () => {
32
32
  (0, react_1.useEffect)(() => {
33
33
  const onMessage = (event) => {
34
34
  var _a;
35
- const json = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
36
- if (json.type === 'cmd-j') {
37
- (_a = exports.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
35
+ try {
36
+ const json = typeof event.data === 'string' ? JSON.parse(event.data) : event.data;
37
+ if (json.type === 'cmd-i') {
38
+ (_a = exports.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
39
+ }
38
40
  }
41
+ catch (_b) { }
39
42
  };
40
43
  window.addEventListener('message', onMessage);
41
44
  return () => {
@@ -38,9 +38,9 @@ const GlobalKeybindings = () => {
38
38
  commandCtrlKey: true,
39
39
  preventDefault: true,
40
40
  });
41
- const cmdJKey = keybindings.registerKeybinding({
41
+ const cmdIKey = keybindings.registerKeybinding({
42
42
  event: 'keydown',
43
- key: 'j',
43
+ key: 'i',
44
44
  callback: () => {
45
45
  var _a;
46
46
  (_a = AskAiModal_1.askAiModalRef.current) === null || _a === void 0 ? void 0 : _a.toggle();
@@ -81,7 +81,7 @@ const GlobalKeybindings = () => {
81
81
  cKey.unregister();
82
82
  questionMark.unregister();
83
83
  cmdKKey.unregister();
84
- cmdJKey.unregister();
84
+ cmdIKey.unregister();
85
85
  };
86
86
  }, [keybindings, setCheckerboard, setSelectedModal]);
87
87
  return null;
@@ -52,6 +52,6 @@ const li = {
52
52
  fontSize: 14,
53
53
  };
54
54
  const KeyboardShortcutsExplainer = () => {
55
- return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? ((0, jsx_runtime_1.jsxs)("div", { style: keyboardShortcutsDisabled, children: ["Keyboard shortcuts disabled either due to:", (0, jsx_runtime_1.jsxs)("ul", { style: ul, children: [(0, jsx_runtime_1.jsx)("li", { style: li, children: "a) --disable-keyboard-shortcuts being passed" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: "b) Config.setKeyboardShortcutsEnabled(false) being set or" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: " c) a Remotion version mismatch." })] })] })) : null, (0, jsx_runtime_1.jsxs)(layout_1.Row, { style: container, children: [(0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second back" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Previous frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Space" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Next frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second forward" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "A" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to beginning" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "E" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to end" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reverse playback" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "L" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Speed up" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Go to frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Enter" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause & return to playback start" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Sidebar" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "B" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle left sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle right sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle both sidebars" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "View" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "F" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Enter fullscreen" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Esc" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Exit fullscreen" })] })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 8 }), (0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Navigation" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "R" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Render composition" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "T" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle checkerboard background" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "?" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Show keyboard shortcuts" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Quick Switcher" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback range" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "I" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set In Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "O" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set Out Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "X" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Clear In/Out Points" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Zoom" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "+" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom in" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "-" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom out" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "0" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reset zoom" })] }), ' ', (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Props Editor" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "S" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Save" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "AI" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Ask AI" })] })] })] })] }));
55
+ return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, use_keybinding_1.areKeyboardShortcutsDisabled)() ? ((0, jsx_runtime_1.jsxs)("div", { style: keyboardShortcutsDisabled, children: ["Keyboard shortcuts disabled either due to:", (0, jsx_runtime_1.jsxs)("ul", { style: ul, children: [(0, jsx_runtime_1.jsx)("li", { style: li, children: "a) --disable-keyboard-shortcuts being passed" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: "b) Config.setKeyboardShortcutsEnabled(false) being set or" }), (0, jsx_runtime_1.jsx)("li", { style: li, children: " c) a Remotion version mismatch." })] })] })) : null, (0, jsx_runtime_1.jsxs)(layout_1.Row, { style: container, children: [(0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second back" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowLeft, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Previous frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Space" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Next frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ShiftIcon, {}) }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: (0, jsx_runtime_1.jsx)(keys_1.ArrowRight, {}) })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "1 second forward" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "A" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to beginning" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "E" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Jump to end" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reverse playback" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "L" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Play / Speed up" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Go to frame" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Enter" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Pause & return to playback start" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Sidebar" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "B" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle left sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "J" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle right sidebar" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "G" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle both sidebars" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "View" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "F" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Enter fullscreen" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "Esc" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Exit fullscreen" })] })] }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 8 }), (0, jsx_runtime_1.jsxs)(layout_1.Column, { children: [(0, jsx_runtime_1.jsx)("div", { style: title, children: "Navigation" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "R" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Render composition" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "T" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Toggle checkerboard background" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "?" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Show keyboard shortcuts" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "K" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Quick Switcher" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Playback range" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "I" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set In Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "O" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Set Out Point" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "X" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Clear In/Out Points" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Zoom" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "+" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom in" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "-" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Zoom out" })] }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsx)("div", { style: left, children: (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "0" }) }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Reset zoom" })] }), ' ', (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "Props Editor" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "S" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Save" })] }), (0, jsx_runtime_1.jsx)("br", {}), (0, jsx_runtime_1.jsx)("div", { style: title, children: "AI" }), (0, jsx_runtime_1.jsxs)(layout_1.Row, { align: "center", children: [(0, jsx_runtime_1.jsxs)("div", { style: left, children: [(0, jsx_runtime_1.jsx)("kbd", { style: key, children: ShortcutHint_1.cmdOrCtrlCharacter }), (0, jsx_runtime_1.jsx)(layout_1.Spacing, { x: 0.3 }), (0, jsx_runtime_1.jsx)("kbd", { style: key, children: "I" })] }), (0, jsx_runtime_1.jsx)("div", { style: right, children: "Ask AI" })] })] })] })] }));
56
56
  };
57
57
  exports.KeyboardShortcutsExplainer = KeyboardShortcutsExplainer;
@@ -8,11 +8,9 @@ const SplitterContext_1 = require("./SplitterContext");
8
8
  exports.SPLITTER_HANDLE_SIZE = 3;
9
9
  const containerRow = {
10
10
  height: exports.SPLITTER_HANDLE_SIZE,
11
- cursor: 'row-resize',
12
11
  };
13
12
  const containerColumn = {
14
13
  width: exports.SPLITTER_HANDLE_SIZE,
15
- cursor: 'col-resize',
16
14
  };
17
15
  const SplitterHandle = ({ allowToCollapse, onCollapse }) => {
18
16
  const context = (0, react_1.useContext)(SplitterContext_1.SplitterContext);
@@ -108,6 +106,44 @@ const SplitterHandle = ({ allowToCollapse, onCollapse }) => {
108
106
  }
109
107
  };
110
108
  }, [allowToCollapse, context, context.flexValue, lastPointerUp, onCollapse]);
109
+ (0, react_1.useEffect)(() => {
110
+ const { current } = ref;
111
+ if (!current) {
112
+ return;
113
+ }
114
+ let isMouseDown = false;
115
+ const onMouseDown = () => {
116
+ isMouseDown = true;
117
+ };
118
+ const onMouseUp = () => {
119
+ isMouseDown = false;
120
+ };
121
+ const onMouseEnter = (e) => {
122
+ if (e.button !== 0) {
123
+ return;
124
+ }
125
+ if (isMouseDown) {
126
+ return;
127
+ }
128
+ current.classList.add('remotion-splitter-hover');
129
+ };
130
+ const onMouseLeave = (e) => {
131
+ if (e.button !== 0) {
132
+ return;
133
+ }
134
+ current.classList.remove('remotion-splitter-hover');
135
+ };
136
+ current.addEventListener('mouseenter', onMouseEnter);
137
+ current.addEventListener('mouseleave', onMouseLeave);
138
+ window.addEventListener('mousedown', onMouseDown);
139
+ window.addEventListener('mouseup', onMouseUp);
140
+ return () => {
141
+ current.removeEventListener('mouseenter', onMouseEnter);
142
+ current.removeEventListener('mouseleave', onMouseLeave);
143
+ window.removeEventListener('mousedown', onMouseDown);
144
+ window.removeEventListener('mouseup', onMouseUp);
145
+ };
146
+ }, []);
111
147
  return ((0, jsx_runtime_1.jsx)("div", { ref: ref, className: [
112
148
  'remotion-splitter',
113
149
  context.orientation === 'horizontal'
@@ -473,6 +473,9 @@ var updateDefaultProps = ({
473
473
  }
474
474
  }));
475
475
  };
476
+ // src/api/visual-control.ts
477
+ import { getRemotionEnvironment as getRemotionEnvironment6 } from "remotion";
478
+
476
479
  // src/visual-controls/VisualControls.tsx
477
480
  import {
478
481
  createContext,
@@ -505,16 +508,19 @@ var SetVisualControlsContext = createContext({
505
508
 
506
509
  // src/api/visual-control.ts
507
510
  var visualControl = (key, value, schema) => {
511
+ if (getRemotionEnvironment6().isRendering) {
512
+ return value;
513
+ }
508
514
  if (!visualControlRef.current) {
509
515
  throw new Error("visualControlRef is not set");
510
516
  }
511
517
  return visualControlRef.current.globalVisualControl(key, value, schema);
512
518
  };
513
519
  // src/api/watch-public-folder.ts
514
- import { getRemotionEnvironment as getRemotionEnvironment6 } from "remotion";
520
+ import { getRemotionEnvironment as getRemotionEnvironment7 } from "remotion";
515
521
  var WATCH_REMOTION_STATIC_FILES = "remotion_staticFilesChanged";
516
522
  var watchPublicFolder = (callback) => {
517
- if (!getRemotionEnvironment6().isStudio) {
523
+ if (!getRemotionEnvironment7().isStudio) {
518
524
  console.warn("The watchPublicFolder() API is only available while using the Remotion Studio.");
519
525
  return { cancel: () => {
520
526
  return;
@@ -533,9 +539,9 @@ var watchPublicFolder = (callback) => {
533
539
  return { cancel };
534
540
  };
535
541
  // src/api/watch-static-file.ts
536
- import { getRemotionEnvironment as getRemotionEnvironment7 } from "remotion";
542
+ import { getRemotionEnvironment as getRemotionEnvironment8 } from "remotion";
537
543
  var watchStaticFile = (fileName, callback) => {
538
- if (!getRemotionEnvironment7().isStudio) {
544
+ if (!getRemotionEnvironment8().isStudio) {
539
545
  console.warn("watchStaticFile() is only available while using the Remotion Studio.");
540
546
  return { cancel: () => {
541
547
  return;
@@ -4400,10 +4400,12 @@ var AskAiModal = () => {
4400
4400
  }), []);
4401
4401
  useEffect14(() => {
4402
4402
  const onMessage = (event) => {
4403
- const json = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
4404
- if (json.type === "cmd-j") {
4405
- askAiModalRef.current?.toggle();
4406
- }
4403
+ try {
4404
+ const json = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
4405
+ if (json.type === "cmd-i") {
4406
+ askAiModalRef.current?.toggle();
4407
+ }
4408
+ } catch {}
4407
4409
  };
4408
4410
  window.addEventListener("message", onMessage);
4409
4411
  return () => {
@@ -6625,7 +6627,7 @@ var useMenuStructure = (closeMenu, readOnlyStudio) => {
6625
6627
  askAiModalRef.current?.toggle();
6626
6628
  },
6627
6629
  leftItem: null,
6628
- keyHint: `${cmdOrCtrlCharacter}+J`,
6630
+ keyHint: `${cmdOrCtrlCharacter}+I`,
6629
6631
  subMenu: null,
6630
6632
  type: "item",
6631
6633
  quickSwitcherLabel: "Ask AI"
@@ -18012,12 +18014,10 @@ import { useContext as useContext55, useEffect as useEffect55, useRef as useRef3
18012
18014
  import { jsx as jsx177 } from "react/jsx-runtime";
18013
18015
  var SPLITTER_HANDLE_SIZE = 3;
18014
18016
  var containerRow2 = {
18015
- height: SPLITTER_HANDLE_SIZE,
18016
- cursor: "row-resize"
18017
+ height: SPLITTER_HANDLE_SIZE
18017
18018
  };
18018
18019
  var containerColumn2 = {
18019
- width: SPLITTER_HANDLE_SIZE,
18020
- cursor: "col-resize"
18020
+ width: SPLITTER_HANDLE_SIZE
18021
18021
  };
18022
18022
  var SplitterHandle = ({ allowToCollapse, onCollapse }) => {
18023
18023
  const context = useContext55(SplitterContext);
@@ -18109,6 +18109,44 @@ var SplitterHandle = ({ allowToCollapse, onCollapse }) => {
18109
18109
  }
18110
18110
  };
18111
18111
  }, [allowToCollapse, context, context.flexValue, lastPointerUp, onCollapse]);
18112
+ useEffect55(() => {
18113
+ const { current } = ref;
18114
+ if (!current) {
18115
+ return;
18116
+ }
18117
+ let isMouseDown = false;
18118
+ const onMouseDown = () => {
18119
+ isMouseDown = true;
18120
+ };
18121
+ const onMouseUp = () => {
18122
+ isMouseDown = false;
18123
+ };
18124
+ const onMouseEnter = (e) => {
18125
+ if (e.button !== 0) {
18126
+ return;
18127
+ }
18128
+ if (isMouseDown) {
18129
+ return;
18130
+ }
18131
+ current.classList.add("remotion-splitter-hover");
18132
+ };
18133
+ const onMouseLeave = (e) => {
18134
+ if (e.button !== 0) {
18135
+ return;
18136
+ }
18137
+ current.classList.remove("remotion-splitter-hover");
18138
+ };
18139
+ current.addEventListener("mouseenter", onMouseEnter);
18140
+ current.addEventListener("mouseleave", onMouseLeave);
18141
+ window.addEventListener("mousedown", onMouseDown);
18142
+ window.addEventListener("mouseup", onMouseUp);
18143
+ return () => {
18144
+ current.removeEventListener("mouseenter", onMouseEnter);
18145
+ current.removeEventListener("mouseleave", onMouseLeave);
18146
+ window.removeEventListener("mousedown", onMouseDown);
18147
+ window.removeEventListener("mouseup", onMouseUp);
18148
+ };
18149
+ }, []);
18112
18150
  return /* @__PURE__ */ jsx177("div", {
18113
18151
  ref,
18114
18152
  className: [
@@ -20773,9 +20811,9 @@ var GlobalKeybindings = () => {
20773
20811
  commandCtrlKey: true,
20774
20812
  preventDefault: true
20775
20813
  });
20776
- const cmdJKey = keybindings.registerKeybinding({
20814
+ const cmdIKey = keybindings.registerKeybinding({
20777
20815
  event: "keydown",
20778
- key: "j",
20816
+ key: "i",
20779
20817
  callback: () => {
20780
20818
  askAiModalRef.current?.toggle();
20781
20819
  },
@@ -20815,7 +20853,7 @@ var GlobalKeybindings = () => {
20815
20853
  cKey.unregister();
20816
20854
  questionMark.unregister();
20817
20855
  cmdKKey.unregister();
20818
- cmdJKey.unregister();
20856
+ cmdIKey.unregister();
20819
20857
  };
20820
20858
  }, [keybindings, setCheckerboard, setSelectedModal]);
20821
20859
  return null;
@@ -22688,7 +22726,7 @@ var KeyboardShortcutsExplainer = () => {
22688
22726
  }),
22689
22727
  /* @__PURE__ */ jsx215("kbd", {
22690
22728
  style: key4,
22691
- children: "J"
22729
+ children: "I"
22692
22730
  })
22693
22731
  ]
22694
22732
  }),
@@ -28388,6 +28426,10 @@ var ServerDisconnected = () => {
28388
28426
  // src/helpers/inject-css.ts
28389
28427
  import { Internals as Internals63 } from "remotion";
28390
28428
  var makeDefaultGlobalCSS = () => {
28429
+ const unhoveredDragAreaFactor = 2;
28430
+ const fromMiddle = 50 / unhoveredDragAreaFactor;
28431
+ const hoveredDragAreaFactor = 6;
28432
+ const fromMiddleHovered = 50 / hoveredDragAreaFactor;
28391
28433
  return `
28392
28434
  html {
28393
28435
  --remotion-cli-internals-blue: #0b84f3;
@@ -28405,43 +28447,51 @@ var makeDefaultGlobalCSS = () => {
28405
28447
  }
28406
28448
 
28407
28449
  .remotion-splitter-horizontal {
28408
- transform: scaleY(2);
28450
+ transform: scaleY(${unhoveredDragAreaFactor});
28409
28451
  background: linear-gradient(
28410
28452
  to bottom,
28411
- transparent 25%,
28412
- black 25%,
28413
- black 75%,
28414
- transparent
28453
+ transparent ${50 - fromMiddle}%,
28454
+ black ${50 - fromMiddle}%,
28455
+ black ${50 + fromMiddle}%,
28456
+ transparent ${50 + fromMiddle}%
28415
28457
  );
28416
28458
  }
28417
28459
 
28418
- .remotion-splitter-horizontal:hover,
28419
- .remotion-splitter-horizontal.remotion-splitter-active {
28460
+ .remotion-splitter-horizontal.remotion-splitter-active, .remotion-splitter-horizontal.remotion-splitter-hover {
28420
28461
  background: linear-gradient(
28421
28462
  to bottom,
28422
- var(--remotion-cli-internals-blue),
28423
- var(--remotion-cli-internals-blue)
28463
+ transparent ${50 - fromMiddleHovered}%,
28464
+ var(--remotion-cli-internals-blue) ${50 - fromMiddleHovered}%,
28465
+ var(--remotion-cli-internals-blue) ${50 + fromMiddleHovered}%,
28466
+ transparent ${50 + fromMiddleHovered}%
28424
28467
  );
28468
+ cursor: row-resize;
28469
+ transform: scaleY(${hoveredDragAreaFactor});
28470
+ z-index: 1000;
28425
28471
  }
28426
28472
 
28427
28473
  .remotion-splitter-vertical {
28428
- transform: scaleX(2);
28474
+ transform: scaleX(${unhoveredDragAreaFactor});
28429
28475
  background: linear-gradient(
28430
28476
  to right,
28431
- transparent 25%,
28432
- black 25%,
28433
- black 75%,
28434
- transparent
28477
+ transparent ${50 - fromMiddle}%,
28478
+ black ${50 - fromMiddle}%,
28479
+ black ${50 + fromMiddle}%,
28480
+ transparent ${50 + fromMiddle}%
28435
28481
  );
28436
28482
  }
28437
28483
 
28438
- .remotion-splitter-vertical:hover,
28439
- .remotion-splitter-vertical.remotion-splitter-active {
28484
+ .remotion-splitter-vertical.remotion-splitter-active, .remotion-splitter-vertical.remotion-splitter-hover {
28440
28485
  background: linear-gradient(
28441
28486
  to right,
28442
- var(--remotion-cli-internals-blue),
28443
- var(--remotion-cli-internals-blue)
28487
+ transparent ${50 - fromMiddleHovered}%,
28488
+ var(--remotion-cli-internals-blue) ${50 - fromMiddleHovered}%,
28489
+ var(--remotion-cli-internals-blue) ${50 + fromMiddleHovered}%,
28490
+ transparent ${50 + fromMiddleHovered}%
28444
28491
  );
28492
+ transform: scaleX(${hoveredDragAreaFactor});
28493
+ cursor: col-resize;
28494
+ z-index: 1000;
28445
28495
  }
28446
28496
 
28447
28497
  input::-webkit-outer-spin-button,
@@ -4405,10 +4405,12 @@ var AskAiModal = () => {
4405
4405
  }), []);
4406
4406
  useEffect14(() => {
4407
4407
  const onMessage = (event) => {
4408
- const json = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
4409
- if (json.type === "cmd-j") {
4410
- askAiModalRef.current?.toggle();
4411
- }
4408
+ try {
4409
+ const json = typeof event.data === "string" ? JSON.parse(event.data) : event.data;
4410
+ if (json.type === "cmd-i") {
4411
+ askAiModalRef.current?.toggle();
4412
+ }
4413
+ } catch {}
4412
4414
  };
4413
4415
  window.addEventListener("message", onMessage);
4414
4416
  return () => {
@@ -6630,7 +6632,7 @@ var useMenuStructure = (closeMenu, readOnlyStudio) => {
6630
6632
  askAiModalRef.current?.toggle();
6631
6633
  },
6632
6634
  leftItem: null,
6633
- keyHint: `${cmdOrCtrlCharacter}+J`,
6635
+ keyHint: `${cmdOrCtrlCharacter}+I`,
6634
6636
  subMenu: null,
6635
6637
  type: "item",
6636
6638
  quickSwitcherLabel: "Ask AI"
@@ -18292,12 +18294,10 @@ import { useContext as useContext55, useEffect as useEffect55, useRef as useRef3
18292
18294
  import { jsx as jsx178 } from "react/jsx-runtime";
18293
18295
  var SPLITTER_HANDLE_SIZE = 3;
18294
18296
  var containerRow2 = {
18295
- height: SPLITTER_HANDLE_SIZE,
18296
- cursor: "row-resize"
18297
+ height: SPLITTER_HANDLE_SIZE
18297
18298
  };
18298
18299
  var containerColumn2 = {
18299
- width: SPLITTER_HANDLE_SIZE,
18300
- cursor: "col-resize"
18300
+ width: SPLITTER_HANDLE_SIZE
18301
18301
  };
18302
18302
  var SplitterHandle = ({ allowToCollapse, onCollapse }) => {
18303
18303
  const context = useContext55(SplitterContext);
@@ -18389,6 +18389,44 @@ var SplitterHandle = ({ allowToCollapse, onCollapse }) => {
18389
18389
  }
18390
18390
  };
18391
18391
  }, [allowToCollapse, context, context.flexValue, lastPointerUp, onCollapse]);
18392
+ useEffect55(() => {
18393
+ const { current } = ref;
18394
+ if (!current) {
18395
+ return;
18396
+ }
18397
+ let isMouseDown = false;
18398
+ const onMouseDown = () => {
18399
+ isMouseDown = true;
18400
+ };
18401
+ const onMouseUp = () => {
18402
+ isMouseDown = false;
18403
+ };
18404
+ const onMouseEnter = (e) => {
18405
+ if (e.button !== 0) {
18406
+ return;
18407
+ }
18408
+ if (isMouseDown) {
18409
+ return;
18410
+ }
18411
+ current.classList.add("remotion-splitter-hover");
18412
+ };
18413
+ const onMouseLeave = (e) => {
18414
+ if (e.button !== 0) {
18415
+ return;
18416
+ }
18417
+ current.classList.remove("remotion-splitter-hover");
18418
+ };
18419
+ current.addEventListener("mouseenter", onMouseEnter);
18420
+ current.addEventListener("mouseleave", onMouseLeave);
18421
+ window.addEventListener("mousedown", onMouseDown);
18422
+ window.addEventListener("mouseup", onMouseUp);
18423
+ return () => {
18424
+ current.removeEventListener("mouseenter", onMouseEnter);
18425
+ current.removeEventListener("mouseleave", onMouseLeave);
18426
+ window.removeEventListener("mousedown", onMouseDown);
18427
+ window.removeEventListener("mouseup", onMouseUp);
18428
+ };
18429
+ }, []);
18392
18430
  return /* @__PURE__ */ jsx178("div", {
18393
18431
  ref,
18394
18432
  className: [
@@ -21053,9 +21091,9 @@ var GlobalKeybindings = () => {
21053
21091
  commandCtrlKey: true,
21054
21092
  preventDefault: true
21055
21093
  });
21056
- const cmdJKey = keybindings.registerKeybinding({
21094
+ const cmdIKey = keybindings.registerKeybinding({
21057
21095
  event: "keydown",
21058
- key: "j",
21096
+ key: "i",
21059
21097
  callback: () => {
21060
21098
  askAiModalRef.current?.toggle();
21061
21099
  },
@@ -21095,7 +21133,7 @@ var GlobalKeybindings = () => {
21095
21133
  cKey.unregister();
21096
21134
  questionMark.unregister();
21097
21135
  cmdKKey.unregister();
21098
- cmdJKey.unregister();
21136
+ cmdIKey.unregister();
21099
21137
  };
21100
21138
  }, [keybindings, setCheckerboard, setSelectedModal]);
21101
21139
  return null;
@@ -22968,7 +23006,7 @@ var KeyboardShortcutsExplainer = () => {
22968
23006
  }),
22969
23007
  /* @__PURE__ */ jsx216("kbd", {
22970
23008
  style: key4,
22971
- children: "J"
23009
+ children: "I"
22972
23010
  })
22973
23011
  ]
22974
23012
  }),
@@ -28668,6 +28706,10 @@ var ServerDisconnected = () => {
28668
28706
  // src/helpers/inject-css.ts
28669
28707
  import { Internals as Internals63 } from "remotion";
28670
28708
  var makeDefaultGlobalCSS = () => {
28709
+ const unhoveredDragAreaFactor = 2;
28710
+ const fromMiddle = 50 / unhoveredDragAreaFactor;
28711
+ const hoveredDragAreaFactor = 6;
28712
+ const fromMiddleHovered = 50 / hoveredDragAreaFactor;
28671
28713
  return `
28672
28714
  html {
28673
28715
  --remotion-cli-internals-blue: #0b84f3;
@@ -28685,43 +28727,51 @@ var makeDefaultGlobalCSS = () => {
28685
28727
  }
28686
28728
 
28687
28729
  .remotion-splitter-horizontal {
28688
- transform: scaleY(2);
28730
+ transform: scaleY(${unhoveredDragAreaFactor});
28689
28731
  background: linear-gradient(
28690
28732
  to bottom,
28691
- transparent 25%,
28692
- black 25%,
28693
- black 75%,
28694
- transparent
28733
+ transparent ${50 - fromMiddle}%,
28734
+ black ${50 - fromMiddle}%,
28735
+ black ${50 + fromMiddle}%,
28736
+ transparent ${50 + fromMiddle}%
28695
28737
  );
28696
28738
  }
28697
28739
 
28698
- .remotion-splitter-horizontal:hover,
28699
- .remotion-splitter-horizontal.remotion-splitter-active {
28740
+ .remotion-splitter-horizontal.remotion-splitter-active, .remotion-splitter-horizontal.remotion-splitter-hover {
28700
28741
  background: linear-gradient(
28701
28742
  to bottom,
28702
- var(--remotion-cli-internals-blue),
28703
- var(--remotion-cli-internals-blue)
28743
+ transparent ${50 - fromMiddleHovered}%,
28744
+ var(--remotion-cli-internals-blue) ${50 - fromMiddleHovered}%,
28745
+ var(--remotion-cli-internals-blue) ${50 + fromMiddleHovered}%,
28746
+ transparent ${50 + fromMiddleHovered}%
28704
28747
  );
28748
+ cursor: row-resize;
28749
+ transform: scaleY(${hoveredDragAreaFactor});
28750
+ z-index: 1000;
28705
28751
  }
28706
28752
 
28707
28753
  .remotion-splitter-vertical {
28708
- transform: scaleX(2);
28754
+ transform: scaleX(${unhoveredDragAreaFactor});
28709
28755
  background: linear-gradient(
28710
28756
  to right,
28711
- transparent 25%,
28712
- black 25%,
28713
- black 75%,
28714
- transparent
28757
+ transparent ${50 - fromMiddle}%,
28758
+ black ${50 - fromMiddle}%,
28759
+ black ${50 + fromMiddle}%,
28760
+ transparent ${50 + fromMiddle}%
28715
28761
  );
28716
28762
  }
28717
28763
 
28718
- .remotion-splitter-vertical:hover,
28719
- .remotion-splitter-vertical.remotion-splitter-active {
28764
+ .remotion-splitter-vertical.remotion-splitter-active, .remotion-splitter-vertical.remotion-splitter-hover {
28720
28765
  background: linear-gradient(
28721
28766
  to right,
28722
- var(--remotion-cli-internals-blue),
28723
- var(--remotion-cli-internals-blue)
28767
+ transparent ${50 - fromMiddleHovered}%,
28768
+ var(--remotion-cli-internals-blue) ${50 - fromMiddleHovered}%,
28769
+ var(--remotion-cli-internals-blue) ${50 + fromMiddleHovered}%,
28770
+ transparent ${50 + fromMiddleHovered}%
28724
28771
  );
28772
+ transform: scaleX(${hoveredDragAreaFactor});
28773
+ cursor: col-resize;
28774
+ z-index: 1000;
28725
28775
  }
28726
28776
 
28727
28777
  input::-webkit-outer-spin-button,