@remotion/studio 4.0.517 → 4.0.519

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 (146) hide show
  1. package/dist/components/AppLaunchButton.d.ts +16 -0
  2. package/dist/components/AppLaunchButton.js +90 -0
  3. package/dist/components/AssetSelector.js +64 -22
  4. package/dist/components/AssetSelectorItem.d.ts +14 -1
  5. package/dist/components/AssetSelectorItem.js +219 -70
  6. package/dist/components/Button.js +20 -7
  7. package/dist/components/Canvas.js +109 -78
  8. package/dist/components/CanvasOrLoading.js +7 -7
  9. package/dist/components/CaptionTextEditor.js +32 -8
  10. package/dist/components/CodingAgentButton.d.ts +7 -0
  11. package/dist/components/CodingAgentButton.js +59 -0
  12. package/dist/components/CompositionContextButton.d.ts +1 -0
  13. package/dist/components/CompositionContextButton.js +7 -3
  14. package/dist/components/CompositionSelector.js +16 -11
  15. package/dist/components/CompositionSelectorItem.js +16 -23
  16. package/dist/components/ConfigureLicenseModal.js +4 -48
  17. package/dist/components/CurrentAsset.js +1 -1
  18. package/dist/components/EditorContent.js +6 -3
  19. package/dist/components/ElementInstallConfirmation.d.ts +25 -7
  20. package/dist/components/ElementInstallConfirmation.js +347 -30
  21. package/dist/components/ElementLibraryModal.js +3 -1
  22. package/dist/components/FixComputedValueModal.js +5 -131
  23. package/dist/components/InitialCompositionLoader.js +3 -2
  24. package/dist/components/InlineCaptionInspector.js +13 -2
  25. package/dist/components/InspectorOpenInEditor.js +48 -33
  26. package/dist/components/InspectorPanel/CompositionInspector.js +35 -3
  27. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +22 -14
  28. package/dist/components/InspectorPanel/ConnectedCompositionsSection.js +3 -1
  29. package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +1 -1
  30. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +10 -5
  31. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -1
  32. package/dist/components/InspectorPanel/common.js +1 -0
  33. package/dist/components/InspectorPanel/styles.js +1 -0
  34. package/dist/components/InspectorSequenceSection.js +8 -3
  35. package/dist/components/InspectorSourceLocation.js +5 -1
  36. package/dist/components/KnownBugs.d.ts +1 -1
  37. package/dist/components/KnownBugs.js +1 -1
  38. package/dist/components/LicenseExplanation.d.ts +2 -0
  39. package/dist/components/LicenseExplanation.js +63 -0
  40. package/dist/components/MenuToolbar.js +7 -1
  41. package/dist/components/Modals.js +50 -2
  42. package/dist/components/NewComposition/InputDragger.js +29 -2
  43. package/dist/components/NewComposition/NewCompDuration.js +1 -1
  44. package/dist/components/NewComposition/NewComposition.d.ts +23 -0
  45. package/dist/components/NewComposition/NewComposition.js +217 -80
  46. package/dist/components/{UpdateModal/OpenIssueButton.js → OpenIssueButton.js} +1 -1
  47. package/dist/components/PlaybackRateSelector.js +2 -5
  48. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.d.ts +2 -0
  49. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +28 -7
  50. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +21 -13
  51. package/dist/components/RenderQueue/actions.d.ts +1 -0
  52. package/dist/components/RenderQueue/actions.js +5 -1
  53. package/dist/components/SelectedOutlineCanvasRotation.js +27 -1
  54. package/dist/components/SelectedOutlineElement.js +2 -1
  55. package/dist/components/SelectedOutlineOverlay.js +9 -10
  56. package/dist/components/SelectedOutlinePolygon.d.ts +1 -0
  57. package/dist/components/SelectedOutlinePolygon.js +12 -4
  58. package/dist/components/SelectedOutlineRenderer.d.ts +1 -1
  59. package/dist/components/SelectedOutlineRenderer.js +33 -35
  60. package/dist/components/SettingsContext.js +2 -1
  61. package/dist/components/SettingsModal.d.ts +1 -1
  62. package/dist/components/SettingsModal.js +19 -3
  63. package/dist/components/SidebarRenderButton.d.ts +1 -0
  64. package/dist/components/SidebarRenderButton.js +15 -5
  65. package/dist/components/Timeline/SequencePropsObserver.js +29 -14
  66. package/dist/components/Timeline/TimelineKeyframeControls.js +3 -1
  67. package/dist/components/Timeline/TimelineRowChrome.js +4 -2
  68. package/dist/components/Timeline/TimelineSequence.js +40 -8
  69. package/dist/components/Timeline/TimelineSequenceItem.js +34 -1
  70. package/dist/components/Timeline/TimelineStack/get-stack.d.ts +1 -0
  71. package/dist/components/Timeline/TimelineStack/get-stack.js +35 -3
  72. package/dist/components/Timeline/duplicate-selected-timeline-item.js +23 -25
  73. package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -0
  74. package/dist/components/Timeline/get-sequence-context-menu-items.js +34 -1
  75. package/dist/components/Timeline/sequence-props-subscription-store.d.ts +2 -0
  76. package/dist/components/Timeline/sequence-props-subscription-store.js +22 -1
  77. package/dist/components/Timeline/use-sequence-props-subscription.js +7 -0
  78. package/dist/components/TimelineCombobox.js +1 -0
  79. package/dist/components/UpdateCheck.d.ts +0 -8
  80. package/dist/components/UpdateCheck.js +7 -54
  81. package/dist/components/UpdateStatusContext.d.ts +18 -0
  82. package/dist/components/UpdateStatusContext.js +74 -0
  83. package/dist/components/UpdatesSettings.d.ts +2 -0
  84. package/dist/components/UpdatesSettings.js +251 -0
  85. package/dist/components/WebMcp.d.ts +2 -0
  86. package/dist/components/WebMcp.js +945 -0
  87. package/dist/components/composition-menu-items.js +26 -0
  88. package/dist/components/get-open-in-menu-items.d.ts +4 -0
  89. package/dist/components/get-open-in-menu-items.js +28 -24
  90. package/dist/components/root-composition-menu-items.d.ts +4 -1
  91. package/dist/components/root-composition-menu-items.js +38 -1
  92. package/dist/components/selected-outline-measurement.d.ts +11 -0
  93. package/dist/components/selected-outline-measurement.js +13 -5
  94. package/dist/components/use-configure-default-apps.d.ts +1 -0
  95. package/dist/components/use-configure-default-apps.js +24 -0
  96. package/dist/error-overlay/remotion-overlay/CodeFrame.js +5 -6
  97. package/dist/error-overlay/remotion-overlay/CopyStackTrace.js +1 -1
  98. package/dist/error-overlay/remotion-overlay/ErrorDisplay.js +47 -18
  99. package/dist/error-overlay/remotion-overlay/ErrorLoader.js +1 -1
  100. package/dist/error-overlay/remotion-overlay/ErrorTitle.js +5 -4
  101. package/dist/error-overlay/remotion-overlay/OpenInEditor.js +48 -76
  102. package/dist/error-overlay/remotion-overlay/SearchGitHubIssues.js +1 -1
  103. package/dist/error-overlay/remotion-overlay/ShortcutHint.js +2 -2
  104. package/dist/error-overlay/remotion-overlay/StackFrame.js +13 -8
  105. package/dist/error-overlay/remotion-overlay/Symbolicating.js +1 -1
  106. package/dist/esm/{chunk-gzqm3g2m.js → chunk-1fkq5bfq.js} +24093 -21093
  107. package/dist/esm/chunk-6jf1natv.js +25 -0
  108. package/dist/esm/{chunk-4bxz1d3g.js → chunk-je0h1bgt.js} +1 -28
  109. package/dist/esm/chunk-m0jqdbkr.js +14571 -0
  110. package/dist/esm/index.mjs +0 -2
  111. package/dist/esm/internals.mjs +43231 -25675
  112. package/dist/esm/previewEntry.mjs +46334 -28776
  113. package/dist/esm/renderEntry.mjs +6 -3
  114. package/dist/helpers/can-show-updates.d.ts +5 -0
  115. package/dist/helpers/can-show-updates.js +7 -0
  116. package/dist/helpers/colors.d.ts +0 -3
  117. package/dist/helpers/colors.js +2 -5
  118. package/dist/helpers/create-folder-tree.d.ts +5 -0
  119. package/dist/helpers/create-folder-tree.js +40 -2
  120. package/dist/helpers/format-file-location.d.ts +8 -0
  121. package/dist/helpers/format-file-location.js +14 -3
  122. package/dist/helpers/get-asset-metadata.js +1 -1
  123. package/dist/helpers/get-git-menu-item.d.ts +5 -0
  124. package/dist/helpers/get-git-menu-item.js +15 -1
  125. package/dist/helpers/get-timeline-max-zoom.d.ts +8 -0
  126. package/dist/helpers/get-timeline-max-zoom.js +17 -6
  127. package/dist/helpers/hoverable.d.ts +1 -0
  128. package/dist/helpers/hoverable.js +14 -6
  129. package/dist/helpers/open-in-editor.js +51 -1
  130. package/dist/helpers/preview-server-events.js +3 -0
  131. package/dist/helpers/timeline-layout.d.ts +0 -1
  132. package/dist/helpers/timeline-layout.js +1 -5
  133. package/dist/helpers/url-state.d.ts +1 -0
  134. package/dist/helpers/url-state.js +12 -5
  135. package/dist/icons/enter.d.ts +4 -0
  136. package/dist/icons/enter.js +10 -0
  137. package/dist/renderEntry.js +2 -0
  138. package/dist/state/folders.d.ts +3 -0
  139. package/dist/state/folders.js +40 -1
  140. package/dist/state/modals.d.ts +1 -6
  141. package/dist/state/playbackrate.d.ts +1 -0
  142. package/dist/state/playbackrate.js +4 -1
  143. package/package.json +17 -14
  144. package/dist/components/UpdateModal/UpdateModal.d.ts +0 -6
  145. package/dist/components/UpdateModal/UpdateModal.js +0 -104
  146. /package/dist/components/{UpdateModal/OpenIssueButton.d.ts → OpenIssueButton.d.ts} +0 -0
