diff --git a/packages/frontend/apps/electron/renderer/app.tsx b/packages/frontend/apps/electron/renderer/app.tsx
index 0da4facdd4..2780b1f988 100644
--- a/packages/frontend/apps/electron/renderer/app.tsx
+++ b/packages/frontend/apps/electron/renderer/app.tsx
@@ -6,6 +6,7 @@ import { GlobalLoading } from '@affine/component/global-loading';
import { AppFallback } from '@affine/core/components/affine/app-container';
import { WindowsAppControls } from '@affine/core/components/pure/header/windows-app-controls';
import { Telemetry } from '@affine/core/components/telemetry';
+import { router } from '@affine/core/desktop/router';
import { configureCommonModules } from '@affine/core/modules';
import { configureAppTabsHeaderModule } from '@affine/core/modules/app-tabs-header';
import { configureElectronStateStorageImpls } from '@affine/core/modules/storage';
@@ -16,7 +17,6 @@ import {
configureBrowserWorkspaceFlavours,
configureSqliteWorkspaceEngineStorageProvider,
} from '@affine/core/modules/workspace-engine';
-import { router } from '@affine/core/router';
import createEmotionCache from '@affine/core/utils/create-emotion-cache';
import { createI18n, setUpLanguage } from '@affine/i18n';
import { CacheProvider } from '@emotion/react';
diff --git a/packages/frontend/apps/mobile/package.json b/packages/frontend/apps/mobile/package.json
index 75d9f2a13e..6e9392c064 100644
--- a/packages/frontend/apps/mobile/package.json
+++ b/packages/frontend/apps/mobile/package.json
@@ -22,7 +22,6 @@
"@sentry/react": "^8.0.0",
"@toeverything/theme": "^1.0.9",
"clsx": "^2.1.1",
- "figma-squircle": "^1.0.0",
"jotai": "^2.9.3",
"jotai-effect": "^1.0.2",
"jotai-scope": "^0.7.2",
diff --git a/packages/frontend/apps/mobile/src/app.tsx b/packages/frontend/apps/mobile/src/app.tsx
index cb8d93a0fc..a5c8260091 100644
--- a/packages/frontend/apps/mobile/src/app.tsx
+++ b/packages/frontend/apps/mobile/src/app.tsx
@@ -1,12 +1,15 @@
import '@affine/component/theme/global.css';
import '@affine/component/theme/theme.css';
-import './styles/mobile.css';
+import '@affine/core/mobile/styles/mobile.css';
import { AffineContext } from '@affine/component/context';
import { AppFallback } from '@affine/core/components/affine/app-container';
import { Telemetry } from '@affine/core/components/telemetry';
+import { configureMobileModules } from '@affine/core/mobile/modules';
+import { router } from '@affine/core/mobile/router';
import { configureCommonModules } from '@affine/core/modules';
import { configureLocalStorageStateStorageImpls } from '@affine/core/modules/storage';
+import { configureIndexedDBUserspaceStorageProvider } from '@affine/core/modules/userspace';
import { configureBrowserWorkbenchModule } from '@affine/core/modules/workbench';
import {
configureBrowserWorkspaceFlavours,
@@ -22,9 +25,6 @@ import {
import { Suspense } from 'react';
import { RouterProvider } from 'react-router-dom';
-import { configureMobileModules } from './modules';
-import { router } from './router';
-
const future = {
v7_startTransition: true,
} as const;
@@ -44,6 +44,7 @@ configureBrowserWorkbenchModule(framework);
configureLocalStorageStateStorageImpls(framework);
configureBrowserWorkspaceFlavours(framework);
configureIndexedDBWorkspaceEngineStorageProvider(framework);
+configureIndexedDBUserspaceStorageProvider(framework);
configureMobileModules(framework);
const frameworkProvider = framework.provider();
diff --git a/packages/frontend/apps/web/src/app.tsx b/packages/frontend/apps/web/src/app.tsx
index 94bf4b3fb1..db2a418981 100644
--- a/packages/frontend/apps/web/src/app.tsx
+++ b/packages/frontend/apps/web/src/app.tsx
@@ -5,6 +5,7 @@ import { AffineContext } from '@affine/component/context';
import { GlobalLoading } from '@affine/component/global-loading';
import { AppFallback } from '@affine/core/components/affine/app-container';
import { Telemetry } from '@affine/core/components/telemetry';
+import { router } from '@affine/core/desktop/router';
import { configureCommonModules } from '@affine/core/modules';
import { configureLocalStorageStateStorageImpls } from '@affine/core/modules/storage';
import { CustomThemeModifier } from '@affine/core/modules/theme-editor';
@@ -14,7 +15,6 @@ import {
configureBrowserWorkspaceFlavours,
configureIndexedDBWorkspaceEngineStorageProvider,
} from '@affine/core/modules/workspace-engine';
-import { router } from '@affine/core/router';
import createEmotionCache from '@affine/core/utils/create-emotion-cache';
import { createI18n, setUpLanguage } from '@affine/i18n';
import { CacheProvider } from '@emotion/react';
diff --git a/packages/frontend/core/src/components/affine/setting-modal/general-setting/about/index.tsx b/packages/frontend/core/src/components/affine/setting-modal/general-setting/about/index.tsx
index 8382b76cfc..daf223346e 100644
--- a/packages/frontend/core/src/components/affine/setting-modal/general-setting/about/index.tsx
+++ b/packages/frontend/core/src/components/affine/setting-modal/general-setting/about/index.tsx
@@ -11,7 +11,7 @@ import { ArrowRightSmallIcon, OpenInNewIcon } from '@blocksuite/icons/rc';
import { useCallback } from 'react';
import { useAppSettingHelper } from '../../../../../components/hooks/affine/use-app-setting-helper';
-import { appIconMap, appNames } from '../../../../../pages/open-app';
+import { appIconMap, appNames } from '../../../../../desktop/pages/open-app';
import { popupWindow } from '../../../../../utils';
import { relatedLinks } from './config';
import * as styles from './style.css';
diff --git a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx
index d08fa68b36..0de35334c7 100644
--- a/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx
+++ b/packages/frontend/core/src/components/blocksuite/block-suite-header/menu/index.tsx
@@ -19,10 +19,10 @@ import { useAsyncCallback } from '@affine/core/components/hooks/affine-async-hoo
import { useDocMetaHelper } from '@affine/core/components/hooks/use-block-suite-page-meta';
import { Export, MoveToTrash } from '@affine/core/components/page-list';
import { IsFavoriteIcon } from '@affine/core/components/pure/icons';
+import { useDetailPageHeaderResponsive } from '@affine/core/desktop/pages/workspace/detail-page/use-header-responsive';
import { EditorService } from '@affine/core/modules/editor';
import { WorkbenchService } from '@affine/core/modules/workbench';
import { ViewService } from '@affine/core/modules/workbench/services/view';
-import { useDetailPageHeaderResponsive } from '@affine/core/pages/workspace/detail-page/use-header-responsive';
import { WorkspaceFlavour } from '@affine/env/workspace';
import { useI18n } from '@affine/i18n';
import { track } from '@affine/track';
diff --git a/packages/frontend/core/src/components/workspace-selector/workspace-card/index.tsx b/packages/frontend/core/src/components/workspace-selector/workspace-card/index.tsx
index 4631794df6..a3007b61b1 100644
--- a/packages/frontend/core/src/components/workspace-selector/workspace-card/index.tsx
+++ b/packages/frontend/core/src/components/workspace-selector/workspace-card/index.tsx
@@ -18,10 +18,8 @@ import {
} from '@blocksuite/icons/rc';
import {
useLiveData,
- useService,
type WorkspaceMetadata,
type WorkspaceProfileInfo,
- WorkspaceService,
} from '@toeverything/infra';
import { cssVar } from '@toeverything/theme';
import clsx from 'clsx';
@@ -173,8 +171,7 @@ const WorkspaceSyncInfo = ({
workspaceProfile: WorkspaceProfileInfo;
}) => {
const syncStatus = useSyncEngineSyncProgress(workspaceMetadata);
- const currentWorkspace = useService(WorkspaceService).workspace;
- const isCloud = currentWorkspace.flavour === WorkspaceFlavour.AFFINE_CLOUD;
+ const isCloud = workspaceMetadata.flavour === WorkspaceFlavour.AFFINE_CLOUD;
const { paused, pause } = usePauseAnimation();
// to make sure that animation will play first time
diff --git a/packages/frontend/core/src/pages/404.tsx b/packages/frontend/core/src/desktop/pages/404.tsx
similarity index 91%
rename from packages/frontend/core/src/pages/404.tsx
rename to packages/frontend/core/src/desktop/pages/404.tsx
index 40f33c02b7..01a61399a5 100644
--- a/packages/frontend/core/src/pages/404.tsx
+++ b/packages/frontend/core/src/desktop/pages/404.tsx
@@ -8,12 +8,12 @@ import { useLiveData, useService } from '@toeverything/infra';
import type { ReactElement } from 'react';
import { useCallback, useEffect, useState } from 'react';
-import { SignOutModal } from '../components/affine/sign-out-modal';
+import { SignOutModal } from '../../components/affine/sign-out-modal';
import {
RouteLogic,
useNavigateHelper,
-} from '../components/hooks/use-navigate-helper';
-import { AuthService } from '../modules/cloud';
+} from '../../components/hooks/use-navigate-helper';
+import { AuthService } from '../../modules/cloud';
import { SignIn } from './auth/sign-in';
export const PageNotFound = ({
diff --git a/packages/frontend/core/src/desktop/pages/ai-upgrade-success.tsx b/packages/frontend/core/src/desktop/pages/ai-upgrade-success.tsx
new file mode 100644
index 0000000000..5f35deca00
--- /dev/null
+++ b/packages/frontend/core/src/desktop/pages/ai-upgrade-success.tsx
@@ -0,0 +1,5 @@
+import { AIUpgradeSuccess } from '../../components/affine/subscription-landing';
+
+export const Component = () => {
+ return ;
+};
diff --git a/packages/frontend/core/src/pages/auth/auth.tsx b/packages/frontend/core/src/desktop/pages/auth/auth.tsx
similarity index 96%
rename from packages/frontend/core/src/pages/auth/auth.tsx
rename to packages/frontend/core/src/desktop/pages/auth/auth.tsx
index c45566f2c9..6cc7d0f045 100644
--- a/packages/frontend/core/src/pages/auth/auth.tsx
+++ b/packages/frontend/core/src/desktop/pages/auth/auth.tsx
@@ -23,12 +23,12 @@ import type { LoaderFunction } from 'react-router-dom';
import { redirect, useParams, useSearchParams } from 'react-router-dom';
import { z } from 'zod';
-import { useMutation } from '../../components/hooks/use-mutation';
+import { useMutation } from '../../../components/hooks/use-mutation';
import {
RouteLogic,
useNavigateHelper,
-} from '../../components/hooks/use-navigate-helper';
-import { AuthService, ServerConfigService } from '../../modules/cloud';
+} from '../../../components/hooks/use-navigate-helper';
+import { AuthService, ServerConfigService } from '../../../modules/cloud';
const authTypeSchema = z.enum([
'onboarding',
diff --git a/packages/frontend/core/src/pages/auth/common.ts b/packages/frontend/core/src/desktop/pages/auth/common.ts
similarity index 100%
rename from packages/frontend/core/src/pages/auth/common.ts
rename to packages/frontend/core/src/desktop/pages/auth/common.ts
diff --git a/packages/frontend/core/src/pages/auth/magic-link.tsx b/packages/frontend/core/src/desktop/pages/auth/magic-link.tsx
similarity index 97%
rename from packages/frontend/core/src/pages/auth/magic-link.tsx
rename to packages/frontend/core/src/desktop/pages/auth/magic-link.tsx
index 42ae697442..85e1b7cb63 100644
--- a/packages/frontend/core/src/pages/auth/magic-link.tsx
+++ b/packages/frontend/core/src/desktop/pages/auth/magic-link.tsx
@@ -8,7 +8,7 @@ import {
useNavigate,
} from 'react-router-dom';
-import { AuthService } from '../../modules/cloud';
+import { AuthService } from '../../../modules/cloud';
import { supportedClient } from './common';
interface LoaderData {
diff --git a/packages/frontend/core/src/pages/auth/oauth-callback.tsx b/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx
similarity index 97%
rename from packages/frontend/core/src/pages/auth/oauth-callback.tsx
rename to packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx
index 3ee148ca5e..c886447cd9 100644
--- a/packages/frontend/core/src/pages/auth/oauth-callback.tsx
+++ b/packages/frontend/core/src/desktop/pages/auth/oauth-callback.tsx
@@ -8,7 +8,7 @@ import {
useNavigate,
} from 'react-router-dom';
-import { AuthService } from '../../modules/cloud';
+import { AuthService } from '../../../modules/cloud';
import { supportedClient } from './common';
interface LoaderData {
diff --git a/packages/frontend/core/src/pages/auth/oauth-login.tsx b/packages/frontend/core/src/desktop/pages/auth/oauth-login.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/auth/oauth-login.tsx
rename to packages/frontend/core/src/desktop/pages/auth/oauth-login.tsx
diff --git a/packages/frontend/core/src/pages/auth/sign-in.tsx b/packages/frontend/core/src/desktop/pages/auth/sign-in.tsx
similarity index 93%
rename from packages/frontend/core/src/pages/auth/sign-in.tsx
rename to packages/frontend/core/src/desktop/pages/auth/sign-in.tsx
index 707db9516e..89c4213f77 100644
--- a/packages/frontend/core/src/pages/auth/sign-in.tsx
+++ b/packages/frontend/core/src/desktop/pages/auth/sign-in.tsx
@@ -6,11 +6,11 @@ import { useEffect } from 'react';
// eslint-disable-next-line @typescript-eslint/no-restricted-imports
import { useNavigate, useSearchParams } from 'react-router-dom';
-import { AuthPanel } from '../../components/affine/auth';
+import { AuthPanel } from '../../../components/affine/auth';
import {
RouteLogic,
useNavigateHelper,
-} from '../../components/hooks/use-navigate-helper';
+} from '../../../components/hooks/use-navigate-helper';
export const SignIn = () => {
const session = useService(AuthService).session;
diff --git a/packages/frontend/core/src/pages/expired.tsx b/packages/frontend/core/src/desktop/pages/expired.tsx
similarity index 93%
rename from packages/frontend/core/src/pages/expired.tsx
rename to packages/frontend/core/src/desktop/pages/expired.tsx
index 5d2d70339f..87e0a94c02 100644
--- a/packages/frontend/core/src/pages/expired.tsx
+++ b/packages/frontend/core/src/desktop/pages/expired.tsx
@@ -6,7 +6,7 @@ import { useCallback } from 'react';
import {
RouteLogic,
useNavigateHelper,
-} from '../components/hooks/use-navigate-helper';
+} from '../../components/hooks/use-navigate-helper';
export const Component = () => {
const t = useI18n();
diff --git a/packages/frontend/core/src/pages/import-template.tsx b/packages/frontend/core/src/desktop/pages/import-template.tsx
similarity index 83%
rename from packages/frontend/core/src/pages/import-template.tsx
rename to packages/frontend/core/src/desktop/pages/import-template.tsx
index fc217dbc07..caf479c0f8 100644
--- a/packages/frontend/core/src/pages/import-template.tsx
+++ b/packages/frontend/core/src/desktop/pages/import-template.tsx
@@ -3,8 +3,8 @@ import { useService } from '@toeverything/infra';
import { useEffect } from 'react';
import { useSearchParams } from 'react-router-dom';
-import { useNavigateHelper } from '../components/hooks/use-navigate-helper';
-import { ImportTemplateDialogService } from '../modules/import-template';
+import { useNavigateHelper } from '../../components/hooks/use-navigate-helper';
+import { ImportTemplateDialogService } from '../../modules/import-template';
export const Component = () => {
const importTemplateDialogService = useService(ImportTemplateDialogService);
diff --git a/packages/frontend/core/src/pages/index.tsx b/packages/frontend/core/src/desktop/pages/index.tsx
similarity index 92%
rename from packages/frontend/core/src/pages/index.tsx
rename to packages/frontend/core/src/desktop/pages/index.tsx
index 4c2948fc80..839442fe9e 100644
--- a/packages/frontend/core/src/pages/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/index.tsx
@@ -17,11 +17,11 @@ import { type LoaderFunction, useSearchParams } from 'react-router-dom';
import {
buildShowcaseWorkspace,
createFirstAppData,
-} from '../bootstrap/first-app-data';
-import { AppFallback } from '../components/affine/app-container';
-import { useNavigateHelper } from '../components/hooks/use-navigate-helper';
-import { WorkspaceNavigator } from '../components/workspace-selector';
-import { AuthService } from '../modules/cloud';
+} from '../../bootstrap/first-app-data';
+import { AppFallback } from '../../components/affine/app-container';
+import { useNavigateHelper } from '../../components/hooks/use-navigate-helper';
+import { WorkspaceNavigator } from '../../components/workspace-selector';
+import { AuthService } from '../../modules/cloud';
export const loader: LoaderFunction = async () => {
return null;
diff --git a/packages/frontend/core/src/pages/invite.tsx b/packages/frontend/core/src/desktop/pages/invite.tsx
similarity index 94%
rename from packages/frontend/core/src/pages/invite.tsx
rename to packages/frontend/core/src/desktop/pages/invite.tsx
index 54684b52e6..9f2a2106aa 100644
--- a/packages/frontend/core/src/pages/invite.tsx
+++ b/packages/frontend/core/src/desktop/pages/invite.tsx
@@ -11,12 +11,12 @@ import { useCallback, useEffect } from 'react';
import type { LoaderFunction } from 'react-router-dom';
import { redirect, useLoaderData } from 'react-router-dom';
-import { authAtom } from '../components/atoms';
+import { authAtom } from '../../components/atoms';
import {
RouteLogic,
useNavigateHelper,
-} from '../components/hooks/use-navigate-helper';
-import { AuthService } from '../modules/cloud';
+} from '../../components/hooks/use-navigate-helper';
+import { AuthService } from '../../modules/cloud';
export const loader: LoaderFunction = async args => {
const inviteId = args.params.inviteId || '';
diff --git a/packages/frontend/core/src/pages/onboarding.tsx b/packages/frontend/core/src/desktop/pages/onboarding.tsx
similarity index 84%
rename from packages/frontend/core/src/pages/onboarding.tsx
rename to packages/frontend/core/src/desktop/pages/onboarding.tsx
index f67e857eb2..2ef01cafcb 100644
--- a/packages/frontend/core/src/pages/onboarding.tsx
+++ b/packages/frontend/core/src/desktop/pages/onboarding.tsx
@@ -3,15 +3,15 @@ import { assertExists } from '@blocksuite/global/utils';
import { useCallback } from 'react';
import { redirect } from 'react-router-dom';
-import { Onboarding } from '../components/affine/onboarding/onboarding';
+import { Onboarding } from '../../components/affine/onboarding/onboarding';
import {
appConfigStorage,
useAppConfigStorage,
-} from '../components/hooks/use-app-config-storage';
+} from '../../components/hooks/use-app-config-storage';
import {
RouteLogic,
useNavigateHelper,
-} from '../components/hooks/use-navigate-helper';
+} from '../../components/hooks/use-navigate-helper';
export const loader = () => {
if (!BUILD_CONFIG.isElectron && !appConfigStorage.get('onBoarding')) {
diff --git a/packages/frontend/core/src/pages/open-app.css.ts b/packages/frontend/core/src/desktop/pages/open-app.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/open-app.css.ts
rename to packages/frontend/core/src/desktop/pages/open-app.css.ts
diff --git a/packages/frontend/core/src/pages/open-app.tsx b/packages/frontend/core/src/desktop/pages/open-app.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/open-app.tsx
rename to packages/frontend/core/src/desktop/pages/open-app.tsx
diff --git a/packages/frontend/core/src/pages/redirect.tsx b/packages/frontend/core/src/desktop/pages/redirect.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/redirect.tsx
rename to packages/frontend/core/src/desktop/pages/redirect.tsx
diff --git a/packages/frontend/core/src/pages/root.tsx b/packages/frontend/core/src/desktop/pages/root.tsx
similarity index 66%
rename from packages/frontend/core/src/pages/root.tsx
rename to packages/frontend/core/src/desktop/pages/root.tsx
index 5f908381b5..2b48f64932 100644
--- a/packages/frontend/core/src/pages/root.tsx
+++ b/packages/frontend/core/src/desktop/pages/root.tsx
@@ -1,6 +1,6 @@
import { Outlet } from 'react-router-dom';
-import { AllWorkspaceModals } from '../components/providers/modal-provider';
+import { AllWorkspaceModals } from '../../components/providers/modal-provider';
export const RootWrapper = () => {
return (
diff --git a/packages/frontend/core/src/pages/subscribe.css.ts b/packages/frontend/core/src/desktop/pages/subscribe.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/subscribe.css.ts
rename to packages/frontend/core/src/desktop/pages/subscribe.css.ts
diff --git a/packages/frontend/core/src/pages/subscribe.tsx b/packages/frontend/core/src/desktop/pages/subscribe.tsx
similarity index 95%
rename from packages/frontend/core/src/pages/subscribe.tsx
rename to packages/frontend/core/src/desktop/pages/subscribe.tsx
index 8b885eef3c..cf0b0f9a33 100644
--- a/packages/frontend/core/src/pages/subscribe.tsx
+++ b/packages/frontend/core/src/desktop/pages/subscribe.tsx
@@ -7,12 +7,12 @@ import { useEffect, useMemo, useState } from 'react';
import { useSearchParams } from 'react-router-dom';
import { EMPTY, mergeMap, switchMap } from 'rxjs';
-import { generateSubscriptionCallbackLink } from '../components/hooks/affine/use-subscription-notify';
+import { generateSubscriptionCallbackLink } from '../../components/hooks/affine/use-subscription-notify';
import {
RouteLogic,
useNavigateHelper,
-} from '../components/hooks/use-navigate-helper';
-import { AuthService, SubscriptionService } from '../modules/cloud';
+} from '../../components/hooks/use-navigate-helper';
+import { AuthService, SubscriptionService } from '../../modules/cloud';
import { container } from './subscribe.css';
export const Component = () => {
diff --git a/packages/frontend/core/src/pages/theme-editor.tsx b/packages/frontend/core/src/desktop/pages/theme-editor.tsx
similarity index 52%
rename from packages/frontend/core/src/pages/theme-editor.tsx
rename to packages/frontend/core/src/desktop/pages/theme-editor.tsx
index e3044569b2..1d413c4128 100644
--- a/packages/frontend/core/src/pages/theme-editor.tsx
+++ b/packages/frontend/core/src/desktop/pages/theme-editor.tsx
@@ -1,4 +1,4 @@
-import { ThemeEditor } from '../modules/theme-editor';
+import { ThemeEditor } from '../../modules/theme-editor';
export const Component = () => {
return ;
diff --git a/packages/frontend/core/src/desktop/pages/upgrade-success.tsx b/packages/frontend/core/src/desktop/pages/upgrade-success.tsx
new file mode 100644
index 0000000000..6353f1c9a6
--- /dev/null
+++ b/packages/frontend/core/src/desktop/pages/upgrade-success.tsx
@@ -0,0 +1,5 @@
+import { CloudUpgradeSuccess } from '../../components/affine/subscription-landing';
+
+export const Component = () => {
+ return ;
+};
diff --git a/packages/frontend/core/src/pages/workspace/all-collection/header.css.ts b/packages/frontend/core/src/desktop/pages/workspace/all-collection/header.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-collection/header.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/all-collection/header.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/all-collection/header.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-collection/header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-collection/header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-collection/header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/all-collection/index.css.ts b/packages/frontend/core/src/desktop/pages/workspace/all-collection/index.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-collection/index.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/all-collection/index.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/all-collection/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-collection/index.tsx
similarity index 95%
rename from packages/frontend/core/src/pages/workspace/all-collection/index.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-collection/index.tsx
index 7ac6832ebc..39fc840f5d 100644
--- a/packages/frontend/core/src/pages/workspace/all-collection/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/all-collection/index.tsx
@@ -15,8 +15,8 @@ import { useLiveData, useService, WorkspaceService } from '@toeverything/infra';
import { nanoid } from 'nanoid';
import { useCallback, useMemo, useState } from 'react';
-import { CollectionService } from '../../../modules/collection';
-import { ViewBody, ViewHeader } from '../../../modules/workbench';
+import { CollectionService } from '../../../../modules/collection';
+import { ViewBody, ViewHeader } from '../../../../modules/workbench';
import { EmptyCollectionList } from '../page-list-empty';
import { AllCollectionHeader } from './header';
import * as styles from './index.css';
diff --git a/packages/frontend/core/src/pages/workspace/all-page/all-page-filter.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page-filter.tsx
similarity index 86%
rename from packages/frontend/core/src/pages/workspace/all-page/all-page-filter.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-page/all-page-filter.tsx
index 4ed29e37f0..7975a32b1d 100644
--- a/packages/frontend/core/src/pages/workspace/all-page/all-page-filter.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page-filter.tsx
@@ -3,12 +3,12 @@ import type { Collection, Filter } from '@affine/env/filter';
import { useService, WorkspaceService } from '@toeverything/infra';
import { useCallback } from 'react';
-import { filterContainerStyle } from '../../../components/filter-container.css';
-import { useNavigateHelper } from '../../../components/hooks/use-navigate-helper';
+import { filterContainerStyle } from '../../../../components/filter-container.css';
+import { useNavigateHelper } from '../../../../components/hooks/use-navigate-helper';
import {
FilterList,
SaveAsCollectionButton,
-} from '../../../components/page-list';
+} from '../../../../components/page-list';
export const FilterContainer = ({
filters,
diff --git a/packages/frontend/core/src/pages/workspace/all-page/all-page-header.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page-header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-page/all-page-header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-page/all-page-header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/all-page/all-page.css.ts b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-page/all-page.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/all-page/all-page.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/all-page/all-page.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page.tsx
similarity index 98%
rename from packages/frontend/core/src/pages/workspace/all-page/all-page.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-page/all-page.tsx
index 7a9da33787..0c6c032a0b 100644
--- a/packages/frontend/core/src/pages/workspace/all-page/all-page.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/all-page/all-page.tsx
@@ -19,7 +19,7 @@ import {
ViewHeader,
ViewIcon,
ViewTitle,
-} from '../../../modules/workbench';
+} from '../../../../modules/workbench';
import { EmptyPageList } from '../page-list-empty';
import * as styles from './all-page.css';
import { FilterContainer } from './all-page-filter';
diff --git a/packages/frontend/core/src/pages/workspace/all-tag/all-tag.css.ts b/packages/frontend/core/src/desktop/pages/workspace/all-tag/all-tag.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-tag/all-tag.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/all-tag/all-tag.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/all-tag/header.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-tag/header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/all-tag/header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-tag/header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/all-tag/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/all-tag/index.tsx
similarity index 98%
rename from packages/frontend/core/src/pages/workspace/all-tag/index.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/all-tag/index.tsx
index fe3b1056d0..d6e98ed2a2 100644
--- a/packages/frontend/core/src/pages/workspace/all-tag/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/all-tag/index.tsx
@@ -14,7 +14,7 @@ import {
ViewHeader,
ViewIcon,
ViewTitle,
-} from '../../../modules/workbench';
+} from '../../../../modules/workbench';
import { EmptyTagList } from '../page-list-empty';
import * as styles from './all-tag.css';
import { AllTagHeader } from './header';
diff --git a/packages/frontend/core/src/pages/workspace/collection/collection.css.ts b/packages/frontend/core/src/desktop/pages/workspace/collection/collection.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/collection/collection.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/collection/collection.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/collection/header.tsx b/packages/frontend/core/src/desktop/pages/workspace/collection/header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/collection/header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/collection/header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/collection/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/collection/index.tsx
similarity index 97%
rename from packages/frontend/core/src/pages/workspace/collection/index.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/collection/index.tsx
index 2861241107..00b927aae8 100644
--- a/packages/frontend/core/src/pages/workspace/collection/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/collection/index.tsx
@@ -19,14 +19,14 @@ import {
import { useCallback, useEffect, useState } from 'react';
import { useParams } from 'react-router-dom';
-import { useNavigateHelper } from '../../../components/hooks/use-navigate-helper';
+import { useNavigateHelper } from '../../../../components/hooks/use-navigate-helper';
import {
useIsActiveView,
ViewBody,
ViewHeader,
ViewIcon,
ViewTitle,
-} from '../../../modules/workbench';
+} from '../../../../modules/workbench';
import { CollectionDetailHeader } from './header';
export const CollectionDetail = ({
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page-header.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/detail-page-header.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page-header.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx
similarity index 94%
rename from packages/frontend/core/src/pages/workspace/detail-page/detail-page-header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx
index 5019bfddbe..c2e22bea78 100644
--- a/packages/frontend/core/src/pages/workspace/detail-page/detail-page-header.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-header.tsx
@@ -22,10 +22,10 @@ import { useLiveData, useService, type Workspace } from '@toeverything/infra';
import { useAtom, useAtomValue } from 'jotai';
import { forwardRef, useCallback, useEffect, useRef, useState } from 'react';
-import { SharePageButton } from '../../../components/affine/share-page-modal';
-import { appSidebarFloatingAtom } from '../../../components/app-sidebar';
-import { BlocksuiteHeaderTitle } from '../../../components/blocksuite/block-suite-header/title/index';
-import { HeaderDivider } from '../../../components/pure/header';
+import { SharePageButton } from '../../../../components/affine/share-page-modal';
+import { appSidebarFloatingAtom } from '../../../../components/app-sidebar';
+import { BlocksuiteHeaderTitle } from '../../../../components/blocksuite/block-suite-header/title/index';
+import { HeaderDivider } from '../../../../components/pure/header';
import * as styles from './detail-page-header.css';
import { useDetailPageHeaderResponsive } from './use-header-responsive';
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page-wrapper.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-wrapper.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/detail-page-wrapper.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page-wrapper.tsx
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/detail-page.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page.tsx
similarity index 91%
rename from packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page.tsx
index 765fffa17d..a29739999b 100644
--- a/packages/frontend/core/src/pages/workspace/detail-page/detail-page.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/detail-page/detail-page.tsx
@@ -27,22 +27,22 @@ import clsx from 'clsx';
import { memo, useCallback, useEffect, useRef } from 'react';
import { useParams } from 'react-router-dom';
-import { AffineErrorBoundary } from '../../../components/affine/affine-error-boundary';
-import { GlobalPageHistoryModal } from '../../../components/affine/page-history-modal';
-import { useRegisterBlocksuiteEditorCommands } from '../../../components/hooks/affine/use-register-blocksuite-editor-commands';
-import { useActiveBlocksuiteEditor } from '../../../components/hooks/use-block-suite-editor';
-import { usePageDocumentTitle } from '../../../components/hooks/use-global-state';
-import { useNavigateHelper } from '../../../components/hooks/use-navigate-helper';
-import { PageDetailEditor } from '../../../components/page-detail-editor';
-import { TrashPageFooter } from '../../../components/pure/trash-page-footer';
-import { TopTip } from '../../../components/top-tip';
+import { AffineErrorBoundary } from '../../../../components/affine/affine-error-boundary';
+import { GlobalPageHistoryModal } from '../../../../components/affine/page-history-modal';
+import { useRegisterBlocksuiteEditorCommands } from '../../../../components/hooks/affine/use-register-blocksuite-editor-commands';
+import { useActiveBlocksuiteEditor } from '../../../../components/hooks/use-block-suite-editor';
+import { usePageDocumentTitle } from '../../../../components/hooks/use-global-state';
+import { useNavigateHelper } from '../../../../components/hooks/use-navigate-helper';
+import { PageDetailEditor } from '../../../../components/page-detail-editor';
+import { TrashPageFooter } from '../../../../components/pure/trash-page-footer';
+import { TopTip } from '../../../../components/top-tip';
import {
useIsActiveView,
ViewBody,
ViewHeader,
ViewSidebarTab,
WorkbenchService,
-} from '../../../modules/workbench';
+} from '../../../../modules/workbench';
import { PageNotFound } from '../../404';
import * as styles from './detail-page.css';
import { DetailPageHeader } from './detail-page-header';
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/index.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/index.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/index.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/index.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/chat.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/chat.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/chat.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/chat.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/chat.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/chat.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/chat.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/chat.tsx
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/frame.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/frame.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/frame.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/frame.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/frame.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/frame.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/frame.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/frame.tsx
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/journal.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/journal.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/journal.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/journal.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/journal.tsx
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/outline.css.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/outline.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/outline.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/outline.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/tabs/outline.tsx b/packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/outline.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/tabs/outline.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/tabs/outline.tsx
diff --git a/packages/frontend/core/src/pages/workspace/detail-page/use-header-responsive.ts b/packages/frontend/core/src/desktop/pages/workspace/detail-page/use-header-responsive.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/detail-page/use-header-responsive.ts
rename to packages/frontend/core/src/desktop/pages/workspace/detail-page/use-header-responsive.ts
diff --git a/packages/frontend/core/src/pages/workspace/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/index.tsx
similarity index 95%
rename from packages/frontend/core/src/pages/workspace/index.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/index.tsx
index fa8eb40c47..508d816230 100644
--- a/packages/frontend/core/src/pages/workspace/index.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/index.tsx
@@ -1,6 +1,6 @@
import { AffineOtherPageLayout } from '@affine/component/affine-other-page-layout';
import { AppFallback } from '@affine/core/components/affine/app-container';
-import { workspaceRoutes } from '@affine/core/workspace-router';
+import { workbenchRoutes } from '@affine/core/desktop/workbench-router';
import { ZipTransformer } from '@blocksuite/blocks';
import type { Workspace, WorkspaceMetadata } from '@toeverything/infra';
import {
@@ -14,9 +14,9 @@ import type { ReactElement } from 'react';
import { useEffect, useLayoutEffect, useMemo, useState } from 'react';
import { matchPath, useLocation, useParams } from 'react-router-dom';
-import { AffineErrorBoundary } from '../../components/affine/affine-error-boundary';
-import { WorkspaceLayout } from '../../components/layouts/workspace-layout';
-import { WorkbenchRoot } from '../../modules/workbench';
+import { AffineErrorBoundary } from '../../../components/affine/affine-error-boundary';
+import { WorkspaceLayout } from '../../../components/layouts/workspace-layout';
+import { WorkbenchRoot } from '../../../modules/workbench';
import { PageNotFound } from '../404';
import { SharePage } from './share/share-page';
@@ -54,7 +54,7 @@ export const Component = (): ReactElement => {
match.params.docId &&
match.params.workspaceId &&
// // TODO(eyhn): need a better way to check if it's a docId
- workspaceRoutes.find(route =>
+ workbenchRoutes.find(route =>
matchPath(route.path, '/' + match.params.docId)
)?.path === '/:pageId'
) {
diff --git a/packages/frontend/core/src/pages/workspace/page-list-empty.css.ts b/packages/frontend/core/src/desktop/pages/workspace/page-list-empty.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/page-list-empty.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/page-list-empty.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/page-list-empty.tsx b/packages/frontend/core/src/desktop/pages/workspace/page-list-empty.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/page-list-empty.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/page-list-empty.tsx
diff --git a/packages/frontend/core/src/pages/workspace/share/share-footer.css.ts b/packages/frontend/core/src/desktop/pages/workspace/share/share-footer.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-footer.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-footer.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/share/share-footer.tsx b/packages/frontend/core/src/desktop/pages/workspace/share/share-footer.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-footer.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-footer.tsx
diff --git a/packages/frontend/core/src/pages/workspace/share/share-header.css.ts b/packages/frontend/core/src/desktop/pages/workspace/share/share-header.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-header.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-header.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/share/share-header.tsx b/packages/frontend/core/src/desktop/pages/workspace/share/share-header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/share/share-page.css.ts b/packages/frontend/core/src/desktop/pages/workspace/share/share-page.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-page.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-page.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/share/share-page.tsx b/packages/frontend/core/src/desktop/pages/workspace/share/share-page.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/share/share-page.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/share/share-page.tsx
diff --git a/packages/frontend/core/src/pages/workspace/tag/header.tsx b/packages/frontend/core/src/desktop/pages/workspace/tag/header.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/tag/header.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/tag/header.tsx
diff --git a/packages/frontend/core/src/pages/workspace/tag/index.css.ts b/packages/frontend/core/src/desktop/pages/workspace/tag/index.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/tag/index.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/tag/index.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/tag/index.tsx b/packages/frontend/core/src/desktop/pages/workspace/tag/index.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/tag/index.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/tag/index.tsx
diff --git a/packages/frontend/core/src/pages/workspace/trash-page.css.ts b/packages/frontend/core/src/desktop/pages/workspace/trash-page.css.ts
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/trash-page.css.ts
rename to packages/frontend/core/src/desktop/pages/workspace/trash-page.css.ts
diff --git a/packages/frontend/core/src/pages/workspace/trash-page.tsx b/packages/frontend/core/src/desktop/pages/workspace/trash-page.tsx
similarity index 98%
rename from packages/frontend/core/src/pages/workspace/trash-page.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/trash-page.tsx
index a56747e79b..52c0743cdd 100644
--- a/packages/frontend/core/src/pages/workspace/trash-page.tsx
+++ b/packages/frontend/core/src/desktop/pages/workspace/trash-page.tsx
@@ -20,7 +20,7 @@ import {
ViewHeader,
ViewIcon,
ViewTitle,
-} from '../../modules/workbench';
+} from '../../../modules/workbench';
import { EmptyPageList } from './page-list-empty';
import * as styles from './trash-page.css';
diff --git a/packages/frontend/core/src/pages/workspace/workbench-root.tsx b/packages/frontend/core/src/desktop/pages/workspace/workbench-root.tsx
similarity index 100%
rename from packages/frontend/core/src/pages/workspace/workbench-root.tsx
rename to packages/frontend/core/src/desktop/pages/workspace/workbench-root.tsx
diff --git a/packages/frontend/core/src/router.tsx b/packages/frontend/core/src/desktop/router.tsx
similarity index 98%
rename from packages/frontend/core/src/router.tsx
rename to packages/frontend/core/src/desktop/router.tsx
index 0841349893..be6d41dc94 100644
--- a/packages/frontend/core/src/router.tsx
+++ b/packages/frontend/core/src/desktop/router.tsx
@@ -8,7 +8,7 @@ import {
useNavigate,
} from 'react-router-dom';
-import { NavigateContext } from './components/hooks/use-navigate-helper';
+import { NavigateContext } from '../components/hooks/use-navigate-helper';
import { RootWrapper } from './pages/root';
export function RootRouter() {
diff --git a/packages/frontend/core/src/workspace-router.ts b/packages/frontend/core/src/desktop/workbench-router.ts
similarity index 95%
rename from packages/frontend/core/src/workspace-router.ts
rename to packages/frontend/core/src/desktop/workbench-router.ts
index 7531c7e2dc..0e810fa39b 100644
--- a/packages/frontend/core/src/workspace-router.ts
+++ b/packages/frontend/core/src/desktop/workbench-router.ts
@@ -1,6 +1,6 @@
import type { RouteObject } from 'react-router-dom';
-export const workspaceRoutes = [
+export const workbenchRoutes = [
{
path: '/all',
lazy: () => import('./pages/workspace/all-page/all-page'),
diff --git a/packages/frontend/apps/mobile/src/components/README.md b/packages/frontend/core/src/mobile/components/README.md
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/README.md
rename to packages/frontend/core/src/mobile/components/README.md
diff --git a/packages/frontend/apps/mobile/src/components/app-tabs/index.tsx b/packages/frontend/core/src/mobile/components/app-tabs/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/app-tabs/index.tsx
rename to packages/frontend/core/src/mobile/components/app-tabs/index.tsx
diff --git a/packages/frontend/apps/mobile/src/components/app-tabs/styles.css.ts b/packages/frontend/core/src/mobile/components/app-tabs/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/app-tabs/styles.css.ts
rename to packages/frontend/core/src/mobile/components/app-tabs/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/doc-card/index.tsx b/packages/frontend/core/src/mobile/components/doc-card/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/doc-card/index.tsx
rename to packages/frontend/core/src/mobile/components/doc-card/index.tsx
diff --git a/packages/frontend/apps/mobile/src/components/doc-card/styles.css.tsx b/packages/frontend/core/src/mobile/components/doc-card/styles.css.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/doc-card/styles.css.tsx
rename to packages/frontend/core/src/mobile/components/doc-card/styles.css.tsx
diff --git a/packages/frontend/apps/mobile/src/components/doc-card/tag.css.ts b/packages/frontend/core/src/mobile/components/doc-card/tag.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/doc-card/tag.css.ts
rename to packages/frontend/core/src/mobile/components/doc-card/tag.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/doc-card/tag.tsx b/packages/frontend/core/src/mobile/components/doc-card/tag.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/doc-card/tag.tsx
rename to packages/frontend/core/src/mobile/components/doc-card/tag.tsx
diff --git a/packages/frontend/apps/mobile/src/components/index.ts b/packages/frontend/core/src/mobile/components/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/index.ts
rename to packages/frontend/core/src/mobile/components/index.ts
diff --git a/packages/frontend/apps/mobile/src/components/page-header/index.tsx b/packages/frontend/core/src/mobile/components/page-header/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/page-header/index.tsx
rename to packages/frontend/core/src/mobile/components/page-header/index.tsx
diff --git a/packages/frontend/apps/mobile/src/components/page-header/styles.css.ts b/packages/frontend/core/src/mobile/components/page-header/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/page-header/styles.css.ts
rename to packages/frontend/core/src/mobile/components/page-header/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/search-input/index.tsx b/packages/frontend/core/src/mobile/components/search-input/index.tsx
similarity index 98%
rename from packages/frontend/apps/mobile/src/components/search-input/index.tsx
rename to packages/frontend/core/src/mobile/components/search-input/index.tsx
index 53d1352dbd..968f0bbf50 100644
--- a/packages/frontend/apps/mobile/src/components/search-input/index.tsx
+++ b/packages/frontend/core/src/mobile/components/search-input/index.tsx
@@ -1,7 +1,7 @@
import { useAutoFocus } from '@affine/component';
+import { getSvgPath } from '@blocksuite/global/utils';
import { SearchIcon } from '@blocksuite/icons/rc';
import clsx from 'clsx';
-import { getSvgPath } from 'figma-squircle';
import { debounce } from 'lodash-es';
import {
type FormEventHandler,
diff --git a/packages/frontend/apps/mobile/src/components/search-input/style.css.ts b/packages/frontend/core/src/mobile/components/search-input/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/search-input/style.css.ts
rename to packages/frontend/core/src/mobile/components/search-input/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/search-result/index.ts b/packages/frontend/core/src/mobile/components/search-result/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/search-result/index.ts
rename to packages/frontend/core/src/mobile/components/search-result/index.ts
diff --git a/packages/frontend/apps/mobile/src/components/search-result/search-res-label.tsx b/packages/frontend/core/src/mobile/components/search-result/search-res-label.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/search-result/search-res-label.tsx
rename to packages/frontend/core/src/mobile/components/search-result/search-res-label.tsx
diff --git a/packages/frontend/apps/mobile/src/components/search-result/universal-item.css.ts b/packages/frontend/core/src/mobile/components/search-result/universal-item.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/search-result/universal-item.css.ts
rename to packages/frontend/core/src/mobile/components/search-result/universal-item.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/search-result/universal-item.tsx b/packages/frontend/core/src/mobile/components/search-result/universal-item.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/search-result/universal-item.tsx
rename to packages/frontend/core/src/mobile/components/search-result/universal-item.tsx
diff --git a/packages/frontend/apps/mobile/src/components/user-plan-tag/index.tsx b/packages/frontend/core/src/mobile/components/user-plan-tag/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/user-plan-tag/index.tsx
rename to packages/frontend/core/src/mobile/components/user-plan-tag/index.tsx
diff --git a/packages/frontend/apps/mobile/src/components/user-plan-tag/style.css.ts b/packages/frontend/core/src/mobile/components/user-plan-tag/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/user-plan-tag/style.css.ts
rename to packages/frontend/core/src/mobile/components/user-plan-tag/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/workspace-selector/card.css.ts b/packages/frontend/core/src/mobile/components/workspace-selector/card.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/workspace-selector/card.css.ts
rename to packages/frontend/core/src/mobile/components/workspace-selector/card.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/workspace-selector/current-card.tsx b/packages/frontend/core/src/mobile/components/workspace-selector/current-card.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/workspace-selector/current-card.tsx
rename to packages/frontend/core/src/mobile/components/workspace-selector/current-card.tsx
diff --git a/packages/frontend/apps/mobile/src/components/workspace-selector/index.tsx b/packages/frontend/core/src/mobile/components/workspace-selector/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/workspace-selector/index.tsx
rename to packages/frontend/core/src/mobile/components/workspace-selector/index.tsx
diff --git a/packages/frontend/apps/mobile/src/components/workspace-selector/menu.css.ts b/packages/frontend/core/src/mobile/components/workspace-selector/menu.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/workspace-selector/menu.css.ts
rename to packages/frontend/core/src/mobile/components/workspace-selector/menu.css.ts
diff --git a/packages/frontend/apps/mobile/src/components/workspace-selector/menu.tsx b/packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/components/workspace-selector/menu.tsx
rename to packages/frontend/core/src/mobile/components/workspace-selector/menu.tsx
diff --git a/packages/frontend/apps/mobile/src/hooks/use-global-events.ts b/packages/frontend/core/src/mobile/hooks/use-global-events.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/hooks/use-global-events.ts
rename to packages/frontend/core/src/mobile/hooks/use-global-events.ts
diff --git a/packages/frontend/apps/mobile/src/modules/index.ts b/packages/frontend/core/src/mobile/modules/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/modules/index.ts
rename to packages/frontend/core/src/mobile/modules/index.ts
diff --git a/packages/frontend/apps/mobile/src/modules/search/index.ts b/packages/frontend/core/src/mobile/modules/search/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/modules/search/index.ts
rename to packages/frontend/core/src/mobile/modules/search/index.ts
diff --git a/packages/frontend/apps/mobile/src/modules/search/service/search.ts b/packages/frontend/core/src/mobile/modules/search/service/search.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/modules/search/service/search.ts
rename to packages/frontend/core/src/mobile/modules/search/service/search.ts
diff --git a/packages/frontend/apps/mobile/src/pages/404.tsx b/packages/frontend/core/src/mobile/pages/404.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/404.tsx
rename to packages/frontend/core/src/mobile/pages/404.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/auth.tsx b/packages/frontend/core/src/mobile/pages/auth.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/auth.tsx
rename to packages/frontend/core/src/mobile/pages/auth.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/index.tsx b/packages/frontend/core/src/mobile/pages/index.tsx
similarity index 68%
rename from packages/frontend/apps/mobile/src/pages/index.tsx
rename to packages/frontend/core/src/mobile/pages/index.tsx
index c156d0fb6b..aed12fe284 100644
--- a/packages/frontend/apps/mobile/src/pages/index.tsx
+++ b/packages/frontend/core/src/mobile/pages/index.tsx
@@ -1,4 +1,4 @@
-import { Component as IndexComponent } from '@affine/core/pages/index';
+import { Component as IndexComponent } from '@affine/core/desktop/pages/index';
// Default route fallback for mobile
diff --git a/packages/frontend/apps/mobile/src/pages/sign-in.tsx b/packages/frontend/core/src/mobile/pages/sign-in.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/sign-in.tsx
rename to packages/frontend/core/src/mobile/pages/sign-in.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/all.tsx b/packages/frontend/core/src/mobile/pages/workspace/all.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/all.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/all.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/collection/detail.tsx b/packages/frontend/core/src/mobile/pages/workspace/collection/detail.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/collection/detail.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/collection/detail.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/collection/index.tsx b/packages/frontend/core/src/mobile/pages/workspace/collection/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/collection/index.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/collection/index.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/journal-icon-button.tsx b/packages/frontend/core/src/mobile/pages/workspace/detail/journal-icon-button.tsx
similarity index 91%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/journal-icon-button.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/detail/journal-icon-button.tsx
index c697e4c169..a5f4e9eac6 100644
--- a/packages/frontend/apps/mobile/src/pages/workspace/detail/journal-icon-button.tsx
+++ b/packages/frontend/core/src/mobile/pages/workspace/detail/journal-icon-button.tsx
@@ -1,6 +1,6 @@
import { IconButton, MobileMenu } from '@affine/component';
import { useJournalInfoHelper } from '@affine/core/components/hooks/use-journal';
-import { EditorJournalPanel } from '@affine/core/pages/workspace/detail-page/tabs/journal';
+import { EditorJournalPanel } from '@affine/core/desktop/pages/workspace/detail-page/tabs/journal';
import { TodayIcon, TomorrowIcon, YesterdayIcon } from '@blocksuite/icons/rc';
import { useService, WorkspaceService } from '@toeverything/infra';
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.css.ts b/packages/frontend/core/src/mobile/pages/workspace/detail/mobile-detail-page.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.css.ts
rename to packages/frontend/core/src/mobile/pages/workspace/detail/mobile-detail-page.css.ts
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.tsx b/packages/frontend/core/src/mobile/pages/workspace/detail/mobile-detail-page.tsx
similarity index 98%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/detail/mobile-detail-page.tsx
index 6d4477ca31..e58b4d0b8c 100644
--- a/packages/frontend/apps/mobile/src/pages/workspace/detail/mobile-detail-page.tsx
+++ b/packages/frontend/core/src/mobile/pages/workspace/detail/mobile-detail-page.tsx
@@ -7,10 +7,10 @@ import { useDocMetaHelper } from '@affine/core/components/hooks/use-block-suite-
import { usePageDocumentTitle } from '@affine/core/components/hooks/use-global-state';
import { useNavigateHelper } from '@affine/core/components/hooks/use-navigate-helper';
import { PageDetailEditor } from '@affine/core/components/page-detail-editor';
+import { DetailPageWrapper } from '@affine/core/desktop/pages/workspace/detail-page/detail-page-wrapper';
import { EditorService } from '@affine/core/modules/editor';
import { WorkbenchService } from '@affine/core/modules/workbench';
import { ViewService } from '@affine/core/modules/workbench/services/view';
-import { DetailPageWrapper } from '@affine/core/pages/workspace/detail-page/detail-page-wrapper';
import {
BookmarkBlockService,
customImageProxyMiddleware,
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-more-button.css.ts b/packages/frontend/core/src/mobile/pages/workspace/detail/page-header-more-button.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-more-button.css.ts
rename to packages/frontend/core/src/mobile/pages/workspace/detail/page-header-more-button.css.ts
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-more-button.tsx b/packages/frontend/core/src/mobile/pages/workspace/detail/page-header-more-button.tsx
similarity index 97%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-more-button.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/detail/page-header-more-button.tsx
index f16a535fec..7047c0a9b1 100644
--- a/packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-more-button.tsx
+++ b/packages/frontend/core/src/mobile/pages/workspace/detail/page-header-more-button.tsx
@@ -6,9 +6,9 @@ import {
} from '@affine/component/ui/menu';
import { useFavorite } from '@affine/core/components/blocksuite/block-suite-header/favorite';
import { IsFavoriteIcon } from '@affine/core/components/pure/icons';
+import { EditorOutlinePanel } from '@affine/core/desktop/pages/workspace/detail-page/tabs/outline';
import { EditorService } from '@affine/core/modules/editor';
import { ViewService } from '@affine/core/modules/workbench/services/view';
-import { EditorOutlinePanel } from '@affine/core/pages/workspace/detail-page/tabs/outline';
import { preventDefault } from '@affine/core/utils';
import { useI18n } from '@affine/i18n';
import { track } from '@affine/track';
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-share-button.css.ts b/packages/frontend/core/src/mobile/pages/workspace/detail/page-header-share-button.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-share-button.css.ts
rename to packages/frontend/core/src/mobile/pages/workspace/detail/page-header-share-button.css.ts
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-share-button.tsx b/packages/frontend/core/src/mobile/pages/workspace/detail/page-header-share-button.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/page-header-share-button.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/detail/page-header-share-button.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/sheets/doc-info.css.ts b/packages/frontend/core/src/mobile/pages/workspace/detail/sheets/doc-info.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/sheets/doc-info.css.ts
rename to packages/frontend/core/src/mobile/pages/workspace/detail/sheets/doc-info.css.ts
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/detail/sheets/doc-info.tsx b/packages/frontend/core/src/mobile/pages/workspace/detail/sheets/doc-info.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/detail/sheets/doc-info.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/detail/sheets/doc-info.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/home.tsx b/packages/frontend/core/src/mobile/pages/workspace/home.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/home.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/home.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/index.tsx b/packages/frontend/core/src/mobile/pages/workspace/index.tsx
similarity index 89%
rename from packages/frontend/apps/mobile/src/pages/workspace/index.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/index.tsx
index 9e3251c0ba..16f39ca6f6 100644
--- a/packages/frontend/apps/mobile/src/pages/workspace/index.tsx
+++ b/packages/frontend/core/src/mobile/pages/workspace/index.tsx
@@ -1,7 +1,8 @@
import { AffineErrorBoundary } from '@affine/core/components/affine/affine-error-boundary';
import { AppFallback } from '@affine/core/components/affine/app-container';
-import { PageNotFound } from '@affine/core/pages/404';
-import { MobileWorkbenchRoot } from '@affine/core/pages/workspace/workbench-root';
+import { PageNotFound } from '@affine/core/desktop/pages/404';
+import { MobileWorkbenchRoot } from '@affine/core/desktop/pages/workspace/workbench-root';
+import { workbenchRoutes } from '@affine/core/mobile/workbench-router';
import {
useLiveData,
useServices,
@@ -21,7 +22,6 @@ import {
useParams,
} from 'react-router-dom';
-import { viewRoutes } from '../../router';
import { WorkspaceLayout } from './layout';
type Route = { Component: React.ComponentType };
@@ -38,7 +38,7 @@ const MobileRouteContainer = ({ route }: { route: Route }) => {
);
};
-const warpedRoutes = viewRoutes.map((originalRoute: RouteObject) => {
+const warpedRoutes = workbenchRoutes.map((originalRoute: RouteObject) => {
if (originalRoute.Component || !originalRoute.lazy) {
return originalRoute;
}
@@ -82,8 +82,9 @@ export const Component = () => {
match.params.docId &&
match.params.workspaceId &&
// TODO(eyhn): need a better way to check if it's a docId
- viewRoutes.find(route => matchPath(route.path, '/' + match.params.docId))
- ?.path === '/:pageId'
+ workbenchRoutes.find(route =>
+ matchPath(route.path, '/' + match.params.docId)
+ )?.path === '/:pageId'
) {
return {
docId: match.params.docId,
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/layout.tsx b/packages/frontend/core/src/mobile/pages/workspace/layout.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/layout.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/layout.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/search.tsx b/packages/frontend/core/src/mobile/pages/workspace/search.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/search.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/search.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/tag/detail.tsx b/packages/frontend/core/src/mobile/pages/workspace/tag/detail.tsx
similarity index 94%
rename from packages/frontend/apps/mobile/src/pages/workspace/tag/detail.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/tag/detail.tsx
index a2bfb3c824..295b0e6695 100644
--- a/packages/frontend/apps/mobile/src/pages/workspace/tag/detail.tsx
+++ b/packages/frontend/core/src/mobile/pages/workspace/tag/detail.tsx
@@ -1,6 +1,6 @@
import { useThemeColorV2 } from '@affine/component';
+import { PageNotFound } from '@affine/core/desktop/pages/404';
import { TagService } from '@affine/core/modules/tag';
-import { PageNotFound } from '@affine/core/pages/404';
import {
GlobalContextService,
useLiveData,
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/tag/index.tsx b/packages/frontend/core/src/mobile/pages/workspace/tag/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/tag/index.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/tag/index.tsx
diff --git a/packages/frontend/apps/mobile/src/pages/workspace/trash.tsx b/packages/frontend/core/src/mobile/pages/workspace/trash.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/pages/workspace/trash.tsx
rename to packages/frontend/core/src/mobile/pages/workspace/trash.tsx
diff --git a/packages/frontend/apps/mobile/src/provider/model-provider.tsx b/packages/frontend/core/src/mobile/provider/model-provider.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/provider/model-provider.tsx
rename to packages/frontend/core/src/mobile/provider/model-provider.tsx
diff --git a/packages/frontend/apps/mobile/src/router.tsx b/packages/frontend/core/src/mobile/router.tsx
similarity index 57%
rename from packages/frontend/apps/mobile/src/router.tsx
rename to packages/frontend/core/src/mobile/router.tsx
index 6ed8da075d..ff11999b53 100644
--- a/packages/frontend/apps/mobile/src/router.tsx
+++ b/packages/frontend/core/src/mobile/router.tsx
@@ -10,13 +10,6 @@ import {
useNavigate,
} from 'react-router-dom';
-import { Component as All } from './pages/workspace/all';
-import { Component as Collection } from './pages/workspace/collection';
-import { Component as CollectionDetail } from './pages/workspace/collection/detail';
-import { Component as Home } from './pages/workspace/home';
-import { Component as Search } from './pages/workspace/search';
-import { Component as Tag } from './pages/workspace/tag';
-import { Component as TagDetail } from './pages/workspace/tag/detail';
import { AllWorkspaceModals } from './provider/model-provider';
function RootRouter() {
@@ -71,26 +64,26 @@ export const topLevelRoutes = [
path: '/magic-link',
lazy: () =>
import(
- /* webpackChunkName: "auth" */ '@affine/core/pages/auth/magic-link'
+ /* webpackChunkName: "auth" */ '@affine/core/desktop/pages/auth/magic-link'
),
},
{
path: '/oauth/login',
lazy: () =>
import(
- /* webpackChunkName: "auth" */ '@affine/core/pages/auth/oauth-login'
+ /* webpackChunkName: "auth" */ '@affine/core/desktop/pages/auth/oauth-login'
),
},
{
path: '/oauth/callback',
lazy: () =>
import(
- /* webpackChunkName: "auth" */ '@affine/core/pages/auth/oauth-callback'
+ /* webpackChunkName: "auth" */ '@affine/core/desktop/pages/auth/oauth-callback'
),
},
{
path: '/redirect-proxy',
- lazy: () => import('@affine/core/pages/redirect'),
+ lazy: () => import('@affine/core/desktop/pages/redirect'),
},
{
path: '*',
@@ -100,53 +93,6 @@ export const topLevelRoutes = [
},
] satisfies [RouteObject, ...RouteObject[]];
-export const viewRoutes = [
- {
- path: '/home',
- Component: Home,
- },
- {
- path: '/search',
- Component: Search,
- },
- {
- path: '/all',
- Component: All,
- },
- {
- path: '/collection',
- // lazy: () => import('./pages/workspace/collection/index'),
- Component: Collection,
- },
- {
- path: '/collection/:collectionId',
- // lazy: () => import('./pages/workspace/collection/detail'),
- Component: CollectionDetail,
- },
- {
- path: '/tag',
- // lazy: () => import('./pages/workspace/tag/index'),
- Component: Tag,
- },
- {
- path: '/tag/:tagId',
- // lazy: () => import('./pages/workspace/tag/detail'),
- Component: TagDetail,
- },
- {
- path: '/trash',
- lazy: () => import('./pages/workspace/trash'),
- },
- {
- path: '/:pageId',
- lazy: () => import('./pages/workspace/detail/mobile-detail-page'),
- },
- {
- path: '*',
- lazy: () => import('./pages/404'),
- },
-] satisfies [RouteObject, ...RouteObject[]];
-
const createBrowserRouter = wrapCreateBrowserRouter(
reactRouterCreateBrowserRouter
);
diff --git a/packages/frontend/apps/mobile/src/styles/mobile.css.ts b/packages/frontend/core/src/mobile/styles/mobile.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/styles/mobile.css.ts
rename to packages/frontend/core/src/mobile/styles/mobile.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/README.md b/packages/frontend/core/src/mobile/views/README.md
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/README.md
rename to packages/frontend/core/src/mobile/views/README.md
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/detail.css.ts b/packages/frontend/core/src/mobile/views/all-docs/collection/detail.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/detail.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/collection/detail.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/detail.tsx b/packages/frontend/core/src/mobile/views/all-docs/collection/detail.tsx
similarity index 94%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/detail.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/collection/detail.tsx
index f8498d39fe..66c5bb2d57 100644
--- a/packages/frontend/apps/mobile/src/views/all-docs/collection/detail.tsx
+++ b/packages/frontend/core/src/mobile/views/all-docs/collection/detail.tsx
@@ -1,6 +1,6 @@
import { IconButton, MobileMenu } from '@affine/component';
import { EmptyCollectionDetail } from '@affine/core/components/affine/empty';
-import { isEmptyCollection } from '@affine/core/pages/workspace/collection';
+import { isEmptyCollection } from '@affine/core/desktop/pages/workspace/collection';
import type { Collection } from '@affine/env/filter';
import { MoreHorizontalIcon, ViewLayersIcon } from '@blocksuite/icons/rc';
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/empty.tsx b/packages/frontend/core/src/mobile/views/all-docs/collection/empty.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/empty.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/collection/empty.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/index.ts b/packages/frontend/core/src/mobile/views/all-docs/collection/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/index.ts
rename to packages/frontend/core/src/mobile/views/all-docs/collection/index.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/item.tsx b/packages/frontend/core/src/mobile/views/all-docs/collection/item.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/item.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/collection/item.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/list.tsx b/packages/frontend/core/src/mobile/views/all-docs/collection/list.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/list.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/collection/list.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/collection/styles.css.ts b/packages/frontend/core/src/mobile/views/all-docs/collection/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/collection/styles.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/collection/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/index.ts b/packages/frontend/core/src/mobile/views/all-docs/doc/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/index.ts
rename to packages/frontend/core/src/mobile/views/all-docs/doc/index.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/list.css.ts b/packages/frontend/core/src/mobile/views/all-docs/doc/list.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/list.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/doc/list.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/list.tsx b/packages/frontend/core/src/mobile/views/all-docs/doc/list.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/list.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/doc/list.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/masonry.css.ts b/packages/frontend/core/src/mobile/views/all-docs/doc/masonry.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/masonry.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/doc/masonry.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/masonry.tsx b/packages/frontend/core/src/mobile/views/all-docs/doc/masonry.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/masonry.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/doc/masonry.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/menu.css.ts b/packages/frontend/core/src/mobile/views/all-docs/doc/menu.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/menu.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/doc/menu.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/doc/menu.tsx b/packages/frontend/core/src/mobile/views/all-docs/doc/menu.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/doc/menu.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/doc/menu.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/header.tsx b/packages/frontend/core/src/mobile/views/all-docs/header.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/header.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/header.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/index.ts b/packages/frontend/core/src/mobile/views/all-docs/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/index.ts
rename to packages/frontend/core/src/mobile/views/all-docs/index.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/style.css.ts b/packages/frontend/core/src/mobile/views/all-docs/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/style.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tabs.tsx b/packages/frontend/core/src/mobile/views/all-docs/tabs.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tabs.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tabs.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/detail-header.tsx b/packages/frontend/core/src/mobile/views/all-docs/tag/detail-header.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/detail-header.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tag/detail-header.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/detail.css.ts b/packages/frontend/core/src/mobile/views/all-docs/tag/detail.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/detail.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/tag/detail.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/detail.tsx b/packages/frontend/core/src/mobile/views/all-docs/tag/detail.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/detail.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tag/detail.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/empty.tsx b/packages/frontend/core/src/mobile/views/all-docs/tag/empty.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/empty.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tag/empty.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/index.ts b/packages/frontend/core/src/mobile/views/all-docs/tag/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/index.ts
rename to packages/frontend/core/src/mobile/views/all-docs/tag/index.ts
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/item.tsx b/packages/frontend/core/src/mobile/views/all-docs/tag/item.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/item.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tag/item.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/list.tsx b/packages/frontend/core/src/mobile/views/all-docs/tag/list.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/list.tsx
rename to packages/frontend/core/src/mobile/views/all-docs/tag/list.tsx
diff --git a/packages/frontend/apps/mobile/src/views/all-docs/tag/styles.css.ts b/packages/frontend/core/src/mobile/views/all-docs/tag/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/all-docs/tag/styles.css.ts
rename to packages/frontend/core/src/mobile/views/all-docs/tag/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/home-header/index.tsx b/packages/frontend/core/src/mobile/views/home-header/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/home-header/index.tsx
rename to packages/frontend/core/src/mobile/views/home-header/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/home-header/styles.css.ts b/packages/frontend/core/src/mobile/views/home-header/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/home-header/styles.css.ts
rename to packages/frontend/core/src/mobile/views/home-header/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/index.ts b/packages/frontend/core/src/mobile/views/index.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/index.ts
rename to packages/frontend/core/src/mobile/views/index.ts
diff --git a/packages/frontend/apps/mobile/src/views/recent-docs/index.tsx b/packages/frontend/core/src/mobile/views/recent-docs/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/recent-docs/index.tsx
rename to packages/frontend/core/src/mobile/views/recent-docs/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/recent-docs/styles.css.ts b/packages/frontend/core/src/mobile/views/recent-docs/styles.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/recent-docs/styles.css.ts
rename to packages/frontend/core/src/mobile/views/recent-docs/styles.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/search/search-results.tsx b/packages/frontend/core/src/mobile/views/search/search-results.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/search/search-results.tsx
rename to packages/frontend/core/src/mobile/views/search/search-results.tsx
diff --git a/packages/frontend/apps/mobile/src/views/search/style.css.ts b/packages/frontend/core/src/mobile/views/search/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/search/style.css.ts
rename to packages/frontend/core/src/mobile/views/search/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/settings/about/index.tsx b/packages/frontend/core/src/mobile/views/settings/about/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/about/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/about/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/appearance/font.tsx b/packages/frontend/core/src/mobile/views/settings/appearance/font.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/appearance/font.tsx
rename to packages/frontend/core/src/mobile/views/settings/appearance/font.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/appearance/index.tsx b/packages/frontend/core/src/mobile/views/settings/appearance/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/appearance/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/appearance/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/appearance/language.tsx b/packages/frontend/core/src/mobile/views/settings/appearance/language.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/appearance/language.tsx
rename to packages/frontend/core/src/mobile/views/settings/appearance/language.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/appearance/theme.tsx b/packages/frontend/core/src/mobile/views/settings/appearance/theme.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/appearance/theme.tsx
rename to packages/frontend/core/src/mobile/views/settings/appearance/theme.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/dropdown-select.css.ts b/packages/frontend/core/src/mobile/views/settings/dropdown-select.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/dropdown-select.css.ts
rename to packages/frontend/core/src/mobile/views/settings/dropdown-select.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/settings/dropdown-select.tsx b/packages/frontend/core/src/mobile/views/settings/dropdown-select.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/dropdown-select.tsx
rename to packages/frontend/core/src/mobile/views/settings/dropdown-select.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/group.css.ts b/packages/frontend/core/src/mobile/views/settings/group.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/group.css.ts
rename to packages/frontend/core/src/mobile/views/settings/group.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/settings/group.tsx b/packages/frontend/core/src/mobile/views/settings/group.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/group.tsx
rename to packages/frontend/core/src/mobile/views/settings/group.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/index.tsx b/packages/frontend/core/src/mobile/views/settings/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/others/index.tsx b/packages/frontend/core/src/mobile/views/settings/others/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/others/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/others/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/row.layout.tsx b/packages/frontend/core/src/mobile/views/settings/row.layout.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/row.layout.tsx
rename to packages/frontend/core/src/mobile/views/settings/row.layout.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/style.css.ts b/packages/frontend/core/src/mobile/views/settings/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/style.css.ts
rename to packages/frontend/core/src/mobile/views/settings/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/settings/user-profile/index.tsx b/packages/frontend/core/src/mobile/views/settings/user-profile/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/user-profile/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/user-profile/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/user-profile/style.css.ts b/packages/frontend/core/src/mobile/views/settings/user-profile/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/user-profile/style.css.ts
rename to packages/frontend/core/src/mobile/views/settings/user-profile/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/settings/user-usage/index.tsx b/packages/frontend/core/src/mobile/views/settings/user-usage/index.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/user-usage/index.tsx
rename to packages/frontend/core/src/mobile/views/settings/user-usage/index.tsx
diff --git a/packages/frontend/apps/mobile/src/views/settings/user-usage/style.css.ts b/packages/frontend/core/src/mobile/views/settings/user-usage/style.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/settings/user-usage/style.css.ts
rename to packages/frontend/core/src/mobile/views/settings/user-usage/style.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/art-dark.inline.svg b/packages/frontend/core/src/mobile/views/sign-in/art-dark.inline.svg
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/art-dark.inline.svg
rename to packages/frontend/core/src/mobile/views/sign-in/art-dark.inline.svg
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/art-light.inline.svg b/packages/frontend/core/src/mobile/views/sign-in/art-light.inline.svg
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/art-light.inline.svg
rename to packages/frontend/core/src/mobile/views/sign-in/art-light.inline.svg
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/background.css.ts b/packages/frontend/core/src/mobile/views/sign-in/background.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/background.css.ts
rename to packages/frontend/core/src/mobile/views/sign-in/background.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/background.tsx b/packages/frontend/core/src/mobile/views/sign-in/background.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/background.tsx
rename to packages/frontend/core/src/mobile/views/sign-in/background.tsx
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/layout.css.ts b/packages/frontend/core/src/mobile/views/sign-in/layout.css.ts
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/layout.css.ts
rename to packages/frontend/core/src/mobile/views/sign-in/layout.css.ts
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/layout.tsx b/packages/frontend/core/src/mobile/views/sign-in/layout.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/layout.tsx
rename to packages/frontend/core/src/mobile/views/sign-in/layout.tsx
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/mobile-sign-in.tsx b/packages/frontend/core/src/mobile/views/sign-in/mobile-sign-in.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/mobile-sign-in.tsx
rename to packages/frontend/core/src/mobile/views/sign-in/mobile-sign-in.tsx
diff --git a/packages/frontend/apps/mobile/src/views/sign-in/modal.tsx b/packages/frontend/core/src/mobile/views/sign-in/modal.tsx
similarity index 100%
rename from packages/frontend/apps/mobile/src/views/sign-in/modal.tsx
rename to packages/frontend/core/src/mobile/views/sign-in/modal.tsx
diff --git a/packages/frontend/core/src/mobile/workbench-router.ts b/packages/frontend/core/src/mobile/workbench-router.ts
new file mode 100644
index 0000000000..03de0f009c
--- /dev/null
+++ b/packages/frontend/core/src/mobile/workbench-router.ts
@@ -0,0 +1,56 @@
+import type { RouteObject } from 'react-router-dom';
+
+import { Component as All } from './pages/workspace/all';
+import { Component as Collection } from './pages/workspace/collection';
+import { Component as CollectionDetail } from './pages/workspace/collection/detail';
+import { Component as Home } from './pages/workspace/home';
+import { Component as Search } from './pages/workspace/search';
+import { Component as Tag } from './pages/workspace/tag';
+import { Component as TagDetail } from './pages/workspace/tag/detail';
+
+export const workbenchRoutes = [
+ {
+ path: '/home',
+ Component: Home,
+ },
+ {
+ path: '/search',
+ Component: Search,
+ },
+ {
+ path: '/all',
+ Component: All,
+ },
+ {
+ path: '/collection',
+ // lazy: () => import('./pages/workspace/collection/index'),
+ Component: Collection,
+ },
+ {
+ path: '/collection/:collectionId',
+ // lazy: () => import('./pages/workspace/collection/detail'),
+ Component: CollectionDetail,
+ },
+ {
+ path: '/tag',
+ // lazy: () => import('./pages/workspace/tag/index'),
+ Component: Tag,
+ },
+ {
+ path: '/tag/:tagId',
+ // lazy: () => import('./pages/workspace/tag/detail'),
+ Component: TagDetail,
+ },
+ {
+ path: '/trash',
+ lazy: () => import('./pages/workspace/trash'),
+ },
+ {
+ path: '/:pageId',
+ lazy: () => import('./pages/workspace/detail/mobile-detail-page'),
+ },
+ {
+ path: '*',
+ lazy: () => import('./pages/404'),
+ },
+] satisfies [RouteObject, ...RouteObject[]];
diff --git a/packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx b/packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx
index 48248fb94a..896d9b10dd 100644
--- a/packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx
+++ b/packages/frontend/core/src/modules/peek-view/view/doc-preview/doc-peek-view.tsx
@@ -4,8 +4,8 @@ import { AIProvider } from '@affine/core/blocksuite/presets/ai';
import { AffineErrorBoundary } from '@affine/core/components/affine/affine-error-boundary';
import { BlockSuiteEditor } from '@affine/core/components/blocksuite/block-suite-editor';
import { EditorOutlineViewer } from '@affine/core/components/blocksuite/outline-viewer';
+import { PageNotFound } from '@affine/core/desktop/pages/404';
import { EditorService } from '@affine/core/modules/editor';
-import { PageNotFound } from '@affine/core/pages/404';
import { DebugLogger } from '@affine/debug';
import {
type DocMode,
diff --git a/packages/frontend/core/src/modules/workbench/view/workbench-root.tsx b/packages/frontend/core/src/modules/workbench/view/workbench-root.tsx
index 81a5799015..ef7ffb5a21 100644
--- a/packages/frontend/core/src/modules/workbench/view/workbench-root.tsx
+++ b/packages/frontend/core/src/modules/workbench/view/workbench-root.tsx
@@ -1,6 +1,6 @@
import { ResizePanel } from '@affine/component/resize-panel';
import { rightSidebarWidthAtom } from '@affine/core/components/atoms';
-import { workspaceRoutes } from '@affine/core/workspace-router';
+import { workbenchRoutes } from '@affine/core/desktop/workbench-router';
import {
appSettingAtom,
FrameworkScope,
@@ -29,7 +29,7 @@ const useAdapter = BUILD_CONFIG.isElectron
const routes: RouteObject[] = [
{
element: ,
- children: workspaceRoutes,
+ children: workbenchRoutes,
},
];
diff --git a/packages/frontend/core/src/pages/ai-upgrade-success.tsx b/packages/frontend/core/src/pages/ai-upgrade-success.tsx
deleted file mode 100644
index 6cbf125380..0000000000
--- a/packages/frontend/core/src/pages/ai-upgrade-success.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { AIUpgradeSuccess } from '../components/affine/subscription-landing';
-
-export const Component = () => {
- return ;
-};
diff --git a/packages/frontend/core/src/pages/upgrade-success.tsx b/packages/frontend/core/src/pages/upgrade-success.tsx
deleted file mode 100644
index 61c5b8f946..0000000000
--- a/packages/frontend/core/src/pages/upgrade-success.tsx
+++ /dev/null
@@ -1,5 +0,0 @@
-import { CloudUpgradeSuccess } from '../components/affine/subscription-landing';
-
-export const Component = () => {
- return ;
-};
diff --git a/yarn.lock b/yarn.lock
index 4a44671987..9698b61d43 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -686,7 +686,6 @@ __metadata:
"@vanilla-extract/dynamic": "npm:^2.1.2"
clsx: "npm:^2.1.1"
cross-env: "npm:^7.0.3"
- figma-squircle: "npm:^1.0.0"
jotai: "npm:^2.9.3"
jotai-effect: "npm:^1.0.2"
jotai-scope: "npm:^0.7.2"
@@ -22144,13 +22143,6 @@ __metadata:
languageName: node
linkType: hard
-"figma-squircle@npm:^1.0.0":
- version: 1.0.0
- resolution: "figma-squircle@npm:1.0.0"
- checksum: 10/6f981c06bd66e4da16b7b9742dc830ff0745d88cac2fc87c058a3cacea7087be2734117229f1553700a38cc6c54ade6d05dbba9328ae00f0f378f6a4a008abef
- languageName: node
- linkType: hard
-
"figures@npm:3.2.0, figures@npm:^3.0.0":
version: 3.2.0
resolution: "figures@npm:3.2.0"