@remotion/studio 4.0.495 → 4.0.496

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 (50) hide show
  1. package/dist/components/AssetSelectorItem.js +7 -7
  2. package/dist/components/CompositionSelectorItem.js +5 -23
  3. package/dist/components/CurrentAsset.js +4 -3
  4. package/dist/components/InlineCompositionName.js +1 -1
  5. package/dist/components/InlineEditableTitle.d.ts +1 -0
  6. package/dist/components/InlineEditableTitle.js +56 -11
  7. package/dist/components/InspectorInfoHeader.d.ts +2 -0
  8. package/dist/components/InspectorInfoHeader.js +16 -4
  9. package/dist/components/InspectorLocationCopy.js +2 -2
  10. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +11 -6
  11. package/dist/components/InspectorPanel/EasingInspector.js +1 -1
  12. package/dist/components/InspectorPanel/KeyframeInspector.js +7 -8
  13. package/dist/components/InspectorPanel/KeyframeSettings.js +1 -1
  14. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +28 -3
  15. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +2 -2
  16. package/dist/components/InspectorPanel/common.d.ts +4 -2
  17. package/dist/components/InspectorPanel/common.js +18 -18
  18. package/dist/components/InspectorPanel/styles.d.ts +0 -3
  19. package/dist/components/InspectorPanel/styles.js +5 -40
  20. package/dist/components/InspectorSequenceSection.js +12 -2
  21. package/dist/components/InspectorSourceLocation.d.ts +1 -0
  22. package/dist/components/InspectorSourceLocation.js +5 -1
  23. package/dist/components/NewComposition/ComboBox.d.ts +2 -1
  24. package/dist/components/NewComposition/ComboBox.js +32 -7
  25. package/dist/components/PlaybackRateSelector.js +3 -3
  26. package/dist/components/PreviewToolbar.js +3 -3
  27. package/dist/components/RenderButton.d.ts +1 -0
  28. package/dist/components/RenderButton.js +51 -7
  29. package/dist/components/RenderModal/SchemaEditor/ZodDiscriminatedUnionEditor.js +1 -1
  30. package/dist/components/RenderModal/SchemaEditor/ZodEnumEditor.js +1 -1
  31. package/dist/components/RenderModal/SchemaEditor/ZodStaticFileEditor.js +1 -1
  32. package/dist/components/SizeSelector.js +3 -3
  33. package/dist/components/Timeline/TimelineAssetField.js +1 -1
  34. package/dist/components/Timeline/TimelineEnumField.js +1 -1
  35. package/dist/components/Timeline/TimelineFieldLabel.js +3 -3
  36. package/dist/components/Timeline/TimelineKeyframeControls.js +26 -6
  37. package/dist/components/Timeline/TimelineRowChrome.js +10 -2
  38. package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +3 -0
  39. package/dist/components/Timeline/TimelineRowLayoutContext.js +6 -0
  40. package/dist/components/layout.d.ts +1 -0
  41. package/dist/components/layout.js +2 -1
  42. package/dist/components/open-in-new-window.d.ts +2 -0
  43. package/dist/components/open-in-new-window.js +28 -0
  44. package/dist/esm/{chunk-784jbkzs.js → chunk-0v4n7nkh.js} +565 -376
  45. package/dist/esm/internals.mjs +565 -376
  46. package/dist/esm/previewEntry.mjs +565 -376
  47. package/dist/esm/renderEntry.mjs +1 -1
  48. package/dist/helpers/inject-css.js +4 -2
  49. package/dist/icons/scissors.js +1 -1
  50. package/package.json +11 -11
@@ -771,6 +771,7 @@ import { useMemo as useMemo5 } from "react";
771
771
  import { jsx as jsx6 } from "react/jsx-runtime";
772
772
  var SPACING_UNIT = 8;
773
773
  var COMPACT_CONTROL_ROW_HEIGHT = 28;
