NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #3194 most downloaded on npm
A trailing node plugin for the prosemirror editor.
Last release 2 years ago
no release in 18 months
Release timing varies
gaps range from 1 weeks to 4 months
Nearly every release is documented
notes for 23 of 23 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
208 releases · first in 2021
One column per quarter.
f6185b950: ## 💥 BREAKING CHANGES! 💥
2024-07-30
f6185b950: Based on community feedback, we have decided to decouple the core of Remirror from Lingui, an internationalisation (a.k.a. i18n) library.
Thereby making it possible to use any i18n solution with Remirror 🙌🙌🙌.
N.B. To use the translatable strings provided by Remirror, the i18n library you use needs to support ICU message formatting.
This change aims to make it easier to use Remirror in existing applications, by not imposing our architectural decisions on to you.
There are example integrations with many different i18n libraries in our Storybook.
If you are using editors provided by the @remirror/react-editors package, you are unaffected by these changes. These editors have been updated to keep existing behaviour.
i18n prop removed from the <Remirror /> root componentIn previous versions of Remirror, the i18n prop of the root Remirror component allowed you to pass a customised Lingui instance.
With this version, we want to allow any i18n library to be used with Remirror, so the i18n prop has been removed, and replaced with an i18nFormat function.
This allows users to plug in any i18n library, by implementing a definition for this function.
This function is described by the TypeScript type I18nFormatter.
react-i18nextimport { useTranslation } from 'react-i18next';
import { Remirror, useRemirror } from '@remirror/react';
const Editor: React.FC = () => {
const { t } = useTranslation();
const i18nFormat: I18nFormatter = useCallback(
(message, values) => {
// Note only using the message ID here, more on this later
return t(message.id, values);
},
[t],
);
const { manager } = useRemirror({
extensions: () => [
// Some extensions here
],
});
return <Remirror manager={manager} i18nFormat={i18nFormat} />;
};
react-i18next, like many i18n solutions, requires you define your translatable strings up front, via key-value pairs.
To facilitate this, the @remirror/messages package now exposes the translatable strings as JSON files.
These messages are provided as key value pairs, so they can be loaded into your chosen i18n library.
Currently, only English locale (en) messages are provided.
import i18n from 'i18next';
import ICU from 'i18next-icu';
import { initReactI18next } from 'react-i18next';
import type { I18nFormatter } from 'remirror';
import allMessages from '@remirror/messages/en/all-messages.json';
// or messages for specific extension(s)
// import boldMessages from '@remirror/messages/en/extension-bold-messages.json';
// import italicMessages from '@remirror/messages/en/extension-italic-messages.json';
i18n
.use(ICU) // Required if using the provided messages from @remirror/messages
.use(initReactI18next)
.init({
resources: {
en: {
translation: allMessages,
},
},
lng: 'en',
fallbackLng: 'en',
interpolation: {
escapeValue: false,
},
});
You do not have to use the messages in these key value pairs, you could replace them with your own. They are provided for convenience, and to expose the message IDs Remirror uses.
If you wish to carry on using Remirror's default i18n solution (powered by Lingui), you will need to install the @remirror/i18n package, as this is now an optional package.
@remirror/i18nInstall the i18n package, as it is now optional, and not installed by default.
npm add @remirror/i18n
import { i18nFormat } from '@remirror/i18n';
import { Remirror, useRemirror } from '@remirror/react';
const Editor: React.FC = () => {
const { manager } = useRemirror({
extensions: () => [
// Some extensions here
],
});
return <Remirror manager={manager} i18nFormat={i18nFormat} />;
};
useI18n hook has a different return valueAs a consequence of the above, the useI18n no longer returns an object containing the Lingui i18n instance.
It now returns the i18nFormat function that was passed to the root <Remirror /> component.
const { t, i18n } = useI18n();
const t = useI18n();
// Where "t" is the same function that was passed via `i18nFormat`
As always, we value your feedback on how we can improve Remirror. Please raise your proposals via issues on GitHub or via our Discord server.
f6185b950: Based on community feedback, we have decided to decouple the React core of Remirror from MUI, a popular React component library (but you probably already knew that).
This means installing @remirror/react will no longer bundle @mui/material too. The MUI components exposed by @remirror/react have been moved to a new optional package - @remirror/react-ui.
This change aims to make it easier to use Remirror in existing applications, by not imposing our architectural decisions on to you.
If you are using editors provided by the @remirror/react-editors package, you are unaffected by these changes. These editors have been updated to keep existing behaviour.
@remirror/react, moved to new optional package.In previous versions of Remirror, menus/toolbar/buttons and "find and replace" components were exposed from @remirror/react.
As @remirror/react is a required module for Remirror, it meant @mui/material was bundled regardless of whether you used these components or not.
With this version, these components have been moved to a new optional package - @remirror/react-ui.
Other than the change in import path, there should be no changes to the MUI components themselves. The full list of affected components is included below.
import React from 'react';
import { BoldExtension } from 'remirror/extensions';
import { Remirror, ThemeProvider, ToggleBoldButton, Toolbar, useRemirror } from '@remirror/react';
const extensions = () => [new BoldExtension()];
const ToggleBold = (): JSX.Element => {
const { manager, state, onChange } = useRemirror({
extensions: extensions,
content: '<p>Text in <b>bold</b></p>',
stringHandler: 'html',
});
return (
<ThemeProvider>
<Remirror
manager={manager}
autoFocus
onChange={onChange}
initialContent={state}
autoRender='end'
>
<Toolbar>
<ToggleBoldButton />
</Toolbar>
</Remirror>
</ThemeProvider>
);
};
export default ToggleBold;
import React from 'react';
import { BoldExtension } from 'remirror/extensions';
- import { Remirror, ThemeProvider, ToggleBoldButton, Toolbar, useRemirror } from '@remirror/react';
+ import { Remirror, ThemeProvider, useRemirror } from '@remirror/react';
+ import { ToggleBoldButton, Toolbar } from '@remirror/react-ui';
const extensions = () => [new BoldExtension()];
const ToggleBold = (): JSX.Element => {
const { manager, state, onChange } = useRemirror({
extensions: extensions,
content: '<p>Text in <b>bold</b></p>',
stringHandler: 'html',
});
return (
<ThemeProvider>
<Remirror
manager={manager}
autoFocus
onChange={onChange}
initialContent={state}
autoRender='end'
>
<Toolbar>
<ToggleBoldButton />
</Toolbar>
</Remirror>
</ThemeProvider>
);
};
export default ToggleBold;
As part of our initiative to "play nicer" with existing applications, the MUI components provided by @remirror/react-ui should now utilise any existing MUI theme (assuming a MUI ThemeProvider is present), rather than imposing our own MUI theme.
If you need access to Remirror's default MUI theme, this is available via the useRemirrorDefaultMuiTheme hook.
These components have been moved from @remirror/react to the new optional packages @remirror/react-ui.
ToolbarFloatingToolbarMarkdownToolbarWysiwygToolbarVerticalDividerCenterAlignButtonCommandButtonCopyButtonCreateTableButtonCutButtonDecreaseFontSizeButtonDecreaseIndentButtonDropdownButtonIncreaseFontSizeButtonIncreaseIndentButtonInsertHorizontalRuleButtonJustifyAlignButtonLeftAlignButtonPasteButtonRedoButtonRightAlignButtonToggleBlockquoteButtonToggleBoldButtonToggleBulletListButtonToggleCalloutButtonToggleCodeBlockButtonToggleCodeButtonToggleColumnsButtonToggleHeadingButtonToggleItalicButtonToggleOrderedListButtonToggleStrikeButtonToggleSubscriptButtonToggleSuperscriptButtonToggleTaskListButtonToggleUnderlineButtonToggleWhitespaceButtonUndoButtonBaselineButtonGroupBasicFormattingButtonGroupCalloutTypeButtonGroupCommandButtonGroupDataTransferButtonGroupFormattingButtonGroupHeadingLevelButtonGroupHistoryButtonGroupIndentationButtonGroupListButtonGroupTextAlignmentButtonGroupFindReplaceComponentCommandMenuItemToggleCalloutMenuItemToggleHeadingMenuItemAs always, we value your feedback on how we can improve Remirror. Please raise your proposals via issues on GitHub or via our Discord server.
f6185b950: Use ES Stage-3 decorators syntax.
f6185b950: Forward-port the removal of the validate property from main
f6185b950: Add a validate property to each of the Node or Mark attributes used in Remirror (v3 branch)
f6185b950: Bump all packages to rebuild for browsers since 2017
f6185b950: ## 💥 BREAKING CHANGES! 💥
@remirror/reactThe TableExtension also known as ReactTableExtension exposed via @remirror/react (not remirror) adds significant bloat to the core package.
Furthermore, since the addition of Table positioners added in Remirror 2.0.12 this function has become largely redundant.
If you still need the functionality provided by this extension, simply add @remirror/extension-react-tables as a direct dependency to your application.
import { TableComponents, tableControllerPluginKey, TableExtension } from '@remirror/react';
import {
TableComponents,
tableControllerPluginKey,
TableExtension,
} from '@remirror/extension-react-tables';
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
2024-07-30
f6185b950: Update ProseMirror packages to latest versions.
Use newly provided Transform.setDocAttribute to update doc node attributes, rather than custom step type.
f6185b950: Forward-port the removal of the validate property from main
f6185b950: Add a validate property to each of the Node or Mark attributes used in Remirror (v3 branch)
f6185b950: Bump all packages to rebuild for browsers since 2017
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
Updated dependencies [f6185b950]
c4c4fa512: Forward-port the removal of the validate property from main
2024-07-19
main760d9739d: Add a validate property to each of the Node or Mark attributes used in Remirror (v3 branch)
2024-07-18
Updated dependencies [469d7ce8f]
2023-11-20
93f4ebdc2: Bump all packages to rebuild for browsers since 2017
2023-11-08
b1d683fdb: Update ProseMirror packages to latest versions.
2023-11-06
b1d683fdb: Update ProseMirror packages to latest versions.
Use newly provided Transform.setDocAttribute to update doc node attributes, rather than custom step type.
8f5467ae6: Use ES Stage-3 decorators syntax.
2023-10-06
7caff8388: Bump ProseMirror to latest versions to address potential XSS vulnerability found in ProseMirror's DOMSerializer
2024-07-17
7caff8388: Add a validate property to each of the Node or Mark attributes used in Remirror
7caff8388: Bump ProseMirror to latest versions to address potential XSS vulnerability found in ProseMirror's DOMSerializer
See: https://discuss.prosemirror.net/t/heads-up-xss-risk-in-domserializer/6572
Updated dependencies [7caff8388]
Updated dependencies [7caff8388]
2022-09-29
instanceof in isDomNode anymore. This increases the compatibility on Node.js environments, where might exist more than one DOM API implementation.d50dadf27: Update dependencies.
2023-07-31
2022-09-28
@remirror/extension-emoji when using react-scripts start by not using .cjs file extension.2024-03-05
prosemirror-trailing-node on @remirror/core-helpers.Updated dependencies [2f542ccb0]
2023-07-30
2022-09-28
@remirror/extension-emoji when using vite dev.207ff2c72: Update all ProseMirror dependencies
2023-05-24
2022-09-27
@remirror/extension-emoji.2023-07-30
Updated dependencies [7b2c3928d]
2023-04-26
.d.ts file.2022-09-23
Update dependencies.
Enable display of sup and sub icon decorations on CommandButton via MUI badge
Add button components for toggling columns, and increase/decreasing font size
Updated dependencies
Updated dependencies
2023-07-24
7a6811d96: Update all ProseMirror packages to latest versions.
2023-03-10
2022-09-22
Don't require jsdom in the browser environment.
This patch moves the require('jsdom') code into a standalone package get-dom-document, which use the browser field in package.json to avoid bundling jsdom in the browser environment.
Updated dependencies
2023-04-26
.d.ts file.Updated dependencies [6a93233e2]
2022-12-29
2022-09-21
Decorate the insertHorizontalRule command
Make the task list button in ListButtonGroup optional
Add a new hook useHasExtension which checks for the presence of an extension in the manager
Add toolbar buttons for text alignment, subscript and superscript, display whitespace, and insert horizontal rule
Updated dependencies
Updated dependencies
Updated dependencies
c24854eef: Update prosemirror-tables to the latest version, which includes new TypeScript declaration.
2022-12-10
prosemirror-tables to the latest version, which includes new TypeScript declaration.prosemirror dependencies to latest version.2022-09-20
isSafari to crash.2022-12-10
prosemirror dependencies to latest version.b637f9f3e: Update dependencies.
2022-10-27
2022-09-19
doubleClick, doubleClickMark, tripleClick and tripleClickMark. They have the same interface as the existing click and clickMark event, but are triggered when the user double or triple clicks.Remove the deprecated useEvents hook
2022-09-13
Improve the calculation of changed ranges by utilising mapping
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Rewrite React components using MUI.
Support both ESM and CJS.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Expose the return type of the throttle and debounce helpers
Try to require JSDOM implicitly in node environment.
Correct a bad import.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Standardize the contextmenu and hover events to return event as first parameter
SSR features are removed.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Removes domino from the codebase.
Update jsx-dom to v7.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
OnChangeHTML and OnChangeJSON won't listen to the first update.
option for supported characters in emoji suggester.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-13
2022-09-13
Remove the deprecated useEvents hook
2022-09-12
Removes domino from the codebase.
Support both ESM and CJS.
option for supported characters in emoji suggester.
Rewrite React components using MUI.
Try to require JSDOM implicitly in node environment.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
OnChangeHTML and OnChangeJSON won't listen to the first update.
SSR features are removed.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Correct a bad import.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Expose the return type of the throttle and debounce helpers
Update jsx-dom to v7.
Improve the calculation of changed ranges by utilising mapping
Set style white-space as break-spaces to wrap end-of-lines spaces.
Standardize the contextmenu and hover events to return event as first parameter
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-12
Remove the deprecated useEvents hook
2022-09-12
Set style white-space as break-spaces to wrap end-of-lines spaces.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
OnChangeHTML and OnChangeJSON won't listen to the first update.
SSR features are removed.
option for supported characters in emoji suggester.
Rewrite React components using MUI.
Support both ESM and CJS.
Correct a bad import.
Expose the return type of the throttle and debounce helpers
Update jsx-dom to v7.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Improve the calculation of changed ranges by utilising mapping
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Removes domino from the codebase.
Try to require JSDOM implicitly in node environment.
Standardize the contextmenu and hover events to return event as first parameter
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-12
2022-09-12
Remove the deprecated useEvents hook
2022-09-11
option for supported characters in emoji suggester.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
OnChangeHTML and OnChangeJSON won't listen to the first update.
Support both ESM and CJS.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Rewrite React components using MUI.
SSR features are removed.
Standardize the contextmenu and hover events to return event as first parameter
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Improve the calculation of changed ranges by utilising mapping
Update jsx-dom to v7.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Expose the return type of the throttle and debounce helpers
Removes domino from the codebase.
Try to require JSDOM implicitly in node environment.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-11
2022-09-11
Remove the deprecated useEvents hook
2022-09-08
Removes domino from the codebase.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Improve the calculation of changed ranges by utilising mapping
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Standardize the contextmenu and hover events to return event as first parameter
Support both ESM and CJS.
SSR features are removed.
Update jsx-dom to v7.
Expose the return type of the throttle and debounce helpers
Try to require JSDOM implicitly in node environment.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-08
2022-09-08
Remove the deprecated useEvents hook
2022-09-08
Standardize the contextmenu and hover events to return event as first parameter
Removes domino from the codebase.
Expose the return type of the throttle and debounce helpers
Set style white-space as break-spaces to wrap end-of-lines spaces.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
OnChangeHTML and OnChangeJSON won't listen to the first update.
Try to require JSDOM implicitly in node environment.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Support both ESM and CJS.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Update jsx-dom to v7.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
SSR features are removed.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-08
2022-09-08
Remove the deprecated useEvents hook
2022-09-05
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
SSR features are removed.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Try to require JSDOM implicitly in node environment.
Standardize the contextmenu and hover events to return event as first parameter
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Update jsx-dom to v7.
Expose the return type of the throttle and debounce helpers
Support both ESM and CJS.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-09-05
Remove the deprecated useEvents hook
2022-08-04
Standardize the contextmenu and hover events to return event as first parameter
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Expose the return type of the throttle and debounce helpers
SSR features are removed.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Set style white-space as break-spaces to wrap end-of-lines spaces.
Don't re-create initialEditorState when re-mounting the <Remirror/> component.
Before this patch, for an uncontrolled editor, the <Remirror/> component would re-create the initialEditorState when it re-mounts. This will call EditorState.create() and call the init method for every ProseMirror plugins with initialEditorState. This is problematic because the editor state passed to plugins is not the same as the current state.
This patch fixes the issue by only creating initialEditorState when the editor is mounted for the first time.
Try to require JSDOM implicitly in node environment.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Update jsx-dom to v7.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-08-04
2022-08-04
Remove the deprecated useEvents hook
2022-07-20
Update jsx-dom to v7.
Set style white-space as break-spaces to wrap end-of-lines spaces.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
SSR features are removed.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Standardize the contextmenu and hover events to return event as first parameter
Expose the return type of the throttle and debounce helpers
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Try to require JSDOM implicitly in node environment.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-20
Remove the deprecated useEvents hook
2022-07-20
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Try to require JSDOM implicitly in node environment.
Expose the return type of the throttle and debounce helpers
Update jsx-dom to v7.
OnChangeHTML and OnChangeJSON won't listen to the first update.
SSR features are removed.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Standardize the contextmenu and hover events to return event as first parameter
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-20
Remove the deprecated useEvents hook
2022-07-19
Expose the return type of the throttle and debounce helpers
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Update jsx-dom to v7.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Standardize the contextmenu and hover events to return event as first parameter
SSR features are removed.
Add a customisible floating button to completely delete React tables.
Fix creating React tables from markdown initial state.
Fix copy and paste of React tables, which resulted in duplicated controlled cells.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Try to require JSDOM implicitly in node environment.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-19
2022-07-19
Remove the deprecated useEvents hook
2022-07-18
Update jsx-dom to v7.
Standardize the contextmenu and hover events to return event as first parameter
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Expose the return type of the throttle and debounce helpers
Try to require JSDOM implicitly in node environment.
SSR features are removed.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-18
Remove the deprecated useEvents hook
2022-07-13
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
OnChangeHTML and OnChangeJSON won't listen to the first update.
SSR features are removed.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Update jsx-dom to v7.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Standardize the contextmenu and hover events to return event as first parameter
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Try to require JSDOM implicitly in node environment.
Expose the return type of the throttle and debounce helpers
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-13
Remove the deprecated useEvents hook
2022-07-11
SSR features are removed.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
Set style white-space as break-spaces to wrap end-of-lines spaces.
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Update jsx-dom to v7.
Try to require JSDOM implicitly in node environment.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Standardize the contextmenu and hover events to return event as first parameter
Expose the return type of the throttle and debounce helpers
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-11
Remove the deprecated useEvents hook
2022-07-08
Set style white-space as break-spaces to wrap end-of-lines spaces.
Expose the return type of the throttle and debounce helpers
Update jsx-dom to v7.
Fix the issue that PlaceholderExtension passed with the extension list doesn't work.
SSR features are removed.
OnChangeHTML and OnChangeJSON won't listen to the first update.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Try to require JSDOM implicitly in node environment.
Standardize the contextmenu and hover events to return event as first parameter
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-08
Remove the deprecated useEvents hook
2022-07-01
Try to require JSDOM implicitly in node environment.
Expose the return type of the throttle and debounce helpers
Removes the following CSS variables:
--rmr-color-selection-background: Highlight;
--rmr-color-selection-shadow: inherit;
--rmr-color-selection-text: HighlightText;
--rmr-color-selection-caret: inherit;
This brings more natural selection colors to the editor.
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
SSR features are removed.
Standardize the contextmenu and hover events to return event as first parameter
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-07-01
Remove the deprecated useEvents hook
2022-06-29
SSR features are removed.
Standardize the contextmenu and hover events to return event as first parameter
Expose the return type of the throttle and debounce helpers
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Try to require JSDOM implicitly in node environment.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-06-29
Use official TypeScript type definitions from ProseMirror.
2022-06-26
2022-06-26
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Standardize the contextmenu and hover events to return event as first parameter
Expose the return type of the throttle and debounce helpers
SSR features are removed.
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Remove the deprecated useEvents hook
2022-06-26
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Standardize the contextmenu and hover events to return event as first parameter
SSR features are removed.
Expose the return type of the throttle and debounce helpers
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-06-26
Remove the deprecated useEvents hook
2022-06-20
Standardize the contextmenu and hover events to return event as first parameter
SSR features are removed.
Expose the return type of the throttle and debounce helpers
Rename useEvent to useEditorEvent to avoid confusion with the React hook of the same name
Remove the deprecated useEvents hook
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
Updated dependencies
2022-06-20
Use official TypeScript type definitions from ProseMirror.
2022-05-31
2022-05-31
2022-05-31
Update ProseMirror dependencies.
2022-01-17
Update ProseMirror dependencies.
Updated dependencies []:
2021-10-01
ErrorConstant.REACT_PROVIDER_CONTEXT.Stop hiding error details in production.
Updated dependencies []:
Make sure that "main", "module" and "types" fields within the package.json are prefixed with ./. This is a best practice according to node.js, esbuild
2022-01-03
Make sure that "main", "module" and "types" fields within the package.json are prefixed with ./. This is a best practice according to node.js, esbuild and vite's documentation.
Updated dependencies []:
2021-09-17
Improve performance for dynamic attributes.
Updated dependencies []:
2022-05-31
Lock ProseMirror pacakges to lower versions.
The latest ProseMirror includes the buit-in TypeScript declaration, which is incompatible with the TypeScript definition in Remirror v1.
See also: https://discuss.prosemirror.net/t/prosemirror-is-now-a-typescript-project/4624
Update ProseMirror dependencies.
2021-12-06
2021-09-07
2021-09-07
This release includes a change that could be breaking for controlled editors, however this is being released as a patch, as the fix is a correction to align with documented behaviour.
Uncontrolled editors will not be affected.
When attempting to synchronously run multiple commands in a controlled editor, each command operates on the current state, not the state as applied by the previous command. As a result, we find ourselves in a situation where the last command wins. i.e. the last state update before the controlled editor can apply the new state is the one that will be used. -- Controlled editors - Potential pitfalls
As a reminder, controlled editors use a state prop, whereas uncontrolled use an initialState prop
<Remirror state={state}<Remirror initialState={state}If you're using multiple unchained commands in a controlled editor, then only the last command will applied to state.
import { useCallback } from 'react';
import { useCommands } from '@remirror/react';
const { toggleBold, toggleItalic } = useCommands();
const handleAction = useCallback(() => {
toggleBold();
toggleItalic(); // Only this will be applied in a controlled editor
}, [toggleBold, toggleItalic]);
Instead you should be using a chained command
import { useCallback } from 'react';
import { useChainedCommands } from '@remirror/react'; // Note different import
const chain = useChainedCommands();
const handleAction = useCallback(() => {
chain
.toggleBold()
.toggleItalic()
.run() // A chain needs to be .run() - both commands will be applied
}, [chain]);
Unchained commands should use a new transaction to prevent leaking of previous command steps
Updated dependencies []:
Fix the browser exports paths in package.json.
2021-11-23
package.json.2021-09-02
Fix an out of range error when there is nothing in the dropdown menu.
Updated dependencies []:
Update ProseMirror dependencies.
2021-11-23
2021-08-30
Reset some CSS on IMG separator nodes.
Updated dependencies []:
Always reset regexp lastIndex before matching.
2021-11-04
Always reset regexp lastIndex before matching.
Updated dependencies []:
2021-08-29
@remirror/theme as a dependency of @remirror/core.Add a new UploadExtension to the built-in preset, which will manage all upload states from FileExtension and other extensions in the future.
Breaking changes: UploadContext and FileUploader are now exported by @remirror/core instead of @remirror/extension-file.
Updated dependencies []:
2022-01-03
Make sure that "main", "module" and "types" fields within the package.json are prefixed with ./. This is a best practice according to node.js, esbuild and vite's documentation.
Updated dependencies []:
> 2021-10-29 ### Patch Changes - Update prosemirror packages.
2021-10-29
2021-08-26
Add a helpers property to the BasePositionerProps. This will make it easier to use preconfigured helpers in the positioners.
Updated dependencies []:
2021-11-04
Always reset regexp lastIndex before matching.
Updated dependencies []:
Fix types so extraAttributes can be any JSON primitivee value
2021-10-23
Fix types so extraAttributes can be any JSON primitivee value
Previously only strings were allowed, now any JSON primitive value maybe used as an extraAttributes value
Updated dependencies []:
2021-08-22
Set sideEffect from @remirror/i18n's package.json as true.
Updated dependencies []:
Correct the error message for ErrorConstant.REACT_PROVIDER_CONTEXT.
2021-10-01
ErrorConstant.REACT_PROVIDER_CONTEXT.Stop hiding error details in production.
Updated dependencies []:
> 2021-07-21 ### Patch Changes - #1010 `0464a6810` Thanks @ifiokjr! - Upgrade dependencies.
Updated dependencies [`b3ea6f10d`]:
For information on what's changed in this release see the `v1.0.0` release.
2021-07-17
For information on what's changed in this release see the v1.0.0 release.
adfb12a4c]:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →