@remotion/studio 4.0.506 → 4.0.508

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 (211) hide show
  1. package/dist/FastRefreshProvider.js +13 -9
  2. package/dist/api/copy-render-output-to-asset.d.ts +4 -0
  3. package/dist/api/copy-render-output-to-asset.js +11 -0
  4. package/dist/components/AssetSelector.js +19 -4
  5. package/dist/components/AssetSelectorItem.js +2 -2
  6. package/dist/components/CodingAgentIcon.d.ts +6 -0
  7. package/dist/components/CodingAgentIcon.js +12 -0
  8. package/dist/components/ConfigureDefaultEditorModal.d.ts +1 -3
  9. package/dist/components/ConfigureDefaultEditorModal.js +67 -77
  10. package/dist/components/ConfigureLicenseModal.d.ts +1 -4
  11. package/dist/components/ConfigureLicenseModal.js +89 -81
  12. package/dist/components/ContextMenu.d.ts +1 -0
  13. package/dist/components/ContextMenu.js +42 -13
  14. package/dist/components/EditorContent.js +4 -3
  15. package/dist/components/EditorContexts.js +6 -5
  16. package/dist/components/ExpandedTracksProvider.js +10 -53
  17. package/dist/components/InlineAction.d.ts +2 -1
  18. package/dist/components/InlineAction.js +3 -3
  19. package/dist/components/InspectorLocationCopy.js +8 -8
  20. package/dist/components/InspectorOpenInEditor.d.ts +2 -0
  21. package/dist/components/InspectorOpenInEditor.js +81 -50
  22. package/dist/components/InspectorPanel/AlignmentControls.js +2 -2
  23. package/dist/components/InspectorPanel/CompositionInspector.js +3 -1
  24. package/dist/components/InspectorPanel/SequenceInspectorHeader.d.ts +3 -0
  25. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +22 -4
  26. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +1 -1
  27. package/dist/components/InspectorPanel/styles.js +1 -1
  28. package/dist/components/InspectorSequenceSection.js +36 -4
  29. package/dist/components/Menu/MenuSectionHeader.d.ts +4 -0
  30. package/dist/components/Menu/MenuSectionHeader.js +20 -0
  31. package/dist/components/Menu/SubMenu.js +13 -2
  32. package/dist/components/Menu/menu-tree-context.d.ts +3 -0
  33. package/dist/components/Menu/menu-tree-context.js +13 -0
  34. package/dist/components/MenuBuildIndicator.js +1 -1
  35. package/dist/components/NewComposition/ComboBox.d.ts +6 -1
  36. package/dist/components/NewComposition/MenuContent.js +27 -19
  37. package/dist/components/NewComposition/menu-typeahead.js +2 -2
  38. package/dist/components/PlayPause.d.ts +1 -1
  39. package/dist/components/PlayPause.js +61 -12
  40. package/dist/components/Preview.js +29 -4
  41. package/dist/components/RenderButton.js +16 -12
  42. package/dist/components/RenderModal/GuiRenderStatus.js +23 -6
  43. package/dist/components/RenderModal/InfoBubble.d.ts +1 -0
  44. package/dist/components/RenderModal/InfoBubble.js +6 -4
  45. package/dist/components/RenderModal/InfoTooltip.d.ts +1 -0
  46. package/dist/components/RenderModal/InfoTooltip.js +12 -12
  47. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.d.ts +5 -0
  48. package/dist/components/RenderModal/SchemaEditor/SchemaLabel.js +16 -3
  49. package/dist/components/RenderModal/SchemaEditor/ZodArrayEditor.js +1 -1
  50. package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.d.ts +2 -0
  51. package/dist/components/RenderModal/SchemaEditor/ZodBooleanEditor.js +3 -2
  52. package/dist/components/RenderModal/SchemaEditor/ZodColorEditor.js +1 -1
  53. package/dist/components/RenderModal/SchemaEditor/ZodDateEditor.js +1 -1
  54. package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +2 -1
  55. package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.d.ts +1 -0
  56. package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +3 -3
  57. package/dist/components/RenderModal/SchemaEditor/ZodMatrixEditor.js +1 -1
  58. package/dist/components/RenderModal/SchemaEditor/ZodNonEditableValue.js +1 -1
  59. package/dist/components/RenderModal/SchemaEditor/ZodNumberEditor.js +1 -1
  60. package/dist/components/RenderModal/SchemaEditor/ZodObjectEditor.js +1 -1
  61. package/dist/components/RenderModal/SchemaEditor/ZodOrNullishEditor.js +8 -3
  62. package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
  63. package/dist/components/RenderModal/SchemaEditor/ZodStringEditor.js +1 -1
  64. package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +2 -2
  65. package/dist/components/RenderModal/SchemaEditor/ZodTextareaEditor.js +1 -1
  66. package/dist/components/RenderModal/SchemaEditor/ZodTupleEditor.js +1 -1
  67. package/dist/components/RenderModal/SchemaEditor/zod-schema-type.d.ts +1 -0
  68. package/dist/components/RenderModal/SchemaEditor/zod-schema-type.js +12 -1
  69. package/dist/components/RenderModal/ServerRenderModal.js +4 -0
  70. package/dist/components/RenderQueue/RenderQueueItem.js +8 -2
  71. package/dist/components/RenderQueue/actions.d.ts +4 -2
  72. package/dist/components/RenderQueue/actions.js +4 -2
  73. package/dist/components/RenderQueue/index.js +3 -4
  74. package/dist/components/RenderQueue/use-render-output-file-drag.d.ts +8 -0
  75. package/dist/components/RenderQueue/use-render-output-file-drag.js +121 -0
  76. package/dist/components/SegmentedControl.js +0 -1
  77. package/dist/components/SelectedOutlineCanvasRotation.d.ts +9 -0
  78. package/dist/components/SelectedOutlineCanvasRotation.js +237 -0
  79. package/dist/components/SelectedOutlineElement.d.ts +16 -18
  80. package/dist/components/SelectedOutlineElement.js +144 -931
  81. package/dist/components/SelectedOutlineKeyboardControls.d.ts +7 -0
  82. package/dist/components/SelectedOutlineKeyboardControls.js +261 -0
  83. package/dist/components/SelectedOutlineOverlay.d.ts +7 -14
  84. package/dist/components/SelectedOutlineOverlay.js +378 -864
  85. package/dist/components/SelectedOutlinePolygon.d.ts +26 -0
  86. package/dist/components/SelectedOutlinePolygon.js +360 -0
  87. package/dist/components/SelectedOutlineRenderer.d.ts +19 -0
  88. package/dist/components/SelectedOutlineRenderer.js +225 -0
  89. package/dist/components/SelectedOutlineRotationCornerHandle.d.ts +17 -0
  90. package/dist/components/SelectedOutlineRotationCornerHandle.js +271 -0
  91. package/dist/components/SelectedOutlineScaleEdgeLine.d.ts +17 -0
  92. package/dist/components/SelectedOutlineScaleEdgeLine.js +215 -0
  93. package/dist/components/SelectedOutlineSnapIndicators.d.ts +9 -0
  94. package/dist/components/SelectedOutlineSnapIndicators.js +29 -0
  95. package/dist/components/SelectedOutlineTransformOriginHandle.d.ts +9 -0
  96. package/dist/components/SelectedOutlineTransformOriginHandle.js +312 -0
  97. package/dist/components/SelectedOutlineUvControls.d.ts +3 -9
  98. package/dist/components/SelectedOutlineUvControls.js +57 -12
  99. package/dist/components/SequencePropsSubscriptionProvider.js +8 -0
  100. package/dist/components/SettingsContext.d.ts +15 -0
  101. package/dist/components/SettingsContext.js +116 -0
  102. package/dist/components/SettingsModal.js +10 -4
  103. package/dist/components/SettingsModalFooter.d.ts +1 -3
  104. package/dist/components/SettingsModalFooter.js +4 -6
  105. package/dist/components/ShowOutlinesProvider.js +2 -3
  106. package/dist/components/Timeline/EasingEditorModal.js +66 -22
  107. package/dist/components/Timeline/SequencePropsObserver.js +97 -1
  108. package/dist/components/Timeline/SubscribeToNodePaths.js +4 -2
  109. package/dist/components/Timeline/Timeline.js +22 -5
  110. package/dist/components/Timeline/TimelineDuplicateCount.d.ts +4 -0
  111. package/dist/components/Timeline/TimelineDuplicateCount.js +28 -0
  112. package/dist/components/Timeline/TimelineEffectItem.js +1 -4
  113. package/dist/components/Timeline/TimelineExpandedKeyframeRow.js +3 -23
  114. package/dist/components/Timeline/TimelineExpandedTrackKeyframes.d.ts +4 -2
  115. package/dist/components/Timeline/TimelineExpandedTrackKeyframes.js +11 -1
  116. package/dist/components/Timeline/TimelineFieldRowContent.js +10 -3
  117. package/dist/components/Timeline/TimelineRotationField.js +84 -12
  118. package/dist/components/Timeline/TimelineScaleField.js +58 -4
  119. package/dist/components/Timeline/TimelineSelection.d.ts +4 -0
  120. package/dist/components/Timeline/TimelineSelection.js +45 -2
  121. package/dist/components/Timeline/TimelineSequence.js +28 -25
  122. package/dist/components/Timeline/TimelineSequenceItem.js +91 -28
  123. package/dist/components/Timeline/TimelineSequencePropItem.js +5 -2
  124. package/dist/components/Timeline/TimelineTrack.js +2 -1
  125. package/dist/components/Timeline/TimelineTransformOriginField.js +78 -4
  126. package/dist/components/Timeline/TimelineTranslateField.js +55 -15
  127. package/dist/components/Timeline/Transform3DModeContext.d.ts +1 -0
  128. package/dist/components/Timeline/Transform3DModeContext.js +5 -0
  129. package/dist/components/Timeline/delete-selected-timeline-item.js +0 -6
  130. package/dist/components/Timeline/get-sequence-context-menu-items.d.ts +6 -3
  131. package/dist/components/Timeline/get-sequence-context-menu-items.js +69 -57
  132. package/dist/components/Timeline/sequence-props-subscription-store.d.ts +2 -1
  133. package/dist/components/Timeline/sequence-props-subscription-store.js +5 -2
  134. package/dist/components/Timeline/timeline-field-display-utils.js +2 -2
  135. package/dist/components/Timeline/timeline-field-row-layout.d.ts +6 -0
  136. package/dist/components/Timeline/timeline-field-row-layout.js +16 -1
  137. package/dist/components/Timeline/timeline-rotation-utils.d.ts +16 -0
  138. package/dist/components/Timeline/timeline-rotation-utils.js +145 -4
  139. package/dist/components/Timeline/timeline-translate-utils.d.ts +3 -2
  140. package/dist/components/Timeline/timeline-translate-utils.js +8 -4
  141. package/dist/components/Timeline/transform-3d-mode.d.ts +6 -0
  142. package/dist/components/Timeline/transform-3d-mode.js +36 -0
  143. package/dist/components/Timeline/transform-origin-utils.d.ts +4 -0
  144. package/dist/components/Timeline/transform-origin-utils.js +12 -6
  145. package/dist/components/Timeline/use-expanded-track-keyframe-rows.js +36 -4
  146. package/dist/components/Timeline/{use-open-sequence-in-editor.d.ts → use-open-sequence-in-apps.d.ts} +4 -1
  147. package/dist/components/Timeline/{use-open-sequence-in-editor.js → use-open-sequence-in-apps.js} +21 -5
  148. package/dist/components/Timeline/use-resolved-stack-react-to-change.d.ts +5 -1
  149. package/dist/components/Timeline/use-resolved-stack-react-to-change.js +45 -9
  150. package/dist/components/Timeline/use-sequence-props-subscription.d.ts +3 -1
  151. package/dist/components/Timeline/use-sequence-props-subscription.js +7 -2
  152. package/dist/components/Timeline/use-timeline-expanded-tree.d.ts +4 -0
  153. package/dist/components/Timeline/use-timeline-expanded-tree.js +45 -1
  154. package/dist/components/call-api.js +2 -0
  155. package/dist/components/canvas-rotation-cursor.d.ts +1 -0
  156. package/dist/components/canvas-rotation-cursor.js +14 -0
  157. package/dist/components/get-open-in-menu-items.d.ts +17 -0
  158. package/dist/components/get-open-in-menu-items.js +144 -0
  159. package/dist/components/selected-outline-drag.d.ts +11 -5
  160. package/dist/components/selected-outline-drag.js +80 -42
  161. package/dist/components/selected-outline-measurement.d.ts +7 -2
  162. package/dist/components/selected-outline-measurement.js +28 -1
  163. package/dist/components/selected-outline-order.d.ts +12 -0
  164. package/dist/components/selected-outline-order.js +251 -0
  165. package/dist/components/selected-outline-types.d.ts +15 -10
  166. package/dist/components/svg-point-to-client-point.d.ts +2 -0
  167. package/dist/components/svg-point-to-client-point.js +10 -0
  168. package/dist/components/use-auto-save-config.d.ts +8 -0
  169. package/dist/components/use-auto-save-config.js +74 -0
  170. package/dist/components/use-default-editor-info.d.ts +1 -0
  171. package/dist/components/use-default-editor-info.js +10 -30
  172. package/dist/esm/{chunk-jefhcs5z.js → chunk-fgedsvhb.js} +1 -2
  173. package/dist/esm/{chunk-b49ec3nz.js → chunk-zpn4m49r.js} +12924 -10139
  174. package/dist/esm/index.mjs +357 -2
  175. package/dist/esm/internals.mjs +12923 -10138
  176. package/dist/esm/previewEntry.mjs +12771 -9986
  177. package/dist/esm/renderEntry.mjs +2 -2
  178. package/dist/helpers/are-sequence-node-path-infos-equal.d.ts +2 -0
  179. package/dist/helpers/are-sequence-node-path-infos-equal.js +27 -0
  180. package/dist/helpers/calculate-timeline.js +3 -3
  181. package/dist/helpers/client-id.js +8 -1
  182. package/dist/helpers/format-file-location.d.ts +1 -1
  183. package/dist/helpers/format-file-location.js +3 -3
  184. package/dist/helpers/get-box-quads-polyfill-internals.js +10 -2
  185. package/dist/helpers/migrate-expanded-tracks-for-subscription-key.js +3 -3
  186. package/dist/helpers/open-in-editor.d.ts +4 -1
  187. package/dist/helpers/open-in-editor.js +9 -1
  188. package/dist/helpers/preview-server-events.js +4 -0
  189. package/dist/helpers/sequence-node-path-mutations.d.ts +4 -0
  190. package/dist/helpers/sequence-node-path-mutations.js +31 -0
  191. package/dist/helpers/studio-runtime-config.js +3 -0
  192. package/dist/helpers/timeline-node-path-key.d.ts +2 -0
  193. package/dist/helpers/timeline-node-path-key.js +3 -1
  194. package/dist/helpers/use-asset-drag-events.d.ts +2 -1
  195. package/dist/helpers/use-asset-drag-events.js +14 -6
  196. package/dist/helpers/use-menu-structure.js +2 -2
  197. package/dist/helpers/use-runtime-values.d.ts +1 -3
  198. package/dist/icons/cube.d.ts +4 -0
  199. package/dist/icons/cube.js +6 -0
  200. package/dist/icons/finder.d.ts +4 -0
  201. package/dist/icons/finder.js +8 -0
  202. package/dist/icons/terminal.d.ts +6 -0
  203. package/dist/icons/terminal.js +46 -0
  204. package/dist/index.d.ts +15 -0
  205. package/dist/index.js +8 -0
  206. package/dist/state/timeline-sequence-hover.d.ts +9 -3
  207. package/dist/state/timeline-sequence-hover.js +63 -12
  208. package/dist/state/transform-3d-mode.d.ts +10 -0
  209. package/dist/state/transform-3d-mode.js +27 -0
  210. package/dist/state/z-index.js +5 -8
  211. package/package.json +12 -12
