From 5525c2bc8df29ffdbfa1ddd1657c2471a0c8d65d Mon Sep 17 00:00:00 2001 From: Saul-Mirone Date: Mon, 24 Mar 2025 03:14:22 +0000 Subject: [PATCH] refactor(editor): move mindmap view to mindmap package (#11102) --- .../src/edgeless/edgeless-builtin-spec.ts | 2 +- .../src/edgeless/edgeless-root-spec.ts | 4 +++ .../element-transform/mind-map-drag.ts | 34 +++++++++--------- .../element-transform/utils/drag-utils.ts | 2 +- .../affine/blocks/block-root/src/effects.ts | 9 ----- .../affine/blocks/block-surface/src/index.ts | 35 ++----------------- .../blocks/block-surface/src/surface-spec.ts | 5 --- .../blocks/block-surface/src/utils/index.ts | 1 - blocksuite/affine/gfx/connector/src/index.ts | 1 + .../affine/gfx/connector/src/view/index.ts | 1 + .../connector/src/view/view.ts} | 0 blocksuite/affine/gfx/mindmap/src/index.ts | 2 ++ .../mindmap/src/indicator-overlay/index.ts} | 9 ++--- .../affine/gfx/mindmap/src/toolbar/config.ts | 13 +++---- .../affine/gfx/mindmap/src/view/index.ts | 4 +++ .../mindmap/src/view}/layout.ts | 0 .../mindmap/src/view}/style-svg.ts | 0 .../mindmap => gfx/mindmap/src/view}/utils.ts | 2 +- .../mindmap/src/view/view.ts} | 2 +- .../widget-edgeless-toolbar/src/effects.ts | 9 +++++ .../src}/panel/font-family-panel.ts | 0 .../src}/panel/font-weight-and-style-panel.ts | 0 .../src/__tests__/edgeless/mindmap.spec.ts | 2 +- .../ai/actions/edgeless-response.ts | 9 ++--- .../ai/mini-mindmap/mindmap-preview.ts | 4 +-- .../src/blocksuite/ai/mini-mindmap/spec.ts | 6 ++-- 26 files changed, 63 insertions(+), 93 deletions(-) create mode 100644 blocksuite/affine/gfx/connector/src/view/index.ts rename blocksuite/affine/{blocks/block-surface/src/view/connector.ts => gfx/connector/src/view/view.ts} (100%) rename blocksuite/affine/{blocks/block-root/src/edgeless/element-transform/utils/indicator-overlay.ts => gfx/mindmap/src/indicator-overlay/index.ts} (98%) create mode 100644 blocksuite/affine/gfx/mindmap/src/view/index.ts rename blocksuite/affine/{blocks/block-surface/src/utils/mindmap => gfx/mindmap/src/view}/layout.ts (100%) rename blocksuite/affine/{blocks/block-surface/src/utils/mindmap => gfx/mindmap/src/view}/style-svg.ts (100%) rename blocksuite/affine/{blocks/block-surface/src/utils/mindmap => gfx/mindmap/src/view}/utils.ts (99%) rename blocksuite/affine/{blocks/block-surface/src/view/mindmap.ts => gfx/mindmap/src/view/view.ts} (99%) rename blocksuite/affine/{blocks/block-root/src/edgeless/components => widgets/widget-edgeless-toolbar/src}/panel/font-family-panel.ts (100%) rename blocksuite/affine/{blocks/block-root/src/edgeless/components => widgets/widget-edgeless-toolbar/src}/panel/font-weight-and-style-panel.ts (100%) diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-builtin-spec.ts b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-builtin-spec.ts index 88e2516f37..83a87ac126 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-builtin-spec.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-builtin-spec.ts @@ -5,6 +5,7 @@ import { } from '@blocksuite/affine-block-frame'; import { ConnectionOverlay } from '@blocksuite/affine-block-surface'; import { ConnectorTool } from '@blocksuite/affine-gfx-connector'; +import { MindMapIndicatorOverlay } from '@blocksuite/affine-gfx-mindmap'; import { NoteTool } from '@blocksuite/affine-gfx-note'; import { ShapeTool } from '@blocksuite/affine-gfx-shape'; import { TextTool } from '@blocksuite/affine-gfx-text'; @@ -19,7 +20,6 @@ import { EdgelessRootBlockSpec } from './edgeless-root-spec.js'; import { ConnectorFilter } from './element-transform/connector-filter.js'; import { MindMapDragExtension } from './element-transform/mind-map-drag.js'; import { SnapExtension } from './element-transform/snap-manager.js'; -import { MindMapIndicatorOverlay } from './element-transform/utils/indicator-overlay.js'; import { BrushTool } from './gfx-tool/brush-tool.js'; import { DefaultTool } from './gfx-tool/default-tool.js'; import { EmptyTool } from './gfx-tool/empty-tool.js'; diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts index b4de738865..229697f284 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/edgeless-root-spec.ts @@ -1,3 +1,5 @@ +import { ConnectorElementView } from '@blocksuite/affine-gfx-connector'; +import { MindMapView } from '@blocksuite/affine-gfx-mindmap'; import { ViewportElementExtension } from '@blocksuite/affine-shared/services'; import { autoConnectWidget } from '@blocksuite/affine-widget-edgeless-auto-connect'; import { edgelessToolbarWidget } from '@blocksuite/affine-widget-edgeless-toolbar'; @@ -59,6 +61,8 @@ const EdgelessCommonExtension: ExtensionType[] = [ ToolController, EdgelessRootService, ViewportElementExtension('.affine-edgeless-viewport'), + MindMapView, + ConnectorElementView, ...quickTools, ...seniorTools, ].flat(); diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/mind-map-drag.ts b/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/mind-map-drag.ts index 5378701e5b..33eb6339ed 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/mind-map-drag.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/mind-map-drag.ts @@ -1,10 +1,18 @@ import { - MindmapUtils, - NODE_HORIZONTAL_SPACING, - NODE_VERTICAL_SPACING, OverlayIdentifier, type SurfaceBlockComponent, } from '@blocksuite/affine-block-surface'; +import { + containsNode, + createFromTree, + detachMindmap, + findTargetNode, + hideNodeConnector, + type MindMapIndicatorOverlay, + NODE_HORIZONTAL_SPACING, + NODE_VERTICAL_SPACING, + tryMoveNode, +} from '@blocksuite/affine-gfx-mindmap'; import { type LayoutType, type LocalConnectorElementModel, @@ -26,7 +34,6 @@ import type { Bound, IVec } from '@blocksuite/global/gfx'; import { isSingleMindMapNode } from '../utils/mindmap'; import { isMindmapNode } from '../utils/query'; import { calculateResponseArea } from './utils/drag-utils'; -import type { MindMapIndicatorOverlay } from './utils/indicator-overlay'; type DragMindMapCtx = { mindmap: MindmapElementModel; @@ -89,7 +96,7 @@ export class MindMapDragExtension extends TransformExtension { hoveredCtx?.abort?.(); const hoveredNode = hoveredMindMap - ? MindmapUtils.findTargetNode(hoveredMindMap, [x, y]) + ? findTargetNode(hoveredMindMap, [x, y]) : null; hoveredCtx = { @@ -104,13 +111,9 @@ export class MindMapDragExtension extends TransformExtension { if ( hoveredNode && hoveredMindMap && - !MindmapUtils.containsNode( - hoveredMindMap, - hoveredNode, - dragMindMapCtx.node - ) + !containsNode(hoveredMindMap, hoveredNode, dragMindMapCtx.node) ) { - const operation = MindmapUtils.tryMoveNode( + const operation = tryMoveNode( hoveredMindMap, hoveredNode, dragMindMapCtx.mindmap, @@ -156,7 +159,7 @@ export class MindMapDragExtension extends TransformExtension { } else { hoveredCtx.detach = true; - const reset = (hoveredCtx.abort = MindmapUtils.hideNodeConnector( + const reset = (hoveredCtx.abort = hideNodeConnector( dragMindMapCtx.mindmap, dragMindMapCtx.node )); @@ -183,11 +186,8 @@ export class MindMapDragExtension extends TransformExtension { .serialize(); if (dragMindMapCtx.node !== dragMindMapCtx.mindmap.tree) { - MindmapUtils.detachMindmap( - dragMindMapCtx.mindmap, - dragMindMapCtx.node - ); - const mindmap = MindmapUtils.createFromTree( + detachMindmap(dragMindMapCtx.mindmap, dragMindMapCtx.node); + const mindmap = createFromTree( dragMindMapCtx.node, dragMindMapCtx.mindmap.style, dragMindMapCtx.mindmap.layoutType, diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/drag-utils.ts b/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/drag-utils.ts index 9adbcc9768..bafa58f310 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/drag-utils.ts +++ b/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/drag-utils.ts @@ -1,7 +1,7 @@ import { NODE_HORIZONTAL_SPACING, NODE_VERTICAL_SPACING, -} from '@blocksuite/affine-block-surface'; +} from '@blocksuite/affine-gfx-mindmap'; import { LayoutType, type MindmapElementModel, diff --git a/blocksuite/affine/blocks/block-root/src/effects.ts b/blocksuite/affine/blocks/block-root/src/effects.ts index 434347a17f..0bd89b30d7 100644 --- a/blocksuite/affine/blocks/block-root/src/effects.ts +++ b/blocksuite/affine/blocks/block-root/src/effects.ts @@ -11,8 +11,6 @@ import { NOTE_SLICER_WIDGET, NoteSlicer, } from './edgeless/components/note-slicer/index.js'; -import { EdgelessFontFamilyPanel } from './edgeless/components/panel/font-family-panel.js'; -import { EdgelessFontWeightAndStylePanel } from './edgeless/components/panel/font-weight-and-style-panel.js'; import { EdgelessScalePanel } from './edgeless/components/panel/scale-panel.js'; import { EdgelessSizePanel } from './edgeless/components/panel/size-panel.js'; import { StrokeStylePanel } from './edgeless/components/panel/stroke-style-panel.js'; @@ -151,13 +149,8 @@ function registerEdgelessToolbarComponents() { } function registerEdgelessPanelComponents() { - customElements.define( - 'edgeless-font-weight-and-style-panel', - EdgelessFontWeightAndStylePanel - ); customElements.define('edgeless-size-panel', EdgelessSizePanel); customElements.define('edgeless-scale-panel', EdgelessScalePanel); - customElements.define('edgeless-font-family-panel', EdgelessFontFamilyPanel); customElements.define('stroke-style-panel', StrokeStylePanel); } @@ -217,8 +210,6 @@ declare global { 'edgeless-auto-complete-panel': EdgelessAutoCompletePanel; 'edgeless-auto-complete': EdgelessAutoComplete; 'note-slicer': NoteSlicer; - 'edgeless-font-family-panel': EdgelessFontFamilyPanel; - 'edgeless-font-weight-and-style-panel': EdgelessFontWeightAndStylePanel; 'edgeless-scale-panel': EdgelessScalePanel; 'edgeless-size-panel': EdgelessSizePanel; 'stroke-style-panel': StrokeStylePanel; diff --git a/blocksuite/affine/blocks/block-surface/src/index.ts b/blocksuite/affine/blocks/block-surface/src/index.ts index 9488c6031d..ab98aac1c9 100644 --- a/blocksuite/affine/blocks/block-surface/src/index.ts +++ b/blocksuite/affine/blocks/block-surface/src/index.ts @@ -30,7 +30,6 @@ export { fitContent } from './renderer/elements/shape/utils.js'; export * from './renderer/elements/type.js'; export { Overlay, OverlayIdentifier } from './renderer/overlay.js'; export { ToolOverlay } from './renderer/tool-overlay.js'; -export { MindMapView } from './view/mindmap.js'; import { getCursorByCoord, getLineHeight, @@ -49,6 +48,7 @@ export { EdgelessSurfaceBlockAdapterExtensions, SurfaceBlockAdapterExtensions, } from './adapters/index.js'; +export * from './extensions'; export type { SurfaceContext } from './surface-block.js'; export { SurfaceBlockComponent } from './surface-block.js'; export { @@ -62,25 +62,6 @@ export { PageSurfaceBlockSpec, } from './surface-spec.js'; export { SurfaceBlockTransformer } from './surface-transformer.js'; -export { AStarRunner } from './utils/a-star.js'; -export { - NODE_FIRST_LEVEL_HORIZONTAL_SPACING, - NODE_HORIZONTAL_SPACING, - NODE_VERTICAL_SPACING, -} from './utils/mindmap/layout.js'; -export { RoughCanvas } from './utils/rough/canvas.js'; - -import { - addTree, - containsNode, - createFromTree, - detachMindmap, - findTargetNode, - hideNodeConnector, - moveNode, - tryMoveNode, -} from './utils/mindmap/utils'; -export * from './extensions'; export { addNote, addNoteAtPoint, @@ -91,7 +72,8 @@ export { getSurfaceComponent, normalizeWheelDeltaY, } from './utils'; -export * from './utils/mindmap/style-svg'; +export { AStarRunner } from './utils/a-star.js'; +export { RoughCanvas } from './utils/rough/canvas.js'; export type { Options } from './utils/rough/core'; export { sortIndex } from './utils/sort'; export { updateXYWH } from './utils/update-xywh.js'; @@ -114,15 +96,4 @@ export const TextUtils = { isSameFontFamily, }; -export const MindmapUtils = { - addTree, - createFromTree, - detachMindmap, - moveNode, - findTargetNode, - tryMoveNode, - hideNodeConnector, - containsNode, -}; - export * from './commands'; diff --git a/blocksuite/affine/blocks/block-surface/src/surface-spec.ts b/blocksuite/affine/blocks/block-surface/src/surface-spec.ts index b086bc673e..d6cee41889 100644 --- a/blocksuite/affine/blocks/block-surface/src/surface-spec.ts +++ b/blocksuite/affine/blocks/block-surface/src/surface-spec.ts @@ -12,8 +12,6 @@ import { } from './extensions'; import { ExportManagerExtension } from './extensions/export-manager/export-manager'; import { SurfaceBlockService } from './surface-service'; -import { ConnectorElementView } from './view/connector'; -import { MindMapView } from './view/mindmap'; const CommonSurfaceBlockSpec: ExtensionType[] = [ FlavourExtension('affine:surface'), @@ -23,8 +21,6 @@ const CommonSurfaceBlockSpec: ExtensionType[] = [ ExportManagerExtension, ]; -const ElementModelViews = [MindMapView, ConnectorElementView]; - export const PageSurfaceBlockSpec: ExtensionType[] = [ ...CommonSurfaceBlockSpec, ...SurfaceBlockAdapterExtensions, @@ -34,6 +30,5 @@ export const PageSurfaceBlockSpec: ExtensionType[] = [ export const EdgelessSurfaceBlockSpec: ExtensionType[] = [ ...CommonSurfaceBlockSpec, ...EdgelessSurfaceBlockAdapterExtensions, - ...ElementModelViews, BlockViewExtension('affine:surface', literal`affine-surface`), ]; diff --git a/blocksuite/affine/blocks/block-surface/src/utils/index.ts b/blocksuite/affine/blocks/block-surface/src/utils/index.ts index 42362e0d31..319d0122af 100644 --- a/blocksuite/affine/blocks/block-surface/src/utils/index.ts +++ b/blocksuite/affine/blocks/block-surface/src/utils/index.ts @@ -37,4 +37,3 @@ export { addNote, addNoteAtPoint } from './add-note'; export { getBgGridGap } from './get-bg-grip-gap'; export { getLastPropsKey } from './get-last-props-key'; export * from './get-surface-block'; -export * from './mindmap/style-svg.js'; diff --git a/blocksuite/affine/gfx/connector/src/index.ts b/blocksuite/affine/gfx/connector/src/index.ts index 9462c92593..e3b29ea2b7 100644 --- a/blocksuite/affine/gfx/connector/src/index.ts +++ b/blocksuite/affine/gfx/connector/src/index.ts @@ -2,3 +2,4 @@ export * from './connector-tool'; export * from './text'; export * from './toolbar/config'; export * from './toolbar/quick-tool'; +export * from './view'; diff --git a/blocksuite/affine/gfx/connector/src/view/index.ts b/blocksuite/affine/gfx/connector/src/view/index.ts new file mode 100644 index 0000000000..5638cb2c6d --- /dev/null +++ b/blocksuite/affine/gfx/connector/src/view/index.ts @@ -0,0 +1 @@ +export * from './view'; diff --git a/blocksuite/affine/blocks/block-surface/src/view/connector.ts b/blocksuite/affine/gfx/connector/src/view/view.ts similarity index 100% rename from blocksuite/affine/blocks/block-surface/src/view/connector.ts rename to blocksuite/affine/gfx/connector/src/view/view.ts diff --git a/blocksuite/affine/gfx/mindmap/src/index.ts b/blocksuite/affine/gfx/mindmap/src/index.ts index bcd9428670..8e618c03cd 100644 --- a/blocksuite/affine/gfx/mindmap/src/index.ts +++ b/blocksuite/affine/gfx/mindmap/src/index.ts @@ -1 +1,3 @@ +export * from './indicator-overlay'; export * from './toolbar/config'; +export * from './view'; diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/indicator-overlay.ts b/blocksuite/affine/gfx/mindmap/src/indicator-overlay/index.ts similarity index 98% rename from blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/indicator-overlay.ts rename to blocksuite/affine/gfx/mindmap/src/indicator-overlay/index.ts index b39db72974..54c46abf6d 100644 --- a/blocksuite/affine/blocks/block-root/src/edgeless/element-transform/utils/indicator-overlay.ts +++ b/blocksuite/affine/gfx/mindmap/src/indicator-overlay/index.ts @@ -1,9 +1,4 @@ -import { - NODE_HORIZONTAL_SPACING, - NODE_VERTICAL_SPACING, - Overlay, - PathGenerator, -} from '@blocksuite/affine-block-surface'; +import { Overlay, PathGenerator } from '@blocksuite/affine-block-surface'; import { ConnectorMode, LayoutType, @@ -21,6 +16,8 @@ import { } from '@blocksuite/global/gfx'; import last from 'lodash-es/last'; +import { NODE_HORIZONTAL_SPACING, NODE_VERTICAL_SPACING } from '../view/layout'; + export class MindMapIndicatorOverlay extends Overlay { static INDICATOR_SIZE = [48, 22]; diff --git a/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts b/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts index 94f2a26235..460ccd9882 100644 --- a/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts +++ b/blocksuite/affine/gfx/mindmap/src/toolbar/config.ts @@ -1,9 +1,3 @@ -import { - MindmapStyleFour, - MindmapStyleOne, - MindmapStyleThree, - MindmapStyleTwo, -} from '@blocksuite/affine-block-surface'; import { LayoutType, MindmapElementModel, @@ -22,6 +16,13 @@ import { import { BlockFlavourIdentifier } from '@blocksuite/block-std'; import { RadiantIcon, RightLayoutIcon, StyleIcon } from '@blocksuite/icons/lit'; +import { + MindmapStyleFour, + MindmapStyleOne, + MindmapStyleThree, + MindmapStyleTwo, +} from '../view'; + const MINDMAP_STYLE_LIST = [ { value: MindmapStyle.ONE, diff --git a/blocksuite/affine/gfx/mindmap/src/view/index.ts b/blocksuite/affine/gfx/mindmap/src/view/index.ts new file mode 100644 index 0000000000..ff7a7d5c6b --- /dev/null +++ b/blocksuite/affine/gfx/mindmap/src/view/index.ts @@ -0,0 +1,4 @@ +export * from './layout'; +export * from './style-svg'; +export * from './utils'; +export * from './view'; diff --git a/blocksuite/affine/blocks/block-surface/src/utils/mindmap/layout.ts b/blocksuite/affine/gfx/mindmap/src/view/layout.ts similarity index 100% rename from blocksuite/affine/blocks/block-surface/src/utils/mindmap/layout.ts rename to blocksuite/affine/gfx/mindmap/src/view/layout.ts diff --git a/blocksuite/affine/blocks/block-surface/src/utils/mindmap/style-svg.ts b/blocksuite/affine/gfx/mindmap/src/view/style-svg.ts similarity index 100% rename from blocksuite/affine/blocks/block-surface/src/utils/mindmap/style-svg.ts rename to blocksuite/affine/gfx/mindmap/src/view/style-svg.ts diff --git a/blocksuite/affine/blocks/block-surface/src/utils/mindmap/utils.ts b/blocksuite/affine/gfx/mindmap/src/view/utils.ts similarity index 99% rename from blocksuite/affine/blocks/block-surface/src/utils/mindmap/utils.ts rename to blocksuite/affine/gfx/mindmap/src/view/utils.ts index 0ba73d0dd6..591594458f 100644 --- a/blocksuite/affine/blocks/block-surface/src/utils/mindmap/utils.ts +++ b/blocksuite/affine/gfx/mindmap/src/view/utils.ts @@ -1,3 +1,4 @@ +import { fitContent } from '@blocksuite/affine-block-surface'; import { applyNodeStyle, LayoutType, @@ -19,7 +20,6 @@ import isEqual from 'lodash-es/isEqual'; import last from 'lodash-es/last'; import * as Y from 'yjs'; -import { fitContent } from '../../renderer/elements/shape/utils.js'; import { layout } from './layout.js'; export function getHoveredArea( diff --git a/blocksuite/affine/blocks/block-surface/src/view/mindmap.ts b/blocksuite/affine/gfx/mindmap/src/view/view.ts similarity index 99% rename from blocksuite/affine/blocks/block-surface/src/view/mindmap.ts rename to blocksuite/affine/gfx/mindmap/src/view/view.ts index ba0f68e0de..4ff3b8e48e 100644 --- a/blocksuite/affine/blocks/block-surface/src/view/mindmap.ts +++ b/blocksuite/affine/gfx/mindmap/src/view/view.ts @@ -10,7 +10,7 @@ import { requestThrottledConnectedFrame } from '@blocksuite/affine-shared/utils' import type { PointerEventState } from '@blocksuite/block-std'; import { GfxElementModelView } from '@blocksuite/block-std/gfx'; -import { handleLayout } from '../utils/mindmap/utils.js'; +import { handleLayout } from './utils.js'; export class MindMapView extends GfxElementModelView { static override type = 'mindmap'; diff --git a/blocksuite/affine/widgets/widget-edgeless-toolbar/src/effects.ts b/blocksuite/affine/widgets/widget-edgeless-toolbar/src/effects.ts index 5939b50dde..c0d3436dfe 100644 --- a/blocksuite/affine/widgets/widget-edgeless-toolbar/src/effects.ts +++ b/blocksuite/affine/widgets/widget-edgeless-toolbar/src/effects.ts @@ -4,11 +4,18 @@ import { EDGELESS_TOOLBAR_WIDGET, EdgelessToolbarWidget, } from './edgeless-toolbar'; +import { EdgelessFontFamilyPanel } from './panel/font-family-panel'; +import { EdgelessFontWeightAndStylePanel } from './panel/font-weight-and-style-panel'; export function effects() { customElements.define(EDGELESS_TOOLBAR_WIDGET, EdgelessToolbarWidget); customElements.define('edgeless-toolbar-button', EdgelessToolbarButton); customElements.define('edgeless-tool-icon-button', EdgelessToolIconButton); + customElements.define( + 'edgeless-font-weight-and-style-panel', + EdgelessFontWeightAndStylePanel + ); + customElements.define('edgeless-font-family-panel', EdgelessFontFamilyPanel); } declare global { @@ -16,5 +23,7 @@ declare global { 'edgeless-tool-icon-button': EdgelessToolIconButton; 'edgeless-toolbar-button': EdgelessToolbarButton; 'edgeless-toolbar-widget': EdgelessToolbarWidget; + 'edgeless-font-weight-and-style-panel': EdgelessFontWeightAndStylePanel; + 'edgeless-font-family-panel': EdgelessFontFamilyPanel; } } diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/components/panel/font-family-panel.ts b/blocksuite/affine/widgets/widget-edgeless-toolbar/src/panel/font-family-panel.ts similarity index 100% rename from blocksuite/affine/blocks/block-root/src/edgeless/components/panel/font-family-panel.ts rename to blocksuite/affine/widgets/widget-edgeless-toolbar/src/panel/font-family-panel.ts diff --git a/blocksuite/affine/blocks/block-root/src/edgeless/components/panel/font-weight-and-style-panel.ts b/blocksuite/affine/widgets/widget-edgeless-toolbar/src/panel/font-weight-and-style-panel.ts similarity index 100% rename from blocksuite/affine/blocks/block-root/src/edgeless/components/panel/font-weight-and-style-panel.ts rename to blocksuite/affine/widgets/widget-edgeless-toolbar/src/panel/font-weight-and-style-panel.ts diff --git a/blocksuite/integration-test/src/__tests__/edgeless/mindmap.spec.ts b/blocksuite/integration-test/src/__tests__/edgeless/mindmap.spec.ts index ddd81775ae..8e5d0b1143 100644 --- a/blocksuite/integration-test/src/__tests__/edgeless/mindmap.spec.ts +++ b/blocksuite/integration-test/src/__tests__/edgeless/mindmap.spec.ts @@ -1,4 +1,4 @@ -import type { MindMapView } from '@blocksuite/affine/blocks/surface'; +import type { MindMapView } from '@blocksuite/affine/gfx/mindmap'; import { LayoutType, type MindmapElementModel } from '@blocksuite/affine-model'; import type { GfxController } from '@blocksuite/block-std/gfx'; import { Bound } from '@blocksuite/global/gfx'; diff --git a/packages/frontend/core/src/blocksuite/ai/actions/edgeless-response.ts b/packages/frontend/core/src/blocksuite/ai/actions/edgeless-response.ts index 6b7634cba4..7a826c7c2f 100644 --- a/packages/frontend/core/src/blocksuite/ai/actions/edgeless-response.ts +++ b/packages/frontend/core/src/blocksuite/ai/actions/edgeless-response.ts @@ -5,12 +5,9 @@ import { EDGELESS_TEXT_BLOCK_MIN_WIDTH, } from '@blocksuite/affine/blocks/edgeless-text'; import { addImages } from '@blocksuite/affine/blocks/image'; -import { - fitContent, - getSurfaceBlock, - MindmapUtils, -} from '@blocksuite/affine/blocks/surface'; +import { fitContent, getSurfaceBlock } from '@blocksuite/affine/blocks/surface'; import { LightLoadingIcon } from '@blocksuite/affine/components/icons'; +import { addTree } from '@blocksuite/affine/gfx/mindmap'; import { Bound } from '@blocksuite/affine/global/gfx'; import type { MindmapElementModel, @@ -379,7 +376,7 @@ export function responseToExpandMindmap(host: EditorHost, ctx: AIContext) { const mindmap = elements[0].group as MindmapElementModel; if (mindmapNode.children) { mindmapNode.children.forEach(childTree => { - MindmapUtils.addTree(mindmap, elements[0].id, childTree); + addTree(mindmap, elements[0].id, childTree); }); const subtree = mindmap.getNode(elements[0].id); diff --git a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/mindmap-preview.ts b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/mindmap-preview.ts index e81ab873a9..609e540de2 100644 --- a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/mindmap-preview.ts +++ b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/mindmap-preview.ts @@ -1,12 +1,12 @@ import { WorkspaceImpl } from '@affine/core/modules/workspace/impls/workspace.js'; import { BlockStdScope, type EditorHost } from '@blocksuite/affine/block-std'; +import type { SurfaceBlockModel } from '@blocksuite/affine/blocks/surface'; import { MindmapStyleFour, MindmapStyleOne, MindmapStyleThree, MindmapStyleTwo, - type SurfaceBlockModel, -} from '@blocksuite/affine/blocks/surface'; +} from '@blocksuite/affine/gfx/mindmap'; import type { ServiceProvider } from '@blocksuite/affine/global/di'; import { WithDisposable } from '@blocksuite/affine/global/lit'; import { diff --git a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/spec.ts b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/spec.ts index 0767012dc5..66b67850f9 100644 --- a/packages/frontend/core/src/blocksuite/ai/mini-mindmap/spec.ts +++ b/packages/frontend/core/src/blocksuite/ai/mini-mindmap/spec.ts @@ -2,10 +2,8 @@ import { BlockViewExtension, FlavourExtension, } from '@blocksuite/affine/block-std'; -import { - MindMapView, - SurfaceBlockSchema, -} from '@blocksuite/affine/blocks/surface'; +import { SurfaceBlockSchema } from '@blocksuite/affine/blocks/surface'; +import { MindMapView } from '@blocksuite/affine/gfx/mindmap'; import { RootBlockSchema } from '@blocksuite/affine/model'; import { DocModeService,