---
title: "Changelog"
description: "The history of TinyMCE releases."
canonical_url: "https://www.tiny.cloud/docs/tinymce/latest/changelog/"
md_url: "https://www.tiny.cloud/docs/tinymce/5/changelog/index.md"
version: "5"
last_updated: "2024-04-02T08:16:55Z"
tokens: 17607
---
Important This page documents TinyMCE 5. For new projects, Tiny recommends using the latest, most up-to-date version. [See TinyMCE 8 documentation](../../latest/changelog/).
# Changelog

> **Note:** This is the TinyMCE Community version changelog. For information about the latest Tiny Cloud or TinyMCE Enterprise Release, see: [TinyMCE Release Notes](../release-notes/).

## 5.10.9 - 2023-11-15

### Changed

- Zero width no-break space (U+FEFF) characters are removed from content passed to `setContent`, `insertContent`, and `resetContent` APIs.
- Zero width no-break space (U+FEFF) characters in initial content are not loaded into the editor upon initialization.

### Fixed

- Specific HTML content containing unescaped text nodes caused mXSS when using undo/redo.
- Specific HTML content containing unescaped text nodes caused mXSS when using the `getContent` and `setContent` APIs with the `format: 'raw'` option, which also affected the `resetContent` API and the draft restoration feature of the Autosave plugin.

## 5.10.8 - 2023-10-19

### Fixed

- Specific HTML content caused mXSS when using undo/redo.
- Specific HTML content caused mXSS when using the `getContent` and `setContent` APIs with the `format: 'raw'` option, which also affected the `resetContent` API and the draft restoration feature of the Autosave plugin.

  - Notification messages containing HTML were not properly XSS sanitized before being displayed.

## 5.10.7 - 2022-12-06

### Fixed

- A cross-site scripting (XSS) vulnerability in TinyMCE alerts which allowed arbitrary JavaScript execution was found and fixed.

## 5.10.6 - 2022-10-19

### Fixed

- The `name` and `id` attributes of some elements were incorrectly removed during serialization.
- Notifications would not properly reposition when toggling fullscreen mode.
- Toggling fullscreen mode with the `fullscreen` plugin now also fires the `ResizeEditor` event.
- The URL detection used for `autolink` and smart paste didn’t work if a path segment contained valid characters such as `!` and `:`.

## 5.10.5 - 2022-05-25

### Fixed

- Base64 data URIs were not extracted correctly during parsing when proceeded by `data:` text.
- Empty lines that were formatted in a ranged selection using the `format_empty_lines` option were not kept in the serialized content.
- The `s` element was missing from the default schema text inline elements.
- Some text inline elements specified via the schema were not removed when empty by default.

## 5.10.4 - 2022-04-27

### Fixed

- Inline toolbars flickered when switching between editors.
- Multiple inline toolbars were shown if focused too quickly.

## 5.10.3 - 2022-02-09

### Fixed

- Alignment would sometimes be removed on parent elements when changing alignment on certain inline nodes, such as images.
- The `fullscreen` plugin would reset the scroll position when exiting fullscreen mode.

## 5.10.2 - 2021-11-17

### Fixed

- Internal selectors were appearing in the style list when using the `importcss` plugin.

## 5.10.1 - 2021-11-03

### Fixed

- The iframe aria help text was not read by some screen readers.
- Clicking the `forecolor` or `backcolor` toolbar buttons would do nothing until selecting a color.
- Crop functionality did not work in the `imagetools` plugin when the editor was rendered in a shadow root.
- Fixed an exception thrown on Safari when closing the `searchreplace` plugin dialog.
- The `autolink` plugin did not convert URLs to links when starting with a bracket.
- The `autolink` plugin incorrectly created nested links in some cases.
- Tables could have an incorrect height set on rows when rendered outside of the editor.
- In certain circumstances, the table of contents plugin would incorrectly add an extra empty list item.
- The insert table grid menu displayed an incorrect size when re-opening the grid.
- The word count plugin was treating the zero width space character (`&#8203;`) as a word.

## 5.10.0 - 2021-10-11

### Added

- Added a new `URI.isDomSafe(uri)` API to check if a URI is considered safe to be inserted into the DOM.
- Added the `ESC` key code constant to the `VK` API.
- Added a new `deprecation_warnings` setting for turning off deprecation console warning messages.

### Improved

- The `element` argument of the `editor.selection.scrollIntoView()` API is now optional, and if it is not provided the current selection will be scrolled into view.

### Changed

- The deprecated `scope` attribute is no longer added to `td` cells when converting a row to a header row.
- The number of `col` elements is normalized to match the number of columns in a table after a table action.

### Fixed

- Fixed a regression that caused block wrapper formats to apply and remove incorrectly when using a collapsed selection with multiple words.
- Resizing table columns in some scenarios would resize the column to an incorrect position.
- Inserting a table where the parent element had padding would cause the table width to be incorrect.
- The resize backdrop element did not have the `data-mce-bogus="all"` attribute set to prevent it being included in output.
- Resize handles appeared on top of dialogs and menus when using an inline editor.
- Fixed the `autoresize` plugin incorrectly scrolling to the top of the editor content in some cases when changing content.
- Fixed the `editor.selection.scrollIntoView()` type signature, as it incorrectly required an `Element` instead of `HTMLElement`.
- Table cells that were both row and column headers did not retain the correct state when converting back to a regular row or column.
- Clicking beside a non-editable element could cause the editor to incorrectly scroll to the top of the content.
- Clicking in a table cell, with a non-editable element in an adjacent cell, incorrectly caused the non-editable element to be selected.
- Split toolbar buttons incorrectly had nested `tabindex="-1"` attributes.
- Fixed notifications rendering in the wrong place initially and when the page was scrolled.
- Fixed an exception getting thrown when the number of `col` elements didn’t match the number of columns in a table.
- The table selection state could become incorrect after selecting a noneditable table cell.
- As of Mozilla Firefox 91, toggling fullscreen mode with `toolbar_sticky` enabled would cause the toolbar to disappear.
- Fixed URLs not cleaned correctly in some cases in the `link` and `image` plugins.
- Fixed the `image` and `media` toolbar buttons incorrectly appearing to be in an inactive state in some cases.
- Fixed the `editor.selection.selectorChanged` API not firing if the selector matched the current selection when registered in some cases.
- Inserting content into a `contenteditable="true"` element that was contained within a `contenteditable="false"` element would move the selection to an incorrect location.
- Dragging and dropping `contenteditable="false"` elements could result in the element being placed in an unexpected location.
- Pressing the Escape key would not cancel a drag action that started on a `contenteditable="false"` element within the editor.
- `video` and `audio` elements were unable to be played when the `media` plugin live embeds were enabled in some cases.
- Pasting images would throw an exception if the clipboard `items` were not files (for example, screenshots taken from gnome-software). Patch contributed by cedric-anne.

### Deprecated

- Several APIs have been deprecated. See the release notes section for information.
- Several Editor settings have been deprecated. See the release notes section for information.
- The Table of Contents and Image Tools plugins will be classified as Premium plugins in the next major release.
- Word support in the `paste` plugin has been deprecated and will be removed in the next major release.

## 5.9.2 - 2021-09-08

### Fixed

- Fixed an exception getting thrown when disabling events and setting content.

## 5.9.1 - 2021-08-27

### Fixed

- Published TinyMCE types failed to compile in strict mode.
- The `TableModified` event sometimes didn’t fire when performing certain table actions.

## 5.9.0 - 2021-08-26

### Added

- Added a new `mceFocus` command that focuses the editor. Equivalent to using `editor.focus()`.
- Added a new `mceTableToggleClass` command which toggles the provided class on the currently selected table.
- Added a new `mceTableCellToggleClass` command which toggles the provided class on the currently selected table cells.
- Added a new `tablecellvalign` toolbar button and menu item for vertical table cell alignment.
- Added a new `tablecellborderwidth` toolbar button and menu item to change table cell border width.
- Added a new `tablecellborderstyle` toolbar button and menu item to change table cell border style.
- Added a new `tablecaption` toolbar button and menu item to toggle captions on tables.
- Added a new `mceTableToggleCaption` command that toggles captions on a selected table.
- Added a new `tablerowheader` toolbar button and menu item to toggle the header state of row cells.
- Added a new `tablecolheader` toolbar button and menu item to toggle the header state of column cells.
- Added a new `tablecellbordercolor` toolbar button and menu item to select table cell border colors, with an accompanying setting `table_border_color_map` to customize the available values.
- Added a new `tablecellbackgroundcolor` toolbar button and menu item to select table cell background colors, with an accompanying setting `table_background_color_map` to customize the available values.
- Added a new `language` menu item and toolbar button to add `lang` attributes to content, with an accompanying `content_langs` setting to specify the languages available.
- A new `lang` format is now available that can be used with `editor.formatter`, or applied with the `Lang` editor command.
- Added a new `language` icon for the `language` toolbar button.
- Added a new `table-row-numbering` icon.
- Added new plugin commands: `mceEmoticons` (Emoticons), `mceWordCount` (Word Count), and `mceTemplate` (Template).
- Added a new `iframe_aria_text` setting to set the iframe title attribute.
- Added a new DomParser `Node.children()` API to return all the children of a `Node`.

### Improved

- Sticky toolbars can now be offset from the top of the page using the new `toolbar_sticky_offset` setting.
- Fancy menu items now accept an `initData` property to allow custom initialization data.
- Improved the load time of the `fullpage` plugin by using the existing editor schema rather than creating a new one.
- Improved the performance when UI components are rendered.
- The context toolbar no longer unnecessarily repositions to the top of large elements when scrolling.
- The context toolbar will now move out of the way when it overlaps with the selection, such as in table cells.
- The context toolbar now uses a short animation when transitioning between different locations.
- `Env.browser` now uses the User-Agent Client Hints API where it is available.
- Icons with a `-rtl` suffix in their name will now automatically be used when the UI is rendered in right-to-left mode.
- The `formatter.match` API now accepts an optional `similar` parameter to check if the format partially matches.
- The `formatter.formatChanged` API now supports providing format variables when listening for changes.
- The formatter will now fire `FormatApply` and `FormatRemove` events for the relevant actions.
- The `autolink` plugin link detection now permits custom protocols.
- The `autolink` plugin valid link detection has been improved.

### Changed

- Changed the load order so content CSS is loaded before the editor is populated with content.
- Changed the `emoticons`, `wordcount`, `code`, `codesample`, and `template` plugins to open dialogs using commands.
- The context toolbar will no longer show an arrow when it overlaps the content, such as in table cells.
- The context toolbar will no longer overlap the statusbar for toolbars using `node` or `selection` positions.

### Fixed

- The `editor.fire` API was incorrectly mutating the original `args` provided.
- Unbinding an event handler did not take effect immediately while the event was firing.
- Binding an event handler incorrectly took effect immediately while the event was firing.
- Unbinding a native event handler inside the `remove` event caused an exception that blocked editor removal.
- The `SetContent` event contained the incorrect `content` when using the `editor.selection.setContent()` API.
- The editor content could be edited after calling `setProgressState(true)` in iframe mode.
- Tabbing out of the editor after calling `setProgressState(true)` behaved inconsistently in iframe mode.
- Flash of unstyled content while loading the editor because the content CSS was loaded after the editor content was rendered.
- Partially transparent RGBA values provided in the `color_map` setting were given the wrong hex value.
- HTML comments with mismatched quotes were parsed incorrectly under certain circumstances.
- The editor could crash when inserting certain HTML content.
- Inserting certain HTML content into the editor could result in invalid HTML once parsed.
- Links in notification text did not show the correct mouse pointer.
- Using the Tab key to navigate into the editor on Microsoft Internet Explorer 11 would incorrectly focus the toolbar.
- The editor selection could be placed in an incorrect location when undoing or redoing changes in a document containing `contenteditable="false"` elements.
- Menus and context menus were not closed when clicking into a different editor.
- Context menus on Android were not displayed when more than one HTML element was selected.
- Disabled nested menu items could still be opened.
- The nested menu item chevron icon was not fading when the menu item was disabled.
- `imagetools` buttons were incorrectly enabled for remote images without `imagetools_proxy` set.
- Only table content would be deleted when partially selecting a table and content outside the table.
- The table cell selection handling was incorrect in some cases when dealing with nested tables.
- Removing a table row or column could result in the cursor getting placed in an invalid location.
- Pressing the Tab key to navigate through table cells did not skip noneditable cells.
- Clicking on a noneditable table cell did not show a visual selection like other noneditable elements.
- Some table operations would incorrectly cause table row attributes and styles to be lost.
- The selection was incorrectly lost when using the `mceTableCellType` and `mceTableRowType` commands.
- The `mceTableRowType` was reversing the order of the rows when converting multiple header rows back to body rows.
- The table dialog did not always respect the `table_style_with_css` option.
- Pasting into a table with multiple cells selected could cause the content to be pasted in the wrong location.
- The `TableModified` event was not fired when pasting cells into a table.
- The table paste column before and after icons were not flipped in RTL mode.
- Fixed table corruption when deleting a `contenteditable="false"` cell.
- The `dir` attribute was being incorrectly applied to list items.
- Applying selector formats would sometimes not apply the format correctly to elements in a list.
- For formats that specify an attribute or style that should be removed, the formatter `match` API incorrectly returned `false`.
- The type signature on the `formatter.matchNode` API had the wrong return type (was `boolean` but should have been `Formatter | undefined`).
- The `formatter.formatChanged` API would ignore the `similar` parameter if another callback had already been registered for the same format.
- The `formatter.formatChanged` API would sometimes not run the callback the first time the format was removed.
- Base64 encoded images with spaces or line breaks in the data URI were not displayed correctly. Patch contributed by RoboBurned

### Deprecated

- The `bbcode`, `fullpage`, `legacyoutput`, and `spellchecker` plugins have been deprecated and marked for removal in the next major release.

## 5.8.2 - 2021-06-23

### Fixed

- Fixed an issue when pasting cells from tables containing `colgroup` s into tables without `colgroup` s.
- Fixed an issue that could cause an invalid toolbar button state when multiple inline editors were on a single page.

## 5.8.1 - 2021-05-20

### Fixed

- An unexpected exception was thrown when switching to readonly mode and adjusting the editor width.
- Content could be lost when the `pagebreak_split_block` setting was enabled.
- The `list-style-type: none;` style on nested list items was incorrectly removed when clearing formatting.
- URLs were not always detected when pasting over a selection. Patch contributed by jwcooper.
- Properties on the `OpenNotification` event were incorrectly namespaced.

## 5.8.0 - 2021-05-06

### Added

- Added the `PAGE_UP` and `PAGE_DOWN` key code constants to the `VK` API.
- The editor resize handle can now be controlled using the keyboard.
- Added a new `fixed_toolbar_container_target` setting which renders the toolbar in the specified `HTMLElement`. Patch contributed by pvrobays

### Improved

- The `inline_boundaries` feature now supports the `home`, `end`, `pageup`, and `pagedown` keys.
- Updated the `formatter.matchFormat` API to support matching formats with variables in the `classes` property.
- Added HTML5 `audio` and `video` elements to the default alignment formats.
- Added support for alpha list numbering to the list properties dialog.

### Changed

- Updated the `image` dialog to display the class list dropdown as full-width if the caption checkbox is not present.
- Renamed the "H Align" and "V Align" input labels in the Table Cell Properties dialog to "Horizontal align" and "Vertical align" respectively.

### Deprecated

- The undocumented `setIconStroke` Split Toolbar Button API has been deprecated and will be removed in a future release.

### Fixed

- Fixed a bug where it wasn’t possible to align nested list items.
- The RGB fields in the color picker dialog were not staying in sync with the color palette and hue slider.
- The color preview box in the color picker dialog was not correctly displaying the saturation and value of the chosen color.
- The color picker dialog will now show an alert if it is submitted with an invalid hex color code.
- Fixed a bug where the `TableModified` event was not fired when adding a table row with the Tab key.
- Added missing `images_file_types` setting to the exported TypeScript types.
- Fixed a bug where lists pasted from Word with Roman numeral markers were not displayed correctly. Patch contributed by aautio.
- The `editor.insertContent` API was incorrectly handling nested `span` elements with matching styles.
- The HTML5 `small` element could not be removed when clearing text formatting.
- The Oxide button text transform variable was incorrectly using `capitalize` instead of `none`. Patch contributed by dakur.
- Fix dialog button text that was using title-style capitalization.
- Table plugin could perform operations on tables containing the inline editor.
- Fixed Tab key navigation inside table cells with a ranged selection.
- The foreground and background toolbar button color indicator is no longer blurry.
- Fixed a regression in the `tinymce.create()` API that caused issues when multiple objects were created.
- Fixed the `LineHeight` command causing the `change` event to be fired inconsistently.

## 5.7.1 - 2021-03-17

### Fixed

- Fixed the `help` dialog incorrectly linking to the changelog of TinyMCE 4 instead of TinyMCE 5.
- Fixed a bug where error messages were displayed incorrectly in the image dialog.
- Fixed an issue where URLs were not correctly filtered in some cases.
- Fixed a bug where context menu items with names that contained uppercase characters were not displayed.
- Fixed context menu items lacking support for the `disabled` and `shortcut` properties.
- Fixed a regression where the width and height were incorrectly set when embedding content using the `media` dialog.

## 5.7.0 - 2021-02-10

### Added

- Added IPv6 address support to the URI API. Patch contributed by dev7355608.
- Added new `structure` and `style` properties to the `TableModified` event to indicate what kinds of modifications were made.
- Added `video` and `audio` live embed support for the `media` plugin.
- Added the ability to resize `video` and `iframe` media elements.
- Added a new `font_css` setting for adding fonts to both the editor and the parent document.
- Added a new `ImageUploader` API to simplify uploading image data to the configured `images_upload_url` or `images_upload_handler`.
- Added an Oxide variable to define the container background color in fullscreen mode.
- Added Oxide variables for setting the toolbar background colors for inline and sticky toolbars.
- Added a new `AfterProgressState` event that is fired after `editor.setProgressState` calls complete.
- Added support for `table_column_resizing` when inserting or deleting columns.

### Changed

