Releases: springload/draftail
Releases · springload/draftail
v0.17.1
Changed
- Unsupported actions causing an atomic block to be without entity now soft-fail with an un-editable atomic block instead of hard-fail wagtail/wagtail#4370.
Fixed
- Add workaround for RichUtils image delete blind spot reported in wagtail/wagtail#4370 (#144).
v0.17.0
Added
- Add basic API for arbitrary controls in the toolbar.
- Expose
ToolbarButtoncomponent in the API. - Add ability to set
ariaDescribedByprop of Draft.js.
Changed
- Replace block entities by a paragraph when using
onRemoveEntity. - Replace
ListNestingimplementation with the one fromdraftjs-conductor.
Fixed
- Fix copy-paste filter running more often than necessary.
- Use darker placeholder text color to pass WCAG2.0 AAA level contrast ratio. Overridable via
$draftail-placeholder-text. - Fix HR block spacing at the top of the editor.
Removed
- Remove
DraftUtils.isSelectedBlockType(). - Remove
DraftUtils.hasCurrentInlineStyle().
v0.16.0
Changed
- Remove toolbar z-index when the editor is not focused, to reduce chances of interferring with other components.
- Adjust toolbar button alignment for text-only buttons.
- Replace
classNameprop for blocks by dynamically adding a class based on block type. - Update to
draftjs-filters@0.7.0to preserve list items in Word. - Update
draft-jspeerDependency version to 0.10.5.
Fixed
- Fix Markdown shortcuts for blocks removing styles and entities at the end of the block text.
Removed
- Remove React 15 from peerDependencies.
v0.15.0
Changed
- Replace nested-list-items Sass helper with new auto-generated CSS in JS.
- Update to
draftjs-filters@0.6.1to fix entities not being cloned on paste.
Removed
- Remove support for
maxListNestinggreater than 10.
v0.14.0
Added
- Make line break and horizontal line controls configurable, by passing an object with
icon,label,descriptionprops. - Add ability to set
textAlignment,textDirectionality,autoCapitalize,autoComplete,autoCorrectprops of Draft.js.
Changed
- Rename
DraftUtils.addLineBreakRemovingSelectiontoDraftUtils.addLineBreak. - Replace
showUndoRedoControlswith separate propsshowUndoControlandshowRedoControlfor which control UI can be overriden. - Make all keyboard shortcut labels language agnostic.
Fixed
- Fix
DraftUtils.addLineBreakadding line breaks in the wrong place when selection is collapsed.
v0.13.0
Added
- Add default block spacing to make it easier to distinguish empty blocks.
Changed
- Make rich text styles specific to Draftail.
- Update to
draftjs-filters@0.5.0to improve filtering on undefined attributes. - Update editor read-only styles to integrate better with any background color.
Fixed
- Prevent toolbar tooltip from having a transition delay on close.
- Prevent toolbar tooltip from staying open when hovered.
v0.12.0
Added
- Add
Draftail-unstyledclass to unstyled block, makes it easy to style unstyled blocks. - Add
$draftail-editor-backgroundvariable to override editor bg. - Add
draftail-richtext-stylesmixin to style rich text content within the editor. - Add imperative
focus()API to the editor, like that of Draft.js. - Add
onCloseprop to sources, to close the source without focusing the editor again.
Changed
- Make all icons
vertical-align: middle;by default. - Update to
draftjs-filters@0.4.0to allow filtering on undefined attributes.
Fixed
- Fix icons / labels alignment in the toolbar.
v0.11.0
Added
- Add new Sass constants to make the editor more themable:
$draftail-editor-padding, $draftail-editor-text, $draftail-editor-font-family, $draftail-editor-font-size, $draftail-editor-line-height, $draftail-toolbar-radius, $draftail-editor-border, $draftail-toolbar-tooltip-radius, $draftail-toolbar-tooltip-duration, $draftail-toolbar-tooltip-delay. - Delay toolbar tooltip opening on hover by 0.5s, animated over 0.1s.
- Make Markdown-style markers work on non-empty blocks (#53).
Changed
- Switch to rollup for package compilation.
- Move
DraftailEditorfrom default export of draftail to named export (import { DraftailEditor } from 'draftail';). - Wrap
propTypesin env check so they only appear in dev build. - Rename / namespace all overridable Sass constants.
- Rename
nested-list-item($depth)todraftail-nested-list-item($depth). - Stop defining
$draftail-tooltip-radiusbased on$draftail-editor-radius. - Simplify
DraftUtils.getSelectedBlock()implementation. - Rename
optionsprop toentityTypefor entity sources. - Rename
onUpdateprop toonCompletefor entity sources. - Rename
entityConfigprop toentityTypefor entity blocks. - Replace normalize API with
draftjs-filters(#123). - Update toolbar tooltips to show markdown markers for all blocks.
Fixed
- Prevent toolbar button labels from being selected.
- Fix newline block insertion & reset creating 2 entries in undo stack (#105).
Removed
- Remove all unused variables from Sass constants.
- Remove
immutablefrompeerDependencies. - Remove
draftjs-utilsfromdependencies. - Remove
DraftUtils.createEntity(). - Remove
DraftUtils.getAllBlocks(). - Remove
DraftUtils.getEntityRange(). - Remove
onCloseprop for entity sources.
v0.10.0
Added
- Add new
DraftUtils.getEntitySelection(editorState, entityKey)method, returning the selection corresponding to a given entity. Note: only works if the entity is in the currently selected block. - Add
DraftUtils.updateBlockEntitymethod, with workaround for Draft.s 0.10 entity data update bug. - Add shortcuts for blockquote and code block to toolbar tooltips.
- Use alternative keyboard shortcuts for more formats.
- Add default labels & descriptions for built-in formats (#122).
- Process, whitelist, blacklist, migrate available blocks, styles and entities when pasting rich text (#50 & #103 thanks to @inostia, see #123 for next steps).
- Add support for custom text decorators (#121).
- Add predefined classes for block depth levels above 4, of the format
public-DraftStyleDefault-depth${depth}. - Add
nested-list-item($depth)Sass mixin to generate styles for arbitrary list item nesting. - Introduce new
Draftail-class namespace for all styles (#63). - Expose Sass stylesheets to Draftail users, for extension.
Changed
- Exclude toolbar buttons from default focus navigation flow.
- Disable ligatures in the editor, to simplify cursor behaviour.
- Stop bundling the Draft.js styles. They now have to be manually included. The previous approach was prone to version mismatches.
- Configure text antialiasing for Firefox.
- Change
Iconimplementation to use SVG by default. Supports symbol references, SVG path(s), and arbitrary React components (#119). - Disable pointer events on all icons by default.
- Remove toolbar hover styles.
- Make more of the editor styling overridable.
- Move
Tooltipoutside of Draftail package. - Refactor tooltip for inline entities to be defined directly in decorators. They should now define their own tooltip (or other control), rather than rely on
data-tooltip. - Move
Portalcomponent outside of Draftail. - Add
blockprop to entityTypes, and moveIMAGEandEMBEDblocks outside of Draftail (#121). - Provide methods for
entityTypes'blockto edit, remove entity.
Removed
- Remove Save and Cancel buttons from image block, thanks to @allcaps (#102)
- Remove
DraftUtils.getSelectedEntitySelection. It can be replaced byDraftUtils.getEntitySelection(editorState, DraftUtils.getSelectionEntity(editorState)). - Remove built-in support for
MODELentities. - Remove built-in support for
EMBEDentities. - Remove built-in support for
DOCUMENTentities. - Remove support for
entityTypes'imageFormats. - Remove support for custom
entityTypesstrategy.
Fixed
- Update handleNewLine to defer breakout in code-block. Fix #104.
- Fix toolbar entity edit and remove not working on selection pre first char. Fix #109.
- Fix block type transformations moving selection to the wrong block.
- Fix editor scrolling in the wrong position when breaking a big block (facebookarchive/draft-js#304 (comment)).
v0.9.0
Added
- Add support for custom inline styles, thanks to @vincentaudebert (#97).
- Add basic styles for common inline styles.
- Add new
descriptionprop for all formats to describe the format's use with more text than thelabel. - Add tooltips for toolbar buttons to display the full control
descriptionas well as its keyboard shortcut. - Add separate button groups in the toolbar.
- Add basic undo/redo controls in the toolbar (#100), displaying the related keyboard shortcuts.
- Introduce icons for hr:
―and br:↵. - Add keyboard shortcuts for superscript & subscript.
- Add more Markdown-like markers for heading levels (
##), code block (triple backtick), blockquote (>), hr (---) (#53). - Add
spellCheckprop, passed to Draft.jsEditor. Sets whether spellcheck is turned on for your editor. - Add support for React 16.
Changed
- Update keyboard shortcuts format to follow that of Google Docs.
- Refine toolbar styles. Fix toolbar to the top of the page when sticky.
- Make the editor look closer to a textarea (#96).
- Update strikethrough shortcut from Google Docs.
- Update Draft.js dependency to 0.10.4, and
draftjs-utilsto 0.8.8. - Stop preserving Markdown-like block marker when undoing block type change.
- Stop restricting block type changes based on Markdown-style markers to unstyled blocks only.
Fixed
- Fix tooltip position when scrolling (#99).
- Fix beforeInput text replacement happening on non-collapsed selections.
- Prevent text inserted after entities from continuing the entity. Fix #86 (#106).
How to upgrade
This release does not have many breaking changes, but the editor's toolbar styles have changed a lot and this may cause breakage.
First, update Draftail and its Draft.js peer dependency: npm install --save draft-js@^0.10.4 draftail@0.9.0.
Then, you will want to update controls to leverage the new description prop. It will be displayed in the new toolbar tooltips. Here is a brief example:
blockTypes={[
{
type: BLOCK_TYPE.HEADER_THREE,
label: 'H3',
// Use a description to further convey what the control does.
+ description: 'Heading 3',
},
{
type: BLOCK_TYPE.UNORDERED_LIST_ITEM,
// The icon is enough – but use the new prop to help screen reader users.
- label: 'UL',
+ description: 'Bulleted list',
icon: 'icon-list-ul',
},
]}