From d8bc145465f70618a61109b13d1d960de0753d9f Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Wed, 25 Dec 2024 11:22:29 +0000 Subject: [PATCH] refactor(editor): extract bookmark block (#9304) --- blocksuite/affine/block-bookmark/package.json | 43 +++++++++++++++++++ .../block-bookmark/src}/adapters/extension.ts | 0 .../block-bookmark/src}/adapters/html.ts | 0 .../block-bookmark/src}/adapters/index.ts | 0 .../block-bookmark/src}/adapters/markdown.ts | 0 .../src}/adapters/notion-html.ts | 0 .../src}/adapters/plain-text.ts | 0 .../block-bookmark/src}/bookmark-block.ts | 3 +- .../src}/bookmark-edgeless-block.ts | 0 .../block-bookmark/src}/bookmark-service.ts | 0 .../block-bookmark/src}/bookmark-spec.ts | 0 .../block-bookmark/src}/commands/index.ts | 0 .../src}/commands/insert-bookmark.ts | 2 + .../src}/components/bookmark-card.ts | 0 .../affine/block-bookmark/src/effects.ts | 25 +++++++++++ blocksuite/affine/block-bookmark/src/index.ts | 4 ++ .../block-bookmark/src}/styles.ts | 0 .../block-bookmark/src}/utils.ts | 0 .../affine/block-bookmark/tsconfig.json | 35 +++++++++++++++ blocksuite/affine/block-embed/typedoc.json | 4 -- blocksuite/blocks/package.json | 1 + .../_common/adapters/html/block-matcher.ts | 2 +- .../adapters/markdown/block-matcher.ts | 2 +- .../adapters/notion-html/block-matcher.ts | 2 +- .../adapters/plain-text/block-matcher.ts | 2 +- .../src/_common/components/embed-card/type.ts | 3 +- blocksuite/blocks/src/_specs/common.ts | 2 +- blocksuite/blocks/src/_specs/group/common.ts | 2 +- blocksuite/blocks/src/bookmark-block/index.ts | 3 -- blocksuite/blocks/src/effects.ts | 17 +------- blocksuite/blocks/src/index.ts | 2 +- .../src/root-block/edgeless/utils/consts.ts | 2 - .../element-toolbar/more-menu/config.ts | 2 +- blocksuite/blocks/tsconfig.json | 3 ++ tools/utils/src/workspace.gen.ts | 17 ++++++++ yarn.lock | 24 +++++++++++ 36 files changed, 167 insertions(+), 35 deletions(-) create mode 100644 blocksuite/affine/block-bookmark/package.json rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/extension.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/html.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/index.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/markdown.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/notion-html.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/adapters/plain-text.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/bookmark-block.ts (97%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/bookmark-edgeless-block.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/bookmark-service.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/bookmark-spec.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/commands/index.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/commands/insert-bookmark.ts (94%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/components/bookmark-card.ts (100%) create mode 100644 blocksuite/affine/block-bookmark/src/effects.ts create mode 100644 blocksuite/affine/block-bookmark/src/index.ts rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/styles.ts (100%) rename blocksuite/{blocks/src/bookmark-block => affine/block-bookmark/src}/utils.ts (100%) create mode 100644 blocksuite/affine/block-bookmark/tsconfig.json delete mode 100644 blocksuite/affine/block-embed/typedoc.json delete mode 100644 blocksuite/blocks/src/bookmark-block/index.ts diff --git a/blocksuite/affine/block-bookmark/package.json b/blocksuite/affine/block-bookmark/package.json new file mode 100644 index 0000000000..c851131809 --- /dev/null +++ b/blocksuite/affine/block-bookmark/package.json @@ -0,0 +1,43 @@ +{ + "name": "@blocksuite/affine-block-bookmark", + "description": "Bookmark block for 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/affine-block-embed": "workspace:*", + "@blocksuite/affine-components": "workspace:*", + "@blocksuite/affine-model": "workspace:*", + "@blocksuite/affine-shared": "workspace:*", + "@blocksuite/block-std": "workspace:*", + "@blocksuite/global": "workspace:*", + "@blocksuite/icons": "^2.1.75", + "@blocksuite/inline": "workspace:*", + "@blocksuite/store": "workspace:*", + "@floating-ui/dom": "^1.6.10", + "@lit/context": "^1.1.2", + "@preact/signals-core": "^1.8.0", + "@toeverything/theme": "^1.1.1", + "lit": "^3.2.0", + "minimatch": "^10.0.1", + "zod": "^3.23.8" + }, + "exports": { + ".": "./src/index.ts", + "./effects": "./src/effects.ts" + }, + "files": [ + "src", + "dist", + "!src/__tests__", + "!dist/__tests__" + ] +} diff --git a/blocksuite/blocks/src/bookmark-block/adapters/extension.ts b/blocksuite/affine/block-bookmark/src/adapters/extension.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/extension.ts rename to blocksuite/affine/block-bookmark/src/adapters/extension.ts diff --git a/blocksuite/blocks/src/bookmark-block/adapters/html.ts b/blocksuite/affine/block-bookmark/src/adapters/html.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/html.ts rename to blocksuite/affine/block-bookmark/src/adapters/html.ts diff --git a/blocksuite/blocks/src/bookmark-block/adapters/index.ts b/blocksuite/affine/block-bookmark/src/adapters/index.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/index.ts rename to blocksuite/affine/block-bookmark/src/adapters/index.ts diff --git a/blocksuite/blocks/src/bookmark-block/adapters/markdown.ts b/blocksuite/affine/block-bookmark/src/adapters/markdown.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/markdown.ts rename to blocksuite/affine/block-bookmark/src/adapters/markdown.ts diff --git a/blocksuite/blocks/src/bookmark-block/adapters/notion-html.ts b/blocksuite/affine/block-bookmark/src/adapters/notion-html.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/notion-html.ts rename to blocksuite/affine/block-bookmark/src/adapters/notion-html.ts diff --git a/blocksuite/blocks/src/bookmark-block/adapters/plain-text.ts b/blocksuite/affine/block-bookmark/src/adapters/plain-text.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/adapters/plain-text.ts rename to blocksuite/affine/block-bookmark/src/adapters/plain-text.ts diff --git a/blocksuite/blocks/src/bookmark-block/bookmark-block.ts b/blocksuite/affine/block-bookmark/src/bookmark-block.ts similarity index 97% rename from blocksuite/blocks/src/bookmark-block/bookmark-block.ts rename to blocksuite/affine/block-bookmark/src/bookmark-block.ts index 0eee80e1fd..5908c63423 100644 --- a/blocksuite/blocks/src/bookmark-block/bookmark-block.ts +++ b/blocksuite/affine/block-bookmark/src/bookmark-block.ts @@ -9,10 +9,11 @@ import { property, query } from 'lit/decorators.js'; import { classMap } from 'lit/directives/class-map.js'; import { type StyleInfo, styleMap } from 'lit/directives/style-map.js'; -import { BOOKMARK_MIN_WIDTH } from '../root-block/edgeless/utils/consts.js'; import type { BookmarkBlockService } from './bookmark-service.js'; import { refreshBookmarkUrlData } from './utils.js'; +export const BOOKMARK_MIN_WIDTH = 450; + export class BookmarkBlockComponent extends CaptionedBlockComponent< BookmarkBlockModel, BookmarkBlockService diff --git a/blocksuite/blocks/src/bookmark-block/bookmark-edgeless-block.ts b/blocksuite/affine/block-bookmark/src/bookmark-edgeless-block.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/bookmark-edgeless-block.ts rename to blocksuite/affine/block-bookmark/src/bookmark-edgeless-block.ts diff --git a/blocksuite/blocks/src/bookmark-block/bookmark-service.ts b/blocksuite/affine/block-bookmark/src/bookmark-service.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/bookmark-service.ts rename to blocksuite/affine/block-bookmark/src/bookmark-service.ts diff --git a/blocksuite/blocks/src/bookmark-block/bookmark-spec.ts b/blocksuite/affine/block-bookmark/src/bookmark-spec.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/bookmark-spec.ts rename to blocksuite/affine/block-bookmark/src/bookmark-spec.ts diff --git a/blocksuite/blocks/src/bookmark-block/commands/index.ts b/blocksuite/affine/block-bookmark/src/commands/index.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/commands/index.ts rename to blocksuite/affine/block-bookmark/src/commands/index.ts diff --git a/blocksuite/blocks/src/bookmark-block/commands/insert-bookmark.ts b/blocksuite/affine/block-bookmark/src/commands/insert-bookmark.ts similarity index 94% rename from blocksuite/blocks/src/bookmark-block/commands/insert-bookmark.ts rename to blocksuite/affine/block-bookmark/src/commands/insert-bookmark.ts index 41be3ae388..f6d586c168 100644 --- a/blocksuite/blocks/src/bookmark-block/commands/insert-bookmark.ts +++ b/blocksuite/affine/block-bookmark/src/commands/insert-bookmark.ts @@ -1,3 +1,5 @@ +import '@blocksuite/affine-block-embed/effects'; + import { insertEmbedCard } from '@blocksuite/affine-block-embed'; import type { EmbedCardStyle } from '@blocksuite/affine-model'; import { EmbedOptionProvider } from '@blocksuite/affine-shared/services'; diff --git a/blocksuite/blocks/src/bookmark-block/components/bookmark-card.ts b/blocksuite/affine/block-bookmark/src/components/bookmark-card.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/components/bookmark-card.ts rename to blocksuite/affine/block-bookmark/src/components/bookmark-card.ts diff --git a/blocksuite/affine/block-bookmark/src/effects.ts b/blocksuite/affine/block-bookmark/src/effects.ts new file mode 100644 index 0000000000..e9fda16a41 --- /dev/null +++ b/blocksuite/affine/block-bookmark/src/effects.ts @@ -0,0 +1,25 @@ +import { BookmarkBlockComponent } from './bookmark-block'; +import { BookmarkEdgelessBlockComponent } from './bookmark-edgeless-block'; +import type { BookmarkBlockService } from './bookmark-service'; +import type { insertBookmarkCommand } from './commands/insert-bookmark'; +import { BookmarkCard } from './components/bookmark-card'; + +export function effects() { + customElements.define( + 'affine-edgeless-bookmark', + BookmarkEdgelessBlockComponent + ); + customElements.define('affine-bookmark', BookmarkBlockComponent); + customElements.define('bookmark-card', BookmarkCard); +} + +declare global { + namespace BlockSuite { + interface Commands { + insertBookmark: typeof insertBookmarkCommand; + } + interface BlockServices { + 'affine:bookmark': BookmarkBlockService; + } + } +} diff --git a/blocksuite/affine/block-bookmark/src/index.ts b/blocksuite/affine/block-bookmark/src/index.ts new file mode 100644 index 0000000000..9c8f614b67 --- /dev/null +++ b/blocksuite/affine/block-bookmark/src/index.ts @@ -0,0 +1,4 @@ +export * from './adapters'; +export * from './bookmark-block'; +export * from './bookmark-service'; +export * from './bookmark-spec'; diff --git a/blocksuite/blocks/src/bookmark-block/styles.ts b/blocksuite/affine/block-bookmark/src/styles.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/styles.ts rename to blocksuite/affine/block-bookmark/src/styles.ts diff --git a/blocksuite/blocks/src/bookmark-block/utils.ts b/blocksuite/affine/block-bookmark/src/utils.ts similarity index 100% rename from blocksuite/blocks/src/bookmark-block/utils.ts rename to blocksuite/affine/block-bookmark/src/utils.ts diff --git a/blocksuite/affine/block-bookmark/tsconfig.json b/blocksuite/affine/block-bookmark/tsconfig.json new file mode 100644 index 0000000000..54b5d3348b --- /dev/null +++ b/blocksuite/affine/block-bookmark/tsconfig.json @@ -0,0 +1,35 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "rootDir": "./src/", + "outDir": "./dist/", + "noEmit": false + }, + "include": ["./src"], + "references": [ + { + "path": "../../framework/global" + }, + { + "path": "../../framework/store" + }, + { + "path": "../../framework/block-std" + }, + { + "path": "../../framework/inline" + }, + { + "path": "../model" + }, + { + "path": "../components" + }, + { + "path": "../shared" + }, + { + "path": "../block-embed" + } + ] +} diff --git a/blocksuite/affine/block-embed/typedoc.json b/blocksuite/affine/block-embed/typedoc.json deleted file mode 100644 index 101e923dba..0000000000 --- a/blocksuite/affine/block-embed/typedoc.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "extends": ["../../../typedoc.base.json"], - "entryPoints": ["src/index.ts"] -} diff --git a/blocksuite/blocks/package.json b/blocksuite/blocks/package.json index 6325999557..54bafdeefb 100644 --- a/blocksuite/blocks/package.json +++ b/blocksuite/blocks/package.json @@ -14,6 +14,7 @@ "author": "toeverything", "license": "MIT", "dependencies": { + "@blocksuite/affine-block-bookmark": "workspace:*", "@blocksuite/affine-block-embed": "workspace:*", "@blocksuite/affine-block-list": "workspace:*", "@blocksuite/affine-block-paragraph": "workspace:*", diff --git a/blocksuite/blocks/src/_common/adapters/html/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/html/block-matcher.ts index 6b13cd8694..bc1cc623c4 100644 --- a/blocksuite/blocks/src/_common/adapters/html/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/html/block-matcher.ts @@ -1,3 +1,4 @@ +import { BookmarkBlockHtmlAdapterExtension } from '@blocksuite/affine-block-bookmark'; import { EmbedFigmaBlockHtmlAdapterExtension, EmbedGithubBlockHtmlAdapterExtension, @@ -9,7 +10,6 @@ import { import { ListBlockHtmlAdapterExtension } from '@blocksuite/affine-block-list'; import { ParagraphBlockHtmlAdapterExtension } from '@blocksuite/affine-block-paragraph'; -import { BookmarkBlockHtmlAdapterExtension } from '../../../bookmark-block/adapters/html.js'; import { CodeBlockHtmlAdapterExtension } from '../../../code-block/adapters/html.js'; import { DatabaseBlockHtmlAdapterExtension } from '../../../database-block/adapters/html.js'; import { DividerBlockHtmlAdapterExtension } from '../../../divider-block/adapters/html.js'; diff --git a/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts index ca9b2323d5..37f61094a7 100644 --- a/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/markdown/block-matcher.ts @@ -1,3 +1,4 @@ +import { bookmarkBlockMarkdownAdapterMatcher } from '@blocksuite/affine-block-bookmark'; import { embedFigmaBlockMarkdownAdapterMatcher, embedGithubBlockMarkdownAdapterMatcher, @@ -9,7 +10,6 @@ import { import { listBlockMarkdownAdapterMatcher } from '@blocksuite/affine-block-list'; import { paragraphBlockMarkdownAdapterMatcher } from '@blocksuite/affine-block-paragraph'; -import { bookmarkBlockMarkdownAdapterMatcher } from '../../../bookmark-block/adapters/markdown.js'; import { codeBlockMarkdownAdapterMatcher } from '../../../code-block/adapters/markdown.js'; import { databaseBlockMarkdownAdapterMatcher } from '../../../database-block/adapters/markdown.js'; import { dividerBlockMarkdownAdapterMatcher } from '../../../divider-block/adapters/markdown.js'; diff --git a/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts index 2450c62b8e..dd63e6ef94 100644 --- a/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/notion-html/block-matcher.ts @@ -1,3 +1,4 @@ +import { bookmarkBlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-block-bookmark'; import { embedFigmaBlockNotionHtmlAdapterMatcher, embedGithubBlockNotionHtmlAdapterMatcher, @@ -9,7 +10,6 @@ import { paragraphBlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-block import type { BlockNotionHtmlAdapterMatcher } from '@blocksuite/affine-shared/adapters'; import { attachmentBlockNotionHtmlAdapterMatcher } from '../../../attachment-block/adapters/notion-html.js'; -import { bookmarkBlockNotionHtmlAdapterMatcher } from '../../../bookmark-block/adapters/notion-html.js'; import { codeBlockNotionHtmlAdapterMatcher } from '../../../code-block/adapters/notion-html.js'; import { databaseBlockNotionHtmlAdapterMatcher } from '../../../database-block/adapters/notion-html.js'; import { dividerBlockNotionHtmlAdapterMatcher } from '../../../divider-block/adapters/notion-html.js'; diff --git a/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts b/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts index c6a6fb690b..0020f2ca8c 100644 --- a/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts +++ b/blocksuite/blocks/src/_common/adapters/plain-text/block-matcher.ts @@ -1,3 +1,4 @@ +import { bookmarkBlockPlainTextAdapterMatcher } from '@blocksuite/affine-block-bookmark'; import { embedFigmaBlockPlainTextAdapterMatcher, embedGithubBlockPlainTextAdapterMatcher, @@ -10,7 +11,6 @@ import { listBlockPlainTextAdapterMatcher } from '@blocksuite/affine-block-list' import { paragraphBlockPlainTextAdapterMatcher } from '@blocksuite/affine-block-paragraph'; import type { BlockPlainTextAdapterMatcher } from '@blocksuite/affine-shared/adapters'; -import { bookmarkBlockPlainTextAdapterMatcher } from '../../../bookmark-block/adapters/plain-text.js'; import { codeBlockPlainTextAdapterMatcher } from '../../../code-block/adapters/plain-text.js'; import { databaseBlockPlainTextAdapterMatcher } from '../../../database-block/adapters/plain-text.js'; import { dividerBlockPlainTextAdapterMatcher } from '../../../divider-block/adapters/plain-text.js'; diff --git a/blocksuite/blocks/src/_common/components/embed-card/type.ts b/blocksuite/blocks/src/_common/components/embed-card/type.ts index 80e57c1114..233c852d8e 100644 --- a/blocksuite/blocks/src/_common/components/embed-card/type.ts +++ b/blocksuite/blocks/src/_common/components/embed-card/type.ts @@ -1,3 +1,4 @@ +import { BookmarkBlockComponent } from '@blocksuite/affine-block-bookmark'; import { EmbedFigmaBlockComponent, EmbedGithubBlockComponent, @@ -21,8 +22,6 @@ import { } from '@blocksuite/affine-model'; import type { BlockComponent } from '@blocksuite/block-std'; -import { BookmarkBlockComponent } from '../../../bookmark-block/bookmark-block.js'; - export type ExternalEmbedBlockComponent = | BookmarkBlockComponent | EmbedFigmaBlockComponent diff --git a/blocksuite/blocks/src/_specs/common.ts b/blocksuite/blocks/src/_specs/common.ts index b26960d4e4..de39829fdf 100644 --- a/blocksuite/blocks/src/_specs/common.ts +++ b/blocksuite/blocks/src/_specs/common.ts @@ -1,3 +1,4 @@ +import { BookmarkBlockSpec } from '@blocksuite/affine-block-bookmark'; import { EmbedExtensions } from '@blocksuite/affine-block-embed'; import { ListBlockSpec } from '@blocksuite/affine-block-list'; import { ParagraphBlockSpec } from '@blocksuite/affine-block-paragraph'; @@ -7,7 +8,6 @@ import type { ExtensionType } from '@blocksuite/block-std'; import { AdapterFactoryExtensions } from '../_common/adapters/extension.js'; import { AttachmentBlockSpec } from '../attachment-block/attachment-spec.js'; -import { BookmarkBlockSpec } from '../bookmark-block/bookmark-spec.js'; import { CodeBlockSpec } from '../code-block/code-block-spec.js'; import { DataViewBlockSpec } from '../data-view-block/data-view-spec.js'; import { DatabaseBlockSpec } from '../database-block/database-spec.js'; diff --git a/blocksuite/blocks/src/_specs/group/common.ts b/blocksuite/blocks/src/_specs/group/common.ts index 10df7ac8ba..d70dc2ba58 100644 --- a/blocksuite/blocks/src/_specs/group/common.ts +++ b/blocksuite/blocks/src/_specs/group/common.ts @@ -1,3 +1,4 @@ +import { BookmarkBlockSpec } from '@blocksuite/affine-block-bookmark'; import { EmbedFigmaBlockSpec, EmbedGithubBlockSpec, @@ -11,7 +12,6 @@ import { ListBlockSpec } from '@blocksuite/affine-block-list'; import { ParagraphBlockSpec } from '@blocksuite/affine-block-paragraph'; import { AttachmentBlockSpec } from '../../attachment-block/attachment-spec.js'; -import { BookmarkBlockSpec } from '../../bookmark-block/bookmark-spec.js'; import { CodeBlockSpec } from '../../code-block/code-block-spec.js'; import { DataViewBlockSpec } from '../../data-view-block/data-view-spec.js'; import { DatabaseBlockSpec } from '../../database-block/database-spec.js'; diff --git a/blocksuite/blocks/src/bookmark-block/index.ts b/blocksuite/blocks/src/bookmark-block/index.ts deleted file mode 100644 index 267e521a6f..0000000000 --- a/blocksuite/blocks/src/bookmark-block/index.ts +++ /dev/null @@ -1,3 +0,0 @@ -export * from './adapters/index.js'; -export * from './bookmark-block.js'; -export * from './bookmark-service.js'; diff --git a/blocksuite/blocks/src/effects.ts b/blocksuite/blocks/src/effects.ts index fb3756e663..ec1a1352b6 100644 --- a/blocksuite/blocks/src/effects.ts +++ b/blocksuite/blocks/src/effects.ts @@ -1,3 +1,4 @@ +import { effects as blockBookmarkEffects } from '@blocksuite/affine-block-bookmark/effects'; import { effects as blockEmbedEffects } from '@blocksuite/affine-block-embed/effects'; import { effects as blockListEffects } from '@blocksuite/affine-block-list/effects'; import { effects as blockParagraphEffects } from '@blocksuite/affine-block-paragraph/effects'; @@ -33,13 +34,6 @@ import { AttachmentBlockComponent, type AttachmentBlockService, } from './attachment-block/index.js'; -import { BookmarkEdgelessBlockComponent } from './bookmark-block/bookmark-edgeless-block.js'; -import type { insertBookmarkCommand } from './bookmark-block/commands/insert-bookmark.js'; -import { BookmarkCard } from './bookmark-block/components/bookmark-card.js'; -import { - BookmarkBlockComponent, - type BookmarkBlockService, -} from './bookmark-block/index.js'; import { AffineCodeUnit } from './code-block/highlight/affine-code-unit.js'; import { CodeBlockComponent, @@ -281,6 +275,7 @@ export function effects() { stdEffects(); inlineEffects(); + blockBookmarkEffects(); blockListEffects(); blockParagraphEffects(); blockEmbedEffects(); @@ -309,15 +304,10 @@ export function effects() { widgetCodeToolbarEffects(); customElements.define('affine-database-title', DatabaseTitle); - customElements.define( - 'affine-edgeless-bookmark', - BookmarkEdgelessBlockComponent - ); customElements.define('affine-image', ImageBlockComponent); customElements.define('data-view-header-area-icon', IconCell); customElements.define('affine-database-link-cell', LinkCell); customElements.define('affine-database-link-cell-editing', LinkCellEditing); - customElements.define('affine-bookmark', BookmarkBlockComponent); customElements.define('affine-edgeless-image', ImageEdgelessBlockComponent); customElements.define('data-view-header-area-text', HeaderAreaTextCell); customElements.define( @@ -497,7 +487,6 @@ export function effects() { customElements.define('note-display-mode-panel', NoteDisplayModePanel); customElements.define('edgeless-toolbar-button', EdgelessToolbarButton); customElements.define('frame-preview', FramePreview); - customElements.define('bookmark-card', BookmarkCard); customElements.define('presentation-toolbar', PresentationToolbar); customElements.define('edgeless-shape-menu', EdgelessShapeMenu); customElements.define('stroke-style-panel', StrokeStylePanel); @@ -588,7 +577,6 @@ declare global { dedentBlocksToRoot: typeof dedentBlocksToRoot; dedentBlocks: typeof dedentBlocks; indentBlock: typeof indentBlock; - insertBookmark: typeof insertBookmarkCommand; updateBlockType: typeof updateBlockType; insertEdgelessText: typeof insertEdgelessTextCommand; dedentBlockToRoot: typeof dedentBlockToRoot; @@ -607,7 +595,6 @@ declare global { 'affine:note': NoteBlockService; 'affine:page': RootService; 'affine:attachment': AttachmentBlockService; - 'affine:bookmark': BookmarkBlockService; 'affine:database': DatabaseBlockService; 'affine:image': ImageBlockService; } diff --git a/blocksuite/blocks/src/index.ts b/blocksuite/blocks/src/index.ts index c687da514d..ee31346ac0 100644 --- a/blocksuite/blocks/src/index.ts +++ b/blocksuite/blocks/src/index.ts @@ -17,7 +17,6 @@ export * from './_common/transformers/index.js'; export { type AbstractEditor } from './_common/types.js'; export * from './_specs/index.js'; export * from './attachment-block/index.js'; -export * from './bookmark-block/index.js'; export * from './code-block/index.js'; export * from './data-view-block/index.js'; export * from './database-block/index.js'; @@ -50,6 +49,7 @@ export { MiniMindmapPreview, } from './surface-block/mini-mindmap/index.js'; export * from './surface-ref-block/index.js'; +export * from '@blocksuite/affine-block-bookmark'; export * from '@blocksuite/affine-block-embed'; export * from '@blocksuite/affine-block-list'; export * from '@blocksuite/affine-block-paragraph'; diff --git a/blocksuite/blocks/src/root-block/edgeless/utils/consts.ts b/blocksuite/blocks/src/root-block/edgeless/utils/consts.ts index b1cd9f5040..22e2f6d00d 100644 --- a/blocksuite/blocks/src/root-block/edgeless/utils/consts.ts +++ b/blocksuite/blocks/src/root-block/edgeless/utils/consts.ts @@ -6,8 +6,6 @@ import { StrokeStyle, } from '@blocksuite/affine-model'; -export const BOOKMARK_MIN_WIDTH = 450; - export const DEFAULT_NOTE_OFFSET_X = 30; export const DEFAULT_NOTE_OFFSET_Y = 40; export const NOTE_OVERLAY_OFFSET_X = 6; diff --git a/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/config.ts b/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/config.ts index 388f90ee54..619f967b30 100644 --- a/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/config.ts +++ b/blocksuite/blocks/src/root-block/widgets/element-toolbar/more-menu/config.ts @@ -1,3 +1,4 @@ +import type { BookmarkBlockComponent } from '@blocksuite/affine-block-bookmark'; import type { EmbedFigmaBlockComponent, EmbedGithubBlockComponent, @@ -31,7 +32,6 @@ import { promptDocTitle, } from '../../../../_common/utils/render-linked-doc.js'; import type { AttachmentBlockComponent } from '../../../../attachment-block/attachment-block.js'; -import type { BookmarkBlockComponent } from '../../../../bookmark-block/bookmark-block.js'; import type { ImageBlockComponent } from '../../../../image-block/image-block.js'; import { duplicate } from '../../../edgeless/utils/clipboard-utils.js'; import { getSortedCloneElements } from '../../../edgeless/utils/clone-utils.js'; diff --git a/blocksuite/blocks/tsconfig.json b/blocksuite/blocks/tsconfig.json index 85d22c2936..ff77206180 100644 --- a/blocksuite/blocks/tsconfig.json +++ b/blocksuite/blocks/tsconfig.json @@ -37,6 +37,9 @@ { "path": "../affine/block-embed" }, + { + "path": "../affine/block-bookmark" + }, { "path": "../affine/data-view" }, diff --git a/tools/utils/src/workspace.gen.ts b/tools/utils/src/workspace.gen.ts index 284b570635..5e7f88b16a 100644 --- a/tools/utils/src/workspace.gen.ts +++ b/tools/utils/src/workspace.gen.ts @@ -13,6 +13,20 @@ export const PackageList = [ 'blocksuite/framework/store', ], }, + { + location: 'blocksuite/affine/block-bookmark', + name: '@blocksuite/affine-block-bookmark', + workspaceDependencies: [ + 'blocksuite/affine/block-embed', + 'blocksuite/affine/components', + 'blocksuite/affine/model', + 'blocksuite/affine/shared', + 'blocksuite/framework/block-std', + 'blocksuite/framework/global', + 'blocksuite/framework/inline', + 'blocksuite/framework/store', + ], + }, { location: 'blocksuite/affine/block-embed', name: '@blocksuite/affine-block-embed', @@ -124,6 +138,7 @@ export const PackageList = [ location: 'blocksuite/blocks', name: '@blocksuite/blocks', workspaceDependencies: [ + 'blocksuite/affine/block-bookmark', 'blocksuite/affine/block-embed', 'blocksuite/affine/block-list', 'blocksuite/affine/block-paragraph', @@ -300,6 +315,7 @@ export const PackageList = [ 'packages/frontend/core', 'packages/frontend/i18n', 'blocksuite/affine/all', + 'packages/common/infra', ], }, { @@ -456,6 +472,7 @@ export const PackageList = [ export type PackageName = | '@blocksuite/affine' + | '@blocksuite/affine-block-bookmark' | '@blocksuite/affine-block-embed' | '@blocksuite/affine-block-list' | '@blocksuite/affine-block-paragraph' diff --git a/yarn.lock b/yarn.lock index f65d6be8a3..b7738d159e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3224,6 +3224,29 @@ __metadata: languageName: node linkType: hard +"@blocksuite/affine-block-bookmark@workspace:*, @blocksuite/affine-block-bookmark@workspace:blocksuite/affine/block-bookmark": + version: 0.0.0-use.local + resolution: "@blocksuite/affine-block-bookmark@workspace:blocksuite/affine/block-bookmark" + dependencies: + "@blocksuite/affine-block-embed": "workspace:*" + "@blocksuite/affine-components": "workspace:*" + "@blocksuite/affine-model": "workspace:*" + "@blocksuite/affine-shared": "workspace:*" + "@blocksuite/block-std": "workspace:*" + "@blocksuite/global": "workspace:*" + "@blocksuite/icons": "npm:^2.1.75" + "@blocksuite/inline": "workspace:*" + "@blocksuite/store": "workspace:*" + "@floating-ui/dom": "npm:^1.6.10" + "@lit/context": "npm:^1.1.2" + "@preact/signals-core": "npm:^1.8.0" + "@toeverything/theme": "npm:^1.1.1" + lit: "npm:^3.2.0" + minimatch: "npm:^10.0.1" + zod: "npm:^3.23.8" + languageName: unknown + linkType: soft + "@blocksuite/affine-block-embed@workspace:*, @blocksuite/affine-block-embed@workspace:blocksuite/affine/block-embed": version: 0.0.0-use.local resolution: "@blocksuite/affine-block-embed@workspace:blocksuite/affine/block-embed" @@ -3435,6 +3458,7 @@ __metadata: version: 0.0.0-use.local resolution: "@blocksuite/blocks@workspace:blocksuite/blocks" dependencies: + "@blocksuite/affine-block-bookmark": "workspace:*" "@blocksuite/affine-block-embed": "workspace:*" "@blocksuite/affine-block-list": "workspace:*" "@blocksuite/affine-block-paragraph": "workspace:*"