- Changed table and table column copy behavior to retain an appropriate width when pasted.
- Changed the `lists` plugin to apply list styles to all text blocks within a selection.
- Changed the `advlist` plugin to log a console error message when the `list` plugin isn’t enabled.
- Changed the z-index of the `setProgressState(true)` throbber so it does not hide notifications.
- Changed the type signature for `editor.selection.getRng()` incorrectly returning `null`.
- Changed some `SaxParser` regular expressions to improve performance.
- Changed `editor.setProgressState(true)` to close any open popups.

### Fixed

- Fixed `codesample` highlighting performance issues for some languages.
- Fixed an issue where cell widths were lost when merging table cells.
- Fixed `col` elements incorrectly transformed to `th` elements when converting columns to header columns.
- Fixed a number of table operations not working when selecting 2 table cells on Mozilla Firefox.
- Fixed a memory leak by backporting an upstream Sizzle fix.
- Fixed table `width` style was removed when copying.
- Fixed focus lost while typing in the `charmap` or `emoticons` dialogs when the editor is rendered in a shadow root.
- Fixed corruption of base64 URLs used in style attributes when parsing HTML.
- Fixed the order of CSS precedence of `content_style` and `content_css` in the `preview` and `template` plugins. `content_style` now has precedence.
- Fixed an issue where the image dialog tried to calculate image dimensions for an empty image URL.
- Fixed an issue where `scope` attributes on table cells would not change as expected when merging or unmerging cells.
- Fixed the plugin documentation links in the `help` plugin.
- Fixed events bound using `DOMUtils` not returning the correct result for `isDefaultPrevented` in some cases.
- Fixed the "Dropped file type is not supported" notification incorrectly showing when using an inline editor.
- Fixed an issue with external styles bleeding into TinyMCE.
- Fixed an issue where parsing malformed comments could cause an infinite loop.
- Fixed incorrect return types on `editor.selection.moveToBookmark`.
- Fixed the type signature for `editor.selection.setCursorLocation()` incorrectly allowing a node with no `offset`.
- Fixed incorrect behavior when editor is destroyed while loading stylesheets.
- Fixed figure elements incorrectly splitting from a valid parent element when editing the image within.
- Fixed inserting multiple rows or columns in a table cloning from the incorrect source row or column.
- Fixed an issue where new lines were not scrolled into view when pressing Shift+Enter or Shift+Return.
- Fixed an issue where list elements would not be removed when outdenting using the Enter or Return key.
- Fixed an issue where file extensions with uppercase characters were treated as invalid.
- Fixed dialog block messages were not passed through TinyMCE’s translation system.

## 5.6.2 - 2020-12-08

### Fixed

- Fixed a UI rendering regression when the document body is using `display: flex`.

## 5.6.1 - 2020-11-25

### Fixed

- Fixed the `mceTableRowType` and `mceTableCellType` commands were not firing the `newCell` event.
- Fixed the HTML5 `s` element was not recognized when editing or clearing text formatting.
- Fixed an issue where copying and pasting table columns resulted in invalid HTML when using colgroups.
- Fixed an issue where the toolbar would render with the wrong width for inline editors in some situations.

## 5.6.0 - 2020-11-18

### Added

- Added new `BeforeOpenNotification` and `OpenNotification` events which allow internal notifications to be captured and modified before display.
- Added support for `block` and `unblock` methods on inline dialogs.
- Added new `TableModified` event which is fired whenever changes are made to a table.
- Added new `images_file_types` setting to determine which image file formats will be automatically processed into `img` tags on paste when using the `paste` plugin.
- Added support for `images_file_types` setting in the image file uploader to determine which image file extensions are valid for upload.
- Added new `format_empty_lines` setting to control if empty lines are formatted in a ranged selection.
- Added template support to the `autocompleter` for customizing the autocompleter items.
- Added new user interface `enable`, `disable`, and `isDisabled` methods.
- Added new `closest` formatter API to get the closest matching selection format from a set of formats.
- Added new `emojiimages` emoticons database that uses the twemoji CDN by default.
- Added new `emoticons_database` setting to configure which emoji database to use.
- Added new `name` field to the `style_formats` setting object to enable specifying a name for the format.

### Changed

- Changed `readonly` mode to allow hyperlinks to be clickable.

### Fixed

- Fixed the `change` event not firing after a successful image upload.
- Fixed the type signature for the `entity_encoding` setting not accepting delimited lists.
- Fixed layout issues when empty `tr` elements were incorrectly removed from tables.
- Fixed image file extensions lost when uploading an image with an alternative extension, such as `.jfif`.
- Fixed a security issue where URLs in attributes weren’t correctly sanitized.
- Fixed `DOMUtils.getParents` incorrectly including the shadow root in the array of elements returned.
- Fixed an issue where the root document could be scrolled while an editor dialog was open inside a shadow root.
- Fixed `getContent` with text format returning a new line when the editor is empty.
- Fixed table column and row resizers not respecting the `data-mce-resize` attribute.
- Fixed inserting a table via the `mceInsertTable` command incorrectly creating 2 undo levels.
- Fixed nested tables with `colgroup` elements incorrectly always resizing the inner table.
- Fixed the `visualchars` plugin causing the editor to steal focus when initialized.
- Fixed `fullpage` plugin altering text content in `editor.getContent()`.
- Fixed `fullscreen` plugin not working correctly with multiple editors and shadow DOM.
- Fixed font size keywords such as `medium` not displaying correctly in font size menus.
- Fixed an issue where some attributes in table cells were not copied over to new rows or columns.
- Fixed incorrectly removing formatting on adjacent spaces when removing formatting on a ranged selection.
- Fixed the `Cut` menu item not working in the latest version of Mozilla Firefox.
- Fixed some incorrect types in the new TypeScript declaration file.
- Fixed a regression where a fake offscreen selection element was incorrectly created for the editor root node.
- Fixed an issue where menus would incorrectly collapse in small containers.
- Fixed an issue where only one table column at a time could be converted to a header.
- Fixed some minor memory leaks that prevented garbage collection for editor instances.
- Fixed resizing a `responsive` table not working when using the column resize handles.
- Fixed incorrectly calculating table `col` widths when resizing responsive tables.
- Fixed an issue where spaces were not preserved in pre-blocks when getting text content.
- Fixed a regression that caused the selection to be difficult to see in tables with backgrounds.
- Fixed content pasted multiple times in the editor when using Microsoft Internet Explorer 11. Patch contributed by mattford.

## 5.5.1 - 2020-10-01

### Fixed

- Fixed pressing the down key near the end of a document incorrectly raising an exception.
- Fixed incorrect Typescript types for the `Tools` API.

## 5.5.0 - 2020-09-29

### Added

- Added a TypeScript declaration file to the bundle output for TinyMCE core.
- Added new `table_column_resizing` setting to control how table columns are resized when using the resize bars.
- Added the ability to remove images on a failed upload using the `images_upload_handler` failure callback.
- Added `hasPlugin` function to the editor API to determine if a plugin exists or not.
- Added new `ToggleToolbarDrawer` command and query state handler to allow the toolbar drawer to be programmatically toggled and the toggle state to be checked.
- Added the ability to use `colgroup` elements in tables.
- Added a new setting `table_use_colgroups` for toggling whether colgroups are used in new tables.
- Added the ability to delete and navigate HTML media elements without the `media` plugin.
- Added `fullscreen_native` setting to the `fullscreen` plugin to enable use of the entire monitor.
- Added table related oxide variables to the Style API for more granular control over table cell selection appearance.
- Added new `toolbar_persist` setting to control the visibility of the inline toolbar.
- Added new APIs to allow for programmatic control of the inline toolbar visibility.
- Added the `origin` property to the `ObjectResized` and `ObjectResizeStart` events, to specify which handle the resize was performed on.
- Added new StyleSheetLoader `unload` and `unloadAll` APIs to allow loaded stylesheets to be removed.
- Added the `LineHeight` query command and action to the editor.
- Added the `lineheight` toolbar and menu items, and added `lineheight` to the default format menu.
- Added a new `contextmenu_avoid_overlap` setting to allow context menus to avoid overlapping matched nodes.
- Added new listbox dialog UI component for rendering a dropdown that allows nested options.
- Added back the ability to use nested items in the `image_class_list`, `link_class_list`, `link_list`, `table_class_list`, `table_cell_class_list`, and `table_row_class_list` settings.

### Changed

- Changed how CSS manipulates table cells when selecting multiple cells to achieve a semi-transparent selection.
- Changed the `target` property on fired events to use the native event target. The original target for an open shadow root can be obtained using `event.getComposedPath()`.
- Changed the editor to clean-up loaded CSS stylesheets when all editors using the stylesheet have been removed.
- Changed `imagetools` context menu icon for accessing the `image` dialog to use the `image` icon.
- Changed the `editor.insertContent()` and `editor.selection.setContent()` APIs to retain leading and trailing whitespace.
- Changed the `table` plugin `Column` menu to include the cut, copy and paste column menu items.
- Changed the default table styles in the content CSS files to better support the styling options available in the `table` dialog.

### Deprecated

- Deprecated the `Env.experimentalShadowDom` flag.

### Fixed

- Fixed tables with no borders displaying with the default border styles in the `preview` dialog.
- Fixed loss of whitespace when inserting content after a non-breaking space.
- Fixed the `event.getComposedPath()` function throwing an exception for events fired from the editor.
- Fixed notifications not appearing when the editor is within a ShadowRoot.
- Fixed focus issues with inline dialogs when the editor is within a ShadowRoot.
- Fixed the `template` plugin previews missing some content styles.
- Fixed the `media` plugin not saving the alternative source url in some situations.
- Fixed an issue where column resizing using the resize bars was inconsistent between fixed and relative table widths.
- Fixed an issue where dragging and dropping within a table would select table cells.
- Fixed up and down keyboard navigation not working for inline `contenteditable="false"` elements.
- Fixed dialog not retrieving `close` icon from icon pack.
- Fixed the `unlink` toolbar button not working when selecting multiple links.
- Fixed the `link` dialog not showing the "Text to display" field in some valid cases.
- Fixed the `DOMUtils.split()` API incorrectly removing some content.
- Fixed pressing the escape key not focusing the editor when using multiple toolbars.
- Fixed the `dirty` flag not being correctly set during an `AddUndo` event.
- Fixed `editor.selection.setCursorLocation` incorrectly placing the cursor outside `pre` elements in some circumstances.
- Fixed an exception being thrown when pressing the enter key inside pre elements while `br_in_pre` setting is false.

## 5.4.2 - 2020-08-17

### Fixed

- Fixed the editor not resizing when resizing the browser window in fullscreen mode.
- Fixed clicking on notifications causing inline editors to hide.
- Fixed an issue where link URLs could not be deleted or edited in the link dialog in some cases.
- Fixed a regression where setting the `anchor_top` or `anchor_bottom` options to `false` was not working.
- Fixed the `anchor` plugin not supporting the `allow_html_in_named_anchor` option.
- Fixed an exception thrown when removing inline formats that contained additional styles or classes.
- Fixed an exception thrown when positioning the context toolbar on Internet Explorer 11 in some edge cases.
- Fixed inline formats not removed when more than one `removeformat` format rule existed.
- Fixed an issue where spaces were sometimes removed when removing formating on nearby text.
- Fixed the list toolbar buttons not showing as active when a list is selected.
- Fixed an issue where the UI would sometimes not be shown or hidden when calling the show or hide API methods on the editor.
- Fixed the list type style not retained when copying list items.
- Fixed the Paste plugin converting tabs in plain text to a single space character. A `paste_tab_spaces` option has been included for setting the number of spaces used to replace a tab character.

## 5.4.1 - 2020-07-08

### Fixed

- Fixed the Search and Replace plugin incorrectly including zero-width caret characters in search results.
- Fixed dragging and dropping unsupported files navigating the browser away from the editor.
- Fixed undo levels not created on browser handled drop or paste events.
- Fixed content in an iframe element parsing as DOM elements instead of text content.
- Fixed Oxide checklist styles not showing when printing.
- Fixed bug with `scope` attribute not being added to the cells of header rows.

## 5.4.0 - 2020-06-30

### Added

- Added keyboard navigation support to menus and toolbars when the editor is in a ShadowRoot.
- Added the ability for menus to be clicked when the editor is in an open shadow root.
- Added the `Editor.ui.styleSheetLoader` API for loading stylesheets within the Document or ShadowRoot containing the editor UI.
- Added the `StyleSheetLoader` module to the public API.
- Added Oxide variables for styling the `select` element and headings in dialog content.
- Added icons for `table` column and row cut, copy, and paste toolbar buttons.
- Added all `table` menu items to the UI registry, so they can be used by name in other menus.
- Added new `mceTableApplyCellStyle` command to the `table` plugin.
- Added new `table` cut, copy, and paste column editor commands and menu items.
- Added font related Oxide variables for secondary buttons, allowing for custom styling.
- Added new `table_header_type` setting to control how table header rows are structured.
- Added new `table_sizing_mode` setting to replace the `table_responsive_width` setting, which has now been deprecated.
- Added new `mceTableSizingMode` command for changing the sizing mode of a table.
- Added new `mceTableRowType`, `mceTableColType`, and `mceTableCellType` commands and value queries.

### Changed

- Changed `advlist` toolbar buttons to only show a dropdown list if there is more than one option.
- Changed `mceInsertTable` command and `insertTable` API method to take optional header rows and columns arguments.
- Changed stylesheet loading, so that UI skin stylesheets can load in a ShadowRoot if required.
- Changed the DOM location of menus so that they display correctly when the editor is in a ShadowRoot.
- Changed the table plugin to correctly detect all valid header row structures.

### Fixed

- Fixed tables with no defined width being converted to a `fixed` width table when modifying the table.
- Fixed the `autosave` `isEmpty` API incorrectly detecting non-empty content as empty.
- Fixed table `Paste row after` and `Paste row before` menu items not disabled when nothing was available to paste.
- Fixed a selection performance issue with large tables on Microsoft Internet Explorer and Edge.
- Fixed filters for screening commands from the undo stack to be case-insensitive.
- Fixed `fullscreen` plugin now removes all classes when the editor is closed.
- Fixed handling of mixed-case icon identifiers (names) for UI elements.
- Fixed leading and trailing spaces lost when using `editor.selection.getContent({ format: 'text' })`.
- Fixed an issue where changing the URL with the quicklink toolbar caused unexpected undo behavior.
- Fixed an issue where removing formatting within a table cell would cause Internet Explorer 11 to scroll to the end of the table.
- Fixed an issue where the `allow_html_data_urls` setting was not correctly applied.
- Fixed the `autolink` feature so that it no longer treats a string with multiple "@" characters as an email address.
- Fixed an issue where removing the editor would leave unexpected attributes on the target element.
- Fixed the `link` plugin now suggest `mailto:` when the text contains an '@' and no slashes (`/`).
- Fixed the `valid_children` check of custom elements now allows a wider range of characters in names.

## 5.3.2 - 2020-06-10

### Fixed

- Fixed a regression introduced in 5.3.0, where `images_dataimg_filter` was no-longer called.

## 5.3.1 - 2020-05-27

### Fixed

- Fixed the image upload error alert also incorrectly closing the image dialog.
- Fixed editor content scrolling incorrectly on focus in Firefox by reverting default content CSS html and body heights added in 5.3.0.

## 5.3.0 - 2020-05-21

### Added

- Added html and body height styles to the default oxide content CSS.
- Added `uploadUri` and `blobInfo` to the data returned by `editor.uploadImages()`.
- Added a new function to the `BlobCache` API to lookup a blob based on the base64 data and mime type.
- Added the ability to search and replace within a selection.
- Added the ability to set the list start position for ordered lists and added new `lists` context menu item.
- Added `icon` as an optional config option to the toggle menu item API.
- Added `auto` mode for `toolbar_location` which positions the toolbar and menu bar at the bottom if there is no space at the top.

### Changed

- Changed the default `toolbar_location` to `auto`.
- Changed toggle menu items and choice menu items to have a dedicated icon with the checkmark displayed on the far right side of the menu item.
- Changed the `link`, `image`, and `paste` plugins to use Promises to reduce the bundle size.
- Changed the default icons to be lazy loaded during initialization.
- Changed the parsing of content so base64 encoded urls are converted to blob urls.
- Changed context toolbars so they concatenate when more than one is suitable for the current selection.
- Changed inline style element formats (strong, b, em, i, u, strike) to convert to a span on format removal if a `style` or `class` attribute is present.

### Fixed

- Fixed the `selection.setContent()` API not running parser filters.
- Fixed formats incorrectly applied or removed when table cells were selected.
- Fixed the `quickimage` button not restricting the file types to images.
- Fixed search and replace ignoring text in nested contenteditable elements.
- Fixed resize handlers displaying in the wrong location sometimes for remote images.
- Fixed table picker breaking in Firefox on low zoom levels.
- Fixed issue with loading or pasting contents with large base64 encoded images on Safari.
- Fixed supplementary special characters being truncated when inserted into the editor. Patch contributed by mlitwin.
- Fixed toolbar buttons not set to disabled when the editor is in readonly mode.
- Fixed the editor selection incorrectly changing when removing caret format containers.
- Fixed bug where title, width, and height would be set to empty string values when updating an image and removing those attributes using the image dialog.
- Fixed `ObjectResized` event firing when an object wasn’t resized.
- Fixed `ObjectResized` and `ObjectResizeStart` events incorrectly fired when adding or removing table rows and columns.
- Fixed the placeholder not hiding when pasting content into the editor.
- Fixed an issue where the editor would fail to load if local storage was disabled.
- Fixed an issue where an uploaded image would reuse a cached image with a different mime type.
- Fixed bug where toolbars and dialogs would not show if the body element was replaced (e.g. with Turbolinks). Patch contributed by spohlenz.
- Fixed an issue where multiple formats would be removed when removing a single format at the end of lines or on empty lines.
- Fixed zero-width spaces incorrectly included in the `wordcount` plugin character count.
- Fixed a regression introduced in 5.2.0 whereby the desktop `toolbar_mode` setting would incorrectly override the mobile default setting.
- Fixed an issue where deleting all content in a single cell table would delete the entire table.

## 5.2.2 - 2020-04-23

### Fixed

- Fixed an issue where anchors could not be inserted on empty lines.
- Fixed text decorations (underline, strikethrough) not consistently inheriting the text color.
- Fixed `format` menu alignment buttons inconsistently applying to images.
- Fixed the floating toolbar drawer height collapsing when the editor is rendered in modal dialogs or floating containers.
- Fixed `media` embed content not processing safely in some cases.

## 5.2.1 - 2020-03-25

### Fixed

- Fixed the "is decorative" checkbox in the image dialog clearing after certain dialog events.
- Fixed possible uncaught exception when a `style` attribute is removed using a content filter on `setContent`.
- Fixed the table selection not functioning correctly in Microsoft Edge 44 or higher.
- Fixed the table resize handles not functioning correctly in Microsoft Edge 44 or higher.
- Fixed the floating toolbar drawer disconnecting from the toolbar when adding content in inline mode.
- Fixed `readonly` mode not returning the appropriate boolean value.
- Fixed the `forced_root_block_attrs` setting not applying attributes to new blocks consistently.
- Fixed the editor incorrectly stealing focus during initialization in Microsoft Internet Explorer.
- Fixed dialogs stealing focus when opening an alert or confirm dialog using an `onAction` callback.
- Fixed inline dialogs incorrectly closing when clicking on an opened alert or confirm dialog.
- Fixed the context toolbar overlapping the menu bar and toolbar.
- Fixed notification and inline dialog positioning issues when using `toolbar_location: 'bottom'`.
- Fixed the `colorinput` popup appearing offscreen on mobile devices.
- Fixed special characters not being found when searching by "whole words only".
- Fixed an issue where dragging images could cause them to be duplicated.
- Fixed context toolbars activating without the editor having focus.
- Fixed an issue where removing the background color of text did not always work.
- Fixed an issue where new rows and columns in a table did not retain the style of the previous row or column.

## 5.2.0 - 2020-02-13

### Added

- Added the ability to apply formats to spaces.
- Added new `toolbar_location` setting to allow for positioning the menu and toolbar at the bottom of the editor.
- Added new `toolbar_groups` setting to allow a custom floating toolbar group to be added to the toolbar when using `floating` toolbar mode.
- Added new `link_default_protocol` setting to `link` and `autolink` plugin to allow a protocol to be used by default.
- Added new `placeholder` setting to allow a placeholder to be shown when the editor is empty.
- Added new `tinymce.dom.TextSeeker` API to allow searching text across different DOM nodes.
- Added a drop shadow below the toolbar while in sticky mode and introduced Oxide variables to customize it when creating a custom skin.
- Added `quickbars_image_toolbar` setting to allow for the image quickbar to be turned off.
- Added iframe and img `loading` attribute to the default schema. Patch contributed by ataylor32.
- Added new `getNodeFilters` / `getAttributeFilters` functions to the `editor.serializer` instance.
- Added new `a11y_advanced_options` setting to allow additional accessibility options to be added.
- Added new accessibility options and behaviours to the image dialog using `a11y_advanced_options`.
- Added the ability to use the window `PrismJS` instance for the `codesample` plugin instead of the bundled version to allow for styling custom languages.
- Added error message events that fire when a resource loading error occurs.

### Changed

- Changed the default schema to disallow `onchange` for select elements.
- Changed default `toolbar_mode` value from false to `wrap`. The value false has been deprecated.
- Changed `toolbar_drawer` setting to `toolbar_mode`. `toolbar_drawer` has been deprecated.
- Changed iframe mode to set selection on content init if selection doesn’t exist.
- Changed table related icons to align them with the visual style of the other icons.
- Changed and improved the visual appearance of the color input field.
- Changed fake caret container to use `forced_root_block` when possible.
- Changed the `requireLangPack` API to wait until the plugin has been loaded before loading the language pack.
- Changed the formatter so `style_formats` are registered before the initial content is loaded into the editor.
- Changed media plugin to use https protocol for media urls by default.
- Changed the parser to treat CDATA nodes as bogus HTML comments to match the HTML parsing spec. A new `preserve_cdata` setting has been added to preserve CDATA nodes if required.

### Fixed

- Fixed incorrect parsing of malformed/bogus HTML comments.
- Fixed `quickbars` selection toolbar appearing on non-editable elements.
- Fixed bug with alignment toolbar buttons sometimes not changing state correctly.
- Fixed the `codesample` toolbar button not toggling when selecting code samples other than HTML.
- Fixed content incorrectly scrolling to the top or bottom when pressing enter if when the content was already in view.
- Fixed `scrollIntoView` potentially hiding elements behind the toolbar.
- Fixed editor not respecting the `resize_img_proportional` setting due to legacy code.
- Fixed flickering floating toolbar drawer in inline mode.
- Fixed an issue where the template plugin dialog would be indefinitely blocked on a failed template load.
- Fixed the `mscontrolselect` event not being unbound on IE/Edge.
- Fixed Confirm dialog footer buttons so only the "Yes" button is highlighted.
- Fixed `file_picker_callback` functionality for Image, Link and Media plugins.
- Fixed issue where floating toolbar drawer sometimes would break if the editor is resized while the drawer is open.
- Fixed incorrect `external_plugins` loading error message.
- Fixed resize handler was not hidden for ARIA purposes. Patch contributed by Parent5446.
- Fixed an issue where content could be lost if a misspelled word was selected and spellchecking was disabled.
- Fixed validation errors in the CSS where certain properties had the wrong default value.
- Fixed an issue where forced root block attributes were not applied when removing a list.
- Fixed an issue where the element path isn’t being cleared when there are no parents.
- Fixed an issue where width and height in svg icons containing `rect` elements were overridden by the CSS reset.
- Fixed an issue where uploading images with `images_reuse_filename` enabled and that included a query parameter would generate an invalid URL.
- Fixed the `closeButton` property not working when opening notifications.
- Fixed keyboard flicker when opening a context menu on mobile.
- Fixed issue where plus icon svg contained strokes.

## 5.1.6 - 2020-01-28

### Fixed

- Fixed `readonly` mode not blocking all clicked links.
- Fixed legacy font sizes being calculated inconsistently for the `FontSize` query command value.
- Fixed changing a tables row from `Header` to `Body` incorrectly moving the row to the bottom of the table.
- Fixed the context menu not showing in certain cases with hybrid devices.
- Fixed the context menu opening in the wrong location when the target is the editor body.
- Fixed the `image` plugin not respecting the `automatic_uploads` setting when uploading local images.
- Fixed security issue related to parsing HTML comments and CDATA.

## 5.1.5 - 2019-12-19

### Fixed

- Fixed the UI not working with hybrid devices that accept both touch and mouse events.
- Fixed the `charmap` dialog initially focusing the first tab of the dialog instead of the search input field.
- Fixed an exception being raised when inserting content if the caret was directly before or after a `contenteditable="false"` element.
- Fixed a bug with pasting image URLs when paste as text is enabled.

## 5.1.4 - 2019-12-11

### Fixed

- Fixed dialog contents disappearing when clicking a checkbox for right-to-left languages.
- Fixed the `legacyoutput` plugin registering legacy formats after editor initialization, causing legacy content to be stripped on the initial load.
- Fixed search and replace not cycling through results when searching using special characters.
- Fixed the `visualchars` plugin converting HTML-like text to DOM elements in certain cases.
- Fixed an issue with the `paste` plugin not sanitizing content in some cases.
- Fixed HTML comments incorrectly being parsed in certain cases.

## 5.1.3 - 2019-12-04

### Fixed

- Fixed sticky toolbar not undocking when fullscreen mode is activated.
- Fixed the "Current Window" target not applying when updating links using the link dialog.
- Fixed disabled menu items not highlighting when focused.
- Fixed touch events passing through dialog collection items to the content underneath on Android devices.
- Fixed keyboard navigation of the Help dialog’s Keyboard Navigation tab.
- Fixed search and replace dialog disappearing when finding offscreen matches on iOS devices.
- Fixed performance issues where sticky toolbar was jumping while scrolling on slower browsers.

## 5.1.2 - 2019-11-19

### Fixed

- Fixed desktop touch devices using `mobile` configuration overrides.
- Fixed unable to disable the new scrolling toolbar feature.
- Fixed touch events passing through any pop-up items to the content underneath on Android devices.
- Fixed the table selector handles throwing JavaScript exceptions for non-table selections.
- Fixed `cut` operations not removing selected content on Android devices when the `paste` plugin is enabled.
- Fixed inline toolbar not constrained to the window width by default.
- Fixed context toolbar split button chevrons pointing right when they should be pointing down.
- Fixed unable to access the dialog footer in tabbed dialogs on small screens.
- Fixed mobile table selectors were hard to select with touch by increasing the size.
- Fixed mobile table selectors moving when moving outside the editor.
- Fixed inline toolbars collapsing when using sliding toolbars.
- Fixed block textpatterns not treating NBSPs as spaces.
- Fixed backspace not merging blocks when the last element in the preceding block was a `contenteditable="false"` element.
- Fixed toolbar buttons that only contain text labels overlapping on mobile devices.
- Fixed quickbars quickimage picker not working on mobile.
- Fixed fullscreen not resizing in an iOS WKWebView component.

