diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/index.ts b/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/index.ts index a786af4039..b9f17c3eaf 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/index.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/index.ts @@ -1,4 +1,5 @@ import { frameToolbarExtension } from '@blocksuite/affine-block-frame'; +import { textToolbarConfig } from '@blocksuite/affine-gfx-text'; import { ToolbarModuleExtension } from '@blocksuite/affine-shared/services'; import { BlockFlavourIdentifier } from '@blocksuite/block-std'; import type { ExtensionType } from '@blocksuite/store'; @@ -10,7 +11,6 @@ import { builtinGroupToolbarConfig } from './group'; import { builtinMindmapToolbarConfig } from './mindmap'; import { builtinLockedToolbarConfig, builtinMiscToolbarConfig } from './misc'; import { builtinShapeToolbarConfig } from './shape'; -import { builtinTextToolbarConfig } from './text'; export const EdgelessElementToolbarExtension: ExtensionType[] = [ frameToolbarExtension, @@ -37,7 +37,7 @@ export const EdgelessElementToolbarExtension: ExtensionType[] = [ ToolbarModuleExtension({ id: BlockFlavourIdentifier('affine:surface:text'), - config: builtinTextToolbarConfig, + config: textToolbarConfig, }), ToolbarModuleExtension({ diff --git a/blocksuite/affine/blocks/block-root/src/effects.ts b/blocksuite/affine/blocks/block-root/src/effects.ts index 868f1ae4bf..f3729980ae 100644 --- a/blocksuite/affine/blocks/block-root/src/effects.ts +++ b/blocksuite/affine/blocks/block-root/src/effects.ts @@ -55,7 +55,6 @@ import { OverlayScrollbar } from './edgeless/components/toolbar/template/overlay import { AffineTemplateLoading } from './edgeless/components/toolbar/template/template-loading.js'; import { EdgelessTemplatePanel } from './edgeless/components/toolbar/template/template-panel.js'; import { EdgelessTemplateButton } from './edgeless/components/toolbar/template/template-tool-button.js'; -import { EdgelessTextMenu } from './edgeless/components/toolbar/text/text-menu.js'; import { AffineImageToolbarWidget, AffineModalWidget, @@ -174,7 +173,6 @@ function registerEdgelessToolbarComponents() { customElements.define('edgeless-frame-menu', EdgelessFrameMenu); customElements.define('edgeless-mindmap-menu', EdgelessMindmapMenu); customElements.define('edgeless-note-menu', EdgelessNoteMenu); - customElements.define('edgeless-text-menu', EdgelessTextMenu); customElements.define('edgeless-slide-menu', EdgelessSlideMenu); // Toolbar components @@ -318,7 +316,6 @@ declare global { 'overlay-scrollbar': OverlayScrollbar; 'affine-template-loading': AffineTemplateLoading; 'edgeless-templates-panel': EdgelessTemplatePanel; - 'edgeless-text-menu': EdgelessTextMenu; 'affine-page-root': PageRootBlockComponent; 'zoom-bar-toggle-button': ZoomBarToggleButton; 'edgeless-zoom-toolbar': EdgelessZoomToolbar; diff --git a/blocksuite/affine/gfx/shape/src/toolbar/shape.ts b/blocksuite/affine/gfx/shape/src/toolbar/config.ts similarity index 100% rename from blocksuite/affine/gfx/shape/src/toolbar/shape.ts rename to blocksuite/affine/gfx/shape/src/toolbar/config.ts diff --git a/blocksuite/affine/gfx/shape/src/toolbar/index.ts b/blocksuite/affine/gfx/shape/src/toolbar/index.ts index 0509c17f6d..ec5763d072 100644 --- a/blocksuite/affine/gfx/shape/src/toolbar/index.ts +++ b/blocksuite/affine/gfx/shape/src/toolbar/index.ts @@ -1,3 +1,3 @@ +export * from './config'; export * from './icons'; -export * from './shape'; export * from './shape-menu-config'; diff --git a/blocksuite/affine/gfx/text/package.json b/blocksuite/affine/gfx/text/package.json index 0c47549f6e..da76121424 100644 --- a/blocksuite/affine/gfx/text/package.json +++ b/blocksuite/affine/gfx/text/package.json @@ -16,6 +16,7 @@ "@blocksuite/affine-model": "workspace:*", "@blocksuite/affine-rich-text": "workspace:*", "@blocksuite/affine-shared": "workspace:*", + "@blocksuite/affine-widget-edgeless-toolbar": "workspace:*", "@blocksuite/block-std": "workspace:*", "@blocksuite/global": "workspace:*", "@blocksuite/icons": "^2.2.6", diff --git a/blocksuite/affine/gfx/text/src/effects.ts b/blocksuite/affine/gfx/text/src/effects.ts index c8895bc516..36af8260ed 100644 --- a/blocksuite/affine/gfx/text/src/effects.ts +++ b/blocksuite/affine/gfx/text/src/effects.ts @@ -1,11 +1,14 @@ import { EdgelessTextEditor } from './edgeless-text-editor'; +import { EdgelessTextMenu } from './toolbar/text-menu'; export function effects() { customElements.define('edgeless-text-editor', EdgelessTextEditor); + customElements.define('edgeless-text-menu', EdgelessTextMenu); } declare global { interface HTMLElementTagNameMap { 'edgeless-text-editor': EdgelessTextEditor; + 'edgeless-text-menu': EdgelessTextMenu; } } diff --git a/blocksuite/affine/gfx/text/src/index.ts b/blocksuite/affine/gfx/text/src/index.ts index 238f482701..0586269559 100644 --- a/blocksuite/affine/gfx/text/src/index.ts +++ b/blocksuite/affine/gfx/text/src/index.ts @@ -1,3 +1,4 @@ export * from './edgeless-text-editor'; export * from './mount-text-editor'; export * from './tool'; +export * from './toolbar'; diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/text.ts b/blocksuite/affine/gfx/text/src/toolbar/config.ts similarity index 97% rename from blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/text.ts rename to blocksuite/affine/gfx/text/src/toolbar/config.ts index 28024aa8d6..8d084e0527 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/configs/toolbar/text.ts +++ b/blocksuite/affine/gfx/text/src/toolbar/config.ts @@ -7,7 +7,7 @@ import { type ToolbarModuleConfig } from '@blocksuite/affine-shared/services'; import { createTextActions } from '@blocksuite/affine-widget-edgeless-toolbar'; import { Bound } from '@blocksuite/global/gfx'; -export const builtinTextToolbarConfig = { +export const textToolbarConfig = { actions: createTextActions(TextElementModel, 'text', (ctx, model, props) => { // No need to adjust element bounds if (props['textAlign']) { diff --git a/blocksuite/affine/gfx/text/src/toolbar/index.ts b/blocksuite/affine/gfx/text/src/toolbar/index.ts new file mode 100644 index 0000000000..f03c2281a9 --- /dev/null +++ b/blocksuite/affine/gfx/text/src/toolbar/index.ts @@ -0,0 +1 @@ +export * from './config'; diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/components/toolbar/text/text-menu.ts b/blocksuite/affine/gfx/text/src/toolbar/text-menu.ts similarity index 100% rename from blocksuite/affine/blocks/block-root/src/edgeless/components/toolbar/text/text-menu.ts rename to blocksuite/affine/gfx/text/src/toolbar/text-menu.ts diff --git a/blocksuite/affine/gfx/text/tsconfig.json b/blocksuite/affine/gfx/text/tsconfig.json index f3faa55427..29996fc4cd 100644 --- a/blocksuite/affine/gfx/text/tsconfig.json +++ b/blocksuite/affine/gfx/text/tsconfig.json @@ -13,6 +13,7 @@ { "path": "../../model" }, { "path": "../../rich-text" }, { "path": "../../shared" }, + { "path": "../../widgets/widget-edgeless-toolbar" }, { "path": "../../../framework/block-std" }, { "path": "../../../framework/global" }, { "path": "../../../framework/store" } diff --git a/tools/utils/src/workspace.gen.ts b/tools/utils/src/workspace.gen.ts index 1442a0a56b..a4aa5b68e9 100644 --- a/tools/utils/src/workspace.gen.ts +++ b/tools/utils/src/workspace.gen.ts @@ -464,6 +464,7 @@ export const PackageList = [ 'blocksuite/affine/model', 'blocksuite/affine/rich-text', 'blocksuite/affine/shared', + 'blocksuite/affine/widgets/widget-edgeless-toolbar', 'blocksuite/framework/block-std', 'blocksuite/framework/global', 'blocksuite/framework/store', diff --git a/yarn.lock b/yarn.lock index c098e82b21..5c3106e0f6 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3011,6 +3011,7 @@ __metadata: "@blocksuite/affine-model": "workspace:*" "@blocksuite/affine-rich-text": "workspace:*" "@blocksuite/affine-shared": "workspace:*" + "@blocksuite/affine-widget-edgeless-toolbar": "workspace:*" "@blocksuite/block-std": "workspace:*" "@blocksuite/global": "workspace:*" "@blocksuite/icons": "npm:^2.2.6"