@remotion/studio 4.0.357 → 4.0.358

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 (38) hide show
  1. package/.turbo/turbo-formatting.log +4 -0
  2. package/.turbo/turbo-lint.log +28 -0
  3. package/.turbo/turbo-make.log +2 -5
  4. package/dist/api/get-static-files.d.ts +1 -1
  5. package/dist/components/Timeline/LoopedIndicator.js +1 -1
  6. package/dist/components/Timeline/LoopedTimelineIndicators.js +6 -5
  7. package/dist/esm/{chunk-9b7dmaxn.js → chunk-j2wqjmwz.js} +24 -18
  8. package/dist/esm/{chunk-h26rhase.js → chunk-wc2c2x4m.js} +17 -11
  9. package/dist/esm/internals.mjs +16 -10
  10. package/dist/esm/previewEntry.mjs +16 -10
  11. package/dist/esm/renderEntry.mjs +2 -2
  12. package/package.json +92 -92
  13. package/tsconfig.tsbuildinfo +1 -1
  14. package/.turbo/turbo-test.log +0 -86
  15. package/LICENSE.md +0 -49
  16. package/dist/esm/chunk-4pe36a6v.js +0 -46840
  17. package/dist/esm/chunk-537k7w8j.js +0 -46766
  18. package/dist/esm/chunk-621t537e.js +0 -46761
  19. package/dist/esm/chunk-7ebekhek.js +0 -46772
  20. package/dist/esm/chunk-arzxf57z.js +0 -47030
  21. package/dist/esm/chunk-avss9483.js +0 -47028
  22. package/dist/esm/chunk-bcs5xcvy.js +0 -46764
  23. package/dist/esm/chunk-bgfkgcmg.js +0 -25
  24. package/dist/esm/chunk-cf4g1482.js +0 -25
  25. package/dist/esm/chunk-ckeskzn9.js +0 -46840
  26. package/dist/esm/chunk-ckv2bvaf.js +0 -46840
  27. package/dist/esm/chunk-ec8ke7ka.js +0 -47031
  28. package/dist/esm/chunk-genqsbxw.js +0 -46840
  29. package/dist/esm/chunk-gsv9zjt5.js +0 -47029
  30. package/dist/esm/chunk-h0d5z5fq.js +0 -46840
  31. package/dist/esm/chunk-jj18anfn.js +0 -46774
  32. package/dist/esm/chunk-jz78ytrt.js +0 -47027
  33. package/dist/esm/chunk-kdprv7ha.js +0 -46760
  34. package/dist/esm/chunk-qv5xwxwh.js +0 -46763
  35. package/dist/esm/chunk-r343ardc.js +0 -46773
  36. package/dist/esm/chunk-xnv9k83w.js +0 -46761
  37. package/dist/esm/chunk-z1myjaxv.js +0 -46764
  38. package/dist/esm/chunk-zjtmp09e.js +0 -46840