@@ -29,12 +29,29 @@ const right = {
29
29
  const BundlingProgress = ({ progress, doneIn }) => {
30
30
  return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress === 1 ? 'Bundled' : `Bundling ${progress * 100}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
31
31
  };
32
- const BrowserSetupProgress = ({ progress, doneIn, startedBundling, alreadyAvailable }) => {
33
- return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress === 1 || alreadyAvailable ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: alreadyAvailable && startedBundling
34
- ? 'Headless browser already available'
35
- : progress === 1
36
- ? 'Downloaded Headless Shell'
37
- : `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
32
+ const failIconStyle = {
33
+ width: 16,
34
+ height: 16,
35
+ };
36
+ const FailIcon = () => {
37
+ return (jsx_runtime_1.jsx("svg", { style: failIconStyle, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: colors_1.FAIL_COLOR, d: "M0 160V352L160 512H352L512 352V160L352 0H160L0 160zm353.9 32l-17 17-47 47 47 47 17 17L320 353.9l-17-17-47-47-47 47-17 17L158.1 320l17-17 47-47-47-47-17-17L192 158.1l17 17 47 47 47-47 17-17L353.9 192z" }) }));
38
+ };
39
+ const BrowserSetupProgress = ({ progress, doneIn, startedBundling, alreadyAvailable, error }) => {
40
+ if (error) {
41
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [
42
+ jsx_runtime_1.jsx(FailIcon, {}), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: "Failed to download Headless Shell" })
43
+ ] }));
44
+ }
45
+ // Before the first download callback or the bundling phase, we don't know
46
+ // yet whether the browser is available - don't show a success state.
47
+ const stillChecking = alreadyAvailable && progress === 0 && !startedBundling;
48
+ return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [stillChecking ? (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: 0 })) : progress === 1 || alreadyAvailable ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: stillChecking
49
+ ? 'Checking for Headless Shell'
50
+ : alreadyAvailable && startedBundling
51
+ ? 'Headless browser already available'
52
+ : progress === 1
53
+ ? 'Downloaded Headless Shell'
54
+ : `Downloading Headless Shell ${Math.round(progress * 100)}%` }), doneIn ? jsx_runtime_1.jsxs("div", { style: right, children: [doneIn, "ms"] }) : null] }));
38
55
  };
