diff --git a/.gitignore b/.gitignore index bc75a52a..f3a14846 100644 --- a/.gitignore +++ b/.gitignore @@ -3,32 +3,32 @@ logs *.log npm-debug.log* yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -dist -dist-electron -dist-ssr -*.local - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -.idea -.DS_Store -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? -release/** -*.kiro/ -# npx electron-builder --mac --win -.tmp/ -.history/ -*.tsbuildinfo +yarn-error.log* +pnpm-debug.log* +lerna-debug.log* + +node_modules +dist +dist-electron +dist-ssr +*.local + +# Editor directories and files +.vscode/* +!.vscode/extensions.json +.idea +.DS_Store +*.suo +*.ntvs* +*.njsproj +*.sln +*.sw? +release/** +*.kiro/ +# npx electron-builder --mac --win +.tmp/ +.history/ +*.tsbuildinfo vite.config.js vite.config.d.ts @@ -36,6 +36,14 @@ vite.config.d.ts electron/native/wgc-capture/build/ electron/native/cursor-monitor/build/ +# Local build tools and caches +.cache/ +.cmake_ext/ +ebcache/ +docs/ +recordly_dev/ +.agent/ + # Local debug helpers tmp-*.ps1 .tmp-*.ps1 diff --git a/electron/native/bin/win32-x64/cursor-monitor.exe b/electron/native/bin/win32-x64/cursor-monitor.exe index 68f2e54f..97d7a92d 100644 Binary files a/electron/native/bin/win32-x64/cursor-monitor.exe and b/electron/native/bin/win32-x64/cursor-monitor.exe differ diff --git a/electron/native/bin/win32-x64/helpers-manifest.json b/electron/native/bin/win32-x64/helpers-manifest.json index 8713d1c3..ed41409c 100644 --- a/electron/native/bin/win32-x64/helpers-manifest.json +++ b/electron/native/bin/win32-x64/helpers-manifest.json @@ -5,17 +5,17 @@ "helpers": { "wgc-capture": { "binaryName": "wgc-capture.exe", - "binarySha256": "5f364b07b016c597288f90a9b61c581e6559d6d32b79ffadceb37859bbea8dd2", + "binarySha256": "c01e731bb255096ba8add9bf293d82545af29d82848d456545c2b182a17717fc", "sourceDir": "electron/native/wgc-capture", "sourceFingerprint": "9e9bce082266ca5968cf5f0b535b469d47c4ec3a775a93726171c0dfdbcdaa44", - "updatedAt": "2026-03-28T05:48:46.587Z" + "updatedAt": "2026-03-29T02:18:57.450Z" }, "cursor-monitor": { "binaryName": "cursor-monitor.exe", - "binarySha256": "916ed064c12a3b861d7721df8b9209d10ec0fdb8078564a2ba3ea8cf4f4354c4", + "binarySha256": "d81b6358021ee5b27e601c14b9cc5edd0689647abd507e3dcd8ffe12f914c50d", "sourceDir": "electron/native/cursor-monitor", "sourceFingerprint": "6ad1b8b50bb336f2a48937b06f5ec56d90b6ab4a3e56a4bca278cf67a5d3e52e", - "updatedAt": "2026-03-28T05:17:17.697Z" + "updatedAt": "2026-03-29T02:19:01.284Z" } } } diff --git a/electron/native/bin/win32-x64/wgc-capture.exe b/electron/native/bin/win32-x64/wgc-capture.exe index ac92a80b..b0187cfa 100644 Binary files a/electron/native/bin/win32-x64/wgc-capture.exe and b/electron/native/bin/win32-x64/wgc-capture.exe differ diff --git a/package-lock.json b/package-lock.json index 2c283f39..9f0a9cd3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "recordly", - "version": "1.1.6", + "version": "1.1.7", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "recordly", - "version": "1.1.6", + "version": "1.1.7", "hasInstallScript": true, "dependencies": { "capturekit": "^1.0.13", diff --git a/src/components/video-editor/AnnotationOverlay.tsx b/src/components/video-editor/AnnotationOverlay.tsx index 3260a542..31b2e043 100644 --- a/src/components/video-editor/AnnotationOverlay.tsx +++ b/src/components/video-editor/AnnotationOverlay.tsx @@ -50,8 +50,8 @@ export function AnnotationOverlay({
@@ -111,6 +111,17 @@ export function AnnotationOverlay({
); + case 'blur': + return ( +
+ ); + default: return null; } @@ -127,7 +138,7 @@ export function AnnotationOverlay({ const xPercent = (d.x / containerWidth) * 100; const yPercent = (d.y / containerHeight) * 100; onPositionChange(annotation.id, { x: xPercent, y: yPercent }); - + // Reset dragging flag after a short delay to prevent click event setTimeout(() => { isDraggingRef.current = false; diff --git a/src/components/video-editor/AnnotationSettingsPanel.tsx b/src/components/video-editor/AnnotationSettingsPanel.tsx index 2cddf970..e6470ebf 100644 --- a/src/components/video-editor/AnnotationSettingsPanel.tsx +++ b/src/components/video-editor/AnnotationSettingsPanel.tsx @@ -21,6 +21,7 @@ interface AnnotationSettingsPanelProps { onTypeChange: (type: AnnotationType) => void; onStyleChange: (style: Partial) => void; onFigureDataChange?: (figureData: FigureData) => void; + onBlurIntensityChange?: (intensity: number) => void; onDelete: () => void; } @@ -43,6 +44,7 @@ export function AnnotationSettingsPanel({ onTypeChange, onStyleChange, onFigureDataChange, + onBlurIntensityChange, onDelete, }: AnnotationSettingsPanelProps) { const t = useScopedT('editor'); @@ -128,21 +130,29 @@ export function AnnotationSettingsPanel({ {/* Type Selector */} onTypeChange(value as AnnotationType)} className="mb-6"> - - - + + + {t('annotations.text')} - - + + {t('annotations.image')} - - + + {t('annotations.arrow')} + + + + + + + {t('annotations.blur', 'Blur')} + {/* Text Content */} @@ -499,6 +509,31 @@ export function AnnotationSettingsPanel({
+ +
+
+ + + {annotation.blurIntensity ?? 12}px + +
+ { + onBlurIntensityChange?.(value); + }} + min={1} + max={100} + step={1} + className="w-full" + /> +

+ {t('annotations.blurDescription', 'Obscure sensitive information by blurring the underlying video content.')} +

+
+