@@ -0,0 +1,4 @@
1
+
2
+ $ prettier --experimental-cli src --check
3
+ [?25l- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ Checking formatting...- Checking formatting...\ Checking formatting...| Checking formatting.../ src/internals.ts- src/internals.ts\ src/internals.ts| src/internals.ts/ src/internals.ts- src/internals.ts\ src/internals.ts| src/internals.ts/ src/internals.ts- src/api/play.ts\ src/api/play.ts| src/api/delete-static-file.ts/ src/Studio.tsx- src/api/get-zod-schema-from-primitive.ts\ src/api/write-static-file.ts| src/api/write-static-file.ts/ src/api/write-static-file.ts- src/api/write-static-file.ts\ src/api/write-static-file.ts| src/api/watch-static-file.ts/ src/api/watch-static-file.ts- src/api/watch-static-file.ts\ src/api/watch-static-file.ts| src/api/watch-static-file.ts/ src/components/AskAiModal.tsx- src/components/AskAiModal.tsx\ src/components/CheckboardToggle.tsx| src/components/CheckboardToggle.tsx/ src/components/CheckboardToggle.tsx- src/api/seek.ts\ src/api/update-default-props.ts| src/components/Checkbox.tsx/ src/components/Checkbox.tsx- src/components/CanvasIfSizeIsAvailable.tsx\ src/components/CanvasIfSizeIsAvailable.tsx| src/components/CanvasIfSizeIsAvailable.tsx/ src/components/CanvasIfSizeIsAvailable.tsx- src/components/CopyButton.tsx\ src/components/CopyButton.tsx| src/components/AssetSelector.tsx/ src/components/CheckerboardProvider.tsx- src/components/EditorContent.tsx\ src/components/ContextMenu.tsx| src/components/ContextMenu.tsx/ src/components/CompSelectorRef.tsx- src/components/FramePersistor.tsx\ src/components/GlobalKeybindings.tsx| src/components/ExplorerPanel.tsx/ src/components/InitialCompositionLoader.tsx- src/components/InstallablePackage.tsx\ src/components/Editor.tsx| src/components/FullscreenToggle.tsx/ src/api/reevaluate-composition.ts- src/components/ModalFooter.tsx\ src/components/MobilePanel.tsx| src/components/PlayBeepSound.tsx/ src/components/NoRegisterRoot.tsx- src/components/PlaybackRateSelector.tsx\ src/components/ShowRulersProvider.tsx| src/components/RenderPreview.tsx/ src/components/TextViewer.tsx- src/components/PlayPause.tsx\ src/components/PlayPause.tsx| src/components/RenderButton.tsx/ src/error-overlay/entry-basic.ts- src/components/ZoomPersistor.tsx\ src/helpers/calculate-timeline.ts| src/helpers/calculate-timeline.ts/ src/components/load-canvas-content-from-url.ts- src/helpers/create-folder-tree.ts\ src/helpers/copy-text.ts| src/helpers/get-timeline-nestedness.ts/ src/components/TimelineInOutToggle.tsx- src/helpers/editor-ruler.ts\ src/helpers/persist-open-folders.tsx| src/helpers/smooth-zoom.ts/ src/helpers/use-max-media-duration.ts- src/helpers/use-file-existence.ts\ src/helpers/noop.ts| src/icons/audio.tsx/ src/helpers/validate-new-comp-data.ts- src/icons/render.tsx\ src/state/input-dragger-click-lock.ts| src/state/keybindings.tsx/ src/icons/plus.tsx- src/test/format-time.test.ts\ src/test/color-math.test.ts| src/helpers/use-menu-structure.tsx/ src/components/EditorRuler/use-is-ruler-visible.ts- src/components/EditorGuides/index.tsx\ src/components/EditorGuides/index.tsx| src/state/modals.ts/ src/components/Menu/portals.ts- src/components/NewComposition/DismissableModal.tsx\ src/components/NewComposition/DiffPreview.tsx| src/components/NewComposition/DeleteComposition.tsx/ src/components/NewComposition/InputDragger.tsx- src/components/Menu/MenuSubItem.tsx\ src/components/Notifications/ServerDisconnected.tsx| src/components/NewComposition/RemInputTypeColor.tsx/ src/components/NewComposition/RemInputTypeColor.tsx- src/components/NewComposition/render-aspect-ratio.tsx\ src/components/QuickSwitcher/fuzzy-search.ts| src/components/QuickSwitcher/fuzzy-search.ts/ src/components/NewComposition/ComboBox.tsx- src/components/RenderModal/CliCopyButton.tsx\ src/components/RenderModal/EnforceAudioTrackSetting.tsx| src/components/RenderModal/FrameRangeSetting.tsx/ src/components/RenderModal/FrameRangeSetting.tsx- src/components/RenderModal/NumberOfLoopsSetting.tsx\ src/components/RenderModal/RenderModalGif.tsx| src/components/RenderModal/OptionExplainerBubble.tsx/ src/components/RenderModal/OptionExplainer.tsx- src/components/RenderModal/RenderModalAdvanced.tsx\ src/components/RenderModal/WarningIndicatorButton.tsx| src/components/RenderModal/RenderModalBasic.tsx/ src/components/RenderModal/out-name-checker.ts- src/components/RenderModal/GuiRenderStatus.tsx\ src/components/RenderModal/RenderModalJSONPropsEditor.tsx| src/components/RenderQueue/RenderQueueError.tsx/ src/components/RenderQueue/RenderQueueOpenInFolder.tsx- src/components/RenderQueue/item-style.ts\ src/components/Splitter/SplitterContext.tsx| src/components/Splitter/SplitterContext.tsx/ src/components/Splitter/SplitterContext.tsx- src/components/Timeline/LoopedIndicator.tsx\ src/components/Timeline/MaxTimelineTracks.tsx| src/components/Timeline/TimelineList.tsx/ src/components/Tabs/vertical.tsx- src/components/Timeline/TimelineTracks.tsx\ src/components/Timeline/imperative-state.ts| src/components/UpdateModal/OpenIssueButton.tsx/ src/components/Timeline/is-collapsed.ts- src/components/WebRender/TriggerWebRender.tsx\ src/components/VisualControls/get-original-stack-trace.ts| src/components/Timeline/TimelineTimeIndicators.tsx/ src/components/Timeline/TimelineVideoInfo.tsx- src/error-overlay/react-overlay/listen-to-runtime-errors.ts\ src/error-overlay/remotion-overlay/Retry.tsx| src/error-overlay/remotion-overlay/format-location.ts/ src/error-overlay/remotion-overlay/get-help-link.ts- src/components/RenderModal/SchemaEditor/SchemaLabel.tsx\ src/components/RenderModal/SchemaEditor/SchemaErrorMessages.tsx| src/components/Timeline/TimelineDragHandler.tsx/ src/components/RenderModal/SchemaEditor/Fieldset.tsx- src/error-overlay/remotion-overlay/ErrorMessage.tsx\ src/components/VisualControls/VisualControlHandle.tsx| src/components/RenderModal/SchemaEditor/SchemaVerticalGuide.tsx/ src/components/RenderModal/SchemaEditor/ZodFieldValidation.tsx- src/components/RenderModal/SchemaEditor/ZodNonEditableValue.tsx\ src/components/RenderModal/SchemaEditor/ZodNonEditableValue.tsx| src/components/RenderModal/SchemaEditor/ZodTupleItemEditor.tsx/ src/components/RenderModal/SchemaEditor/deep-equal.ts- src/components/RenderModal/SchemaEditor/scroll-to-default-props-path.ts\ src/components/RenderModal/SchemaEditor/ZodStaticFileEditor.tsx| src/components/RenderModal/SchemaEditor/ZodObjectEditor.tsx/ src/components/RenderModal/SchemaEditor/local-state.tsx- src/error-overlay/react-overlay/utils/get-stack-frames.ts\ src/components/RenderModal/SchemaEditor/ZodUnionEditor.tsx| src/components/RenderModal/SchemaEditor/create-zod-values.ts/ src/error-overlay/react-overlay/utils/parser.ts- src/error-overlay/react-overlay/utils/parser.ts\ src/components/RenderModal/SchemaEditor/ZodSwitch.tsx[?25hChecking formatting...
4
+ [?25hAll matched files use Prettier code style!
@@ -0,0 +1,28 @@
1
+
2
+ $ eslint src
3
+ =============
4
+
5
+ WARNING: You are currently running a version of TypeScript which is not officially supported by @typescript-eslint/typescript-estree.
6
+
7
+ You may find that it works just fine, or you may not.
8
+
9
+ SUPPORTED TYPESCRIPT VERSIONS: >=4.7.4 <5.7.0
10
+
11
+ YOUR TYPESCRIPT VERSION: 5.8.2
12
+
13
+ Please only submit bug reports when using the officially supported version.
14
+
15
+ =============
16
+ 
17
+ /Users/jonathanburger/remotion/packages/studio/src/components/QuickSwitcher/fuzzy-search.ts
18
+  23:3 warning Unused eslint-disable directive (no problems were reported from 'no-bitwise')
19
+ 
20
+ /Users/jonathanburger/remotion/packages/studio/src/error-overlay/react-overlay/utils/get-source-map.ts
21
+  54:1 warning Unexpected 'todo' comment: 'TODO: Can import this from...' no-warning-comments
22
+ 
23
+ /Users/jonathanburger/remotion/packages/studio/src/visual-controls/get-current-edited-value.ts
24
+  10:2 warning Unexpected 'todo' comment: 'TODO: What if z.null()' no-warning-comments
25
+ 
26
+ ✖ 3 problems (0 errors, 3 warnings)
27
+  0 errors and 1 warning potentially fixable with the `--fix` option.
28
+ 
@@ -1,6 +1,3 @@
1
1
 
2
- 
3
- > @remotion/studio@4.0.357 make /Users/jonathanburger/remotion/packages/studio
4
- > tsc -d && bun --env-file=../.env.bundle bundle.ts
5
-
6
- [55.83ms] Generated.
2
+ $ tsc -d && bun --env-file=../.env.bundle bundle.ts
3
+ [56.80ms] Generated.
@@ -1,7 +1,7 @@
1
1
  export declare const getStaticFiles: () => StaticFile[];
2
2
  export type StaticFile = {
3
3
  /**
4
- * A string that you can pass to the `src` attribute of an `<Audio>`, `<Img>` and `<Video>` element.
4
+ * A string that you can pass to the `src` attribute of an `<Audio>`, `<Img>`, `<Video>`, `<Html5Audio>`, `<Html5Video>` or `<OffthreadVideo>` element.
5
5
  */
6
6
  src: string;
7
7
  /**
@@ -5,7 +5,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const remotion_1 = require("remotion");
6
6
  const colors_1 = require("../../helpers/colors");
7
7
  const width = {
8
- width: 30,
8
+ width: 0,
9
9
  flexDirection: 'row',
10
10
  display: 'flex',
11
11
  position: 'relative',
@@ -13,10 +13,11 @@ const row = {
13
13
  flexDirection: 'row',
14
14
  };
15
15
  const LoopedTimelineIndicator = ({ loops }) => {
16
- return ((0, jsx_runtime_1.jsx)(remotion_1.AbsoluteFill, { style: row, children: new Array(loops).fill(true).map((_l, i) => {
17
- return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment
18
- // eslint-disable-next-line
19
- , { children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), i === loops - 1 ? null : (0, jsx_runtime_1.jsx)(LoopedIndicator_1.LoopedIndicator, {})] }, i));
20
- }) }));
16
+ const leftOver = loops % 1;
17
+ return ((0, jsx_runtime_1.jsxs)(remotion_1.AbsoluteFill, { style: row, children: [new Array(Math.floor(loops)).fill(true).map((_l, i) => {
18
+ return ((0, jsx_runtime_1.jsxs)(react_1.default.Fragment
19
+ // eslint-disable-next-line
20
+ , { children: [(0, jsx_runtime_1.jsx)(layout_1.Flex, {}), i === loops - 1 ? null : (0, jsx_runtime_1.jsx)(LoopedIndicator_1.LoopedIndicator, {})] }, i));
21
+ }), leftOver > 0 ? (0, jsx_runtime_1.jsx)("div", { style: { flex: leftOver } }) : null] }));
21
22
  };
22
23
  exports.LoopedTimelineIndicator = LoopedTimelineIndicator;
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __require,
3
3
  __toESM
4
- } from "./chunk-bgfkgcmg.js";
4
+ } from "./chunk-6jf1natv.js";
5
5
 
6
6
  // src/Studio.tsx
7
7
  import { useLayoutEffect as useLayoutEffect2 } from "react";
@@ -15976,6 +15976,7 @@ var makeRetryPayload = (job) => {
15976
15976
  initialConcurrency: defaults.concurrency,
15977
15977
  maxConcurrency: defaults.maxConcurrency,
15978
15978
  minConcurrency: defaults.minConcurrency,
15979
+ initialHeadless: job.chromiumOptions.headless,
15979
15980
  initialMuted: defaults.muted,
15980
15981
  initialEnforceAudioTrack: defaults.enforceAudioTrack,
15981
15982
  initialProResProfile: defaults.proResProfile,
@@ -15989,7 +15990,6 @@ var makeRetryPayload = (job) => {
15989
15990
  initialEnvVariables: job.envVariables,
15990
15991
  initialDisableWebSecurity: job.chromiumOptions.disableWebSecurity,
15991
15992
  initialOpenGlRenderer: job.chromiumOptions.gl,
15992
- initialHeadless: job.chromiumOptions.headless,
15993
15993
  initialIgnoreCertificateErrors: job.chromiumOptions.ignoreCertificateErrors,
15994
15994
  defaultProps: NoReactInternals11.deserializeJSONWithSpecialTypes(job.serializedInputPropsWithCustomSchema),
15995
15995
  initialStillImageFormat: defaults.stillImageFormat,
@@ -16040,8 +16040,8 @@ var makeRetryPayload = (job) => {
16040
16040
  initialEnvVariables: job.envVariables,
16041
16041
  initialDisableWebSecurity: job.chromiumOptions.disableWebSecurity,
16042
16042
  initialOpenGlRenderer: job.chromiumOptions.gl,
16043
- initialHeadless: job.chromiumOptions.headless,
16044
16043
  initialIgnoreCertificateErrors: job.chromiumOptions.ignoreCertificateErrors,
16044
+ initialHeadless: job.chromiumOptions.headless,
16045
16045
  defaultProps: NoReactInternals11.deserializeJSONWithSpecialTypes(job.serializedInputPropsWithCustomSchema),
16046
16046
  inFrameMark: job.startFrame,
16047
16047
  outFrameMark: job.endFrame,
@@ -38095,7 +38095,7 @@ var useMaxMediaDuration = (s, fps) => {
38095
38095
  const durationOrInfinity = metadata.durationInSeconds ?? Infinity;
38096
38096
  cache.set(src, Math.floor(durationOrInfinity * fps));
38097
38097
  setMaxMediaDuration(Math.floor(durationOrInfinity * fps));
38098
- });
38098
+ }).catch(() => {});
38099
38099
  });
38100
38100
  return () => {
38101
38101
  try {
@@ -38277,7 +38277,7 @@ import { AbsoluteFill as AbsoluteFill4 } from "remotion";
38277
38277
  import { AbsoluteFill as AbsoluteFill3 } from "remotion";
38278
38278
  import { jsx as jsx198, jsxs as jsxs95 } from "react/jsx-runtime";
38279
38279
  var width = {
38280
- width: 30,
38280
+ width: 0,
38281
38281
  flexDirection: "row",
38282
38282
  display: "flex",
38283
38283
  position: "relative"
@@ -38347,16 +38347,22 @@ var row6 = {
38347
38347
  flexDirection: "row"
38348
38348
  };
38349
38349
  var LoopedTimelineIndicator = ({ loops }) => {
38350
- return /* @__PURE__ */ jsx199(AbsoluteFill4, {
38350
+ const leftOver = loops % 1;
38351
+ return /* @__PURE__ */ jsxs96(AbsoluteFill4, {
38351
38352
  style: row6,
38352
- children: new Array(loops).fill(true).map((_l, i) => {
38353
- return /* @__PURE__ */ jsxs96(React136.Fragment, {
38354
- children: [
38355
- /* @__PURE__ */ jsx199(Flex, {}),
38356
- i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38357
- ]
38358
- }, i);
38359
- })
38353
+ children: [
38354
+ new Array(Math.floor(loops)).fill(true).map((_l, i) => {
38355
+ return /* @__PURE__ */ jsxs96(React136.Fragment, {
38356
+ children: [
38357
+ /* @__PURE__ */ jsx199(Flex, {}),
38358
+ i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38359
+ ]
38360
+ }, i);
38361
+ }),
38362
+ leftOver > 0 ? /* @__PURE__ */ jsx199("div", {
38363
+ style: { flex: leftOver }
38364
+ }) : null
38365
+ ]
38360
38366
  });
38361
38367
  };
38362
38368
 
@@ -44791,20 +44797,20 @@ var RenderModal = ({
44791
44797
  const [userAgent, setUserAgent] = useState78(() => initialUserAgent === null ? null : initialUserAgent.trim() === "" ? null : initialUserAgent);
44792
44798
  const chromiumOptions = useMemo126(() => {
44793
44799
  return {
44794
- headless,
44795
44800
  disableWebSecurity,
44796
44801
  ignoreCertificateErrors,
44797
44802
  gl: openGlOption === "default" ? null : openGlOption,
44798
44803
  userAgent: userAgent === null ? null : userAgent.trim() === "" ? null : userAgent,
44799
- enableMultiProcessOnLinux: multiProcessOnLinux
44804
+ enableMultiProcessOnLinux: multiProcessOnLinux,
44805
+ headless
44800
44806
  };
44801
44807
  }, [
44802
- headless,
44803
44808
  disableWebSecurity,
44804
44809
  ignoreCertificateErrors,
44805
44810
  openGlOption,
44806
44811
  userAgent,
44807
- multiProcessOnLinux
44812
+ multiProcessOnLinux,
44813
+ headless
44808
44814
  ]);
44809
44815
  const [outName, setOutName] = useState78(() => initialOutName);
44810
44816
  const [endFrameOrNull, setEndFrame] = useState78(() => outFrameMark ?? null);
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __require,
3
3
  __toESM
4
- } from "./chunk-bgfkgcmg.js";
4
+ } from "./chunk-6jf1natv.js";
5
5
 
6
6
  // src/Studio.tsx
7
7
  import { useLayoutEffect as useLayoutEffect2 } from "react";
@@ -38277,7 +38277,7 @@ import { AbsoluteFill as AbsoluteFill4 } from "remotion";
38277
38277
  import { AbsoluteFill as AbsoluteFill3 } from "remotion";
38278
38278
  import { jsx as jsx198, jsxs as jsxs95 } from "react/jsx-runtime";
38279
38279
  var width = {
38280
- width: 30,
38280
+ width: 0,
38281
38281
  flexDirection: "row",
38282
38282
  display: "flex",
38283
38283
  position: "relative"
@@ -38347,16 +38347,22 @@ var row6 = {
38347
38347
  flexDirection: "row"
38348
38348
  };
38349
38349
  var LoopedTimelineIndicator = ({ loops }) => {
38350
- return /* @__PURE__ */ jsx199(AbsoluteFill4, {
38350
+ const leftOver = loops % 1;
38351
+ return /* @__PURE__ */ jsxs96(AbsoluteFill4, {
38351
38352
  style: row6,
38352
- children: new Array(loops).fill(true).map((_l, i) => {
38353
- return /* @__PURE__ */ jsxs96(React136.Fragment, {
38354
- children: [
38355
- /* @__PURE__ */ jsx199(Flex, {}),
38356
- i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38357
- ]
38358
- }, i);
38359
- })
38353
+ children: [
38354
+ new Array(Math.floor(loops)).fill(true).map((_l, i) => {
38355
+ return /* @__PURE__ */ jsxs96(React136.Fragment, {
38356
+ children: [
38357
+ /* @__PURE__ */ jsx199(Flex, {}),
38358
+ i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38359
+ ]
38360
+ }, i);
38361
+ }),
38362
+ leftOver > 0 ? /* @__PURE__ */ jsx199("div", {
38363
+ style: { flex: leftOver }
38364
+ }) : null
38365
+ ]
38360
38366
  });
38361
38367
  };
38362
38368
 
@@ -38296,7 +38296,7 @@ import { AbsoluteFill as AbsoluteFill4 } from "remotion";
38296
38296
  import { AbsoluteFill as AbsoluteFill3 } from "remotion";
38297
38297
  import { jsx as jsx198, jsxs as jsxs95 } from "react/jsx-runtime";
38298
38298
  var width = {
38299
- width: 30,
38299
+ width: 0,
38300
38300
  flexDirection: "row",
38301
38301
  display: "flex",
38302
38302
  position: "relative"
@@ -38366,16 +38366,22 @@ var row6 = {
38366
38366
  flexDirection: "row"
38367
38367
  };
38368
38368
  var LoopedTimelineIndicator = ({ loops }) => {
38369
- return /* @__PURE__ */ jsx199(AbsoluteFill4, {
38369
+ const leftOver = loops % 1;
38370
+ return /* @__PURE__ */ jsxs96(AbsoluteFill4, {
38370
38371
  style: row6,
38371
- children: new Array(loops).fill(true).map((_l, i) => {
38372
- return /* @__PURE__ */ jsxs96(React136.Fragment, {
38373
- children: [
38374
- /* @__PURE__ */ jsx199(Flex, {}),
38375
- i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38376
- ]
38377
- }, i);
38378
- })
38372
+ children: [
38373
+ new Array(Math.floor(loops)).fill(true).map((_l, i) => {
38374
+ return /* @__PURE__ */ jsxs96(React136.Fragment, {
38375
+ children: [
38376
+ /* @__PURE__ */ jsx199(Flex, {}),
38377
+ i === loops - 1 ? null : /* @__PURE__ */ jsx199(LoopedIndicator, {})
38378
+ ]
38379
+ }, i);
38380
+ }),
38381
+ leftOver > 0 ? /* @__PURE__ */ jsx199("div", {
38382
+ style: { flex: leftOver }
38383
+ }) : null
38384
+ ]
38379
38385
  });
38380
38386
  };
38381
38387
 
@@ -38576,7 +38576,7 @@ import { AbsoluteFill as AbsoluteFill5 } from "remotion";
38576
38576
  import { AbsoluteFill as AbsoluteFill4 } from "remotion";
38577
38577
  import { jsx as jsx199, jsxs as jsxs95 } from "react/jsx-runtime";
38578
38578
  var width = {
38579
- width: 30,
38579
+ width: 0,
38580
38580
  flexDirection: "row",
38581
38581
  display: "flex",
38582
38582
  position: "relative"
@@ -38646,16 +38646,22 @@ var row6 = {
38646
38646
  flexDirection: "row"
38647
38647
  };
38648
38648
  var LoopedTimelineIndicator = ({ loops }) => {
38649
- return /* @__PURE__ */ jsx200(AbsoluteFill5, {
38649
+ const leftOver = loops % 1;
38650
+ return /* @__PURE__ */ jsxs96(AbsoluteFill5, {
38650
38651
  style: row6,
38651
- children: new Array(loops).fill(true).map((_l, i) => {
38652
- return /* @__PURE__ */ jsxs96(React137.Fragment, {
38653
- children: [
38654
- /* @__PURE__ */ jsx200(Flex, {}),
38655
- i === loops - 1 ? null : /* @__PURE__ */ jsx200(LoopedIndicator, {})
38656
- ]
38657
- }, i);
38658
- })
38652
+ children: [
38653
+ new Array(Math.floor(loops)).fill(true).map((_l, i) => {
38654
+ return /* @__PURE__ */ jsxs96(React137.Fragment, {
38655
+ children: [
38656
+ /* @__PURE__ */ jsx200(Flex, {}),
38657
+ i === loops - 1 ? null : /* @__PURE__ */ jsx200(LoopedIndicator, {})
38658
+ ]
38659
+ }, i);
38660
+ }),
38661
+ leftOver > 0 ? /* @__PURE__ */ jsx200("div", {
38662
+ style: { flex: leftOver }
38663
+ }) : null
38664
+ ]
38659
38665
  });
38660
38666
  };
38661
38667
 
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  __require,
3
3
  __toESM
4
- } from "./chunk-bgfkgcmg.js";
4
+ } from "./chunk-6jf1natv.js";
5
5
 
6
6
  // src/renderEntry.tsx
7
7
  import { useContext, useEffect, useRef, useState } from "react";
@@ -185,7 +185,7 @@ var renderContent = (Root) => {
185
185
  renderToDOM(/* @__PURE__ */ jsx("div", {
186
186
  children: /* @__PURE__ */ jsx(DelayedSpinner, {})
187
187
  }));
188
- import("./chunk-h26rhase.js").then(({ StudioInternals }) => {
188
+ import("./chunk-wc2c2x4m.js").then(({ StudioInternals }) => {
189
189
  window.remotion_isStudio = true;
190
190
  window.remotion_isReadOnlyStudio = true;
191
191
  Internals.enableSequenceStackTraces();
package/package.json CHANGED
@@ -1,93 +1,93 @@
1
1
  {
2
- "repository": {
3
- "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
- },
5
- "name": "@remotion/studio",
6
- "version": "4.0.357",
7
- "description": "APIs for interacting with the Remotion Studio",
8
- "main": "dist",
9
- "sideEffects": false,
10
- "author": "Jonny Burger <jonny@remotion.dev>",
11
- "contributors": [],
12
- "license": "MIT",
13
- "bugs": {
14
- "url": "https://github.com/remotion-dev/remotion/issues"
15
- },
16
- "peerDependencies": {
17
- "react": ">=16.8.0",
18
- "react-dom": ">=16.8.0"
19
- },
20
- "dependencies": {
21
- "semver": "7.5.3",
22
- "memfs": "3.4.3",
23
- "source-map": "0.7.3",
24
- "open": "^8.4.2",
25
- "zod": "3.22.3",
26
- "@remotion/media-utils": "4.0.357",
27
- "@remotion/media-parser": "4.0.357",
28
- "@remotion/renderer": "4.0.357",
29
- "@remotion/web-renderer": "4.0.357",
30
- "@remotion/studio-shared": "4.0.357",
31
- "@remotion/webcodecs": "4.0.357",
32
- "@remotion/zod-types": "4.0.357",
33
- "@remotion/player": "4.0.357",
34
- "remotion": "4.0.357"
35
- },
36
- "devDependencies": {
37
- "react": "19.0.0",
38
- "react-dom": "19.0.0",
39
- "@types/semver": "^7.3.4",
40
- "eslint": "9.19.0",
41
- "@remotion/eslint-config-internal": "4.0.357"
42
- },
43
- "publishConfig": {
44
- "access": "public"
45
- },
46
- "exports": {
47
- "./package.json": "./package.json",
48
- ".": {
49
- "types": "./dist/index.d.ts",
50
- "require": "./dist/index.js",
51
- "module": "./dist/esm/index.mjs",
52
- "import": "./dist/esm/index.mjs"
53
- },
54
- "./renderEntry": {
55
- "types": "./dist/renderEntry.d.ts",
56
- "require": "./dist/renderEntry.js",
57
- "module": "./dist/esm/renderEntry.mjs",
58
- "import": "./dist/esm/renderEntry.mjs"
59
- },
60
- "./internals": {
61
- "types": "./dist/internals.d.ts",
62
- "require": "./dist/internals.js",
63
- "module": "./dist/esm/internals.mjs",
64
- "import": "./dist/esm/internals.mjs"
65
- },
66
- "./previewEntry": {
67
- "types": "./dist/previewEntry.d.ts",
68
- "require": "./dist/previewEntry.js",
69
- "module": "./dist/esm/previewEntry.mjs",
70
- "import": "./dist/esm/previewEntry.mjs"
71
- }
72
- },
73
- "homepage": "https://www.remotion.dev/docs/studio/api",
74
- "typesVersions": {
75
- ">=1.0": {
76
- "renderEntry": [
77
- "./dist/renderEntry.d.ts"
78
- ],
79
- "internals": [
80
- "./dist/internals.d.ts"
81
- ],
82
- "previewEntry": [
83
- "./dist/previewEntry.d.ts"
84
- ]
85
- }
86
- },
87
- "scripts": {
88
- "lint": "eslint src",
89
- "make": "tsc -d && bun --env-file=../.env.bundle bundle.ts",
90
- "test": "bun test src",
91
- "formatting": "prettier --experimental-cli src --check"
92
- }
93
- }
2
+ "repository": {
3
+ "url": "https://github.com/remotion-dev/remotion/tree/main/packages/studio"
4
+ },
5
+ "name": "@remotion/studio",
6
+ "version": "4.0.358",
7
+ "description": "APIs for interacting with the Remotion Studio",
8
+ "main": "dist",
9
+ "sideEffects": false,
10
+ "scripts": {
11
+ "lint": "eslint src",
12
+ "make": "tsc -d && bun --env-file=../.env.bundle bundle.ts",
13
+ "test": "bun test src",
14
+ "formatting": "prettier --experimental-cli src --check"
15
+ },
16
+ "author": "Jonny Burger <jonny@remotion.dev>",
17
+ "contributors": [],
18
+ "license": "MIT",
19
+ "bugs": {
20
+ "url": "https://github.com/remotion-dev/remotion/issues"
21
+ },
22
+ "peerDependencies": {
23
+ "react": ">=16.8.0",
24
+ "react-dom": ">=16.8.0"
25
+ },
26
+ "dependencies": {
27
+ "semver": "7.5.3",
28
+ "remotion": "4.0.357",
29
+ "@remotion/player": "4.0.357",
30
+ "@remotion/media-utils": "4.0.357",
31
+ "@remotion/media-parser": "4.0.357",
32
+ "@remotion/renderer": "4.0.357",
33
+ "@remotion/web-renderer": "4.0.357",
34
+ "@remotion/studio-shared": "4.0.357",
35
+ "@remotion/webcodecs": "4.0.357",
36
+ "@remotion/zod-types": "4.0.357",
37
+ "memfs": "3.4.3",
38
+ "source-map": "0.7.3",
39
+ "open": "^8.4.2",
40
+ "zod": "3.22.3"
41
+ },
42
+ "devDependencies": {
43
+ "react": "19.0.0",
44
+ "react-dom": "19.0.0",
45
+ "@types/semver": "^7.3.4",
46
+ "@remotion/eslint-config-internal": "4.0.357",
47
+ "eslint": "9.19.0"
48
+ },
49
+ "publishConfig": {
50
+ "access": "public"
51
+ },
52
+ "exports": {
53
+ "./package.json": "./package.json",
54
+ ".": {
55
+ "types": "./dist/index.d.ts",
56
+ "require": "./dist/index.js",
57
+ "module": "./dist/esm/index.mjs",
58
+ "import": "./dist/esm/index.mjs"
59
+ },
60
+ "./renderEntry": {
61
+ "types": "./dist/renderEntry.d.ts",
62
+ "require": "./dist/renderEntry.js",
63
+ "module": "./dist/esm/renderEntry.mjs",
64
+ "import": "./dist/esm/renderEntry.mjs"
65
+ },
66
+ "./internals": {
67
+ "types": "./dist/internals.d.ts",
68
+ "require": "./dist/internals.js",
69
+ "module": "./dist/esm/internals.mjs",
70
+ "import": "./dist/esm/internals.mjs"
71
+ },
72
+ "./previewEntry": {
73
+ "types": "./dist/previewEntry.d.ts",
74
+ "require": "./dist/previewEntry.js",
75
+ "module": "./dist/esm/previewEntry.mjs",
76
+ "import": "./dist/esm/previewEntry.mjs"
77
+ }
78
+ },
79
+ "homepage": "https://www.remotion.dev/docs/studio/api",
80
+ "typesVersions": {
81
+ ">=1.0": {
82
+ "renderEntry": [
83
+ "./dist/renderEntry.d.ts"
84
+ ],
85
+ "internals": [
86
+ "./dist/internals.d.ts"
87
+ ],
88
+ "previewEntry": [
89
+ "./dist/previewEntry.d.ts"
90
+ ]
91
+ }
92
+ }
93
+ }