## 5.1.1 - 2019-10-28

### Fixed

- Fixed font formats containing spaces being wrapped in `&quot;` entities instead of single quotes.
- Fixed alert and confirm dialogs losing focus when clicked.
- Fixed clicking outside a modal dialog focusing on the document body.
- Fixed the context toolbar not hiding when scrolled out of view.

## 5.1.0 - 2019-10-17

### Added

- Added touch selector handles for table selections on touch devices.
- Added border width field to Table Cell dialog.
- Added touch event listener to media plugin to make embeds playable.
- Added oxide styling options to notifications and tweaked the default variables.
- Added additional padding to split button chevrons on touch devices, to make them easier to interact with.
- Added new platform detection functions to `Env` and deprecated older detection properties.
- Added `inputMode` config field to specify inputmode attribute of `input` dialog components.
- Added new `inputMode` property to relevant plugins/dialogs.
- Added new `toolbar_sticky` setting to allow the iframe menubar/toolbar to stick to the top of the window when scrolling.

### Changed

- Changed default setting for `toolbar_drawer` to `floating`.
- Changed mobile phones to use the `silver` theme by default.
- Changed some editor settings to default to `false` on touch devices:

  - `menubar` (phones only).
  - `table_grid`.
  - `resize`.
  - `object_resizing`.
- Changed toolbars and context toolbars to sidescroll on mobile.
- Changed context menus to render as horizontal menus on touch devices.
- Changed the editor to use the `VisualViewport` API of the browser where possible.
- Changed visualblocks toolbar button icon and renamed `paragraph` icon to `visualchars`.
- Changed Oxide default for `@toolbar-button-chevron-color` to follow toolbar button icon color.
- Changed the `urlinput` dialog component to use the `url` type attribute.

### Fixed

- Fixed Safari desktop visual viewport fires resize on fullscreen breaking the restore function.
- Fixed scroll issues on mobile devices.
- Fixed context toolbar unable to refresh position on iOS12.
- Fixed ctrl+left click not opening links on readonly mode and the preview dialog.
- Fixed Slider UI component not firing `onChange` event on touch devices.
- Fixed notifications overlapping instead of stacking.
- Fixed inline dialogs positioning incorrectly when the page is scrolled.
- Fixed inline dialogs and menus not repositioning when resizing.
- Fixed inline toolbar incorrectly stretching to the full width when a width value was provided.
- Fixed menu chevrons color to follow the menu text color.
- Fixed table menu selection grid from staying black when using dark skins, now follows border color.
- Fixed Oxide using the wrong text color variable for menubar button focused state.
- Fixed the autoresize plugin not keeping the selection in view when resizing.
- Fixed textpattern plugin throwing exceptions when using `forced_root_block: false`.
- Fixed missing CSS fill styles for toolbar button icon active state.
- Fixed an issue where the editor selection could end up inside a short ended element (such as `br`).
- Fixed browser selection being lost in inline mode when opening split dropdowns.
- Fixed backspace throwing an exception when using `forced_root_block: false`.
- Fixed floating toolbar drawer expanding outside the bounds of the editor.
- Fixed the autocompleter not activating immediately after a `br` or `contenteditable=false` element.
- Fixed an issue where the autocompleter would incorrectly close on IE 11 in certain edge cases.

## 5.0.16 - 2019-09-24

### Added

- Added new `referrer_policy` setting to add the `referrerpolicy` attribute when loading scripts or stylesheets.
- Added a slight background color to dialog tab links when focused to aid keyboard navigation.

### Fixed

- Fixed media poster value not updating on change.
- Fixed openlink was not registered as a toolbar button.
- Fixed failing to initialize if a script tag was used inside a SVG.
- Fixed double top border showing on toolbar without menubar when toolbar_drawer is enabled.
- Fixed unable to drag inline dialogs to the bottom of the screen when scrolled.
- Fixed notifications appearing on top of the toolbar when scrolled in inline mode.
- Fixed notifications displaying incorrectly on IE 11.

## 5.0.15 - 2019-09-02

### Added

- Added a dark `content_css` skin to go with the dark UI skin.

### Changed

- Changed the enabled state on toolbar buttons so they don’t get the hover effect.

### Fixed

- Fixed missing CSS active state on toolbar buttons.
- Fixed `onChange` callback not firing for the colorinput dialog component.
- Fixed context toolbars not showing in fullscreen mode.

## 5.0.14 - 2019-08-19

### Added

- Added an API to reload the autocompleter menu with additional fetch metadata #MENTIONS-17

### Fixed

- Fixed missing toolbar button border styling options.
- Fixed image upload progress notification closing before the upload is complete.
- Fixed inline dialogs not closing on escape when no dialog component is in focus.
- Fixed plugins not being filtered when defaulting to mobile on phones.
- Fixed toolbar more drawer showing the content behind it when transitioning between opened and closed states.
- Fixed focus not returning to the dialog after pressing the "Replace all" button in the search and replace dialog.

### Removed

- Removed Oxide variable `@menubar-select-disabled-border-color` and replaced it with `@menubar-select-disabled-border`.

## 5.0.13 - 2019-08-06

### Changed

- Changed modal dialogs to prevent dragging by default and added new `draggable_modal` setting to restore dragging.
- Changed the nonbreaking plugin to insert nbsp characters wrapped in spans to aid in filtering. This can be disabled using the `nonbreaking_wrap` setting.
- Changed backspace behaviour in lists to outdent nested list items when the cursor is at the start of the list item.

### Fixed

- Fixed sidebar growing beyond editor bounds in IE 11.
- Fixed issue with being unable to keyboard navigate disabled toolbar buttons.
- Fixed issues with backspace and delete in nested contenteditable true and false elements.
- Fixed issue with losing keyboard navigation in dialogs due to disabled buttons.
- Fixed `MouseEvent.mozPressure is deprecated` warning in Firefox.
- Fixed `default_link_target` not being respected when `target_list` is disabled.
- Fixed mobile plugin filter to only apply to the mobile theme, rather than all mobile platforms.
- Fixed focus switching to another editor during mode changes.
- Fixed an exception being thrown when clicking on an uninitialized inline editor.
- Fixed unable to keyboard navigate to dialog menu buttons.
- Fixed dialogs being able to be dragged outside the window viewport.
- Fixed inline dialogs appearing above modal dialogs.

## 5.0.12 - 2019-07-18

### Added

- Added ability to utilize UI dialog panels inside other panels.
- Added help dialog tab explaining keyboard navigation of the editor.

### Changed

- Changed the "Find and Replace" design to an inline dialog.

### Fixed

- Fixed issue where autolink spacebar event was not being fired on Edge.
- Fixed table selection missing the background color.
- Fixed removing shortcuts not working for function keys.
- Fixed non-descriptive UI component type names.
- Fixed UI registry components rendering as the wrong type when manually specifying a different type.
- Fixed an issue where dialog checkbox, input, selectbox, textarea and urlinput components couldn’t be disabled.
- Fixed the context toolbar not using viable screen space in inline/distraction free mode.
- Fixed the context toolbar overlapping the toolbar in various conditions.
- Fixed IE11 edge case where items were being inserted into the wrong location.

## 5.0.11 - 2019-07-04

### Fixed

