diff --git a/.devcontainer/setup-user.sh b/.devcontainer/setup-user.sh old mode 100755 new mode 100644 diff --git a/.husky/pre-commit b/.husky/pre-commit old mode 100755 new mode 100644 diff --git a/.yarn/releases/yarn-4.12.0.cjs b/.yarn/releases/yarn-4.12.0.cjs old mode 100755 new mode 100644 diff --git a/blocksuite/integration-test/src/__tests__/edgeless/__screenshots__/layer.spec.ts/if-the-topmost-layer-is-canvas-layer--the-length-of-canvasLayers-array-should-equal-to-the-counts-of-canvas-layers-1.png b/blocksuite/integration-test/src/__tests__/edgeless/__screenshots__/layer.spec.ts/if-the-topmost-layer-is-canvas-layer--the-length-of-canvasLayers-array-should-equal-to-the-counts-of-canvas-layers-1.png deleted file mode 100644 index 753a8012c513b..0000000000000 Binary files a/blocksuite/integration-test/src/__tests__/edgeless/__screenshots__/layer.spec.ts/if-the-topmost-layer-is-canvas-layer--the-length-of-canvasLayers-array-should-equal-to-the-counts-of-canvas-layers-1.png and /dev/null differ diff --git a/blocksuite/playground/apps/starter/data/snapshots/affine-default.zip b/blocksuite/playground/apps/starter/data/snapshots/affine-default.zip deleted file mode 100644 index 839cfc9b047fd..0000000000000 Binary files a/blocksuite/playground/apps/starter/data/snapshots/affine-default.zip and /dev/null differ diff --git a/packages/common/y-octo/node/scripts/run-test.mts b/packages/common/y-octo/node/scripts/run-test.mts old mode 100755 new mode 100644 diff --git a/packages/frontend/apps/android/App/gradlew b/packages/frontend/apps/android/App/gradlew old mode 100755 new mode 100644 diff --git a/packages/frontend/apps/electron-renderer/src/app/app.tsx b/packages/frontend/apps/electron-renderer/src/app/app.tsx index 25059deb086c1..8bea04c6fb9d6 100644 --- a/packages/frontend/apps/electron-renderer/src/app/app.tsx +++ b/packages/frontend/apps/electron-renderer/src/app/app.tsx @@ -11,6 +11,7 @@ import { RouterProvider } from 'react-router-dom'; import { setupEffects } from './effects'; import { DesktopLanguageSync } from './language-sync'; +import { DesktopPowerStateSync } from './power-state-sync'; import { DesktopThemeSync } from './theme-sync'; const { frameworkProvider } = setupEffects(); @@ -48,6 +49,7 @@ export function App() { + } router={router} diff --git a/packages/frontend/apps/electron-renderer/src/app/global.css b/packages/frontend/apps/electron-renderer/src/app/global.css index a338d5c565556..2569316176399 100644 --- a/packages/frontend/apps/electron-renderer/src/app/global.css +++ b/packages/frontend/apps/electron-renderer/src/app/global.css @@ -23,3 +23,13 @@ html[data-active='true']:has([data-translucent='true']) { opacity: 1; transition: opacity 0.2s; } + +/* Disable animations when on battery power */ +html.reduce-motion *, +html.reduce-motion *::before, +html.reduce-motion *::after { + animation-duration: 0.01ms !important; + animation-iteration-count: 1 !important; + transition-duration: 0.01ms !important; + scroll-behavior: auto !important; +} diff --git a/packages/frontend/apps/electron-renderer/src/app/hooks/use-power-state.ts b/packages/frontend/apps/electron-renderer/src/app/hooks/use-power-state.ts new file mode 100644 index 0000000000000..0f87d00645937 --- /dev/null +++ b/packages/frontend/apps/electron-renderer/src/app/hooks/use-power-state.ts @@ -0,0 +1,11 @@ +import { useEffect, useState } from 'react'; + +export function usePowerState() { + const [onBattery, setOnBattery] = useState(false); + + useEffect(() => { + window.__apis.getPowerState().then(setOnBattery); + }, []); + + return onBattery; +} diff --git a/packages/frontend/apps/electron-renderer/src/app/power-state-sync.ts b/packages/frontend/apps/electron-renderer/src/app/power-state-sync.ts new file mode 100644 index 0000000000000..f6108b67a50fb --- /dev/null +++ b/packages/frontend/apps/electron-renderer/src/app/power-state-sync.ts @@ -0,0 +1,38 @@ +import { useEffect, useState } from 'react'; + +import { usePowerState } from './hooks/use-power-state'; + +export const DesktopPowerStateSync = () => { + const onBattery = usePowerState(); + const [prefersReducedMotion, setPrefersReducedMotion] = useState( + () => window.matchMedia('(prefers-reduced-motion: reduce)').matches + ); + + useEffect(() => { + const mediaQuery = window.matchMedia('(prefers-reduced-motion: reduce)'); + const handleChange = (e: MediaQueryListEvent) => { + setPrefersReducedMotion(e.matches); + }; + + // Modern browsers + if (mediaQuery.addEventListener) { + mediaQuery.addEventListener('change', handleChange); + return () => mediaQuery.removeEventListener('change', handleChange); + } + // Fallback for older browsers + else if (mediaQuery.addListener) { + mediaQuery.addListener(handleChange); + return () => mediaQuery.removeListener(handleChange); + } + }, []); + + useEffect(() => { + const enableAnimations = !onBattery && !prefersReducedMotion; + document.documentElement.classList.toggle( + 'reduce-motion', + !enableAnimations + ); + }, [onBattery, prefersReducedMotion]); + + return null; +}; diff --git a/packages/frontend/apps/electron/scripts/generate-assets.ts b/packages/frontend/apps/electron/scripts/generate-assets.ts old mode 100755 new mode 100644 diff --git a/packages/frontend/apps/electron/src/main/index.ts b/packages/frontend/apps/electron/src/main/index.ts index a6992bdf44504..3f361e9ba3bdc 100644 --- a/packages/frontend/apps/electron/src/main/index.ts +++ b/packages/frontend/apps/electron/src/main/index.ts @@ -4,7 +4,7 @@ import path from 'node:path'; import * as Sentry from '@sentry/electron/main'; import { IPCMode } from '@sentry/electron/main'; -import { app, protocol } from 'electron'; +import { app, ipcMain, powerMonitor, protocol } from 'electron'; import { createApplicationMenu } from './application-menu/create'; import { buildType, isDev, overrideSession } from './config'; @@ -20,6 +20,8 @@ import { registerUpdater } from './updater'; import { launch } from './windows-manager/launcher'; import { launchStage } from './windows-manager/stage'; +let isOnBatteryPower = false; + app.enableSandbox(); if (isDev) { @@ -95,6 +97,26 @@ app.on('window-all-closed', () => { app.quit(); }); +/** + * Monitor system power source changes + * Refs: https://www.electronjs.org/docs/latest/api/power-monitor + */ +powerMonitor.on('on-battery', () => { + isOnBatteryPower = true; + logger.info('Running on battery'); +}); + +powerMonitor.on('on-ac', () => { + isOnBatteryPower = false; + logger.info('Running on AC power'); +}); + +isOnBatteryPower = powerMonitor.isOnBatteryPower(); + +ipcMain.handle('get-power-state', () => { + return isOnBatteryPower; +}); + /** * @see https://www.electronjs.org/docs/latest/api/app#event-activate-macos Event: 'activate' */ diff --git a/packages/frontend/apps/ios/App/App.xcworkspace/xcshareddata/swiftpm/Package.resolved b/packages/frontend/apps/ios/App/App.xcworkspace/xcshareddata/swiftpm/Package.resolved deleted file mode 100644 index e14ed8d571cfa..0000000000000 --- a/packages/frontend/apps/ios/App/App.xcworkspace/xcshareddata/swiftpm/Package.resolved +++ /dev/null @@ -1,131 +0,0 @@ -{ - "pins" : [ - { - "identity" : "apollo-ios", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apollographql/apollo-ios", - "state" : { - "revision" : "d591c1dd55824867877cff4f6551fe32983d7f51", - "version" : "1.23.0" - } - }, - { - "identity" : "eventsource", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Recouse/EventSource", - "state" : { - "revision" : "7b2f4f585d3927876bd76eaede9fdff779eff102", - "version" : "0.1.5" - } - }, - { - "identity" : "listviewkit", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/ListViewKit", - "state" : { - "revision" : "5dea05a52a6c2c7bb013a5925c517d6e32940605", - "version" : "1.1.8" - } - }, - { - "identity" : "lrucache", - "kind" : "remoteSourceControl", - "location" : "https://github.com/nicklockwood/LRUCache", - "state" : { - "revision" : "542f0449556327415409ededc9c43a4bd0a397dc", - "version" : "1.0.7" - } - }, - { - "identity" : "markdownview", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/MarkdownView", - "state" : { - "revision" : "20fa808889944921e8da3a1c8317e8a557db373e", - "version" : "3.4.7" - } - }, - { - "identity" : "msdisplaylink", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/MSDisplayLink", - "state" : { - "revision" : "ebf5823cb5fc1326639d9a05bc06d16bbe82989f", - "version" : "2.0.8" - } - }, - { - "identity" : "purchases-ios-spm", - "kind" : "remoteSourceControl", - "location" : "https://github.com/RevenueCat/purchases-ios-spm.git", - "state" : { - "revision" : "249432af6b37a3665e26ea6f4ffc869dcd445f01", - "version" : "5.43.0" - } - }, - { - "identity" : "snapkit", - "kind" : "remoteSourceControl", - "location" : "https://github.com/SnapKit/SnapKit.git", - "state" : { - "revision" : "2842e6e84e82eb9a8dac0100ca90d9444b0307f4", - "version" : "5.7.1" - } - }, - { - "identity" : "splash", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/Splash", - "state" : { - "revision" : "de9cde249fdb7a173a6e6b950ab18b11f6c2a557", - "version" : "0.18.0" - } - }, - { - "identity" : "springinterpolation", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/SpringInterpolation", - "state" : { - "revision" : "cdb556516daa9b43c16aae9436dd39e19ff930fd", - "version" : "1.4.0" - } - }, - { - "identity" : "swift-cmark", - "kind" : "remoteSourceControl", - "location" : "https://github.com/swiftlang/swift-cmark", - "state" : { - "revision" : "b022b08312decdc46585e0b3440d97f6f22ef703", - "version" : "0.6.0" - } - }, - { - "identity" : "swift-collections", - "kind" : "remoteSourceControl", - "location" : "https://github.com/apple/swift-collections", - "state" : { - "revision" : "7b847a3b7008b2dc2f47ca3110d8c782fb2e5c7e", - "version" : "1.3.0" - } - }, - { - "identity" : "swifterswift", - "kind" : "remoteSourceControl", - "location" : "https://github.com/SwifterSwift/SwifterSwift.git", - "state" : { - "revision" : "39fa28c90a3ebe3d53f80289304fd880cf2c42d0", - "version" : "6.2.0" - } - }, - { - "identity" : "swiftmath", - "kind" : "remoteSourceControl", - "location" : "https://github.com/Lakr233/SwiftMath", - "state" : { - "revision" : "cfd646dcac0c5553e21ebf1ee05f9078277518bc", - "version" : "1.7.2" - } - } - ], - "version" : 2 -} diff --git a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_json.imageset/AiFileClip attachment icon.pdf b/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_json.imageset/AiFileClip attachment icon.pdf deleted file mode 100644 index 1715e60b211be..0000000000000 Binary files a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_json.imageset/AiFileClip attachment icon.pdf and /dev/null differ diff --git a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_md.imageset/AiFileClip attachment icon.pdf b/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_md.imageset/AiFileClip attachment icon.pdf deleted file mode 100644 index a0ab4c6cc0f8f..0000000000000 Binary files a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_md.imageset/AiFileClip attachment icon.pdf and /dev/null differ diff --git a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_pdf.imageset/AiFileClip attachment icon.pdf b/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_pdf.imageset/AiFileClip attachment icon.pdf deleted file mode 100644 index e09f680d0f328..0000000000000 Binary files a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_pdf.imageset/AiFileClip attachment icon.pdf and /dev/null differ diff --git a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_txt.imageset/AiFileClip attachment icon.pdf b/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_txt.imageset/AiFileClip attachment icon.pdf deleted file mode 100644 index 362f075349a1c..0000000000000 Binary files a/packages/frontend/apps/ios/App/Packages/Intelligents/Sources/Intelligents/Interface/Controller/AttachmentManagementController/AttachmentIcon.xcassets/FileAttachment_txt.imageset/AiFileClip attachment icon.pdf and /dev/null differ diff --git a/packages/frontend/apps/ios/apollo-codegen-chore.sh b/packages/frontend/apps/ios/apollo-codegen-chore.sh old mode 100755 new mode 100644 diff --git a/packages/frontend/apps/ios/setup.sh b/packages/frontend/apps/ios/setup.sh old mode 100755 new mode 100644 diff --git a/packages/frontend/apps/ios/update_code_sign_identity.sh b/packages/frontend/apps/ios/update_code_sign_identity.sh old mode 100755 new mode 100644 diff --git a/packages/frontend/core/public/manifest.json b/packages/frontend/core/public/manifest.json old mode 100755 new mode 100644 diff --git a/scripts/cleanup-canary-releases.sh b/scripts/cleanup-canary-releases.sh old mode 100755 new mode 100644 diff --git a/scripts/set-version.sh b/scripts/set-version.sh old mode 100755 new mode 100644 diff --git a/tools/cli/bin/cli.js b/tools/cli/bin/cli.js old mode 100755 new mode 100644 diff --git a/tools/cli/bin/runner.js b/tools/cli/bin/runner.js old mode 100755 new mode 100644 diff --git a/tools/cli/src/init.ts b/tools/cli/src/init.ts old mode 100755 new mode 100644