@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
@@ -0,0 +1,16 @@
1
+ import React from 'react';
2
+ import type { ComboboxValue } from './NewComposition/ComboBox';
3
+ export declare const AppLaunchButton: React.FC<{
4
+ readonly actionButtonId: string | null;
5
+ readonly ariaLabel: string;
6
+ readonly children: React.ReactNode;
7
+ readonly disabled: boolean;
8
+ readonly menuAriaLabel: string;
9
+ readonly menuButtonId: string | null;
10
+ readonly menuItems: ComboboxValue[];
11
+ readonly onConfigureApps: (() => void) | null;
12
+ readonly onClick: React.MouseEventHandler<HTMLButtonElement>;
13
+ readonly size: 'compact' | 'default';
14
+ readonly style: React.CSSProperties | null;
15
+ readonly title: string;
16
+ }>;
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AppLaunchButton = 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 caret_1 = require("../icons/caret");
8
+ const get_open_in_menu_items_1 = require("./get-open-in-menu-items");
9
+ const SegmentedButton_1 = require("./SegmentedButton");
10
+ const compactMainSegmentStyle = {
11
+ fontFamily: 'inherit',
12
+ gap: 6,
13
+ padding: '0 9px',
14
+ };
15
+ const defaultMainSegmentStyle = {
16
+ ...compactMainSegmentStyle,
17
+ fontSize: 14,
18
+ lineHeight: '21px',
19
+ };
20
+ const dropdownSegmentStyle = {
21
+ fontFamily: 'inherit',
22
+ padding: 0,
23
+ width: 20,
24
+ };
25
+ const dropdownIconStyle = {
26
+ display: 'flex',
27
+ transform: 'translateY(-1px)',
28
+ };
29
+ const AppLaunchButton = ({ actionButtonId, ariaLabel, children, disabled, menuAriaLabel, menuButtonId, menuItems, onConfigureApps, onClick, size, style, title, }) => {
30
+ const items = (0, react_1.useMemo)(() => {
31
+ return [
32
+ ...menuItems,
33
+ ...(0, get_open_in_menu_items_1.getConfigureDefaultAppsMenuItems)({
34
+ hasPreviousItems: menuItems.length > 0,
35
+ onConfigureApps,
36
+ }),
37
+ ];
38
+ }, [menuItems, onConfigureApps]);
39
+ const segments = (0, react_1.useMemo)(() => {
40
+ return [
41
+ {
42
+ ariaLabel,
43
+ buttonId: actionButtonId,
44
+ disabled,
45
+ idleColor: colors_1.LIGHT_TEXT,
46
+ onClick,
47
+ onPointerDown: null,
48
+ renderContent: () => children,
49
+ segmentId: 'preferred-app',
50
+ style: size === 'default'
51
+ ? defaultMainSegmentStyle
52
+ : compactMainSegmentStyle,
53
+ title,
54
+ type: 'action',
55
+ },
56
+ ...(items.length > 0
57
+ ? [
58
+ {
59
+ ariaLabel: menuAriaLabel,
60
+ buttonId: menuButtonId,
61
+ disabled: false,
62
+ idleColor: colors_1.LIGHT_TEXT,
63
+ leaveLeftSpace: true,
64
+ onOpenChange: null,
65
+ renderContent: (color) => (jsx_runtime_1.jsx("span", { style: dropdownIconStyle, children: jsx_runtime_1.jsx(caret_1.CaretDown, { color: color }) })),
66
+ segmentId: 'another-app',
67
+ selectedId: null,
68
+ style: dropdownSegmentStyle,
69
+ title: menuAriaLabel,
70
+ type: 'menu',
71
+ values: items,
72
+ },
73
+ ]
74
+ : []),
75
+ ];
76
+ }, [
77
+ actionButtonId,
78
+ ariaLabel,
79
+ children,
80
+ disabled,
81
+ items,
82
+ menuAriaLabel,
83
+ menuButtonId,
84
+ onClick,
85
+ size,
86
+ title,
87
+ ]);
88
+ return (jsx_runtime_1.jsx(SegmentedButton_1.SegmentedButton, { segments: segments, style: { ...(size === 'default' ? { height: 41 } : null), ...style }, title: null }));
89
+ };
90
+ exports.AppLaunchButton = AppLaunchButton;
@@ -48,6 +48,7 @@ const use_asset_drag_events_1 = __importStar(require("../helpers/use-asset-drag-
48
48
  const folders_1 = require("../state/folders");
49
49
  const z_index_1 = require("../state/z-index");
50
50
  const AssetSelectorItem_1 = require("./AssetSelectorItem");
51
+ const import_assets_1 = require("./import-assets");
51
52
  const styles_1 = require("./Menu/styles");
52
53
  const NotificationCenter_1 = require("./Notifications/NotificationCenter");
53
54
  const ExplorerQuickSwitcherTrigger_1 = require("./QuickSwitcher/ExplorerQuickSwitcherTrigger");
@@ -97,6 +98,28 @@ const AssetSelector = ({ readOnlyStudio }) => {
97
98
  const assetTree = (0, react_1.useMemo)(() => {
98
99
  return (0, create_folder_tree_1.buildAssetFolderStructure)(staticFiles, null, assetFoldersExpanded);
99
100
  }, [assetFoldersExpanded, staticFiles]);
101
+ const writeFilesToPublicFolder = (0, react_1.useCallback)(async ({ files, assetPath, }) => {
102
+ const makePath = (file) => {
103
+ return [assetPath, file.name].filter(Boolean).join('/');
104
+ };
105
+ const differentExistingFile = files.find((file) => {
106
+ const filePath = makePath(file);
107
+ return staticFiles.some((staticFile) => staticFile.name === filePath &&
108
+ staticFile.sizeInBytes !== file.size);
109
+ });
110
+ if (differentExistingFile) {
111
+ (0, NotificationCenter_1.showNotification)(`File with name ${makePath(differentExistingFile)} already exists and is different`, 4000);
112
+ return false;
113
+ }
114
+ for (const file of files) {
115
+ const body = await file.arrayBuffer();
116
+ await (0, write_static_file_1.writeStaticFile)({
117
+ contents: body,
118
+ filePath: makePath(file),
119
+ });
120
+ }
121
+ return true;
122
+ }, [staticFiles]);
100
123
  const toggleFolder = (0, react_1.useCallback)((folderName, parentName) => {
101
124
  setAssetFoldersExpanded((p) => {
102
125
  const key = [parentName, folderName].filter(Boolean).join('/');
@@ -145,25 +168,7 @@ const AssetSelector = ({ readOnlyStudio }) => {
145
168
  setDropLocation(null);
146
169
  return;
147
170
  }
148
- const makePath = (file) => {
149
- return [assetPath, file.name].filter(Boolean).join('/');
150
- };
151
- const differentExistingFile = Array.from(files).find((file) => {
152
- const filePath = makePath(file);
153
- return staticFiles.some((staticFile) => staticFile.name === filePath &&
154
- staticFile.sizeInBytes !== file.size);
155
- });
156
- if (differentExistingFile) {
157
- (0, NotificationCenter_1.showNotification)(`File with name ${makePath(differentExistingFile)} already exists and is different`, 4000);
158
- return;
159
- }
160
- for (const file of files) {
161
- const body = await file.arrayBuffer();
162
- await (0, write_static_file_1.writeStaticFile)({
163
- contents: body,
164
- filePath: makePath(file),
165
- });
166
- }
171
+ await writeFilesToPublicFolder({ files, assetPath });
167
172
  }
168
173
  catch (error) {
169
174
  (0, NotificationCenter_1.showNotification)(`Error during upload: ${error}`, 3000);
@@ -171,13 +176,50 @@ const AssetSelector = ({ readOnlyStudio }) => {
171
176
  finally {
172
177
  setDropLocation(null);
173
178
  }
174
- }, [dropLocation, staticFiles]);
179
+ }, [dropLocation, writeFilesToPublicFolder]);
180
+ const uploadAssets = (0, react_1.useCallback)(async (assetPath) => {
181
+ try {
182
+ const files = await (0, import_assets_1.pickFilesToImport)();
183
+ if (files.length === 0) {
184
+ return;
185
+ }
186
+ const wereWritten = await writeFilesToPublicFolder({
187
+ files,
188
+ assetPath,
189
+ });
190
+ if (wereWritten) {
191
+ const destination = assetPath ? `'${assetPath}'` : 'public folder';
192
+ (0, NotificationCenter_1.showNotification)(files.length === 1
193
+ ? `Uploaded ${files[0].name} to ${destination}`
194
+ : `Uploaded ${files.length} assets to ${destination}`, 3000);
195
+ }
196
+ }
197
+ catch (error) {
198
+ (0, NotificationCenter_1.showNotification)(`Error during upload: ${error}`, 3000);
199
+ }
200
+ }, [writeFilesToPublicFolder]);
201
+ const getAssetActions = (0, react_1.useCallback)(() => {
202
+ return [
203
+ {
204
+ id: 'upload-assets',
205
+ keyHint: null,
206
+ label: 'Upload...',
207
+ leftItem: null,
208
+ onClick: () => uploadAssets(null),
209
+ quickSwitcherLabel: 'Upload assets...',
210
+ subMenu: null,
211
+ type: 'item',
212
+ value: 'upload-assets',
213
+ disabled: !shouldAllowUpload,
214
+ },
215
+ ];
216
+ }, [shouldAllowUpload, uploadAssets]);
175
217
  return (jsx_runtime_1.jsxs("div", { "data-asset-selector": true, style: container, onDragOver: shouldAllowUpload ? onDragOver : undefined, onDrop: shouldAllowUpload ? onDrop : undefined, children: [
176
- jsx_runtime_1.jsx(ExplorerQuickSwitcherTrigger_1.ExplorerQuickSwitcherTrigger, { mode: "assets", showShortcut: true, tabIndex: tabIndex }), staticFiles.length === 0 ? (publicFolderExists ? (jsx_runtime_1.jsx("div", { style: emptyState, children: jsx_runtime_1.jsxs("div", { style: label, children: ["To add assets, place a file in the", ' ', jsx_runtime_1.jsx("code", { style: styles_1.inlineCodeSnippet, children: "public" }),
218
+ jsx_runtime_1.jsx(ExplorerQuickSwitcherTrigger_1.ExplorerQuickSwitcherTrigger, { mode: "assets", showShortcut: true, tabIndex: tabIndex, getActions: getAssetActions }), staticFiles.length === 0 ? (publicFolderExists ? (jsx_runtime_1.jsx("div", { style: emptyState, children: jsx_runtime_1.jsxs("div", { style: label, children: ["To add assets, place a file in the", ' ', jsx_runtime_1.jsx("code", { style: styles_1.inlineCodeSnippet, children: "public" }),
177
219
  " folder of your project or drag and drop a file here."] }) })) : (jsx_runtime_1.jsx("div", { style: emptyState, children: jsx_runtime_1.jsxs("div", { style: label, children: ["To add assets, create a folder called", ' ', jsx_runtime_1.jsx("code", { style: styles_1.inlineCodeSnippet, children: "public" }),
178
220
  " in the root of your project and place a file in it."] }) }))) : (jsx_runtime_1.jsx("div", { className: "__remotion-vertical-scrollbar", style: {
179
221
  ...list,
180
222
  backgroundColor: isDropDiv ? colors_1.WHITE_ALPHA_06 : colors_1.BACKGROUND,
181
- }, onDragEnter: onDragEnter, onDragLeave: onDragLeave, children: jsx_runtime_1.jsx(AssetSelectorItem_1.AssetFolderTree, { item: assetTree, level: 0, parentFolder: null, name: null, tabIndex: tabIndex, toggleFolder: toggleFolder, dropLocation: dropLocation, setDropLocation: setDropLocation, readOnlyStudio: readOnlyStudio }) }))] }));
223
+ }, onDragEnter: onDragEnter, onDragLeave: onDragLeave, children: jsx_runtime_1.jsx(AssetSelectorItem_1.AssetFolderTree, { item: assetTree, level: 0, parentFolder: null, name: null, tabIndex: tabIndex, toggleFolder: toggleFolder, dropLocation: dropLocation, setDropLocation: setDropLocation, readOnlyStudio: readOnlyStudio, uploadAssets: uploadAssets }) }))] }));
182
224
  };
183
225
  exports.AssetSelector = AssetSelector;
@@ -14,11 +14,12 @@ export declare const getCanDragAsset: ({ readOnlyStudio, relativePath, }: {
14
14
  readOnlyStudio: boolean;
15
15
  relativePath: string;
16
16
  }) => boolean;
17
- export declare const getAssetContextMenuItems: ({ relativePath, fileManagerName, copyFileName, copyStaticFilePath, openAssetInConvert, openAssetInExplorer, renameAsset, deleteAsset, fileExplorerAvailable, fileExplorerDisabled, mutationsDisabled, }: {
17
+ export declare const getAssetContextMenuItems: ({ relativePath, fileManagerName, copyFileName, copyStaticFilePath, copyAbsolutePath, openAssetInConvert, openAssetInExplorer, renameAsset, deleteAsset, fileExplorerAvailable, fileExplorerDisabled, mutationsDisabled, }: {
18
18
  relativePath: string;
19
19
  fileManagerName: string;
20
20
  copyFileName: () => void;
21
21
  copyStaticFilePath: () => void;
22
+ copyAbsolutePath: (() => void) | null;
22
23
  openAssetInConvert: () => void;
23
24
  openAssetInExplorer: () => void;
24
25
  renameAsset: () => void;
@@ -27,6 +28,17 @@ export declare const getAssetContextMenuItems: ({ relativePath, fileManagerName,
27
28
  fileExplorerDisabled: boolean;
28
29
  mutationsDisabled: boolean;
29
30
  }) => ComboboxValue[];
31
+ export declare const getAssetFolderContextMenuItems: ({ folderPath, fileManagerName, copyFolderPath, copyAbsolutePath, openFolderInExplorer, uploadAssets, fileExplorerAvailable, fileExplorerDisabled, mutationsDisabled, }: {
32
+ folderPath: string;
33
+ fileManagerName: string;
34
+ copyFolderPath: () => void;
35
+ copyAbsolutePath: (() => void) | null;
36
+ openFolderInExplorer: () => void;
37
+ uploadAssets: () => void;
38
+ fileExplorerAvailable: boolean;
39
+ fileExplorerDisabled: boolean;
40
+ mutationsDisabled: boolean;
41
+ }) => ComboboxValue[];
30
42
  export declare const AssetFolderTree: React.FC<{
31
43
  readonly item: AssetStructure;
32
44
  readonly name: string | null;
@@ -37,4 +49,5 @@ export declare const AssetFolderTree: React.FC<{
37
49
  readonly dropLocation: string | null;
38
50
  readonly setDropLocation: React.Dispatch<React.SetStateAction<string | null>>;
39
51
  readonly readOnlyStudio: boolean;
52
+ readonly uploadAssets: (assetPath: string | null) => void;
40
53
  }>;