- Fixed packaging errors caused by a rollup treeshaking bug (https://github.com/rollup/rollup/issues/2970).
- Fixed the customeditor component not able to get data from the dialog api.
- Fixed collection component tooltips not being translated.

## 5.0.10 - 2019-07-02

### Added

- Added support for all HTML color formats in `color_map` setting.

### Changed

- Changed backspace key handling to outdent content in appropriate circumstances.
- Changed default palette for forecolor and backcolor to include some lighter colors suitable for highlights.
- Changed the search and replace plugin to cycle through results.

### Fixed

- Fixed inconsistent types causing some properties to be unable to be used in dialog components.
- Fixed an issue in the Oxide skin where dialog content like outlines and shadows were clipped because of overflow hidden.
- Fixed the search and replace plugin not resetting state when changing the search query.
- Fixed backspace in lists not creating an undo level.
- Fixed the editor to cancel loading in quirks mode where the UI is not supported.
- Fixed applying fonts not working when the name contained spaces and numbers.
- Fixed so that initial content is retained when initializing on list items.
- Fixed inefficient font name and font size current value lookup during rendering.
- Fixed mobile font copied into the wrong folder for the oxide-dark skin.
- Fixed an issue where resizing the width of tables would produce inaccurate results.
- Fixed a memory leak in the Silver theme.
- Fixed alert and confirm dialogs using incorrect markup causing inconsistent padding.
- Fixed an issue in the Table plugin with `table_responsive_width` not enforcing units when resizing.
- Fixed leading, trailing and sequential spaces being lost when pasting plain text.
- Fixed exception being thrown when creating relative URIs.
- Fixed focus is no longer set to the editor content during mode changes unless the editor already had focus.

## 5.0.9 - 2019-06-26

### Fixed

- Fixed print plugin not working in Firefox.

## 5.0.8 - 2019-06-18

### Added

- Added back support for multiple toolbars.
- Added support for .m4a files to the media plugin.
- Added new base_url and suffix editor init options.

### Fixed

- Fixed incorrect padding for select boxes with visible values.
- Fixed selection incorrectly changing when programmatically setting selection on contenteditable false elements.
- Fixed sidebar background being transparent.
- Fixed the build to remove duplicate iife wrappers.
- Fixed bogus autocompleter span appearing in content when the autocompleter menu is shown.
- Fixed toolbar font size select not working with legacyoutput plugin.
- Fixed the legacyoutput plugin incorrectly aligning images.
- Fixed remove color not working when using the legacyoutput plugin.
- Fixed the font size menu applying incorrect sizes when using the legacyoutput plugin.
- Fixed scrollIntoView not working when the parent window was out of view.
- Fixed the print plugin printing from the wrong window in IE11.
- Fixed content CSS loaded over CORS not loading in the preview plugin with content_css_cors enabled.
- Fixed the link plugin missing the default "None" option for link list.
- Fixed small dot visible with menubar and toolbar disabled in inline mode.
- Fixed space key properly inserts a nbsp before/after block elements.
- Fixed native context menu not showing with images in IE11.
- Fixed inconsistent browser context menu image selection.

## 5.0.7 - 2019-06-05

### Added

- Added new toolbar button and menu item for inserting tables via dialog.
- Added new API for adding/removing/changing tabs in the Help dialog.
- Added highlighting of matched text in autocompleter items.
- Added the ability for autocompleters to work with matches that include spaces.
- Added new `imagetools_fetch_image` callback to allow custom implementations for cors loading of images.
- Added `'http'` and `https` options to `link_assume_external_targets` to prepend `http://` or `https://` prefixes when URL does not contain a protocol prefix. Patch contributed by francoisfreitag.

### Changed

- Changed annotations navigation to work the same as inline boundaries.
- Changed tabpanel API by adding a `name` field and changing relevant methods to use it.

### Fixed

- Fixed text color not updating all color buttons when choosing a color.
- Fixed the autocompleter not working with fragmented text.
- Fixed the autosave plugin no longer overwrites window.onbeforeunload.
- Fixed infinite loop in the paste plugin when IE11 takes a long time to process paste events. Patch contributed by lRawd.
- Fixed image handle locations when using `fixed_toolbar_container`. Patch contributed by t00.
- Fixed the autoresize plugin not firing `ResizeEditor` events.
- Fixed editor in fullscreen mode not extending to the bottom of the screen.
- Fixed list removal when pressing backspace after the start of the list item.
- Fixed autocomplete not triggering from compositionend events.
- Fixed `file_picker_callback` could not set the caption field on the insert image dialog.
- Fixed the autocompleter menu showing up after a selection had been made.
- Fixed an exception being thrown when a file or number input has focus during initialization. Patch contributed by t00.

## 5.0.6 - 2019-05-22

### Added

- Added `icons_url` editor settings to enable icon packs to be loaded from a custom url.
- Added `image_uploadtab` editor setting to control the visibility of the upload tab in the image dialog.
- Added new api endpoints to the wordcount plugin and improved character count logic.

### Changed

- Changed plugin, language and icon loading errors to log in the console instead of a notification.

### Fixed

- Fixed the textpattern plugin not working with fragmented text.
- Fixed various toolbar drawer accessibility issues and added an animation.
- Fixed issues with selection and ui components when toggling readonly mode.
- Fixed so readonly mode works with inline editors.
- Fixed docked inline toolbar positioning when scrolled.
- Fixed initial value not being set on bespoke select in quickbars and toolbar drawer.
- Fixed so that nbsp entities aren’t trimmed in white-space: pre-line elements.
- Fixed `mceInsertLink` command inserting spaces instead of url encoded characters.
- Fixed text content floating on top of dialogs in IE11.

## 5.0.5 - 2019-05-09

### Added

- Added menu items to match the forecolor/backcolor toolbar buttons.
- Added default directionality based on the configured language.
- Added styles, icons and tests for rtl mode.

### Fixed

- Fixed autoresize not working with floating elements or when media elements finished loading.
- Fixed incorrect vertical caret positioning in IE 11.
- Fixed submenu anchoring hiding overflowed content.

### Removed

- Removed unused and hidden validation icons to avoid displaying phantom tooltips.

## 5.0.4 - 2019-04-23

### Added

- Added back URL dialog functionality, which is now available via `editor.windowManager.openUrl()`.
- Added the missing throbber functionality when calling `editor.setProgressState(true)`.
- Added function to reset the editor content and undo/dirty state via `editor.resetContent()`.
- Added the ability to set menu buttons as active.
- Added `editor.mode` API, featuring a custom editor mode API.
- Added better styling to floating toolbar drawer.
- Added the new premium plugins to the Help dialog plugins tab.
- Added the linkchecker context menu items to the default configuration.

### Fixed

- Fixed image context menu items showing on placeholder images.
- Fixed dialog labels and text color contrast within notifications/alert banners to satisfy WCAG 4.5:1 contrast ratio for accessibility.
- Fixed selectbox and colorpicker items not being translated.
- Fixed toolbar drawer sliding mode to correctly focus the editor when tabbing via keyboard navigation.
- Fixed positioning of the styleselect menu in iOS while using the mobile theme.
- Fixed the menubutton `onSetup` callback to be correctly executed when rendering the menu buttons.
- Fixed `default_link_target` setting to be correctly utilized when creating a link.
- Fixed colorpicker floating marginally outside its container.
- Fixed disabled menu items displaying as active when hovered.

### Removed

- Removed redundant mobile wrapper.

## 5.0.3 - 2019-03-19

### Changed

- Changed empty nested-menu items within the style formats menu to be disabled or hidden if the value of `style_formats_autohide` is `true`.
- Changed the entire phrase 'Powered by Tiny' in the status bar to be a link instead of just the word 'Tiny'.
- Changed `formatselect`, `styleselect` and `align` menus to use the `mceToggleFormat` command internally.

### Fixed

- Fixed toolbar keyboard navigation to work as expected when `toolbar_drawer` is configured.
- Fixed text direction buttons to display the correct pressed state in selections that have no explicit `dir` property.
- Fixed the mobile editor to clean up properly when removed.
- Fixed quickbar toolbars to add an empty box to the screen when it is set to `false`.
- Fixed an issue where pressing the **Delete/Backspace** key at the edge of tables was creating incorrect selections.
- Fixed an issue where dialog collection items (emoticon and special character dialogs) couldn’t be selected with touch devices.
- Fixed a type error introduced in TinyMCE version 5.0.2 when calling `editor.getContent()` with nested bookmarks.
- Fixed an issue that prevented default icons from being overridden.
- Fixed an issue where **Home/End** keys wouldn’t move the caret correctly before or after `contenteditable=false` inline elements.
- Fixed styles to be preserved in IE 11 when editing via the `fullpage` plugin.
- Fixed the `link` plugin context toolbar missing the open link button.
- Fixed inconsistent dialog component spacing.

## 5.0.2 - 2019-03-05

### Added

- Added presentation and document presets to `htmlpanel` dialog component.
- Added missing fixed_toolbar_container setting has been reimplemented in the Silver theme.
- Added a new toolbar setting `toolbar_drawer` that moves toolbar groups which overflow the editor width into either a `sliding` or `floating` toolbar section.

### Changed

- Updated the build process to include package lock files in the dev distribution archive.

### Fixed

- Fixed inline dialogs did not have aria attributes.
- Fixed default icons are now available in the UI registry, allowing use outside of toolbar buttons.
- Fixed a memory leak related to select toolbar items.
- Fixed a memory leak due to format changed listeners that were never unbound.
- Fixed an issue where content may have been lost when using permanent bookmarks.
- Fixed the quicklink toolbar button not rendering in the quickbars plugin.
- Fixed an issue where menus were generating invalid HTML in some cases.
- Fixed an issue that could cause the mobile theme to show a blank white screen when the editor was inside an `overflow:hidden` element.
- Fixed mobile theme using a transparent background and not taking up the full width on iOS.
- Fixed the template plugin dialog missing the description field.
- Fixed input dialog components using an invalid default type attribute.
- Fixed an issue where backspace/delete keys after/before pagebreak elements wouldn’t move the caret.
- Fixed an issue in the table plugin where menu items and toolbar buttons weren’t showing correctly based on the selection.
- Fixed inconsistent button focus styles in Firefox.
- Fixed the resize icon floating left when all status bar elements were disabled.
- Fixed the resize handle to not show in fullscreen mode.

## 5.0.1 - 2019-02-21

### Added

- Added H1-H6 toggle button registration to the silver theme.
- Added code sample toolbar button will now toggle on when the cursor is in a code section.
- Added new settings to the emoticons plugin to allow additional emoticons to be added.

### Fixed

- Fixed an issue where adding links to images would replace the image with text.
- Fixed an issue where the inline editor could use fractional pixels for positioning.
- Fixed an issue where uploading non-image files in the Image Plugin upload tab threw an error.
- Fixed an issue in the media plugin that was causing the source url and height/width to be lost in certain circumstances.
- Fixed an issue with the Context Toolbar not being removed when clicking outside of the editor.
- Fixed an issue where clicking 'Remove link' wouldn’t remove the link in certain circumstances.
- Fixed an issue where the media plugin would fail when parsing dialog data.
- Fixed an issue where retrieving the selected content as text didn’t create newlines.
- Fixed incorrect keyboard shortcuts in the Help dialog for Windows.
- Fixed an issue where JSON serialization could produce invalid JSON.
- Fixed production CSS including references to source maps.
- Fixed development CSS was not included in the development zip.
- Fixed the autocompleter matches predicate not matching on the start of words by default.
- Fixed an issue where the page could be scrolled with modal dialogs open.
- Fixed an issue where autocomplete menus would show an icon margin when no items had icons.
- Fixed an issue in the quickbars plugin where images incorrectly showed the text selection toolbar.
- Fixed an issue that caused the inline editor to fail to render when the target element already had focus.

### Removed

- Removed paste as text notification banner and paste_plaintext_inform setting.

## 5.0.0 - 2019-02-04

Full documentation for the version 5 features and changes is available at https://www.tiny.cloud/docs/release-notes/

### Added

- Added links and registered names with * to denote premium plugins in Plugins tab of Help dialog.

### Changed

- Changed Tiny 5 mobile skin to look more uniform with desktop.
- Blacklisted table, th and td as inline editor target.

### Fixed

- Fixed an issue where tab panel heights weren’t sizing properly on smaller screens and weren’t updating on resize.
- Fixed image tools not having any padding between the label and slider.
- Fixed context toolbar toggle buttons not showing the correct state.
- Fixed missing separators in the spellchecker context menu between the suggestions and actions.
- Fixed notification icon positioning in alert banners.
- Fixed a typo in the word count plugin name.
- Fixed charmap and emoticons dialogs not having a primary button.
- Fixed an issue where resizing wouldn’t work correctly depending on the box-sizing model.

## 5.0.0-rc-2 - 2019-01-22

### Added

- Added screen reader accessibility for sidebar and statusbar.

### Changed

- Changed formatting menus so they are registered and made the align toolbar button use an icon instead of text.
- Changed checkboxes to use a boolean for its state, instead of a string.
- Updated the textpattern plugin to properly support nested patterns and to allow running a command with a value for a pattern with a start and an end.
- Updated Emoticons and Charmap dialogs to be screen reader accessible.

### Fixed

- Fixed the link dialog such that it will now retain class attributes when updating links.
- Fixed "Find and replace" not showing in the "Edit" menu by default.
- Fixed dropdown buttons missing the 'type' attribute, which could cause forms to be incorrectly submitted.
- Fixed emoticon and charmap search not returning expected results in certain cases.
- Fixed blank rel_list values throwing an exception in the link plugin.

### Removed

- Removed unnecessary 'flex' and unused 'colspan' properties from the new dialog APIs.

## 5.0.0-rc-1 - 2019-01-08

### Added

- Added editor settings functionality to specify title attributes for toolbar groups.
- Added icons instead of button text to improve Search and Replace dialog footer appearance.
- Added `tox-dialog__table` instead of `mce-table-striped` class to enhance Help dialog appearance.
- Added title attribute to iframes so, screen readers can announce iframe labels.
- Added a wordcount menu item, that defaults to appearing in the tools menu.

### Changed

- Updated the font select dropdown logic to try to detect the system font stack and show "System Font" as the font name.
- Updated the autocompleter to only show when it has matched items.
- Updated SizeInput labels to "Height" and "Width" instead of Dimensions.
- Updated the build process to minify and generate ASCII only output for the emoticons database.

### Fixed

- Fixed readonly mode not fully disabling editing content.
- Fixed accessibility issues with the font select, font size, style select and format select toolbar dropdowns.
- Fixed accessibility issues with split dropdowns.
- Fixed the legacyoutput plugin to be compatible with TinyMCE 5.0.
- Fixed icons not showing correctly in the autocompleter popup.
- Fixed an issue where preview wouldn’t show anything in Edge under certain circumstances.
- Fixed the height being incorrectly calculated for the autoresize plugin.

## 5.0.0-beta-1 - 2018-11-30

### Added

- Added a new `addNestedMenuItem()` UI registry function and changed all nested menu items to use the new registry functions.
- Added title attribute to color swatch colors.
- Added anchorbar component to anchor inline toolbar dialogs to instead of the toolbar.
- Added support for toolbar and toolbar array config options to be squashed into a single toolbar and not create multiple toolbars.
- Added error handling for when forced_root_block config option is set to true.
- Added functionality for the removed_menuitems config option.
- Added the ability to use a string to reference menu items in menu buttons and submenu items.

### Changed

- Changed the name of the "inlite" plugin to "quickbars".
- Changed the background color icon to highlight background icon.
- Changed Help dialog to be accessible to screen readers.
- Changed the color swatch to save selected custom colors to local storage for use across sessions.
- Changed `WindowManager` API - methods `getParams`, `setParams` and `getWindows`, and the legacy `windows` property, have been removed. `alert` and `confirm` dialogs are no longer tracked in the window list.

### Fixed

- Fixed an inline mode issue where the save plugin upon saving can cause content loss.
- Fixed an issue in IE 11 where calling selection.getContent() would return an empty string when the editor didn’t have focus.

### Removed

- Removed compat3x plugin.

## 5.0.0-preview-4 - 2018-11-12

### Added

- Added width and height placeholder text to image and media dialog dimensions input.
- Added the ability to keyboard navigate through menus, toolbars, sidebar and the status bar sequentially.
- Added translation capability back to the editor’s UI.
- Added `label` component type for dialogs to group components under a label

### Changed

- Changed the editor resize handle so that it should be disabled when the autoresize plugin is turned on.
- Changed UI text for microcopy improvements.

### Fixed

- Fixed distraction free plugin.
- Fixed contents of the input field being selected on focus instead of just recieving an outline highlight.
- Fixed styling issues with dialogs and menus in IE 11.
- Fixed custom style format control not honoring custom formats.
- Fixed context menu not appearing when clicking an image with a caption.
- Fixed directionality of UI when using an RTL language.
- Fixed page responsiveness with multiple inline editors.
- Fixed empty toolbar groups appearing through invalid configuration of the `toolbar` property.
- Fixed text not being retained when updating links through the link dialog.
- Fixed edit image context menu, context toolbar and toolbar items being incorrectly enabled when selecting invalid images.
- Fixed emoji type ahead being shown when typing URLs.
- Fixed toolbar configuration properties incorrectly expecting string arrays instead of strings.
- Fixed the block formatting toolbar item not showing a "Formatting" title when there is no selection.
- Fixed clicking disabled toolbar buttons hiding the toolbar in inline mode.
- Fixed `EditorResize` event not being fired upon editor resize.
- Fixed tables losing styles when updating through the dialog.
- Fixed context toolbar positioning to be more consistent near the edges of the editor.
- Fixed table of contents plugin now works with v5 toolbar APIs correctly.
- Fixed the `link_context_toolbar` configuration not disabling the context toolbar.
- Fixed the link context toolbar showing incorrect relative links.
- Fixed the alignment of the icon in alert banner dialog components.
- Fixed the visual blocks and visual char menu options not displaying their toggled state.
- Fixed the editor not displaying as fullscreen when toggled.

### Removed

- Removed the tox-custom-editor class that was added to the wrapping element of codemirror.

## 5.0.0-preview-3 - 2018-10-18

### Changed

- Changed editor layout to use modern CSS properties over manually calculating dimensions.
- Changed `autoresize_min_height` and `autoresize_max_height` configurations to `min_height` and `max_height`.
- Changed `Whole word` label in Search and Replace dialog to `Find whole words only`.

### Fixed

- Fixed bugs with editor width jumping when resizing and the iframe not resizing to smaller than 150px in height.
- Fixed mobile theme bug that prevented the editor from loading.
- Fixed long toolbar groups extending outside of the editor instead of wrapping
- Fixed dialog titles so they are now proper case.
- Fixed color picker default to be #000000 instead of #ff00ff.
- Fixed "match case" option on the Find and Replace dialog is no longer selected by default.
- Fixed vertical alignment of toolbar icons.
- Fixed toolbar icons not appearing on IE11.

## 5.0.0-preview-2 - 2018-10-10

### Added

- Added swatch is now shown for colorinput fields, instead of the colorpicker directly.
- Added fontformats and fontsizes menu items.

### Changed

- Changed configuration of color options has been simplified to `color_map`, `color_cols`, and `custom_colors`.
- Changed `height` configuration to apply to the editor frame (including menubar, toolbar, status bar) instead of the content area.

### Fixed

- Fixed styleselect not updating the displayed item as the cursor moved.
- Fixed preview iframe not expanding to the dialog size.
- Fixed 'meta' shortcuts not translated into platform-specific text.
- Fixed tabbed dialogs (Charmap and Emoticons) shrinking when no search results returned
- Fixed a bug where alert banner icons were not retrieved from icon pack.
- Fixed component styles to flex so they fill large dialogs.
- Fixed editor flashing unstyled during load (still in progress).

### Removed

- Removed `colorpicker` plugin, it is now in the theme.
- Removed `textcolor` plugin, it is now in the theme.

## 5.0.0-preview-1 - 2018-10-01

Developer preview 1
