From f0a233368d30a48356b403a50cb525e6aa3702ea Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Thu, 24 Apr 2025 00:49:38 +0000 Subject: [PATCH] feat(editor): mindmap gfx extension (#11936) Closes: BS-3209 ## Summary by CodeRabbit - **New Features** - Introduced mind map view and store extensions, enhancing mind map integration and conversion to plain text and markdown formats. - Added priority property to quick tools, allowing for custom ordering in the toolbar. - **Improvements** - Toolbar quick tools are now sorted by priority for a more intuitive user experience. - Updated toolbar and extension configurations to streamline available tools and extensions. - **Bug Fixes** - Conditional registration of certain components ensures correct behavior in edgeless mode. - **Chores** - Updated dependencies and project references to improve module integration and maintainability. --- blocksuite/affine/all/package.json | 7 ++-- blocksuite/affine/all/src/extensions/store.ts | 2 ++ blocksuite/affine/all/src/extensions/view.ts | 3 +- .../src/gfx/{mindmap.ts => mindmap/index.ts} | 0 .../affine/all/src/gfx/mindmap/store.ts | 1 + blocksuite/affine/all/src/gfx/mindmap/view.ts | 1 + .../affine/blocks/edgeless-text/src/view.ts | 2 ++ .../frame/src/edgeless-toolbar/quick-tool.ts | 1 + blocksuite/affine/blocks/frame/src/view.ts | 4 +++ .../blocks/root/src/common-specs/index.ts | 6 ---- .../src/edgeless/components/toolbar/tools.ts | 12 ++----- .../src/edgeless/configs/toolbar/index.ts | 17 --------- .../src/edgeless/edgeless-builtin-spec.ts | 6 ---- blocksuite/affine/blocks/root/src/effects.ts | 2 -- blocksuite/affine/gfx/mindmap/package.json | 5 ++- blocksuite/affine/gfx/mindmap/src/index.ts | 2 +- blocksuite/affine/gfx/mindmap/src/store.ts | 19 ++++++++++ .../affine/gfx/mindmap/src/toolbar/config.ts | 2 +- blocksuite/affine/gfx/mindmap/src/view.ts | 35 +++++++++++++++++++ blocksuite/affine/gfx/mindmap/tsconfig.json | 1 + blocksuite/affine/gfx/shape/src/view.ts | 15 ++++---- .../edgeless-toolbar/src/edgeless-toolbar.ts | 1 + .../edgeless-toolbar/src/extension/index.ts | 1 + tools/utils/src/workspace.gen.ts | 1 + yarn.lock | 1 + 25 files changed, 95 insertions(+), 52 deletions(-) rename blocksuite/affine/all/src/gfx/{mindmap.ts => mindmap/index.ts} (100%) create mode 100644 blocksuite/affine/all/src/gfx/mindmap/store.ts create mode 100644 blocksuite/affine/all/src/gfx/mindmap/view.ts create mode 100644 blocksuite/affine/gfx/mindmap/src/store.ts create mode 100644 blocksuite/affine/gfx/mindmap/src/view.ts diff --git a/blocksuite/affine/all/package.json b/blocksuite/affine/all/package.json index 2ebdc639e..3cce2aa85 100644 --- a/blocksuite/affine/all/package.json +++ b/blocksuite/affine/all/package.json @@ -180,8 +180,11 @@ "./gfx/shape": "./src/gfx/shape/index.ts", "./gfx/shape/store": "./src/gfx/shape/store.ts", "./gfx/shape/view": "./src/gfx/shape/view.ts", - "./gfx/note": "./src/gfx/note.ts", - "./gfx/mindmap": "./src/gfx/mindmap.ts", + "./gfx/note": "./src/gfx/note/index.ts", + "./gfx/note/view": "./src/gfx/note/view.ts", + "./gfx/mindmap": "./src/gfx/mindmap/index.ts", + "./gfx/mindmap/store": "./src/gfx/mindmap/store.ts", + "./gfx/mindmap/view": "./src/gfx/mindmap/view.ts", "./gfx/connector": "./src/gfx/connector.ts", "./gfx/group": "./src/gfx/group.ts", "./gfx/template": "./src/gfx/template.ts", diff --git a/blocksuite/affine/all/src/extensions/store.ts b/blocksuite/affine/all/src/extensions/store.ts index 0454f0812..48b65dfcc 100644 --- a/blocksuite/affine/all/src/extensions/store.ts +++ b/blocksuite/affine/all/src/extensions/store.ts @@ -16,6 +16,7 @@ import { ParagraphStoreExtension } from '@blocksuite/affine-block-paragraph/stor import { SurfaceRefStoreExtension } from '@blocksuite/affine-block-surface-ref/store'; import { TableStoreExtension } from '@blocksuite/affine-block-table/store'; import { BrushStoreExtension } from '@blocksuite/affine-gfx-brush/store'; +import { MindmapStoreExtension } from '@blocksuite/affine-gfx-mindmap/store'; import { ShapeStoreExtension } from '@blocksuite/affine-gfx-shape/store'; import { FootnoteStoreExtension } from '@blocksuite/affine-inline-footnote/store'; import { LatexStoreExtension as InlineLatexStoreExtension } from '@blocksuite/affine-inline-latex/store'; @@ -53,6 +54,7 @@ export function getInternalStoreExtensions() { BrushStoreExtension, ShapeStoreExtension, + MindmapStoreExtension, MigratingStoreExtension, ]; diff --git a/blocksuite/affine/all/src/extensions/view.ts b/blocksuite/affine/all/src/extensions/view.ts index 3fa7222aa..d822cb90d 100644 --- a/blocksuite/affine/all/src/extensions/view.ts +++ b/blocksuite/affine/all/src/extensions/view.ts @@ -16,6 +16,7 @@ import { ParagraphViewExtension } from '@blocksuite/affine-block-paragraph/view' import { SurfaceRefViewExtension } from '@blocksuite/affine-block-surface-ref/view'; import { TableViewExtension } from '@blocksuite/affine-block-table/view'; import { BrushViewExtension } from '@blocksuite/affine-gfx-brush/view'; +import { MindmapViewExtension } from '@blocksuite/affine-gfx-mindmap/view'; import { NoteViewExtension as GfxNoteViewExtension } from '@blocksuite/affine-gfx-note/view'; import { ShapeViewExtension } from '@blocksuite/affine-gfx-shape/view'; import { FootnoteViewExtension } from '@blocksuite/affine-inline-footnote/view'; @@ -32,7 +33,7 @@ export function getInternalViewExtensions() { GfxNoteViewExtension, BrushViewExtension, ShapeViewExtension, - // mind + MindmapViewExtension, // template // Block diff --git a/blocksuite/affine/all/src/gfx/mindmap.ts b/blocksuite/affine/all/src/gfx/mindmap/index.ts similarity index 100% rename from blocksuite/affine/all/src/gfx/mindmap.ts rename to blocksuite/affine/all/src/gfx/mindmap/index.ts diff --git a/blocksuite/affine/all/src/gfx/mindmap/store.ts b/blocksuite/affine/all/src/gfx/mindmap/store.ts new file mode 100644 index 000000000..d3f658cbb --- /dev/null +++ b/blocksuite/affine/all/src/gfx/mindmap/store.ts @@ -0,0 +1 @@ +export * from '@blocksuite/affine-gfx-mindmap/store'; diff --git a/blocksuite/affine/all/src/gfx/mindmap/view.ts b/blocksuite/affine/all/src/gfx/mindmap/view.ts new file mode 100644 index 000000000..db8df0daa --- /dev/null +++ b/blocksuite/affine/all/src/gfx/mindmap/view.ts @@ -0,0 +1 @@ +export * from '@blocksuite/affine-gfx-mindmap/view'; diff --git a/blocksuite/affine/blocks/edgeless-text/src/view.ts b/blocksuite/affine/blocks/edgeless-text/src/view.ts index afc7ae034..d6a2c3882 100644 --- a/blocksuite/affine/blocks/edgeless-text/src/view.ts +++ b/blocksuite/affine/blocks/edgeless-text/src/view.ts @@ -5,6 +5,7 @@ import { import { BlockViewExtension } from '@blocksuite/std'; import { literal } from 'lit/static-html.js'; +import { edgelessTextToolbarExtension } from './edgeless-toolbar'; import { effects } from './effects'; export class EdgelessTextViewExtension extends ViewExtensionProvider { @@ -26,6 +27,7 @@ export class EdgelessTextViewExtension extends ViewExtensionProvider { literal`affine-edgeless-text` ), ]); + context.register(edgelessTextToolbarExtension); } } } diff --git a/blocksuite/affine/blocks/frame/src/edgeless-toolbar/quick-tool.ts b/blocksuite/affine/blocks/frame/src/edgeless-toolbar/quick-tool.ts index 4769de3bb..f62076c0e 100644 --- a/blocksuite/affine/blocks/frame/src/edgeless-toolbar/quick-tool.ts +++ b/blocksuite/affine/blocks/frame/src/edgeless-toolbar/quick-tool.ts @@ -11,5 +11,6 @@ export const frameQuickTool = QuickToolExtension('frame', ({ block, gfx }) => { >`, menu: buildFrameDenseMenu(block, gfx), enable: !block.doc.readonly, + priority: 90, }; }); diff --git a/blocksuite/affine/blocks/frame/src/view.ts b/blocksuite/affine/blocks/frame/src/view.ts index 94e682086..ee8b466d4 100644 --- a/blocksuite/affine/blocks/frame/src/view.ts +++ b/blocksuite/affine/blocks/frame/src/view.ts @@ -3,10 +3,12 @@ import { ViewExtensionProvider, } from '@blocksuite/affine-ext-loader'; +import { frameQuickTool } from './edgeless-toolbar'; import { effects } from './effects'; import { FrameHighlightManager } from './frame-highlight-manager'; import { FrameBlockSpec } from './frame-spec'; import { FrameTool } from './frame-tool'; +import { frameToolbarExtension } from './frame-toolbar'; import { PresentTool } from './preset-tool'; export class FrameViewExtension extends ViewExtensionProvider { @@ -24,6 +26,8 @@ export class FrameViewExtension extends ViewExtensionProvider { context.register(FrameHighlightManager); context.register(FrameTool); context.register(PresentTool); + context.register(frameQuickTool); + context.register(frameToolbarExtension); } } } diff --git a/blocksuite/affine/blocks/root/src/common-specs/index.ts b/blocksuite/affine/blocks/root/src/common-specs/index.ts index 282e0e925..32a12a7dc 100644 --- a/blocksuite/affine/blocks/root/src/common-specs/index.ts +++ b/blocksuite/affine/blocks/root/src/common-specs/index.ts @@ -7,10 +7,6 @@ import { GroupElementRendererExtension, GroupElementView, } from '@blocksuite/affine-gfx-group'; -import { - MindmapElementRendererExtension, - MindMapView, -} from '@blocksuite/affine-gfx-mindmap'; import { TextElementRendererExtension, TextElementView, @@ -48,7 +44,6 @@ import { viewportOverlayWidget } from './widgets'; */ const EdgelessElementViews = [ ConnectorElementView, - MindMapView, GroupElementView, TextElementView, ]; @@ -57,7 +52,6 @@ export const EdgelessElementRendererExtension: ExtensionType[] = [ TextElementRendererExtension, ConnectorElementRendererExtension, GroupElementRendererExtension, - MindmapElementRendererExtension, ]; export const CommonSpecs: ExtensionType[] = [ diff --git a/blocksuite/affine/blocks/root/src/edgeless/components/toolbar/tools.ts b/blocksuite/affine/blocks/root/src/edgeless/components/toolbar/tools.ts index 3b1bbc0e8..57847ed88 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/components/toolbar/tools.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/components/toolbar/tools.ts @@ -1,6 +1,4 @@ -import { frameQuickTool } from '@blocksuite/affine-block-frame'; import { connectorQuickTool } from '@blocksuite/affine-gfx-connector'; -import { mindMapSeniorTool } from '@blocksuite/affine-gfx-mindmap'; import { templateSeniorTool } from '@blocksuite/affine-gfx-template'; import { QuickToolExtension } from '@blocksuite/affine-widget-edgeless-toolbar'; import { html } from 'lit'; @@ -9,6 +7,7 @@ import { buildLinkDenseMenu } from './link/link-dense-menu.js'; const defaultQuickTool = QuickToolExtension('default', ({ block }) => { return { + priority: 100, type: 'default', content: html` { }; }); -export const quickTools = [ - defaultQuickTool, - frameQuickTool, - connectorQuickTool, - linkQuickTool, -]; +export const quickTools = [defaultQuickTool, connectorQuickTool, linkQuickTool]; -export const seniorTools = [mindMapSeniorTool, templateSeniorTool]; +export const seniorTools = [templateSeniorTool]; diff --git a/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/index.ts b/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/index.ts index 0cefe12c5..bcc5841b5 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/index.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/configs/toolbar/index.ts @@ -1,12 +1,5 @@ -import { edgelessTextToolbarExtension } from '@blocksuite/affine-block-edgeless-text'; -import { frameToolbarExtension } from '@blocksuite/affine-block-frame'; import { connectorToolbarExtension } from '@blocksuite/affine-gfx-connector'; import { groupToolbarExtension } from '@blocksuite/affine-gfx-group'; -import { - mindmapToolbarExtension, - shapeMindmapToolbarExtension, -} from '@blocksuite/affine-gfx-mindmap'; -import { shapeToolbarExtension } from '@blocksuite/affine-gfx-shape'; import { textToolbarExtension } from '@blocksuite/affine-gfx-text'; import { ToolbarModuleExtension } from '@blocksuite/affine-shared/services'; import { BlockFlavourIdentifier } from '@blocksuite/std'; @@ -15,22 +8,12 @@ import type { ExtensionType } from '@blocksuite/store'; import { builtinLockedToolbarConfig, builtinMiscToolbarConfig } from './misc'; export const EdgelessElementToolbarExtension: ExtensionType[] = [ - frameToolbarExtension, - groupToolbarExtension, connectorToolbarExtension, - shapeToolbarExtension, - - shapeMindmapToolbarExtension, - - mindmapToolbarExtension, - textToolbarExtension, - edgelessTextToolbarExtension, - ToolbarModuleExtension({ id: BlockFlavourIdentifier('affine:surface:*'), config: builtinMiscToolbarConfig, diff --git a/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts b/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts index 9b03d0602..d86035a44 100644 --- a/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts +++ b/blocksuite/affine/blocks/root/src/edgeless/edgeless-builtin-spec.ts @@ -4,10 +4,6 @@ import { ConnectorFilter, ConnectorTool, } from '@blocksuite/affine-gfx-connector'; -import { - MindMapDragExtension, - MindMapIndicatorOverlay, -} from '@blocksuite/affine-gfx-mindmap'; import type * as NoteEffect from '@blocksuite/affine-gfx-note'; import type * as ShapeEffect from '@blocksuite/affine-gfx-shape'; import { TemplateTool } from '@blocksuite/affine-gfx-template'; @@ -44,13 +40,11 @@ export const EdgelessEditExtensions: ExtensionType[] = [ InteractivityManager, ConnectorFilter, SnapExtension, - MindMapDragExtension, DblClickAddEdgelessText, ]; export const EdgelessBuiltInManager: ExtensionType[] = [ ConnectionOverlay, - MindMapIndicatorOverlay, SnapOverlay, AltCloneExtension, EditPropsMiddlewareBuilder, diff --git a/blocksuite/affine/blocks/root/src/effects.ts b/blocksuite/affine/blocks/root/src/effects.ts index 9d1791328..f05218532 100644 --- a/blocksuite/affine/blocks/root/src/effects.ts +++ b/blocksuite/affine/blocks/root/src/effects.ts @@ -1,6 +1,5 @@ import { effects as gfxConnectorEffects } from '@blocksuite/affine-gfx-connector/effects'; import { effects as gfxGroupEffects } from '@blocksuite/affine-gfx-group/effects'; -import { effects as gfxMindmapEffects } from '@blocksuite/affine-gfx-mindmap/effects'; import { effects as gfxTemplateEffects } from '@blocksuite/affine-gfx-template/effects'; import { effects as gfxCanvasTextEffects } from '@blocksuite/affine-gfx-text/effects'; import { effects as widgetEdgelessToolbarEffects } from '@blocksuite/affine-widget-edgeless-toolbar/effects'; @@ -77,7 +76,6 @@ function registerRootComponents() { function registerGfxEffects() { gfxCanvasTextEffects(); gfxConnectorEffects(); - gfxMindmapEffects(); gfxGroupEffects(); gfxTemplateEffects(); } diff --git a/blocksuite/affine/gfx/mindmap/package.json b/blocksuite/affine/gfx/mindmap/package.json index 664a6bc12..b959a232e 100644 --- a/blocksuite/affine/gfx/mindmap/package.json +++ b/blocksuite/affine/gfx/mindmap/package.json @@ -15,6 +15,7 @@ "@blocksuite/affine-block-image": "workspace:*", "@blocksuite/affine-block-surface": "workspace:*", "@blocksuite/affine-components": "workspace:*", + "@blocksuite/affine-ext-loader": "workspace:*", "@blocksuite/affine-gfx-connector": "workspace:*", "@blocksuite/affine-gfx-shape": "workspace:*", "@blocksuite/affine-gfx-text": "workspace:*", @@ -40,7 +41,9 @@ }, "exports": { ".": "./src/index.ts", - "./effects": "./src/effects.ts" + "./effects": "./src/effects.ts", + "./view": "./src/view.ts", + "./store": "./src/store.ts" }, "files": [ "src", diff --git a/blocksuite/affine/gfx/mindmap/src/index.ts b/blocksuite/affine/gfx/mindmap/src/index.ts index 07ec0aa27..ea1d52ffa 100644 --- a/blocksuite/affine/gfx/mindmap/src/index.ts +++ b/blocksuite/affine/gfx/mindmap/src/index.ts @@ -5,4 +5,4 @@ export * from './interactivity'; export * from './toolbar/config'; export * from './toolbar/senior-tool'; export * from './utils'; -export * from './view'; +export * from './view/index'; diff --git a/blocksuite/affine/gfx/mindmap/src/store.ts b/blocksuite/affine/gfx/mindmap/src/store.ts new file mode 100644 index 000000000..c8e23b007 --- /dev/null +++ b/blocksuite/affine/gfx/mindmap/src/store.ts @@ -0,0 +1,19 @@ +import { + type StoreExtensionContext, + StoreExtensionProvider, +} from '@blocksuite/affine-ext-loader'; + +import { + mindmapToMarkdownAdapterMatcher, + mindmapToPlainTextAdapterMatcher, +} from './adapter'; + +export class MindmapStoreExtension extends StoreExtensionProvider { + override name = 'affine-mindmap-gfx'; + + override setup(context: StoreExtensionContext) { + super.setup(context); + context.register(mindmapToPlainTextAdapterMatcher); + context.register(mindmapToMarkdownAdapterMatcher); + } +} diff --git a/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts b/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts index 70c66a07d..66bd211fc 100644 --- a/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts +++ b/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts @@ -23,7 +23,7 @@ import { MindmapStyleOne, MindmapStyleThree, MindmapStyleTwo, -} from '../view'; +} from '../view/index'; const MINDMAP_STYLE_LIST = [ { diff --git a/blocksuite/affine/gfx/mindmap/src/view.ts b/blocksuite/affine/gfx/mindmap/src/view.ts new file mode 100644 index 000000000..8e4d1d923 --- /dev/null +++ b/blocksuite/affine/gfx/mindmap/src/view.ts @@ -0,0 +1,35 @@ +import { + type ViewExtensionContext, + ViewExtensionProvider, +} from '@blocksuite/affine-ext-loader'; + +import { effects } from './effects'; +import { MindmapElementRendererExtension } from './element-renderer'; +import { MindMapIndicatorOverlay } from './indicator-overlay'; +import { MindMapDragExtension } from './interactivity'; +import { + mindmapToolbarExtension, + shapeMindmapToolbarExtension, +} from './toolbar/config'; +import { mindMapSeniorTool } from './toolbar/senior-tool'; +import { MindMapView } from './view/view'; + +export class MindmapViewExtension extends ViewExtensionProvider { + override name = 'affine-mindmap-gfx'; + + override effect(): void { + super.effect(); + effects(); + } + + override setup(context: ViewExtensionContext) { + super.setup(context); + context.register(MindmapElementRendererExtension); + context.register(mindMapSeniorTool); + context.register(mindmapToolbarExtension); + context.register(shapeMindmapToolbarExtension); + context.register(MindMapView); + context.register(MindMapDragExtension); + context.register(MindMapIndicatorOverlay); + } +} diff --git a/blocksuite/affine/gfx/mindmap/tsconfig.json b/blocksuite/affine/gfx/mindmap/tsconfig.json index 60d59adcc..31d472e83 100644 --- a/blocksuite/affine/gfx/mindmap/tsconfig.json +++ b/blocksuite/affine/gfx/mindmap/tsconfig.json @@ -12,6 +12,7 @@ { "path": "../../blocks/image" }, { "path": "../../blocks/surface" }, { "path": "../../components" }, + { "path": "../../ext-loader" }, { "path": "../connector" }, { "path": "../shape" }, { "path": "../text" }, diff --git a/blocksuite/affine/gfx/shape/src/view.ts b/blocksuite/affine/gfx/shape/src/view.ts index 1c563c1f1..2f21971a6 100644 --- a/blocksuite/affine/gfx/shape/src/view.ts +++ b/blocksuite/affine/gfx/shape/src/view.ts @@ -10,7 +10,7 @@ import { } from './element-renderer'; import { ShapeElementView } from './element-view'; import { ShapeTool } from './shape-tool'; -import { shapeSeniorTool } from './toolbar'; +import { shapeSeniorTool, shapeToolbarExtension } from './toolbar'; export class ShapeViewExtension extends ViewExtensionProvider { override name = 'affine-shape-gfx'; @@ -22,10 +22,13 @@ export class ShapeViewExtension extends ViewExtensionProvider { override setup(context: ViewExtensionContext) { super.setup(context); - context.register(HighlighterElementRendererExtension); - context.register(ShapeElementRendererExtension); - context.register(ShapeElementView); - context.register(ShapeTool); - context.register(shapeSeniorTool); + if (this.isEdgeless(context.scope)) { + context.register(HighlighterElementRendererExtension); + context.register(ShapeElementRendererExtension); + context.register(ShapeElementView); + context.register(ShapeTool); + context.register(shapeSeniorTool); + context.register(shapeToolbarExtension); + } } } diff --git a/blocksuite/affine/widgets/edgeless-toolbar/src/edgeless-toolbar.ts b/blocksuite/affine/widgets/edgeless-toolbar/src/edgeless-toolbar.ts index e9998e5d5..42d1ec339 100644 --- a/blocksuite/affine/widgets/edgeless-toolbar/src/edgeless-toolbar.ts +++ b/blocksuite/affine/widgets/edgeless-toolbar/src/edgeless-toolbar.ts @@ -345,6 +345,7 @@ export class EdgelessToolbarWidget extends WidgetComponent { .map(tool => tool({ block, gfx, toolbarContainer: this.toolbarContainer }) ) + .sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0)) .filter(({ enable = true }) => enable); } diff --git a/blocksuite/affine/widgets/edgeless-toolbar/src/extension/index.ts b/blocksuite/affine/widgets/edgeless-toolbar/src/extension/index.ts index df8a34cd8..6851517e7 100644 --- a/blocksuite/affine/widgets/edgeless-toolbar/src/extension/index.ts +++ b/blocksuite/affine/widgets/edgeless-toolbar/src/extension/index.ts @@ -13,6 +13,7 @@ export interface QuickTool { * if not configured, the tool will not be shown in dense mode */ menu?: MenuConfig; + priority?: number; } export interface SeniorTool { diff --git a/tools/utils/src/workspace.gen.ts b/tools/utils/src/workspace.gen.ts index fde6f576b..07ff56a14 100644 --- a/tools/utils/src/workspace.gen.ts +++ b/tools/utils/src/workspace.gen.ts @@ -548,6 +548,7 @@ export const PackageList = [ 'blocksuite/affine/blocks/image', 'blocksuite/affine/blocks/surface', 'blocksuite/affine/components', + 'blocksuite/affine/ext-loader', 'blocksuite/affine/gfx/connector', 'blocksuite/affine/gfx/shape', 'blocksuite/affine/gfx/text', diff --git a/yarn.lock b/yarn.lock index be37369d6..75c751b40 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3189,6 +3189,7 @@ __metadata: "@blocksuite/affine-block-image": "workspace:*" "@blocksuite/affine-block-surface": "workspace:*" "@blocksuite/affine-components": "workspace:*" + "@blocksuite/affine-ext-loader": "workspace:*" "@blocksuite/affine-gfx-connector": "workspace:*" "@blocksuite/affine-gfx-shape": "workspace:*" "@blocksuite/affine-gfx-text": "workspace:*"