39
56
  const RenderingProgress = ({ progress }) => {
40
57
  return (jsx_runtime_1.jsxs("div", { style: progressItem, children: [progress.frames === progress.totalFrames ? (jsx_runtime_1.jsx(SuccessIcon_1.SuccessIcon, {})) : (jsx_runtime_1.jsx(CircularProgress_1.CircularProgress, { progress: progress.frames / progress.totalFrames })), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: label, children: progress.doneIn
@@ -2,4 +2,5 @@ import React from 'react';
2
2
  export declare const InfoBubble: React.FC<{
3
3
  readonly title: string;
4
4
  readonly children: React.ReactNode;
5
+ readonly horizontalAlignment?: 'left' | 'right';
5
6
  }>;
@@ -23,7 +23,7 @@ const container = {
23
23
  fontSize: 14,
24
24
  verticalAlign: 'text-bottom',
25
25
  };
26
- const InfoBubble = ({ title, children }) => {
26
+ const InfoBubble = ({ title, children, horizontalAlignment = 'left' }) => {
27
27
  const [hovered, setIsHovered] = (0, react_1.useState)(false);
28
28
  const [opened, setOpened] = (0, react_1.useState)(false);
29
29
  const ref = (0, react_1.useRef)(null);
@@ -95,9 +95,11 @@ const InfoBubble = ({ title, children }) => {
95
95
  position: 'fixed',
96
96
  bottom: size.windowSize.height - size.top,
97
97
  }),
98
- left: size.left,
98
+ ...(horizontalAlignment === 'left'
99
+ ? { left: size.left }
100
+ : { right: size.windowSize.width - (size.left + size.width) }),
99
101
  };
100
- }, [layout, opened, size]);
102
+ }, [horizontalAlignment, layout, opened, size]);
101
103
  const style = (0, react_1.useMemo)(() => {
102
104
  return {
103
105
  ...container,
@@ -112,7 +114,7 @@ const InfoBubble = ({ title, children }) => {
112
114
  }, []);
113
115
  return (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [
114
116
  jsx_runtime_1.jsx("button", { ref: ref, tabIndex: tabIndex, style: style, title: title, type: "button", children: jsx_runtime_1.jsx("svg", { style: icon, viewBox: "0 0 512 512", children: jsx_runtime_1.jsx("path", { fill: hovered ? colors_1.WHITE : colors_1.LIGHT_TEXT, d: "M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336c-13.3 0-24 10.7-24 24s10.7 24 24 24h80c13.3 0 24-10.7 24-24s-10.7-24-24-24h-8V248c0-13.3-10.7-24-24-24H216c-13.3 0-24 10.7-24 24s10.7 24 24 24h24v64H216zm40-144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z" }) }) }), portalStyle
115
- ? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(InfoTooltip_1.InfoTooltip, { backgroundColor: colors_1.INPUT_BACKGROUND, arrowDirection: layout, children: children }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
117
+ ? react_dom_1.default.createPortal(jsx_runtime_1.jsx("div", { style: styles_1.outerPortal, className: "css-reset", children: jsx_runtime_1.jsx(z_index_1.HigherZIndex, { onOutsideClick: onHide, onEscape: onHide, children: jsx_runtime_1.jsx("div", { style: portalStyle, children: jsx_runtime_1.jsx(InfoTooltip_1.InfoTooltip, { backgroundColor: colors_1.INPUT_BACKGROUND, arrowDirection: layout, horizontalAlignment: horizontalAlignment, children: children }) }) }) }), (0, portals_1.getPortal)(currentZIndex))
116
118
  : null] }));
117
119
  };
118
120
  exports.InfoBubble = InfoBubble;
@@ -3,4 +3,5 @@ export declare const InfoTooltip: React.FC<{
3
3
  readonly children: React.ReactNode;
4
4
  readonly arrowDirection: 'up' | 'down';
5
5
  readonly backgroundColor: string;
6
+ readonly horizontalAlignment: 'left' | 'right';
6
7
  }>;
@@ -10,17 +10,8 @@ const arrow = {
10
10
  height: 7,
11
11
  display: 'block',
12
12
  overflow: 'visible',
13
- marginLeft: 7,
14
13
  };
15
- const arrowUp = {
16
- ...arrow,
17
- transform: `translateY(1px)`,
18
- };
19
- const arrowDown = {
20
- ...arrow,
21
- marginTop: -1,
22
- };
23
- const InfoTooltip = ({ children, arrowDirection, backgroundColor }) => {
14
+ const InfoTooltip = ({ children, arrowDirection, backgroundColor, horizontalAlignment }) => {
24
15
  const container = (0, react_1.useMemo)(() => {
25
16
  return {
26
17
  boxShadow: arrowDirection === 'down' ? styles_1.SHADOW_TOWARDS_TOP : styles_1.SHADOW_TOWARDS_BOTTOM,
@@ -32,11 +23,20 @@ const InfoTooltip = ({ children, arrowDirection, backgroundColor }) => {
32
23
  borderRadius: '4px',
33
24
  };
34
25
  }, [arrowDirection, backgroundColor]);
26
+ const arrowStyle = (0, react_1.useMemo)(() => {
27
+ return {
28
+ ...arrow,
29
+ ...(horizontalAlignment === 'left' ? { marginLeft: 7 } : { marginRight: 7 }),
30
+ ...(arrowDirection === 'up'
31
+ ? { transform: `translateY(1px)` }
32
+ : { marginTop: -1 }),
33
+ };
34
+ }, [arrowDirection, horizontalAlignment]);
35
35
  return (jsx_runtime_1.jsxs("div", { style: {
36
36
  display: 'flex',
37
37
  flexDirection: arrowDirection === 'up' ? 'column-reverse' : 'column',
38
- alignItems: 'flex-start',
38
+ alignItems: horizontalAlignment === 'left' ? 'flex-start' : 'flex-end',
39
39
  }, children: [
40
- jsx_runtime_1.jsx("div", { style: container, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: children }), arrowDirection === 'down' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowDown, children: jsx_runtime_1.jsx("path", { d: `M 14 0 L 7 7 L 0 0`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BLACK_HEX, strokeWidth: 0.5 }) })) : null, arrowDirection === 'up' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowUp, children: jsx_runtime_1.jsx("path", { d: `M 0 7 L 7 0 L 14 7`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BLACK_HEX, strokeWidth: 0.5 }) })) : null] }));
40
+ jsx_runtime_1.jsx("div", { style: container, className: is_menu_item_1.VERTICAL_SCROLLBAR_CLASSNAME, children: children }), arrowDirection === 'down' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowStyle, children: jsx_runtime_1.jsx("path", { d: `M 14 0 L 7 7 L 0 0`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BLACK_HEX, strokeWidth: 0.5 }) })) : null, arrowDirection === 'up' ? (jsx_runtime_1.jsx("svg", { viewBox: "0 0 14 7", style: arrowStyle, children: jsx_runtime_1.jsx("path", { d: `M 0 7 L 7 0 L 14 7`, fill: backgroundColor, strokeLinecap: "butt", stroke: colors_1.BLACK_HEX, strokeWidth: 0.5 }) })) : null] }));
41
41
  };
