MCPcopy Index your code
hub / github.com/ckeditor/ckeditor5-react

github.com/ckeditor/ckeditor5-react @v11.2.0

Chat with this repo
repository ↗ · DeepWiki ↗ · release v11.2.0 ↗ · + Follow
274 symbols 779 edges 113 files 30 documented · 11% 3 cross-repo links
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

CKEditor 5 rich text editor component for React

npm version CircleCI Coverage Status Dependency Status

Official CKEditor 5 rich text editor component for React.

Developer Documentation 📖

See the "Rich text editor component for React" guide in the CKEditor 5 documentation to learn more:

Contributing

[!NOTE] This project requires pnpm v10 or higher. You can check your version with pnpm --version and update if needed with npm install -g pnpm@latest.

After cloning this repository, install necessary dependencies:

pnpm install

If you need to run tests or demos with a commercial license, copy .env.example to .env and fill in the required CKEDITOR_* variables. Keep .env local only. In CI, provide the same value via the CKEDITOR_LICENSE_KEY environment variable.

Running the development server

To manually test the editor integration with different versions of React, you can start the development server using one of the commands below:

pnpm run dev:16 # Open the demo projects using React 16.
pnpm run dev:17 # Open the demo projects using React 17.
pnpm run dev:18 # Open the demo projects using React 18.
pnpm run dev:19 # Open the demo projects using React 19.

Executing tests

To run the full automated test suite, use:

pnpm run test

To run only the real-editor integration suite used by the CI version matrix, use:

pnpm exec vitest run --project integration

This command runs the integration subset against the ckeditor5 and ckeditor5-premium-features versions currently installed in node_modules. After a regular pnpm install, that means the default dependency versions from package.json, not the LTS version from the CI matrix.

To reproduce an LTS matrix run locally, install the matching lts-v* packages first and provide CKEDITOR_LICENSE_KEY, just like the CI job does:

pnpm add -D ckeditor5@lts-v* ckeditor5-premium-features@lts-v*
CKEDITOR_LICENSE_KEY=<your-key> pnpm exec vitest run --project integration

If you want to run the tests in watch mode, use the following command:

pnpm run test:watch

Building the package

To build the package that is ready to publish, use the following command:

pnpm run build

License

Licensed under a dual-license model, this software is available under:

For more information, see: https://ckeditor.com/legal/ckeditor-licensing-options.

Extension points exported contracts — how you extend this code

ImportMetaEnv (Interface)
(no doc)
vite-env.d.ts
Window (Interface)
(no doc)
vitest-setup.ts
Props (Interface)
(no doc)
src/ckeditor.tsx
Window (Interface)
(no doc)
demos/cdn-react/CKEditorCloudPluginsDemo.tsx
RTCEditorProps (Interface)
(no doc)
demos/npm-rtc-multiroot-react/RTCEditor.tsx
Window (Interface)
(no doc)
demos/npm-react/ContextDemo.tsx
ImportMeta (Interface)
(no doc)
vite-env.d.ts
Window (Interface)
(no doc)
demos/npm-react/EditorDemo.tsx

Core symbols most depended-on inside this repo

waitFor
called by 146
src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx
useMultiRootEditor
called by 72
src/multiroot/useMultiRootEditor.tsx
resolveOnRun
called by 71
tests/_utils/promisemanager.tsx
all
called by 69
tests/_utils/promisemanager.tsx
timeout
called by 20
tests/_utils/timeout.js
unsafeSetValue
called by 16
src/lifecycle/LifeCycleElementSemaphore.ts
runAfterMount
called by 15
src/lifecycle/LifeCycleElementSemaphore.ts
on
called by 13
src/EditorWatchdogAdapter.tsx

Shape

Function 148
Method 70
Class 48
Interface 8

Languages

TypeScript100%

Modules by API surface

tests/_utils/editor.ts22 symbols
src/ckeditor.tsx22 symbols
src/multiroot/useMultiRootEditor.tsx13 symbols
tests/ckeditor.test.tsx12 symbols
tests/multiroot/useMultiRootEditor.test.tsx11 symbols
tests/context/ckeditorcontext.test.tsx10 symbols
tests/issues/349-destroy-context-and-editor.test.tsx9 symbols
tests/integrations/ckeditor-editor-data.test.tsx9 symbols
src/lifecycle/useLifeCycleSemaphoreSyncRef.tsx9 symbols
tests/_utils/context.ts8 symbols
src/lifecycle/LifeCycleElementSemaphore.ts8 symbols
src/context/ckeditorcontext.tsx8 symbols

For agents

$ claude mcp add ckeditor5-react \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact