@remotion/studio 4.0.515 → 4.0.517

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 (277) hide show
  1. package/dist/api/restart-studio.js +4 -0
  2. package/dist/components/AssetSelector.js +4 -10
  3. package/dist/components/AssetSelectorItem.d.ts +2 -1
  4. package/dist/components/AssetSelectorItem.js +24 -29
  5. package/dist/components/Canvas.js +21 -15
  6. package/dist/components/CanvasCaptureDropHandler.d.ts +4 -0
  7. package/dist/components/CanvasCaptureDropHandler.js +42 -0
  8. package/dist/components/CanvasOrLoading.js +4 -3
  9. package/dist/components/CaptionInspector.d.ts +2 -0
  10. package/dist/components/CaptionInspector.js +3 -5
  11. package/dist/components/CheckboardToggle.js +1 -1
  12. package/dist/components/Checkbox.d.ts +0 -1
  13. package/dist/components/Checkbox.js +2 -19
  14. package/dist/components/CompositionSelector.js +6 -3
  15. package/dist/components/CompositionSelectorItem.js +9 -10
  16. package/dist/components/ConfigSelect.d.ts +17 -0
  17. package/dist/components/ConfigSelect.js +50 -0
  18. package/dist/components/ConfigureLicenseModal.js +79 -46
  19. package/dist/components/CurrentAsset.d.ts +10 -2
  20. package/dist/components/CurrentAsset.js +143 -45
  21. package/dist/components/Editor.js +2 -1
  22. package/dist/components/EditorContent.js +5 -2
  23. package/dist/components/EditorContexts.js +2 -1
  24. package/dist/components/EditorRuler/Ruler.d.ts +1 -0
  25. package/dist/components/EditorRuler/Ruler.js +9 -8
  26. package/dist/components/EditorRuler/index.d.ts +1 -0
  27. package/dist/components/EditorRuler/index.js +3 -4
  28. package/dist/components/EditorRuler/use-is-ruler-visible.d.ts +1 -1
  29. package/dist/components/EditorRuler/use-is-ruler-visible.js +8 -2
  30. package/dist/components/ElementLibraryModal.d.ts +5 -0
  31. package/dist/components/ElementLibraryModal.js +38 -0
  32. package/dist/components/FilePreview.js +71 -0
  33. package/dist/components/FixComputedValueModal.js +54 -51
  34. package/dist/components/GlobalKeybindings.js +5 -5
  35. package/dist/components/InlineAction.d.ts +1 -1
  36. package/dist/components/InlineAction.js +12 -2
  37. package/dist/components/InlineCaptionInspector.d.ts +2 -0
  38. package/dist/components/InlineCaptionInspector.js +2 -2
  39. package/dist/components/InlineCompositionName.js +1 -1
  40. package/dist/components/InlineEditableTitle.js +5 -4
  41. package/dist/components/InspectorInfoHeader.js +1 -1
  42. package/dist/components/InspectorOpenInEditor.js +48 -72
  43. package/dist/components/InspectorPanel/AlignmentControls.js +2 -3
  44. package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.d.ts +7 -0
  45. package/dist/components/InspectorPanel/CollapsibleInspectorSectionHeader.js +39 -0
  46. package/dist/components/InspectorPanel/CompositionInspector.js +25 -45
  47. package/dist/components/InspectorPanel/CompositionInspectorHeader.js +2 -2
  48. package/dist/components/InspectorPanel/CompositionMetadata.js +11 -4
  49. package/dist/components/InspectorPanel/EasingInspector.js +2 -2
  50. package/dist/components/InspectorPanel/ElementLibraryButton.d.ts +2 -0
  51. package/dist/components/InspectorPanel/ElementLibraryButton.js +139 -0
  52. package/dist/components/InspectorPanel/KeyframeEasingNavigator.js +10 -4
  53. package/dist/components/InspectorPanel/KeyframeInspector.js +1 -1
  54. package/dist/components/InspectorPanel/SequenceInspectorHeader.js +14 -6
  55. package/dist/components/InspectorPanel/SequenceSelectionInspector.js +2 -7
  56. package/dist/components/InspectorPanel/common.d.ts +0 -13
  57. package/dist/components/InspectorPanel/common.js +6 -59
  58. package/dist/components/InspectorPanel/inspector-selection.d.ts +2 -2
  59. package/dist/components/InspectorPanel/styles.d.ts +0 -1
  60. package/dist/components/InspectorPanel/styles.js +3 -4
  61. package/dist/components/InspectorPanel/use-composition-actions.js +0 -1
  62. package/dist/components/InspectorPanel/use-track-for-selection.d.ts +1 -2
  63. package/dist/components/InspectorPanelLayout.d.ts +1 -1
  64. package/dist/components/InspectorPanelLayout.js +1 -1
  65. package/dist/components/InspectorSequenceSection.d.ts +1 -2
  66. package/dist/components/InspectorSequenceSection.js +40 -54
  67. package/dist/components/InspectorSourceLocation.js +1 -1
  68. package/dist/components/InstallPackage.d.ts +2 -1
  69. package/dist/components/InstallPackage.js +60 -30
  70. package/dist/components/InstallablePackage.js +37 -11
  71. package/dist/components/KeyboardShortcutsSettings.d.ts +2 -0
  72. package/dist/components/KeyboardShortcutsSettings.js +177 -0
  73. package/dist/components/Menu/MenuItem.js +15 -6
  74. package/dist/components/MenuBuildIndicator.js +1 -1
  75. package/dist/components/MenuToolbar.js +7 -3
  76. package/dist/components/Modals.js +7 -5
  77. package/dist/components/NewComposition/CodemodFooter.d.ts +0 -1
  78. package/dist/components/NewComposition/CodemodFooter.js +2 -8
  79. package/dist/components/NewComposition/DeleteComposition.js +1 -1
  80. package/dist/components/NewComposition/DeleteFolder.js +1 -1
  81. package/dist/components/NewComposition/DuplicateComposition.js +1 -1
  82. package/dist/components/NewComposition/InputDragger.js +27 -4
  83. package/dist/components/NewComposition/NewComposition.js +1 -1
  84. package/dist/components/NewComposition/NewFolder.js +1 -3
  85. package/dist/components/NewComposition/RenameComposition.js +1 -1
  86. package/dist/components/NewComposition/RenameFolder.js +1 -1
  87. package/dist/components/NewComposition/use-rename-static-file.js +1 -1
  88. package/dist/components/Notifications/NotificationCenter.d.ts +1 -0
  89. package/dist/components/Notifications/NotificationCenter.js +5 -0
  90. package/dist/components/OptionsPanel.js +9 -12
  91. package/dist/components/PlaybackRateSelector.js +1 -1
  92. package/dist/components/Preview.js +83 -5
  93. package/dist/components/PreviewToolbar.js +12 -3
  94. package/dist/components/PreviewToolbarOverflowButton.d.ts +1 -0
  95. package/dist/components/PreviewToolbarOverflowButton.js +39 -2
  96. package/dist/components/QuickSwitcher/ExplorerQuickSwitcherTrigger.js +2 -2
  97. package/dist/components/QuickSwitcher/QuickSwitcherContent.js +14 -30
  98. package/dist/components/RadioButton.d.ts +6 -0
  99. package/dist/components/RadioButton.js +62 -0
  100. package/dist/components/RenderButton.js +68 -184
  101. package/dist/components/RenderModal/DataEditor.js +15 -12
  102. package/dist/components/RenderModal/RenderStatusModal.js +0 -1
  103. package/dist/components/RenderModal/SchemaEditor/ZodSwitch.js +3 -1
  104. package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.d.ts +15 -0
  105. package/dist/components/RenderModal/SchemaEditor/infer-zod-schema-from-value.js +95 -0
  106. package/dist/components/RenderQueue/RenderQueueRemoveItem.js +1 -6
  107. package/dist/components/RenderingSettings.js +7 -4
  108. package/dist/components/RulersAndGuidesToggle.d.ts +4 -0
  109. package/dist/components/RulersAndGuidesToggle.js +34 -0
  110. package/dist/components/SegmentedButton.d.ts +29 -0
  111. package/dist/components/SegmentedButton.js +226 -0
  112. package/dist/components/SelectedOutlineEditingHandles.d.ts +16 -0
  113. package/dist/components/SelectedOutlineEditingHandles.js +66 -0
  114. package/dist/components/SelectedOutlineElement.d.ts +2 -4
  115. package/dist/components/SelectedOutlineElement.js +15 -54
  116. package/dist/components/SelectedOutlineOverlay.js +32 -6
  117. package/dist/components/SelectedOutlinePolygon.d.ts +4 -6
  118. package/dist/components/SelectedOutlinePolygon.js +18 -16
  119. package/dist/components/SelectedOutlineRenderer.d.ts +1 -2
  120. package/dist/components/SelectedOutlineRenderer.js +66 -14
  121. package/dist/components/SelectedOutlineUvControls.d.ts +1 -1
  122. package/dist/components/SettingsModal.d.ts +1 -1
  123. package/dist/components/SettingsModal.js +30 -7
  124. package/dist/components/SettingsModalFooter.d.ts +3 -1
  125. package/dist/components/SettingsModalFooter.js +20 -4
  126. package/dist/components/ShowPixelGridProvider.d.ts +4 -0
  127. package/dist/components/ShowPixelGridProvider.js +24 -0
  128. package/dist/components/SidebarCollapserControls.js +2 -2
  129. package/dist/components/SkillsSettings.d.ts +2 -0
  130. package/dist/components/SkillsSettings.js +129 -0
  131. package/dist/components/StaticFilePreview.js +7 -1
  132. package/dist/components/StudioSettings.js +7 -48
  133. package/dist/components/Tabs/index.js +1 -1
  134. package/dist/components/Timeline/Timeline.js +41 -1
  135. package/dist/components/Timeline/TimelineAssetField.d.ts +1 -1
  136. package/dist/components/Timeline/TimelineAssetField.js +15 -9
  137. package/dist/components/Timeline/TimelineBooleanField.js +1 -4
  138. package/dist/components/Timeline/TimelineClipboardKeybindings.d.ts +6 -7
  139. package/dist/components/Timeline/TimelineClipboardKeybindings.js +7 -10
  140. package/dist/components/Timeline/TimelineDragHandler.js +11 -4
  141. package/dist/components/Timeline/TimelineEffectItem.d.ts +1 -0
  142. package/dist/components/Timeline/TimelineEffectItem.js +23 -10
  143. package/dist/components/Timeline/TimelineEffectPropItem.js +15 -2
  144. package/dist/components/Timeline/TimelineExpandedRow.js +5 -4
  145. package/dist/components/Timeline/TimelineFieldLabel.js +4 -2
  146. package/dist/components/Timeline/TimelineFieldRowContent.d.ts +1 -2
  147. package/dist/components/Timeline/TimelineFieldRowContent.js +8 -21
  148. package/dist/components/Timeline/TimelineImageInfo.d.ts +0 -1
  149. package/dist/components/Timeline/TimelineImageInfo.js +13 -32
  150. package/dist/components/Timeline/TimelineKeyframeControls.d.ts +1 -2
  151. package/dist/components/Timeline/TimelineKeyframeControls.js +10 -4
  152. package/dist/components/Timeline/TimelinePlayCursorSyncer.js +4 -2
  153. package/dist/components/Timeline/TimelinePrimitiveFieldValue.js +1 -1
  154. package/dist/components/Timeline/TimelineRotationField.js +0 -2
  155. package/dist/components/Timeline/TimelineRowChrome.d.ts +0 -1
  156. package/dist/components/Timeline/TimelineRowChrome.js +3 -4
  157. package/dist/components/Timeline/TimelineRowLayoutContext.d.ts +0 -1
  158. package/dist/components/Timeline/TimelineRowLayoutContext.js +1 -4
  159. package/dist/components/Timeline/TimelineScaleField.js +2 -6
  160. package/dist/components/Timeline/TimelineSchemaField.js +9 -3
  161. package/dist/components/Timeline/TimelineSelection.d.ts +29 -66
  162. package/dist/components/Timeline/TimelineSelection.js +31 -171
  163. package/dist/components/Timeline/TimelineSequence.d.ts +2 -0
  164. package/dist/components/Timeline/TimelineSequence.js +110 -19
  165. package/dist/components/Timeline/TimelineSequenceItem.d.ts +1 -0
  166. package/dist/components/Timeline/TimelineSequenceItem.js +13 -11
  167. package/dist/components/Timeline/TimelineSequencePropItem.js +15 -2
  168. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.d.ts +7 -6
  169. package/dist/components/Timeline/TimelineSequenceRightEdgeDragHandle.js +85 -91
  170. package/dist/components/Timeline/TimelineTrack.js +1 -1
  171. package/dist/components/Timeline/TimelineTransformOriginField.js +0 -4
  172. package/dist/components/Timeline/TimelineTranslateField.js +0 -4
  173. package/dist/components/Timeline/TimelineVirtualization.js +3 -1
  174. package/dist/components/Timeline/delete-selected-timeline-item.d.ts +3 -4
  175. package/dist/components/Timeline/duplicate-selected-timeline-item.d.ts +3 -4
  176. package/dist/components/Timeline/duplicate-selected-timeline-item.js +3 -12
  177. package/dist/components/Timeline/find-track-for-node-path-info.d.ts +1 -1
  178. package/dist/components/Timeline/get-copy-context-for-agents-menu-item.d.ts +4 -0
  179. package/dist/components/Timeline/get-copy-context-for-agents-menu-item.js +26 -0
  180. package/dist/components/Timeline/get-sequence-context-menu-items.js +2 -19
  181. package/dist/components/Timeline/get-timeline-sequence-visible-layout.d.ts +6 -1
  182. package/dist/components/Timeline/get-timeline-sequence-visible-layout.js +11 -4
  183. package/dist/components/Timeline/keyframe-clipboard.d.ts +2 -3
  184. package/dist/components/Timeline/reset-selected-timeline-props.d.ts +2 -3
  185. package/dist/components/Timeline/sequence-prop-clipboard.d.ts +2 -3
  186. package/dist/components/Timeline/split-selected-timeline-item.d.ts +2 -3
  187. package/dist/components/Timeline/split-selected-timeline-item.js +0 -1
  188. package/dist/components/Timeline/timeline-expanded-filter.d.ts +1 -2
  189. package/dist/components/Timeline/timeline-field-row-layout.d.ts +1 -1
  190. package/dist/components/Timeline/timeline-field-row-layout.js +4 -7
  191. package/dist/components/Timeline/timeline-field-utils.js +0 -2
  192. package/dist/components/Timeline/timeline-scroll-logic.d.ts +7 -5
  193. package/dist/components/Timeline/timeline-scroll-logic.js +12 -7
  194. package/dist/components/Timeline/update-selected-easing.d.ts +7 -7
  195. package/dist/components/Timeline/use-timeline-asset-drop.js +24 -0
  196. package/dist/components/Timeline/use-timeline-keyframe-drag.d.ts +6 -7
  197. package/dist/components/TimelineCombobox.js +25 -160
  198. package/dist/components/TimelineInOutToggle.js +4 -1
  199. package/dist/components/canvas-capture-drop.d.ts +4 -0
  200. package/dist/components/canvas-capture-drop.js +22 -0
  201. package/dist/components/duplicate-jsx-node-api.d.ts +2 -0
  202. package/dist/components/duplicate-jsx-node-api.js +12 -0
  203. package/dist/components/effect-drag-and-drop.js +1 -4
  204. package/dist/components/handle-drop.d.ts +2 -1
  205. package/dist/components/handle-drop.js +3 -3
  206. package/dist/components/import-assets.js +9 -65
  207. package/dist/components/keyboard-shortcuts.d.ts +10 -0
  208. package/dist/components/keyboard-shortcuts.js +135 -0
  209. package/dist/components/selected-outline-control-layout.js +2 -6
  210. package/dist/components/selected-outline-measurement.d.ts +8 -9
  211. package/dist/components/selected-outline-measurement.js +16 -3
  212. package/dist/components/use-delete-asset.d.ts +1 -0
  213. package/dist/components/use-delete-asset.js +40 -0
  214. package/dist/components/use-selected-outline-control-target.d.ts +11 -0
  215. package/dist/components/use-selected-outline-control-target.js +79 -0
  216. package/dist/esm/{chunk-s6k99gh2.js → chunk-4bxz1d3g.js} +3 -2
  217. package/dist/esm/{chunk-v5a8vpv4.js → chunk-gzqm3g2m.js} +47432 -40444
  218. package/dist/esm/index.mjs +3 -0
  219. package/dist/esm/internals.mjs +47431 -40443
  220. package/dist/esm/previewEntry.mjs +47169 -40181
  221. package/dist/esm/renderEntry.mjs +2 -2
  222. package/dist/helpers/add-asset-cache-bust.d.ts +4 -0
  223. package/dist/helpers/add-asset-cache-bust.js +10 -0
  224. package/dist/helpers/calculate-timeline.d.ts +1 -7
  225. package/dist/helpers/calculate-timeline.js +2 -145
  226. package/dist/helpers/colors.d.ts +2 -0
  227. package/dist/helpers/colors.js +6 -2
  228. package/dist/helpers/drag-aware-double-click.d.ts +6 -0
  229. package/dist/helpers/drag-aware-double-click.js +20 -0
  230. package/dist/helpers/editor-ruler.js +6 -5
  231. package/dist/helpers/get-asset-metadata.d.ts +19 -0
  232. package/dist/helpers/get-asset-metadata.js +75 -21
  233. package/dist/helpers/get-connected-compositions.d.ts +1 -6
  234. package/dist/helpers/get-connected-compositions.js +2 -8
  235. package/dist/helpers/get-sequence-double-click-action.d.ts +2 -1
  236. package/dist/helpers/get-sequence-double-click-action.js +7 -1
  237. package/dist/helpers/get-sequence-visible-range.d.ts +1 -5
  238. package/dist/helpers/get-sequence-visible-range.js +6 -51
  239. package/dist/helpers/get-timeline-nestedness.d.ts +1 -2
  240. package/dist/helpers/get-timeline-nestedness.js +2 -12
  241. package/dist/helpers/get-timeline-sequence-layout.d.ts +4 -1
  242. package/dist/helpers/get-timeline-sequence-layout.js +15 -6
  243. package/dist/helpers/get-timeline-sequence-sort-key.d.ts +2 -21
  244. package/dist/helpers/get-timeline-sequence-sort-key.js +2 -16
  245. package/dist/helpers/hoverable.d.ts +1 -0
  246. package/dist/helpers/hoverable.js +2 -1
  247. package/dist/helpers/inject-css.js +3 -1
  248. package/dist/helpers/is-current-selected-still.js +4 -2
  249. package/dist/helpers/open-in-remotion-convert.d.ts +7 -0
  250. package/dist/helpers/open-in-remotion-convert.js +18 -0
  251. package/dist/helpers/sort-by-nonce-history.d.ts +1 -5
  252. package/dist/helpers/sort-by-nonce-history.js +3 -148
  253. package/dist/helpers/timeline-node-path-key.d.ts +1 -2
  254. package/dist/helpers/timeline-node-path-key.js +2 -2
  255. package/dist/helpers/use-media-metadata.d.ts +2 -1
  256. package/dist/helpers/use-media-metadata.js +12 -5
  257. package/dist/helpers/use-menu-structure.js +52 -32
  258. package/dist/icons/align-center-horizontal.js +1 -1
  259. package/dist/icons/align-left.js +1 -1
  260. package/dist/icons/align-right.js +1 -1
  261. package/dist/icons/keyboard.d.ts +4 -0
  262. package/dist/icons/keyboard.js +10 -0
  263. package/dist/icons/license.d.ts +4 -0
  264. package/dist/icons/license.js +8 -0
  265. package/dist/icons/package.d.ts +4 -0
  266. package/dist/icons/package.js +8 -0
  267. package/dist/icons/react.js +1 -1
  268. package/dist/icons/remotion-convert.d.ts +4 -0
  269. package/dist/icons/remotion-convert.js +10 -0
  270. package/dist/icons/skills.d.ts +4 -0
  271. package/dist/icons/skills.js +10 -0
  272. package/dist/state/editor-pixel-grid.d.ts +8 -0
  273. package/dist/state/editor-pixel-grid.js +18 -0
  274. package/dist/state/modals.d.ts +6 -5
  275. package/package.json +14 -12
  276. package/dist/components/KeyboardShortcutsExplainer.d.ts +0 -2
  277. package/dist/components/KeyboardShortcutsExplainer.js +0 -194