42
42
  exports.InfoTooltip = InfoTooltip;
@@ -1,9 +1,14 @@
1
1
  import React from 'react';
2
2
  import type { JSONPath } from './zod-types';
3
+ export declare const SchemaDescriptionOverrideContext: React.Context<{
4
+ readonly jsonPath: JSONPath;
5
+ readonly description: string;
6
+ } | null>;
3
7
  export declare const SchemaLabel: React.FC<{
4
8
  readonly jsonPath: JSONPath;
5
9
  readonly onRemove: null | (() => void);
6
10
  readonly valid: boolean;
7
11
  readonly suffix: string | null;
8
12
  readonly handleClick: null | (() => void);
13
+ readonly description: string | null;
9
14
  }>;
@@ -1,13 +1,15 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SchemaLabel = void 0;
3
+ exports.SchemaLabel = exports.SchemaDescriptionOverrideContext = 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
7
  const layout_1 = require("../../layout");
8
+ const InfoBubble_1 = require("../InfoBubble");
8
9
  const InlineRemoveButton_1 = require("../InlineRemoveButton");
9
10
  const get_schema_label_1 = require("./get-schema-label");
10
11
  const scroll_to_default_props_path_1 = require("./scroll-to-default-props-path");
12
+ exports.SchemaDescriptionOverrideContext = (0, react_1.createContext)(null);
11
13
  const compactStyles = {
12
14
  fontSize: 12,
13
15
  color: colors_1.LIGHT_TEXT,
@@ -17,8 +19,19 @@ const compactStyles = {
17
19
  alignItems: 'center',
18
20
  flex: 1,
19
21
  };
20
- const SchemaLabel = ({ jsonPath, onRemove, valid, suffix, handleClick }) => {
22
+ const descriptionStyle = {
23
+ fontSize: 12,
24
+ maxWidth: 360,
25
+ overflowWrap: 'anywhere',
26
+ padding: 10,
27
+ };
28
+ const SchemaLabel = ({ jsonPath, onRemove, valid, suffix, handleClick, description }) => {
21
29
  const [clickableButtonHovered, setClickableButtonHovered] = (0, react_1.useState)(false);
30
+ const descriptionOverride = (0, react_1.useContext)(exports.SchemaDescriptionOverrideContext);
31
+ const displayedDescription = (descriptionOverride === null || descriptionOverride === void 0 ? void 0 : descriptionOverride.jsonPath.length) === jsonPath.length &&
32
+ descriptionOverride.jsonPath.every((part, index) => part === jsonPath[index])
33
+ ? descriptionOverride.description
34
+ : description;
22
35
  const labelStyle = (0, react_1.useMemo)(() => {
23
36
  return {
24
37
  fontFamily: 'monospace',
@@ -36,6 +49,6 @@ const SchemaLabel = ({ jsonPath, onRemove, valid, suffix, handleClick }) => {
36
49
  const labelContent = (jsx_runtime_1.jsxs("span", { style: labelStyle, children: [(0, get_schema_label_1.getSchemaLabel)(jsonPath), " ", suffix ? suffix : null] }));
37
50
  return (jsx_runtime_1.jsxs("div", { style: compactStyles, className: scroll_to_default_props_path_1.DEFAULT_PROPS_PATH_CLASSNAME, "data-json-path": jsonPath.join('.'), children: [handleClick ? (
38
51
  // Minus the padding that a button has (user agent padding-line-start)
39
- jsx_runtime_1.jsx("button", { onPointerEnter: onClickablePointerEnter, onPointerLeave: onClickablePointerLeave, type: "button", onClick: handleClick, style: { border: 'none', padding: 0 }, children: labelContent })) : (labelContent), jsx_runtime_1.jsx(layout_1.Flex, {}), onRemove ? jsx_runtime_1.jsx(InlineRemoveButton_1.InlineRemoveButton, { onClick: onRemove }) : null] }));
52
+ jsx_runtime_1.jsx("button", { onPointerEnter: onClickablePointerEnter, onPointerLeave: onClickablePointerLeave, type: "button", onClick: handleClick, style: { border: 'none', padding: 0 }, children: labelContent })) : (labelContent), displayedDescription ? (jsx_runtime_1.jsx(InfoBubble_1.InfoBubble, { title: "Field description", horizontalAlignment: "right", children: jsx_runtime_1.jsx("div", { style: descriptionStyle, children: displayedDescription }) })) : null, jsx_runtime_1.jsx(layout_1.Flex, {}), onRemove ? jsx_runtime_1.jsx(InlineRemoveButton_1.InlineRemoveButton, { onClick: onRemove }) : null] }));
40
53
  };
41
54
  exports.SchemaLabel = SchemaLabel;
@@ -63,7 +63,7 @@ const ZodArrayEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad })
63
63
  jsx_runtime_1.jsx("div", { style: {
64
64
  display: 'flex',
65
65
  flexDirection: 'row',
66
- }, children: jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [value.map((child, i) => {
66
+ }, children: jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, description: (0, zod_schema_type_1.getUserFacingDescription)(schema), valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [value.map((child, i) => {
67
67
  return (
68
68
  // eslint-disable-next-line react/no-array-index-key
69
69
  jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [
@@ -1,4 +1,5 @@
1
1
  import React from 'react';
2
+ import { type AnyZodSchema } from './zod-schema-type';
2
3
  import type { JSONPath } from './zod-types';
3
4
  import type { UpdaterFunction } from './ZodSwitch';
4
5
  export declare const ZodBooleanEditor: React.FC<{
@@ -7,4 +8,5 @@ export declare const ZodBooleanEditor: React.FC<{
7
8
  readonly setValue: UpdaterFunction<boolean>;
8
9
  readonly onRemove: null | (() => void);
9
10
  readonly mayPad: boolean;
11
+ readonly schema: AnyZodSchema;
10
12
  }>;
@@ -6,15 +6,16 @@ const react_1 = require("react");
6
6
  const Checkbox_1 = require("../../Checkbox");
7
7
  const Fieldset_1 = require("./Fieldset");
8
8
  const SchemaLabel_1 = require("./SchemaLabel");
9
+ const zod_schema_type_1 = require("./zod-schema-type");
9
10
  const fullWidth = {
10
11
  width: '100%',
11
12
  };
12
- const ZodBooleanEditor = ({ jsonPath, value, setValue, onRemove, mayPad }) => {
13
+ const ZodBooleanEditor = ({ jsonPath, value, setValue, onRemove, mayPad, schema }) => {
13
14
  const onToggle = (0, react_1.useCallback)((e) => {
14
15
  setValue(() => e.target.checked, { shouldSave: true });
15
16
  }, [setValue]);
16
17
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
17
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: true, suffix: null }), jsx_runtime_1.jsx("div", { style: fullWidth, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { name: jsonPath.join('.'), checked: value, onChange: onToggle, disabled: false }) })
18
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: true, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsx("div", { style: fullWidth, children: jsx_runtime_1.jsx(Checkbox_1.Checkbox, { name: jsonPath.join('.'), checked: value, onChange: onToggle, disabled: false }) })
18
19
  ] }));
19
20
  };
20
21
  exports.ZodBooleanEditor = ZodBooleanEditor;
@@ -30,7 +30,7 @@ const ZodColorEditor = ({ jsonPath, value, setValue, schema, onRemove, mayPad })
30
30
  }, [setValue, value]);
31
31
  const status = localValue.success ? 'ok' : 'error';
32
32
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
33
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: localValue.success, suffix: null }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
33
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: localValue.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
34
34
  jsx_runtime_1.jsxs(layout_1.Row, { align: "center", children: [
35
35
  jsx_runtime_1.jsx(ColorPicker_1.ColorPicker, { value: value, status: status, onChange: onPickerChange, onChangeComplete: onPickerComplete, width: 45, height: 39, name: jsonPath.join('.') }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1, block: true }), jsx_runtime_1.jsx(RemInput_1.RemotionInput, { value: value, status: status, placeholder: jsonPath.join('.'), onChange: onTextChange, onBlur: onTextBlur, rightAlign: false, small: true })
36
36
  ] }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: localValue })
