diff --git a/blocksuite/affine/all/package.json b/blocksuite/affine/all/package.json index 7fa3df492c..22cb37d202 100644 --- a/blocksuite/affine/all/package.json +++ b/blocksuite/affine/all/package.json @@ -37,6 +37,7 @@ "@blocksuite/affine-fragment-frame-panel": "workspace:*", "@blocksuite/affine-fragment-outline": "workspace:*", "@blocksuite/affine-gfx-text": "workspace:*", + "@blocksuite/affine-gfx-turbo-renderer": "workspace:*", "@blocksuite/affine-model": "workspace:*", "@blocksuite/affine-rich-text": "workspace:*", "@blocksuite/affine-shared": "workspace:*", @@ -106,6 +107,7 @@ "./fragments/frame-panel": "./src/fragments/frame-panel.ts", "./fragments/outline": "./src/fragments/outline.ts", "./gfx/text": "./src/gfx/text.ts", + "./gfx/turbo-renderer": "./src/gfx/turbo-renderer.ts", "./components/block-selection": "./src/components/block-selection.ts", "./components/block-zero-width": "./src/components/block-zero-width.ts", "./components/caption": "./src/components/caption.ts", diff --git a/blocksuite/affine/all/src/gfx/turbo-renderer.ts b/blocksuite/affine/all/src/gfx/turbo-renderer.ts new file mode 100644 index 0000000000..62e5c47541 --- /dev/null +++ b/blocksuite/affine/all/src/gfx/turbo-renderer.ts @@ -0,0 +1 @@ +export * from '@blocksuite/affine-gfx-turbo-renderer'; diff --git a/blocksuite/affine/all/src/shared/viewport-renderer.ts b/blocksuite/affine/all/src/shared/viewport-renderer.ts deleted file mode 100644 index 5bb573260c..0000000000 --- a/blocksuite/affine/all/src/shared/viewport-renderer.ts +++ /dev/null @@ -1 +0,0 @@ -export * from '@blocksuite/affine-shared/viewport-renderer'; diff --git a/blocksuite/affine/all/tsconfig.json b/blocksuite/affine/all/tsconfig.json index 77ab74d165..b78fdb84e3 100644 --- a/blocksuite/affine/all/tsconfig.json +++ b/blocksuite/affine/all/tsconfig.json @@ -31,6 +31,7 @@ { "path": "../fragments/fragment-frame-panel" }, { "path": "../fragments/fragment-outline" }, { "path": "../gfx/text" }, + { "path": "../gfx/turbo-renderer" }, { "path": "../model" }, { "path": "../rich-text" }, { "path": "../shared" }, diff --git a/blocksuite/affine/gfx/turbo-renderer/package.json b/blocksuite/affine/gfx/turbo-renderer/package.json new file mode 100644 index 0000000000..608693488b --- /dev/null +++ b/blocksuite/affine/gfx/turbo-renderer/package.json @@ -0,0 +1,32 @@ +{ + "name": "@blocksuite/affine-gfx-turbo-renderer", + "description": "Turbo renderer for viewport in BlockSuite.", + "type": "module", + "scripts": { + "build": "tsc", + "test:unit": "nx vite:test --run --passWithNoTests", + "test:unit:coverage": "nx vite:test --run --coverage", + "test:e2e": "playwright test" + }, + "sideEffects": false, + "keywords": [], + "author": "toeverything", + "license": "MIT", + "dependencies": { + "@blocksuite/block-std": "workspace:*", + "@blocksuite/global": "workspace:*", + "@types/lodash-es": "^4.17.12", + "lodash-es": "^4.17.21", + "tweakpane": "^4.0.5" + }, + "exports": { + ".": "./src/index.ts" + }, + "files": [ + "src", + "dist", + "!src/__tests__", + "!dist/__tests__" + ], + "version": "0.20.0" +} diff --git a/blocksuite/affine/gfx/turbo-renderer/src/index.ts b/blocksuite/affine/gfx/turbo-renderer/src/index.ts new file mode 100644 index 0000000000..13662850f3 --- /dev/null +++ b/blocksuite/affine/gfx/turbo-renderer/src/index.ts @@ -0,0 +1,2 @@ +export * from './turbo-renderer.js'; +export * from './types.js'; diff --git a/blocksuite/affine/shared/src/viewport-renderer/painter.worker.ts b/blocksuite/affine/gfx/turbo-renderer/src/painter.worker.ts similarity index 100% rename from blocksuite/affine/shared/src/viewport-renderer/painter.worker.ts rename to blocksuite/affine/gfx/turbo-renderer/src/painter.worker.ts diff --git a/blocksuite/affine/shared/src/viewport-renderer/renderer-utils.ts b/blocksuite/affine/gfx/turbo-renderer/src/renderer-utils.ts similarity index 98% rename from blocksuite/affine/shared/src/viewport-renderer/renderer-utils.ts rename to blocksuite/affine/gfx/turbo-renderer/src/renderer-utils.ts index 2d996791db..977a91fb06 100644 --- a/blocksuite/affine/shared/src/viewport-renderer/renderer-utils.ts +++ b/blocksuite/affine/gfx/turbo-renderer/src/renderer-utils.ts @@ -8,12 +8,12 @@ import { import { Pane } from 'tweakpane'; import { getSentenceRects, segmentSentences } from './text-utils.js'; +import type { ViewportTurboRendererExtension } from './turbo-renderer.js'; import type { ParagraphLayout, RenderingState, ViewportLayout, } from './types.js'; -import type { ViewportTurboRendererExtension } from './viewport-renderer.js'; export function syncCanvasSize(canvas: HTMLCanvasElement, host: HTMLElement) { const hostRect = host.getBoundingClientRect(); diff --git a/blocksuite/affine/shared/src/viewport-renderer/text-utils.ts b/blocksuite/affine/gfx/turbo-renderer/src/text-utils.ts similarity index 100% rename from blocksuite/affine/shared/src/viewport-renderer/text-utils.ts rename to blocksuite/affine/gfx/turbo-renderer/src/text-utils.ts diff --git a/blocksuite/affine/shared/src/viewport-renderer/viewport-renderer.ts b/blocksuite/affine/gfx/turbo-renderer/src/turbo-renderer.ts similarity index 100% rename from blocksuite/affine/shared/src/viewport-renderer/viewport-renderer.ts rename to blocksuite/affine/gfx/turbo-renderer/src/turbo-renderer.ts diff --git a/blocksuite/affine/shared/src/viewport-renderer/types.ts b/blocksuite/affine/gfx/turbo-renderer/src/types.ts similarity index 100% rename from blocksuite/affine/shared/src/viewport-renderer/types.ts rename to blocksuite/affine/gfx/turbo-renderer/src/types.ts diff --git a/blocksuite/affine/gfx/turbo-renderer/tsconfig.json b/blocksuite/affine/gfx/turbo-renderer/tsconfig.json new file mode 100644 index 0000000000..24a4998428 --- /dev/null +++ b/blocksuite/affine/gfx/turbo-renderer/tsconfig.json @@ -0,0 +1,13 @@ +{ + "extends": "../../../tsconfig.json", + "compilerOptions": { + "rootDir": "./src", + "outDir": "./dist", + "tsBuildInfoFile": "./dist/tsconfig.tsbuildinfo" + }, + "include": ["./src"], + "references": [ + { "path": "../../../framework/block-std" }, + { "path": "../../../framework/global" } + ] +} diff --git a/blocksuite/affine/shared/package.json b/blocksuite/affine/shared/package.json index 2576df164c..81906b8b8c 100644 --- a/blocksuite/affine/shared/package.json +++ b/blocksuite/affine/shared/package.json @@ -47,7 +47,6 @@ "remark-math": "^6.0.0", "remark-parse": "^11.0.0", "remark-stringify": "^11.0.0", - "tweakpane": "^4.0.5", "unified": "^11.0.5", "yjs": "^13.6.21", "zod": "^3.23.8" @@ -62,7 +61,6 @@ "./theme": "./src/theme/index.ts", "./styles": "./src/styles/index.ts", "./services": "./src/services/index.ts", - "./viewport-renderer": "./src/viewport-renderer/index.ts", "./adapters": "./src/adapters/index.ts" }, "files": [ diff --git a/blocksuite/affine/shared/src/viewport-renderer/index.ts b/blocksuite/affine/shared/src/viewport-renderer/index.ts deleted file mode 100644 index 00cdc723e3..0000000000 --- a/blocksuite/affine/shared/src/viewport-renderer/index.ts +++ /dev/null @@ -1,2 +0,0 @@ -export * from './types.js'; -export * from './viewport-renderer.js'; diff --git a/blocksuite/integration-test/src/__tests__/edgeless/viewport-renderer.spec.ts b/blocksuite/integration-test/src/__tests__/edgeless/viewport-renderer.spec.ts index 75f3a996a2..2d3d35e6f7 100644 --- a/blocksuite/integration-test/src/__tests__/edgeless/viewport-renderer.spec.ts +++ b/blocksuite/integration-test/src/__tests__/edgeless/viewport-renderer.spec.ts @@ -1,4 +1,4 @@ -import { ViewportTurboRendererExtension } from '@blocksuite/affine-shared/viewport-renderer'; +import { ViewportTurboRendererExtension } from '@blocksuite/affine-gfx-turbo-renderer'; import { beforeEach, describe, expect, test } from 'vitest'; import { wait } from '../utils/common.js'; diff --git a/blocksuite/integration-test/src/__tests__/utils/renderer-entry.ts b/blocksuite/integration-test/src/__tests__/utils/renderer-entry.ts index fbee8dbded..ad722e42db 100644 --- a/blocksuite/integration-test/src/__tests__/utils/renderer-entry.ts +++ b/blocksuite/integration-test/src/__tests__/utils/renderer-entry.ts @@ -1,7 +1,7 @@ import { ViewportTurboRendererExtension, ViewportTurboRendererIdentifier, -} from '@blocksuite/affine-shared/viewport-renderer'; +} from '@blocksuite/affine/gfx/turbo-renderer'; import { addSampleNotes } from './doc-generator.js'; import { setupEditor } from './setup.js'; diff --git a/blocksuite/integration-test/src/__tests__/utils/setup.ts b/blocksuite/integration-test/src/__tests__/utils/setup.ts index aa52074318..fac26f4c2b 100644 --- a/blocksuite/integration-test/src/__tests__/utils/setup.ts +++ b/blocksuite/integration-test/src/__tests__/utils/setup.ts @@ -20,7 +20,7 @@ import { CommunityCanvasTextFonts, FontConfigExtension, } from '@blocksuite/affine/shared/services'; -import type { ViewportTurboRendererExtension } from '@blocksuite/affine-shared/viewport-renderer'; +import type { ViewportTurboRendererExtension } from '@blocksuite/affine-gfx-turbo-renderer'; import { Schema, Text } from '@blocksuite/store'; import { createAutoIncrementIdGenerator, diff --git a/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx b/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx index 84461f5217..ce5622df90 100644 --- a/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx +++ b/packages/frontend/core/src/blocksuite/block-suite-editor/lit-adaper.tsx @@ -24,8 +24,8 @@ import { MemberSearchService } from '@affine/core/modules/permissions'; import { WorkspaceService } from '@affine/core/modules/workspace'; import track from '@affine/track'; import type { DocTitle } from '@blocksuite/affine/fragments/doc-title'; +import { ViewportTurboRendererExtension } from '@blocksuite/affine/gfx/turbo-renderer'; import type { DocMode } from '@blocksuite/affine/model'; -import { ViewportTurboRendererExtension } from '@blocksuite/affine/shared/viewport-renderer'; import type { Store } from '@blocksuite/affine/store'; import { useFramework, diff --git a/tools/utils/src/workspace.gen.ts b/tools/utils/src/workspace.gen.ts index 24162023d8..3b32e0775f 100644 --- a/tools/utils/src/workspace.gen.ts +++ b/tools/utils/src/workspace.gen.ts @@ -29,6 +29,7 @@ export const PackageList = [ 'blocksuite/affine/fragments/fragment-frame-panel', 'blocksuite/affine/fragments/fragment-outline', 'blocksuite/affine/gfx/text', + 'blocksuite/affine/gfx/turbo-renderer', 'blocksuite/affine/model', 'blocksuite/affine/rich-text', 'blocksuite/affine/shared', @@ -447,6 +448,14 @@ export const PackageList = [ 'blocksuite/framework/store', ], }, + { + location: 'blocksuite/affine/gfx/turbo-renderer', + name: '@blocksuite/affine-gfx-turbo-renderer', + workspaceDependencies: [ + 'blocksuite/framework/block-std', + 'blocksuite/framework/global', + ], + }, { location: 'blocksuite/affine/model', name: '@blocksuite/affine-model', @@ -942,6 +951,7 @@ export type PackageName = | '@blocksuite/affine-fragment-frame-panel' | '@blocksuite/affine-fragment-outline' | '@blocksuite/affine-gfx-text' + | '@blocksuite/affine-gfx-turbo-renderer' | '@blocksuite/affine-model' | '@blocksuite/affine-rich-text' | '@blocksuite/affine-shared' diff --git a/tsconfig.json b/tsconfig.json index 5a2f293aef..9d92724faf 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -76,6 +76,7 @@ { "path": "./blocksuite/affine/fragments/fragment-frame-panel" }, { "path": "./blocksuite/affine/fragments/fragment-outline" }, { "path": "./blocksuite/affine/gfx/text" }, + { "path": "./blocksuite/affine/gfx/turbo-renderer" }, { "path": "./blocksuite/affine/model" }, { "path": "./blocksuite/affine/rich-text" }, { "path": "./blocksuite/affine/shared" }, diff --git a/yarn.lock b/yarn.lock index d92343fa0c..0d791359c7 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2870,6 +2870,18 @@ __metadata: languageName: unknown linkType: soft +"@blocksuite/affine-gfx-turbo-renderer@workspace:*, @blocksuite/affine-gfx-turbo-renderer@workspace:blocksuite/affine/gfx/turbo-renderer": + version: 0.0.0-use.local + resolution: "@blocksuite/affine-gfx-turbo-renderer@workspace:blocksuite/affine/gfx/turbo-renderer" + dependencies: + "@blocksuite/block-std": "workspace:*" + "@blocksuite/global": "workspace:*" + "@types/lodash-es": "npm:^4.17.12" + lodash-es: "npm:^4.17.21" + tweakpane: "npm:^4.0.5" + languageName: unknown + linkType: soft + "@blocksuite/affine-model@workspace:*, @blocksuite/affine-model@workspace:blocksuite/affine/model": version: 0.0.0-use.local resolution: "@blocksuite/affine-model@workspace:blocksuite/affine/model" @@ -2959,7 +2971,6 @@ __metadata: remark-math: "npm:^6.0.0" remark-parse: "npm:^11.0.0" remark-stringify: "npm:^11.0.0" - tweakpane: "npm:^4.0.5" unified: "npm:^11.0.5" vitest: "npm:3.0.8" yjs: "npm:^13.6.21" @@ -3138,6 +3149,7 @@ __metadata: "@blocksuite/affine-fragment-frame-panel": "workspace:*" "@blocksuite/affine-fragment-outline": "workspace:*" "@blocksuite/affine-gfx-text": "workspace:*" + "@blocksuite/affine-gfx-turbo-renderer": "workspace:*" "@blocksuite/affine-model": "workspace:*" "@blocksuite/affine-rich-text": "workspace:*" "@blocksuite/affine-shared": "workspace:*"