@@ -0,0 +1,135 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.askAIKeyboardShortcutGroup = exports.keyboardShortcutGroups = void 0;
4
+ const ShortcutHint_1 = require("../error-overlay/remotion-overlay/ShortcutHint");
5
+ const is_mac_1 = require("../helpers/is-mac");
6
+ exports.keyboardShortcutGroups = [
7
+ {
8
+ name: 'Playback',
9
+ shortcuts: [
10
+ { action: '1 second back', chords: [['Shift', '←']] },
11
+ { action: 'Previous frame', chords: [['←']] },
12
+ { action: 'Play / Pause', chords: [['Space']] },
13
+ { action: 'Next frame', chords: [['→']] },
14
+ { action: '1 second forward', chords: [['Shift', '→']] },
15
+ { action: 'Jump to beginning', chords: [['A']] },
16
+ { action: 'Jump to end', chords: [['E']] },
17
+ { action: 'Reverse playback', chords: [['J']] },
18
+ { action: 'Pause', chords: [['K']] },
19
+ { action: 'Play / Speed up', chords: [['L']] },
20
+ { action: 'Go to frame', chords: [['G']] },
21
+ {
22
+ action: 'Pause & return to playback start',
23
+ chords: [['Enter']],
24
+ },
25
+ ],
26
+ },
27
+ {
28
+ name: 'Sidebar',
29
+ shortcuts: [
30
+ {
31
+ action: 'Toggle left sidebar',
32
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'B']],
33
+ },
34
+ {
35
+ action: 'Toggle right sidebar',
36
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'J']],
37
+ },
38
+ {
39
+ action: 'Toggle both sidebars',
40
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'G']],
41
+ },
42
+ ],
43
+ },
44
+ {
45
+ name: 'View',
46
+ shortcuts: [
47
+ { action: 'Enter fullscreen', chords: [['F']] },
48
+ { action: 'Exit fullscreen', chords: [['Esc']] },
49
+ { action: 'Enable snapping', chords: [['Shift', 'M']] },
50
+ ],
51
+ },
52
+ {
53
+ name: 'Navigation',
54
+ shortcuts: [
55
+ { action: 'Previous composition', chords: [['PageUp']] },
56
+ { action: 'Next composition', chords: [['PageDown']] },
57
+ {
58
+ action: 'Render, unless a sequence or prop is selected',
59
+ chords: [['R']],
60
+ },
61
+ {
62
+ action: 'Checkerboard, unless a sequence or prop is selected',
63
+ chords: [['T']],
64
+ },
65
+ { action: 'Show keyboard shortcuts', chords: [['?']] },
66
+ {
67
+ action: 'Quick Switcher',
68
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'K']],
69
+ },
70
+ ],
71
+ },
72
+ {
73
+ name: 'Playback range',
74
+ shortcuts: [
75
+ { action: 'Set In Point', chords: [['I']] },
76
+ { action: 'Set Out Point', chords: [['O']] },
77
+ { action: 'Clear In/Out Points', chords: [['X']] },
78
+ ],
79
+ },
80
+ {
81
+ name: 'Zoom',
82
+ shortcuts: [
83
+ { action: 'Zoom in', chords: [['+']] },
84
+ { action: 'Zoom out', chords: [['-']] },
85
+ { action: 'Reset zoom', chords: [['0']] },
86
+ ],
87
+ },
88
+ {
89
+ name: 'Props Editor',
90
+ shortcuts: [
91
+ { action: 'Undo', chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'Z']] },
92
+ {
93
+ action: 'Redo',
94
+ chords: [
95
+ is_mac_1.isMac
96
+ ? [ShortcutHint_1.cmdOrCtrlCharacter, 'Shift', 'Z']
97
+ : [ShortcutHint_1.cmdOrCtrlCharacter, 'Y'],
98
+ ],
99
+ },
100
+ ],
101
+ },
102
+ {
103
+ name: 'Interactivity',
104
+ shortcuts: [
105
+ { action: 'Select range / axis lock drag', chords: [['Shift']] },
106
+ { action: 'Toggle selection', chords: [[ShortcutHint_1.cmdOrCtrlCharacter]] },
107
+ {
108
+ action: 'Select sequence rows',
109
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'A']],
110
+ },
111
+ { action: 'Select translate prop', chords: [['P']] },
112
+ { action: 'Select opacity prop', chords: [['T']] },
113
+ { action: 'Select rotate prop', chords: [['R']] },
114
+ { action: 'Select scale prop', chords: [['S']] },
115
+ {
116
+ action: 'Duplicate sequences',
117
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'D']],
118
+ },
119
+ {
120
+ action: 'Copy effects / values',
121
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'C']],
122
+ },
123
+ { action: 'Cut effects', chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'X']] },
124
+ {
125
+ action: 'Paste effects / values',
126
+ chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'V']],
127
+ },
128
+ { action: 'Delete / reset selection', chords: [['Del'], ['⌫']] },
129
+ ],
130
+ },
131
+ ];
132
+ exports.askAIKeyboardShortcutGroup = {
133
+ name: 'AI',
134
+ shortcuts: [{ action: 'Ask AI', chords: [[ShortcutHint_1.cmdOrCtrlCharacter, 'I']] }],
135
+ };
@@ -64,14 +64,10 @@ const getSelectedOutlineControlLayout = (points) => {
64
64
  const targetHalfSizeY = isSmallY ? targetHalfSize / 2 : targetHalfSize;
65
65
  const rotationHandleRadius = Math.max(targetHalfSizeX, targetHalfSizeY) * 1.5;
66
66
  const scaleEdges = ['top', 'right', 'bottom', 'left'].filter((edge) => {
67
- // Preserve one scale control per axis when opposite edge targets would overlap.
68
- if (edge === 'top') {
67
+ if (edge === 'top' || edge === 'bottom') {
69
68
  return !isTinyY;
70
69
  }
71
- if (edge === 'left') {
72
- return !isTinyX;
73
- }
74
- return true;
70
+ return !isTinyX;
75
71
  });
76
72
  const rotationCorners = ['top-left', 'top-right', 'bottom-right', 'bottom-left'].map((corner) => ({
77
73
  corner,
@@ -1,7 +1,6 @@
1
1
  import type { OverrideIdToNodePaths, TSequence } from 'remotion';
2
2
  import type { OutlinePoint, SelectedOutline } from './selected-outline-geometry';
3
3
  import type { SelectedOutlineLayoutTarget, SequenceWithSelectedOutline } from './selected-outline-types';
4
- import { type TimelineSelection, type TimelineSelectionInteraction } from './Timeline/TimelineSelection';
5
4
  export declare const pointToString: (point: OutlinePoint) => string;
6
5
  export declare const midpoint: (from: OutlinePoint, to: OutlinePoint) => OutlinePoint;
7
6
  export declare const getOutlineCenter: (points: readonly [OutlinePoint, OutlinePoint, OutlinePoint, OutlinePoint]) => OutlinePoint;
@@ -47,18 +46,18 @@ export declare const cropOutlinePoints: (points: readonly [OutlinePoint, Outline
47
46
  readonly top: number;
48
47
  readonly bottom: number;
49
48
  }) => readonly [OutlinePoint, OutlinePoint, OutlinePoint, OutlinePoint];
50
- export declare const getSelectedSequenceKeys: (selectedItems: readonly TimelineSelection[]) => Set<string>;
51
- export declare const getSequenceKeysContainingSelection: (selectedItems: readonly TimelineSelection[]) => Set<string>;
49
+ export declare const getSelectedSequenceKeys: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => Set<string>;
50
+ export declare const getSequenceKeysContainingSelection: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => Set<string>;
52
51
  export declare const getOutlineSelectionInteraction: ({ shiftKey, metaKey, ctrlKey, }: {
53
52
  readonly shiftKey: boolean;
54
53
  readonly metaKey: boolean;
55
54
  readonly ctrlKey: boolean;
56
- }) => TimelineSelectionInteraction;
55
+ }) => import("@remotion/canvas").CanvasSelectionInteraction;
57
56
  type SelectedEffectFields = {
58
57
  allFields: boolean;
59
58
  fieldKeys: Set<string>;
60
59
  };
61
- export declare const getSelectedEffectFieldsBySequenceKey: (selectedItems: readonly TimelineSelection[]) => Map<string, Map<number, SelectedEffectFields>>;
60
+ export declare const getSelectedEffectFieldsBySequenceKey: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => Map<string, Map<number, SelectedEffectFields>>;
62
61
  type SelectedTransformOriginInfo = {
63
62
  readonly sequenceKey: string;
64
63
  readonly displayFrame: number | null;
@@ -71,15 +70,15 @@ export type SelectedCropInfo = {
71
70
  readonly sequenceKey: string;
72
71
  readonly displayFrame: number | null;
73
72
  };
74
- export declare const getSelectedCropInfo: (selectedItems: readonly TimelineSelection[]) => SelectedCropInfo | null;
75
- export declare const getSelectedTransformOriginInfo: (selectedItems: readonly TimelineSelection[]) => SelectedTransformOriginInfo | null;
76
- export declare const getSelectedRotationInfo: (selectedItems: readonly TimelineSelection[]) => SelectedRotationInfo | null;
73
+ export declare const getSelectedCropInfo: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => SelectedCropInfo | null;
74
+ export declare const getSelectedTransformOriginInfo: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => SelectedTransformOriginInfo | null;
75
+ export declare const getSelectedRotationInfo: (selectedItems: readonly import("@remotion/canvas").CanvasSelectionItem[]) => SelectedRotationInfo | null;
77
76
  export declare const getSequencesWithSelectableOutlines: ({ sequences, overrideIdsToNodePaths, compositions, timelinePosition, }: {
78
77
  readonly sequences: readonly TSequence[];
79
78
  readonly overrideIdsToNodePaths: OverrideIdToNodePaths;
80
79
  readonly compositions?: readonly import("remotion").AnyComposition[] | undefined;
81
80
  readonly timelinePosition: number;
82
81
  }) => SequenceWithSelectedOutline[];
83
- export declare const measureOutlines: (container: SVGSVGElement, targets: readonly SelectedOutlineLayoutTarget[]) => SelectedOutline[];
82
+ export declare const measureOutlines: (container: SVGSVGElement, targets: readonly SelectedOutlineLayoutTarget[], hoveredTimelineNodePathKey: string | null) => SelectedOutline[];
84
83
  export declare const outlinesAreEqual: (a: readonly SelectedOutline[], b: readonly SelectedOutline[]) => boolean;
85
84
  export {};
@@ -3,7 +3,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.outlinesAreEqual = exports.measureOutlines = exports.getSequencesWithSelectableOutlines = exports.getSelectedRotationInfo = exports.getSelectedTransformOriginInfo = exports.getSelectedCropInfo = exports.getSelectedEffectFieldsBySequenceKey = exports.getOutlineSelectionInteraction = exports.getSequenceKeysContainingSelection = exports.getSelectedSequenceKeys = exports.cropOutlinePoints = exports.getTransformedSvgViewportPoints = exports.getSelectedOutlineRotationPivot = exports.getSelectedOutlineRotationCornerInfo = exports.getRotationCursor = exports.getSelectedOutlineRotationDeltaDegrees = exports.getAngleDegrees = exports.vectorBetween = exports.vectorLength = exports.dot = exports.getOutlineCenter = exports.midpoint = exports.pointToString = void 0;
4
4
  const calculate_timeline_1 = require("../helpers/calculate-timeline");
5
5
  const colors_1 = require("../helpers/colors");
6
+ const get_box_quads_polyfill_internals_js_1 = require("../helpers/get-box-quads-polyfill-internals.js");
6
7
  const get_box_quads_ponyfill_1 = require("../helpers/get-box-quads-ponyfill");
8
+ const timeline_node_path_key_1 = require("../helpers/timeline-node-path-key");
7
9
  const selected_outline_geometry_1 = require("./selected-outline-geometry");
8
10
  const selected_outline_types_1 = require("./selected-outline-types");
9
11
  const selected_outline_uv_1 = require("./selected-outline-uv");
@@ -186,11 +188,18 @@ const getSvgSvgElementOutlinePoints = (element, containerRect) => {
186
188
  containerRect,
187
189
  });
188
190
  };
189
- const getElementOutlinePoints = (element, containerRect) => {
191
+ const getElementOutlinePoints = (element, containerRect, includeOutsideContainer) => {
190
192
  const elementRect = element.getBoundingClientRect();
191
193
  if (elementRect.width === 0 && elementRect.height === 0) {
192
194
  return null;
193
195
  }
196
+ if (!includeOutsideContainer &&
197
+ (elementRect.right <= containerRect.left ||
198
+ elementRect.left >= containerRect.right ||
199
+ elementRect.bottom <= containerRect.top ||
200
+ elementRect.top >= containerRect.bottom)) {
201
+ return null;
202
+ }
194
203
  if (isSvgSvgElement(element)) {
195
204
  return getSvgSvgElementOutlinePoints(element, containerRect);
196
205
  }
@@ -410,7 +419,9 @@ const getSequencesWithSelectableOutlines = ({ sequences, overrideIdsToNodePaths,
410
419
  });
411
420
  };
412
421
  exports.getSequencesWithSelectableOutlines = getSequencesWithSelectableOutlines;
413
- const measureOutlines = (container, targets) => {
422
+ const measureOutlines = (container, targets, hoveredTimelineNodePathKey) => {
423
+ // Reuse shared ancestor geometry within this synchronous batch only.
424
+ (0, get_box_quads_polyfill_internals_js_1.useCache)();
414
425
  const containerRect = container.getBoundingClientRect();
415
426
  const outlines = [];
416
427
  for (const target of targets) {
@@ -418,7 +429,9 @@ const measureOutlines = (container, targets) => {
418
429
  if (element === null) {
419
430
  continue;
420
431
  }
421
- const uncroppedPoints = getElementOutlinePoints(element, containerRect);
432
+ const includeOutsideContainer = target.showSelectedOutline ||
433
+ (0, timeline_node_path_key_1.timelineSequenceNodePathToKey)(target.nodePathInfo.sequenceSubscriptionKey) === hoveredTimelineNodePathKey;
434
+ const uncroppedPoints = getElementOutlinePoints(element, containerRect, includeOutsideContainer);
422
435
  if (uncroppedPoints === null) {
423
436
  continue;
424
437
  }
@@ -0,0 +1 @@
1
+ export declare const useDeleteAsset: (relativePath: string | null) => () => void;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.useDeleteAsset = void 0;
4
+ const jsx_runtime_1 = require("react/jsx-runtime");
5
+ const react_1 = require("react");
6
+ const delete_static_file_1 = require("../api/delete-static-file");
7
+ const ConfirmationDialog_1 = require("./ConfirmationDialog");
8
+ const styles_1 = require("./Menu/styles");
9
+ const NotificationCenter_1 = require("./Notifications/NotificationCenter");
10
+ const useDeleteAsset = (relativePath) => {
11
+ const confirm = (0, ConfirmationDialog_1.useConfirmationDialog)();
12
+ return (0, react_1.useCallback)(() => {
13
+ if (relativePath === null) {
14
+ return;
15
+ }
16
+ confirm({
17
+ title: 'Delete asset',
18
+ message: (jsx_runtime_1.jsxs(jsx_runtime_1.Fragment, { children: ["Do you want to delete the asset", ' ', jsx_runtime_1.jsx("code", { style: styles_1.inlineCodeSnippet, children: relativePath }),
19
+ " from your public folder?"] })),
20
+ confirmLabel: 'Delete',
21
+ })
22
+ .then((confirmed) => {
23
+ if (!confirmed) {
24
+ return;
25
+ }
26
+ const notification = (0, NotificationCenter_1.showNotification)(`Deleting ${relativePath}...`, null);
27
+ (0, delete_static_file_1.deleteStaticFile)(relativePath)
28
+ .then(() => {
29
+ notification.dismiss();
30
+ })
31
+ .catch((err) => {
32
+ notification.replaceContent(`Could not delete ${relativePath}: ${err.message}`, 3000);
33
+ });
34
+ })
35
+ .catch((err) => {
36
+ (0, NotificationCenter_1.showNotification)(`Could not delete ${relativePath}: ${err.message}`, 3000);
37
+ });
38
+ }, [confirm, relativePath]);
39
+ };
40
+ exports.useDeleteAsset = useDeleteAsset;
@@ -0,0 +1,11 @@
1
+ import type { SelectedOutlineLayoutTarget, SelectedOutlineTarget } from './selected-outline-types';
2
+ export declare const useSelectedOutlineControlTarget: ({ getLatestTargetByKey, layoutTarget, }: {
3
+ readonly getLatestTargetByKey: (key: string) => SelectedOutlineTarget | undefined;
4
+ readonly layoutTarget: SelectedOutlineLayoutTarget | undefined;
5
+ }) => {
6
+ controlTarget: SelectedOutlineTarget | undefined;
7
+ getLayoutTarget: () => SelectedOutlineLayoutTarget | undefined;
8
+ getTarget: () => SelectedOutlineTarget | undefined;
9
+ hovered: boolean;
10
+ onHoverChange: (key: string | null) => void;
11
+ };
@@ -0,0 +1,79 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.useSelectedOutlineControlTarget = void 0;
37
+ const react_1 = __importStar(require("react"));
38
+ const timeline_node_path_key_1 = require("../helpers/timeline-node-path-key");
39
+ const timeline_sequence_hover_1 = require("../state/timeline-sequence-hover");
40
+ const useSelectedOutlineControlTarget = ({ getLatestTargetByKey, layoutTarget, }) => {
41
+ const setHoveredSequence = (0, timeline_sequence_hover_1.useSetTimelineSequenceHover)();
42
+ const targetRef = (0, react_1.useRef)(layoutTarget);
43
+ (0, react_1.useLayoutEffect)(() => {
44
+ targetRef.current = layoutTarget;
45
+ }, [layoutTarget]);
46
+ const getTarget = react_1.default.useCallback(() => {
47
+ const currentTarget = targetRef.current;
48
+ if (currentTarget === undefined) {
49
+ return undefined;
50
+ }
51
+ return getLatestTargetByKey(currentTarget.key);
52
+ }, [getLatestTargetByKey]);
53
+ const getLayoutTarget = react_1.default.useCallback(() => targetRef.current, []);
54
+ const hoveredNodePathKey = (0, react_1.useMemo)(() => layoutTarget === undefined
55
+ ? null
56
+ : (0, timeline_node_path_key_1.timelineSequenceNodePathToKey)(layoutTarget.nodePathInfo.sequenceSubscriptionKey), [layoutTarget]);
57
+ const hovered = (0, timeline_sequence_hover_1.useIsTimelineSequenceHovered)(hoveredNodePathKey);
58
+ const controlTarget = layoutTarget !== undefined && (layoutTarget.containsSelection || hovered)
59
+ ? getLatestTargetByKey(layoutTarget.key)
60
+ : undefined;
61
+ const onHoverChange = react_1.default.useCallback((key) => {
62
+ setHoveredSequence((currentHover) => {
63
+ if (key !== null) {
64
+ const hoverTarget = targetRef.current;
65
+ if (hoverTarget === undefined || hoverTarget.key !== key) {
66
+ return currentHover;
67
+ }
68
+ return {
69
+ key,
70
+ nodePathKey: (0, timeline_node_path_key_1.timelineSequenceNodePathToKey)(hoverTarget.nodePathInfo.sequenceSubscriptionKey),
71
+ source: 'canvas',
72
+ };
73
+ }
74
+ return (currentHover === null || currentHover === void 0 ? void 0 : currentHover.source) === 'canvas' ? null : currentHover;
75
+ });
76
+ }, [setHoveredSequence]);
77
+ return { controlTarget, getLayoutTarget, getTarget, hovered, onHoverChange };
78
+ };
79
+ exports.useSelectedOutlineControlTarget = useSelectedOutlineControlTarget;
@@ -78,7 +78,6 @@ var SELECTED_GUIDE = "#d22d3a";
78
78
  var LINE_COLOR = "#363A3E";
79
79
  var TIMELINE_TRACK_SEPARATOR = "#13161B";
80
80
  var LIGHT_GRAY = "#ccc";
81
- var KEYBOARD_SHORTCUT_KEY_COLOR = "#eee";
82
81
  var NOTIFICATION_BACKGROUND = "#111111";
83
82
  var RENDER_STATUS_BACKGROUND = "#222";
84
83
  var ERROR_CODE_FRAME_BACKGROUND = "#070707";
@@ -88,6 +87,8 @@ var INFO_BLUE = "#60a5fa";
88
87
  var SERVER_DISCONNECTED_BACKGROUND = "#e74c3c";
89
88
  var STACK_FRAME_BORDER_BLUE = "rgb(66, 144, 245)";
90
89
  var TIMELINE_BACKGROUND_COLOR = "#15181B";
90
+ var TIMELINE_NEGATIVE_START_BACKGROUND_COLOR = "#2C2F32";
91
+ var TIMELINE_NEGATIVE_START_BORDER_COLOR = "#414446";
91
92
  var TIMELINE_SELECTED_BACKGROUND_COLOR = "#3B3F42";
92
93
  var TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR = "#B0B0B0";
93
94
  var TIMELINE_BLUE = "#0b84ff";
@@ -159,4 +160,4 @@ var getBackgroundFromHoverState = ({
159
160
  return TRANSPARENT;
160
161
  };
161
162
 
162
- export { __toESM, __require, BLACK, WHITE, RED, TRANSPARENT, CURRENT_COLOR, CURRENT_COLOR_LOWERCASE, WHITE_HEX, WHITE_FULL_HEX, BLACK_HEX, BLACK_FULL_HEX, BACKGROUND, BACKGROUND_HEX, BACKGROUND__TRANSPARENT, INPUT_BACKGROUND, LIGHT_COLOR, SELECTED_BACKGROUND, LIGHT_TEXT, RULER_COLOR, WHITE_ALPHA_05, WHITE_ALPHA_06, WHITE_ALPHA_08, WHITE_ALPHA_10, WHITE_ALPHA_12, WHITE_ALPHA_15, WHITE_ALPHA_20, WHITE_ALPHA_25, WHITE_ALPHA_30, WHITE_ALPHA_35, WHITE_ALPHA_40, WHITE_ALPHA_45, WHITE_ALPHA_50, WHITE_ALPHA_60, WHITE_ALPHA_70, WHITE_ALPHA_72, WHITE_ALPHA_80, BLACK_ALPHA_30, BLACK_ALPHA_40, BLACK_ALPHA_50, BLACK_ALPHA_60, FAIL_COLOR, WARNING_COLOR, BLUE, BLUE_HOVERED, BLUE_DISABLED, UNSELECTED_GUIDE, SELECTED_GUIDE, LINE_COLOR, TIMELINE_TRACK_SEPARATOR, LIGHT_GRAY, KEYBOARD_SHORTCUT_KEY_COLOR, NOTIFICATION_BACKGROUND, RENDER_STATUS_BACKGROUND, ERROR_CODE_FRAME_BACKGROUND, ERROR_CODE_FRAME_LINE_BACKGROUND, ERROR_LINK_COLOR, INFO_BLUE, SERVER_DISCONNECTED_BACKGROUND, TIMELINE_BACKGROUND_COLOR, TIMELINE_SELECTED_BACKGROUND_COLOR, TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR, TIMELINE_BLUE, TIMELINE_PLAYHEAD_COLOR, TIMELINE_DROP_BLUE_ALPHA_12, TIMELINE_DROP_BLUE_ALPHA_16, TIMELINE_MARQUEE_BLUE_ALPHA_16, INFO_BLUE_BACKGROUND, BORDER_BLACK, BORDER_WHITE, BORDER_WHITE_2PX, BORDER_CURRENT_COLOR, BORDER_TRANSPARENT_2PX, BORDER_BLACK_ALPHA_50, BORDER_BLACK_ALPHA_60, BORDER_WHITE_ALPHA_12, BORDER_WHITE_ALPHA_20, BORDER_INFO_BLUE, BORDER_STACK_FRAME_BLUE, BORDER_TIMELINE_DROP_BLUE, BORDER_TIMELINE_MARQUEE_BLUE, SHADOW_BLACK, SHADOW_BLACK_ALPHA_50_TOWARDS_BOTTOM, SHADOW_BLACK_ALPHA_50_TOWARDS_TOP, NOTIFICATION_SHADOW, SERVER_DISCONNECTED_SHADOW, COLOR_PICKER_POPUP_SHADOW, COLOR_PICKER_HANDLE_SHADOW, NOTIFICATION_BORDER, FOCUS_BOX_SHADOW, CHECKERBOARD_BACKGROUND_IMAGE, COLOR_PICKER_CHECKER_BACKGROUND_IMAGE, COLOR_PICKER_CHECKER_BACKGROUND_COLOR, COLOR_PICKER_SATURATION_VALUE_GRADIENT, COLOR_PICKER_SATURATION_BLACK_GRADIENT, COLOR_PICKER_ALPHA_TRANSPARENT, COLOR_PICKER_HUE_GRADIENT, ERROR_MESSAGE_MASK_IMAGE, SELECTED_OUTLINE_DROP_SHADOW, SELECTED_OUTLINE_UV_DROP_SHADOW, LOOPED_INDICATOR_DROP_SHADOW, TIMELINE_AUDIO_GRADIENT, TIMELINE_VIDEO_GRADIENT, TIMELINE_IMAGE_GRADIENT, getBackgroundFromHoverState };
163
+ export { __toESM, __require, BLACK, WHITE, RED, TRANSPARENT, CURRENT_COLOR, CURRENT_COLOR_LOWERCASE, WHITE_HEX, WHITE_FULL_HEX, BLACK_HEX, BLACK_FULL_HEX, BACKGROUND, BACKGROUND_HEX, BACKGROUND__TRANSPARENT, INPUT_BACKGROUND, LIGHT_COLOR, SELECTED_BACKGROUND, LIGHT_TEXT, RULER_COLOR, WHITE_ALPHA_05, WHITE_ALPHA_06, WHITE_ALPHA_08, WHITE_ALPHA_10, WHITE_ALPHA_12, WHITE_ALPHA_15, WHITE_ALPHA_20, WHITE_ALPHA_25, WHITE_ALPHA_30, WHITE_ALPHA_35, WHITE_ALPHA_40, WHITE_ALPHA_45, WHITE_ALPHA_50, WHITE_ALPHA_60, WHITE_ALPHA_70, WHITE_ALPHA_72, WHITE_ALPHA_80, BLACK_ALPHA_30, BLACK_ALPHA_40, BLACK_ALPHA_50, BLACK_ALPHA_60, FAIL_COLOR, WARNING_COLOR, BLUE, BLUE_HOVERED, BLUE_DISABLED, UNSELECTED_GUIDE, SELECTED_GUIDE, LINE_COLOR, TIMELINE_TRACK_SEPARATOR, LIGHT_GRAY, NOTIFICATION_BACKGROUND, RENDER_STATUS_BACKGROUND, ERROR_CODE_FRAME_BACKGROUND, ERROR_CODE_FRAME_LINE_BACKGROUND, ERROR_LINK_COLOR, INFO_BLUE, SERVER_DISCONNECTED_BACKGROUND, TIMELINE_BACKGROUND_COLOR, TIMELINE_NEGATIVE_START_BACKGROUND_COLOR, TIMELINE_NEGATIVE_START_BORDER_COLOR, TIMELINE_SELECTED_BACKGROUND_COLOR, TIMELINE_SELECTED_LABEL_BACKGROUND_COLOR, TIMELINE_BLUE, TIMELINE_PLAYHEAD_COLOR, TIMELINE_DROP_BLUE_ALPHA_12, TIMELINE_DROP_BLUE_ALPHA_16, TIMELINE_MARQUEE_BLUE_ALPHA_16, INFO_BLUE_BACKGROUND, BORDER_BLACK, BORDER_WHITE, BORDER_WHITE_2PX, BORDER_CURRENT_COLOR, BORDER_TRANSPARENT_2PX, BORDER_BLACK_ALPHA_50, BORDER_BLACK_ALPHA_60, BORDER_WHITE_ALPHA_12, BORDER_WHITE_ALPHA_20, BORDER_INFO_BLUE, BORDER_STACK_FRAME_BLUE, BORDER_TIMELINE_DROP_BLUE, BORDER_TIMELINE_MARQUEE_BLUE, SHADOW_BLACK, SHADOW_BLACK_ALPHA_50_TOWARDS_BOTTOM, SHADOW_BLACK_ALPHA_50_TOWARDS_TOP, NOTIFICATION_SHADOW, SERVER_DISCONNECTED_SHADOW, COLOR_PICKER_POPUP_SHADOW, COLOR_PICKER_HANDLE_SHADOW, NOTIFICATION_BORDER, FOCUS_BOX_SHADOW, CHECKERBOARD_BACKGROUND_IMAGE, COLOR_PICKER_CHECKER_BACKGROUND_IMAGE, COLOR_PICKER_CHECKER_BACKGROUND_COLOR, COLOR_PICKER_SATURATION_VALUE_GRADIENT, COLOR_PICKER_SATURATION_BLACK_GRADIENT, COLOR_PICKER_ALPHA_TRANSPARENT, COLOR_PICKER_HUE_GRADIENT, ERROR_MESSAGE_MASK_IMAGE, SELECTED_OUTLINE_DROP_SHADOW, SELECTED_OUTLINE_UV_DROP_SHADOW, LOOPED_INDICATOR_DROP_SHADOW, TIMELINE_AUDIO_GRADIENT, TIMELINE_VIDEO_GRADIENT, TIMELINE_IMAGE_GRADIENT, getBackgroundFromHoverState };