@@ -54,7 +54,7 @@ const ZodDateEditor = ({ jsonPath, value, setValue, schema, onRemove, mayPad })
54
54
  }, [setValue]);
55
55
  const zodValidation = (0, react_1.useMemo)(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
56
56
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
57
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
57
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
58
58
  jsx_runtime_1.jsx(RemInput_1.RemotionInput, { value: formatDate(value), type: "datetime-local", status: zodValidation.success ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange, onBlur: onBlur, style: inputStyle, rightAlign: false, small: true }), jsx_runtime_1.jsx(layout_1.Spacing, { y: 1, block: true }), jsx_runtime_1.jsx("div", { style: explainer, children: "Date is in local format" }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
59
59
  ] })
60
60
  ] }));
@@ -47,7 +47,7 @@ const ZodDiscriminatedUnionEditor = ({ schema, setValue, value, mayPad, jsonPath
47
47
  return {
48
48
  discriminator,
49
49
  markup: (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
50
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: [...jsonPath, discriminator], onRemove: onRemove, suffix: null, valid: zodValidation.success }), jsx_runtime_1.jsx(ComboBox_1.Combobox, { title: "Select type", values: comboBoxValues, selectedId: value[discriminator], size: "small" })
50
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: [...jsonPath, discriminator], onRemove: onRemove, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema), valid: zodValidation.success }), jsx_runtime_1.jsx(ComboBox_1.Combobox, { title: "Select type", values: comboBoxValues, selectedId: value[discriminator], size: "small" })
51
51
  ] }, 'replacement')),
52
52
  };
53
53
  }, [
@@ -56,6 +56,7 @@ const ZodDiscriminatedUnionEditor = ({ schema, setValue, value, mayPad, jsonPath
56
56
  mayPad,
57
57
  onRemove,
58
58
  discriminator,
59
+ schema,
59
60
  value,
60
61
  zodValidation.success,
61
62
  ]);
@@ -8,4 +8,5 @@ export declare const ZodEnumEditor: React.FC<{
8
8
  readonly value: string;
9
9
  readonly setValue: UpdaterFunction<string>;
10
10
  readonly onRemove: null | (() => void);
11
+ readonly mayPad: boolean;
11
12
  }>;
@@ -14,7 +14,7 @@ const ZodFieldValidation_1 = require("./ZodFieldValidation");
14
14
  const container = {
15
15
  width: '100%',
16
16
  };
17
- const ZodEnumEditor = ({ schema, jsonPath, setValue, value, onRemove }) => {
17
+ const ZodEnumEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad }) => {
18
18
  const onChange = (0, react_2.useCallback)((updater, { shouldSave }) => {
19
19
  setValue(updater, { shouldSave });
20
20
  }, [setValue]);
@@ -38,8 +38,8 @@ const ZodEnumEditor = ({ schema, jsonPath, setValue, value, onRemove }) => {
38
38
  });
39
39
  }, [enumValues, onChange, value]);
40
40
  const zodValidation = (0, react_1.useMemo)(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
41
- return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: true, children: [
42
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsx("div", { style: isRoot ? undefined : container, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: comboBoxValues, selectedId: value, title: value, size: "small" }) }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
41
+ return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
42
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsx("div", { style: isRoot ? undefined : container, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: comboBoxValues, selectedId: value, title: value, size: "small" }) }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
43
43
  ] }));
44
44
  };
45
45
  exports.ZodEnumEditor = ZodEnumEditor;
@@ -78,7 +78,7 @@ const ZodMatrixEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad }
78
78
  }, []);
79
79
  }, [value, dimensions]);
80
80
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
81
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [chunkedItems.map((row, rowIndex) => {
81
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, description: (0, zod_schema_type_1.getUserFacingDescription)(schema), valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [chunkedItems.map((row, rowIndex) => {
82
82
  return (jsx_runtime_1.jsx(react_1.default.Fragment
83
83
  // eslint-disable-next-line react/no-array-index-key
84
84
  , { children: jsx_runtime_1.jsx("div", { style: rowStyle, children: row.map((item, _index) => {
@@ -21,7 +21,7 @@ const wideEmptyLabel = {
21
21
  };
22
22
  const ZonNonEditableValue = ({ jsonPath, label, mayPad }) => {
23
23
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
24
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: null, valid: true, suffix: null }), jsx_runtime_1.jsx("div", { style: fullWidth, children: jsx_runtime_1.jsx("em", { style: wideEmptyLabel, children: label }) })
24
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: null, valid: true, suffix: null, description: null }), jsx_runtime_1.jsx("div", { style: fullWidth, children: jsx_runtime_1.jsx("em", { style: wideEmptyLabel, children: label }) })
25
25
  ] }));
26
26
  };
27
27
  exports.ZonNonEditableValue = ZonNonEditableValue;
@@ -25,7 +25,7 @@ const ZodNumberEditor = ({ jsonPath, value, schema, setValue, onRemove, mayPad }
25
25
  }, [setValue]);
26
26
  const zodValidation = (0, react_1.useMemo)(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
27
27
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
28
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
28
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
29
29
  jsx_runtime_1.jsx(InputDragger_1.InputDragger, { type: 'number', value: value, style: fullWidth, status: zodValidation.success ? 'ok' : 'error', placeholder: jsonPath.join('.'), onTextChange: onTextChange, onValueChange: onNumberChange, onValueChangeEnd: onNumberChangeEnd, min: (0, zod_number_constraints_1.getZodNumberMinimum)(schema), max: (0, zod_number_constraints_1.getZodNumberMaximum)(schema), step: (0, zod_number_constraints_1.getZodNumberStep)(schema), rightAlign: false, small: true }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
30
30
  ] })
31
31
  ] }));
@@ -60,7 +60,7 @@ const ZodObjectEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad,
60
60
  return expanded ? ' {' : ' {...}';
61
61
  }, [expanded]);