@@ -4,6 +4,29 @@ exports.FolderContextProvider = exports.FolderContext = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const react_1 = require("react");
6
6
  const persist_open_folders_1 = require("../helpers/persist-open-folders");
7
+ const compositionSortOrderKey = 'remotion.compositionSortOrder';
8
+ const loadCompositionSortOrder = () => {
9
+ if (typeof window === 'undefined') {
10
+ return 'registration';
11
+ }
12
+ try {
13
+ return window.localStorage.getItem(compositionSortOrderKey) ===
14
+ 'alphabetical'
15
+ ? 'alphabetical'
16
+ : 'registration';
17
+ }
18
+ catch (_a) {
19
+ return 'registration';
20
+ }
21
+ };
22
+ const persistCompositionSortOrder = (sortOrder) => {
23
+ try {
24
+ window.localStorage.setItem(compositionSortOrderKey, sortOrder);
25
+ }
26
+ catch (_a) {
27
+ // Ignore quota errors or disabled storage.
28
+ }
29
+ };
7
30
  exports.FolderContext = (0, react_1.createContext)({
8
31
  compositionFoldersExpanded: {},
9
32
  setCompositionFoldersExpanded: () => {
@@ -13,18 +36,34 @@ exports.FolderContext = (0, react_1.createContext)({
13
36
  setAssetFoldersExpanded: () => {
14
37
  throw new Error('default state');
15
38
  },
39
+ compositionSortOrder: 'registration',
40
+ setCompositionSortOrder: () => {
41
+ throw new Error('default state');
42
+ },
16
43
  });
17
44
  const FolderContextProvider = ({ children }) => {
18
45
  const [compositionFoldersExpanded, setCompositionFoldersExpanded] = (0, react_1.useState)(() => (0, persist_open_folders_1.loadExpandedFolders)('compositions'));
19
46
  const [assetFoldersExpanded, setAssetFoldersExpanded] = (0, react_1.useState)(() => (0, persist_open_folders_1.loadExpandedFolders)('assets'));
47
+ const [compositionSortOrder, setCompositionSortOrderState] = (0, react_1.useState)(loadCompositionSortOrder);
48
+ const setCompositionSortOrder = (0, react_1.useCallback)((sortOrder) => {
49
+ persistCompositionSortOrder(sortOrder);
50
+ setCompositionSortOrderState(sortOrder);
51
+ }, []);
20
52
  const value = (0, react_1.useMemo)(() => {
21
53
  return {
22
54
  compositionFoldersExpanded,
23
55
  setCompositionFoldersExpanded,
24
56
  assetFoldersExpanded,
25
57
  setAssetFoldersExpanded,
58
+ compositionSortOrder,
59
+ setCompositionSortOrder,
26
60
  };
27
- }, [assetFoldersExpanded, compositionFoldersExpanded]);
61
+ }, [
62
+ assetFoldersExpanded,
63
+ compositionFoldersExpanded,
64
+ compositionSortOrder,
65
+ setCompositionSortOrder,
66
+ ]);
28
67
  return (jsx_runtime_1.jsx(exports.FolderContext.Provider, { value: value, children: children }));
29
68
  };
30
69
  exports.FolderContextProvider = FolderContextProvider;
@@ -8,7 +8,6 @@ import type { StaticFile } from '../api/get-static-files';
8
8
  import type { CompType } from '../components/NewComposition/DuplicateComposition';
9
9
  import type { QuickSwitcherMode } from '../components/QuickSwitcher/NoResults';
10
10
  import type { RenderType } from '../components/RenderModal/RenderModalAdvanced';
11
- import type { Bug, UpdateInfo } from '../components/UpdateCheck';
12
11
  export type WebRenderModalState = {
13
12
  type: 'web-render';
14
13
  initialFrame: number;
@@ -154,15 +153,11 @@ export type ModalState = {
154
153
  type: 'input-props-override';
155
154
  } | {
156
155
  type: 'settings';
157
- initialTab: 'apps' | 'rendering' | 'studio' | 'packages' | 'shortcuts' | 'license';
156
+ initialTab: 'apps' | 'rendering' | 'studio' | 'packages' | 'shortcuts' | 'skills' | 'updates' | 'license';
158
157
  initialPublicLicenseKey: string | null;
159
158
  } | RenderModalState | WebRenderModalState | {
160
159
  type: 'render-progress';
161
160
  jobId: string;
162
- } | {
163
- type: 'update';
164
- info: UpdateInfo;
165
- knownBugs: Bug[];
166
161
  } | {
167
162
  type: 'fix-computed-value';
168
163
  prop: string;
@@ -1,2 +1,3 @@
1
+ export declare const commonPlaybackRates: number[];
1
2
  export declare const persistPlaybackRate: (option: number) => void;
2
3
  export declare const loadPlaybackRate: () => number;
@@ -1,7 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.loadPlaybackRate = exports.persistPlaybackRate = void 0;
3
+ exports.loadPlaybackRate = exports.persistPlaybackRate = exports.commonPlaybackRates = void 0;
4
4
  const key = 'remotion.playbackrate';
5
+ exports.commonPlaybackRates = [
6
+ -4, -2, -1, -0.5, -0.25, 0.25, 0.5, 1, 1.5, 2, 4,
7
+ ];
5
8
  const persistPlaybackRate = (option) => {
6
9
  localStorage.setItem(key, String(option));
7
10
  };
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
4
  },
5
5
  "name": "@remotion/studio",
6
- "version": "4.0.517",
6
+ "version": "4.0.519",
7
7
  "description": "APIs for interacting with the Remotion Studio",
8
8
  "main": "dist",
9
9
  "scripts": {
@@ -25,19 +25,20 @@
25
25
  },
26
26
  "dependencies": {
27
27
  "@tanstack/react-virtual": "3.14.9",
28
- "@remotion/canvas": "4.0.517",
29
- "@remotion/studio-protocol": "4.0.517",
28
+ "@remotion/canvas": "4.0.519",
29
+ "@remotion/studio-protocol": "4.0.519",
30
+ "@remotion/studio-codemods": "4.0.519",
30
31
  "semver": "7.5.3",
31
- "remotion": "4.0.517",
32
- "@remotion/captions": "4.0.517",
33
- "@remotion/media": "4.0.517",
34
- "@remotion/player": "4.0.517",
35
- "@remotion/media-utils": "4.0.517",
36
- "@remotion/renderer": "4.0.517",
37
- "@remotion/web-renderer": "4.0.517",
38
- "@remotion/studio-shared": "4.0.517",
39
- "@remotion/timeline-utils": "4.0.517",
40
- "@remotion/zod-types": "4.0.517",
32
+ "remotion": "4.0.519",
33
+ "@remotion/captions": "4.0.519",
34
+ "@remotion/media": "4.0.519",
35
+ "@remotion/player": "4.0.519",
36
+ "@remotion/media-utils": "4.0.519",
37
+ "@remotion/renderer": "4.0.519",
38
+ "@remotion/web-renderer": "4.0.519",
39
+ "@remotion/studio-shared": "4.0.519",
40
+ "@remotion/timeline-utils": "4.0.519",
41
+ "@remotion/zod-types": "4.0.519",
41
42
  "@jridgewell/trace-mapping": "0.3.31",
42
43
  "mediabunny": "1.55.1",
43
44
  "memfs": "3.4.3",
@@ -45,10 +46,12 @@
45
46
  "zod": "4.4.3"
46
47
  },
47
48
  "devDependencies": {
49
+ "@happy-dom/global-registrator": "14.5.1",
48
50
  "react": "19.2.3",
49
51
  "react-dom": "19.2.3",
52
+ "@testing-library/react": "16.1.0",
50
53
  "@types/semver": "7.5.3",
51
- "@remotion/eslint-config-internal": "4.0.517",
54
+ "@remotion/eslint-config-internal": "4.0.519",
52
55
  "eslint": "9.19.0",
53
56
  "@typescript/native-preview": "7.0.0-dev.20260217.1"
54
57
  },
@@ -1,6 +0,0 @@
1
- import React from 'react';
2
- import type { Bug, UpdateInfo } from '../UpdateCheck';
3
- export declare const UpdateModal: React.FC<{
4
- readonly info: UpdateInfo;
5
- readonly knownBugs: Bug[];
6
- }>;
@@ -1,104 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UpdateModal = void 0;
4
- const jsx_runtime_1 = require("react/jsx-runtime");
5
- const react_1 = require("react");
6
- const colors_1 = require("../../helpers/colors");
7
- const copy_text_1 = require("../../helpers/copy-text");
8
- const clipboard_1 = require("../../icons/clipboard");
9
- const InlineAction_1 = require("../InlineAction");
10
- const KnownBugs_1 = require("../KnownBugs");
11
- const ModalHeader_1 = require("../ModalHeader");
12
- const DismissableModal_1 = require("../NewComposition/DismissableModal");
13
- const NotificationCenter_1 = require("../Notifications/NotificationCenter");
14
- const container = {
15
- padding: '0 16px 8px',
16
- };
17
- const panelStyle = {
18
- borderRadius: 6,
19
- overflow: 'hidden',
20
- };
21
- const text = {
22
- color: colors_1.LIGHT_TEXT,
23
- fontFamily: 'sans-serif',
24
- fontSize: 14,
25
- lineHeight: 1.5,
26
- };
27
- const title = {
28
- paddingTop: 12,
29
- paddingBottom: 8,
30
- ...text,
31
- };
32
- const commandField = {
33
- alignItems: 'center',
34
- background: colors_1.SELECTED_BACKGROUND,
35
- borderRadius: 6,
36
- boxSizing: 'border-box',
37
- display: 'flex',
38
- marginBottom: 10,
39
- marginTop: 10,
40
- padding: '8px 8px 8px 10px',
41
- width: '100%',
42
- };
43
- const code = {
44
- color: colors_1.WHITE,
45
- flex: 1,
46
- fontFamily: 'monospace',
47
- fontSize: 14,
48
- lineHeight: 1.5,
49
- margin: 0,
50
- minWidth: 0,
51
- overflowX: 'auto',
52
- whiteSpace: 'pre',
53
- };
54
- const copyIcon = {
55
- flexShrink: 0,
56
- height: 12,
57
- width: 12,
58
- };
59
- const link = {
60
- ...text,
61
- fontWeight: 'bold',
62
- color: colors_1.BLUE,
63
- textDecoration: 'none',
64
- };
65
- const commands = {
66
- npm: 'npx remotion upgrade',
67
- yarn: 'yarn remotion upgrade',
68
- pnpm: 'pnpm exec remotion upgrade',
69
- bun: 'bun remotion upgrade',
70
- unknown: 'npx remotion upgrade',
71
- };
72
- const skillsUpdateCommand = 'npx remotion skills update';
73
- const remotionUpgradeSkill = '/remotion-upgrade';
74
- const UpdateModal = ({ info, knownBugs }) => {
75
- const hasKnownBugs = (0, react_1.useMemo)(() => {
76
- return knownBugs && (knownBugs === null || knownBugs === void 0 ? void 0 : knownBugs.length) > 0;
77
- }, [knownBugs]);
78
- const updateAction = info.remotionUpgradeSkillAvailable
79
- ? remotionUpgradeSkill
80
- : info.updateAvailable
81
- ? commands[info.packageManager]
82
- : skillsUpdateCommand;
83
- const updateActionType = info.remotionUpgradeSkillAvailable
84
- ? 'skill'
85
- : 'command';
86
- const onClick = (0, react_1.useCallback)(() => {
87
- (0, copy_text_1.copyText)(updateAction).catch((err) => {
88
- (0, NotificationCenter_1.showNotification)(`Could not copy: ${err.message}`, 2000);
89
- });
90
- }, [updateAction]);
91
- const renderCopyAction = (0, react_1.useCallback)((color) => {
92
- return jsx_runtime_1.jsx(clipboard_1.ClipboardIcon, { color: color, style: copyIcon });
93
- }, []);
94
- return (jsx_runtime_1.jsxs(DismissableModal_1.DismissableModal, { panelStyle: panelStyle, children: [
95
- jsx_runtime_1.jsx(ModalHeader_1.ModalHeader, { title: "Update available" }), jsx_runtime_1.jsxs("div", { style: container, children: [hasKnownBugs && info.updateAvailable ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
96
- jsx_runtime_1.jsxs("div", { style: title, children: ["The currently installed version ", info.currentVersion, " has the following known bugs:"] }), jsx_runtime_1.jsx(KnownBugs_1.KnownBugs, { bugs: knownBugs }), jsx_runtime_1.jsx("div", { style: { height: '20px' } }), jsx_runtime_1.jsxs("div", { style: text, children: ["To upgrade, run the following ", updateActionType, ":"] })
97
- ] })) : info.updateAvailable ? (jsx_runtime_1.jsxs("div", { style: title, children: ["A new update for Remotion is available! Run the following", ' ', updateActionType, ":"] })) : (jsx_runtime_1.jsxs("div", { style: title, children: ["Your Remotion Agent Skills are out of date. Run the following", ' ', updateActionType, ":"] })), jsx_runtime_1.jsxs("div", { style: commandField, children: [
98
- jsx_runtime_1.jsx("pre", { style: code, children: updateAction }), jsx_runtime_1.jsx(InlineAction_1.InlineAction, { variant: null, onClick: onClick, renderAction: renderCopyAction, title: "Copy command" })
99
- ] }), info.updateAvailable ? (jsx_runtime_1.jsxs("div", { style: text, children: ["This will upgrade Remotion from ", info.currentVersion, " to", ' ', info.latestVersion, info.skillsUpdateAvailable
100
- ? ' and update your project Remotion Agent Skills.'
101
- : '.'] })) : null, info.updateAvailable ? (jsx_runtime_1.jsxs("div", { style: text, children: ["Read the", ' ', jsx_runtime_1.jsx("a", { style: link, target: "_blank", href: "https://github.com/remotion-dev/remotion/releases", children: "Release notes" }), ' ', "to know what", "'s", " new in Remotion."] })) : null] })
102
- ] }));
103
- };
104
- exports.UpdateModal = UpdateModal;