mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-13 21:05:19 +00:00
feat(editor): add gfx pointer extension (#12006)
<!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit - **New Features** - Introduced a new pointer graphics module with tools and quick tool integration for edgeless surfaces. - Added a quick tool button for pointer interactions in edgeless mode. - Exposed new extension points for pointer graphics and effects. - **Improvements** - Integrated pointer graphics as a dependency into related packages. - Enhanced toolbar context to support additional surface alignment modes. - Added conditional clipboard configuration registrations for edgeless contexts across multiple block types. - **Removals** - Removed legacy tool and effect definitions and related quick tool exports from edgeless components. - Streamlined extension arrays and removed unused exports for a cleaner codebase. - Deleted obsolete utility functions and component registrations. - **Chores** - Updated workspace and TypeScript project references to include the new pointer graphics module. <!-- end of auto-generated comment: release notes by coderabbit.ai -->
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
import { splitElements } from '@blocksuite/affine/blocks/root';
|
||||
import type * as PointerEffect from '@blocksuite/affine/gfx/pointer';
|
||||
import {
|
||||
CodeBlockModel,
|
||||
EdgelessTextBlockModel,
|
||||
@@ -48,6 +49,8 @@ import {
|
||||
getToolbar,
|
||||
} from './edgeless-response';
|
||||
|
||||
declare type _GLOBAL_ = typeof PointerEffect;
|
||||
|
||||
async function getContentFromEmbedSyncedDocModel(
|
||||
host: EditorHost,
|
||||
models: EmbedSyncedDocModel[]
|
||||
|
||||
@@ -1,51 +1,11 @@
|
||||
import { EdgelessRootBlockSpec } from '@blocksuite/affine/blocks/root';
|
||||
import { ToolbarModuleExtension } from '@blocksuite/affine/shared/services';
|
||||
import {
|
||||
BlockFlavourIdentifier,
|
||||
LifeCycleWatcher,
|
||||
} from '@blocksuite/affine/std';
|
||||
import type { ExtensionType } from '@blocksuite/affine/store';
|
||||
import { LifeCycleWatcher } from '@blocksuite/affine/std';
|
||||
import type { FrameworkProvider } from '@toeverything/infra';
|
||||
|
||||
import { buildAIPanelConfig } from '../ai-panel';
|
||||
import { toolbarAIEntryConfig } from '../entries';
|
||||
import {
|
||||
edgelessToolbarAIEntryConfig,
|
||||
setupEdgelessCopilot,
|
||||
} from '../entries/edgeless/index';
|
||||
import { setupEdgelessCopilot } from '../entries/edgeless/index';
|
||||
import { setupSpaceAIEntry } from '../entries/space/setup-space';
|
||||
import { CopilotTool } from '../tool/copilot-tool';
|
||||
import {
|
||||
AffineAIPanelWidget,
|
||||
aiPanelWidget,
|
||||
} from '../widgets/ai-panel/ai-panel';
|
||||
import {
|
||||
EdgelessCopilotWidget,
|
||||
edgelessCopilotWidget,
|
||||
} from '../widgets/edgeless-copilot';
|
||||
import { AiSlashMenuConfigExtension } from './ai-slash-menu';
|
||||
|
||||
export function createAIEdgelessRootBlockSpec(
|
||||
framework: FrameworkProvider
|
||||
): ExtensionType[] {
|
||||
return [
|
||||
...EdgelessRootBlockSpec,
|
||||
CopilotTool,
|
||||
aiPanelWidget,
|
||||
edgelessCopilotWidget,
|
||||
getAIEdgelessRootWatcher(framework),
|
||||
// In note
|
||||
ToolbarModuleExtension({
|
||||
id: BlockFlavourIdentifier('custom:affine:note'),
|
||||
config: toolbarAIEntryConfig(),
|
||||
}),
|
||||
ToolbarModuleExtension({
|
||||
id: BlockFlavourIdentifier('custom:affine:surface:*'),
|
||||
config: edgelessToolbarAIEntryConfig(),
|
||||
}),
|
||||
AiSlashMenuConfigExtension(),
|
||||
];
|
||||
}
|
||||
import { AffineAIPanelWidget } from '../widgets/ai-panel/ai-panel';
|
||||
import { EdgelessCopilotWidget } from '../widgets/edgeless-copilot';
|
||||
|
||||
export function getAIEdgelessRootWatcher(framework: FrameworkProvider) {
|
||||
class AIEdgelessRootWatcher extends LifeCycleWatcher {
|
||||
|
||||
Reference in New Issue
Block a user