62
62
  const zodValidation = (0, react_2.useMemo)(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
63
- return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: !isRoot && mayPad, children: [isRoot ? null : (jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, valid: zodValidation.success, handleClick: () => setExpanded(!expanded) })), expanded ? (jsx_runtime_1.jsx(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: isRoot, children: keys.map((key) => {
63
+ return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: !isRoot && mayPad, children: [isRoot ? null : (jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, description: (0, zod_schema_type_1.getUserFacingDescription)(schema), valid: zodValidation.success, handleClick: () => setExpanded(!expanded) })), expanded ? (jsx_runtime_1.jsx(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: isRoot, children: keys.map((key) => {
64
64
  if (discriminatedUnionReplacement &&
65
65
  key === discriminatedUnionReplacement.discriminator) {
66
66
  return discriminatedUnionReplacement.markup;
@@ -14,7 +14,7 @@ const SchemaLabel_1 = require("./SchemaLabel");
14
14
  const zod_schema_type_1 = require("./zod-schema-type");
15
15
  const ZodSwitch_1 = require("./ZodSwitch");
16
16
  const labelStyle = {
17
- fontFamily: 'sans-serif',
17
+ fontFamily: 'monospace',
18
18
  fontSize: 12,
19
19
  color: colors_1.LIGHT_TEXT,
20
20
  };
@@ -25,6 +25,7 @@ const checkBoxWrapper = {
25
25
  marginTop: '5px',
26
26
  };
27
27
  const ZodOrNullishEditor = ({ jsonPath, schema, setValue, value, onRemove, nullishValue, mayPad, innerSchema, }) => {
28
+ var _a;
28
29
  const z = (0, get_zod_if_possible_1.useZodIfPossible)();
29
30
  if (!z) {
30
31
  throw new Error('expected zod');
@@ -32,14 +33,18 @@ const ZodOrNullishEditor = ({ jsonPath, schema, setValue, value, onRemove, nulli
32
33
  const zodTypes = (0, get_zod_if_possible_1.useZodTypesIfPossible)();
33
34
  const isChecked = value === nullishValue;
34
35
  const zodValidation = (0, react_1.useMemo)(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
36
+ const description = (0, zod_schema_type_1.getUserFacingDescription)(schema);
37
+ const descriptionOverride = (0, react_1.useMemo)(() => {
38
+ return description ? { jsonPath, description } : null;
39
+ }, [description, jsonPath]);
35
40
  const onCheckBoxChange = (0, react_2.useCallback)((e) => {
36
41
  const val = e.target.checked
37
42
  ? nullishValue
38
43
  : (0, create_zod_values_1.createZodValues)(innerSchema, z, zodTypes);
39
44
  setValue(() => val, { shouldSave: true });
40
45
  }, [innerSchema, nullishValue, setValue, z, zodTypes]);
41
- return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [value === nullishValue ? (jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null })) : (jsx_runtime_1.jsx(ZodSwitch_1.ZodSwitch, { value: value, setValue: setValue, jsonPath: jsonPath, schema: innerSchema, onRemove: onRemove, mayPad: false })), jsx_runtime_1.jsxs("div", { style: checkBoxWrapper, children: [
42
- jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: isChecked, onChange: onCheckBoxChange, disabled: false, name: jsonPath.join('.') }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsx("div", { style: labelStyle, children: String(nullishValue) })
46
+ return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [value === nullishValue ? (jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (_a = (0, zod_schema_type_1.getUserFacingDescription)(schema)) !== null && _a !== void 0 ? _a : (0, zod_schema_type_1.getUserFacingDescription)(innerSchema) })) : descriptionOverride ? (jsx_runtime_1.jsx(SchemaLabel_1.SchemaDescriptionOverrideContext.Provider, { value: descriptionOverride, children: jsx_runtime_1.jsx(ZodSwitch_1.ZodSwitch, { value: value, setValue: setValue, jsonPath: jsonPath, schema: innerSchema, onRemove: onRemove, mayPad: false }) })) : (jsx_runtime_1.jsx(ZodSwitch_1.ZodSwitch, { value: value, setValue: setValue, jsonPath: jsonPath, schema: innerSchema, onRemove: onRemove, mayPad: false })), jsx_runtime_1.jsxs("label", { style: checkBoxWrapper, children: [
47
+ jsx_runtime_1.jsx(Checkbox_1.Checkbox, { checked: isChecked, onChange: onCheckBoxChange, disabled: false, name: jsonPath.join('.') }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsxs("code", { style: labelStyle, children: ["<", String(nullishValue), ">"] })
43
48
  ] })
44
49
  ] }));
45
50
  };
@@ -38,7 +38,7 @@ const ZodStaticFileEditor = ({ schema, jsonPath, setValue, value, onRemove, mayP
38
38
  });
39
39
  }, [onChange, staticFiles, value]);
40
40
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
41
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsx("div", { style: isRoot ? undefined : container, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: comboBoxValues, selectedId: value, title: value, size: "small" }) }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
41
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsx("div", { style: isRoot ? undefined : container, children: jsx_runtime_1.jsx(ComboBox_1.Combobox, { values: comboBoxValues, selectedId: value, title: value, size: "small" }) }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
42
42
  ] }));
43
43
  };
44
44
  exports.ZodStaticFileEditor = ZodStaticFileEditor;
@@ -26,7 +26,7 @@ const ZodStringEditor = ({ jsonPath, value, setValue, schema, onRemove, mayPad }
26
26
  setValue(() => value, { shouldSave: true });
27
27
  }, [setValue, value]);
28
28
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
29
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
29
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
30
30
  jsx_runtime_1.jsx(RemInput_1.RemotionInput, { value: value, status: zodValidation.success ? 'ok' : 'error', placeholder: jsonPath.join('.'), onChange: onChange, onBlur: onBlur, rightAlign: false, name: jsonPath.join('.'), small: true }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
31
31
  ] })
32
32
  ] }));
@@ -52,7 +52,7 @@ const ZodSwitch = ({ schema, jsonPath, value, setValue, onRemove, mayPad }) => {
52
52
  return (jsx_runtime_1.jsx(ZodNumberEditor_1.ZodNumberEditor, { value: value, setValue: setValue, jsonPath: jsonPath, schema: schema, onRemove: onRemove, mayPad: mayPad }));
53
53
  }
54
54
  if (typeName === 'boolean') {
55
- return (jsx_runtime_1.jsx(ZodBooleanEditor_1.ZodBooleanEditor, { value: value, setValue: setValue, jsonPath: jsonPath, onRemove: onRemove, mayPad: mayPad }));
55
+ return (jsx_runtime_1.jsx(ZodBooleanEditor_1.ZodBooleanEditor, { value: value, setValue: setValue, jsonPath: jsonPath, onRemove: onRemove, mayPad: mayPad, schema: schema }));
56
56
  }
