All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project will adhere
to Semantic Versioning when it reaches v1.0.0
.
@remirror/core
: Remove deprecatedfindNodeAtEndOfDoc
findNodeAtStartOfDoc
which can be replaced withdoc.firstChild
anddoc.lastChild
0.7.2 - 2019-12-10
- 🐛
@remirror/core
: Fix bug inisExtension
predicate test (remirror#181). - Upgrade dependencies and add new command for unit testing built code.
0.7.1 - 2019-12-02
- Upgrade dependencies.
0.7.0 - 2019-11-18
- 🚀
@remirror/react
,@remirror/editor-wysiwyg
,@remirror/editor-social
: Newextensions
props on theRemirrorManager
for injecting additional extensions into prebuilt editors remirror#176.
0.6.5 - 2019-11-17
@remirror/extension-collaboration
: Bug fix forthis
being undefined remirror#174.- Upgrade dependencies.
0.6.4 - 2019-11-07
- Switch to using JSX Pragma from
emotion/core
. - Upgrade dependencies.
0.6.3 - 2019-11-01
- Upgrade dependencies.
- Add all-contributors config.
- Add package patches for broken types.
0.6.2 - 2019-10-21
- Upgrade dependencies.
- Internal cleanup.
@remirror/react-node-view
- RemoveSelectionObserver
.
0.6.1 - 2019-10-07
- Upgrade dependencies.
- Use
Object.create(null)
instead of{}
throughout the codebase.
0.6.0 - 2019-09-25
jest-prosemirror
: New snapshot serializer exported asprosemirrorSerializer
.jest-prosemirror
: Newdebug
method which logs the editor's prettified html to the console.prosemirror-suggest
: Now supports ignoring activation characters to prevent matches from appearing in ignored sections.
@remirror/extension-mention
: Fix a long standing bug where the editor crashes after deleting a single character mention.
0.5.0 - 2019-09-23
-
🚀
@remirror/react-hooks
: New package for shared react hooks. -
🚀
@remirror/react-portals
: New package for the remirror / react portals. -
🚀
@remirror/react-node-view
: New package for prosemirror node views built with react components. -
🚀
@remirror/dev
: New package developing extensions and components. -
🚀
prosemirror-suggest
: New package for managing prosemirror suggestions. -
🚀
test-keyboard
: New package for dispatching keyboard events. -
🚀
@remirror/ui
,@remirror/ui-buttons
,@remirror/ui-dropdown
,@remirror/ui-icons
,@remirror/ui-menus
,@remirror/ui-modal
,@remirror/ui-text
: New packages and several utilities for managing the ui of a remirror editor. -
🚀
@remirror/core
: Introduce the concept of meta tags for extensions. These allow an extension to tag itself and these tags are made available through the tag object which is passed to all extension methods. -
🚀
@remirror/core
: Add ahelpers
method to extensions. These are similar to commands except they don't have access to the view and shouldn't directly affect the editor. They can also return data and receive custom parameters. They can be accessed withmanager.data.helpers.myHelper()
. -
🚀
@remirror/core-extensions
: AddTrailingNodeExtension
to always append a specified node to the end of the dom. -
@remirror/core
: AddgetExtraAttrs
method to the extension which can be used in the(Mark/Node)Extension
. -
🚀
@remirror/core
: AddDropCursorExtension
for a cursor to show up at the exact location an item will be dropped. -
🚀
@remirror/core
: AddGapCursorExtension
for support of tricky to select locations. -
Introduce new
@builtin
annotation to show when an extension is included by default. -
Introduce new
@schema
annotation for extension options to indicated that an option should not be updated after creating or it will change the schema. -
New command
yarn generate:json
which auto generates json files forsupport/rollup/rollup.config.js
,support/storybook/.babelrc.js
,support/tsconfig.paths.json
and.size-limit.json
. Previously these were maintained manually.
-
💥 BREAKING
@remirror/react-renderer
: Updated the name of@remirror/renderer-react
for consistency. -
💥 BREAKING
@remirror/core
:@emotion/core
is now apeerDependency
. When adding this library to your project you will need toyarn add @emotion/core
as well. This is required to prevent bugs with version conflicts within the EmotionThemeProvider. -
💥 BREAKING
@remirror/core
:deepMerge
now takes multiple parameters instead of one array of objects to merge. -
💥 BREAKING
@remirror/core
@remirror/core-extensions
and all extensions: Refactor ExtensionTypes with a whole set of helpers for better type checking and self documenting types. Now the remirror component can receive the List of Extensions and from this infer the nodes, marks and actions available on any editor. Currently this inference has only been added to the Wysiwyg editor but will be added to the Twitter editor and all future editors. -
💥 BREAKING
@remirror/core
@remirror/core-extensions
: MoveParagraphExtension
from core to core-extensions. The reason is to not pollute the core library with formatting methods which are primarily just for extensions. -
💥 BREAKING
@remirror/core
: RenameExtensionType.EXTENSION = 'extension'
toExtensionType.Plain = 'plain'
. -
💥 BREAKING
@remirror/ui
: Rename@remirror/react-components
to@remirror/ui
. It is now the base component that will be used for all ui related functionality. -
💥 BREAKING
@remirror/react-utils
: Refactor the type signature of node views and improve their design. Now node view takes attrs and options. -
💥 BREAKING
@remirror/react
: RenameNodeViewPortalComponent
toRemirrorPortals
since it now supports decorations. -
💥 BREAKING
@remirror/react
: Change the name ofuseRemirror
touseRemirrorContext
. -
💥 BREAKING
@remirror/editor-social
: Rename@remirror/editor-twitter
to@remirror/editor-social
for branding reasons. -
💥 BREAKING
@remirror/core
: RenameNodeViewPortalContainer
toPortalContainer
. -
💥 BREAKING
@remirror/core
: Refactor the type signature of SSRComponents to only take a node and optionsextraAttrs
configuration to enable parsing the dom. -
💥 BREAKING
jest-prosemirror
: Names of matchers have been changed.transformsPMNode
is nowtoTransformNode
andtoEqualPMNode
is nowtoEqualProsemirrorNode
. -
@remirror/core
: UpdateextraAttrs
configuration to enable parsing the dom. -
@remirror/core
: Make default priority level for extensions3
instead of2
. A lower number means the extension is deemed more important and ordered earlier in lists. -
@remirror/core-extensions
: AddextraAttrs
to the following extensions:LinkExtension
,ParagraphExtension
,HeadingExtension
.
- 💥 BREAKING
@remirror/renderer-react
: Removed package. - 💥 BREAKING
@remirror/react-utils
: Remove placeholder prop from theRemirrorManager
. - 💥 BREAKING
@remirror/react
: Remove higher order components. - 💥 BREAKING
@remirror/react
: RemovewithoutEmotion
prop. This should now be configured via theRemirrorThemeProvider
component.
0.4.1 - 2019-07-22
@remirror/showcase
: Allow theExampleWysiwygEditor
to use propsuppressHydrationWarning
for SSR rendering.@remirror/showcase
: Revert unintended renaming ofExampleTwitterEditor
toShowcaseTwitterEditor
.
0.4.0 - 2019-07-22
-
🚀
@remirror/extension-collaboration
: Collaboration library added based on the brilliant example available in tiptap. -
🚀
@remirror/extension-mention
: Mentions can now be picked up from pasting data. -
🚀
@remirror/extension-code-block
: Add commandstoggleCodeBlock
,createCodeBlock
,updateCodeBlock
andformatCodeBlock
, add keymap support for formatting, add backspace support for better navigation and other features. -
@remirror/core
: AddCommandNodeTypeParams
,CommandMarkTypeParams
,CommandTypeParams
which is now passed to thecommands
method for extensions. -
@remirror/react-utils
,@remirror/react
: AddsuppressHydrationWarning
prop toRemirror
component. Set to true to ignore the hydration warning for a mismatch between the server and client content. -
@remirror/core
: Add newextensionData
method to theExtensionManager
which allows the extension to provide data on every transaction which will be available for consumption in the renderProp, React Context hooks and HOC's. -
@remirror/core
: AddgetActions
to the params of all extension manager methods. This will throw an error if called before initialization. -
@remirror/core
: Allow extensions to overridebaseExtension
in theRemirrorManager
component. -
@remirror/core
: AddensureTrailingParagraph
as a configuration option for the paragraph node. In some scenarios, it is difficult to place a cursor after the last element. This ensures there's always space to select the position afterwards and fixes a whole range of issues. It defaults to false otherwise it breaks a lot of tests. -
jest-prosemirror
: Enable editorViewOptions for thecreateEditor
method. For example, now it is possible to intercept transactions with thedispatchTransaction
hook. -
@remirror/renderer-react
: Pass extension options through to SSR components as a prop. -
Add internal modifier key functions for puppeteer testing.
-
Add integration editor tests for the
Wysiwyg
editor.
- 💥 BREAKING
@remirror/core
: Change the way commands are configured. The command function on extensions now only accepts an object with the command names being globally unique. For example, the heading extension used to return a function now it returns an object with the following signature.
{
toggleHeading(attrs?: Attrs<{level: number}>): CommandFunction;
}
This command can now be accessed via actions.toggleHeading({ level: 2 })
This is a large breaking change and may cause a lot of your existing code to stop working 😢. However, it paves the way for a better development experience, a simpler to manage library and some exciting features using type inference. Please do bear with me as I make these changes. I truly believe they'll be worthwhile.
-
💥 BREAKING
@remirror/core
: Change usageisEnabled
andisActive
which are now methods on the command. e.g.actions.toggleHeading.isEnabled()
would check whether the toggle heading button can be used at this moment. -
💥 BREAKING
@remirror/core
: Change Extension function signature actions ofactive
andenabled
. -
💥 BREAKING
@remirror/core
: RenamegetEditorState
togetState
. -
💥 BREAKING
@remirror/core
: Change methodgetPortalContainer
to propertyportalContainer
on the extension manager. -
💥 BREAKING
@remirror/extension-mention
: Complete rewrite of internals and public API with better tests and more robust editing. -
💥 BREAKING
@remirror/extension-mention
: ChangeMentionExtension
fromNodeType
toMarkType
. Text is now editable after a mention is created. -
💥 BREAKING
@remirror/react
: RenamesetChildAsRoot
tochildAsRoot
onRemirrorContextProviderProps
and all it consumers. This affects theRemirrorContextProvider
,RemirrorProvider
andManagedRemirrorProvider
exports. The prop now can take a boolean or the object with props to inject into the root. -
💥 BREAKING
@remirror/react
: All RemirrorProviders now require achildren
prop. This prevents a bug when rendering in non-dom environments. -
💥 BREAKING
@remirror/react
:dispatchTransaction
has been renamed toonDispatchTransaction
. It now must return atransaction
and can be used to edit the transaction that will be used to create a new state. -
🐛
@remirror/core
: Fix bug with extension manager failing to provide attributes from the extensions. -
🐛
@remirror/core
: Fix TypeScript type of SSRComponent. Change fromComponent
toComponentType
. -
🐛
@remirror/editor-twitter
: Fix bug where text area didn't expand to the full height of editor container. -
🐛
@remirror/editor-wysiwyg
: Fix bug where positioner was causing the editor to take up 10000 px in height.
0.3.0 - 2019-07-06
@remirror/react
: AddwithoutEmotion
which, when set totrue
, removes emotion (css-in-js) from theRemirror
component. This is for those who don't like css-in-js and would like to work directly with the raw editor without random styles injected. Consuming the@remirror/react-components
or any of the@remirror/editor-*
packages will require the use of emotion.@remirror/react-utils
: AddoneChildOnly
export which throws readable errors for invalid children props.
-
💥 BREAKING
@remirror/react-utils
: RenamechildIsFunction
topropIsFunction
and make it a pseudo predicate function (returns true when it doesn't throw an error). -
💥 BREAKING
@remirror/react
: RenamesetChildAsRoot
tochildAsRoot
onRemirrorContextProviderProps
and all it consumers. This affects theRemirrorContextProvider
,RemirrorProvider
andManagedRemirrorProvider
exports. The prop now can take a boolean or the object with props to inject into the root. -
💥 BREAKING
@remirror/editor-twitter
: RenameuiTwitterTheme
toTwitterEditorTheme
. -
💥 BREAKING
@remirror/core
: RenameHasExtensions
toExtensionListParams
. -
💥 BREAKING
@remirror/core
: It is now up to extensions to decide whether commands should be active when the editor is editable.isEditable
method is now passed into thecommands
method as a means of checking. -
💥 BREAKING
@remirror/react
: All RemirrorProviders now require achildren
prop. This prevents a bug when rendering in non-dom environments. -
Add support for Git Large File Storage (LFS)
-
@remirror/editor-twitter
,@remirror/editor-wysiwyg
: Use image-snapshot testing to ensure SSR and DOM rendered editors are identical. -
Update husky command from
andyarn stop:hooks
toyarn start:hooks
yarn husky:stop
andyarn husky:start
.
- 💥 BREAKING
@remirror/react-utils
@remirror/react
@remirror/editor-markdown
@remirror/editor-wysiwyg
: Remove customRootProp fromRemirrorProps
. - 💥 BREAKING
@remirror/core
: RemoveisEditable
guard from command functions. It is now up to the command or the caller to decide if it should run when the editor is not editable. To help with this command params with the methodisEditable
are passed to thecommands
method of the extension. - 💥 BREAKING
@remirror/core
: Remove exportsGetItemParamsMethod
createFlexibleFunctionMap
hasExtensionProperty
extensionPropertyMapper
transformExtensionMap
ignoreFunctions
.
0.2.0 - 2019-06-18
- Support for server side rendering (SSR) with passing integration tests for NextJS.
- Support for plain extension with styles impacting SSR (PlaceholderExtension can be rendered in SSR).
@remirror/core
:ssrTransformer
added to extension methods as a way of wrapping and transforming the JSX element produced on the server.@remirror/core
:SSRComponent: React.ComponentType<any>
option added toMarkExtensionOptions
andNodeExtensionOptions
as a way of overriding the component rendered in an SSR environment.@remirror/core
:SSRHelpersExtension
added as a shorthand way of defining SSR transformations via ssrTransformer.@remirror/core
:injectBrIntoEmptyParagraphs
added for better SSR rendering.@remirror/react-utils
:isReactFragment
added to test if an element is a fragment.- Create better unit tests for SSR.
- Add a changelog with changes starting from
v0.1.0
- 💥 BREAKING: Rename
@remirror/ui-*
packages to@remirror/editor-*
for example @remirror/ui-twitter is .now called@remirror/editor-twitter
. - 💥 BREAKING
@remirror/editor-twitter
: RenameUITwitter
andTwitterUI
toTwitterEditor
. - 💥 BREAKING
@remirror/editor-markdown
: RenameUIMarkdown
andMarkdownUI
toMarkdownEditor
. - 💥 BREAKING
@remirror/editor-wysiwyg
: RenameUIWysiwyg
andWysiwygUI
toWysiwygEditor
. - Speed up tslint by enforcing linting on individual modules (new
tsconfig.lint.json
files). - Remove
cx
import fromemotion
library in from@remirror/core
to reduce the bundle size. - Set
@emotion/core
and@emotion/styled
as peer dependencies.
- 💥 BREAKING:
@remirror/ui-*
packages.
0.1.0 - 2019-06-10
- Enable remirror as a controlled component #79 #78.
- @remirror/ui-markdown - Still in progress.
- @remirror/extension-multicursor - this is currently just a stub (almost no code).
- @remirror/api-documenter - will be used to generate the api documentation.
- BREAKING: Rename all extensions to include an Extension postfix. e.g. Emoji is now EmojiExtension. This will hopefully reduce name collisions in the future.
- Improves the puppeteer testing by separating it out from unit tests in the package.
- Upgrade docz to v1 #65.
- General improvements to docs.
- Fixes missing TypeScript definitions #77.
- Fixes crash when rendering a ReactNodeView in NextJS #75.