774
+ var COMPACT_INLINE_ROW_HEIGHT = 22;
774
775
  var Spacing = ({ x = 0, y = 0, block = false }) => {
775
776
  const style = useMemo5(() => {
776
777
  return {
@@ -2508,8 +2509,17 @@ var container7 = {
2508
2509
  backgroundColor: INPUT_BACKGROUND,
2509
2510
  borderWidth: 1,
2510
2511
  borderStyle: "solid",
2512
+ borderRadius: 4,
2513
+ fontFamily: "inherit",
2511
2514
  maxWidth: "100%"
2512
2515
  };
2516
+ var compactContainer = {
2517
+ ...container7,
2518
+ boxSizing: "border-box",
2519
+ borderRadius: 0,
2520
+ height: COMPACT_CONTROL_ROW_HEIGHT + 2,
2521
+ padding: "5px 6px"
2522
+ };
2513
2523
  var smallContainer = {
2514
2524
  ...container7,
2515
2525
  padding: "3px 4px"
@@ -2518,16 +2528,31 @@ var label2 = {
2518
2528
  flex: 1,
2519
2529
  overflow: "hidden",
2520
2530
  textOverflow: "ellipsis",
2531
+ color: "inherit",
2532
+ fontFamily: "inherit",
2521
2533
  fontSize: 14,
2534
+ lineHeight: "21px",
2535
+ minWidth: 0,
2522
2536
  textAlign: "left",
2523
2537
  whiteSpace: "nowrap"
2524
2538
  };
2539
+ var compactLabel = {
2540
+ ...label2,
2541
+ fontSize: 12,
2542
+ lineHeight: "16px"
2543
+ };
2525
2544
  var smallLabel = {
2526
2545
  ...label2,
2527
2546
  fontSize: 11,
2528
- lineHeight: 1
2547
+ lineHeight: "12px"
2529
2548
  };
2530
- var Combobox = ({ values, selectedId, style: customStyle, title, small = false }) => {
2549
+ var Combobox = ({
2550
+ values,
2551
+ selectedId,
2552
+ style: customStyle,
2553
+ title,
2554
+ size: controlSize = "default"
2555
+ }) => {
2531
2556
  const [hovered, setIsHovered] = useState9(false);
2532
2557
  const [opened, setOpened] = useState9(false);
2533
2558
  const ref = useRef7(null);
@@ -2637,7 +2662,7 @@ var Combobox = ({ values, selectedId, style: customStyle, title, small = false }
2637
2662
  const selected = values.find((v) => v.id === selectedId);
2638
2663
  const style2 = useMemo10(() => {
2639
2664
  return {
2640
- ...small ? smallContainer : container7,
2665
+ ...controlSize === "small" ? smallContainer : controlSize === "compact" ? compactContainer : container7,
2641
2666
  ...customStyle ?? {},
2642
2667
  userSelect: "none",
2643
2668
  WebkitUserSelect: "none",
@@ -2647,7 +2672,8 @@ var Combobox = ({ values, selectedId, style: customStyle, title, small = false }
2647
2672
  alignItems: "center",
2648
2673
  borderColor: opened ? SELECTED_BACKGROUND : hovered ? WHITE_ALPHA_05 : BLACK_ALPHA_60
2649
2674
  };
2650
- }, [customStyle, hovered, opened, small]);
2675
+ }, [controlSize, customStyle, hovered, opened]);
2676
+ const selectedLabelStyle = controlSize === "small" ? smallLabel : controlSize === "compact" ? compactLabel : label2;
2651
2677
  return /* @__PURE__ */ jsxs6(Fragment2, {
2652
2678
  children: [
2653
2679
  /* @__PURE__ */ jsxs6("button", {
@@ -2660,15 +2686,15 @@ var Combobox = ({ values, selectedId, style: customStyle, title, small = false }
2660
2686
  children: [
2661
2687
  selected ? /* @__PURE__ */ jsx19("div", {
2662
2688
  title: typeof selected.label === "string" ? selected.label : undefined,
2663
- style: small ? smallLabel : label2,
2689
+ style: selectedLabelStyle,
2664
2690
  children: selected?.label
2665
2691
  }) : null,
2666
2692
  /* @__PURE__ */ jsx19(Spacing, {
2667
- x: small ? 0.5 : 1
2693
+ x: controlSize === "default" ? 1 : 0.5
2668
2694
  }),
2669
2695
  " ",
2670
2696
  /* @__PURE__ */ jsx19(CaretDown, {
2671
- small
2697
+ small: controlSize === "small"
2672
2698
  })
2673
2699
  ]
2674
2700
  }),
@@ -2740,7 +2766,7 @@ var getPreviewSizeLabel = (previewSize) => {
2740
2766
  return `${(previewSize.size * 100).toFixed(0)}%`;
2741
2767
  };
2742
2768
  var accessibilityLabel = "Preview Size";
2743
- var comboStyle = { width: 80 };
2769
+ var comboStyle = { width: 64 };
2744
2770
  var getUniqueSizes = (size) => {
2745
2771
  const customPreviewSizes = [size, ...commonPreviewSizes];
2746
2772
  const uniqueSizes = [];
@@ -2765,7 +2791,7 @@ var SizeSelector = () => {
2765
2791
  const { canvasContent } = useContext4(Internals.CompositionManager);
2766
2792
  const style2 = useMemo11(() => {
2767
2793
  return {
2768
- padding: CONTROL_BUTTON_PADDING
2794
+ padding: CONTROL_BUTTON_PADDING - 2
2769
2795
  };
2770
2796
  }, []);
2771
2797
  const zoomable = useMemo11(() => {
@@ -2809,6 +2835,7 @@ var SizeSelector = () => {
2809
2835
  style: style2,
2810
2836
  "aria-label": accessibilityLabel,
2811
2837
  children: /* @__PURE__ */ jsx20(Combobox, {
2838
+ size: "compact",
2812
2839
  title: accessibilityLabel,
2813
2840
  style: comboStyle,
2814
2841
  selectedId: String(size.size),
@@ -26139,6 +26166,30 @@ var AssetFileIcon = ({
26139
26166
  });
26140
26167
  };
26141
26168
 
26169
+ // src/components/open-in-new-window.ts
26170
+ var getOpenInNewWindowMenuItem = (route) => {
26171
+ return {
26172
+ id: "open-in-new-window",
26173
+ keyHint: null,
26174
+ label: "Open in new window",
26175
+ leftItem: null,
26176
+ onClick: () => {
26177
+ const screen = window.screen;
26178
+ const width = Math.min(1200, Math.floor(screen.availWidth * 0.8));
26179
+ const height = Math.min(800, Math.floor(screen.availHeight * 0.8));
26180
+ const displayLeft = screen.availLeft ?? 0;
26181
+ const displayTop = screen.availTop ?? 0;
26182
+ const left3 = Math.round(Math.min(Math.max(window.screenX + (window.outerWidth - width) / 2, displayLeft), displayLeft + screen.availWidth - width));
26183
+ const top = Math.round(Math.min(Math.max(window.screenY + (window.outerHeight - height) / 2, displayTop), displayTop + screen.availHeight - height));
26184
+ window.open(getUrlForRoute(route), "_blank", `popup,width=${width},height=${height},left=${left3},top=${top}`);
26185
+ },
26186
+ quickSwitcherLabel: null,
26187
+ subMenu: null,
26188
+ type: "item",
26189
+ value: "open-in-new-window"
26190
+ };
26191
+ };
26192
+
26142
26193
  // src/components/AssetSelectorItem.tsx
26143
26194
  import { jsx as jsx99, jsxs as jsxs45, Fragment as Fragment19 } from "react/jsx-runtime";
26144
26195
  var iconStyle = {
@@ -26393,7 +26444,7 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
26393
26444
  return {
26394
26445
  ...itemStyle,
26395
26446
  color: hovered || selected ? WHITE : LIGHT_TEXT,
26396
- backgroundColor: hovered ? selected ? SELECTED_BACKGROUND : WHITE_ALPHA_06 : selected ? SELECTED_BACKGROUND : TRANSPARENT,
26447
+ backgroundColor: hovered || selected ? WHITE_ALPHA_06 : TRANSPARENT,
26397
26448
  paddingLeft: 12 + level * 8
26398
26449
  };
26399
26450
  }, [hovered, level, selected]);
@@ -26473,6 +26524,11 @@ var AssetSelectorItem = ({ item, tabIndex, level, parentFolder, readOnlyStudio }
26473
26524
  }, [confirm, relativePath]);
26474
26525
  const contextMenu = useMemo55(() => {
26475
26526
  return [
26527
+ getOpenInNewWindowMenuItem(`/assets/${relativePath}`),
26528
+ {
26529
+ type: "divider",
26530
+ id: "open-in-new-window-divider"
26531
+ },
26476
26532
  {
26477
26533
  id: "copy-asset-file-name",
26478
26534
  keyHint: null,
@@ -27346,7 +27402,7 @@ var CompositionSelectorItem = ({
27346
27402
  const style5 = useMemo60(() => {
27347
27403
  return {
27348
27404
  ...itemStyle2,
27349
- backgroundColor: dragHovered ? WHITE_ALPHA_12 : getBackgroundFromHoverState({ hovered, selected }),
27405
+ backgroundColor: dragHovered ? WHITE_ALPHA_12 : hovered || selected ? WHITE_ALPHA_06 : TRANSPARENT,
27350
27406
  paddingLeft: 12 + level * 8
27351
27407
  };
27352
27408
  }, [dragHovered, hovered, level, selected]);
@@ -27384,26 +27440,7 @@ var CompositionSelectorItem = ({
27384
27440
  readOnlyStudio: window.remotion_isReadOnlyStudio
27385
27441
  });
27386
27442
  return [
27387
- {
27388
- id: "open-in-new-window",
27389
- keyHint: null,
27390
- label: "Open in new window",
27391
- leftItem: null,
27392
- onClick: () => {
27393
- const screen = window.screen;
27394
- const width = Math.min(1200, Math.floor(screen.availWidth * 0.8));
27395
- const height = Math.min(800, Math.floor(screen.availHeight * 0.8));
27396
- const displayLeft = screen.availLeft ?? 0;
27397
- const displayTop = screen.availTop ?? 0;
27398
- const left3 = Math.round(Math.min(Math.max(window.screenX + (window.outerWidth - width) / 2, displayLeft), displayLeft + screen.availWidth - width));
27399
- const top = Math.round(Math.min(Math.max(window.screenY + (window.outerHeight - height) / 2, displayTop), displayTop + screen.availHeight - height));
27400
- window.open(getUrlForRoute(`/${item.composition.id}`), "_blank", `popup,width=${width},height=${height},left=${left3},top=${top}`);
27401
- },
27402
- quickSwitcherLabel: null,
27403
- subMenu: null,
27404
- type: "item",
27405
- value: "open-in-new-window"
27406
- },
27443
+ getOpenInNewWindowMenuItem(`/${item.composition.id}`),
27407
27444
  {
27408
27445
  type: "divider",
27409
27446
  id: "open-in-new-window-divider"
@@ -28715,7 +28752,47 @@ var titleInput = {
28715
28752
  WebkitAppearance: "none",
28716
28753
  width: "100%"
28717
28754
  };
28718
- var InlineEditableTitle = ({ value, canRename, getInitialSelection, onClick, onCommit, title: title2 }) => {
28755
+ var inspectorTitleWrapper = {
28756
+ ...titleWrapper,
28757
+ fontFamily: "sans-serif",
28758
+ fontSize: 13,
28759
+ height: COMPACT_INLINE_ROW_HEIGHT,
28760
+ margin: "0 4px",
28761
+ width: "calc(100% - 8px)"
28762
+ };
28763
+ var inspectorTitleInner = {
28764
+ ...titleInner,
28765
+ alignItems: "center",
28766
+ fontFamily: "sans-serif",
28767
+ fontSize: 13,
28768
+ height: COMPACT_INLINE_ROW_HEIGHT,
28769
+ paddingBottom: 0,
28770
+ paddingLeft: 8,
28771
+ paddingRight: 8,
28772
+ paddingTop: 0,
28773
+ width: "100%"
28774
+ };
28775
+ var inspectorTitleGridItem = {
28776
+ ...titleGridItem,
28777
+ color: "inherit",
28778
+ fontFamily: "sans-serif",
28779
+ fontSize: 13,
28780
+ lineHeight: "18px"
28781
+ };
28782
+ var inspectorTitleInput = {
28783
+ ...titleInput,
28784
+ fontFamily: "sans-serif",
28785
+ fontSize: 13
28786
+ };
28787
+ var InlineEditableTitle = ({
28788
+ value,
28789
+ canRename,
28790
+ getInitialSelection,
28791
+ onClick,
28792
+ onCommit,
28793
+ size: size2 = "default",
28794
+ title: title2
28795
+ }) => {
28719
28796
  const [isEditing, setIsEditing] = useState51(false);
28720
28797
  const [isHovered, setIsHovered] = useState51(false);
28721
28798
  const [draftValue, setDraftValue] = useState51(value);
@@ -28777,18 +28854,24 @@ var InlineEditableTitle = ({ value, canRename, getInitialSelection, onClick, onC
28777
28854
  }
28778
28855
  }, [value]);
28779
28856
  const isInteractive = canRename || onClick !== undefined;
28780
- const backgroundColor = isEditing ? INPUT_BACKGROUND : isHovered && isInteractive ? WHITE_ALPHA_06 : TRANSPARENT;
28857
+ const backgroundColor = isEditing ? INPUT_BACKGROUND : getBackgroundFromHoverState({
28858
+ hovered: isHovered && isInteractive,
28859
+ selected: false
28860
+ });
28861
+ const isInspectorSize = size2 === "inspector";
28781
28862
  const innerStyle = useMemo66(() => {
28782
28863
  return {
28783
- ...titleInner,
28864
+ ...isInspectorSize ? inspectorTitleInner : titleInner,
28784
28865
  backgroundColor,
28785
- cursor: isEditing ? "text" : isInteractive ? "pointer" : "default",
28866
+ cursor: isEditing ? "text" : isInspectorSize ? "text" : isInteractive ? "pointer" : "default",
28786
28867
  userSelect: isEditing ? "text" : "none",
28787
- width: isEditing ? "100%" : undefined
28868
+ width: isEditing || isInspectorSize ? "100%" : undefined
28788
28869
  };
28789
- }, [backgroundColor, isEditing, isInteractive]);
28870
+ }, [backgroundColor, isEditing, isInspectorSize, isInteractive]);
28871
+ const gridItemStyle = isInspectorSize ? inspectorTitleGridItem : titleGridItem;
28872
+ const inputStyle = isInspectorSize ? inspectorTitleInput : titleInput;
28790
28873
  return /* @__PURE__ */ jsx116("div", {
28791
- style: titleWrapper,
28874
+ style: isInspectorSize ? inspectorTitleWrapper : titleWrapper,
28792
28875
  title: title2 ?? value,
28793
28876
  children: /* @__PURE__ */ jsxs52("span", {
28794
28877
  style: innerStyle,
@@ -28799,14 +28882,14 @@ var InlineEditableTitle = ({ value, canRename, getInitialSelection, onClick, onC
28799
28882
  /* @__PURE__ */ jsx116("span", {
28800
28883
  "aria-hidden": isEditing,
28801
28884
  style: {
28802
- ...titleGridItem,
28885
+ ...gridItemStyle,
28803
28886
  visibility: isEditing ? "hidden" : "visible"
28804
28887
  },
28805
28888
  children: value
28806
28889
  }),
28807
28890
  isEditing ? /* @__PURE__ */ jsx116("input", {
28808
28891
  ref: focusInput,
28809
- style: { ...titleGridItem, ...titleInput },
28892
+ style: { ...gridItemStyle, ...inputStyle },
28810
28893
  value: draftValue,
28811
28894
  onChange,
28812
28895
  onBlur,
@@ -28853,8 +28936,20 @@ var subtitle = {
28853
28936
  textOverflow: "ellipsis",
28854
28937
  whiteSpace: "nowrap"
28855
28938
  };
28856
- var InspectorInfoHeader = ({ children, contentSized = false, minHeight }) => {
28857
- const style5 = contentSized ? containerBase : minHeight === undefined ? container24 : { ...containerBase, minHeight };
28939
+ var inspectorSubtitle = {
28940
+ ...subtitle,
28941
+ boxSizing: "border-box",
28942
+ fontFamily: "sans-serif",
28943
+ fontSize: 13,
28944
+ height: 28,
28945
+ lineHeight: "18px",
28946
+ margin: "0 4px",
28947
+ padding: "5px 8px",
28948
+ width: "calc(100% - 8px)"
28949
+ };
28950
+ var InspectorInfoHeader = ({ children, contentSized = false, minHeight, padding: padding2 }) => {
28951
+ const sizeStyle = contentSized ? containerBase : minHeight === undefined ? container24 : { ...containerBase, minHeight };
28952
+ const style5 = padding2 === undefined ? sizeStyle : { ...sizeStyle, padding: padding2 };
28858
28953
  return /* @__PURE__ */ jsx117("div", {
28859
28954
  style: style5,
28860
28955
  children: children === undefined || children === null ? null : /* @__PURE__ */ jsx117("div", {
@@ -28866,9 +28961,9 @@ var InspectorInfoHeader = ({ children, contentSized = false, minHeight }) => {
28866
28961
  })
28867
28962
  });
28868
28963
  };
28869
- var InspectorInfoSubtitle = ({ children }) => {
28964
+ var InspectorInfoSubtitle = ({ children, size: size2 = "default" }) => {
28870
28965
  return /* @__PURE__ */ jsx117("div", {
28871
- style: subtitle,
28966
+ style: size2 === "inspector" ? inspectorSubtitle : subtitle,
28872
28967
  children
28873
28968
  });
28874
28969
  };
@@ -29073,6 +29168,7 @@ var AssetInfo = ({ assetName, contentSized = false, onAssetClick, readOnlyStudio
29073
29168
  const mediaDetailLines = mediaMetadata ? getCurrentAssetMediaDetailLines(mediaMetadata) : [];
29074
29169
  return /* @__PURE__ */ jsxs53(InspectorInfoHeader, {
29075
29170
  contentSized,
29171
+ padding: contentSized ? `0 ${INSPECTOR_PANEL_HORIZONTAL_PADDING}px 6px` : "4px 0",
29076
29172
  children: [
29077
29173
  /* @__PURE__ */ jsx118(InlineEditableTitle, {
29078
29174
  value: fileName,
@@ -29080,16 +29176,20 @@ var AssetInfo = ({ assetName, contentSized = false, onAssetClick, readOnlyStudio
29080
29176
  getInitialSelection: getStaticFileRenameSelection,
29081
29177
  onClick: onAssetClick,
29082
29178
  onCommit: onRename,
29179
+ size: contentSized ? "default" : "inspector",
29083
29180
  title: assetName
29084
29181
  }),
29085
29182
  subtitleParts.length > 0 ? /* @__PURE__ */ jsx118(InspectorInfoSubtitle, {
29183
+ size: contentSized ? "default" : "inspector",
29086
29184
  children: subtitleParts.join(" · ")
29087
29185
  }) : null,
29088
29186
  mediaMetadata ? /* @__PURE__ */ jsx118(InspectorInfoSubtitle, {
29187
+ size: contentSized ? "default" : "inspector",
29089
29188
  children: formatMediaDuration(mediaMetadata.duration)
29090
29189
  }) : null,
29091
29190
  mediaDetailLines.map((line2) => {
29092
29191
  return /* @__PURE__ */ jsx118(InspectorInfoSubtitle, {
29192
+ size: contentSized ? "default" : "inspector",
29093
29193
  children: line2
29094
29194
  }, line2);
29095
29195
  })
@@ -29147,31 +29247,6 @@ var inspectorSectionBody = {
29147
29247
  minWidth: 0,
29148
29248
  paddingBottom: 8
29149
29249
  };
29150
- var sequenceHeader = {
29151
- backgroundColor: BACKGROUND,
29152
- display: "flex",
29153
- flexDirection: "column",
29154
- minWidth: 0,
29155
- padding: `6px ${INSPECTOR_PANEL_HORIZONTAL_PADDING}px 4px`
29156
- };
29157
- var sequenceHeaderTitle = {
29158
- alignSelf: "stretch",
29159
- backgroundColor: BACKGROUND,
29160
- border: "none",
29161
- color: WHITE,
29162
- display: "flex",
29163
- fontFamily: "sans-serif",
29164
- fontSize: 12,
29165
- lineHeight: "18px",
29166
- margin: 0,
29167
- maxWidth: "100%",
29168
- minWidth: 0,
29169
- overflow: "hidden",
29170
- padding: 0,
29171
- textAlign: "left",
29172
- textOverflow: "ellipsis",
29173
- whiteSpace: "nowrap"
29174
- };
29175
29250
  var sequenceHeaderSubtitle = {
29176
29251
  alignSelf: "flex-start",
29177
29252
  backgroundColor: BACKGROUND,
@@ -29278,7 +29353,11 @@ var detailRow = {
29278
29353
  };
29279
29354
  var detailLabel = {
29280
29355
  color: LIGHT_TEXT,
29281
- fontSize: 13
29356
+ fontSize: 13,
29357
+ minWidth: 0,
29358
+ overflow: "hidden",
29359
+ textOverflow: "ellipsis",
29360
+ whiteSpace: "nowrap"
29282
29361
  };
29283
29362
  var detailValue = {
29284
29363
  color: WHITE,
@@ -29289,22 +29368,8 @@ var detailValue = {
29289
29368
  wordBreak: "break-word"
29290
29369
  };
29291
29370
  var keyframeEditorRow = {
29292
- alignItems: "flex-start",
29293
- display: "flex",
29294
- gap: 12,
29295
- justifyContent: "space-between",
29296
- minWidth: 0,
29297
29371
  padding: "10px 0"
29298
29372
  };
29299
- var keyframeEditorLabel = {
29300
- color: LIGHT_TEXT,
29301
- fontSize: 13,
29302
- lineHeight: "22px",
29303
- minWidth: 0,
29304
- overflow: "hidden",
29305
- textOverflow: "ellipsis",
29306
- whiteSpace: "nowrap"
29307
- };
29308
29373
  var keyframeEditorValue = {
29309
29374
  alignItems: "center",
29310
29375
  display: "flex",
@@ -29370,13 +29435,13 @@ var label5 = {
29370
29435
  whiteSpace: "normal",
29371
29436
  overflowWrap: "anywhere"
29372
29437
  };
29373
- var compactLabel = {
29438
+ var compactLabel2 = {
29374
29439
  ...label5,
29375
29440
  fontSize: 12
29376
29441
  };
29377
29442
  var ValidationMessage = ({ message, align, type, action, size: size2 = "default" }) => {
29378
29443
  const iconStyle3 = size2 === "compact" ? compactStyle : style5;
29379
- const labelStyle4 = size2 === "compact" ? compactLabel : label5;
29444
+ const labelStyle4 = size2 === "compact" ? compactLabel2 : label5;
29380
29445
  const finalStyle = useMemo68(() => {
29381
29446
  return {
29382
29447
  ...iconStyle3,
@@ -29445,45 +29510,32 @@ var InspectorSection = ({ children, header: header2 }) => {
29445
29510
  ]
29446
29511
  });
29447
29512
  };
29448
- var backIcon = {
29449
- alignItems: "center",
29450
- display: "flex",
29451
- height: 12,
29452
- justifyContent: "center",
29453
- width: 12
29513
+ var backArrowIcon = {
29514
+ display: "block",
29515
+ height: 15,
29516
+ width: 15
29454
29517
  };
29455
- var BackChevron = ({ color }) => {
29518
+ var BackArrow = ({ color }) => {
29456
29519
  return /* @__PURE__ */ jsx121("svg", {
29457
- viewBox: "0 0 8 12",
29458
- style: backIcon,
29520
+ viewBox: "0 0 512 512",
29521
+ style: backArrowIcon,
29459
29522
  children: /* @__PURE__ */ jsx121("path", {
29460
- d: "M6 1L2 6L6 11",
29461
- fill: "none",
29462
- stroke: color,
29463
- strokeLinecap: "round",
29464
- strokeLinejoin: "round",
29465
- strokeWidth: "1.5"
29523
+ d: "M7 239c-9.4 9.4-9.4 24.6 0 33.9L175 441c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L81.9 280 488 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L81.9 232 209 105c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L7 239z",
29524
+ fill: color
29466
29525
  })
29467
29526
  });
29468
29527
  };
29469
- var InspectorBackHeader = ({ children, disabled, onClick, title: title2 }) => {
29470
- return /* @__PURE__ */ jsx121(InspectorSectionHeader, {
29471
- children: /* @__PURE__ */ jsx121("div", {
29472
- style: sectionHeaderRow,
29473
- children: /* @__PURE__ */ jsxs55("div", {
29474
- style: sectionHeaderStart,
29475
- children: [
29476
- /* @__PURE__ */ jsx121(InlineAction, {
29477
- disabled,
29478
- onClick,
29479
- title: title2,
29480
- renderAction: (color) => /* @__PURE__ */ jsx121(BackChevron, {
29481
- color
29482
- })
29483
- }),
29484
- children
29485
- ]
29486
- })
29528
+ var InspectorBackAction = ({ children, disabled, onClick, title: title2 }) => {
29529
+ return /* @__PURE__ */ jsx121("div", {
29530
+ style: inspectorActionSection,
29531
+ children: /* @__PURE__ */ jsx121(InspectorInlineAction, {
29532
+ disabled,
29533
+ onClick,
29534
+ renderIcon: (color) => /* @__PURE__ */ jsx121(BackArrow, {
29535
+ color
29536
+ }),
29537
+ title: title2,
29538
+ children
29487
29539
  })
29488
29540
  });
29489
29541
  };
@@ -29521,7 +29573,7 @@ var inlineLabelButton = {
29521
29573
  height: COMPACT_CONTROL_ROW_HEIGHT,
29522
29574
  lineHeight: "18px",
29523
29575
  margin: `0 ${INLINE_LABEL_BUTTON_MARGIN}px`,
29524
- padding: `5px ${INSPECTOR_PANEL_HORIZONTAL_PADDING - INLINE_LABEL_BUTTON_MARGIN}px`,
29576
+ padding: `0 ${INSPECTOR_PANEL_HORIZONTAL_PADDING - INLINE_LABEL_BUTTON_MARGIN}px`,
29525
29577
  textAlign: "left",
29526
29578
  width: `calc(100% - ${INLINE_LABEL_BUTTON_MARGIN * 2}px)`
29527
29579
  };
@@ -29529,6 +29581,9 @@ var inlineLabelButtonDisabled = {
29529
29581
  ...inlineLabelButton,
29530
29582
  opacity: 0.35
29531
29583
  };
29584
+ var compactInlineLabelButton = {
29585
+ height: COMPACT_INLINE_ROW_HEIGHT
29586
+ };
29532
29587
  var inlineLabelText = {
29533
29588
  color: LIGHT_TEXT,
29534
29589
  flex: 1,
@@ -29548,7 +29603,15 @@ var inlineLabelIcon = {
29548
29603
  justifyContent: "center",
29549
29604
  width: 18
29550
29605
  };
29551
- var InspectorInlineAction = ({ children, disabled, onClick, renderIcon, style: style6 }) => {
29606
+ var InspectorInlineAction = ({
29607
+ children,
29608
+ disabled,
29609
+ onClick,
29610
+ renderIcon,
29611
+ size: size2 = "default",
29612
+ style: style6,
29613
+ title: title2
29614
+ }) => {
29552
29615
  const [hovered, setHovered] = React81.useState(false);
29553
29616
  const color = hovered && !disabled ? WHITE : LIGHT_TEXT;
29554
29617
  const buttonStyle3 = React81.useMemo(() => ({
@@ -29558,8 +29621,9 @@ var InspectorInlineAction = ({ children, disabled, onClick, renderIcon, style: s
29558
29621
  selected: false
29559
29622
  }),
29560
29623
  color,
29624
+ ...size2 === "compact" ? compactInlineLabelButton : null,
29561
29625
  ...style6
29562
- }), [color, disabled, hovered, style6]);
29626
+ }), [color, disabled, hovered, size2, style6]);
29563
29627
  const textStyle2 = React81.useMemo(() => ({
29564
29628
  ...inlineLabelText,
29565
29629
  color
@@ -29571,17 +29635,19 @@ var InspectorInlineAction = ({ children, disabled, onClick, renderIcon, style: s
29571
29635
  setHovered(false);
29572
29636
  }, []);
29573
29637
  return /* @__PURE__ */ jsxs55("button", {
29638
+ className: "__remotion-inspector-inline-action",
29574
29639
  type: "button",
29575
29640
  disabled,
29576
29641
  style: buttonStyle3,
29642
+ title: title2,
29577
29643
  onClick,
29578
29644
  onPointerEnter: disabled ? undefined : onPointerEnter,
29579
29645
  onPointerLeave,
29580
29646
  children: [
29581
- /* @__PURE__ */ jsx121("span", {
29647
+ renderIcon ? /* @__PURE__ */ jsx121("span", {
29582
29648
  style: inlineLabelIcon,
29583
29649
  children: renderIcon(color)
29584
- }),
29650
+ }) : null,
29585
29651
  /* @__PURE__ */ jsx121("span", {
29586
29652
  style: textStyle2,
29587
29653
  children
@@ -33076,7 +33142,7 @@ var ZodEnumEditor = ({ schema, jsonPath, setValue, value, onRemove }) => {
33076
33142
  values: comboBoxValues,
33077
33143
  selectedId: value,
33078
33144
  title: value,
33079
- small: true
33145
+ size: "small"
33080
33146
  })
33081
33147
  }),
33082
33148
  /* @__PURE__ */ jsx152(ZodFieldValidation, {
@@ -33479,7 +33545,7 @@ var ZodStaticFileEditor = ({ schema, jsonPath, setValue, value, onRemove, mayPad
33479
33545
  values: comboBoxValues,
33480
33546
  selectedId: value,
33481
33547
  title: value,
33482
- small: true
33548
+ size: "small"
33483
33549
  })
33484
33550
  }),
33485
33551
  /* @__PURE__ */ jsx159(ZodFieldValidation, {
@@ -34136,7 +34202,7 @@ var ZodDiscriminatedUnionEditor = ({ schema, setValue, value, mayPad, jsonPath,
34136
34202
  title: "Select type",
34137
34203
  values: comboBoxValues,
34138
34204
  selectedId: value[discriminator],
34139
- small: true
34205
+ size: "small"
34140
34206
  })
34141
34207
  ]
34142
34208
  }, "replacement")
@@ -35281,7 +35347,8 @@ var InlineCompositionName = ({ compositionId, stack: stack2, compositions }) =>
35281
35347
  return /* @__PURE__ */ jsx177(InlineEditableTitle, {
35282
35348
  value: compositionId,
35283
35349
  canRename,
35284
- onCommit: commit
35350
+ onCommit: commit,
35351
+ size: "inspector"
35285
35352
  });
35286
35353
  };
35287
35354
 
@@ -35305,8 +35372,8 @@ var content5 = {
35305
35372
  var action = {
35306
35373
  flexShrink: 0,
35307
35374
  height: 24,
35308
- marginLeft: 4,
35309
- marginRight: -4
35375
+ marginLeft: 0,
35376
+ marginRight: 4
35310
35377
  };
35311
35378
  var icon3 = {
35312
35379
  flexShrink: 0,
@@ -35403,7 +35470,7 @@ var sourceLocationLabelStyle = {
35403
35470
  textOverflow: "ellipsis",
35404
35471
  whiteSpace: "nowrap"
35405
35472
  };
35406
- var InspectorSourceLocation = ({ location: location2, canOpen, onOpen, renderIcon }) => {
35473
+ var InspectorSourceLocation = ({ location: location2, canOpen, onOpen, renderIcon, size: size2 = "default" }) => {
35407
35474
  const [hovered, setHovered] = useState69(false);
35408
35475
  const validLocation = useMemo106(() => {
35409
35476
  if (!location2?.source || location2.line === null) {
@@ -35443,6 +35510,16 @@ var InspectorSourceLocation = ({ location: location2, canOpen, onOpen, renderIco
35443
35510
  if (!label7) {
35444
35511
  return null;
35445
35512
  }
35513
+ if (size2 === "inline-action") {
35514
+ return /* @__PURE__ */ jsx179(InspectorInlineAction, {
35515
+ disabled: !canOpen,
35516
+ onClick,
35517
+ renderIcon: (iconColor) => renderIcon?.(iconColor),
35518
+ size: "compact",
35519
+ title: fileLocation ?? undefined,
35520
+ children: label7
35521
+ });
35522
+ }
35446
35523
  return /* @__PURE__ */ jsxs92("button", {
35447
35524
  type: "button",
35448
35525
  style: style8,
@@ -35461,12 +35538,16 @@ var InspectorSourceLocation = ({ location: location2, canOpen, onOpen, renderIco
35461
35538
  };
35462
35539
 
35463
35540
  // src/components/InspectorPanel/CompositionInspectorHeader.tsx
35464
- import { jsx as jsx180, jsxs as jsxs93, Fragment as Fragment28 } from "react/jsx-runtime";
35541
+ import { jsx as jsx180, jsxs as jsxs93 } from "react/jsx-runtime";
35465
35542
  var COMPOSITION_INSPECTOR_HEADER_HEIGHT = 66;
35466
35543
  var sourceLocationIconStyle = {
35467
35544
  flexShrink: 0,
35468
- height: 13,
35469
- width: 13
35545
+ height: 18,
35546
+ width: 18
35547
+ };
35548
+ var componentLocationPlaceholder = {
35549
+ flexShrink: 0,
35550
+ height: COMPACT_INLINE_ROW_HEIGHT
35470
35551
  };
35471
35552
  var renderReactIcon = (color) => {
35472
35553
  return /* @__PURE__ */ jsx180(ReactIcon, {
@@ -35540,34 +35621,33 @@ var CompositionInspectorHeader = () => {
35540
35621
  }, [video]);
35541
35622
  return /* @__PURE__ */ jsx180(InspectorInfoHeader, {
35542
35623
  minHeight: COMPOSITION_INSPECTOR_HEADER_HEIGHT,
35543
- children: video ? /* @__PURE__ */ jsxs93(Fragment28, {
35624
+ padding: "4px 0",
35625
+ children: video ? /* @__PURE__ */ jsxs93(InspectorLocationCopy, {
35626
+ location: validatedLocation,
35627
+ name: video.id,
35544
35628
  children: [
35545
- /* @__PURE__ */ jsxs93(InspectorLocationCopy, {
35629
+ /* @__PURE__ */ jsx180(InlineCompositionName, {
35630
+ compositionId: video.id,
35631
+ stack: currentComposition?.stack ?? null,
35632
+ compositions
35633
+ }, video.id),
35634
+ /* @__PURE__ */ jsx180(InspectorSourceLocation, {
35546
35635
  location: validatedLocation,
35547
- name: video.id,
35548
- children: [
35549
- /* @__PURE__ */ jsx180(InlineCompositionName, {
35550
- compositionId: video.id,
35551
- stack: currentComposition?.stack ?? null,
35552
- compositions
35553
- }, video.id),
35554
- /* @__PURE__ */ jsx180(InspectorSourceLocation, {
35555
- location: validatedLocation,
35556
- canOpen: validatedLocation !== null,
35557
- onOpen: openFileLocation,
35558
- renderIcon: renderCompositionIcon
35559
- }),
35560
- /* @__PURE__ */ jsx180(InspectorSourceLocation, {
35561
- location: componentLocation,
35562
- canOpen: componentLocation !== null,
35563
- onOpen: openComponentLocation,
35564
- renderIcon: renderReactIcon
35565
- })
35566
- ]
35636
+ canOpen: validatedLocation !== null,
35637
+ onOpen: openFileLocation,
35638
+ renderIcon: renderCompositionIcon,
35639
+ size: "inline-action"
35567
35640
  }),
35568
- isCompositionStill(video) ? /* @__PURE__ */ jsx180(InspectorInfoSubtitle, {
35569
- children: "Still"
35570
- }) : null
35641
+ compositionComponentInfo === null && compositionFile !== null && compositionId !== null ? /* @__PURE__ */ jsx180("div", {
35642
+ "aria-hidden": true,
35643
+ style: componentLocationPlaceholder
35644
+ }) : /* @__PURE__ */ jsx180(InspectorSourceLocation, {
35645
+ location: componentLocation,
35646
+ canOpen: componentLocation !== null,
35647
+ onOpen: openComponentLocation,
35648
+ renderIcon: renderReactIcon,
35649
+ size: "inline-action"
35650
+ })
35571
35651
  ]
35572
35652
  }) : null
35573
35653
  });
@@ -35630,7 +35710,7 @@ var reconcilePendingCompositionMetadata = ({
35630
35710
  };
35631
35711
 
35632
35712
  // src/components/InspectorPanel/CompositionMetadata.tsx
35633
- import { jsx as jsx181, jsxs as jsxs94, Fragment as Fragment29 } from "react/jsx-runtime";
35713
+ import { jsx as jsx181, jsxs as jsxs94, Fragment as Fragment28 } from "react/jsx-runtime";
35634
35714
  var compositionMetadataContainer = {
35635
35715
  ...detailsContainer,
35636
35716
  paddingBottom: 4,
@@ -35850,7 +35930,7 @@ var CompositionMetadata = ({ compositionId, disabled, stack: stack2 }) => {
35850
35930
  ]
35851
35931
  })
35852
35932
  }),
35853
- isStill ? null : /* @__PURE__ */ jsxs94(Fragment29, {
35933
+ isStill ? null : /* @__PURE__ */ jsxs94(Fragment28, {
35854
35934
  children: [
35855
35935
  /* @__PURE__ */ jsx181(InspectorDetailRow, {
35856
35936
  label: "Frame rate",
@@ -35978,7 +36058,7 @@ var useCompositionActions = () => {
35978
36058
  };
35979
36059
 
35980
36060
  // src/components/InspectorPanel/CompositionInspector.tsx
35981
- import { jsx as jsx182, jsxs as jsxs95, Fragment as Fragment30 } from "react/jsx-runtime";
36061
+ import { jsx as jsx182, jsxs as jsxs95, Fragment as Fragment29 } from "react/jsx-runtime";
35982
36062
  var actionIconStyle = {
35983
36063
  height: 18,
35984
36064
  width: 18
@@ -36066,7 +36146,7 @@ var CompositionDefaultPropsSection = ({ composition, currentDefaultProps, setDef
36066
36146
  if (!canShowDefaultPropsSection) {
36067
36147
  return null;
36068
36148
  }
36069
- return /* @__PURE__ */ jsxs95(Fragment30, {
36149
+ return /* @__PURE__ */ jsxs95(Fragment29, {
36070
36150
  children: [
36071
36151
  /* @__PURE__ */ jsx182(InspectorSectionDivider, {}),
36072
36152
  /* @__PURE__ */ jsxs95("div", {
@@ -36134,7 +36214,7 @@ var CompositionVisualControlsSection = () => {
36134
36214
  if (!hasVisualControls) {
36135
36215
  return null;
36136
36216
  }
36137
- return /* @__PURE__ */ jsxs95(Fragment30, {
36217
+ return /* @__PURE__ */ jsxs95(Fragment29, {
36138
36218
  children: [
36139
36219
  /* @__PURE__ */ jsx182(InspectorSectionDivider, {}),
36140
36220
  /* @__PURE__ */ jsxs95("div", {
@@ -36237,7 +36317,7 @@ import {
36237
36317
  useState as useState73
36238
36318
  } from "react";
36239
36319
  import { Easing, Internals as Internals54 } from "remotion";
36240
- import { jsx as jsx183, jsxs as jsxs96, Fragment as Fragment31 } from "react/jsx-runtime";
36320
+ import { jsx as jsx183, jsxs as jsxs96, Fragment as Fragment30 } from "react/jsx-runtime";
36241
36321
  var SVG_WIDTH = 560;
36242
36322
  var SVG_HEIGHT = 320;
36243
36323
  var PLOT_LEFT = 42;
@@ -36577,7 +36657,7 @@ var EasingGraphScaffold = ({ labels }) => {
36577
36657
  const yOne = yToSvg(1);
36578
36658
  const bottomLabelWidth = getEasingGraphLabelWidth(labels.start);
36579
36659
  const topLabelWidth = getEasingGraphLabelWidth(labels.end);
36580
- return /* @__PURE__ */ jsxs96(Fragment31, {
36660
+ return /* @__PURE__ */ jsxs96(Fragment30, {
36581
36661
  children: [
36582
36662
  /* @__PURE__ */ jsx183("line", {
36583
36663
  x1: PLOT_LEFT,
@@ -36995,7 +37075,7 @@ var EasingEditor = ({ state, renderHeader }) => {
36995
37075
  preset
36996
37076
  }, preset.id))
36997
37077
  }),
36998
- mode === "bezier" ? /* @__PURE__ */ jsxs96(Fragment31, {
37078
+ mode === "bezier" ? /* @__PURE__ */ jsxs96(Fragment30, {
36999
37079
  children: [
37000
37080
  /* @__PURE__ */ jsxs96("svg", {
37001
37081
  ref: svgRef,
@@ -37195,7 +37275,7 @@ var EasingEditor = ({ state, renderHeader }) => {
37195
37275
  ]
37196
37276
  })
37197
37277
  ]
37198
- }) : /* @__PURE__ */ jsxs96(Fragment31, {
37278
+ }) : /* @__PURE__ */ jsxs96(Fragment30, {
37199
37279
  children: [
37200
37280
  /* @__PURE__ */ jsxs96("svg", {
37201
37281
  width: SVG_WIDTH,
@@ -38227,7 +38307,7 @@ var useTimelineEasingKeyframeDrag = ({
38227
38307
  };
38228
38308
 
38229
38309
  // src/components/Timeline/TimelineKeyframeEasingLine.tsx
38230
- import { jsx as jsx186, jsxs as jsxs98, Fragment as Fragment32 } from "react/jsx-runtime";
38310
+ import { jsx as jsx186, jsxs as jsxs98, Fragment as Fragment31 } from "react/jsx-runtime";
38231
38311
  var hitTargetHeight = 12;
38232
38312
  var lineHeight2 = 2;
38233
38313
  var easingLineButton = {
@@ -38378,7 +38458,7 @@ var TimelineKeyframeEasingLineUnmemoized = ({ fromFrame, toFrame, rowHeight, nod
38378
38458
  if (style8 === null) {
38379
38459
  return null;
38380
38460
  }
38381
- return /* @__PURE__ */ jsxs98(Fragment32, {
38461
+ return /* @__PURE__ */ jsxs98(Fragment31, {
38382
38462
  children: [
38383
38463
  /* @__PURE__ */ jsx186("button", {
38384
38464
  ref: buttonRef,
@@ -38662,7 +38742,7 @@ import {
38662
38742
  useState as useState75
38663
38743
  } from "react";
38664
38744
  import { Internals as Internals58 } from "remotion";
38665
- import { jsx as jsx188, jsxs as jsxs100, Fragment as Fragment33 } from "react/jsx-runtime";
38745
+ import { jsx as jsx188, jsxs as jsxs100, Fragment as Fragment32 } from "react/jsx-runtime";
38666
38746
  var comboStyle2 = {
38667
38747
  minWidth: 120
38668
38748
  };
@@ -38790,7 +38870,7 @@ var KeyframeSettings = ({ update }) => {
38790
38870
  const posterizeFormatter = useCallback105((value) => {
38791
38871
  return String(Math.round(Number(value)));
38792
38872
  }, []);
38793
- return /* @__PURE__ */ jsxs100(Fragment33, {
38873
+ return /* @__PURE__ */ jsxs100(Fragment32, {
38794
38874
  children: [
38795
38875
  /* @__PURE__ */ jsx188(InspectorSectionHeader, {
38796
38876
  children: "Keyframe settings"
@@ -38798,7 +38878,7 @@ var KeyframeSettings = ({ update }) => {
38798
38878
  /* @__PURE__ */ jsxs100("div", {
38799
38879
  style: keyframeSettingsContainer,
38800
38880
  children: [
38801
- canEditInterpolationSettings ? /* @__PURE__ */ jsxs100(Fragment33, {
38881
+ canEditInterpolationSettings ? /* @__PURE__ */ jsxs100(Fragment32, {
38802
38882
  children: [
38803
38883
  /* @__PURE__ */ jsx188(InspectorDetailRow, {
38804
38884
  label: "Extrapolate left",
@@ -38807,7 +38887,7 @@ var KeyframeSettings = ({ update }) => {
38807
38887
  selectedId: propStatus.clamping.left,
38808
38888
  title: "Extrapolate left",
38809
38889
  style: comboStyle2,
38810
- small: true
38890
+ size: "small"
38811
38891
  })
38812
38892
  }),
38813
38893
  /* @__PURE__ */ jsx188(InspectorDetailRow, {
@@ -38817,7 +38897,7 @@ var KeyframeSettings = ({ update }) => {
38817
38897
  selectedId: propStatus.clamping.right,
38818
38898
  title: "Extrapolate right",
38819
38899
  style: comboStyle2,
38820
- small: true
38900
+ size: "small"
38821
38901
  })
38822
38902
  }),
38823
38903
  /* @__PURE__ */ jsx188(InspectorDetailRow, {
@@ -38827,7 +38907,7 @@ var KeyframeSettings = ({ update }) => {
38827
38907
  selectedId: propStatus.output ?? "linear",
38828
38908
  title: "Output",
38829
38909
  style: comboStyle2,
38830
- small: true
38910
+ size: "small"
38831
38911
  })
38832
38912
  })
38833
38913
  ]
@@ -39077,7 +39157,32 @@ var ConnectedCompositionsSection = ({ connectedCompositions }) => {
39077
39157
  };
39078
39158
 
39079
39159
  // src/components/InspectorPanel/SequenceInspectorHeader.tsx
39080
- import { jsx as jsx190, jsxs as jsxs101, Fragment as Fragment34 } from "react/jsx-runtime";
39160
+ import { jsx as jsx190, jsxs as jsxs101, Fragment as Fragment33 } from "react/jsx-runtime";
39161
+ var sourceLocationIconStyle2 = {
39162
+ flexShrink: 0,
39163
+ height: 18,
39164
+ width: 18
39165
+ };
39166
+ var renderReactIcon2 = (color) => {
39167
+ return /* @__PURE__ */ jsx190(ReactIcon, {
39168
+ color,
39169
+ style: sourceLocationIconStyle2
39170
+ });
39171
+ };
39172
+ var sequenceInspectorSubtitle = {
39173
+ ...sequenceHeaderSubtitle,
39174
+ alignItems: "center",
39175
+ boxSizing: "border-box",
39176
+ fontSize: 13,
39177
+ height: COMPACT_INLINE_ROW_HEIGHT,
39178
+ lineHeight: "18px",
39179
+ margin: "0 4px",
39180
+ padding: "0 8px",
39181
+ width: "calc(100% - 8px)"
39182
+ };
39183
+ var defaultCursor = {
39184
+ cursor: "default"
39185
+ };
39081
39186
  var useSequenceInspectorSourceLocation = (sequence) => {
39082
39187
  const { canOpenInEditor, openInEditor: openInEditor2, originalLocation } = useOpenSequenceInEditor(sequence);
39083
39188
  const validatedLocation = useMemo119(() => {
@@ -39120,7 +39225,7 @@ var SequenceInspectorHeader = ({ sourceLocation, track }) => {
39120
39225
  }, [documentationLink]);
39121
39226
  const subtitleStyle = useMemo119(() => {
39122
39227
  return {
39123
- ...sequenceHeaderSubtitle,
39228
+ ...sequenceInspectorSubtitle,
39124
39229
  cursor: documentationLink ? "pointer" : "default"
39125
39230
  };
39126
39231
  }, [documentationLink]);
@@ -39130,23 +39235,23 @@ var SequenceInspectorHeader = ({ sourceLocation, track }) => {
39130
39235
  return;
39131
39236
  });
39132
39237
  }, [saveName]);
39133
- return /* @__PURE__ */ jsx190("div", {
39134
- style: sequenceHeader,
39238
+ return /* @__PURE__ */ jsx190(InspectorInfoHeader, {
39239
+ contentSized: true,
39240
+ padding: "4px 0",
39135
39241
  children: /* @__PURE__ */ jsxs101(InspectorLocationCopy, {
39136
39242
  location: sourceLocation.validatedLocation,
39137
39243
  name: componentName ?? null,
39138
39244
  children: [
39139
- /* @__PURE__ */ jsx190("div", {
39140
- style: sequenceHeaderTitle,
39141
- children: /* @__PURE__ */ jsx190(InlineEditableTitle, {
39142
- value: sequenceDisplayName,
39143
- canRename,
39144
- onCommit: onRename
39145
- })
39245
+ /* @__PURE__ */ jsx190(InlineEditableTitle, {
39246
+ value: sequenceDisplayName,
39247
+ canRename,
39248
+ onCommit: onRename,
39249
+ size: "inspector"
39146
39250
  }),
39147
- documentationLink ? /* @__PURE__ */ jsx190("button", {
39148
- type: "button",
39149
- style: subtitleStyle,
39251
+ documentationLink ? /* @__PURE__ */ jsx190(InspectorInlineAction, {
39252
+ disabled: false,
39253
+ style: defaultCursor,
39254
+ size: "compact",
39150
39255
  title: "Open component docs",
39151
39256
  onClick: openDocumentationLink,
39152
39257
  children: componentName
@@ -39157,7 +39262,9 @@ var SequenceInspectorHeader = ({ sourceLocation, track }) => {
39157
39262
  /* @__PURE__ */ jsx190(InspectorSourceLocation, {
39158
39263
  location: sourceLocation.validatedLocation,
39159
39264
  canOpen: sourceLocation.canOpenInEditor,
39160
- onOpen: sourceLocation.openFileLocation
39265
+ onOpen: sourceLocation.openFileLocation,
39266
+ renderIcon: renderReactIcon2,
39267
+ size: "inline-action"
39161
39268
  })
39162
39269
  ]
39163
39270
  })
@@ -39166,13 +39273,13 @@ var SequenceInspectorHeader = ({ sourceLocation, track }) => {
39166
39273
  var SequenceInspectorSections = ({ track }) => {
39167
39274
  const sourceLocation = useSequenceInspectorSourceLocation(track.sequence);
39168
39275
  const connectedCompositions = useConnectedCompositions({ track });
39169
- return /* @__PURE__ */ jsxs101(Fragment34, {
39276
+ return /* @__PURE__ */ jsxs101(Fragment33, {
39170
39277
  children: [
39171
39278
  /* @__PURE__ */ jsx190(SequenceInspectorHeader, {
39172
39279
  sourceLocation,
39173
39280
  track
39174
39281
  }),
39175
- connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs101(Fragment34, {
39282
+ connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs101(Fragment33, {
39176
39283
  children: [
39177
39284
  /* @__PURE__ */ jsx190(InspectorSectionDivider, {}),
39178
39285
  /* @__PURE__ */ jsx190(ConnectedCompositionsSection, {
@@ -39203,7 +39310,7 @@ var useTrackForSelection = (selection) => {
39203
39310
  };
39204
39311
 
39205
39312
  // src/components/InspectorPanel/EasingInspector.tsx
39206
- import { jsx as jsx191, jsxs as jsxs102, Fragment as Fragment35 } from "react/jsx-runtime";
39313
+ import { jsx as jsx191, jsxs as jsxs102, Fragment as Fragment34 } from "react/jsx-runtime";
39207
39314
  var addKeyframeIcon = {
39208
39315
  display: "block",
39209
39316
  height: 18,
@@ -39373,16 +39480,13 @@ var EasingInspector = ({ selection }) => {
39373
39480
  timelinePosition,
39374
39481
  track
39375
39482
  ]);
39376
- const renderHeader = useCallback109(() => /* @__PURE__ */ jsxs102(Fragment35, {
39483
+ const renderHeader = useCallback109(() => /* @__PURE__ */ jsxs102(Fragment34, {
39377
39484
  children: [
39378
- /* @__PURE__ */ jsx191(InspectorBackHeader, {
39485
+ /* @__PURE__ */ jsx191(InspectorBackAction, {
39379
39486
  disabled: parentSelection === null,
39380
39487
  onClick: onSelectParent,
39381
39488
  title: "Back to property",
39382
- children: /* @__PURE__ */ jsx191("div", {
39383
- style: sectionHeaderTitle,
39384
- children: fieldLabel
39385
- })
39489
+ children: fieldLabel
39386
39490
  }),
39387
39491
  /* @__PURE__ */ jsx191(InspectorSectionDivider, {}),
39388
39492
  easingUpdate === null || track === null ? null : /* @__PURE__ */ jsx191(KeyframeEasingNavigator, {
@@ -39731,11 +39835,17 @@ import { useContext as useContext71, useMemo as useMemo123 } from "react";
39731
39835
  import { createContext as createContext26 } from "react";
39732
39836
  var INSPECTOR_TIMELINE_ROW_LAYOUT = {
39733
39837
  basePadding: INSPECTOR_ROW_BASE_PADDING,
39734
- keyframeControlsPadding: 0
39838
+ highlightSelectedLabel: false,
39839
+ keyframeControlsPadding: 0,
39840
+ rowBorderRadius: 4,
39841
+ rowHorizontalMargin: 4
39735
39842
  };
39736
39843
  var TimelineRowLayoutContext = createContext26({
39737
39844
  basePadding: TIMELINE_ROW_BASE_PADDING,
39738
- keyframeControlsPadding: TIMELINE_ROW_BASE_PADDING
39845
+ highlightSelectedLabel: true,
39846
+ keyframeControlsPadding: TIMELINE_ROW_BASE_PADDING,
39847
+ rowBorderRadius: 0,
39848
+ rowHorizontalMargin: 0
39739
39849
  });
39740
39850
 
39741
39851
  // src/components/Timeline/TimelineFieldLabel.tsx
@@ -39751,13 +39861,13 @@ var fieldNameBase = {
39751
39861
  minWidth: 0
39752
39862
  };
39753
39863
  var TimelineFieldLabel = ({ rowDepth, selected, label: label7, stacked = false }) => {
39754
- const { basePadding } = useContext71(TimelineRowLayoutContext);
39864
+ const { basePadding, highlightSelectedLabel } = useContext71(TimelineRowLayoutContext);
39755
39865
  const labelRowStyle = useMemo123(() => ({
39756
39866
  ...getTimelineFieldLabelRowStyle(rowDepth, basePadding),
39757
- ...getTimelineSelectedLabelStyle(selected, true),
39867
+ ...getTimelineSelectedLabelStyle(selected && highlightSelectedLabel, true),
39758
39868
  ...stacked ? { flex: `0 0 ${SCHEMA_FIELD_ROW_HEIGHT}px` } : null,
39759
39869
  alignSelf: "stretch"
39760
- }), [basePadding, rowDepth, selected, stacked]);
39870
+ }), [basePadding, highlightSelectedLabel, rowDepth, selected, stacked]);
39761
39871
  const fieldNameStyle = useMemo123(() => ({
39762
39872
  ...fieldNameBase,
39763
39873
  color: getTimelineColor(selected, true)
@@ -39773,7 +39883,7 @@ var TimelineFieldLabel = ({ rowDepth, selected, label: label7, stacked = false }
39773
39883
  };
39774
39884
 
39775
39885
  // src/components/Timeline/TimelineFieldRowContent.tsx
39776
- import { jsx as jsx195, jsxs as jsxs104, Fragment as Fragment36 } from "react/jsx-runtime";
39886
+ import { jsx as jsx195, jsxs as jsxs104, Fragment as Fragment35 } from "react/jsx-runtime";
39777
39887
  var TimelineFieldRowContent = ({ field, rowDepth, selected, children }) => {
39778
39888
  const label7 = /* @__PURE__ */ jsx195(TimelineFieldLabel, {
39779
39889
  rowDepth,
@@ -39794,7 +39904,7 @@ var TimelineFieldRowContent = ({ field, rowDepth, selected, children }) => {
39794
39904
  ]
39795
39905
  });
39796
39906
  }
39797
- return /* @__PURE__ */ jsxs104(Fragment36, {
39907
+ return /* @__PURE__ */ jsxs104(Fragment35, {
39798
39908
  children: [
39799
39909
  label7,
39800
39910
  value
@@ -39849,6 +39959,9 @@ var useTimelineKeyframeTracks = () => {
39849
39959
 
39850
39960
  // src/components/Timeline/TimelineKeyframeControls.tsx
39851
39961
  import { jsx as jsx197, jsxs as jsxs105 } from "react/jsx-runtime";
39962
+ var NAV_BUTTON_SIZE = 14;
39963
+ var INSPECTOR_NAV_BUTTON_WIDTH = NAV_BUTTON_SIZE / 2;
39964
+ var INSPECTOR_PREVIOUS_BUTTON_EXTRA_GAP = 1;
39852
39965
  var controlsContainerStyle = {
39853
39966
  alignItems: "center",
39854
39967
  display: "flex",
@@ -39856,6 +39969,10 @@ var controlsContainerStyle = {
39856
39969
  gap: 1,
39857
39970
  marginRight: 4
39858
39971
  };
39972
+ var inspectorControlsContainerStyle = {
39973
+ ...controlsContainerStyle,
39974
+ paddingLeft: NAV_BUTTON_SIZE - INSPECTOR_NAV_BUTTON_WIDTH - INSPECTOR_PREVIOUS_BUTTON_EXTRA_GAP
39975
+ };
39859
39976
  var navButtonStyle = {
39860
39977
  alignItems: "center",
39861
39978
  background: "none",
@@ -39864,13 +39981,20 @@ var navButtonStyle = {
39864
39981
  cursor: "pointer",
39865
39982
  display: "flex",
39866
39983
  flexShrink: 0,
39867
- height: 14,
39984
+ height: NAV_BUTTON_SIZE,
39868
39985
  justifyContent: "center",
39869
39986
  lineHeight: 1,
39870
39987
  outline: "none",
39871
39988
  padding: 0,
39872
39989
  userSelect: "none",
39873
- width: 14
39990
+ width: NAV_BUTTON_SIZE
39991
+ };
39992
+ var inspectorNavButtonStyle = {
39993
+ width: INSPECTOR_NAV_BUTTON_WIDTH
39994
+ };
39995
+ var inspectorPreviousNavButtonStyle = {
39996
+ ...inspectorNavButtonStyle,
39997
+ marginRight: INSPECTOR_PREVIOUS_BUTTON_EXTRA_GAP
39874
39998
  };
39875
39999
  var isKeyframedStatus = (status) => {
39876
40000
  return status.status === "keyframed";
@@ -39879,7 +40003,7 @@ var diamondButtonStyle = {
39879
40003
  ...navButtonStyle,
39880
40004
  background: "none"
39881
40005
  };
39882
- var svgStyle4 = { display: "block" };
40006
+ var svgStyle4 = { display: "block", flexShrink: 0 };
39883
40007
  var isKeyframeControlSelection = (selection) => {
39884
40008
  return selection.type === "sequence-prop" || selection.type === "sequence-effect-prop";
39885
40009
  };
@@ -40298,16 +40422,18 @@ var TimelineKeyframeControls = ({
40298
40422
  const nextDisabled = nextDisplayFrame === null;
40299
40423
  const previousStyle = useMemo124(() => ({
40300
40424
  ...navButtonStyle,
40425
+ ...mode === "inspector" ? inspectorPreviousNavButtonStyle : null,
40301
40426
  cursor: previousDisabled ? "default" : "pointer",
40302
40427
  opacity: previousDisabled ? 0.35 : 1,
40303
40428
  visibility: showNavigationButtons ? "visible" : "hidden"
40304
- }), [previousDisabled, showNavigationButtons]);
40429
+ }), [mode, previousDisabled, showNavigationButtons]);
40305
40430
  const nextStyle = useMemo124(() => ({
40306
40431
  ...navButtonStyle,
40432
+ ...mode === "inspector" ? inspectorNavButtonStyle : null,
40307
40433
  cursor: nextDisabled ? "default" : "pointer",
40308
40434
  opacity: nextDisabled ? 0.35 : 1,
40309
40435
  visibility: showNavigationButtons ? "visible" : "hidden"
40310
- }), [nextDisabled, showNavigationButtons]);
40436
+ }), [mode, nextDisabled, showNavigationButtons]);
40311
40437
  const diamondStyle = useMemo124(() => ({
40312
40438
  ...diamondButtonStyle,
40313
40439
  cursor: canToggleKeyframe && clientId ? "pointer" : "default",
@@ -40315,7 +40441,7 @@ var TimelineKeyframeControls = ({
40315
40441
  }), [canToggleKeyframe, clientId]);
40316
40442
  const diamondColor = hasKeyframeAtCurrentFrame ? BLUE : LIGHT_TEXT;
40317
40443
  return /* @__PURE__ */ jsxs105("div", {
40318
- style: controlsContainerStyle,
40444
+ style: mode === "inspector" ? inspectorControlsContainerStyle : controlsContainerStyle,
40319
40445
  children: [
40320
40446
  /* @__PURE__ */ jsx197("button", {
40321
40447
  type: "button",
@@ -40486,7 +40612,7 @@ var TimelineStaticFileAssetField = ({
40486
40612
  ];
40487
40613
  }, [current, onSelect, staticFiles, upload]);
40488
40614
  return /* @__PURE__ */ jsx198(Combobox, {
40489
- small: true,
40615
+ size: "small",
40490
40616
  title: current,
40491
40617
  selectedId: current,
40492
40618
  values: items,
@@ -40630,7 +40756,7 @@ var TimelineEnumField = ({
40630
40756
  }));
40631
40757
  }, [variantKeys, onSelect]);
40632
40758
  return /* @__PURE__ */ jsx201(Combobox, {
40633
- small: true,
40759
+ size: "small",
40634
40760
  title: field.key,
40635
40761
  selectedId: current,
40636
40762
  values: items,
@@ -42154,7 +42280,7 @@ var GOOGLE_FONTS_LIST = [
42154
42280
  ];
42155
42281
 
42156
42282
  // src/components/Timeline/TimelineFontFamilyField.tsx
42157
- import { jsx as jsx202, jsxs as jsxs106, Fragment as Fragment37 } from "react/jsx-runtime";
42283
+ import { jsx as jsx202, jsxs as jsxs106, Fragment as Fragment36 } from "react/jsx-runtime";
42158
42284
  var ROW_HEIGHT = 30;
42159
42285
  var LIST_HEIGHT = 280;
42160
42286
  var OVERSCAN = 10;
@@ -42644,7 +42770,7 @@ var TimelineFontFamilyField = ({
42644
42770
  };
42645
42771
  }, [hovered, opened]);
42646
42772
  const selectedPreviewStyle = getOptionPreviewStyle(selected);
42647
- return /* @__PURE__ */ jsxs106(Fragment37, {
42773
+ return /* @__PURE__ */ jsxs106(Fragment36, {
42648
42774
  children: [
42649
42775
  /* @__PURE__ */ jsxs106("button", {
42650
42776
  ref: buttonRef,
@@ -44135,7 +44261,7 @@ var Padder = ({ depth }) => {
44135
44261
  };
44136
44262
 
44137
44263
  // src/components/Timeline/TimelineRowChrome.tsx
44138
- import { jsx as jsx214, jsxs as jsxs112, Fragment as Fragment38 } from "react/jsx-runtime";
44264
+ import { jsx as jsx214, jsxs as jsxs112, Fragment as Fragment37 } from "react/jsx-runtime";
44139
44265
  var rowBase = {
44140
44266
  alignItems: "stretch",
44141
44267
  display: "flex"
@@ -44172,7 +44298,12 @@ var TimelineRowChrome = ({
44172
44298
  onDoubleClick
44173
44299
  }) => {
44174
44300
  const ref2 = useRef53(null);
44175
- const { basePadding, keyframeControlsPadding } = useContext74(TimelineRowLayoutContext);
44301
+ const {
44302
+ basePadding,
44303
+ keyframeControlsPadding,
44304
+ rowBorderRadius,
44305
+ rowHorizontalMargin
44306
+ } = useContext74(TimelineRowLayoutContext);
44176
44307
  const indentWidth = getTimelineRowIndentWidth(depth);
44177
44308
  useTimelineFocusableItem(selectionItem, ref2);
44178
44309
  const keyframeControlsColumnStyle = useMemo136(() => ({
@@ -44209,8 +44340,16 @@ var TimelineRowChrome = ({
44209
44340
  const innerRowStyle = useMemo136(() => ({
44210
44341
  ...rowBase,
44211
44342
  ...style8,
44212
- backgroundColor: outerHeight === null ? highlightBackground : undefined
44213
- }), [style8, outerHeight, highlightBackground]);
44343
+ backgroundColor: outerHeight === null ? highlightBackground : undefined,
44344
+ borderRadius: rowBorderRadius,
44345
+ margin: `0 ${rowHorizontalMargin}px`
44346
+ }), [
44347
+ style8,
44348
+ outerHeight,
44349
+ highlightBackground,
44350
+ rowBorderRadius,
44351
+ rowHorizontalMargin
44352
+ ]);
44214
44353
  const outerStyle = useMemo136(() => {
44215
44354
  if (outerHeight === null) {
44216
44355
  return;
@@ -44224,7 +44363,7 @@ var TimelineRowChrome = ({
44224
44363
  backgroundColor: highlightBackground
44225
44364
  };
44226
44365
  }, [outerHeight, highlightBackground]);
44227
- const chrome = /* @__PURE__ */ jsxs112(Fragment38, {
44366
+ const chrome = /* @__PURE__ */ jsxs112(Fragment37, {
44228
44367
  children: [
44229
44368
  /* @__PURE__ */ jsx214("div", {
44230
44369
  style: leftChromeStyle,
@@ -45131,8 +45270,8 @@ var makeMovedKeyframedDragOverride2 = ({
45131
45270
  var removeKeyframeIcon = {
45132
45271
  display: "block",
45133
45272
  flexShrink: 0,
45134
- height: 18,
45135
- width: 18
45273
+ height: 16,
45274
+ width: 16
45136
45275
  };
45137
45276
  var TrashIcon = ({ color }) => {
45138
45277
  return /* @__PURE__ */ jsx217("svg", {
@@ -45140,7 +45279,7 @@ var TrashIcon = ({ color }) => {
45140
45279
  style: removeKeyframeIcon,
45141
45280
  children: /* @__PURE__ */ jsx217("path", {
45142
45281
  fill: color,
45143
- d: "M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z"
45282
+ d: "M160.5 27.4c2-6.8 8.3-11.4 15.3-11.4l96.4 0c7.1 0 13.3 4.6 15.3 11.4l11 36.6-149 0 11-36.6zM116.1 64L16 64C7.2 64 0 71.2 0 80S7.2 96 16 96l416 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-100.1 0-13.7-45.8C312.1-2.1 293.4-16 272.2-16l-96.4 0c-21.2 0-39.9 13.9-46 34.2L116.1 64zM28.7 144L51.6 452.7c2.5 33.4 30.3 59.3 63.8 59.3l217.1 0c33.5 0 61.3-25.9 63.8-59.3l22.9-308.7-32.1 0-22.7 306.4c-1.2 16.7-15.2 29.6-31.9 29.6l-217.1 0c-16.8 0-30.7-12.9-31.9-29.6L60.8 144 28.7 144z"
45144
45283
  })
45145
45284
  });
45146
45285
  };
@@ -45426,14 +45565,11 @@ var KeyframeInspector = ({ selection }) => {
45426
45565
  track
45427
45566
  }),
45428
45567
  /* @__PURE__ */ jsx217(InspectorSectionDivider, {}),
45429
- /* @__PURE__ */ jsx217(InspectorBackHeader, {
45568
+ /* @__PURE__ */ jsx217(InspectorBackAction, {
45430
45569
  disabled: parentSelection === null,
45431
45570
  onClick: onSelectParent,
45432
45571
  title: "Back to property",
45433
- children: /* @__PURE__ */ jsx217("div", {
45434
- style: sectionHeaderTitle,
45435
- children: details.fieldLabel
45436
- })
45572
+ children: details.fieldLabel
45437
45573
  }),
45438
45574
  /* @__PURE__ */ jsx217(InspectorSectionDivider, {}),
45439
45575
  /* @__PURE__ */ jsx217(KeyframeEasingNavigator, {
@@ -45470,14 +45606,11 @@ var KeyframeInspector = ({ selection }) => {
45470
45606
  small: true
45471
45607
  })
45472
45608
  }),
45473
- /* @__PURE__ */ jsxs113("div", {
45609
+ /* @__PURE__ */ jsx217("div", {
45474
45610
  style: keyframeEditorRow,
45475
- children: [
45476
- /* @__PURE__ */ jsx217("div", {
45477
- style: keyframeEditorLabel,
45478
- children: details.fieldLabel
45479
- }),
45480
- /* @__PURE__ */ jsx217("div", {
45611
+ children: /* @__PURE__ */ jsx217(InspectorDetailRow, {
45612
+ label: details.fieldLabel,
45613
+ children: /* @__PURE__ */ jsx217("div", {
45481
45614
  style: keyframeEditorValue,
45482
45615
  children: details.type === "sequence" ? /* @__PURE__ */ jsx217(TimelineSequenceKeyframedValue, {
45483
45616
  field: details.field,
@@ -45493,17 +45626,19 @@ var KeyframeInspector = ({ selection }) => {
45493
45626
  sourceFrame: details.sourceFrame
45494
45627
  })
45495
45628
  })
45496
- ]
45629
+ })
45497
45630
  })
45498
45631
  ]
45499
45632
  }),
45500
- /* @__PURE__ */ jsx217(InspectorInlineAction, {
45501
- disabled: removeDisabled,
45502
- onClick: onRemoveKeyframe,
45503
- renderIcon: (color) => /* @__PURE__ */ jsx217(TrashIcon, {
45504
- color
45505
- }),
45506
- children: "Remove keyframe"
45633
+ /* @__PURE__ */ jsx217(InspectorActionSection, {
45634
+ children: /* @__PURE__ */ jsx217(InspectorInlineAction, {
45635
+ disabled: removeDisabled,
45636
+ onClick: onRemoveKeyframe,
45637
+ renderIcon: (color) => /* @__PURE__ */ jsx217(TrashIcon, {
45638
+ color
45639
+ }),
45640
+ children: "Remove keyframe"
45641
+ })
45507
45642
  })
45508
45643
  ]
45509
45644
  })
@@ -45524,7 +45659,7 @@ var ScissorsIcon = ({ color, ...props }) => {
45524
45659
  ...props,
45525
45660
  children: /* @__PURE__ */ jsx218("path", {
45526
45661
  fill: color,
45527
- d: "M112 32a80 80 0 1 0 0 160 80 80 0 1 0 0-160zm0-32c61.9 0 112 50.1 112 112 0 12.4-2 24.4-5.8 35.6L256 185.4 383.9 57.5c31-31 81.2-31 112.2 0 12.4 12.4 12.4 32.6 0 45L221.6 377c1.6 7.4 2.4 15.1 2.4 23 0 61.9-50.1 112-112 112S0 461.9 0 400s50.1-112 112-112c12.4 0 24.4 2 35.6 5.8L177.4 264 135 221.6c-7.4 1.6-15.1 2.4-23 2.4-61.9 0-112-50.1-112-112S50.1 0 112 0zm55.8 209.1l32.2 32.2 33.4-33.4-30.5-30.5c-9.3 12.9-21.3 23.7-35.1 31.7zm238.7-129-229 229c12.9 9.3 23.7 21.3 31.7 35.1L473.4 80c-18.5-18.4-48.4-18.3-66.9.1zM192 400a80 80 0 1 0-160 0 80 80 0 1 0 160 0zm206.5 39.9c18.5 18.5 48.4 18.5 66.9.1L346 320.6l22.6-22.6 119.5 119.5c12.4 12.4 12.4 32.6 0 45-31 31-81.2 31-112.2 0L290 376.6l22.6-22.6 85.9 85.9z"
45662
+ d: "M48 112a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm176 0C224 50.1 173.9 0 112 0S0 50.1 0 112 50.1 224 112 224c24 0 46.3-7.6 64.5-20.4l57.3 52.4-57.3 52.4C158.3 295.6 136 288 112 288 50.1 288 0 338.1 0 400s50.1 112 112 112 112-50.1 112-112c0-20.5-5.5-39.6-15.1-56.2L504.2 73.7c9.8-8.9 10.5-24.1 1.5-33.9s-24.1-10.5-33.9-1.5l-202.4 185.2-60.5-55.3c9.6-16.5 15.1-35.7 15.1-56.2zM471.8 473.7c9.8 8.9 25 8.3 33.9-1.5s8.3-25-1.5-33.9L338.6 286.8 302.7 319 471.8 473.7zM48 400a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"
45528
45663
  })
45529
45664
  });
45530
45665
  };
@@ -46093,6 +46228,11 @@ var plusIcon = {
46093
46228
  width: 15,
46094
46229
  height: 15
46095
46230
  };
46231
+ var assetSelectorIcon = {
46232
+ flexShrink: 0,
46233
+ height: 18,
46234
+ width: 18
46235
+ };
46096
46236
  var remoteSourceLabel = {
46097
46237
  color: LIGHT_TEXT,
46098
46238
  display: "flex",
@@ -46206,6 +46346,7 @@ var InspectorSequenceSection = ({
46206
46346
  openTimelineAssetLink(localAsset, selectAsset);
46207
46347
  }
46208
46348
  }, [localAsset, selectAsset]);
46349
+ const localAssetFileName = localAsset ? localAsset.assetPath.split("/").pop() ?? localAsset.assetPath : null;
46209
46350
  const getIsExpanded = useCallback130((candidate) => {
46210
46351
  return !collapsedKeys.has(getInspectorExpansionKey(candidate));
46211
46352
  }, [collapsedKeys]);
@@ -46322,11 +46463,17 @@ var InspectorSequenceSection = ({
46322
46463
  children: controlGroups.map((group) => /* @__PURE__ */ jsxs115(InspectorSection, {
46323
46464
  header: group.label,
46324
46465
  children: [
46325
- group.id === "source" && localAsset ? /* @__PURE__ */ jsx221(AssetInfo, {
46326
- assetName: localAsset.assetPath,
46327
- contentSized: true,
46328
- onAssetClick: jumpToAsset,
46329
- readOnlyStudio: true
46466
+ group.id === "source" && localAsset ? /* @__PURE__ */ jsx221(InspectorInlineAction, {
46467
+ disabled: false,
46468
+ onClick: jumpToAsset,
46469
+ renderIcon: (color) => /* @__PURE__ */ jsx221(AssetFileIcon, {
46470
+ color,
46471
+ fileType: getPreviewFileType(localAsset.assetPath),
46472
+ style: assetSelectorIcon
46473
+ }),
46474
+ size: "compact",
46475
+ title: localAsset.assetPath,
46476
+ children: localAssetFileName
46330
46477
  }) : null,
46331
46478
  group.id === "source" && remoteAsset && remoteSourceParts ? /* @__PURE__ */ jsxs115("div", {
46332
46479
  style: remoteSourceLabel,
@@ -46766,10 +46913,10 @@ var AlignmentControls = ({ track }) => {
46766
46913
  };
46767
46914
 
46768
46915
  // src/components/InspectorPanel/SequenceSelectionInspector.tsx
46769
- import { jsx as jsx229, jsxs as jsxs120, Fragment as Fragment39 } from "react/jsx-runtime";
46916
+ import { jsx as jsx229, jsxs as jsxs120, Fragment as Fragment38 } from "react/jsx-runtime";
46770
46917
  var splitIconStyle = {
46771
- height: 18,
46772
- width: 18
46918
+ height: 16,
46919
+ width: 16
46773
46920
  };
46774
46921
  var SplitSequenceAction = ({ selection, track }) => {
46775
46922
  const timelinePosition = Internals71.Timeline.useTimelinePosition();
@@ -46857,7 +47004,7 @@ var SequenceExpandedInspector = ({ track }) => {
46857
47004
  sourceLocation,
46858
47005
  track
46859
47006
  }),
46860
- connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs120(Fragment39, {
47007
+ connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs120(Fragment38, {
46861
47008
  children: [
46862
47009
  /* @__PURE__ */ jsx229(InspectorSectionDivider, {}),
46863
47010
  /* @__PURE__ */ jsx229(ConnectedCompositionsSection, {
@@ -48250,7 +48397,7 @@ var RenderQueue = () => {
48250
48397
 
48251
48398
  // src/components/RendersTab.tsx
48252
48399
  import { useContext as useContext93, useMemo as useMemo154 } from "react";
48253
- import { jsx as jsx248, jsxs as jsxs124, Fragment as Fragment40 } from "react/jsx-runtime";
48400
+ import { jsx as jsx248, jsxs as jsxs124, Fragment as Fragment39 } from "react/jsx-runtime";
48254
48401
  var row5 = {
48255
48402
  display: "flex",
48256
48403
  flexDirection: "row",
@@ -48289,7 +48436,7 @@ var RendersTab = ({ selected, onClick }) => {
48289
48436
  style: row5,
48290
48437
  children: [
48291
48438
  "Renders",
48292
- jobCount > 0 ? /* @__PURE__ */ jsxs124(Fragment40, {
48439
+ jobCount > 0 ? /* @__PURE__ */ jsxs124(Fragment39, {
48293
48440
  children: [
48294
48441
  /* @__PURE__ */ jsx248(Flex, {}),
48295
48442
  /* @__PURE__ */ jsx248("div", {
@@ -48941,13 +49088,13 @@ var getPlaybackRateLabel = (playbackRate) => {
48941
49088
  return `${playbackRate}x`;
48942
49089
  };
48943
49090
  var accessibilityLabel5 = "Change the playback rate";
48944
- var comboStyle3 = { width: 80 };
49091
+ var comboStyle3 = { width: 64 };
48945
49092
  var PlaybackRateSelector = ({ playbackRate, setPlaybackRate }) => {
48946
49093
  const { canvasContent } = useContext99(Internals81.CompositionManager);
48947
49094
  const isStill = useIsStill();
48948
49095
  const style8 = useMemo157(() => {
48949
49096
  return {
48950
- padding: CONTROL_BUTTON_PADDING
49097
+ padding: CONTROL_BUTTON_PADDING - 2
48951
49098
  };
48952
49099
  }, []);
48953
49100
  const items = useMemo157(() => {
@@ -48983,6 +49130,7 @@ var PlaybackRateSelector = ({ playbackRate, setPlaybackRate }) => {
48983
49130
  style: style8,
48984
49131
  "aria-label": accessibilityLabel5,
48985
49132
  children: /* @__PURE__ */ jsx256(Combobox, {
49133
+ size: "compact",
48986
49134
  title: accessibilityLabel5,
48987
49135
  style: comboStyle3,
48988
49136
  selectedId: String(playbackRate),
@@ -49073,7 +49221,7 @@ var StepForward = (props) => {
49073
49221
  };
49074
49222
 
49075
49223
  // src/components/PlayPause.tsx
49076
- import { jsx as jsx262, jsxs as jsxs127, Fragment as Fragment41 } from "react/jsx-runtime";
49224
+ import { jsx as jsx262, jsxs as jsxs127, Fragment as Fragment40 } from "react/jsx-runtime";
49077
49225
  var backStyle = {
49078
49226
  height: 18,
49079
49227
  color: WHITE
@@ -49265,7 +49413,7 @@ var PlayPause = ({ playbackRate, loop, bufferStateDelayInMilliseconds, muted })
49265
49413
  stopped = true;
49266
49414
  };
49267
49415
  }, [bufferStateDelayInMilliseconds, emitter]);
49268
- return /* @__PURE__ */ jsxs127(Fragment41, {
49416
+ return /* @__PURE__ */ jsxs127(Fragment40, {
49269
49417
  children: [
49270
49418
  /* @__PURE__ */ jsx262(ControlButton, {
49271
49419
  "aria-label": "Jump to beginning",
@@ -49316,7 +49464,7 @@ import { PlayerInternals as PlayerInternals17 } from "@remotion/player";
49316
49464
  import { useCallback as useCallback153, useContext as useContext100, useMemo as useMemo158, useRef as useRef55, useState as useState90 } from "react";
49317
49465
  import ReactDOM10 from "react-dom";
49318
49466
  import { Internals as Internals83 } from "remotion";
49319
- import { jsx as jsx263, jsxs as jsxs128, Fragment as Fragment42 } from "react/jsx-runtime";
49467
+ import { jsx as jsx263, jsxs as jsxs128, Fragment as Fragment41 } from "react/jsx-runtime";
49320
49468
  var splitButtonContainer = {
49321
49469
  display: "inline-flex",
49322
49470
  flexDirection: "row",
@@ -49359,10 +49507,48 @@ var dropdownTriggerStyle = {
49359
49507
  };
49360
49508
  var mainButtonContent = {
49361
49509
  paddingLeft: 4,
49362
- paddingRight: 6
49510
+ paddingRight: 6,
49511
+ minWidth: 0
49363
49512
  };
49364
49513
  var label8 = {
49365
- fontSize: 14
49514
+ color: "inherit",
49515
+ fontFamily: "inherit",
49516
+ fontSize: 14,
49517
+ lineHeight: "21px",
49518
+ minWidth: 0,
49519
+ overflow: "hidden",
49520
+ textOverflow: "ellipsis",
49521
+ whiteSpace: "nowrap"
49522
+ };
49523
+ var compactSplitButtonSegmentHeight = COMPACT_CONTROL_ROW_HEIGHT;
49524
+ var compactMainButtonStyle = {
49525
+ ...mainButtonStyle,
49526
+ boxSizing: "border-box",
49527
+ height: compactSplitButtonSegmentHeight,
49528
+ paddingLeft: 6,
49529
+ paddingRight: 6,
49530
+ paddingTop: 6,
49531
+ paddingBottom: 6,
49532
+ fontSize: 12
49533
+ };
49534
+ var compactDropdownTriggerStyle = {
49535
+ ...dropdownTriggerStyle,
49536
+ boxSizing: "border-box",
49537
+ height: compactSplitButtonSegmentHeight,
49538
+ paddingLeft: 5,
49539
+ paddingRight: 5,
49540
+ paddingTop: 6,
49541
+ paddingBottom: 6
49542
+ };
49543
+ var compactMainButtonContent = {
49544
+ ...mainButtonContent,
49545
+ paddingLeft: 2,
49546
+ paddingRight: 4
49547
+ };
49548
+ var compactLabel3 = {
49549
+ ...label8,
49550
+ fontSize: 12,
49551
+ lineHeight: "16px"
49366
49552
  };
49367
49553
  var RENDER_TYPE_STORAGE_KEY = "remotion.renderType";
49368
49554
  var getInitialRenderType = (readOnlyStudio) => {
@@ -49377,9 +49563,7 @@ var getInitialRenderType = (readOnlyStudio) => {
49377
49563
  } catch {}
49378
49564
  return "server-render";
49379
49565
  };
49380
- var RenderButton = ({
49381
- readOnlyStudio
49382
- }) => {
49566
+ var RenderButton = ({ readOnlyStudio, size: controlSize = "default" }) => {
49383
49567
  const { inFrame, outFrame } = useTimelineInOutFramePosition();
49384
49568
  const { setSelectedModal } = useContext100(ModalsContext);
49385
49569
  const [preferredRenderType, setPreferredRenderType] = useState90(() => getInitialRenderType(readOnlyStudio));
@@ -49440,11 +49624,12 @@ var RenderButton = ({
49440
49624
  const iconStyle5 = useMemo158(() => {
49441
49625
  return {
49442
49626
  style: {
49443
- height: 16,
49444
- color: CURRENT_COLOR
49627
+ height: controlSize === "compact" ? 14 : 16,
49628
+ color: CURRENT_COLOR,
49629
+ flexShrink: 0
49445
49630
  }
49446
49631
  };
49447
- }, []);
49632
+ }, [controlSize]);
49448
49633
  const video = Internals83.useVideo();
49449
49634
  const { getCurrentFrame: getCurrentFrame2 } = PlayerInternals17.usePlayer();
49450
49635
  const { props } = useContext100(Internals83.EditorPropsContext);
@@ -49661,15 +49846,16 @@ var RenderButton = ({
49661
49846
  return {
49662
49847
  ...splitButtonContainer,
49663
49848
  borderColor: BLACK_ALPHA_60,
49849
+ borderRadius: controlSize === "compact" ? 0 : 4,
49664
49850
  opacity: 1,
49665
49851
  cursor: "pointer"
49666
49852
  };
49667
- }, []);
49853
+ }, [controlSize]);
49668
49854
  const renderLabel = renderType === "server-render" ? "Render" : renderType === "render-command" ? "Render via CLI" : "Render on web";
49669
49855
  if (!video) {
49670
49856
  return null;
49671
49857
  }
49672
- return /* @__PURE__ */ jsxs128(Fragment42, {
49858
+ return /* @__PURE__ */ jsxs128(Fragment41, {
49673
49859
  children: [
49674
49860
  /* @__PURE__ */ jsx263("button", {
49675
49861
  style: { display: "none" },
@@ -49692,22 +49878,22 @@ var RenderButton = ({
49692
49878
  children: [
49693
49879
  /* @__PURE__ */ jsx263("button", {
49694
49880
  type: "button",
49695
- style: mainButtonStyle,
49881
+ style: controlSize === "compact" ? compactMainButtonStyle : mainButtonStyle,
49696
49882
  onClick,
49697
49883
  id: "render-modal-button",
49698
49884
  children: /* @__PURE__ */ jsxs128(Row, {
49699
49885
  align: "center",
49700
- style: mainButtonContent,
49886
+ style: controlSize === "compact" ? compactMainButtonContent : mainButtonContent,
49701
49887
  children: [
49702
49888
  /* @__PURE__ */ jsx263(ThinRenderIcon, {
49703
49889
  fill: CURRENT_COLOR_LOWERCASE,
49704
49890
  svgProps: iconStyle5
49705
49891
  }),
49706
49892
  /* @__PURE__ */ jsx263(Spacing, {
49707
- x: 1
49893
+ x: controlSize === "compact" ? 0.75 : 1
49708
49894
  }),
49709
49895
  /* @__PURE__ */ jsx263("span", {
49710
- style: label8,
49896
+ style: controlSize === "compact" ? compactLabel3 : label8,
49711
49897
  children: renderLabel
49712
49898
  })
49713
49899
  ]
@@ -49719,7 +49905,7 @@ var RenderButton = ({
49719
49905
  /* @__PURE__ */ jsx263("button", {
49720
49906
  ref: dropdownRef,
49721
49907
  type: "button",
49722
- style: dropdownTriggerStyle,
49908
+ style: controlSize === "compact" ? compactDropdownTriggerStyle : dropdownTriggerStyle,
49723
49909
  className: MENU_INITIATOR_CLASSNAME,
49724
49910
  onPointerDown,
49725
49911
  onClick: onClickDropdown,
@@ -49914,8 +50100,8 @@ var TimelineZoomControls = () => {
49914
50100
  };
49915
50101
 
49916
50102
  // src/components/PreviewToolbar.tsx
49917
- import { jsx as jsx268, jsxs as jsxs130, Fragment as Fragment43 } from "react/jsx-runtime";
49918
- var TOOLBAR_HEIGHT = 50;
50103
+ import { jsx as jsx268, jsxs as jsxs130, Fragment as Fragment42 } from "react/jsx-runtime";
50104
+ var TOOLBAR_HEIGHT = 40;
49919
50105
  var container39 = {
49920
50106
  display: "flex",
49921
50107
  justifyContent: "center",
@@ -49953,7 +50139,7 @@ var scrollIndicatorRight = {
49953
50139
  };
49954
50140
  var sideContainer = {
49955
50141
  width: 300,
49956
- height: 36,
50142
+ height: 30,
49957
50143
  display: "flex",
49958
50144
  flexDirection: "row",
49959
50145
  alignItems: "center"
@@ -50051,7 +50237,7 @@ var PreviewToolbar = ({ readOnlyStudio, bufferStateDelayInMilliseconds }) => {
50051
50237
  ref: leftScrollIndicatorRef,
50052
50238
  style: scrollIndicatorLeft
50053
50239
  }),
50054
- isMobileLayout ? null : /* @__PURE__ */ jsxs130(Fragment43, {
50240
+ isMobileLayout ? null : /* @__PURE__ */ jsxs130(Fragment42, {
50055
50241
  children: [
50056
50242
  /* @__PURE__ */ jsxs130("div", {
50057
50243
  style: sideContainer,
@@ -50076,7 +50262,7 @@ var PreviewToolbar = ({ readOnlyStudio, bufferStateDelayInMilliseconds }) => {
50076
50262
  }) : null
50077
50263
  ]
50078
50264
  }),
50079
- isVideoComposition ? /* @__PURE__ */ jsxs130(Fragment43, {
50265
+ isVideoComposition ? /* @__PURE__ */ jsxs130(Fragment42, {
50080
50266
  children: [
50081
50267
  /* @__PURE__ */ jsx268(Spacing, {
50082
50268
  x: 2
@@ -50115,7 +50301,7 @@ var PreviewToolbar = ({ readOnlyStudio, bufferStateDelayInMilliseconds }) => {
50115
50301
  })
50116
50302
  ]
50117
50303
  }) : null,
50118
- canvasContent?.type === "composition" ? /* @__PURE__ */ jsxs130(Fragment43, {
50304
+ canvasContent?.type === "composition" ? /* @__PURE__ */ jsxs130(Fragment42, {
50119
50305
  children: [
50120
50306
  /* @__PURE__ */ jsx268(PreviewToolbarControl, {
50121
50307
  children: /* @__PURE__ */ jsx268(CheckboardToggle, {})
@@ -50139,7 +50325,7 @@ var PreviewToolbar = ({ readOnlyStudio, bufferStateDelayInMilliseconds }) => {
50139
50325
  children: /* @__PURE__ */ jsx268(FullScreenToggle, {})
50140
50326
  }) : null,
50141
50327
  /* @__PURE__ */ jsx268(Flex, {}),
50142
- isMobileLayout && /* @__PURE__ */ jsxs130(Fragment43, {
50328
+ isMobileLayout && /* @__PURE__ */ jsxs130(Fragment42, {
50143
50329
  children: [
50144
50330
  /* @__PURE__ */ jsx268(Flex, {}),
50145
50331
  /* @__PURE__ */ jsx268(PreviewToolbarControl, {
@@ -50165,7 +50351,8 @@ var PreviewToolbar = ({ readOnlyStudio, bufferStateDelayInMilliseconds }) => {
50165
50351
  }),
50166
50352
  /* @__PURE__ */ jsx268(PreviewToolbarControl, {
50167
50353
  children: /* @__PURE__ */ jsx268(RenderButton, {
50168
- readOnlyStudio
50354
+ readOnlyStudio,
50355
+ size: "compact"
50169
50356
  })
50170
50357
  }),
50171
50358
  /* @__PURE__ */ jsx268(Spacing, {
@@ -50288,7 +50475,7 @@ var SplitterContainer = ({ orientation, children, defaultFlex, maxFlex, minFlex,
50288
50475
  // src/components/Splitter/SplitterElement.tsx
50289
50476
  import { useContext as useContext104, useMemo as useMemo160 } from "react";
50290
50477
  import { interpolateColors, random } from "remotion";
50291
- import { jsx as jsx270, jsxs as jsxs131, Fragment as Fragment44 } from "react/jsx-runtime";
50478
+ import { jsx as jsx270, jsxs as jsxs131, Fragment as Fragment43 } from "react/jsx-runtime";
50292
50479
  var SplitterElement = ({ children, type, sticky }) => {
50293
50480
  const context = useContext104(SplitterContext);
50294
50481
  const style8 = useMemo160(() => {
@@ -50308,7 +50495,7 @@ var SplitterElement = ({ children, type, sticky }) => {
50308
50495
  backgroundColor: interpolateColors(random(context.flexValue), [0, 1], [RED, "blue"])
50309
50496
  };
50310
50497
  }, [context.flexValue, type]);
50311
- return /* @__PURE__ */ jsxs131(Fragment44, {
50498
+ return /* @__PURE__ */ jsxs131(Fragment43, {
50312
50499
  children: [
50313
50500
  /* @__PURE__ */ jsx270("div", {
50314
50501
  style: style8,
@@ -50603,7 +50790,7 @@ var TopPanelInner = ({ readOnlyStudio, onMounted, drawRef: drawRef2, bufferState
50603
50790
  var TopPanel = React186.memo(TopPanelInner);
50604
50791
 
50605
50792
  // src/components/SidebarCollapserControls.tsx
50606
- import { jsx as jsx273, jsxs as jsxs133, Fragment as Fragment45 } from "react/jsx-runtime";
50793
+ import { jsx as jsx273, jsxs as jsxs133, Fragment as Fragment44 } from "react/jsx-runtime";
50607
50794
  var style8 = {
50608
50795
  width: 16,
50609
50796
  height: 16,
@@ -50735,7 +50922,7 @@ var SidebarCollapserControls = () => {
50735
50922
  })
50736
50923
  });
50737
50924
  }, [colorStyle, rightIcon, toggleRightTooltip]);
50738
- return /* @__PURE__ */ jsxs133(Fragment45, {
50925
+ return /* @__PURE__ */ jsxs133(Fragment44, {
50739
50926
  children: [
50740
50927
  /* @__PURE__ */ jsx273(InlineAction, {
50741
50928
  onClick: toggleLeft,
@@ -50785,7 +50972,7 @@ var UndoIcon = (props) => {
50785
50972
  };
50786
50973
 
50787
50974
  // src/components/UndoRedoButtons.tsx
50788
- import { jsx as jsx276, jsxs as jsxs134, Fragment as Fragment46 } from "react/jsx-runtime";
50975
+ import { jsx as jsx276, jsxs as jsxs134, Fragment as Fragment45 } from "react/jsx-runtime";
50789
50976
  var iconStyle6 = {
50790
50977
  width: 16,
50791
50978
  height: 16
@@ -50877,7 +51064,7 @@ var UndoRedoButtons = () => {
50877
51064
  if (!canUndo && !canRedo) {
50878
51065
  return null;
50879
51066
  }
50880
- return /* @__PURE__ */ jsxs134(Fragment46, {
51067
+ return /* @__PURE__ */ jsxs134(Fragment45, {
50881
51068
  children: [
50882
51069
  /* @__PURE__ */ jsx276(InlineAction, {
50883
51070
  onClick: onUndo,
@@ -52882,7 +53069,7 @@ import { Internals as Internals98, useVideoConfig as useVideoConfig13 } from "re
52882
53069
  // src/components/Timeline/TimelineInOutPointer.tsx
52883
53070
  import { createRef as createRef11, useContext as useContext116 } from "react";
52884
53071
  import { Internals as Internals97 } from "remotion";
52885
- import { jsx as jsx285, jsxs as jsxs138, Fragment as Fragment47 } from "react/jsx-runtime";
53072
+ import { jsx as jsx285, jsxs as jsxs138, Fragment as Fragment46 } from "react/jsx-runtime";
52886
53073
  var areaHighlight = {
52887
53074
  position: "absolute",
52888
53075
  backgroundColor: BLACK_ALPHA_50,
@@ -52900,7 +53087,7 @@ var TimelineInOutPointer = () => {
52900
53087
  if (!videoConfig || timelineWidth === null) {
52901
53088
  return null;
52902
53089
  }
52903
- return /* @__PURE__ */ jsxs138(Fragment47, {
53090
+ return /* @__PURE__ */ jsxs138(Fragment46, {
52904
53091
  children: [
52905
53092
  inFrame !== null && /* @__PURE__ */ jsx285("div", {
52906
53093
  ref: inMarkerAreaRef,
@@ -52974,7 +53161,7 @@ var TimelineInOutPointerHandle = ({
52974
53161
  };
52975
53162
 
52976
53163
  // src/components/Timeline/TimelineInOutDragHandler.tsx
52977
- import { jsx as jsx287, jsxs as jsxs139, Fragment as Fragment48 } from "react/jsx-runtime";
53164
+ import { jsx as jsx287, jsxs as jsxs139, Fragment as Fragment47 } from "react/jsx-runtime";
52978
53165
  var getClientXWithScroll2 = (x) => {
52979
53166
  return x + scrollableRef.current?.scrollLeft;
52980
53167
  };
@@ -53219,7 +53406,7 @@ var TimelineInOutDragHandlerInner = () => {
53219
53406
  }
53220
53407
  ];
53221
53408
  }, [setInAndOutFrames, videoConfig.id]);
53222
- return /* @__PURE__ */ jsxs139(Fragment48, {
53409
+ return /* @__PURE__ */ jsxs139(Fragment47, {
53223
53410
  children: [
53224
53411
  inFrame !== null && /* @__PURE__ */ jsx287(ContextMenu, {
53225
53412
  values: inContextMenu,
@@ -53387,7 +53574,7 @@ var TimelineMediaInfo = ({ src }) => {
53387
53574
 
53388
53575
  // src/components/Timeline/TimelineSequenceName.tsx
53389
53576
  import { useCallback as useCallback167, useEffect as useEffect91, useMemo as useMemo175, useRef as useRef64, useState as useState99 } from "react";
53390
- import { jsx as jsx290, jsxs as jsxs141, Fragment as Fragment49 } from "react/jsx-runtime";
53577
+ import { jsx as jsx290, jsxs as jsxs141, Fragment as Fragment48 } from "react/jsx-runtime";
53391
53578
  var MAX_DISPLAY_NAME_LENGTH = 1000;
53392
53579
  var MAX_RENAME_INPUT_WIDTH = 240;
53393
53580
  var RENAME_INPUT_CLASS_NAME = "remotion-timeline-sequence-name-input";
@@ -53487,7 +53674,7 @@ var TimelineSequenceName = ({
53487
53674
  save();
53488
53675
  }, [save]);
53489
53676
  if (editing) {
53490
- return /* @__PURE__ */ jsxs141(Fragment49, {
53677
+ return /* @__PURE__ */ jsxs141(Fragment48, {
53491
53678
  children: [
53492
53679
  /* @__PURE__ */ jsx290("style", {
53493
53680
  children: `.${RENAME_INPUT_CLASS_NAME}::selection { background: ${WHITE_ALPHA_72}; color: ${BLACK}; }`
@@ -53582,7 +53769,7 @@ var useSequenceFreezeFrameMenuItem = ({
53582
53769
  };
53583
53770
 
53584
53771
  // src/components/Timeline/TimelineSequenceItem.tsx
53585
- import { jsx as jsx291, jsxs as jsxs142, Fragment as Fragment50 } from "react/jsx-runtime";
53772
+ import { jsx as jsx291, jsxs as jsxs142, Fragment as Fragment49 } from "react/jsx-runtime";
53586
53773
  var labelContainerStyle = {
53587
53774
  alignItems: "center",
53588
53775
  alignSelf: "stretch",
@@ -54286,7 +54473,7 @@ var TimelineSequenceItem = ({
54286
54473
  children: /* @__PURE__ */ jsxs142("div", {
54287
54474
  style: labelContainerStyle,
54288
54475
  children: [
54289
- connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs142(Fragment50, {
54476
+ connectedCompositions.length > 0 ? /* @__PURE__ */ jsxs142(Fragment49, {
54290
54477
  children: [
54291
54478
  /* @__PURE__ */ jsx291(CompositionOrStillIcon, {
54292
54479
  color: getTimelineColor(false, false),
@@ -54307,7 +54494,7 @@ var TimelineSequenceItem = ({
54307
54494
  onCancelEditing: onCancelRenaming,
54308
54495
  onSaveName
54309
54496
  }),
54310
- mediaSrc ? /* @__PURE__ */ jsxs142(Fragment50, {
54497
+ mediaSrc ? /* @__PURE__ */ jsxs142(Fragment49, {
54311
54498
  children: [
54312
54499
  /* @__PURE__ */ jsx291(Spacing, {
54313
54500
  x: 0.5
@@ -54340,7 +54527,7 @@ var TimelineSequenceItem = ({
54340
54527
  trackRow
54341
54528
  ]
54342
54529
  }) : trackRow;
54343
- return /* @__PURE__ */ jsxs142(Fragment50, {
54530
+ return /* @__PURE__ */ jsxs142(Fragment49, {
54344
54531
  children: [
54345
54532
  previewConnected ? /* @__PURE__ */ jsx291(ContextMenu, {
54346
54533
  values: contextMenuValues,
@@ -54809,7 +54996,7 @@ var TimelineKeyframeDiamondUnmemoized = ({ frame: frame2, rowHeight, nodePathInf
54809
54996
  var TimelineKeyframeDiamond = React205.memo(TimelineKeyframeDiamondUnmemoized);
54810
54997
 
54811
54998
  // src/components/Timeline/TimelineExpandedKeyframeRow.tsx
54812
- import { jsx as jsx295, jsxs as jsxs145, Fragment as Fragment51 } from "react/jsx-runtime";
54999
+ import { jsx as jsx295, jsxs as jsxs145, Fragment as Fragment50 } from "react/jsx-runtime";
54813
55000
  var row8 = {
54814
55001
  position: "relative"
54815
55002
  };
@@ -54820,7 +55007,7 @@ var TimelineExpandedKeyframeRowUnmemoized = ({ height, keyframes, canEditEasing,
54820
55007
  const timelineWidth = useContext123(TimelineWidthContext);
54821
55008
  const rowHighlightBackground = useTimelineRowHighlightBackground(nodePathInfo);
54822
55009
  const easingSegments = canEditEasing ? getTimelineEasingSegments(keyframes) : [];
54823
- return /* @__PURE__ */ jsxs145(Fragment51, {
55010
+ return /* @__PURE__ */ jsxs145(Fragment50, {
54824
55011
  children: [
54825
55012
  showSeparator ? /* @__PURE__ */ jsx295("div", {
54826
55013
  style: rowSeparator
@@ -58732,7 +58919,7 @@ var CodemodFooter = ({
58732
58919
  };
58733
58920
 
58734
58921
  // src/components/NewComposition/DeleteComposition.tsx
58735
- import { jsx as jsx317, jsxs as jsxs162, Fragment as Fragment52 } from "react/jsx-runtime";
58922
+ import { jsx as jsx317, jsxs as jsxs162, Fragment as Fragment51 } from "react/jsx-runtime";
58736
58923
  var content8 = {
58737
58924
  padding: 16,
58738
58925
  fontSize: 14,
@@ -58755,7 +58942,7 @@ var DeleteCompositionLoaded = ({ compositionId }) => {
58755
58942
  const onSubmit = useCallback179((e) => {
58756
58943
  e.preventDefault();
58757
58944
  }, []);
58758
- return /* @__PURE__ */ jsxs162(Fragment52, {
58945
+ return /* @__PURE__ */ jsxs162(Fragment51, {
58759
58946
  children: [
58760
58947
  /* @__PURE__ */ jsx317(ModalHeader, {
58761
58948
  title: "Delete composition"
@@ -58918,7 +59105,7 @@ var InputAndValidationContainer = ({
58918
59105
 
58919
59106
  // src/components/NewComposition/NewCompDuration.tsx
58920
59107
  import { useCallback as useCallback181 } from "react";
58921
- import { jsx as jsx320, jsxs as jsxs164, Fragment as Fragment53 } from "react/jsx-runtime";
59108
+ import { jsx as jsx320, jsxs as jsxs164, Fragment as Fragment52 } from "react/jsx-runtime";
58922
59109
  var NewCompDuration = ({ durationInFrames, setDurationInFrames }) => {
58923
59110
  const onDurationInFramesChanged = useCallback181((newValue) => {
58924
59111
  setDurationInFrames(Number(newValue));
@@ -58952,7 +59139,7 @@ var NewCompDuration = ({ durationInFrames, setDurationInFrames }) => {
58952
59139
  onValueChange: onDurationChangedDirectly,
58953
59140
  rightAlign: false
58954
59141
  }),
58955
- compDurationErrMessage ? /* @__PURE__ */ jsxs164(Fragment53, {
59142
+ compDurationErrMessage ? /* @__PURE__ */ jsxs164(Fragment52, {
58956
59143
  children: [
58957
59144
  /* @__PURE__ */ jsx320(Spacing, {
58958
59145
  y: 1,
@@ -58973,7 +59160,7 @@ var NewCompDuration = ({ durationInFrames, setDurationInFrames }) => {
58973
59160
  };
58974
59161
 
58975
59162
  // src/components/NewComposition/DuplicateComposition.tsx
58976
- import { jsx as jsx321, jsxs as jsxs165, Fragment as Fragment54 } from "react/jsx-runtime";
59163
+ import { jsx as jsx321, jsxs as jsxs165, Fragment as Fragment53 } from "react/jsx-runtime";
58977
59164
  var content10 = {
58978
59165
  padding: 12,
58979
59166
  paddingRight: 12,
@@ -59127,7 +59314,7 @@ var DuplicateCompositionLoaded = ({ initialType }) => {
59127
59314
  const onSubmit = useCallback182((e) => {
59128
59315
  e.preventDefault();
59129
59316
  }, []);
59130
- return /* @__PURE__ */ jsxs165(Fragment54, {
59317
+ return /* @__PURE__ */ jsxs165(Fragment53, {
59131
59318
  children: [
59132
59319
  /* @__PURE__ */ jsx321(ModalHeader, {
59133
59320
  title: `Duplicate ${resolved.result.id}`
@@ -59176,7 +59363,7 @@ var DuplicateCompositionLoaded = ({ initialType }) => {
59176
59363
  status: "ok",
59177
59364
  rightAlign: true
59178
59365
  }),
59179
- compNameErrMessage ? /* @__PURE__ */ jsxs165(Fragment54, {
59366
+ compNameErrMessage ? /* @__PURE__ */ jsxs165(Fragment53, {
59180
59367
  children: [
59181
59368
  /* @__PURE__ */ jsx321(Spacing, {
59182
59369
  y: 1,
@@ -59194,7 +59381,7 @@ var DuplicateCompositionLoaded = ({ initialType }) => {
59194
59381
  })
59195
59382
  ]
59196
59383
  }),
59197
- hadDimensionsDefined ? /* @__PURE__ */ jsxs165(Fragment54, {
59384
+ hadDimensionsDefined ? /* @__PURE__ */ jsxs165(Fragment53, {
59198
59385
  children: [
59199
59386
  /* @__PURE__ */ jsxs165("div", {
59200
59387
  style: optionRow,
@@ -59222,7 +59409,7 @@ var DuplicateCompositionLoaded = ({ initialType }) => {
59222
59409
  onValueChange: onWidthDirectlyChanged,
59223
59410
  rightAlign: false
59224
59411
  }),
59225
- compWidthErrMessage ? /* @__PURE__ */ jsxs165(Fragment54, {
59412
+ compWidthErrMessage ? /* @__PURE__ */ jsxs165(Fragment53, {
59226
59413
  children: [
59227
59414
  /* @__PURE__ */ jsx321(Spacing, {
59228
59415
  y: 1,
@@ -59266,7 +59453,7 @@ var DuplicateCompositionLoaded = ({ initialType }) => {
59266
59453
  onValueChange: onHeightDirectlyChanged,
59267
59454
  rightAlign: false
59268
59455
  }),
59269
- compHeightErrMessage ? /* @__PURE__ */ jsxs165(Fragment54, {
59456
+ compHeightErrMessage ? /* @__PURE__ */ jsxs165(Fragment53, {
59270
59457
  children: [
59271
59458
  /* @__PURE__ */ jsx321(Spacing, {
59272
59459
  y: 1,
@@ -59483,7 +59670,7 @@ var getNewCompositionDefaults = (composition) => {
59483
59670
  };
59484
59671
 
59485
59672
  // src/components/NewComposition/NewComposition.tsx
59486
- import { jsx as jsx322, jsxs as jsxs166, Fragment as Fragment55 } from "react/jsx-runtime";
59673
+ import { jsx as jsx322, jsxs as jsxs166, Fragment as Fragment54 } from "react/jsx-runtime";
59487
59674
  var content11 = {
59488
59675
  padding: 12,
59489
59676
  paddingRight: 12,
@@ -59574,7 +59761,7 @@ var NewCompositionLoaded = ({ folderName, parentName, stack: stack2 }) => {
59574
59761
  e.preventDefault();
59575
59762
  }, []);
59576
59763
  const folderPath = [parentName, folderName].filter(Boolean).join("/");
59577
- return /* @__PURE__ */ jsxs166(Fragment55, {
59764
+ return /* @__PURE__ */ jsxs166(Fragment54, {
59578
59765
  children: [
59579
59766
  /* @__PURE__ */ jsx322(ModalHeader, {
59580
59767
  title: "New composition"
@@ -59622,7 +59809,7 @@ var NewCompositionLoaded = ({ folderName, parentName, stack: stack2 }) => {
59622
59809
  status: "ok",
59623
59810
  rightAlign: true
59624
59811
  }),
59625
- compNameErrMessage ? /* @__PURE__ */ jsxs166(Fragment55, {
59812
+ compNameErrMessage ? /* @__PURE__ */ jsxs166(Fragment54, {
59626
59813
  children: [
59627
59814
  /* @__PURE__ */ jsx322(Spacing, {
59628
59815
  y: 1,
@@ -59666,7 +59853,7 @@ var NewCompositionLoaded = ({ folderName, parentName, stack: stack2 }) => {
59666
59853
  onValueChange: onWidthDirectlyChanged,
59667
59854
  rightAlign: false
59668
59855
  }),
59669
- compWidthErrMessage ? /* @__PURE__ */ jsxs166(Fragment55, {
59856
+ compWidthErrMessage ? /* @__PURE__ */ jsxs166(Fragment54, {
59670
59857
  children: [
59671
59858
  /* @__PURE__ */ jsx322(Spacing, {
59672
59859
  y: 1,
@@ -59710,7 +59897,7 @@ var NewCompositionLoaded = ({ folderName, parentName, stack: stack2 }) => {
59710
59897
  onValueChange: onHeightDirectlyChanged,
59711
59898
  rightAlign: false
59712
59899
  }),
59713
- compHeightErrMessage ? /* @__PURE__ */ jsxs166(Fragment55, {
59900
+ compHeightErrMessage ? /* @__PURE__ */ jsxs166(Fragment54, {
59714
59901
  children: [
59715
59902
  /* @__PURE__ */ jsx322(Spacing, {
59716
59903
  y: 1,
@@ -59823,7 +60010,7 @@ var validateNewFolderName = ({
59823
60010
  };
59824
60011
 
59825
60012
  // src/components/NewComposition/NewFolder.tsx
59826
- import { jsx as jsx323, jsxs as jsxs167, Fragment as Fragment56 } from "react/jsx-runtime";
60013
+ import { jsx as jsx323, jsxs as jsxs167, Fragment as Fragment55 } from "react/jsx-runtime";
59827
60014
  var content12 = {
59828
60015
  padding: 12,
59829
60016
  paddingRight: 12,
@@ -59920,7 +60107,7 @@ var NewFolder = ({ parentName, stack: stack2 }) => {
59920
60107
  status: "ok",
59921
60108
  rightAlign: true
59922
60109
  }),
59923
- folderNameErrMessage ? /* @__PURE__ */ jsxs167(Fragment56, {
60110
+ folderNameErrMessage ? /* @__PURE__ */ jsxs167(Fragment55, {
59924
60111
  children: [
59925
60112
  /* @__PURE__ */ jsx323(Spacing, {
59926
60113
  y: 1,
@@ -59975,7 +60162,7 @@ import {
59975
60162
  useState as useState111
59976
60163
  } from "react";
59977
60164
  import { Internals as Internals115 } from "remotion";
59978
- import { jsx as jsx324, jsxs as jsxs168, Fragment as Fragment57 } from "react/jsx-runtime";
60165
+ import { jsx as jsx324, jsxs as jsxs168, Fragment as Fragment56 } from "react/jsx-runtime";
59979
60166
  var content13 = {
59980
60167
  padding: 12,
59981
60168
  paddingRight: 12,
@@ -60017,7 +60204,7 @@ var RenameCompositionLoaded = () => {
60017
60204
  const onSubmit = useCallback186((e) => {
60018
60205
  e.preventDefault();
60019
60206
  }, []);
60020
- return /* @__PURE__ */ jsxs168(Fragment57, {
60207
+ return /* @__PURE__ */ jsxs168(Fragment56, {
60021
60208
  children: [
60022
60209
  /* @__PURE__ */ jsx324(ModalHeader, {
60023
60210
  title: `Rename ${resolved.result.id}`
@@ -60048,7 +60235,7 @@ var RenameCompositionLoaded = () => {
60048
60235
  status: "ok",
60049
60236
  rightAlign: true
60050
60237
  }),
60051
- compNameErrMessage ? /* @__PURE__ */ jsxs168(Fragment57, {
60238
+ compNameErrMessage ? /* @__PURE__ */ jsxs168(Fragment56, {
60052
60239
  children: [
60053
60240
  /* @__PURE__ */ jsx324(Spacing, {
60054
60241
  y: 1,
@@ -60124,7 +60311,7 @@ var validateFolderRename = ({
60124
60311
  };
60125
60312
 
60126
60313
  // src/components/NewComposition/RenameFolder.tsx
60127
- import { jsx as jsx325, jsxs as jsxs169, Fragment as Fragment58 } from "react/jsx-runtime";
60314
+ import { jsx as jsx325, jsxs as jsxs169, Fragment as Fragment57 } from "react/jsx-runtime";
60128
60315
  var content14 = {
60129
60316
  padding: 12,
60130
60317
  paddingRight: 12,
@@ -60195,7 +60382,7 @@ var RenameFolder = ({ folderName, parentName, stack: stack2 }) => {
60195
60382
  status: "ok",
60196
60383
  rightAlign: true
60197
60384
  }),
60198
- folderNameErrMessage ? /* @__PURE__ */ jsxs169(Fragment58, {
60385
+ folderNameErrMessage ? /* @__PURE__ */ jsxs169(Fragment57, {
60199
60386
  children: [
60200
60387
  /* @__PURE__ */ jsx325(Spacing, {
60201
60388
  y: 1,
@@ -60248,7 +60435,7 @@ import {
60248
60435
  useRef as useRef77,
60249
60436
  useState as useState113
60250
60437
  } from "react";
60251
- import { jsx as jsx326, jsxs as jsxs170, Fragment as Fragment59 } from "react/jsx-runtime";
60438
+ import { jsx as jsx326, jsxs as jsxs170, Fragment as Fragment58 } from "react/jsx-runtime";
60252
60439
  var content15 = {
60253
60440
  padding: 12,
60254
60441
  paddingRight: 12,
@@ -60338,7 +60525,7 @@ var RenameStaticFileModal = ({ relativePath }) => {
60338
60525
  status: validationMessage ? "error" : "ok",
60339
60526
  rightAlign: true
60340
60527
  }),
60341
- validationMessage ? /* @__PURE__ */ jsxs170(Fragment59, {
60528
+ validationMessage ? /* @__PURE__ */ jsxs170(Fragment58, {
60342
60529
  children: [
60343
60530
  /* @__PURE__ */ jsx326(Spacing, {
60344
60531
  y: 1,
@@ -60554,7 +60741,7 @@ var ArrowRight = () => {
60554
60741
  };
60555
60742
 
60556
60743
  // src/components/KeyboardShortcutsExplainer.tsx
60557
- import { jsx as jsx329, jsxs as jsxs172, Fragment as Fragment60 } from "react/jsx-runtime";
60744
+ import { jsx as jsx329, jsxs as jsxs172, Fragment as Fragment59 } from "react/jsx-runtime";
60558
60745
  var left3 = {
60559
60746
  width: 85,
60560
60747
  paddingTop: 8,
@@ -61515,7 +61702,7 @@ var KeyboardShortcutsExplainer = () => {
61515
61702
  })
61516
61703
  ]
61517
61704
  }),
61518
- getStudioAskAIEnabled() && /* @__PURE__ */ jsxs172(Fragment60, {
61705
+ getStudioAskAIEnabled() && /* @__PURE__ */ jsxs172(Fragment59, {
61519
61706
  children: [
61520
61707
  /* @__PURE__ */ jsx329("br", {}),
61521
61708
  /* @__PURE__ */ jsx329("div", {
@@ -61686,7 +61873,7 @@ var QuickSwitcherNoResults = ({ query, mode }) => {
61686
61873
 
61687
61874
  // src/components/QuickSwitcher/QuickSwitcherResult.tsx
61688
61875
  import { useEffect as useEffect109, useMemo as useMemo199, useRef as useRef78, useState as useState115 } from "react";
61689
- import { jsx as jsx331, jsxs as jsxs174, Fragment as Fragment61 } from "react/jsx-runtime";
61876
+ import { jsx as jsx331, jsxs as jsxs174, Fragment as Fragment60 } from "react/jsx-runtime";
61690
61877
  var container53 = {
61691
61878
  paddingLeft: 16,
61692
61879
  paddingRight: 16,
@@ -61782,7 +61969,7 @@ var QuickSwitcherResult = ({ result, selected }) => {
61782
61969
  }),
61783
61970
  /* @__PURE__ */ jsx331("div", {
61784
61971
  style: labelContainer2,
61785
- children: result.type === "search-result" ? /* @__PURE__ */ jsxs174(Fragment61, {
61972
+ children: result.type === "search-result" ? /* @__PURE__ */ jsxs174(Fragment60, {
61786
61973
  children: [
61787
61974
  /* @__PURE__ */ jsx331("div", {
61788
61975
  dangerouslySetInnerHTML: {
@@ -61807,7 +61994,7 @@ var QuickSwitcherResult = ({ result, selected }) => {
61807
61994
  };
61808
61995
 
61809
61996
  // src/components/QuickSwitcher/QuickSwitcherContent.tsx
61810
- import { jsx as jsx332, jsxs as jsxs175, Fragment as Fragment62 } from "react/jsx-runtime";
61997
+ import { jsx as jsx332, jsxs as jsxs175, Fragment as Fragment61 } from "react/jsx-runtime";
61811
61998
  var input2 = {
61812
61999
  width: "100%"
61813
62000
  };
@@ -62092,7 +62279,7 @@ var QuickSwitcherContent = ({ initialMode, invocationTimestamp, readOnlyStudio }
62092
62279
  placeholder: "Search compositions...",
62093
62280
  rightAlign: false
62094
62281
  }),
62095
- showKeyboardShortcuts ? /* @__PURE__ */ jsxs175(Fragment62, {
62282
+ showKeyboardShortcuts ? /* @__PURE__ */ jsxs175(Fragment61, {
62096
62283
  children: [
62097
62284
  /* @__PURE__ */ jsx332(Spacing, {
62098
62285
  x: 2
@@ -62515,7 +62702,7 @@ var GuiRenderStatus = ({ job }) => {
62515
62702
  };
62516
62703
 
62517
62704
  // src/components/RenderModal/RenderStatusModal.tsx
62518
- import { jsx as jsx337, jsxs as jsxs178, Fragment as Fragment63 } from "react/jsx-runtime";
62705
+ import { jsx as jsx337, jsxs as jsxs178, Fragment as Fragment62 } from "react/jsx-runtime";
62519
62706
  var container54 = {
62520
62707
  padding: 20,
62521
62708
  maxWidth: 900,
@@ -62597,7 +62784,7 @@ var RenderStatusModal = ({
62597
62784
  /* @__PURE__ */ jsxs178("div", {
62598
62785
  style: container54,
62599
62786
  children: [
62600
- job.status === "failed" ? /* @__PURE__ */ jsxs178(Fragment63, {
62787
+ job.status === "failed" ? /* @__PURE__ */ jsxs178(Fragment62, {
62601
62788
  children: [
62602
62789
  /* @__PURE__ */ jsx337("p", {
62603
62790
  children: "The render failed because of the following error:"
@@ -63162,7 +63349,7 @@ var CliCopyButton = ({
63162
63349
  };
63163
63350
 
63164
63351
  // src/components/RenderModal/OptionExplainer.tsx
63165
- import { jsx as jsx343, jsxs as jsxs179, Fragment as Fragment64 } from "react/jsx-runtime";
63352
+ import { jsx as jsx343, jsxs as jsxs179, Fragment as Fragment63 } from "react/jsx-runtime";
63166
63353
  var container55 = {
63167
63354
  fontSize: 14,
63168
63355
  paddingTop: 10,
@@ -63233,7 +63420,7 @@ var OptionExplainer = ({
63233
63420
  style: title4,
63234
63421
  children: option.name
63235
63422
  }),
63236
- option.docLink ? /* @__PURE__ */ jsxs179(Fragment64, {
63423
+ option.docLink ? /* @__PURE__ */ jsxs179(Fragment63, {
63237
63424
  children: [
63238
63425
  /* @__PURE__ */ jsx343(Spacing, {
63239
63426
  x: 1
@@ -63279,7 +63466,7 @@ var OptionExplainer = ({
63279
63466
  })
63280
63467
  ]
63281
63468
  }),
63282
- hasInfoRows ? /* @__PURE__ */ jsxs179(Fragment64, {
63469
+ hasInfoRows ? /* @__PURE__ */ jsxs179(Fragment63, {
63283
63470
  children: [
63284
63471
  /* @__PURE__ */ jsx343(Spacing, {
63285
63472
  y: 0.5,
@@ -63407,7 +63594,7 @@ var WebRendererCustomOptionExplainerBubble = ({ apiName, description: descriptio
63407
63594
  };
63408
63595
 
63409
63596
  // src/components/RenderModal/NumberSetting.tsx
63410
- import { jsx as jsx345, jsxs as jsxs180, Fragment as Fragment65 } from "react/jsx-runtime";
63597
+ import { jsx as jsx345, jsxs as jsxs180, Fragment as Fragment64 } from "react/jsx-runtime";
63411
63598
  var NumberSetting = ({ name, value, step, hint, onValueChanged, max, min, formatter }) => {
63412
63599
  const onTextChanged = useCallback195((e) => {
63413
63600
  onValueChanged((q) => {
@@ -63428,7 +63615,7 @@ var NumberSetting = ({ name, value, step, hint, onValueChanged, max, min, format
63428
63615
  style: label6,
63429
63616
  children: [
63430
63617
  name,
63431
- hint ? /* @__PURE__ */ jsxs180(Fragment65, {
63618
+ hint ? /* @__PURE__ */ jsxs180(Fragment64, {
63432
63619
  children: [
63433
63620
  /* @__PURE__ */ jsx345(Spacing, {
63434
63621
  x: 0.5
@@ -64419,7 +64606,7 @@ var useFileExistence = (outName) => {
64419
64606
 
64420
64607
  // src/components/RenderModal/RenderModalOutputName.tsx
64421
64608
  import { useCallback as useCallback199 } from "react";
64422
- import { jsx as jsx351, jsxs as jsxs184, Fragment as Fragment66 } from "react/jsx-runtime";
64609
+ import { jsx as jsx351, jsxs as jsxs184, Fragment as Fragment65 } from "react/jsx-runtime";
64423
64610
  var existsMessageStyle = {
64424
64611
  display: "inline-flex",
64425
64612
  alignItems: "center",
@@ -64476,7 +64663,7 @@ var RenderModalOutputName = ({
64476
64663
  onChange: onValueChange,
64477
64664
  rightAlign: true
64478
64665
  }),
64479
- validationMessage ? /* @__PURE__ */ jsxs184(Fragment66, {
64666
+ validationMessage ? /* @__PURE__ */ jsxs184(Fragment65, {
64480
64667
  children: [
64481
64668
  /* @__PURE__ */ jsx351(Spacing, {
64482
64669
  y: 1,
@@ -64488,7 +64675,7 @@ var RenderModalOutputName = ({
64488
64675
  type: "error"
64489
64676
  })
64490
64677
  ]
64491
- }) : existence ? /* @__PURE__ */ jsxs184(Fragment66, {
64678
+ }) : existence ? /* @__PURE__ */ jsxs184(Fragment65, {
64492
64679
  children: [
64493
64680
  /* @__PURE__ */ jsx351(Spacing, {
64494
64681
  y: 1,
@@ -64519,7 +64706,7 @@ var RenderModalOutputName = ({
64519
64706
  };
64520
64707
 
64521
64708
  // src/components/RenderModal/SeparateAudioOption.tsx
64522
- import { jsx as jsx352, jsxs as jsxs185, Fragment as Fragment67 } from "react/jsx-runtime";
64709
+ import { jsx as jsx352, jsxs as jsxs185, Fragment as Fragment66 } from "react/jsx-runtime";
64523
64710
  var SeparateAudioOptionInput = ({ separateAudioTo, setSeparateAudioTo, audioCodec }) => {
64524
64711
  const existence = useFileExistence(separateAudioTo);
64525
64712
  const onValueChange = useCallback200((e) => {
@@ -64551,7 +64738,7 @@ var SeparateAudioOption = ({ separateAudioTo, setSeparateAudioTo, audioCodec, ou
64551
64738
  setSeparateAudioTo(null);
64552
64739
  }
64553
64740
  }, [audioCodec, outName, setSeparateAudioTo]);
64554
- return /* @__PURE__ */ jsxs185(Fragment67, {
64741
+ return /* @__PURE__ */ jsxs185(Fragment66, {
64555
64742
  children: [
64556
64743
  /* @__PURE__ */ jsxs185("div", {
64557
64744
  style: optionRow,
@@ -64589,7 +64776,7 @@ var SeparateAudioOption = ({ separateAudioTo, setSeparateAudioTo, audioCodec, ou
64589
64776
  };
64590
64777
 
64591
64778
  // src/components/RenderModal/RenderModalAudio.tsx
64592
- import { jsx as jsx353, jsxs as jsxs186, Fragment as Fragment68 } from "react/jsx-runtime";
64779
+ import { jsx as jsx353, jsxs as jsxs186, Fragment as Fragment67 } from "react/jsx-runtime";
64593
64780
  var container58 = {
64594
64781
  flex: 1,
64595
64782
  overflowY: "auto"
@@ -64659,7 +64846,7 @@ var RenderModalAudio = ({
64659
64846
  style: container58,
64660
64847
  className: VERTICAL_SCROLLBAR_CLASSNAME,
64661
64848
  children: [
64662
- renderMode === "video" ? /* @__PURE__ */ jsxs186(Fragment68, {
64849
+ renderMode === "video" ? /* @__PURE__ */ jsxs186(Fragment67, {
64663
64850
  children: [
64664
64851
  /* @__PURE__ */ jsx353(MutedSetting, {
64665
64852
  enforceAudioTrack,
@@ -64694,7 +64881,7 @@ var RenderModalAudio = ({
64694
64881
  })
64695
64882
  ]
64696
64883
  }) : null,
64697
- (renderMode === "video" || renderMode === "audio") && !muted && /* @__PURE__ */ jsxs186(Fragment68, {
64884
+ (renderMode === "video" || renderMode === "audio") && !muted && /* @__PURE__ */ jsxs186(Fragment67, {
64698
64885
  children: [
64699
64886
  /* @__PURE__ */ jsx353(EnforceAudioTrackSetting, {
64700
64887
  muted,
@@ -65313,7 +65500,7 @@ var labelx264Preset = (profile) => {
65313
65500
  };
65314
65501
 
65315
65502
  // src/components/RenderModal/RenderModalEncoding.tsx
65316
- import { jsx as jsx357, jsxs as jsxs190, Fragment as Fragment69 } from "react/jsx-runtime";
65503
+ import { jsx as jsx357, jsxs as jsxs190, Fragment as Fragment68 } from "react/jsx-runtime";
65317
65504
  var qualityControlModes = ["crf", "bitrate"];
65318
65505
  var container61 = {
65319
65506
  flex: 1,
@@ -65498,7 +65685,7 @@ var RenderModalEncoding = ({
65498
65685
  })
65499
65686
  ]
65500
65687
  }) : null,
65501
- renderMode === "video" ? /* @__PURE__ */ jsxs190(Fragment69, {
65688
+ renderMode === "video" ? /* @__PURE__ */ jsxs190(Fragment68, {
65502
65689
  children: [
65503
65690
  /* @__PURE__ */ jsxs190("div", {
65504
65691
  style: optionRow,
@@ -65722,7 +65909,7 @@ var RenderModalEncoding = ({
65722
65909
  })
65723
65910
  ]
65724
65911
  }) : null,
65725
- renderMode === "still" ? null : /* @__PURE__ */ jsxs190(Fragment69, {
65912
+ renderMode === "still" ? null : /* @__PURE__ */ jsxs190(Fragment68, {
65726
65913
  children: [
65727
65914
  renderMode === "video" ? /* @__PURE__ */ jsx357(RenderModalHr, {}) : null,
65728
65915
  /* @__PURE__ */ jsxs190("div", {
@@ -65786,7 +65973,7 @@ var InlineEyeButton = ({ onClick, enabled }) => {
65786
65973
  };
65787
65974
 
65788
65975
  // src/components/RenderModal/EnvInput.tsx
65789
- import { jsx as jsx359, jsxs as jsxs191, Fragment as Fragment70 } from "react/jsx-runtime";
65976
+ import { jsx as jsx359, jsxs as jsxs191, Fragment as Fragment69 } from "react/jsx-runtime";
65790
65977
  var input3 = {
65791
65978
  flex: 1,
65792
65979
  width: "100%"
@@ -65833,7 +66020,7 @@ var EnvInput = ({
65833
66020
  setValueWarningEligible(true);
65834
66021
  }, []);
65835
66022
  const isNodeEnvKey = envKey.trim() === "NODE_ENV";
65836
- return /* @__PURE__ */ jsxs191(Fragment70, {
66023
+ return /* @__PURE__ */ jsxs191(Fragment69, {
65837
66024
  children: [
65838
66025
  /* @__PURE__ */ jsxs191(Row, {
65839
66026
  align: "center",
@@ -66113,7 +66300,7 @@ var JpegQualitySetting = ({ jpegQuality, setJpegQuality }) => {
66113
66300
 
66114
66301
  // src/components/RenderModal/ScaleSetting.tsx
66115
66302
  import { useMemo as useMemo211 } from "react";
66116
- import { jsx as jsx364, jsxs as jsxs195, Fragment as Fragment71 } from "react/jsx-runtime";
66303
+ import { jsx as jsx364, jsxs as jsxs195, Fragment as Fragment70 } from "react/jsx-runtime";
66117
66304
  var MIN_SCALE = 0.1;
66118
66305
  var MAX_SCALE = 10;
66119
66306
  var outputDimensionsStyle = {
@@ -66131,7 +66318,7 @@ var ScaleSetting = ({ scale, setScale, compositionWidth, compositionHeight }) =>
66131
66318
  const outputHeight = Math.round(compositionHeight * scale);
66132
66319
  return `${outputWidth}×${outputHeight}`;
66133
66320
  }, [compositionWidth, compositionHeight, scale]);
66134
- return /* @__PURE__ */ jsxs195(Fragment71, {
66321
+ return /* @__PURE__ */ jsxs195(Fragment70, {
66135
66322
  children: [
66136
66323
  /* @__PURE__ */ jsx364(NumberSetting, {
66137
66324
  min: MIN_SCALE,
@@ -67570,7 +67757,7 @@ var useEncodableVideoCodecs = (container65) => {
67570
67757
 
67571
67758
  // src/components/RenderModal/WebRenderModalAdvanced.tsx
67572
67759
  import { useCallback as useCallback212, useMemo as useMemo213 } from "react";
67573
- import { jsx as jsx368, jsxs as jsxs198, Fragment as Fragment72 } from "react/jsx-runtime";
67760
+ import { jsx as jsx368, jsxs as jsxs198, Fragment as Fragment71 } from "react/jsx-runtime";
67574
67761
  var tabContainer = {
67575
67762
  flex: 1
67576
67763
  };
@@ -67582,7 +67769,7 @@ var lastParagraph = {
67582
67769
  margin: 0
67583
67770
  };
67584
67771
  var PageResponsivenessDescription = () => {
67585
- return /* @__PURE__ */ jsxs198(Fragment72, {
67772
+ return /* @__PURE__ */ jsxs198(Fragment71, {
67586
67773
  children: [
67587
67774
  /* @__PURE__ */ jsx368("p", {
67588
67775
  style: paragraph,
@@ -67814,7 +68001,7 @@ var WebRenderModalAdvanced = ({
67814
68001
  })
67815
68002
  ]
67816
68003
  }) : null,
67817
- renderMode === "still" ? null : /* @__PURE__ */ jsxs198(Fragment72, {
68004
+ renderMode === "still" ? null : /* @__PURE__ */ jsxs198(Fragment71, {
67818
68005
  children: [
67819
68006
  /* @__PURE__ */ jsxs198("div", {
67820
68007
  style: optionRow,
@@ -67887,7 +68074,7 @@ var getQualityOptions = (selectedQuality, setQuality) => {
67887
68074
  };
67888
68075
 
67889
68076
  // src/components/RenderModal/WebRenderModalAudio.tsx
67890
- import { jsx as jsx370, jsxs as jsxs199, Fragment as Fragment73 } from "react/jsx-runtime";
68077
+ import { jsx as jsx370, jsxs as jsxs199, Fragment as Fragment72 } from "react/jsx-runtime";
67891
68078
  var container65 = {
67892
68079
  flex: 1,
67893
68080
  overflowY: "auto"
@@ -67965,7 +68152,7 @@ var WebRenderModalAudio = ({
67965
68152
  muted,
67966
68153
  setMuted
67967
68154
  }),
67968
- showAudioSettings ? /* @__PURE__ */ jsxs199(Fragment73, {
68155
+ showAudioSettings ? /* @__PURE__ */ jsxs199(Fragment72, {
67969
68156
  children: [
67970
68157
  isAudioOnly ? null : /* @__PURE__ */ jsx370(RenderModalHr, {}),
67971
68158
  /* @__PURE__ */ jsxs199("div", {
@@ -68030,7 +68217,7 @@ var WebRenderModalAudio = ({
68030
68217
 
68031
68218
  // src/components/RenderModal/WebRenderModalBasic.tsx
68032
68219
  import { useMemo as useMemo215 } from "react";
68033
- import { jsx as jsx371, jsxs as jsxs200, Fragment as Fragment74 } from "react/jsx-runtime";
68220
+ import { jsx as jsx371, jsxs as jsxs200, Fragment as Fragment73 } from "react/jsx-runtime";
68034
68221
  var tabContainer2 = {
68035
68222
  flex: 1
68036
68223
  };
@@ -68150,7 +68337,7 @@ var WebRenderModalBasic = ({
68150
68337
  return /* @__PURE__ */ jsxs200("div", {
68151
68338
  style: tabContainer2,
68152
68339
  children: [
68153
- renderMode === "still" ? /* @__PURE__ */ jsxs200(Fragment74, {
68340
+ renderMode === "still" ? /* @__PURE__ */ jsxs200(Fragment73, {
68154
68341
  children: [
68155
68342
  /* @__PURE__ */ jsxs200("div", {
68156
68343
  style: optionRow,
@@ -68195,7 +68382,7 @@ var WebRenderModalBasic = ({
68195
68382
  ]
68196
68383
  }) : null
68197
68384
  ]
68198
- }) : /* @__PURE__ */ jsxs200(Fragment74, {
68385
+ }) : /* @__PURE__ */ jsxs200(Fragment73, {
68199
68386
  children: [
68200
68387
  /* @__PURE__ */ jsxs200("div", {
68201
68388
  style: optionRow,
@@ -68400,7 +68587,7 @@ var WebRenderModalLicenseKeyDetails = ({ details }) => {
68400
68587
  };
68401
68588
 
68402
68589
  // src/components/RenderModal/WebRenderModalLicense.tsx
68403
- import { jsx as jsx374, jsxs as jsxs202, Fragment as Fragment75 } from "react/jsx-runtime";
68590
+ import { jsx as jsx374, jsxs as jsxs202, Fragment as Fragment74 } from "react/jsx-runtime";
68404
68591
  var row11 = {
68405
68592
  display: "flex",
68406
68593
  flexDirection: "row",
@@ -68653,7 +68840,7 @@ var WebRenderModalLicense = ({
68653
68840
  style: inputStyle3,
68654
68841
  autoFocus: true
68655
68842
  }),
68656
- licenseValidation.message ? /* @__PURE__ */ jsxs202(Fragment75, {
68843
+ licenseValidation.message ? /* @__PURE__ */ jsxs202(Fragment74, {
68657
68844
  children: [
68658
68845
  /* @__PURE__ */ jsx374(Spacing, {
68659
68846
  y: 1,
@@ -68666,7 +68853,7 @@ var WebRenderModalLicense = ({
68666
68853
  })
68667
68854
  ]
68668
68855
  }) : null,
68669
- licenseValidation.valid && licenseKey.length > 0 ? /* @__PURE__ */ jsxs202(Fragment75, {
68856
+ licenseValidation.valid && licenseKey.length > 0 ? /* @__PURE__ */ jsxs202(Fragment74, {
68670
68857
  children: [
68671
68858
  /* @__PURE__ */ jsx374(Spacing, {
68672
68859
  y: 1,
@@ -68685,7 +68872,7 @@ var WebRenderModalLicense = ({
68685
68872
  })
68686
68873
  ]
68687
68874
  }) : null,
68688
- isLoading && /* @__PURE__ */ jsxs202(Fragment75, {
68875
+ isLoading && /* @__PURE__ */ jsxs202(Fragment74, {
68689
68876
  children: [
68690
68877
  /* @__PURE__ */ jsx374(Spacing, {
68691
68878
  y: 1,
@@ -68694,7 +68881,7 @@ var WebRenderModalLicense = ({
68694
68881
  "Loading license key details..."
68695
68882
  ]
68696
68883
  }),
68697
- licenseValidation.details && /* @__PURE__ */ jsxs202(Fragment75, {
68884
+ licenseValidation.details && /* @__PURE__ */ jsxs202(Fragment74, {
68698
68885
  children: [
68699
68886
  /* @__PURE__ */ jsx374(Spacing, {
68700
68887
  y: 1,
@@ -68727,7 +68914,7 @@ var WebRenderModalLicense = ({
68727
68914
 
68728
68915
  // src/components/RenderModal/WebRenderModalPicture.tsx
68729
68916
  import { useCallback as useCallback214, useMemo as useMemo216 } from "react";
68730
- import { jsx as jsx375, jsxs as jsxs203, Fragment as Fragment76 } from "react/jsx-runtime";
68917
+ import { jsx as jsx375, jsxs as jsxs203, Fragment as Fragment75 } from "react/jsx-runtime";
68731
68918
  var tabContainer4 = {
68732
68919
  flex: 1
68733
68920
  };
@@ -68757,7 +68944,7 @@ var WebRenderModalPicture = ({
68757
68944
  compositionWidth,
68758
68945
  compositionHeight
68759
68946
  }),
68760
- renderMode !== "video" ? null : /* @__PURE__ */ jsxs203(Fragment76, {
68947
+ renderMode !== "video" ? null : /* @__PURE__ */ jsxs203(Fragment75, {
68761
68948
  children: [
68762
68949
  /* @__PURE__ */ jsxs203("div", {
68763
68950
  style: optionRow,
@@ -69538,7 +69725,7 @@ var KnownBugs = ({ bugs }) => {
69538
69725
  };
69539
69726
 
69540
69727
  // src/components/UpdateModal/UpdateModal.tsx
69541
- import { jsx as jsx380, jsxs as jsxs207, Fragment as Fragment77 } from "react/jsx-runtime";
69728
+ import { jsx as jsx380, jsxs as jsxs207, Fragment as Fragment76 } from "react/jsx-runtime";
69542
69729
  var container67 = {
69543
69730
  padding: 20,
69544
69731
  paddingTop: 0
@@ -69589,7 +69776,7 @@ var UpdateModal = ({ info, knownBugs }) => {
69589
69776
  /* @__PURE__ */ jsxs207("div", {
69590
69777
  style: container67,
69591
69778
  children: [
69592
- hasKnownBugs ? /* @__PURE__ */ jsxs207(Fragment77, {
69779
+ hasKnownBugs ? /* @__PURE__ */ jsxs207(Fragment76, {
69593
69780
  children: [
69594
69781
  /* @__PURE__ */ jsxs207("div", {
69595
69782
  style: title6,
@@ -69669,11 +69856,11 @@ var UpdateModal = ({ info, knownBugs }) => {
69669
69856
  };
69670
69857
 
69671
69858
  // src/components/Modals.tsx
69672
- import { jsx as jsx381, jsxs as jsxs208, Fragment as Fragment78 } from "react/jsx-runtime";
69859
+ import { jsx as jsx381, jsxs as jsxs208, Fragment as Fragment77 } from "react/jsx-runtime";
69673
69860
  var Modals = ({ readOnlyStudio }) => {
69674
69861
  const { selectedModal: modalContextType } = useContext149(ModalsContext);
69675
69862
  const canRender = useContext149(StudioServerConnectionCtx).previewServerState.type === "connected";
69676
- return /* @__PURE__ */ jsxs208(Fragment78, {
69863
+ return /* @__PURE__ */ jsxs208(Fragment77, {
69677
69864
  children: [
69678
69865
  modalContextType && modalContextType.type === "new-comp" && /* @__PURE__ */ jsx381(NewComposition, {
69679
69866
  folderName: modalContextType.folderName,
@@ -70522,12 +70709,14 @@ var makeDefaultGlobalCSS = () => {
70522
70709
  box-shadow: ${FOCUS_BOX_SHADOW};
70523
70710
  }
70524
70711
 
70525
- .__remotion-composition-selector-item:focus {
70712
+ .__remotion-composition-selector-item:focus,
70713
+ .__remotion-inspector-inline-action:focus {
70526
70714
  outline: none;
70527
70715
  box-shadow: none;
70528
70716
  }
70529
70717
 
70530
- .__remotion-composition-selector-item:focus-visible {
70718
+ .__remotion-composition-selector-item:focus-visible,
70719
+ .__remotion-inspector-inline-action:focus-visible {
70531
70720
  box-shadow: ${FOCUS_BOX_SHADOW};
70532
70721
  }
70533
70722