Features
Everything comes from one import — ai-sparkwrite-editor (React) or ai-sparkwrite-editor/vue (Vue) — or all at once through RichTextKit. Register the extension in useEditor, place the control inside RichTextProvider. The Import column lists the per-feature subpath, an equivalent for bundlers that do not tree-shake. Options are passed with .configure({ ... }); every extension also accepts the shared toolbar, divider, spacer and shortcutKeys options.
Core
| Feature | Import | Control | Notable options |
|---|---|---|---|
| RichTextKit | ai-sparkwrite-editor, ai-sparkwrite-editor/vue | RichTextKit, RichTextKitToolbar, RichTextKitMenus | one key per feature: false, or the extension's options |
| Provider, toolbar primitives | ai-sparkwrite-editor | RichTextProvider, RichTextToolbar, RichTextToolbarMore, RichTextToolbarButton … | see Customization |
| Framework-agnostic core | ai-sparkwrite-editor/core | — | extensions, paste rules, recorder, AI transport, translations; no React — see Frameworks |
| Vue 3 UI | ai-sparkwrite-editor/vue | RichTextProvider, toolbar primitives, controls, bubble menus, dialogs, AI panel and composer, node views | same stylesheet as the React controls; see Frameworks |
| History | ai-sparkwrite-editor/history | RichTextHistory (undo/redo) | depth |
| Heading | ai-sparkwrite-editor/heading | RichTextHeading | levels; clicks in the gap above a block go to that block |
| Bold, Italic, Underline, Strike, Code | ai-sparkwrite-editor/bold … | RichTextBold … | — |
| MoreMark | ai-sparkwrite-editor/moremark | RichTextMoreMark (superscript, subscript) | — |
| Color, Highlight | ai-sparkwrite-editor/color, ai-sparkwrite-editor/highlight | RichTextColor, RichTextHighlight | colors |
| FontFamily | ai-sparkwrite-editor/fontfamily | RichTextFontFamily | fontFamilyList; CJK, Devanagari, Bengali stacks shown by locale and document |
| FontSize | ai-sparkwrite-editor/fontsize | RichTextFontSize (compact) | fontSizes |
| LineHeight | ai-sparkwrite-editor/lineheight | RichTextLineHeight | lineHeights |
| TextAlign | ai-sparkwrite-editor/textalign | RichTextTextAlign | alignments, types |
| TextDirection | ai-sparkwrite-editor/textdirection | RichTextTextDirection | directions |
| Indent | ai-sparkwrite-editor/indent | RichTextIndent | minIndent, maxIndent |
| Clear | ai-sparkwrite-editor/clear | RichTextClear (clear formatting) | — |
| FormatPainter | ai-sparkwrite-editor/formatpainter | RichTextFormatPainter | — |
Blocks
| Feature | Import | Control | Notable options |
|---|---|---|---|
| BulletList, OrderedList, TaskList | ai-sparkwrite-editor/bulletlist … | RichTextBulletList … | — |
| Blockquote | ai-sparkwrite-editor/blockquote | RichTextBlockquote | — |
| CodeBlock | ai-sparkwrite-editor/codeblock | RichTextCodeBlock | language picker node view, detectLanguageFn, GitHub light/dark palette; exports guessLanguage |
| Table | ai-sparkwrite-editor/table | RichTextTable, RichTextBubbleTable | rounded corners, insertParagraphAfterTable (click beside, ⌘/Ctrl+Enter, context menu) |
| Divider | ai-sparkwrite-editor/divider | RichTextDivider | variants (9 built in, editable text, numbered), defaultVariant, renderDivider, parseRules |
| Column | ai-sparkwrite-editor/column | RichTextColumn | insertColumns({ cols }) |
| Callout | ai-sparkwrite-editor/callout | RichTextCallout, RichTextBubbleCallout | note, tip, important, warning, caution |
| Notice | ai-sparkwrite-editor/notice | RichTextNotice, RichTextBubbleNotice | info, success, warning, tip — a coloured box of editable blocks |
| Details | ai-sparkwrite-editor/details | RichTextDetails | collapsible block |
| TableOfContents | ai-sparkwrite-editor/tableofcontents | RichTextTableOfContents | live outline node |
| HorizontalRule | ai-sparkwrite-editor/horizontalrule | RichTextHorizontalRule | superseded by Divider; register one or the other |
Media and embeds
| Feature | Import | Control | Notable options |
|---|---|---|---|
| Image | ai-sparkwrite-editor/image | RichTextImage, RichTextBubbleImage | upload, acceptMimes, maxSize, resourceImage; cropping, captions, rotate; getImageChanges / markImagesSaved for deleted uploads |
| ImageGif | ai-sparkwrite-editor/imagegif | RichTextImageGif | GIPHY_API_KEY |
| Video | ai-sparkwrite-editor/video | RichTextVideo, RichTextBubbleVideo | upload, resourceVideo |
| Attachment | ai-sparkwrite-editor/attachment | RichTextAttachment | upload |
| Embed | ai-sparkwrite-editor/iframe | RichTextIframe, RichTextBubbleIframe | YouTube, Vimeo, Bilibili, Loom, Spotify, Google Maps, Figma, Canva, Miro, CodePen, Gist, Google Docs/Sheets/Slides/Forms, Airtable… 35 services, or any page |
ai-sparkwrite-editor/twitter | RichTextTwitter | x.com and twitter.com links | |
| Katex | ai-sparkwrite-editor/katex | RichTextKatex, RichTextBubbleKatex | loadKatex (lazy); AI "describe the formula" |
| Mermaid | ai-sparkwrite-editor/mermaid | RichTextMermaid, RichTextBubbleMermaid | AI "describe the diagram" |
| Excalidraw | ai-sparkwrite-editor/excalidraw | RichTextExcalidraw, RichTextBubbleExcalidraw | — |
| Drawer | ai-sparkwrite-editor/drawer | RichTextDrawer, RichTextBubbleDrawer | freehand drawing |
| Emoji | ai-sparkwrite-editor/emoji | RichTextEmoji | lazy emoji data |
| Mention | ai-sparkwrite-editor/mention | — | suggestion |
| Link | ai-sparkwrite-editor/link | RichTextLink, RichTextBubbleLink (hover) | openOnClick, autolink |
Writing aids
| Feature | Import | Control | Notable options |
|---|---|---|---|
| AI | ai-sparkwrite-editor/ai | RichTextAI (toolbar button), RichTextAIComposer (dock under the editor), RichTextAIImprove (selection menu), /ai slash entries, Space on an empty line | endpoint (one URL on your backend), generate(request, onChunk), stream, spaceTrigger, documentContext, translateLanguages, renderResult, components.Panel; writeWithAI streams Markdown into the document as real nodes |
| AI autocomplete | ai-sparkwrite-editor/ai (AIAutocomplete) | ghost text after a pause; Tab accepts, Escape dismisses | enabled, delay, minChars, contextChars, maxTokens, prompt; toggleAIAutocomplete() |
| SlashCommand | ai-sparkwrite-editor/slashcommand | SlashCommandList | commandList, hiddenUntilSearched |
| RichPaste | ai-sparkwrite-editor/richpaste | — | wordLists, codeBlocks, detectLanguage |
| MarkdownPaste | ai-sparkwrite-editor/markdownpaste | — | pasted markdown text becomes content |
| SearchAndReplace | ai-sparkwrite-editor/searchandreplace | RichTextSearchAndReplace | — |
| ShortMessage | ai-sparkwrite-editor/shortmessage | — | shortcut, messages (text expansion) |
| Recorder | ai-sparkwrite-editor/recorder | — | autoStart, recordSelection, onEntry; replayRecording |
| CodeView | ai-sparkwrite-editor/codeview | RichTextCodeView | edit the HTML source |
Import and export
| Feature | Import | Control | Notable options |
|---|---|---|---|
| ImportWord | ai-sparkwrite-editor/importword | RichTextImportWord | upload for embedded images |
| ExportWord | ai-sparkwrite-editor/exportword | RichTextExportWord | — |
| ExportPdf | ai-sparkwrite-editor/exportpdf | RichTextExportPdf | prints with the editor stylesheet |
| ExportMarkdown | ai-sparkwrite-editor/exportmarkdown | RichTextExportMarkdown | nodes without a markdown form fall back to HTML |
Bubble menus
Imported individually from ai-sparkwrite-editor/bubble/<name>: text, table, media (image), video, link, callout, notice, drawer, excalidraw, iframe, katex, mermaid, drag-handle. See Bubble menus.
Languages
ai-sparkwrite-editor/locales/<code> for en, zh_CN, hi, es, fr, bn, pt_BR, ru, id, de, ja, tr, vi, ko, it, hu_HU, fi. See Internationalization.
Theme
ai-sparkwrite-editor/theme exports themeActions (setTheme, setBorderRadius, accent colour) and CODE_THEME. Styles come from ai-sparkwrite-editor/style.css; the root element carries the ai-sparkwrite-editor class.