How aieditor-team/aieditor works
AiEditor is a framework-independent Web Components rich-text editor with AI-assisted authoring and document features. A typical workflow is to integrate and configure AiEditor, edit structured content through its extension set and menus, optionally invoke AI from the sidebar, then review or apply AI-proposed document changes. Media upload, document utilities, and the TinyUI layer support these experiences. The graph uses README statements and the supplied source index or excerpts as evidence; unsampled implementations and wiring are not assumed.
Main entry points: AiEditor.ts AiEditor · AiSidebarItem.ts AI sidebar · OpenAiService.ts AI service · AiEditorExtensionManager.ts Editor extensions
Components 21
Editor Core
- AiEditor
src/editor/AiEditor.ts - Editor options
src/editor/AiEditorOptions.ts
Document Editing
- Editor extensions
src/editor/runtime/AiEditorExtensionManager.ts - Tables
src/extensions/table/Table.ts - Content sanitizer
src/editor/AiEditorContentSanitizer.ts - Document outline
src/editor/AiEditorDocumentOutline.ts - Document styling
src/editor/AiEditorDocumentStyle.ts - Document templates
src/editor/AiEditorTemplate.ts
Editor Experience
- Menu components
src/menus/core/MenuBar.ts - Toolbar
src/features/toolbar/ToolbarMenu.ts - Context menus
src/features/bubble/BubbleMenu.ts - Block drag menu
src/features/block-drag/BlockDragMenu.ts - Media upload UI
src/features/upload/MediaDropUpload.ts
AI Authoring
- AI sidebar
src/features/sidebar/ai-chat/AiSidebarItem.ts - AI service
src/ai/OpenAiService.ts - AI providers
src/ai/Providers.ts - Editor AI tools
src/ai/editor-tools.ts
Supporting Services
- TinyUI runtime
src/tinyui/template/UITemplateParser.ts - Uploader
src/uploader/Uploader.ts - Localization
src/i18n/AiEditorI18n.ts
Other components
- Integrating app
Connections 20
- Integrating app → AiEditor: integrates
- AiEditor → Editor options: uses
src/editor/AiEditor.ts - AiEditor → Editor extensions: configures
src/editor/AiEditor.ts - Editor extensions → Tables: registers
src/editor/runtime/AiEditorExtensionManager.ts - AiEditor → Content sanitizer: sanitizes
src/editor/AiEditor.ts - AiEditor → Document outline: uses
src/editor/AiEditor.ts - AiEditor → Document styling: uses
src/editor/AiEditor.ts - AiEditor → Document templates: uses
src/editor/AiEditor.ts - AiEditor → Toolbar: integrates
src/editor/AiEditor.ts - AiEditor → Context menus: integrates
src/editor/AiEditor.ts - AiEditor → Menu components: uses
src/editor/AiEditor.ts - AiEditor → AI sidebar: integrates
src/editor/AiEditor.ts - AiEditor → Block drag menu: integrates
src/editor/AiEditor.ts - AiEditor → Media upload UI: integrates
- Media upload UI → Uploader: uses
- AI sidebar → AI service: requests generation
src/features/sidebar/ai-chat/AiSidebarItem.ts - AI service → AI providers: resolves provider
src/ai/OpenAiService.ts - AI service → Editor AI tools: executes tools
src/ai/OpenAiService.ts - AI sidebar → TinyUI runtime: renders with
src/features/sidebar/ai-chat/AiSidebarItem.ts - AI sidebar → Localization: uses