From ef636934f2b38fbb70d0ce36f877f49d5a5a7d40 Mon Sep 17 00:00:00 2001 From: webadderall <131426131+webadderall@users.noreply.github.com> Date: Sun, 26 Apr 2026 00:21:41 +1000 Subject: [PATCH] Wire new cursor asset sets --- package.json | 2 +- src/assets/cursors/Cursor=Beachball.svg | 46 ---- src/assets/cursors/Cursor=Cross.svg | 5 - src/assets/cursors/Cursor=Default.svg | 5 - src/assets/cursors/Cursor=Hand-(Grabbing).svg | 5 - src/assets/cursors/Cursor=Hand-(Open).svg | 5 - src/assets/cursors/Cursor=Hand-(Pointing).svg | 5 - src/assets/cursors/Cursor=Menu.svg | 18 -- src/assets/cursors/Cursor=Move.svg | 5 - src/assets/cursors/Cursor=Resize-(Down).svg | 5 - src/assets/cursors/Cursor=Resize-(Left).svg | 5 - .../cursors/Cursor=Resize-(Left-Right).svg | 5 - src/assets/cursors/Cursor=Resize-(Right).svg | 5 - src/assets/cursors/Cursor=Resize-(Up).svg | 5 - .../cursors/Cursor=Resize-(Up-Down).svg | 5 - .../Cursor=Resize-North-East-South-West.svg | 5 - .../cursors/Cursor=Resize-North-South.svg | 5 - .../Cursor=Resize-North-West-South-East.svg | 5 - .../cursors/Cursor=Resize-West-East.svg | 5 - src/assets/cursors/Cursor=Text-Cursor.svg | 5 - src/assets/cursors/Cursor=Zoom-In.svg | 8 - src/assets/cursors/Cursor=Zoom-Out.svg | 6 - .../cursors/macos/beachball-1__50-50.svg | 36 +++ .../macos/busybutclickable-1__23-0.svg | 40 +++ src/assets/cursors/macos/cell-1__50-50.svg | 7 + .../cursors/macos/closedhand-1__50-50.svg | 7 + .../cursors/macos/contextualmenu-1__26-21.svg | 7 + src/assets/cursors/macos/copy-1__23-0.svg | 40 +++ src/assets/cursors/macos/cross-1__50-50.svg | 7 + .../cursors/macos/crosshair-1__50-50.svg | 5 + src/assets/cursors/macos/help-1__50-50.svg | 7 + src/assets/cursors/macos/ibeam-1__50-50.svg | 4 + .../cursors/macos/ibeamstroke-1__50-50.svg | 7 + .../cursors/macos/ibeamvertical-1__50-50.svg | 9 + .../macos/ibeamverticalstroke-1__50-50.svg | 7 + .../cursors/macos/makealias-1__63-29.svg | 7 + src/assets/cursors/macos/move-1__50-50.svg | 7 + .../cursors/macos/notallowed-1__23-0.svg | 40 +++ .../cursors/macos/openhand-1__50-50.svg | 7 + src/assets/cursors/macos/pointer-1__34-24.svg | 7 + .../cursors/macos/pointinghand-1__39-26.svg | 7 + src/assets/cursors/macos/proof-1__23-0.svg | 40 +++ .../cursors/macos/resizedown-1__50-50.svg | 7 + .../cursors/macos/resizeeast-1__50-50.svg | 7 + .../cursors/macos/resizeeastwest-1__50-50.svg | 7 + .../cursors/macos/resizeleft-1__50-50.svg | 7 + .../macos/resizeleftright-1__50-50.svg | 7 + .../cursors/macos/resizenorth-1__50-50.svg | 7 + .../macos/resizenortheast-1__50-50.svg | 7 + .../resizenortheastsouthwest-1__50-50.svg | 7 + .../macos/resizenorthsouth-1__50-50.svg | 7 + .../macos/resizenorthwest-1__50-50.svg | 7 + .../resizenorthwestsoutheast-1__50-50.svg | 7 + .../cursors/macos/resizeright-1__50-50.svg | 7 + .../cursors/macos/resizesouth-1__50-50.svg | 7 + .../macos/resizesoutheast-1__50-50.svg | 7 + .../macos/resizesouthwest-1__50-50.svg | 7 + .../cursors/macos/resizeup-1__50-50.svg | 7 + .../cursors/macos/resizeupdown-1__50-50.svg | 7 + .../cursors/macos/resizewest-1__50-50.svg | 7 + .../macos/screenshotselection-1__50-50.svg | 92 +++++++ .../macos/screenshotwindow-1__50-50.svg | 7 + src/assets/cursors/macos/zoomin-1__43-43.svg | 7 + src/assets/cursors/macos/zoomout-1__43-43.svg | 7 + .../cursors/tahoe/beachball-1__50-46.svg | 57 +++++ .../tahoe/busybutclickable-1__23-0.svg | 40 +++ src/assets/cursors/tahoe/cell-1__50-50.svg | 7 + .../cursors/tahoe/closedhand-1__50-46.svg | 18 ++ .../cursors/tahoe/contextualmenu-1__12-5.svg | 24 ++ src/assets/cursors/tahoe/copy-1__23-0.svg | 40 +++ src/assets/cursors/tahoe/cross-1__50-46.svg | 18 ++ .../cursors/tahoe/crosshair-1__50-50.svg | 5 + src/assets/cursors/tahoe/help-1__50-50.svg | 7 + src/assets/cursors/tahoe/ibeam-1__50-44.svg | 18 ++ .../cursors/tahoe/ibeamstroke-1__50-44.svg | 23 ++ .../cursors/tahoe/ibeamvertical-1__50-50.svg | 18 ++ .../tahoe/ibeamverticalstroke-1__50-50.svg | 18 ++ .../cursors/tahoe/makealias-1__63-29.svg | 7 + src/assets/cursors/tahoe/move-1__50-46.svg | 18 ++ .../cursors/tahoe/notallowed-1__23-0.svg | 40 +++ .../cursors/tahoe/openhand-1__55-57.svg | 18 ++ src/assets/cursors/tahoe/pointer-1__14-6.svg | 18 ++ .../cursors/tahoe/pointinghand-1__40-10.svg | 18 ++ src/assets/cursors/tahoe/proof-1__23-0.svg | 40 +++ .../cursors/tahoe/resizedown-1__50-36.svg | 18 ++ .../cursors/tahoe/resizeeast-1__50-50.svg | 27 +++ .../cursors/tahoe/resizeeastwest-1__50-50.svg | 23 ++ .../cursors/tahoe/resizeleft-1__62-46.svg | 18 ++ .../tahoe/resizeleftright-1__50-43.svg | 18 ++ .../cursors/tahoe/resizenorth-1__50-49.svg | 22 ++ .../tahoe/resizenortheast-1__50-49.svg | 22 ++ .../resizenortheastsouthwest-1__50-46.svg | 18 ++ .../tahoe/resizenorthsouth-1__50-49.svg | 18 ++ .../tahoe/resizenorthwest-1__50-49.svg | 22 ++ .../resizenorthwestsoutheast-1__51-46.svg | 18 ++ .../cursors/tahoe/resizeright-1__38-45.svg | 18 ++ .../cursors/tahoe/resizesouth-1__50-49.svg | 22 ++ .../tahoe/resizesoutheast-1__50-49.svg | 22 ++ .../tahoe/resizesouthwest-1__50-49.svg | 22 ++ .../cursors/tahoe/resizeup-1__50-57.svg | 18 ++ .../cursors/tahoe/resizeupdown-1__51-48.svg | 18 ++ .../cursors/tahoe/resizewest-1__50-50.svg | 27 +++ .../tahoe/screenshotselection-1__50-50.svg | 92 +++++++ .../tahoe/screenshotwindow-1__50-50.svg | 7 + src/assets/cursors/tahoe/zoomin-1__42-39.svg | 21 ++ src/assets/cursors/tahoe/zoomout-1__43-39.svg | 19 ++ src/components/video-editor/SettingsPanel.tsx | 45 ++-- .../video-editor/projectPersistence.ts | 27 ++- src/components/video-editor/types.ts | 2 +- .../videoPlayback/cursorRenderer.ts | 227 ++++++------------ .../videoPlayback/uploadedCursorAssets.ts | 110 ++++----- src/i18n/locales/en/settings.json | 6 +- src/i18n/locales/es/settings.json | 12 +- src/i18n/locales/fr/settings.json | 12 +- src/i18n/locales/ko/settings.json | 12 +- src/i18n/locales/nl/settings.json | 12 +- src/i18n/locales/zh-CN/settings.json | 12 +- vite.config.ts | 8 + 118 files changed, 1689 insertions(+), 460 deletions(-) delete mode 100644 src/assets/cursors/Cursor=Beachball.svg delete mode 100644 src/assets/cursors/Cursor=Cross.svg delete mode 100644 src/assets/cursors/Cursor=Default.svg delete mode 100644 src/assets/cursors/Cursor=Hand-(Grabbing).svg delete mode 100644 src/assets/cursors/Cursor=Hand-(Open).svg delete mode 100644 src/assets/cursors/Cursor=Hand-(Pointing).svg delete mode 100644 src/assets/cursors/Cursor=Menu.svg delete mode 100644 src/assets/cursors/Cursor=Move.svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Down).svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Left).svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Left-Right).svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Right).svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Up).svg delete mode 100644 src/assets/cursors/Cursor=Resize-(Up-Down).svg delete mode 100644 src/assets/cursors/Cursor=Resize-North-East-South-West.svg delete mode 100644 src/assets/cursors/Cursor=Resize-North-South.svg delete mode 100644 src/assets/cursors/Cursor=Resize-North-West-South-East.svg delete mode 100644 src/assets/cursors/Cursor=Resize-West-East.svg delete mode 100644 src/assets/cursors/Cursor=Text-Cursor.svg delete mode 100644 src/assets/cursors/Cursor=Zoom-In.svg delete mode 100644 src/assets/cursors/Cursor=Zoom-Out.svg create mode 100644 src/assets/cursors/macos/beachball-1__50-50.svg create mode 100644 src/assets/cursors/macos/busybutclickable-1__23-0.svg create mode 100644 src/assets/cursors/macos/cell-1__50-50.svg create mode 100644 src/assets/cursors/macos/closedhand-1__50-50.svg create mode 100644 src/assets/cursors/macos/contextualmenu-1__26-21.svg create mode 100644 src/assets/cursors/macos/copy-1__23-0.svg create mode 100644 src/assets/cursors/macos/cross-1__50-50.svg create mode 100644 src/assets/cursors/macos/crosshair-1__50-50.svg create mode 100644 src/assets/cursors/macos/help-1__50-50.svg create mode 100644 src/assets/cursors/macos/ibeam-1__50-50.svg create mode 100644 src/assets/cursors/macos/ibeamstroke-1__50-50.svg create mode 100644 src/assets/cursors/macos/ibeamvertical-1__50-50.svg create mode 100644 src/assets/cursors/macos/ibeamverticalstroke-1__50-50.svg create mode 100644 src/assets/cursors/macos/makealias-1__63-29.svg create mode 100644 src/assets/cursors/macos/move-1__50-50.svg create mode 100644 src/assets/cursors/macos/notallowed-1__23-0.svg create mode 100644 src/assets/cursors/macos/openhand-1__50-50.svg create mode 100644 src/assets/cursors/macos/pointer-1__34-24.svg create mode 100644 src/assets/cursors/macos/pointinghand-1__39-26.svg create mode 100644 src/assets/cursors/macos/proof-1__23-0.svg create mode 100644 src/assets/cursors/macos/resizedown-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeeast-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeeastwest-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeleft-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeleftright-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenorth-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenortheast-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenortheastsouthwest-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenorthsouth-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenorthwest-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizenorthwestsoutheast-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeright-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizesouth-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizesoutheast-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizesouthwest-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeup-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizeupdown-1__50-50.svg create mode 100644 src/assets/cursors/macos/resizewest-1__50-50.svg create mode 100644 src/assets/cursors/macos/screenshotselection-1__50-50.svg create mode 100644 src/assets/cursors/macos/screenshotwindow-1__50-50.svg create mode 100644 src/assets/cursors/macos/zoomin-1__43-43.svg create mode 100644 src/assets/cursors/macos/zoomout-1__43-43.svg create mode 100644 src/assets/cursors/tahoe/beachball-1__50-46.svg create mode 100644 src/assets/cursors/tahoe/busybutclickable-1__23-0.svg create mode 100644 src/assets/cursors/tahoe/cell-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/closedhand-1__50-46.svg create mode 100644 src/assets/cursors/tahoe/contextualmenu-1__12-5.svg create mode 100644 src/assets/cursors/tahoe/copy-1__23-0.svg create mode 100644 src/assets/cursors/tahoe/cross-1__50-46.svg create mode 100644 src/assets/cursors/tahoe/crosshair-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/help-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/ibeam-1__50-44.svg create mode 100644 src/assets/cursors/tahoe/ibeamstroke-1__50-44.svg create mode 100644 src/assets/cursors/tahoe/ibeamvertical-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/ibeamverticalstroke-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/makealias-1__63-29.svg create mode 100644 src/assets/cursors/tahoe/move-1__50-46.svg create mode 100644 src/assets/cursors/tahoe/notallowed-1__23-0.svg create mode 100644 src/assets/cursors/tahoe/openhand-1__55-57.svg create mode 100644 src/assets/cursors/tahoe/pointer-1__14-6.svg create mode 100644 src/assets/cursors/tahoe/pointinghand-1__40-10.svg create mode 100644 src/assets/cursors/tahoe/proof-1__23-0.svg create mode 100644 src/assets/cursors/tahoe/resizedown-1__50-36.svg create mode 100644 src/assets/cursors/tahoe/resizeeast-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/resizeeastwest-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/resizeleft-1__62-46.svg create mode 100644 src/assets/cursors/tahoe/resizeleftright-1__50-43.svg create mode 100644 src/assets/cursors/tahoe/resizenorth-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizenortheast-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizenortheastsouthwest-1__50-46.svg create mode 100644 src/assets/cursors/tahoe/resizenorthsouth-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizenorthwest-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizenorthwestsoutheast-1__51-46.svg create mode 100644 src/assets/cursors/tahoe/resizeright-1__38-45.svg create mode 100644 src/assets/cursors/tahoe/resizesouth-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizesoutheast-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizesouthwest-1__50-49.svg create mode 100644 src/assets/cursors/tahoe/resizeup-1__50-57.svg create mode 100644 src/assets/cursors/tahoe/resizeupdown-1__51-48.svg create mode 100644 src/assets/cursors/tahoe/resizewest-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/screenshotselection-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/screenshotwindow-1__50-50.svg create mode 100644 src/assets/cursors/tahoe/zoomin-1__42-39.svg create mode 100644 src/assets/cursors/tahoe/zoomout-1__43-39.svg diff --git a/package.json b/package.json index 6fac6f9d..8004dfd5 100644 --- a/package.json +++ b/package.json @@ -104,5 +104,5 @@ "vitest": "^4.0.16", "web-demuxer": "^4.0.0" }, - "main": "dist-electron/main.js" + "main": "dist-electron/main.cjs" } diff --git a/src/assets/cursors/Cursor=Beachball.svg b/src/assets/cursors/Cursor=Beachball.svg deleted file mode 100644 index 30bdbe50..00000000 --- a/src/assets/cursors/Cursor=Beachball.svg +++ /dev/null @@ -1,46 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/assets/cursors/Cursor=Cross.svg b/src/assets/cursors/Cursor=Cross.svg deleted file mode 100644 index b404553d..00000000 --- a/src/assets/cursors/Cursor=Cross.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Default.svg b/src/assets/cursors/Cursor=Default.svg deleted file mode 100644 index f76f31fd..00000000 --- a/src/assets/cursors/Cursor=Default.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Hand-(Grabbing).svg b/src/assets/cursors/Cursor=Hand-(Grabbing).svg deleted file mode 100644 index 08278675..00000000 --- a/src/assets/cursors/Cursor=Hand-(Grabbing).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Hand-(Open).svg b/src/assets/cursors/Cursor=Hand-(Open).svg deleted file mode 100644 index 4ceafb0f..00000000 --- a/src/assets/cursors/Cursor=Hand-(Open).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Hand-(Pointing).svg b/src/assets/cursors/Cursor=Hand-(Pointing).svg deleted file mode 100644 index 19a70a67..00000000 --- a/src/assets/cursors/Cursor=Hand-(Pointing).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Menu.svg b/src/assets/cursors/Cursor=Menu.svg deleted file mode 100644 index 3489257b..00000000 --- a/src/assets/cursors/Cursor=Menu.svg +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/src/assets/cursors/Cursor=Move.svg b/src/assets/cursors/Cursor=Move.svg deleted file mode 100644 index 50e56b76..00000000 --- a/src/assets/cursors/Cursor=Move.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Down).svg b/src/assets/cursors/Cursor=Resize-(Down).svg deleted file mode 100644 index fba36729..00000000 --- a/src/assets/cursors/Cursor=Resize-(Down).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Left).svg b/src/assets/cursors/Cursor=Resize-(Left).svg deleted file mode 100644 index 6e21fb77..00000000 --- a/src/assets/cursors/Cursor=Resize-(Left).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Left-Right).svg b/src/assets/cursors/Cursor=Resize-(Left-Right).svg deleted file mode 100644 index 7021d229..00000000 --- a/src/assets/cursors/Cursor=Resize-(Left-Right).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Right).svg b/src/assets/cursors/Cursor=Resize-(Right).svg deleted file mode 100644 index 1ce801ce..00000000 --- a/src/assets/cursors/Cursor=Resize-(Right).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Up).svg b/src/assets/cursors/Cursor=Resize-(Up).svg deleted file mode 100644 index 9c4ac0f0..00000000 --- a/src/assets/cursors/Cursor=Resize-(Up).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-(Up-Down).svg b/src/assets/cursors/Cursor=Resize-(Up-Down).svg deleted file mode 100644 index b01a40e3..00000000 --- a/src/assets/cursors/Cursor=Resize-(Up-Down).svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-North-East-South-West.svg b/src/assets/cursors/Cursor=Resize-North-East-South-West.svg deleted file mode 100644 index 1185c1ff..00000000 --- a/src/assets/cursors/Cursor=Resize-North-East-South-West.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-North-South.svg b/src/assets/cursors/Cursor=Resize-North-South.svg deleted file mode 100644 index 57eaa056..00000000 --- a/src/assets/cursors/Cursor=Resize-North-South.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-North-West-South-East.svg b/src/assets/cursors/Cursor=Resize-North-West-South-East.svg deleted file mode 100644 index f00fc879..00000000 --- a/src/assets/cursors/Cursor=Resize-North-West-South-East.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Resize-West-East.svg b/src/assets/cursors/Cursor=Resize-West-East.svg deleted file mode 100644 index ef1929fb..00000000 --- a/src/assets/cursors/Cursor=Resize-West-East.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Text-Cursor.svg b/src/assets/cursors/Cursor=Text-Cursor.svg deleted file mode 100644 index 1bfd0809..00000000 --- a/src/assets/cursors/Cursor=Text-Cursor.svg +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/assets/cursors/Cursor=Zoom-In.svg b/src/assets/cursors/Cursor=Zoom-In.svg deleted file mode 100644 index 8ec9b3ce..00000000 --- a/src/assets/cursors/Cursor=Zoom-In.svg +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - diff --git a/src/assets/cursors/Cursor=Zoom-Out.svg b/src/assets/cursors/Cursor=Zoom-Out.svg deleted file mode 100644 index 810878ba..00000000 --- a/src/assets/cursors/Cursor=Zoom-Out.svg +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/src/assets/cursors/macos/beachball-1__50-50.svg b/src/assets/cursors/macos/beachball-1__50-50.svg new file mode 100644 index 00000000..d6b3ae45 --- /dev/null +++ b/src/assets/cursors/macos/beachball-1__50-50.svg @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/busybutclickable-1__23-0.svg b/src/assets/cursors/macos/busybutclickable-1__23-0.svg new file mode 100644 index 00000000..3dfed791 --- /dev/null +++ b/src/assets/cursors/macos/busybutclickable-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/cell-1__50-50.svg b/src/assets/cursors/macos/cell-1__50-50.svg new file mode 100644 index 00000000..e7119c0b --- /dev/null +++ b/src/assets/cursors/macos/cell-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/closedhand-1__50-50.svg b/src/assets/cursors/macos/closedhand-1__50-50.svg new file mode 100644 index 00000000..12dc7d18 --- /dev/null +++ b/src/assets/cursors/macos/closedhand-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/contextualmenu-1__26-21.svg b/src/assets/cursors/macos/contextualmenu-1__26-21.svg new file mode 100644 index 00000000..ff27b69e --- /dev/null +++ b/src/assets/cursors/macos/contextualmenu-1__26-21.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/copy-1__23-0.svg b/src/assets/cursors/macos/copy-1__23-0.svg new file mode 100644 index 00000000..6f7085e9 --- /dev/null +++ b/src/assets/cursors/macos/copy-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/cross-1__50-50.svg b/src/assets/cursors/macos/cross-1__50-50.svg new file mode 100644 index 00000000..5f2f5522 --- /dev/null +++ b/src/assets/cursors/macos/cross-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/crosshair-1__50-50.svg b/src/assets/cursors/macos/crosshair-1__50-50.svg new file mode 100644 index 00000000..4f76ba3d --- /dev/null +++ b/src/assets/cursors/macos/crosshair-1__50-50.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/help-1__50-50.svg b/src/assets/cursors/macos/help-1__50-50.svg new file mode 100644 index 00000000..7b292313 --- /dev/null +++ b/src/assets/cursors/macos/help-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/ibeam-1__50-50.svg b/src/assets/cursors/macos/ibeam-1__50-50.svg new file mode 100644 index 00000000..55783048 --- /dev/null +++ b/src/assets/cursors/macos/ibeam-1__50-50.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/ibeamstroke-1__50-50.svg b/src/assets/cursors/macos/ibeamstroke-1__50-50.svg new file mode 100644 index 00000000..7d40f01d --- /dev/null +++ b/src/assets/cursors/macos/ibeamstroke-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/ibeamvertical-1__50-50.svg b/src/assets/cursors/macos/ibeamvertical-1__50-50.svg new file mode 100644 index 00000000..238e8f62 --- /dev/null +++ b/src/assets/cursors/macos/ibeamvertical-1__50-50.svg @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/ibeamverticalstroke-1__50-50.svg b/src/assets/cursors/macos/ibeamverticalstroke-1__50-50.svg new file mode 100644 index 00000000..bc0dd69f --- /dev/null +++ b/src/assets/cursors/macos/ibeamverticalstroke-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/makealias-1__63-29.svg b/src/assets/cursors/macos/makealias-1__63-29.svg new file mode 100644 index 00000000..1e188e75 --- /dev/null +++ b/src/assets/cursors/macos/makealias-1__63-29.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/move-1__50-50.svg b/src/assets/cursors/macos/move-1__50-50.svg new file mode 100644 index 00000000..7e358e29 --- /dev/null +++ b/src/assets/cursors/macos/move-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/notallowed-1__23-0.svg b/src/assets/cursors/macos/notallowed-1__23-0.svg new file mode 100644 index 00000000..7ee2ef75 --- /dev/null +++ b/src/assets/cursors/macos/notallowed-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/openhand-1__50-50.svg b/src/assets/cursors/macos/openhand-1__50-50.svg new file mode 100644 index 00000000..2afa2724 --- /dev/null +++ b/src/assets/cursors/macos/openhand-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/pointer-1__34-24.svg b/src/assets/cursors/macos/pointer-1__34-24.svg new file mode 100644 index 00000000..fd4f6cb4 --- /dev/null +++ b/src/assets/cursors/macos/pointer-1__34-24.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/pointinghand-1__39-26.svg b/src/assets/cursors/macos/pointinghand-1__39-26.svg new file mode 100644 index 00000000..11ed47b7 --- /dev/null +++ b/src/assets/cursors/macos/pointinghand-1__39-26.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/proof-1__23-0.svg b/src/assets/cursors/macos/proof-1__23-0.svg new file mode 100644 index 00000000..86ac7db9 --- /dev/null +++ b/src/assets/cursors/macos/proof-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizedown-1__50-50.svg b/src/assets/cursors/macos/resizedown-1__50-50.svg new file mode 100644 index 00000000..9416c506 --- /dev/null +++ b/src/assets/cursors/macos/resizedown-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeeast-1__50-50.svg b/src/assets/cursors/macos/resizeeast-1__50-50.svg new file mode 100644 index 00000000..d52b7cc3 --- /dev/null +++ b/src/assets/cursors/macos/resizeeast-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeeastwest-1__50-50.svg b/src/assets/cursors/macos/resizeeastwest-1__50-50.svg new file mode 100644 index 00000000..4db1b5f5 --- /dev/null +++ b/src/assets/cursors/macos/resizeeastwest-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeleft-1__50-50.svg b/src/assets/cursors/macos/resizeleft-1__50-50.svg new file mode 100644 index 00000000..d64ecab2 --- /dev/null +++ b/src/assets/cursors/macos/resizeleft-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeleftright-1__50-50.svg b/src/assets/cursors/macos/resizeleftright-1__50-50.svg new file mode 100644 index 00000000..eeab5ecb --- /dev/null +++ b/src/assets/cursors/macos/resizeleftright-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenorth-1__50-50.svg b/src/assets/cursors/macos/resizenorth-1__50-50.svg new file mode 100644 index 00000000..3a44a0bc --- /dev/null +++ b/src/assets/cursors/macos/resizenorth-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenortheast-1__50-50.svg b/src/assets/cursors/macos/resizenortheast-1__50-50.svg new file mode 100644 index 00000000..cec926f0 --- /dev/null +++ b/src/assets/cursors/macos/resizenortheast-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenortheastsouthwest-1__50-50.svg b/src/assets/cursors/macos/resizenortheastsouthwest-1__50-50.svg new file mode 100644 index 00000000..a15f61a8 --- /dev/null +++ b/src/assets/cursors/macos/resizenortheastsouthwest-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenorthsouth-1__50-50.svg b/src/assets/cursors/macos/resizenorthsouth-1__50-50.svg new file mode 100644 index 00000000..40d4718b --- /dev/null +++ b/src/assets/cursors/macos/resizenorthsouth-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenorthwest-1__50-50.svg b/src/assets/cursors/macos/resizenorthwest-1__50-50.svg new file mode 100644 index 00000000..0fb5cca6 --- /dev/null +++ b/src/assets/cursors/macos/resizenorthwest-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizenorthwestsoutheast-1__50-50.svg b/src/assets/cursors/macos/resizenorthwestsoutheast-1__50-50.svg new file mode 100644 index 00000000..dc8d3aed --- /dev/null +++ b/src/assets/cursors/macos/resizenorthwestsoutheast-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeright-1__50-50.svg b/src/assets/cursors/macos/resizeright-1__50-50.svg new file mode 100644 index 00000000..5c96c8e7 --- /dev/null +++ b/src/assets/cursors/macos/resizeright-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizesouth-1__50-50.svg b/src/assets/cursors/macos/resizesouth-1__50-50.svg new file mode 100644 index 00000000..19a3aade --- /dev/null +++ b/src/assets/cursors/macos/resizesouth-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizesoutheast-1__50-50.svg b/src/assets/cursors/macos/resizesoutheast-1__50-50.svg new file mode 100644 index 00000000..12149454 --- /dev/null +++ b/src/assets/cursors/macos/resizesoutheast-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizesouthwest-1__50-50.svg b/src/assets/cursors/macos/resizesouthwest-1__50-50.svg new file mode 100644 index 00000000..61616725 --- /dev/null +++ b/src/assets/cursors/macos/resizesouthwest-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeup-1__50-50.svg b/src/assets/cursors/macos/resizeup-1__50-50.svg new file mode 100644 index 00000000..4a7b5d49 --- /dev/null +++ b/src/assets/cursors/macos/resizeup-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizeupdown-1__50-50.svg b/src/assets/cursors/macos/resizeupdown-1__50-50.svg new file mode 100644 index 00000000..ac4f5b15 --- /dev/null +++ b/src/assets/cursors/macos/resizeupdown-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/resizewest-1__50-50.svg b/src/assets/cursors/macos/resizewest-1__50-50.svg new file mode 100644 index 00000000..2c8b9a05 --- /dev/null +++ b/src/assets/cursors/macos/resizewest-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/screenshotselection-1__50-50.svg b/src/assets/cursors/macos/screenshotselection-1__50-50.svg new file mode 100644 index 00000000..5717500b --- /dev/null +++ b/src/assets/cursors/macos/screenshotselection-1__50-50.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/screenshotwindow-1__50-50.svg b/src/assets/cursors/macos/screenshotwindow-1__50-50.svg new file mode 100644 index 00000000..25122f5c --- /dev/null +++ b/src/assets/cursors/macos/screenshotwindow-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/zoomin-1__43-43.svg b/src/assets/cursors/macos/zoomin-1__43-43.svg new file mode 100644 index 00000000..ed08654c --- /dev/null +++ b/src/assets/cursors/macos/zoomin-1__43-43.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/macos/zoomout-1__43-43.svg b/src/assets/cursors/macos/zoomout-1__43-43.svg new file mode 100644 index 00000000..b54c6f0e --- /dev/null +++ b/src/assets/cursors/macos/zoomout-1__43-43.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/beachball-1__50-46.svg b/src/assets/cursors/tahoe/beachball-1__50-46.svg new file mode 100644 index 00000000..72f52d7e --- /dev/null +++ b/src/assets/cursors/tahoe/beachball-1__50-46.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/busybutclickable-1__23-0.svg b/src/assets/cursors/tahoe/busybutclickable-1__23-0.svg new file mode 100644 index 00000000..3dfed791 --- /dev/null +++ b/src/assets/cursors/tahoe/busybutclickable-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/cell-1__50-50.svg b/src/assets/cursors/tahoe/cell-1__50-50.svg new file mode 100644 index 00000000..e7119c0b --- /dev/null +++ b/src/assets/cursors/tahoe/cell-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/closedhand-1__50-46.svg b/src/assets/cursors/tahoe/closedhand-1__50-46.svg new file mode 100644 index 00000000..5bff2092 --- /dev/null +++ b/src/assets/cursors/tahoe/closedhand-1__50-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/contextualmenu-1__12-5.svg b/src/assets/cursors/tahoe/contextualmenu-1__12-5.svg new file mode 100644 index 00000000..e983117a --- /dev/null +++ b/src/assets/cursors/tahoe/contextualmenu-1__12-5.svg @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/copy-1__23-0.svg b/src/assets/cursors/tahoe/copy-1__23-0.svg new file mode 100644 index 00000000..6f7085e9 --- /dev/null +++ b/src/assets/cursors/tahoe/copy-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/cross-1__50-46.svg b/src/assets/cursors/tahoe/cross-1__50-46.svg new file mode 100644 index 00000000..251f624f --- /dev/null +++ b/src/assets/cursors/tahoe/cross-1__50-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/crosshair-1__50-50.svg b/src/assets/cursors/tahoe/crosshair-1__50-50.svg new file mode 100644 index 00000000..4f76ba3d --- /dev/null +++ b/src/assets/cursors/tahoe/crosshair-1__50-50.svg @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/help-1__50-50.svg b/src/assets/cursors/tahoe/help-1__50-50.svg new file mode 100644 index 00000000..7b292313 --- /dev/null +++ b/src/assets/cursors/tahoe/help-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/ibeam-1__50-44.svg b/src/assets/cursors/tahoe/ibeam-1__50-44.svg new file mode 100644 index 00000000..9b50370a --- /dev/null +++ b/src/assets/cursors/tahoe/ibeam-1__50-44.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/ibeamstroke-1__50-44.svg b/src/assets/cursors/tahoe/ibeamstroke-1__50-44.svg new file mode 100644 index 00000000..2022f643 --- /dev/null +++ b/src/assets/cursors/tahoe/ibeamstroke-1__50-44.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/ibeamvertical-1__50-50.svg b/src/assets/cursors/tahoe/ibeamvertical-1__50-50.svg new file mode 100644 index 00000000..b7e1b9bc --- /dev/null +++ b/src/assets/cursors/tahoe/ibeamvertical-1__50-50.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/ibeamverticalstroke-1__50-50.svg b/src/assets/cursors/tahoe/ibeamverticalstroke-1__50-50.svg new file mode 100644 index 00000000..fd1b6b0e --- /dev/null +++ b/src/assets/cursors/tahoe/ibeamverticalstroke-1__50-50.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/makealias-1__63-29.svg b/src/assets/cursors/tahoe/makealias-1__63-29.svg new file mode 100644 index 00000000..1e188e75 --- /dev/null +++ b/src/assets/cursors/tahoe/makealias-1__63-29.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/move-1__50-46.svg b/src/assets/cursors/tahoe/move-1__50-46.svg new file mode 100644 index 00000000..623a1428 --- /dev/null +++ b/src/assets/cursors/tahoe/move-1__50-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/notallowed-1__23-0.svg b/src/assets/cursors/tahoe/notallowed-1__23-0.svg new file mode 100644 index 00000000..7ee2ef75 --- /dev/null +++ b/src/assets/cursors/tahoe/notallowed-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/openhand-1__55-57.svg b/src/assets/cursors/tahoe/openhand-1__55-57.svg new file mode 100644 index 00000000..a4b8ff00 --- /dev/null +++ b/src/assets/cursors/tahoe/openhand-1__55-57.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/pointer-1__14-6.svg b/src/assets/cursors/tahoe/pointer-1__14-6.svg new file mode 100644 index 00000000..2acf2f63 --- /dev/null +++ b/src/assets/cursors/tahoe/pointer-1__14-6.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/pointinghand-1__40-10.svg b/src/assets/cursors/tahoe/pointinghand-1__40-10.svg new file mode 100644 index 00000000..5ea2bd86 --- /dev/null +++ b/src/assets/cursors/tahoe/pointinghand-1__40-10.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/proof-1__23-0.svg b/src/assets/cursors/tahoe/proof-1__23-0.svg new file mode 100644 index 00000000..86ac7db9 --- /dev/null +++ b/src/assets/cursors/tahoe/proof-1__23-0.svg @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/resizedown-1__50-36.svg b/src/assets/cursors/tahoe/resizedown-1__50-36.svg new file mode 100644 index 00000000..047c1449 --- /dev/null +++ b/src/assets/cursors/tahoe/resizedown-1__50-36.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeeast-1__50-50.svg b/src/assets/cursors/tahoe/resizeeast-1__50-50.svg new file mode 100644 index 00000000..0f88973d --- /dev/null +++ b/src/assets/cursors/tahoe/resizeeast-1__50-50.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeeastwest-1__50-50.svg b/src/assets/cursors/tahoe/resizeeastwest-1__50-50.svg new file mode 100644 index 00000000..e6ce73f8 --- /dev/null +++ b/src/assets/cursors/tahoe/resizeeastwest-1__50-50.svg @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeleft-1__62-46.svg b/src/assets/cursors/tahoe/resizeleft-1__62-46.svg new file mode 100644 index 00000000..e1294d4f --- /dev/null +++ b/src/assets/cursors/tahoe/resizeleft-1__62-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeleftright-1__50-43.svg b/src/assets/cursors/tahoe/resizeleftright-1__50-43.svg new file mode 100644 index 00000000..d4bfad19 --- /dev/null +++ b/src/assets/cursors/tahoe/resizeleftright-1__50-43.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenorth-1__50-49.svg b/src/assets/cursors/tahoe/resizenorth-1__50-49.svg new file mode 100644 index 00000000..fd495bd8 --- /dev/null +++ b/src/assets/cursors/tahoe/resizenorth-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenortheast-1__50-49.svg b/src/assets/cursors/tahoe/resizenortheast-1__50-49.svg new file mode 100644 index 00000000..fc17ef52 --- /dev/null +++ b/src/assets/cursors/tahoe/resizenortheast-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenortheastsouthwest-1__50-46.svg b/src/assets/cursors/tahoe/resizenortheastsouthwest-1__50-46.svg new file mode 100644 index 00000000..b3cd9883 --- /dev/null +++ b/src/assets/cursors/tahoe/resizenortheastsouthwest-1__50-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenorthsouth-1__50-49.svg b/src/assets/cursors/tahoe/resizenorthsouth-1__50-49.svg new file mode 100644 index 00000000..92332cdd --- /dev/null +++ b/src/assets/cursors/tahoe/resizenorthsouth-1__50-49.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenorthwest-1__50-49.svg b/src/assets/cursors/tahoe/resizenorthwest-1__50-49.svg new file mode 100644 index 00000000..da352ddd --- /dev/null +++ b/src/assets/cursors/tahoe/resizenorthwest-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizenorthwestsoutheast-1__51-46.svg b/src/assets/cursors/tahoe/resizenorthwestsoutheast-1__51-46.svg new file mode 100644 index 00000000..d621a37e --- /dev/null +++ b/src/assets/cursors/tahoe/resizenorthwestsoutheast-1__51-46.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeright-1__38-45.svg b/src/assets/cursors/tahoe/resizeright-1__38-45.svg new file mode 100644 index 00000000..0451c859 --- /dev/null +++ b/src/assets/cursors/tahoe/resizeright-1__38-45.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizesouth-1__50-49.svg b/src/assets/cursors/tahoe/resizesouth-1__50-49.svg new file mode 100644 index 00000000..06d1630b --- /dev/null +++ b/src/assets/cursors/tahoe/resizesouth-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizesoutheast-1__50-49.svg b/src/assets/cursors/tahoe/resizesoutheast-1__50-49.svg new file mode 100644 index 00000000..79aa4ab4 --- /dev/null +++ b/src/assets/cursors/tahoe/resizesoutheast-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizesouthwest-1__50-49.svg b/src/assets/cursors/tahoe/resizesouthwest-1__50-49.svg new file mode 100644 index 00000000..5ddb8780 --- /dev/null +++ b/src/assets/cursors/tahoe/resizesouthwest-1__50-49.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeup-1__50-57.svg b/src/assets/cursors/tahoe/resizeup-1__50-57.svg new file mode 100644 index 00000000..71c4ebc1 --- /dev/null +++ b/src/assets/cursors/tahoe/resizeup-1__50-57.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizeupdown-1__51-48.svg b/src/assets/cursors/tahoe/resizeupdown-1__51-48.svg new file mode 100644 index 00000000..68b44dec --- /dev/null +++ b/src/assets/cursors/tahoe/resizeupdown-1__51-48.svg @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/resizewest-1__50-50.svg b/src/assets/cursors/tahoe/resizewest-1__50-50.svg new file mode 100644 index 00000000..6b3537ad --- /dev/null +++ b/src/assets/cursors/tahoe/resizewest-1__50-50.svg @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/screenshotselection-1__50-50.svg b/src/assets/cursors/tahoe/screenshotselection-1__50-50.svg new file mode 100644 index 00000000..5717500b --- /dev/null +++ b/src/assets/cursors/tahoe/screenshotselection-1__50-50.svg @@ -0,0 +1,92 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/screenshotwindow-1__50-50.svg b/src/assets/cursors/tahoe/screenshotwindow-1__50-50.svg new file mode 100644 index 00000000..25122f5c --- /dev/null +++ b/src/assets/cursors/tahoe/screenshotwindow-1__50-50.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/cursors/tahoe/zoomin-1__42-39.svg b/src/assets/cursors/tahoe/zoomin-1__42-39.svg new file mode 100644 index 00000000..7a026cbb --- /dev/null +++ b/src/assets/cursors/tahoe/zoomin-1__42-39.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/src/assets/cursors/tahoe/zoomout-1__43-39.svg b/src/assets/cursors/tahoe/zoomout-1__43-39.svg new file mode 100644 index 00000000..d220d21f --- /dev/null +++ b/src/assets/cursors/tahoe/zoomout-1__43-39.svg @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/src/components/video-editor/SettingsPanel.tsx b/src/components/video-editor/SettingsPanel.tsx index 0902094c..3fc31a40 100644 --- a/src/components/video-editor/SettingsPanel.tsx +++ b/src/components/video-editor/SettingsPanel.tsx @@ -24,7 +24,6 @@ import { } from "@/lib/wallpapers"; import { type AspectRatio } from "@/utils/aspectRatioUtils"; import minimalCursorUrl from "../../../Minimal Cursor.svg"; -import tahoeCursorUrl from "../../assets/cursors/Cursor=Default.svg"; import { useI18n, useScopedT } from "../../contexts/I18nContext"; import type { AppLocale } from "../../i18n/config"; import { SUPPORTED_LOCALES } from "../../i18n/config"; @@ -77,12 +76,11 @@ import { SPEED_OPTIONS, } from "./types"; import { fromCursorSwaySliderValue, toCursorSwaySliderValue } from "./videoPlayback/cursorSway"; -import { - UPLOADED_CURSOR_SAMPLE_SIZE, - uploadedCursorAssets, -} from "./videoPlayback/uploadedCursorAssets"; +import { cursorSetAssets } from "./videoPlayback/uploadedCursorAssets"; import { getWebcamPositionForPreset, resolveWebcamCorner } from "./webcamOverlay"; +const tahoeCursorUrl = cursorSetAssets.tahoe.arrow.url; + const GRADIENTS = [ "linear-gradient( 111.6deg, rgba(114,167,232,1) 9.4%, rgba(253,129,82,1) 43.9%, rgba(253,129,82,1) 54.8%, rgba(249,202,86,1) 86.3% )", "linear-gradient(120deg, #d4fc79 0%, #96e6a1 100%)", @@ -470,10 +468,11 @@ type WallpaperTile = { }; const BUILTIN_CURSOR_STYLE_OPTIONS: CursorStyleOption[] = [ + { value: "macos", label: "macOS" }, { value: "tahoe", label: "Tahoe" }, + { value: "tahoe-inverted", label: "Tahoe Inverted" }, { value: "dot", label: "Dot" }, { value: "figma", label: "Minimal" }, - { value: "mono", label: "Inverted" }, ]; const CAPTION_LANGUAGE_OPTIONS = [ @@ -644,15 +643,17 @@ function CursorStylePreview({ previewUrls: Partial>; }) { const previewSrc = - style === "tahoe" - ? (previewUrls.tahoe ?? tahoeCursorUrl) - : style === "figma" - ? (previewUrls.figma ?? minimalCursorUrl) - : style === "mono" - ? (previewUrls.mono ?? tahoeCursorUrl) - : previewUrls[style]; + style === "macos" + ? (previewUrls.macos ?? tahoeCursorUrl) + : style === "tahoe" + ? (previewUrls.tahoe ?? tahoeCursorUrl) + : style === "figma" + ? (previewUrls.figma ?? minimalCursorUrl) + : style === "tahoe-inverted" + ? (previewUrls["tahoe-inverted"] ?? tahoeCursorUrl) + : previewUrls[style]; - if (style === "tahoe") { + if (style === "macos" || style === "tahoe") { return ( { try { - const tahoeAsset = uploadedCursorAssets.arrow; - const tahoePreview = tahoeAsset - ? await createTrimmedSvgPreview( - tahoeAsset.url, - UPLOADED_CURSOR_SAMPLE_SIZE, - tahoeAsset.trim, - ) - : tahoeCursorUrl; + const macosPreview = cursorSetAssets.macos.arrow.url; + const tahoePreview = cursorSetAssets.tahoe.arrow.url; const minimalPreview = await createTrimmedSvgPreview(minimalCursorUrl, 512); const invertedPreview = await createInvertedPreview(tahoePreview); if (!cancelled) { setBuiltInCursorPreviewUrls({ + macos: macosPreview, tahoe: tahoePreview, figma: minimalPreview, - mono: invertedPreview, + "tahoe-inverted": invertedPreview, }); } } catch { if (!cancelled) { setBuiltInCursorPreviewUrls({ + macos: tahoeCursorUrl, tahoe: tahoeCursorUrl, figma: minimalCursorUrl, - mono: tahoeCursorUrl, + "tahoe-inverted": tahoeCursorUrl, }); } } diff --git a/src/components/video-editor/projectPersistence.ts b/src/components/video-editor/projectPersistence.ts index a9bf87d0..5ebfa011 100644 --- a/src/components/video-editor/projectPersistence.ts +++ b/src/components/video-editor/projectPersistence.ts @@ -37,6 +37,7 @@ import { DEFAULT_CURSOR_STYLE, DEFAULT_CURSOR_SWAY, DEFAULT_FIGURE_DATA, + DEFAULT_PADDING, DEFAULT_PLAYBACK_SPEED, DEFAULT_WEBCAM_CORNER_RADIUS, DEFAULT_WEBCAM_MARGIN, @@ -62,7 +63,6 @@ import { type WebcamOverlaySettings, type ZoomRegion, type ZoomTransitionEasing, - DEFAULT_PADDING, } from "./types"; export const PROJECT_VERSION = 1; @@ -100,6 +100,8 @@ export interface ProjectEditorState { zoomRegions: ZoomRegion[]; trimRegions: TrimRegion[]; clipRegions: ClipRegion[]; + autoFullTrackClipId?: string | null; + autoFullTrackClipEndMs?: number | null; speedRegions: SpeedRegion[]; annotationRegions: AnnotationRegion[]; audioRegions: AudioRegion[]; @@ -413,6 +415,12 @@ export function normalizeProjectEditor(editor: Partial): Pro }) : []; + const normalizedAutoFullTrackClipId = + typeof editor.autoFullTrackClipId === "string" ? editor.autoFullTrackClipId : null; + const normalizedAutoFullTrackClipEndMs = isFiniteNumber(editor.autoFullTrackClipEndMs) + ? Math.round(editor.autoFullTrackClipEndMs) + : null; + const normalizedSpeedRegions: SpeedRegion[] = Array.isArray(editor.speedRegions) ? editor.speedRegions .filter((region): region is SpeedRegion => @@ -698,6 +706,12 @@ export function normalizeProjectEditor(editor: Partial): Pro ) ? (webcam as Partial<{ zoomScaleEffect: number }>).zoomScaleEffect : null; + const normalizedCursorStyle = + typeof editor.cursorStyle === "string" && editor.cursorStyle.trim().length > 0 + ? editor.cursorStyle === "mono" + ? "tahoe-inverted" + : editor.cursorStyle + : DEFAULT_CURSOR_STYLE; return { wallpaper: typeof editor.wallpaper === "string" ? editor.wallpaper : DEFAULT_WALLPAPER_PATH, @@ -718,10 +732,7 @@ export function normalizeProjectEditor(editor: Partial): Pro ), showCursor: typeof editor.showCursor === "boolean" ? editor.showCursor : true, loopCursor: typeof editor.loopCursor === "boolean" ? editor.loopCursor : false, - cursorStyle: - typeof editor.cursorStyle === "string" && editor.cursorStyle.trim().length > 0 - ? editor.cursorStyle - : DEFAULT_CURSOR_STYLE, + cursorStyle: normalizedCursorStyle, cursorSize: isFiniteNumber(editor.cursorSize) ? clamp(editor.cursorSize, 0.5, 10) : DEFAULT_CURSOR_SIZE, @@ -786,6 +797,8 @@ export function normalizeProjectEditor(editor: Partial): Pro zoomRegions: normalizedZoomRegions, trimRegions: normalizedTrimRegions, clipRegions: normalizedClipRegions, + autoFullTrackClipId: normalizedAutoFullTrackClipId, + autoFullTrackClipEndMs: normalizedAutoFullTrackClipEndMs, speedRegions: normalizedSpeedRegions, annotationRegions: normalizedAnnotationRegions, audioRegions: normalizedAudioRegions, @@ -892,9 +905,7 @@ export function createProjectData( ): EditorProjectData { return { version: PROJECT_VERSION, - ...(typeof projectId === "string" && projectId.trim().length > 0 - ? { projectId } - : {}), + ...(typeof projectId === "string" && projectId.trim().length > 0 ? { projectId } : {}), videoPath, editor, }; diff --git a/src/components/video-editor/types.ts b/src/components/video-editor/types.ts index 170d48f3..69cde9ad 100644 --- a/src/components/video-editor/types.ts +++ b/src/components/video-editor/types.ts @@ -50,7 +50,7 @@ export interface CursorVisualSettings { style: CursorStyle; } -export type CursorStyle = "tahoe" | "dot" | "figma" | "mono" | (string & {}); // extension-contributed cursor styles +export type CursorStyle = "macos" | "tahoe" | "tahoe-inverted" | "dot" | "figma" | (string & {}); // extension-contributed cursor styles export const DEFAULT_CURSOR_STYLE: CursorStyle = "tahoe"; export type EditorEffectSection = diff --git a/src/components/video-editor/videoPlayback/cursorRenderer.ts b/src/components/video-editor/videoPlayback/cursorRenderer.ts index 5f84799c..13dae641 100644 --- a/src/components/video-editor/videoPlayback/cursorRenderer.ts +++ b/src/components/video-editor/videoPlayback/cursorRenderer.ts @@ -17,10 +17,10 @@ import { resetSpringState, stepSpringValue, } from "./motionSmoothing"; -import { UPLOADED_CURSOR_SAMPLE_SIZE, uploadedCursorAssets } from "./uploadedCursorAssets"; +import { cursorSetAssets } from "./uploadedCursorAssets"; type CursorAssetKey = NonNullable; -type StatefulCursorStyle = Extract; +type StatefulCursorStyle = Extract; type SingleCursorStyle = Extract; type CursorPackStyle = Exclude; type CursorPackVariant = "default" | "pointer"; @@ -95,12 +95,21 @@ const CURSOR_SHADOW_OFFSET_X = 0; const CURSOR_SHADOW_OFFSET_Y = 2; const CURSOR_SHADOW_BLUR = 3; const CURSOR_SHADOW_PADDING = 12; +const MACOS_POINTER_RAW_HEIGHT = 746; +const TAHOE_POINTER_RAW_HEIGHT = 958; +const CURSOR_STYLE_SIZE_MULTIPLIERS: Record = { + macos: TAHOE_POINTER_RAW_HEIGHT / MACOS_POINTER_RAW_HEIGHT, + tahoe: 1, + "tahoe-inverted": 1, +}; let cursorAssetsPromise: Promise | null = null; let cursorPackAssetsPromise: Promise | null = null; let loadedCursorPackSourcesSignature = ""; let loadedCursorAssets: Partial> = {}; -let loadedInvertedCursorAssets: Partial> = {}; +let loadedCursorSetAssets: Partial< + Record>> +> = {}; let loadedCursorStyleAssets: Partial> = {}; let loadedCursorPackAssets: Partial> = {}; const warnedMissingCursorPackStyles = new Set(); @@ -147,13 +156,17 @@ function buildCursorPackSourcesSignature(sources: Record { - const img = await loadImage(url); - - // Draw at full sample size - const srcCanvas = document.createElement("canvas"); - srcCanvas.width = sampleSize; - srcCanvas.height = sampleSize; - const srcCtx = srcCanvas.getContext("2d")!; - srcCtx.drawImage(img, 0, 0, sampleSize, sampleSize); - - // Crop to trim bounds - const dstCanvas = document.createElement("canvas"); - dstCanvas.width = trimWidth; - dstCanvas.height = trimHeight; - const dstCtx = dstCanvas.getContext("2d")!; - dstCtx.drawImage(srcCanvas, trimX, trimY, trimWidth, trimHeight, 0, 0, trimWidth, trimHeight); - - return { - dataUrl: dstCanvas.toDataURL("image/png"), - width: dstCanvas.width, - height: dstCanvas.height, - }; -} - function getCursorAsset(key: CursorAssetKey): LoadedCursorAsset { const asset = loadedCursorAssets[key]; if (!asset) { @@ -438,7 +400,7 @@ function getCursorPackStyleAsset(style: CursorPackStyle, key: CursorAssetKey) { } function getStatefulCursorAsset(style: StatefulCursorStyle, key: CursorAssetKey) { - const assetMap = style === "mono" ? loadedInvertedCursorAssets : loadedCursorAssets; + const assetMap = loadedCursorSetAssets[style] ?? loadedCursorAssets; const asset = assetMap[key] ?? assetMap.arrow; if (!asset) { throw new Error(`Missing ${style} cursor asset for ${key}`); @@ -485,112 +447,69 @@ async function ensureCursorPackAssetsLoaded() { export async function preloadCursorAssets() { if (!cursorAssetsPromise) { cursorAssetsPromise = (async () => { - const isLinux = typeof navigator !== "undefined" && /linux/i.test(navigator.platform); - let systemCursors: Record = {}; - - try { - const result = await window.electronAPI.getSystemCursorAssets(); - if (result.success && result.cursors) { - systemCursors = result.cursors; - } - } catch (error) { - console.warn("[CursorRenderer] Failed to fetch system cursor assets:", error); - } - - const entries = await Promise.all( - SUPPORTED_CURSOR_KEYS.map(async (key) => { - const systemAsset = systemCursors[key]; - const uploadedAsset = uploadedCursorAssets[key]; - const assetUrl = isLinux - ? uploadedAsset?.url - : (uploadedAsset?.url ?? systemAsset?.dataUrl); - - if (!assetUrl) { - console.warn(`[CursorRenderer] No cursor image for: ${key}`); - return null; - } - - try { - let finalUrl: string; - let width: number; - let height: number; - let normalizedAnchor: { x: number; y: number }; - - if (uploadedAsset) { - const { trim } = uploadedAsset; - const rasterized = await rasterizeAndCropSvg( - assetUrl, - UPLOADED_CURSOR_SAMPLE_SIZE, - trim.x, - trim.y, - trim.width, - trim.height, - ); - finalUrl = rasterized.dataUrl; - width = rasterized.width; - height = rasterized.height; - normalizedAnchor = { - x: clamp( - (uploadedAsset.fallbackAnchor.x * trim.width) / width, - 0, - 1, - ), - y: clamp( - (uploadedAsset.fallbackAnchor.y * trim.height) / height, - 0, - 1, - ), - }; - } else { - finalUrl = assetUrl; - const img = await loadImage(finalUrl); - width = img.naturalWidth; - height = img.naturalHeight; - normalizedAnchor = getNormalizedAnchor(systemAsset, { - x: 0, - y: 0, - }); + async function loadCursorSet( + style: keyof typeof cursorSetAssets, + ): Promise>> { + const entries = await Promise.all( + SUPPORTED_CURSOR_KEYS.map(async (key) => { + const sourceAsset = cursorSetAssets[style][key]; + if (!sourceAsset?.url) { + console.warn(`[CursorRenderer] No cursor image for: ${style}/${key}`); + return null; } - await Assets.load(finalUrl); - const image = await loadImage(finalUrl); - const texture = Texture.from(finalUrl); + try { + await Assets.load(sourceAsset.url); + const image = await loadImage(sourceAsset.url); + const texture = Texture.from(sourceAsset.url); - return [ - key, - { - texture, - image, - aspectRatio: height > 0 ? width / height : 1, - anchorX: normalizedAnchor.x, - anchorY: normalizedAnchor.y, - } satisfies LoadedCursorAsset, - ] as const; - } catch (error) { - console.warn( - `[CursorRenderer] Failed to load cursor image for: ${key}`, - error, - ); - return null; - } - }), - ); + return [ + key, + { + texture, + image, + aspectRatio: + image.naturalHeight > 0 + ? image.naturalWidth / image.naturalHeight + : 1, + anchorX: clamp(sourceAsset.fallbackAnchor.x, 0, 1), + anchorY: clamp(sourceAsset.fallbackAnchor.y, 0, 1), + } satisfies LoadedCursorAsset, + ] as const; + } catch (error) { + console.warn( + `[CursorRenderer] Failed to load cursor image for: ${style}/${key}`, + error, + ); + return null; + } + }), + ); - loadedCursorAssets = Object.fromEntries( - entries.filter(Boolean).map((entry) => entry!), - ) as Partial>; + return Object.fromEntries( + entries.filter(Boolean).map((entry) => entry!), + ) as Partial>; + } + + const [macosAssets, tahoeAssets] = await Promise.all([ + loadCursorSet("macos"), + loadCursorSet("tahoe"), + ]); const invertedEntries = await Promise.all( - ( - Object.entries(loadedCursorAssets) as Array<[CursorAssetKey, LoadedCursorAsset]> - ).map( + (Object.entries(tahoeAssets) as Array<[CursorAssetKey, LoadedCursorAsset]>).map( async ([key, asset]) => [key, await createInvertedCursorAsset(asset)] as const, ), ); - loadedInvertedCursorAssets = Object.fromEntries(invertedEntries) as Partial< - Record - >; + loadedCursorSetAssets = { + macos: macosAssets, + tahoe: tahoeAssets, + "tahoe-inverted": Object.fromEntries(invertedEntries) as Partial< + Record + >, + }; + loadedCursorAssets = tahoeAssets; const customStyleEntries = await Promise.all( (["dot", "figma"] as const).map( @@ -1084,7 +1003,7 @@ export class PixiCursorOverlay { 0.72, 1 - Math.sin(clickBounceProgress * Math.PI) * (0.08 * this.config.clickBounce), ); - const scaledH = h; + const scaledH = h * getCursorStyleSizeMultiplier(this.config.style); const swayRotation = this.updateCursorSway(px, py, timeMs, shouldFreezeCursorMotion); this.clickRingGraphics.clear(); @@ -1307,7 +1226,7 @@ export function drawCursorOnCanvas( ctx.filter = CURSOR_SVG_DROP_SHADOW_FILTER; } - const drawHeight = h * bounceScale; + const drawHeight = h * bounceScale * getCursorStyleSizeMultiplier(config.style); const drawWidth = drawHeight * asset.aspectRatio; const hotspotX = asset.anchorX * drawWidth; const hotspotY = asset.anchorY * drawHeight; diff --git a/src/components/video-editor/videoPlayback/uploadedCursorAssets.ts b/src/components/video-editor/videoPlayback/uploadedCursorAssets.ts index 4a0cd29b..53256e5a 100644 --- a/src/components/video-editor/videoPlayback/uploadedCursorAssets.ts +++ b/src/components/video-editor/videoPlayback/uploadedCursorAssets.ts @@ -1,70 +1,70 @@ -import crosshairUrl from "../../../assets/cursors/Cursor=Cross.svg"; -import arrowUrl from "../../../assets/cursors/Cursor=Default.svg"; -import closedHandUrl from "../../../assets/cursors/Cursor=Hand-(Grabbing).svg"; -import openHandUrl from "../../../assets/cursors/Cursor=Hand-(Open).svg"; -import pointerUrl from "../../../assets/cursors/Cursor=Hand-(Pointing).svg"; -import resizeNsUrl from "../../../assets/cursors/Cursor=Resize-North-South.svg"; -import resizeEwUrl from "../../../assets/cursors/Cursor=Resize-West-East.svg"; -import textUrl from "../../../assets/cursors/Cursor=Text-Cursor.svg"; -import type { CursorTelemetryPoint } from "../types"; +import macosClosedHandUrl from "../../../assets/cursors/macos/closedhand-1__50-50.svg"; +import macosCrosshairUrl from "../../../assets/cursors/macos/crosshair-1__50-50.svg"; +import macosTextUrl from "../../../assets/cursors/macos/ibeam-1__50-50.svg"; +import macosNotAllowedUrl from "../../../assets/cursors/macos/notallowed-1__23-0.svg"; +import macosOpenHandUrl from "../../../assets/cursors/macos/openhand-1__50-50.svg"; +import macosArrowUrl from "../../../assets/cursors/macos/pointer-1__34-24.svg"; +import macosPointerUrl from "../../../assets/cursors/macos/pointinghand-1__39-26.svg"; +import macosResizeEwUrl from "../../../assets/cursors/macos/resizeeastwest-1__50-50.svg"; +import macosResizeNsUrl from "../../../assets/cursors/macos/resizenorthsouth-1__50-50.svg"; +import tahoeClosedHandUrl from "../../../assets/cursors/tahoe/closedhand-1__50-46.svg"; +import tahoeCrosshairUrl from "../../../assets/cursors/tahoe/crosshair-1__50-50.svg"; +import tahoeTextUrl from "../../../assets/cursors/tahoe/ibeam-1__50-44.svg"; +import tahoeNotAllowedUrl from "../../../assets/cursors/tahoe/notallowed-1__23-0.svg"; +import tahoeOpenHandUrl from "../../../assets/cursors/tahoe/openhand-1__55-57.svg"; +import tahoeArrowUrl from "../../../assets/cursors/tahoe/pointer-1__14-6.svg"; +import tahoePointerUrl from "../../../assets/cursors/tahoe/pointinghand-1__40-10.svg"; +import tahoeResizeEwUrl from "../../../assets/cursors/tahoe/resizeeastwest-1__50-50.svg"; +import tahoeResizeNsUrl from "../../../assets/cursors/tahoe/resizenorthsouth-1__50-49.svg"; +import type { CursorStyle, CursorTelemetryPoint } from "../types"; type CursorAssetKey = NonNullable; +type CursorSetStyle = Extract; export type UploadedCursorAsset = { url: string; - trim: { - x: number; - y: number; - width: number; - height: number; - }; fallbackAnchor: { x: number; y: number; }; }; -export const UPLOADED_CURSOR_SAMPLE_SIZE = 1024; +function asset(url: string, hotspotX: number, hotspotY: number): UploadedCursorAsset { + return { + url, + fallbackAnchor: { + x: hotspotX / 100, + y: hotspotY / 100, + }, + }; +} -export const uploadedCursorAssets: Partial> = { - arrow: { - url: arrowUrl, - trim: { x: 480, y: 435, width: 333, height: 553 }, - fallbackAnchor: { x: 0.18, y: 0.1 }, +export const cursorSetAssets: Record< + Exclude, + Record +> = { + macos: { + arrow: asset(macosArrowUrl, 34, 24), + text: asset(macosTextUrl, 50, 50), + pointer: asset(macosPointerUrl, 39, 26), + crosshair: asset(macosCrosshairUrl, 50, 50), + "open-hand": asset(macosOpenHandUrl, 50, 50), + "closed-hand": asset(macosClosedHandUrl, 50, 50), + "resize-ew": asset(macosResizeEwUrl, 50, 50), + "resize-ns": asset(macosResizeNsUrl, 50, 50), + "not-allowed": asset(macosNotAllowedUrl, 23, 0), }, - text: { - url: textUrl, - trim: { x: 404, y: 192, width: 247, height: 596 }, - fallbackAnchor: { x: 0.5, y: 0.5 }, - }, - pointer: { - url: pointerUrl, - trim: { x: 352, y: 441, width: 466, height: 583 }, - fallbackAnchor: { x: 0.37, y: 0.08 }, - }, - crosshair: { - url: crosshairUrl, - trim: { x: 288, y: 288, width: 480, height: 480 }, - fallbackAnchor: { x: 0.5, y: 0.5 }, - }, - "open-hand": { - url: openHandUrl, - trim: { x: 288, y: 188, width: 512, height: 580 }, - fallbackAnchor: { x: 0.5, y: 0.28 }, - }, - "closed-hand": { - url: closedHandUrl, - trim: { x: 344, y: 365, width: 432, height: 403 }, - fallbackAnchor: { x: 0.5, y: 0.28 }, - }, - "resize-ew": { - url: resizeEwUrl, - trim: { x: 187, y: 384, width: 669, height: 270 }, - fallbackAnchor: { x: 0.5, y: 0.5 }, - }, - "resize-ns": { - url: resizeNsUrl, - trim: { x: 376, y: 178, width: 271, height: 669 }, - fallbackAnchor: { x: 0.5, y: 0.5 }, + tahoe: { + arrow: asset(tahoeArrowUrl, 14, 6), + text: asset(tahoeTextUrl, 50, 44), + pointer: asset(tahoePointerUrl, 40, 10), + crosshair: asset(tahoeCrosshairUrl, 50, 50), + "open-hand": asset(tahoeOpenHandUrl, 55, 57), + "closed-hand": asset(tahoeClosedHandUrl, 50, 46), + "resize-ew": asset(tahoeResizeEwUrl, 50, 50), + "resize-ns": asset(tahoeResizeNsUrl, 50, 49), + "not-allowed": asset(tahoeNotAllowedUrl, 23, 0), }, }; + +export const uploadedCursorAssets = cursorSetAssets.tahoe; diff --git a/src/i18n/locales/en/settings.json b/src/i18n/locales/en/settings.json index c3915077..c788b132 100644 --- a/src/i18n/locales/en/settings.json +++ b/src/i18n/locales/en/settings.json @@ -29,10 +29,11 @@ "loopCursor": "Loop cursor", "cursorStyle": "Cursor Style", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe Inverted", "dot": "Dot", "figma": "Minimal", - "mono": "Inverted", "lavender": "Lavender", "parched": "Parched", "chooper": "Chooper", @@ -91,9 +92,6 @@ "radius": "Radius", "roundness": "Roundness", "padding": "Padding", - "paddingAdvanced": "Advanced", - "paddingAdvancedShow": "Show advanced padding controls", - "paddingAdvancedHide": "Hide advanced padding controls", "paddingLinked": "Linked (Uniform)", "paddingUnlinked": "Unlinked (Asymmetrical)", "paddingTop": "Top", diff --git a/src/i18n/locales/es/settings.json b/src/i18n/locales/es/settings.json index 43c24897..1393bf05 100644 --- a/src/i18n/locales/es/settings.json +++ b/src/i18n/locales/es/settings.json @@ -29,10 +29,11 @@ "loopCursor": "Cursor en bucle", "cursorStyle": "Estilo del cursor", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe invertido", "dot": "Punto", "figma": "Minimal", - "mono": "Invertido", "lavender": "Lavender", "parched": "Parched", "chooper": "Chooper", @@ -91,15 +92,6 @@ "radius": "Radio", "roundness": "Redondez", "padding": "Relleno", - "paddingAdvanced": "Avanzado", - "paddingAdvancedShow": "Mostrar controles avanzados de relleno", - "paddingAdvancedHide": "Ocultar controles avanzados de relleno", - "paddingLinked": "Vinculado (uniforme)", - "paddingUnlinked": "No vinculado (asimétrico)", - "paddingTop": "Superior", - "paddingBottom": "Inferior", - "paddingLeft": "Izquierda", - "paddingRight": "Derecha", "removeBackground": "Quitar fondo" }, "sections": { diff --git a/src/i18n/locales/fr/settings.json b/src/i18n/locales/fr/settings.json index e8d24845..a1a12134 100644 --- a/src/i18n/locales/fr/settings.json +++ b/src/i18n/locales/fr/settings.json @@ -29,10 +29,11 @@ "loopCursor": "Boucler le curseur", "cursorStyle": "Style du curseur", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe inversé", "dot": "Point", "figma": "Minimal", - "mono": "Inversé", "lavender": "Lavande", "parched": "Parched", "chooper": "Chooper", @@ -91,15 +92,6 @@ "radius": "Rayon", "roundness": "Arrondi", "padding": "Marge intérieure", - "paddingAdvanced": "Avancé", - "paddingAdvancedShow": "Afficher les contrôles avancés de marge intérieure", - "paddingAdvancedHide": "Masquer les contrôles avancés de marge intérieure", - "paddingLinked": "Lié (uniforme)", - "paddingUnlinked": "Non lié (asymétrique)", - "paddingTop": "Haut", - "paddingBottom": "Bas", - "paddingLeft": "Gauche", - "paddingRight": "Droite", "removeBackground": "Supprimer l’arrière-plan" }, "sections": { diff --git a/src/i18n/locales/ko/settings.json b/src/i18n/locales/ko/settings.json index 1bb5841e..b0657d96 100644 --- a/src/i18n/locales/ko/settings.json +++ b/src/i18n/locales/ko/settings.json @@ -29,10 +29,11 @@ "loopCursor": "커서 반복", "cursorStyle": "커서 스타일", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe Inverted", "dot": "Dot", "figma": "Minimal", - "mono": "Inverted", "lavender": "Lavender", "parched": "Parched", "chooper": "Chooper", @@ -91,15 +92,6 @@ "radius": "반경", "roundness": "둥글기", "padding": "여백", - "paddingAdvanced": "고급", - "paddingAdvancedShow": "고급 여백 컨트롤 표시", - "paddingAdvancedHide": "고급 여백 컨트롤 숨기기", - "paddingLinked": "연결됨 (균일)", - "paddingUnlinked": "연결 해제됨 (비대칭)", - "paddingTop": "위", - "paddingBottom": "아래", - "paddingLeft": "왼쪽", - "paddingRight": "오른쪽", "removeBackground": "배경 제거" }, "sections": { diff --git a/src/i18n/locales/nl/settings.json b/src/i18n/locales/nl/settings.json index dfd3c615..9ce12a97 100644 --- a/src/i18n/locales/nl/settings.json +++ b/src/i18n/locales/nl/settings.json @@ -29,10 +29,11 @@ "loopCursor": "Cursor herhalen", "cursorStyle": "Cursorstijl", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe omgekeerd", "dot": "Punt", "figma": "Minimaal", - "mono": "Omgekeerd", "lavender": "Lavendel", "parched": "Parched", "chooper": "Chooper", @@ -91,15 +92,6 @@ "radius": "Straal", "roundness": "Afronding", "padding": "Opvulling", - "paddingAdvanced": "Geavanceerd", - "paddingAdvancedShow": "Geavanceerde opvulcontroles tonen", - "paddingAdvancedHide": "Geavanceerde opvulcontroles verbergen", - "paddingLinked": "Gekoppeld (uniform)", - "paddingUnlinked": "Ontkoppeld (asymmetrisch)", - "paddingTop": "Boven", - "paddingBottom": "Onder", - "paddingLeft": "Links", - "paddingRight": "Rechts", "removeBackground": "Achtergrond verwijderen" }, "sections": { diff --git a/src/i18n/locales/zh-CN/settings.json b/src/i18n/locales/zh-CN/settings.json index b7ad52e3..f52d86f5 100644 --- a/src/i18n/locales/zh-CN/settings.json +++ b/src/i18n/locales/zh-CN/settings.json @@ -29,10 +29,11 @@ "loopCursor": "循环光标", "cursorStyle": "光标样式", "cursorStyleOptions": { + "macos": "macOS", "tahoe": "Tahoe", + "tahoe-inverted": "Tahoe 反相", "dot": "圆点", "figma": "Minimal", - "mono": "反相", "lavender": "Lavender", "parched": "Parched", "chooper": "Chooper", @@ -91,15 +92,6 @@ "radius": "圆角半径", "roundness": "圆角", "padding": "内边距", - "paddingAdvanced": "高级", - "paddingAdvancedShow": "显示高级内边距控件", - "paddingAdvancedHide": "隐藏高级内边距控件", - "paddingLinked": "联动(统一)", - "paddingUnlinked": "取消联动(非对称)", - "paddingTop": "上", - "paddingBottom": "下", - "paddingLeft": "左", - "paddingRight": "右", "removeBackground": "移除背景" }, "sections": { diff --git a/vite.config.ts b/vite.config.ts index 4e584028..0c81fbda 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -13,8 +13,16 @@ export default defineConfig({ entry: "electron/main.ts", vite: { build: { + lib: { + entry: "electron/main.ts", + formats: ["cjs"], + }, rollupOptions: { external: ["ffmpeg-static", "uiohook-napi"], + output: { + entryFileNames: "[name].cjs", + chunkFileNames: "[name].cjs", + }, }, }, },