From 4ad5e9a29ae8b2aca9508cca7feaba646ea4b836 Mon Sep 17 00:00:00 2001 From: webadderall <131426131+webadderall@users.noreply.github.com> Date: Tue, 5 May 2026 17:57:34 +1000 Subject: [PATCH] Update default editor presets --- src/components/video-editor/VideoEditor.tsx | 2 +- .../video-editor/cursorMotionPresets.ts | 2 +- .../video-editor/editorPreferences.test.ts | 111 ++++-------------- src/components/video-editor/types.ts | 2 +- src/lib/wallpapers.test.ts | 7 +- src/lib/wallpapers.ts | 8 +- 6 files changed, 32 insertions(+), 100 deletions(-) diff --git a/src/components/video-editor/VideoEditor.tsx b/src/components/video-editor/VideoEditor.tsx index 6ff79072..a19098d6 100644 --- a/src/components/video-editor/VideoEditor.tsx +++ b/src/components/video-editor/VideoEditor.tsx @@ -329,7 +329,7 @@ function getEncodingModeBitrateMultiplier(encodingMode: ExportEncodingMode): num return 0.9; case "balanced": default: - return 0.5; + return 0.7; } } diff --git a/src/components/video-editor/cursorMotionPresets.ts b/src/components/video-editor/cursorMotionPresets.ts index f38079ae..0338fddf 100644 --- a/src/components/video-editor/cursorMotionPresets.ts +++ b/src/components/video-editor/cursorMotionPresets.ts @@ -19,7 +19,7 @@ export interface CursorMotionPreset { } const SHARED_CURSOR_PRESET_VALUES = { - cursorSize: 2.2, + cursorSize: 2.5, cursorSmoothing: 0.67, cursorSpringMassMultiplier: 1.29, cursorMotionBlur: 0.4, diff --git a/src/components/video-editor/editorPreferences.test.ts b/src/components/video-editor/editorPreferences.test.ts index f9a079cf..a3462b45 100644 --- a/src/components/video-editor/editorPreferences.test.ts +++ b/src/components/video-editor/editorPreferences.test.ts @@ -53,13 +53,27 @@ describe("editorPreferences", () => { customAspectHeight: "", customWallpapers: "not-an-array", }), - ).toEqual(DEFAULT_EDITOR_PREFERENCES); + ).toMatchObject({ + wallpaper: DEFAULT_EDITOR_PREFERENCES.wallpaper, + showCursor: DEFAULT_EDITOR_PREFERENCES.showCursor, + aspectRatio: DEFAULT_EDITOR_PREFERENCES.aspectRatio, + cursorStyle: DEFAULT_EDITOR_PREFERENCES.cursorStyle, + cursorSize: DEFAULT_EDITOR_PREFERENCES.cursorSize, + customAspectWidth: DEFAULT_EDITOR_PREFERENCES.customAspectWidth, + customAspectHeight: DEFAULT_EDITOR_PREFERENCES.customAspectHeight, + customWallpapers: DEFAULT_EDITOR_PREFERENCES.customWallpapers, + }); }); it("defaults MP4 exports to source quality", () => { expect(DEFAULT_EDITOR_PREFERENCES.exportQuality).toBe("source"); }); + it("defaults cursor preferences to macOS at 2.5x", () => { + expect(DEFAULT_EDITOR_PREFERENCES.cursorStyle).toBe("macos"); + expect(DEFAULT_EDITOR_PREFERENCES.cursorSize).toBe(2.5); + }); + it("loads stored editor control preferences", () => { vi.stubGlobal( "localStorage", @@ -81,49 +95,18 @@ describe("editorPreferences", () => { ); expect(loadEditorPreferences()).toEqual({ + ...DEFAULT_EDITOR_PREFERENCES, wallpaper: "#123456", - shadowIntensity: DEFAULT_EDITOR_PREFERENCES.shadowIntensity, backgroundBlur: 3.5, - zoomMotionBlur: DEFAULT_EDITOR_PREFERENCES.zoomMotionBlur, - connectZooms: DEFAULT_EDITOR_PREFERENCES.connectZooms, - zoomInDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomInDurationMs, - zoomInOverlapMs: DEFAULT_EDITOR_PREFERENCES.zoomInOverlapMs, - zoomOutDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomOutDurationMs, - connectedZoomGapMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomGapMs, - connectedZoomDurationMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomDurationMs, - zoomInEasing: DEFAULT_EDITOR_PREFERENCES.zoomInEasing, - zoomOutEasing: DEFAULT_EDITOR_PREFERENCES.zoomOutEasing, - connectedZoomEasing: DEFAULT_EDITOR_PREFERENCES.connectedZoomEasing, showCursor: false, - loopCursor: DEFAULT_EDITOR_PREFERENCES.loopCursor, - cursorStyle: DEFAULT_EDITOR_PREFERENCES.cursorStyle, - cursorSize: DEFAULT_EDITOR_PREFERENCES.cursorSize, - cursorSmoothing: DEFAULT_EDITOR_PREFERENCES.cursorSmoothing, - cursorMotionBlur: DEFAULT_EDITOR_PREFERENCES.cursorMotionBlur, - cursorClickBounce: DEFAULT_EDITOR_PREFERENCES.cursorClickBounce, - cursorClickBounceDuration: DEFAULT_EDITOR_PREFERENCES.cursorClickBounceDuration, - cursorSway: DEFAULT_EDITOR_PREFERENCES.cursorSway, - borderRadius: DEFAULT_EDITOR_PREFERENCES.borderRadius, - padding: DEFAULT_EDITOR_PREFERENCES.padding, - frame: DEFAULT_EDITOR_PREFERENCES.frame, aspectRatio: "native", - exportEncodingMode: DEFAULT_EDITOR_PREFERENCES.exportEncodingMode, - exportBackendPreference: DEFAULT_EDITOR_PREFERENCES.exportBackendPreference, - exportPipelineModel: DEFAULT_EDITOR_PREFERENCES.exportPipelineModel, - exportQuality: DEFAULT_EDITOR_PREFERENCES.exportQuality, - mp4FrameRate: DEFAULT_EDITOR_PREFERENCES.mp4FrameRate, + zoomInOverlapMs: 200, exportFormat: "gif", gifFrameRate: 30, gifLoop: false, - gifSizePreset: DEFAULT_EDITOR_PREFERENCES.gifSizePreset, - webcam: DEFAULT_EDITOR_PREFERENCES.webcam, customAspectWidth: "21", customAspectHeight: "9", customWallpapers: ["data:image/jpeg;base64,abc"], - autoApplyFreshRecordingAutoZooms: - DEFAULT_EDITOR_PREFERENCES.autoApplyFreshRecordingAutoZooms, - whisperExecutablePath: DEFAULT_EDITOR_PREFERENCES.whisperExecutablePath, - whisperModelPath: DEFAULT_EDITOR_PREFERENCES.whisperModelPath, }); }); @@ -153,49 +136,11 @@ describe("editorPreferences", () => { saveEditorPreferences({ customAspectWidth: "", customAspectHeight: "abc" }); expect(loadEditorPreferences()).toEqual({ + ...DEFAULT_EDITOR_PREFERENCES, aspectRatio: "16:9", - wallpaper: DEFAULT_EDITOR_PREFERENCES.wallpaper, - shadowIntensity: DEFAULT_EDITOR_PREFERENCES.shadowIntensity, - backgroundBlur: DEFAULT_EDITOR_PREFERENCES.backgroundBlur, - zoomMotionBlur: DEFAULT_EDITOR_PREFERENCES.zoomMotionBlur, - connectZooms: DEFAULT_EDITOR_PREFERENCES.connectZooms, - zoomInDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomInDurationMs, - zoomInOverlapMs: DEFAULT_EDITOR_PREFERENCES.zoomInOverlapMs, - zoomOutDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomOutDurationMs, - connectedZoomGapMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomGapMs, - connectedZoomDurationMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomDurationMs, - zoomInEasing: DEFAULT_EDITOR_PREFERENCES.zoomInEasing, - zoomOutEasing: DEFAULT_EDITOR_PREFERENCES.zoomOutEasing, - connectedZoomEasing: DEFAULT_EDITOR_PREFERENCES.connectedZoomEasing, - showCursor: DEFAULT_EDITOR_PREFERENCES.showCursor, - loopCursor: DEFAULT_EDITOR_PREFERENCES.loopCursor, - cursorStyle: DEFAULT_EDITOR_PREFERENCES.cursorStyle, - cursorSize: DEFAULT_EDITOR_PREFERENCES.cursorSize, - cursorSmoothing: DEFAULT_EDITOR_PREFERENCES.cursorSmoothing, - cursorMotionBlur: DEFAULT_EDITOR_PREFERENCES.cursorMotionBlur, - cursorClickBounce: DEFAULT_EDITOR_PREFERENCES.cursorClickBounce, - cursorClickBounceDuration: DEFAULT_EDITOR_PREFERENCES.cursorClickBounceDuration, - cursorSway: DEFAULT_EDITOR_PREFERENCES.cursorSway, - borderRadius: DEFAULT_EDITOR_PREFERENCES.borderRadius, - padding: DEFAULT_EDITOR_PREFERENCES.padding, - frame: DEFAULT_EDITOR_PREFERENCES.frame, - exportEncodingMode: DEFAULT_EDITOR_PREFERENCES.exportEncodingMode, - exportBackendPreference: DEFAULT_EDITOR_PREFERENCES.exportBackendPreference, - exportPipelineModel: DEFAULT_EDITOR_PREFERENCES.exportPipelineModel, - exportQuality: DEFAULT_EDITOR_PREFERENCES.exportQuality, - mp4FrameRate: DEFAULT_EDITOR_PREFERENCES.mp4FrameRate, - exportFormat: DEFAULT_EDITOR_PREFERENCES.exportFormat, - gifFrameRate: DEFAULT_EDITOR_PREFERENCES.gifFrameRate, - gifLoop: DEFAULT_EDITOR_PREFERENCES.gifLoop, - gifSizePreset: DEFAULT_EDITOR_PREFERENCES.gifSizePreset, - webcam: DEFAULT_EDITOR_PREFERENCES.webcam, + zoomInOverlapMs: 200, customAspectWidth: "21", customAspectHeight: "9", - customWallpapers: DEFAULT_EDITOR_PREFERENCES.customWallpapers, - autoApplyFreshRecordingAutoZooms: - DEFAULT_EDITOR_PREFERENCES.autoApplyFreshRecordingAutoZooms, - whisperExecutablePath: DEFAULT_EDITOR_PREFERENCES.whisperExecutablePath, - whisperModelPath: DEFAULT_EDITOR_PREFERENCES.whisperModelPath, }); }); @@ -263,19 +208,13 @@ describe("editorPreferences", () => { }); expect(loadEditorPreferences()).toEqual({ + ...DEFAULT_EDITOR_PREFERENCES, wallpaper: "linear-gradient(to right, #000000, #ffffff)", shadowIntensity: 0.4, backgroundBlur: 1.5, zoomMotionBlur: 0.75, connectZooms: false, - zoomInDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomInDurationMs, - zoomInOverlapMs: DEFAULT_EDITOR_PREFERENCES.zoomInOverlapMs, - zoomOutDurationMs: DEFAULT_EDITOR_PREFERENCES.zoomOutDurationMs, - connectedZoomGapMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomGapMs, - connectedZoomDurationMs: DEFAULT_EDITOR_PREFERENCES.connectedZoomDurationMs, - zoomInEasing: DEFAULT_EDITOR_PREFERENCES.zoomInEasing, - zoomOutEasing: DEFAULT_EDITOR_PREFERENCES.zoomOutEasing, - connectedZoomEasing: DEFAULT_EDITOR_PREFERENCES.connectedZoomEasing, + zoomInOverlapMs: 200, showCursor: false, loopCursor: true, cursorStyle: "figma", @@ -287,24 +226,16 @@ describe("editorPreferences", () => { cursorSway: 1.5, borderRadius: 18, padding: { top: 30, right: 30, bottom: 30, left: 30, linked: true }, - frame: DEFAULT_EDITOR_PREFERENCES.frame, aspectRatio: "4:5", exportEncodingMode: "quality", - exportBackendPreference: DEFAULT_EDITOR_PREFERENCES.exportBackendPreference, - exportPipelineModel: DEFAULT_EDITOR_PREFERENCES.exportPipelineModel, - exportQuality: "source", - mp4FrameRate: DEFAULT_EDITOR_PREFERENCES.mp4FrameRate, exportFormat: "gif", gifFrameRate: 20, gifLoop: false, gifSizePreset: "large", - webcam: DEFAULT_EDITOR_PREFERENCES.webcam, customAspectWidth: "4", customAspectHeight: "5", customWallpapers: ["data:image/jpeg;base64,abc"], autoApplyFreshRecordingAutoZooms: false, - whisperExecutablePath: DEFAULT_EDITOR_PREFERENCES.whisperExecutablePath, - whisperModelPath: DEFAULT_EDITOR_PREFERENCES.whisperModelPath, }); }); diff --git a/src/components/video-editor/types.ts b/src/components/video-editor/types.ts index efa42d0f..0ad406ae 100644 --- a/src/components/video-editor/types.ts +++ b/src/components/video-editor/types.ts @@ -51,7 +51,7 @@ export interface CursorVisualSettings { } export type CursorStyle = "macos" | "tahoe" | "tahoe-inverted" | "dot" | "figma" | (string & {}); // extension-contributed cursor styles -export const DEFAULT_CURSOR_STYLE: CursorStyle = "tahoe"; +export const DEFAULT_CURSOR_STYLE: CursorStyle = "macos"; export type EditorEffectSection = | "scene" diff --git a/src/lib/wallpapers.test.ts b/src/lib/wallpapers.test.ts index f848501a..8e2ebe6f 100644 --- a/src/lib/wallpapers.test.ts +++ b/src/lib/wallpapers.test.ts @@ -12,9 +12,10 @@ describe("wallpapers", () => { }); it("keeps the curated wallpaper list and default path aligned", () => { - expect(DEFAULT_WALLPAPER_PATH).toBe("/wallpapers/midnight-8.jpg"); - expect(DEFAULT_WALLPAPER_RELATIVE_PATH).toBe("wallpapers/midnight-8.jpg"); + expect(DEFAULT_WALLPAPER_PATH).toBe("/wallpapers/tahoe-light.jpg"); + expect(DEFAULT_WALLPAPER_RELATIVE_PATH).toBe("wallpapers/tahoe-light.jpg"); expect(BUILT_IN_WALLPAPERS.at(0)?.publicPath).toBe(DEFAULT_WALLPAPER_PATH); + expect(BUILT_IN_WALLPAPERS.at(1)?.publicPath).toBe("/wallpapers/tahoe-dark.jpg"); expect(BUILT_IN_WALLPAPERS).toHaveLength(25); }); @@ -37,8 +38,8 @@ describe("wallpapers", () => { }); await expect(getAvailableWallpapers()).resolves.toEqual([ - BUILT_IN_WALLPAPERS[0], BUILT_IN_WALLPAPERS[2], + BUILT_IN_WALLPAPERS[4], BUILT_IN_WALLPAPERS[15], BUILT_IN_WALLPAPERS[16], BUILT_IN_WALLPAPERS[23], diff --git a/src/lib/wallpapers.ts b/src/lib/wallpapers.ts index b72ce7cb..2132b8d3 100644 --- a/src/lib/wallpapers.ts +++ b/src/lib/wallpapers.ts @@ -9,14 +9,14 @@ const IMAGE_FILE_PATTERN = /\.(avif|gif|jpe?g|png|svg|webp)$/i; const VIDEO_FILE_PATTERN = /\.(avi|m4v|mkv|mov|mp4|webm)$/i; export const BUILT_IN_WALLPAPERS: BuiltInWallpaper[] = [ + createWallpaperEntry("tahoe-light.jpg", "Tahoe Light"), + createWallpaperEntry("tahoe-dark.jpg", "Tahoe Dark"), createWallpaperEntry("midnight-8.jpg", "Midnight 8"), createWallpaperEntry("ipad-17-dark.jpg", "iPad 17 Dark"), createWallpaperEntry("ipad-17-light.jpg", "iPad 17 Light"), createWallpaperEntry("sequoia-blue.jpg", "Sequoia Blue"), createWallpaperEntry("sequoia-blue-orange.jpg", "Sequoia Blue Orange"), createWallpaperEntry("ventura.jpg", "Ventura"), - createWallpaperEntry("tahoe-light.jpg", "Tahoe Light"), - createWallpaperEntry("tahoe-dark.jpg", "Tahoe Dark"), createWallpaperEntry("sonoma-clouds.jpg", "Sonoma Clouds"), createWallpaperEntry("sonoma-light.jpg", "Sonoma Light"), createWallpaperEntry("sonoma-dark.jpg", "Sonoma Dark"), @@ -40,8 +40,8 @@ export const WALLPAPER_PATHS = BUILT_IN_WALLPAPERS.map((wallpaper) => wallpaper. export const WALLPAPER_RELATIVE_PATHS = BUILT_IN_WALLPAPERS.map( (wallpaper) => wallpaper.relativePath, ); -export const DEFAULT_WALLPAPER_PATH = "/wallpapers/midnight-8.jpg"; -export const DEFAULT_WALLPAPER_RELATIVE_PATH = "wallpapers/midnight-8.jpg"; +export const DEFAULT_WALLPAPER_PATH = "/wallpapers/tahoe-light.jpg"; +export const DEFAULT_WALLPAPER_RELATIVE_PATH = "wallpapers/tahoe-light.jpg"; export function isVideoWallpaperSource(value: string): boolean { if (!value) {