syncfusion-react-rich-text-editor — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-react-rich-text-editor (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A WYSIWYG (What You See Is What You Get) editor for creating and formatting rich content as HTML or Markdown. Supports toolbars, media insertion, AI assistance, smart editing features, form validation, and deep customization.
npm install @syncfusion/ej2-react-richtexteditor// src/App.css - add CSS imports
// @import '../node_modules/@syncfusion/ej2-base/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-buttons/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-inputs/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-lists/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-navigations/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-popups/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-splitbuttons/styles/tailwind3.css';
// @import '../node_modules/@syncfusion/ej2-richtexteditor/styles/tailwind3.css';
import {
HtmlEditor, Image, Inject, Link,
QuickToolbar, RichTextEditorComponent, Toolbar
} from '@syncfusion/ej2-react-richtexteditor';
function App() {
return (
<RichTextEditorComponent height={450}>
<Inject services={[Toolbar, Image, Link, HtmlEditor, QuickToolbar]} />
</RichTextEditorComponent>
);
}
export default App;Inject only the modules your app needs — this keeps the bundle lean.
| Module | What it enables |
|---|---|
Toolbar | Toolbar rendering and commands |
HtmlEditor | HTML editing mode (default) |
MarkdownEditor | Markdown editing mode |
Link | Hyperlink insert/edit/remove |
Image | Image insertion and management |
Video | Video insertion |
Audio | Audio insertion |
Table | HTML table insert/edit |
QuickToolbar | Floating toolbar for images/links |
PasteCleanup | Clean up pasted content formatting |
ClipboardCleanup | Clean clipboard on copy/cut |
FileManager | File browser for server-side images |
Resize | Resizable editor area |
Count | Character count display |
EmojiPicker | Emoji search and insert |
SlashMenu | Slash / command menu |
ImportExport | Import Word, export Word/PDF |
CodeBlock | Inline code block formatting |
AutoFormat | Auto-convert Markdown syntax while typing |
FormatPainter | Copy-paste text formatting |
AIAssistant | AI assistant integration |
📄 Read: references/getting-started.md
📄 Read: references/editor-modes.md
📄 Read: references/toolbar-configuration.md
📄 Read: references/toolbar-tools.md
📄 Read: references/insert-media.md
📄 Read: references/insert-content.md
📄 Read: references/smart-editing.md
/ to open)📄 Read: references/editor-value.md
saveInterval📄 Read: references/paste-clipboard.md
📄 Read: references/validation-security.md
📄 Read: references/ai-assistant.md
📄 Read: references/accessibility.md
📄 Read: references/styling-customization.md
📄 Read: references/undo-redo.md
📄 Read: references/enter-key-selection.md
📄 Read: references/events.md
created, destroyed, focus, blurchange event with ChangeEventArgsactionBegin (cancelable), actionCompletetoolbarClick, updatedToolbarStatusbeforeDialogOpen/Close, beforePopupOpen/ClosebeforePasteCleanup, afterPasteCleanupaiAssistantPromptRequest, aiAssistantToolbarClick📄 Read: references/methods.md
focusIn, focusOut, getHtml, getText, getSelectedHtmlenableToolbarItem, disableToolbarItem, removeToolbarItemshowDialog, closeDialog with DialogType enumselectAll, getRange, selectRangeclearUndoRedoexecuteAIPrompt, addAIPromptResponse, getAIPromptHistory, clearAIPromptHistoryexecuteCommand (all CommandName values), sanitizeHtml, destroy📄 Read: references/properties.md
height, width, enabled, readonly, placeholder, cssClasstoolbarSettings, quickToolbarSettings, floatingToolbarOffseteditorMode, iframeSettings, inlineMode, enterKeyvalue, maxLength, showCharCount, saveInterval, enableHtmlSanitizerinsertImageSettings, insertVideoSettings, insertAudioSettings, fileManagerSettingsfontFamily, fontSize, fontColor, backgroundColor, format, codeBlockSettingspasteCleanupSettings, enableClipboardCleanupaiAssistantSettings (full configuration reference)importWord, exportWord, exportPdfundoRedoSteps, keyConfig, slashMenuSettings, emojiPickerSettings📄 Read: references/how-to.md
import { ChangeEventArgs } from '@syncfusion/ej2-react-richtexteditor';
function App() {
const onChange = (args: ChangeEventArgs) => {
console.log(args.value); // HTML string
};
return (
<RichTextEditorComponent change={onChange}>
<Inject services={[Toolbar, HtmlEditor]} />
</RichTextEditorComponent>
);
}const [content, setContent] = useState('<p>Hello</p>');
<RichTextEditorComponent value={content} change={(e) => setContent(e.value)}>
<Inject services={[Toolbar, HtmlEditor]} />
</RichTextEditorComponent>import { MarkdownEditor } from '@syncfusion/ej2-react-richtexteditor';
<RichTextEditorComponent editorMode="Markdown">
<Inject services={[Toolbar, MarkdownEditor]} />
</RichTextEditorComponent>~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.