57
57
  if (typeName === 'undefined') {
58
58
  return (jsx_runtime_1.jsx(ZodNonEditableValue_1.ZonNonEditableValue, { jsonPath: jsonPath, label: 'undefined', mayPad: mayPad }));
@@ -78,7 +78,7 @@ const ZodSwitch = ({ schema, jsonPath, value, setValue, onRemove, mayPad }) => {
78
78
  return (jsx_runtime_1.jsx(ZodArrayEditor_1.ZodArrayEditor, { setValue: setValue, value: value, jsonPath: jsonPath, schema: schema, onRemove: onRemove, mayPad: mayPad }));
79
79
  }
80
80
  if (typeName === 'enum') {
81
- return (jsx_runtime_1.jsx(ZodEnumEditor_1.ZodEnumEditor, { setValue: setValue, value: value, jsonPath: jsonPath, schema: schema, onRemove: onRemove }));
81
+ return (jsx_runtime_1.jsx(ZodEnumEditor_1.ZodEnumEditor, { setValue: setValue, value: value, jsonPath: jsonPath, schema: schema, onRemove: onRemove, mayPad: mayPad }));
82
82
  }
83
83
  // In v3, effects wrap schemas (e.g. .refine(), .transform()).
84
84
  // In v4, refine/transform are embedded as checks, so this only applies to v3.
@@ -66,7 +66,7 @@ const ZodTextareaEditor = ({ jsonPath, value, setValue, schema, onRemove, mayPad
66
66
  }, [setValue, value]);
67
67
  const zodValidation = react_1.default.useMemo(() => (0, zod_schema_type_1.zodSafeParse)(schema, value), [schema, value]);
68
68
  return (jsx_runtime_1.jsxs(Fieldset_1.Fieldset, { shouldPad: mayPad, children: [
69
- jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
69
+ jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { handleClick: null, jsonPath: jsonPath, onRemove: onRemove, valid: zodValidation.success, suffix: null, description: (0, zod_schema_type_1.getUserFacingDescription)(schema) }), jsx_runtime_1.jsxs("div", { style: fullWidth, children: [
70
70
  jsx_runtime_1.jsx(RemTextarea_1.RemTextarea, { onChange: onChange, onBlur: onBlur, value: value, status: zodValidation ? 'ok' : 'error', placeholder: jsonPath.join('.'), name: jsonPath.join('.'), style: textareaStyle, small: true }), jsx_runtime_1.jsx(ZodFieldValidation_1.ZodFieldValidation, { path: jsonPath, zodValidation: zodValidation })
71
71
  ] })
72
72
  ] }));
@@ -63,7 +63,7 @@ const ZodTupleEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad })
63
63
  jsx_runtime_1.jsx("div", { style: {
64
64
  display: 'flex',
65
65
  flexDirection: 'row',
66
- }, children: jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [value.map((child, i) => {
66
+ }, children: jsx_runtime_1.jsx(SchemaLabel_1.SchemaLabel, { jsonPath: jsonPath, onRemove: onRemove, suffix: suffix, description: (0, zod_schema_type_1.getUserFacingDescription)(schema), valid: zodValidation.success, handleClick: () => setExpanded(!expanded) }) }), expanded ? (jsx_runtime_1.jsxs(SchemaVerticalGuide_1.SchemaVerticalGuide, { isRoot: false, children: [value.map((child, i) => {
67
67
  return (
68
68
  // eslint-disable-next-line react/no-array-index-key
69
69
  jsx_runtime_1.jsxs(react_1.default.Fragment, { children: [
@@ -63,6 +63,7 @@ export declare const getZodSchemaType: (schema: AnyZodSchema) => ZodSchemaType;
63
63
  * v4: schema.description
64
64
  */
65
65
  export declare const getZodSchemaDescription: (schema: AnyZodSchema) => string | undefined;
66
+ export declare const getUserFacingDescription: (schema: AnyZodSchema) => string | null;
66
67
  /**
67
68
  * Get the shape of an object schema.
68
69
  * v3: _def.shape() (function)
@@ -9,7 +9,7 @@
9
9
  * and accessor helpers that abstract v3/v4 `_def` property differences.
10
10
  */
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.getBrandedInner = exports.getPipelineInput = exports.getPipelineOutput = exports.getRecordKeyType = exports.getRecordValueType = exports.getTupleItems = exports.getIntersectionSchemas = exports.getDiscriminatedOption = exports.getDiscriminatedOptionKeys = exports.getDiscriminator = exports.getDefaultValue = exports.getUnionOptions = exports.getFirstEnumValue = exports.getEnumValues = exports.getLiteralValue = exports.getEffectsInner = exports.getInnerType = exports.getArrayElement = exports.getObjectShape = exports.getZodSchemaDescription = exports.getZodSchemaType = exports.isZodV3Schema = exports.getZodDef = exports.zodSafeParse = void 0;
12
+ exports.getBrandedInner = exports.getPipelineInput = exports.getPipelineOutput = exports.getRecordKeyType = exports.getRecordValueType = exports.getTupleItems = exports.getIntersectionSchemas = exports.getDiscriminatedOption = exports.getDiscriminatedOptionKeys = exports.getDiscriminator = exports.getDefaultValue = exports.getUnionOptions = exports.getFirstEnumValue = exports.getEnumValues = exports.getLiteralValue = exports.getEffectsInner = exports.getInnerType = exports.getArrayElement = exports.getObjectShape = exports.getUserFacingDescription = exports.getZodSchemaDescription = exports.getZodSchemaType = exports.isZodV3Schema = exports.getZodDef = exports.zodSafeParse = void 0;
13
13
  /**
14
14
  * Call safeParse on any Zod schema (v3 or v4).
15
15
  * All Zod schemas have safeParse at runtime, but some v4 internal types
@@ -106,6 +106,17 @@ const getZodSchemaDescription = (schema) => {
106
106
  return schema.description;
107
107
  };
108
108
  exports.getZodSchemaDescription = getZodSchemaDescription;
109
+ // Branded types (zColor(), zTextarea(), zMatrix()) store their marker in the
110
+ // description, so those must not surface as user-facing text.
111
+ const REMOTION_BRAND_PREFIX = '__remotion-';
112
+ const getUserFacingDescription = (schema) => {
113
+ const description = (0, exports.getZodSchemaDescription)(schema);
114
+ if (!description || description.startsWith(REMOTION_BRAND_PREFIX)) {
115
+ return null;
116
+ }
117
+ return description;
118
+ };
119
+ exports.getUserFacingDescription = getUserFacingDescription;
109
120
  /**
110
121
  * Get the shape of an object schema.
111
122
  * v3: _def.shape() (function)
@@ -388,6 +388,7 @@ const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, in
388
388
  chromeMode,
389
389
  offthreadVideoThreads,
390
390
  mediaCacheSizeInBytes,
391
+ licenseKey: renderDefaults.publicLicenseKey,
391
392
  })
392
393
  .then(() => {
393
394
  dispatchIfMounted({ type: 'succeed' });
@@ -418,6 +419,7 @@ const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, in
418
419
  chromeMode,
419
420
  offthreadVideoThreads,
420
421
  mediaCacheSizeInBytes,
422
+ renderDefaults.publicLicenseKey,
421
423
  ]);
422
424
  const [everyNthFrameSetting, setEveryNthFrameSetting] = (0, react_1.useState)(() => initialEveryNthFrame);
423
425
  const everyNthFrame = (0, react_1.useMemo)(() => {
@@ -489,6 +491,7 @@ const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, in
489
491
  offthreadVideoThreads,
490
492
  mediaCacheSizeInBytes,
491
493
  sampleRate,
494
+ licenseKey: renderDefaults.publicLicenseKey,
492
495
  })
493
496
  .then(() => {
494
497
  dispatchIfMounted({ type: 'succeed' });
@@ -545,6 +548,7 @@ const RenderModal = ({ readOnlyStudio, initialFrame, initialVideoImageFormat, in
545
548
  offthreadVideoThreads,
546
549
  mediaCacheSizeInBytes,
547
550
  sampleRate,
551
+ renderDefaults.publicLicenseKey,
548
552
  ]);
549
553
  const onClickSequence = (0, react_1.useCallback)(() => {
550
554
  var _a;
@@ -21,12 +21,17 @@ const RenderQueueProgressMessage_1 = require("./RenderQueueProgressMessage");
21
21
  const RenderQueueRemoveItem_1 = require("./RenderQueueRemoveItem");
22
22
  const RenderQueueRepeat_1 = require("./RenderQueueRepeat");
23
23
  const RenderQueueSavingMessage_1 = require("./RenderQueueSavingMessage");
24
+ const use_render_output_file_drag_1 = require("./use-render-output-file-drag");
24
25
  const container = {
25
26
  padding: 12,
26
27
  display: 'flex',
27
28
  flexDirection: 'row',
28
29
  paddingBottom: 10,
29
30
  paddingRight: 4,
31
+ marginBottom: 1,
32
+ marginLeft: 4,
33
+ borderRadius: 4,
34
+ width: 'calc(100% - 4px)',
30
35
  };
31
36
  const title = {
32
37
  fontSize: 13,
@@ -49,6 +54,7 @@ const RenderQueueItem = ({ job, selected }) => {
49
54
  const [hovered, setHovered] = (0, react_1.useState)(false);
50
55
  const { setCanvasContent } = (0, react_1.useContext)(remotion_1.Internals.CompositionSetters);
51
56
  const isClientJob = (0, context_1.isClientRenderJob)(job);
57
+ const { canDrag, isDragging, onDragEnd, onDragStart } = (0, use_render_output_file_drag_1.useRenderOutputFileDrag)(job);
52
58
  const onPointerEnter = (0, react_1.useCallback)(() => {
53
59
  setHovered(true);
54
60
  }, []);
@@ -138,9 +144,9 @@ const RenderQueueItem = ({ job, selected }) => {
138
144
  job.status === 'failed' ||
139
145
  job.status === 'cancelled') &&
140
146
  !((0, context_1.isClientRenderJob)(job) && (0, client_side_render_types_1.isRestoredClientJob)(job));
141
- return (jsx_runtime_1.jsxs(layout_1.Row, { onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: containerStyle, align: "center", onClick: onClick, className: selected ? SELECTED_CLASSNAME : undefined, children: [
147
+ return (jsx_runtime_1.jsxs(layout_1.Row, { "data-render-queue-item": job.id, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, style: containerStyle, align: "center", onClick: onClick, draggable: canDrag, onDragStart: onDragStart, onDragEnd: onDragEnd, className: selected ? SELECTED_CLASSNAME : undefined, children: [
142
148
  jsx_runtime_1.jsx(RenderQueueItemStatus_1.RenderQueueItemStatus, { job: job }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), jsx_runtime_1.jsxs("div", { style: right, children: [
143
149
  jsx_runtime_1.jsx("div", { style: title, children: job.compositionId }), jsx_runtime_1.jsx("div", { style: subtitle, children: job.status === 'done' ? (jsx_runtime_1.jsx(RenderQueueOutputName_1.RenderQueueOutputName, { job: job })) : job.status === 'failed' ? (jsx_runtime_1.jsx(RenderQueueError_1.RenderQueueError, { job: job })) : job.status === 'running' ? (jsx_runtime_1.jsx(RenderQueueProgressMessage_1.RenderQueueProgressMessage, { job: job })) : job.status === 'saving' ? (jsx_runtime_1.jsx(RenderQueueSavingMessage_1.RenderQueueSavingMessage, {})) : job.status === 'cancelled' ? (jsx_runtime_1.jsx(RenderQueueCancelledMessage_1.RenderQueueCancelledMessage, {})) : null })
144
- ] }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), canCopyToClipboard ? (jsx_runtime_1.jsx(RenderQueueCopyToClipboard_1.RenderQueueCopyToClipboard, { job: job })) : null, canRepeat ? jsx_runtime_1.jsx(RenderQueueRepeat_1.RenderQueueRepeatItem, { job: job }) : null, job.status === 'running' ? (jsx_runtime_1.jsx(RenderQueueItemCancelButton_1.RenderQueueCancelButton, { job: job })) : (jsx_runtime_1.jsx(RenderQueueRemoveItem_1.RenderQueueRemoveItem, { job: job })), job.status === 'done' ? (clientBlobInfo ? (jsx_runtime_1.jsx(RenderQueueDownloadItem_1.RenderQueueDownloadItem, { job: job })) : (jsx_runtime_1.jsx(RenderQueueOpenInFolder_1.RenderQueueOpenInFinderItem, { job: job }))) : null] }));
150
+ ] }), jsx_runtime_1.jsx(layout_1.Spacing, { x: 1 }), !isDragging ? (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: [canCopyToClipboard ? (jsx_runtime_1.jsx(RenderQueueCopyToClipboard_1.RenderQueueCopyToClipboard, { job: job })) : null, canRepeat ? jsx_runtime_1.jsx(RenderQueueRepeat_1.RenderQueueRepeatItem, { job: job }) : null, job.status === 'running' ? (jsx_runtime_1.jsx(RenderQueueItemCancelButton_1.RenderQueueCancelButton, { job: job })) : (jsx_runtime_1.jsx(RenderQueueRemoveItem_1.RenderQueueRemoveItem, { job: job })), job.status === 'done' ? (clientBlobInfo ? (jsx_runtime_1.jsx(RenderQueueDownloadItem_1.RenderQueueDownloadItem, { job: job })) : (jsx_runtime_1.jsx(RenderQueueOpenInFolder_1.RenderQueueOpenInFinderItem, { job: job }))) : null] })) : null] }));
145
151
  };
146
152
  exports.RenderQueueItem = RenderQueueItem;
@@ -1,5 +1,5 @@
1
1
  import type { EnumPath, RecastCodemod, RenderJob, VisualControlChange } from '@remotion/studio-shared';
2
- export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, multiProcessOnLinux, beepOnFinish, metadata, chromeMode, mediaCacheSizeInBytes, }: {
2
+ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, frame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, multiProcessOnLinux, beepOnFinish, metadata, chromeMode, mediaCacheSizeInBytes, licenseKey, }: {
3
3
  compositionId: string;
4
4
  outName: string;
5
5
  imageFormat: "jpeg" | "pdf" | "png" | "webp";
@@ -18,6 +18,7 @@ export declare const addStillRenderJob: ({ compositionId, outName, imageFormat,
18
18
  metadata: Record<string, string> | null;
19
19
  chromeMode: "chrome-for-testing" | "headless-shell";
20
20
  mediaCacheSizeInBytes: number | null;
21
+ licenseKey: string | null;
21
22
  }) => Promise<undefined>;
22
23
  export declare const addSequenceRenderJob: ({ compositionId, outName, imageFormat, startFrame, endFrame, scale, logLevel, chromiumOptions, delayRenderTimeout, envVariables, inputProps, concurrency, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, jpegQuality, disallowParallelEncoding, multiProcessOnLinux, beepOnFinish, repro, metadata, chromeMode, mediaCacheSizeInBytes, }: {
23
24
  compositionId: string;
@@ -43,7 +44,7 @@ export declare const addSequenceRenderJob: ({ compositionId, outName, imageForma
43
44
  chromeMode: "chrome-for-testing" | "headless-shell";
44
45
  mediaCacheSizeInBytes: number | null;
45
46
  }) => Promise<undefined>;
46
- export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, gopSize, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, metadata, hardwareAcceleration, chromeMode, mediaCacheSizeInBytes, sampleRate, }: {
47
+ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat, jpegQuality, scale, logLevel, codec, concurrency, crf, gopSize, startFrame, endFrame, muted, enforceAudioTrack, proResProfile, x264Preset, pixelFormat, audioBitrate, videoBitrate, everyNthFrame, numberOfGifLoops, delayRenderTimeout, audioCodec, disallowParallelEncoding, chromiumOptions, envVariables, inputProps, offthreadVideoCacheSizeInBytes, offthreadVideoThreads, colorSpace, multiProcessOnLinux, encodingMaxRate, encodingBufferSize, beepOnFinish, repro, forSeamlessAacConcatenation, separateAudioTo, metadata, hardwareAcceleration, chromeMode, mediaCacheSizeInBytes, sampleRate, licenseKey, }: {
47
48
  compositionId: string;
48
49
  outName: string;
49
50
  imageFormat: "jpeg" | "none" | "png";
@@ -86,6 +87,7 @@ export declare const addVideoRenderJob: ({ compositionId, outName, imageFormat,
86
87
  chromeMode: "chrome-for-testing" | "headless-shell";
87
88
  mediaCacheSizeInBytes: number | null;
88
89
  sampleRate: number;
90
+ licenseKey: string | null;
89
91
  }) => Promise<undefined>;
90
92
  export declare const unsubscribeFromFileExistenceWatcher: ({ file, clientId, }: {
91
93
  file: string;