UNPKG

tinymce

Version:

Web based JavaScript HTML WYSIWYG editor control.

656 lines (544 loc) 285 kB
# Changelog All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html), and is generated by [Changie](https://github.com/miniscruff/changie). ## 7.9.0 - 2025-05-15 ### Added - Added new `disc` style option for unordered lists. #TINY-12015 ### Improved - The resize cursor now points in the correct direction for each resize mode. Patch contributed by daniloff200. ##GH-10189 - If `style_formats` is empty, the button is now disabled. #TINY-12005 - Inline dialog dropdowns reposition when the dialog is dragged or the window is scrolled. #TINY-11368 - Bullet list icons were have been updated to better represent the default styles. #TINY-12014 ### Changed - The ContextFormSizeInput lock button is now centered instead of aligned to the end. #TINY-11916 - Changed the default value of `advlist_bullet_styles` option to `default,disc,circle,square`. #TINY-12083 ### Fixed - Autolink no longer overrides already existing links when autolinking. #TINY-11836 - Removed the deprecated CSS media selector `-ms-high-contrast`. #TINY-11876 - The `mceInsertContent` command no longer deletes the parent block element when an anchor is selected. #TINY-11953 - Table resizers are now visible when inline editor has a z-index property. #TINY-11981 - Tabbing inside a `figcaption` element no longer displays two text insertion carets. #TINY-11997 - Pressing Enter before a floating image no longer duplicates the image. #TINY-11676 - Editor did not scroll into viewport on receiving focus on Chrome and Safari. #TINY-12017 - Select UI elements was not properly styled on Chrome version 136. #TINY-12131 ## 7.8.0 - 2025-04-09 ### Added - New subtoolbar support for context toolbars. #TINY-11748 - New `extended_mathml_attributes` and `extended_mathml_elements` options. #TINY-11756 - New `onboarding` option. #TINY-11931 ### Improved - Focus outline was misaligned with comment card border on saving an edit. #TINY-11329 - The `editor.selection.scrollIntoView()` method now pads the target scroll area with a small margin, ensuring content doesn't sit at the very edge of the viewport. #TINY-11786 ### Changed - Changed promotional text and link. #TINY-11905 ### Fixed - Setting editor height to a `pt` or `em` value was ignoring min/max height settings. #TINY-11108 ## 7.7.2 - 2025-03-19 ### Fixed - Error was thrown when pressing tab in the last cell of a non-editable table. #TINY-11797 - Error was thrown when trying to use the context form API after a component was detached. #TINY-11781 - Deleting an empty block within an <li> element would move cursor to the end of the <li>. #TINY-11763 - Deleting an empty block that was between two lists would throw an Error when all three elements were nested inside a list. #TINY-11763 ## 7.7.1 - 2025-03-05 ### Fixed - Skin UI content CSS was truncated when bundling, causing CSS styles to be missing. #TINY-11875 - Context forms used to disappear if their input was disabled in the `onSetup` API. #TINY-11890 ## 7.7.0 - 2025-02-20 ### Added - `link_attributes_postprocess` option that allows overriding attributes of a link that would be inserted through the link dialog. #TINY-11707 ### Improved - Improved visual indication of keyboard focus in annotations that contain an image. #TINY-11596 - The type now defaults to `info` when `editor.notificationManager.open()` is used without a specified type or with an invalid one. #TINY-11661 ### Changed - Updated the `link` plugin behavior to move the cursor outside of the link when inserted or edited via the UI. Patch contributed by Philipp91. #GH-9998 ### Fixed - Keyboard navigation for size inputs in context forms. #TINY-11394 - Keyboard navigation for context form sliders. #TINY-11482 - The `insertContent` API was not replacing selected non-editable elements correctly. #TINY-11714 - Context toolbar inputs had incorrect margins. #TINY-11624 - Iframe aria text no longer suggests opening the help dialog when the help plugin is not enabled. #TINY-11672 - Preview dialog no longer opens anchor links in a new tab. #TINY-11740 - The `float` property was not properly removed on the image when converting a image into a captioned image. #TINY-11670 - Expanding selection to word didn't work inside inline editing host elements. #TINY-11304 - The `semantics` element in MathML was not properly retained when `annotation` elements were allowed. #TINY-11755 - It was possible to tab to a toolbar group that had all children disabled. #TINY-11665 - Keyboard navigation would get stuck on the 'more' toolbar button. #TINY-11762 - Toolbar groups had both a `title` attribute and a custom tooltip, causing overlapping tooltips #TINY-11768 - Toolbar text field did not render focus correctly. #TINY-11658 ## 7.6.1 - 2025-01-22 ### Fixed - Text input was prevented in form elements in the contents of the editor. #TINY-11446 - Opening a notification when the toolbar is positioned at the bottom of the editor threw an error. #TINY-11498 - Table resize bars were not properly aligned for inline editors inside scrollable containers. #TINY-11215 ## 7.6.0 - 2024-12-11 ### Added - It is now possible to create labeled groups in context toolbars. #TINY-11095 - New `contextsliderform` and `contextsizeinput` context form types. #TINY-11342 - New `back` function in `ContextFormApi` to go back to the previous toolbar. #TINY-11344 - New `QuickbarInsertImage` command that is executed by the `quickimage` button. #TINY-11399 - New `onSetup` function to the context form API. #TINY-11494 - New `placeholder` to the context form input field API. #TINY-11459 - New `disabled` option to restore the previous `readonly` mode behavior, allowing the editor to be displayed in a disabled state. #TINY-11488 ### Improved - Base64 data was not properly decoded due to unhandled URL-encoded characters. #TINY-9548 - The `latin` list style type is now recognized as an alias for the `alpha` list style type. #TINY-11515 ### Fixed - Image selection was removed when calling `editor.nodeChanged()` while having focus inside the editor UI. #TINY-11437 - Tooltip would not show for group toolbar button. #TINY-11391 - Changing the table row type when a `contenteditable=false` cell was selected would not work as expected. #TINY-11383 - The `samp` format was being applied as a `block` level format, instead of an `inline` format. #TINY-11390 - Removed title attribute from dialog tree elements as they already have a tooltip. #TINY-11470 - Fixed CSS bundling for skin UI content CSS. #TINY-11558 - Fixed incorrect resource keys for CSS bundling JS files. #TINY-11558 ## 7.5.0 - 2024-11-06 ### Added - Added support for using raw CSS in the list of possible colours, using the `color_map_raw` property. #GH-9788 ### Improved - Improved color picker aria support. #TINY-11291 ### Fixed - Autocompleter would not activate after applying an inline format like font size in some cases. #TINY-11273 - The `toolbar-sticky-offset` would still be applied after entering fullscreen mode. #TINY-11137 - Text and background color toolbar buttons would not be fully greyed out in readonly mode. #TINY-11313 - Closing a nested modal dialog would lose focus from the editor. #TINY-11153 - Inability to type '{' character on German keyboard layouts. #TINY-11395 ## 7.4.1 - 2024-10-10 ### Fixed - Invalid HTML elements within SVG elements were not removed. #TINY-11332 ## 7.4.0 - 2024-10-09 ### Added - New `context` property for all ui components. This allows buttons and menu items to be enabled or disabled based on whether their context matches a given predicate; status updates are checked on `init`, `NodeChange`, and `SwitchMode` events. #TINY-11211 - Tree component now allows the addition of a custom icon. #TINY-11131 - Added focus function to view button api. #TINY-11122 - New option `allow_mathml_annotation_encodings` to opt-in to keep math annotations with specific encodings. #TINY-11166 - Added global `color-active` LESS variable for use in editor skins. #TINY-11266 ### Improved - In read-only mode the editor now allows normal cursor movement and block element selection, including video playback. #TINY-11264 - Pasting a table now places the cursor after the table instead of into the last cell. #TINY-11082 - Dialog list dropdown menus now close when the browser window resizes. #TINY-11123 ### Fixed - Mouse hover on partially visible dialog collection elements no longer scrolls. #TINY-9915 - Caret would unexpectedly shift to the non-editable table row above when pressing Enter. #TINY-11077 - Deleting a selection in a list element would sometimes prevent the `input` event from being dispatched. #TINY-11100 - Placing the cursor after a table with a br after it would misplace added newlines before the table instead of after. #TINY-11110 - Sidebar could not be toggled until the skin was loaded. #TINY-11155 - The image dialog lost focus after closing an image upload error alert. #TINY-11159 - Copying tables to the clipboard did not correctly separate cells and rows for the "text/plain" MIME type. #TINY-10847 - The editor resize handle was incorrectly rendered when all components were removed from the status bar. #TINY-11257 ## 7.3.0 - 2024-08-07 ### Added - Colorpicker number input fields now show an error tooltip and error icon when invalid text has been entered. #TINY-10799 - New `format-code` icon. #TINY-11018 ### Improved - When a full document was loaded as editor content the head elements were added to the body. #TINY-11053 ### Fixed - Unnecessary nbsp entities were inserted when typing at the edges of inline elements. #TINY-10854 - Fixed JavaScript error when inserting a table using the context menu by adjusting the event order in `renderInsertTableMenuItem`. #TINY-6887 - Notifications didn't position and resize properly when resizing the editor or toggling views. #TINY-10894 - The pattern commands would execute even if the command was not enabled. #TINY-10994 - Split button popups were incorrectly positioned when switching to fullscreen mode if the editor was inside a scrollable container. #TINY-10973 - Sequential html comments would in some cases generate unwanted elements. #TINY-10955 - The listbox component had a fixed width and was not a responsive ui element. #TINY-10884 - Prevent default mousedown on toolbar buttons was causing misplaced focus bugs. #TINY-10638 - Attempting to use focus commands on an editor where the cursor had last been in certain contentEditable="true" elements would fail. #TINY-11085 - Colorpicker's hex-based input field showed the wrong validation error message. #TINY-11115 ## 7.2.1 - 2024-07-03 ### Fixed - Text content could move unexpectedly when deleting a paragraph. #TINY-10590 - Cursor would shift to the start of the editor body when focus was shifted to a noneditable cell of a table. #TINY-10127 - Long translations of the bottom help text would cause minor graphical issues. #TINY-10961 - Open Link button was disabled when selection partially covered a link or when multiple links were selected. #TINY-11009 ## 7.2.0 - 2024-06-19 ### Added - Added `options.debug` API that logs the initial raw editor options to console. #TINY-10605 - Added `referrerpolicy` as a valid attribute for an iframe element. #TINY-10374 - New `onInit` and `stretched` properties to the `HtmlPanel` dialog component. #TINY-10900 - Added support for querying the state of the `mceTogglePlainTextPaste` command. #TINY-10938 - Added `for` option to dialog label components to improve accessibility. The value must be another component on the same dialog. #TINY-10971 ### Improved - Dialog slider components now emit an onChange event when using arrow keys. #TINY-10428 - Accessibility for element path buttons, added tooltip to describe the button and removed incorrect `aria-level` attribute. #TINY-10891 - Improve merging of inserted inline elements by removing nodes with redundant inheritable styles. #TINY-10869 - Improved Find & Replace dialog accessibility by changing placeholders to labels. #TINY-10871 ### Changed - Replaced tiny branding logo with `Build with TinyMCE` text and logo. #TINY-11001 ### Fixed - Deleting in a `div` with preceeding `br` elements would sometimes throw errors. #TINY-10840 - `autoresize_bottom_margin` was not reliably applied in some situations. #TINY-10793 - Fixed cases where adding a newline around a br, table or img would not move the cursor to a new line. #TINY-10384 - Focusing on `contenteditable="true"` element when using `editable_root: false` and inline mode causing selection to be shifted. #TINY-10820 - Corrected the `role` attribute on listbox dialog components to `combobox` when there are no nested menu items. #TINY-10807 - HTML entities that were double decoded in `noscript` elements caused an XSS vulnerability. #TINY-11019 - It was possible to inject XSS HTML that was not matching the regexp when using the `noneditable_regexp` option. #TINY-11022 ## 7.1.2 - 2024-06-05 ### Fixed - CSS color values set to `transparent` were incorrectly converted to '#000000`. #TINY-10916 ## 7.1.1 - 2024-05-22 ### Fixed - Insert/Edit image dialog lost focus after the image upload completed. #TINY-10885 - Deleting into a list from a paragraph that has an `img` tag could cause extra inline styles to be added. #TINY-10892 - Resolved an issue where emojis configured with the `emojiimages` database were not loading correctly due to a broken CDN. #TINY-10878 - Iframes in dialogs were not rendering rounded borders correctly. #TINY-10901 - Autocompleter possible values are no longer capped at a length of 10. #TINY-10942 ## 7.1.0 - 2024-05-08 ### Added - Parser support for math elements. #TINY-10809 - New `math-equation` icon. #TINY-10804 ### Improved - Included `itemprop`, `itemscope` and `itemtype` as valid HTML5 attributes in the core schema. #TINY-9932 - Notification accessibility improvements: added tooltips, keyboard navigation and shortcut to focus on notifications. #TINY-6925 - Removed `aria-pressed` from the `More` button in sliding toolbar mode and replaced it with `aria-expanded`. #TINY-10795 - The editor UI now renders correctly in Windows High Contrast Mode. #TINY-10781 ### Fixed - Backspacing in certain html setups resulted in data moving around unexpectedly. #TINY-10590 - Dialog title markup changed to use an `h1` element instead of `div`. #TINY-10800 - Dialog title was not announced in macOS VoiceOver, dialogs now use `aria-label` instead of `aria-labelledby` on macOS. #TINY-10808 - Theme loader did not respect the suffix when it was loading skin CSS files. #TINY-10602 - Custom block elements with colon characters would throw errors. #TINY-10813 - Tab navigation in views didn't work. #TINY-10780 - Video and audio elements could not be played on Safari. #TINY-10774 - `ToggleToolbarDrawer` command did not toggle the toolbar in `sliding` mode when `{skipFocus: true}` parameter was passed. #TINY-10726 - The buttons in the custom view header were clipped on when overflowing. #TINY-10741 - In the custom view, the scrollbar of the container was not visible if its height was greater than the editor. #TINY-10741 - Fixed accessibility issue by removing duplicate `role="menu"` attribute from color swatches. #TINY-10806 - Fullscreen mode now prevents focus from leaving the editor. #TINY-10597 - Open link context menu action did not work with selection surrounding a link. #TINY-10391 - Styles were not retained when toggling a list on and off. #TINY-10837 - Caret and placeholder text were invisible in Windows High Contrast Mode. #TINY-9811 - Firefox did not announce the iframe title when `iframe_aria_text` was set. #TINY-10718 - Notification width was not constrained to the width of the editor. #TINY-10886 - Open link context menu action was not enabled for links on images. #TINY-10391 ## 7.0.1 - 2024-04-10 ### Fixed - Toggle list behavior generated wrong html when the `forced_root_block` option was set to `div`. #TINY-10488 - Tapping inside a composed text on Firefox Android would not close the autocompleter. #TINY-10715 - An inline editor toolbar now behaves correctly in horizontally scrolled containers. #TINY-10684 - Tooltips unintended shrinking and incorrectly positioned when shown in horizontally scrollable container. #TINY-10797 - The status bar was invisible when the editor's height is short. #TINY-10705 ## 7.0.0 - 2024-03-20 ### Added - New `license_key` option that must be set to `gpl` or a valid license key. #TINY-10681 - New custom tooltip functionality, tooltip will be shown when hovering with a mouse or with keyboard focus. #TINY-9275 - New `sandbox_iframes_exclusions` option that holds a list of URL host names to be excluded from iframe sandboxing when `sandbox_iframes` is set to `true`. #TINY-10350 - Added 'getAllEmojis' api function to the emoticons plugin. #TINY-10572 - Element preset support for the `valid_children` option and Schema.addValidChildren API. #TINY-9979 - A new `trigger` property for block text pattern configurations, allowing pattern activation with either Space or Enter keys. #TINY-10324 - onFocus callback for CustomEditor dialog component. #TINY-10596 - icons for the import from Word, export to Word and export to PDF premium plugins. #TINY-10612 - `data` is now a valid element in the Schema. #TINY-10611 - More advanced schema config for custom elements. #TINY-9980 - Custom tooltip for autocompleter, now visible on both mouse hover and keyboard focus, except single column cases. #TINY-9638 ### Improved - Included keyboard shortcut in custom tooltip for `ToolbarButton` and `ToolbarToggleButton`. #TINY-10487 - Improved showing which element has focus for keyboard navigation. #TINY-9176 - Custom tooltips will now show for items in `collection` which is rendered inside a dialog, on mouse hover and keyboard focus. #TINY-9637 - Autocompleter will now work with IMEs. #TINY-10637 - Make table ghost element better reflect height changes when resizing. #TINY-10658 ### Changed - TinyMCE is now licensed GPL Version 2 or later. #TINY-10578 - `convert_unsafe_embeds` editor option is now defaulted to `true`. #TINY-10351 - `sandbox_iframes` editor option is now defaulted to `true`. #TINY-10350 - The DOMUtils.isEmpty API function has been modified to consider nodes containing only comments as empty. #TINY-10459 - The `highlight_on_focus` option now defaults to true, adding a focus outline to every editor. #TINY-10574 - Delay before the tooltip to show up, from 800ms to 300ms. #TINY-10475 - Now `tox-view__pane` has `position: relative` instead of `static`. #TINY-10561 - Update outbound link for statusbar Tiny logo #TINY-10494 - Remove the height field from the `table` plugin cell dialog. The `table` plugin row dialog now controls the row height by setting the height on the `tr` element, not the `td` elements. #TINY-10617 - Change table height resizing handling to remove heights from `td`/`th` elements and only apply to `tr` elements. #TINY-10589 - Removed incorrect `aria-placeholder` attribute from editor body when `placeholder` option is set. #TINY-10452 - The `tooltip` property for dialog's footer `togglebutton` is now optional. #TINY-10672 - Changed the `media_url_resolver` option to use promises. #TINY-9154 - `Styles` bespoke toolbar button fallback changed to `Formats` if `Paragraph` is not configured in `style_formats` option. #TINY-10603 - Updated deprecation/removed console message. #TINY-10694 ### Removed - Deprecated `force_hex_color` option, with the default now being all colors are forced to hex format as lower case. #TINY-10436 - Deprecated `remove_trailing_brs` option from DomParser. #TINY-10454 - `title` attribute on buttons with visible label. #TINY-10453 - `InsertOrderedList` and `InsertUnorderedList` commands from core, these now only exist in the `lists` plugin. #TINY-10644 - `closeButton` from the notification API, close buttons in notifications are now required. #TINY-10646 - The autocompleter `ch` configuration property has been removed. Use the `trigger` property instead. #TINY-8929 - Deprecated `template` plugin. #TINY-10654 ### Fixed - When deleting the last row in a table, the cursor would jump to the first cell (top left), instead of moving to the next adjacent cell in some cases. #TINY-6309 - Heading formatting would be partially applied to the content within the `summary` element when the caret was positioned between words. #TINY-10312 - Moving focus to the outside of the editor after having clicked a menu would not fire a `blur` event as expected. #TINY-10310 - Autocomplete would sometimes cause corrupt data when starting during text composition. #TINY-10317 - Inline mode with persisted toolbar would show regardless of the skin being loaded, causing css issues. #TINY-10482 - Table classes couldn't be removed via setting an empty value in `table_class_list`. Also fixed being forced to pick the first class option. #TINY-6653 - Directly right clicking on a ol's li in FireFox didn't enable the button `List Properties...` in the context menu. #TINY-10490 - The `link_default_target` option wasn't considered when inserting a link via `quicklink` toolbar. #TINY-10439 - When inline editor toolbar wrapped to multiple lines the top wasn't always calculated correctly. #TINY-10580 - Removed manually dispatching dragend event on drop in Firefox. #TINY-10389 - Slovenian help dialog content had a dot in the wrong place. #TINY-10601 - Pressing Backspace at the start of an empty `summary` element within a `details` element nested in a list item no longer removes the `summary` element. #TINY-10303 - The toolbar width was miscalculated for the inline editor positioned inside a scrollable container. #TINY-10581 - Fixed incorrect object processor for `event_root` option. #TINY-10433 - Adding newline after using `selection.setContent` to insert a block element would throw an unhandled exception. #TINY-10560 - Floating toolbar buttons in inline editor incorrectly wrapped into multiple rows on window resizing or zooming. #TINY-10570 - When setting table border width and `table_style_by_css` is true, only the border attribute is set to 0 and border-width styling is no longer used. #TINY-10308 - Clicking to the left or right of a non-editable div in Firefox would show two cursors. #TINY-10314 ## 6.8.3 - 2024-02-08 ### Changed - Update outbound TinyMCE website links. #TINY-10491 ### Fixed - The floating toolbar would not be fully visible when the editor was placed inside a scrollable container. #TINY-10335 - ShadowDOM skin was not loaded properly when used with js bundling feature. #TINY-10451 ## 6.8.2 - 2023-12-11 ### Fixed - Bespoke select toolbar buttons including `fontfamily`, `fontsize`, `blocks`, and `styles` incorrectly used plural words in their accessible names. #TINY-10426 - The `align` bespoke select toolbar button had an accessible name that was misleading and grammatically incorrect in certain cases. #TINY-10435 - Accessible names of bespoke select toolbar buttons including `align`, `fontfamily`, `fontsize`, `blocks`, and `styles` were incorrectly translated. #TINY-10426 #TINY-10435 - Clicking inside table cells with heavily nested content could cause the browser to hang. #TINY-10380 - Toggling a list that contains an LI element having another list as its first child would remove the remaining content within that LI element. #TINY-10414 ## 6.8.1 - 2023-11-29 ### Improved - Colorpicker now includes the Brightness/Saturation selector and hue slider in the keyboard navigable items. #TINY-9287 ### Fixed - Translation syntax for announcement text in the table grid was incorrectly formatted. #TINY-10141 - The functions `schema.isWrapper` and `schema.isInline` did not exclude node names that started with `#` which should not be considered as elements. #TINY-10385 ## 6.8.0 - 2023-11-22 ### Added - CSS files are now also generated as separate JS files to improve bundling of all resources. #TINY-10352 - Added new `StylesheetLoader.loadRawCss` API that can be used to load CSS into a style element. #TINY-10352 - Added new `StylesheetLoader.unloadRawCss` API that can be used to unload CSS that was loaded into a style element. #TINY-10352 - Added `force_hex_color` editor option. Option `'always'` converts all RGB & RGBA colours to hex, `'rgb_only'` will only convert RGB and *not* RGBA colours to hex, `'off'` won't convert any colours to hex. #TINY-9819 - Added `default_font_stack` editor option that makes it possible to define what is considered a system font stack. #TINY-10290 - New `sandbox_iframes` option that controls whether iframe elements will be added a `sandbox=""` attribute to mitigate malicious intent. #TINY-10348 - New `convert_unsafe_embeds` option that controls whether `<object>` and `<embed>` elements will be converted to more restrictive alternatives, namely `<img>` for image MIME types, `<video>` for video MIME types, `<audio>` audio MIME types, or `<iframe>` for other or unspecified MIME types. #TINY-10349 ### Improved - Improved the tooltips of picker buttons for the urlinput components in the "Insert/Edit Image" and "Insert/Edit Link" dialogs. #TINY-10155 - Inline dialog will now respect `size: 'large'` argument in the dialog spec. #TINY-10209 - SVG elements and their children are now retained when configured as valid elements. #TINY-10237 - Bespoke select toolbar buttons including `align`, `fontfamily`, `fontsize`, `blocks`, and `styles` did not include their visible text labels in their accessible names. #TINY-10147 ### Fixed - Editor would convert urls that are not http/s or relative resulting in broken links. #TINY-10153 - Calling the `setProgressState` API would cause the window to be scrolled when the editor wasn't fully visible. #TINY-10172 - Applying heading formatting to the content of the `summary` element extended its application to the content of the parent `details` element. #TINY-10154 - Setting the content with an attribute that contains a self-closing HTML tag did not preserve the tag. #TINY-10088 - Screen readers now announce the selected color of `forecolor` and `backcolor` buttons. #TINY-9796 - Resize handles would not appear on editable images in a non-editable context. #TINY-10118 - Corrections and copy-edits to the `addIcon` API documentation. #TINY-10230 - The dialog size was not updated when the `size` argument was changed when redialling a dialog. #TINY-10209 - Toggling a list that contains an LI element having another list as its first child would remove the remaining content within that LI element. #TINY-10213 - Custom block element wasn't considered block element in some cases. #TINY-10139 - The editor no longer forcefully takes focus when a notification closes while the focus is outside of the editor. #TINY-10282 - An empty element with a `contenteditable="true"` attribute within a table cell would not be treated as content and get removed if backspace or delete was being pressed. #TINY-10010 - Removing an LI element containing a `details` element would incorrectly merge its content. #TINY-10133 - The function `getModifierState` did not work on events passed through the editor as expected. #TINY-10263 - Search and replace plugin would incorrectly find matching text inside non-editable root elements. #TINY-10162 - Removed use of `async` for editor rendering which caused visual blinking when reloading the editor in-place. #TINY-10249 - Toggling off one format on the caret when multiple formats was toggled on would toggle all of them off. #TINY-10132 - Merging an external `p` inside a `list` via delete or backspace would incorrectly try to move a parent element inside a child element. #TINY-10289 - Directionality would not be consistently applied to the entire `accordion` block. #TINY-10291 - The `fontsizeinput` toolbar item was causing console warnings when toolbar items were clicked. #TINY-10330 - Menubar buttons with more than one word would sometimes wrap into two lines. #TINY-10343 - Creating a new `li` via enter inside a nested list would not inherit styles from the source `li`. #TINY-10316 - Screen readers now announce the active autocompleter item. #TINY-9393 - Dialog collection items would not display any icons chosen from icon pack. #TINY-10174 ## 6.7.3 - 2023-11-15 ### Changed - Zero width no-break space (U+FEFF) characters are removed from content passed to `setContent`, `insertContent`, and `resetContent` APIs. #TINY-10305 - Zero width no-break space (U+FEFF) characters in initial content are not loaded into the editor upon initialization. #TINY-10305 ### Fixed - Specific HTML content containing unescaped text nodes caused mXSS when using undo/redo. #TINY-10305 - 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. #TINY-10305 ## 6.7.2 - 2023-10-25 ### Fixed - The function `getModifierState` did not work on events passed through the editor as expected. #TINY-10263 - Removed use of `async` for editor rendering which caused visual blinking when reloading the editor in-place. #TINY-10249 - Toggling a list that contains an LI element having another list as its first child would remove the remaining content within that LI element. #TINY-10213 - List items containing a list element surrounded by non list nodes would cause some list operations to fail. #TINY-10268 - The `accordion` toggling with the Enter key press would behave incorrectly on Safari. #TINY-10177 - Deleting a range that included both text of a cell and a nested table in that cell removed the entire content of the cell. #TINY-10254 ## 6.7.1 - 2023-10-19 ### Fixed - Specific HTML content caused mXSS when using undo/redo. #TINY-10180 - 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. #TINY-10236 - Notification messages containing HTML were not properly XSS sanitized before being displayed. #TINY-10286 ## 6.7.0 - 2023-08-30 ### Added - New `help_accessibility` option displays the keyboard shortcut to open the in-application help in the status bar. #TINY-9379 - Added a new `InsertNewBlockBefore` command which inserts an empty block before the block containing the current selection. #TINY-10022 - Added a new `InsertNewBlockAfter` command which inserts an empty block after the block containing the current selection. #TINY-10022 ### Improved - Adding a newline after a table would, in some specific cases, not work. #TINY-9863 - Menus now have a slight margin at the top and bottom to more clearly separate them from the frame edge. #TINY-9978 - Updated **More** toolbar button tooltip text from *More...* to *Reveal or hide additional toolbar items*. #TINY-9629 - Where multiple case sensitive variants of a translation key are provided, they will now all be preserved in the translation object instead of just the lowercase variant. #TINY-10115 - Improved screen reader announcements of the column and row selection in the grid presented by the **Table** menu and toolbar item. #TINY-10140 - Improved the keyboard focus visibility for links inside dialogs. #TINY-10124 ### Changed - Change `UndoLevelType` from `enum` to union type so that it is easier to use. #TINY-9764 - The pattern replacement removed spaces if they were contained within a tag that only contained a space and the text to replace. #TINY-9744 - If loading content CSS takes more than 500ms, the editor will be set to an *in progress* state until the CSS is ready. #TINY-10008 ### Fixed - Applying an ordered or unordered list to a selected checklist incorrectly turned the list into paragraphs. #TINY-9975 - Returning an empty string in a custom context menu update function resulted in a small white line appearing on right-click and the browser-native context menu would not present. #TINY-9842 - For sufficiently long URLs and sufficiently wide windows, URL autocompletion hid middle portions of the URL from view. #TINY-10017 - Numeric input in toolbar items did not disable when a switching from edit to read-only mode. #TINY-10129 - The Quick Toolbars plugin showed text alignment buttons on pagebreaks. #TINY-10054 - Creating lists in empty blocks sometimes, and incorrectly, converted adjacent block elements into list items. #TINY-10136 - Creating a list from multiple `<div>` elements only created a partial list. #TINY-9872 - Tab navigation incorrectly stopped around `iframe` dialog components. #TINY-9815 - It was possible to delete the sole empty block immediately before a `<details>` element if it was nested within another `<details>` element. #TINY-9965 - Deleting `<li>` elements that only contained `<br>` tags sometimes caused a crash. #TINY-6888 - It was possible to remove the `<summary>` element from a `<details>` element by dragging and dropping. #TINY-9960 - It was possible to break `<summary>` elements if content containing block elements was dragged-and-dropped inside them. #TINY-9960 - Contents were not removed from the drag start source if dragging and dropping internally into a transparent block element. #TINY-9960 - Using the Media plugin unexpectedly changed `<script>` tags in the editor body to `<image>` tags. #TINY-10007 - In some circumstances, pressing the **Enter** key scrolled the entire page. #TINY-9828 - The border styles of a table were incorrectly split into a longhand form after table dialog updates. #TINY-9843 - Links in **Help → Help → Plugins** and **Help → Help → Version** were not navigable by keyboard. #TINY-10071 - Fixed the inability to insert content next to the `<details>` element when it is the first or last content element. Pressing the **Up** or **Down** arrow key now inserts a block element before or after the `<details>` element. #TINY-9827 - An empty element with a `contenteditable="true"` attribute within a noneditable root was deleted when the Backspace key was pressed. #TINY-10011 - The `color_cols` option was not respected when set to the value 5 with a custom `color_map` specified. #TINY-10126 - In Safari on macOS, deleting backwards within a `<summary>` element removed the entire `<details>` element if it had no other content. #TINY-10123 ## 6.6.2 - 2023-08-09 ### Fixed - An "Uncaught TypeError: Cannot read properties of null" error would sometimes be thrown when updating the content of a `streamContent: true` iframe dialog component. #TINY-10128 ## 6.6.1 - 2023-08-02 ### Added - Restored filtering option, `pad_empty_with_br`. Set to `true` to pad empty block elements with `<br>` tags instead of the `&nbsp;` character entity. #TINY-9861 ### Improved - When Safari is the host browser, content updates for iframe dialog components with `streamContent: true` set are now throttled to 500ms intervals. #TINY-10097 ### Changed - API comments/documentation: a markup typo and run-on sentences both corrected. #TINY-10073 ### Fixed - On Safari and Firefox, scroll positions were not always maintained when updating the content of a `streamContent: true` iframe dialog component. #TINY-10078 - On Safari, iframe dialog components did not consistently autoscroll to the end of the scrollable area when `streamContent: true` was set. #TINY-10109 - Scrolling behavior was inconsistent when updating a `streamContent: true` iframe dialog component with content lacking an HTML document type declaration. #TINY-10110 - A warning message was sometimes printed to the browser console when closing a dialog that contained an iframe component. #TINY-10070 - Lists could not be created within editable areas nested inside non-editable areas. #TINY-10000 - On Safari and Firefox, the border around `iframe` dialog components did not highlight when focused. #TINY-10101 - Right-clicking on an image in a non-editable context opened the Image context menu. #TINY-10016 - The `color_cols` option was not respected when a custom `color_map` was defined. #TINY-10098 - The `color_cols` options were were not rounded to the nearest number when set to a decimal number. #TINY-9737 ## 6.6.0 - 2023-07-12 ### Added - Added a new property value — `bottom` — for inline dialog configurations that anchors the dialog to the bottom of the editor. #TINY-9888 - Added a new property — `persistent` — for inline dialog configurations that will stop the dialog closing when clicking away from it. #TINY-9991 - New `ai`, `ai-prompt` and `send` icons. #TINY-9942 - Added a new property — `streamContent` — for the `iframe` dialog component. This causes `setData()` to update content without reloading the frame, and end scroll positions will be maintained as new content streams in. #TINY-10032 - AI Assistant plugin toolbar items added to the default toolbar and AI Assistant plugin menu items added to the default menu bar. #TINY-9939 - Added a new property — `border` — for the `iframe` dialog component that allows a border to be added. #TINY-10049 - Added a new property — `align` — for the label dialog component that controls text alignment. #TINY-10058 ### Improved - When defining a modal or inline dialog, if the buttons property is an empty array, or is not defined at all, the footer will now no longer be rendered. #TINY-9996 - The `iframe` dialog component now has a minimum height of 200px. #TINY-10059 - Improved detection of scrollable containers when the `ui_mode: 'split'` option is set. #TINY-9385 ### Changed - The icon in an `alertbanner` dialog component is no longer clickable if the _URL_ field is not specified. #TINY-10013 ### Fixed - Fixed an issue that caused the inline dialog `size` setting to have no effect. #TINY-10015 - Fixed an issue that prevented the close button from being clicked when the dialog was blocked. #TINY-10056 ## 6.5.1 - 2023-06-19 ### Fixed - Fixed a regression where pasting an image url would result in the url being inserted as plain text instead of the image being inserted. #TINY-9997 - It was not possible to press space to insert a space character inside a summary element on Firefox. #TINY-9964 ## 6.5.0 - 2023-06-12 ### Added - Support for the `h` hash parameter in Vimeo video URLs in the Media plugin. #TINY-9830 - New `table_merge_content_on_paste` option which disables the merging behaviour when pasting a table inside an existing table. #TINY-9808 - New optional `defaultExpandedIds` and `onToggleExpand` options to the `tree` component config. #TINY-9653 - New optional `defaultSelectedId` option to the `tree` component config. #TINY-9715 - New `accordion` plugin with the `InsertAccordion` command. #TINY-9730 - New `accordion` and `accordion-toggle` icons. #TINY-9789 - New `details_initial_state` and `details_serialized_state` options. #TINY-9732 - New `init_content_sync` option that initializes the editor iframe using `document.write` instead of `srcdoc`. #TINY-9818 - New `newdocument_content` option that sets the content presented in the editor on choosing *File -> New document* or pressing the *New document* toolbar button. #TINY-9839 - New `editable_root` option that can be set to `false` to prevent editing of the editor’s root element. #TINY-9839 - New `editor.setEditableRoot` API that sets the editable state of the editor root element. #TINY-9839 - New `editor.hasEditableRoot` API that returns `true` or `false` depending on the editable state of the editor root element. #TINY-9839 - New `EditableRootStateChange` event that gets dispatched when the state of the editable root is changed. #TINY-9839 - Added Oxide styles for `dl`, `dt`, `dd`, `ol`, and `strong` elements in dialog body content. #TINY-9919 ### Improved - Screen readers can now announce highlighted items listed in the Link dialog’s link combobox. #TINY-9280 - The `icon` field for a dialog’s footer `togglebutton` is no longer mandatory. #TINY-9757 - Toolbar buttons and menu items now present as disabled when they cannot be used because a selected element has a `contenteditable="false"` attribute. #TINY-9669 - Help text displayed at *Help -> Help -> Keyboard Navigation* re-written. #DOC-1936 - Translations added for Help text displayed at *Help > Help > Keyboard Navigation*. #TINY-9633 - For word count purposes these characters are now considered punctuation marks: *$*, *~*, *+*, *|*, *№*, and *`*. They no longer increase a document’s word count. #TINY-8122 - Updated the `codesample` plugin dialog and the `template` plugin dialog to use the `listbox` component to match other dialogs. #TINY-9630 - If the selection contains more than one table cell, Quickbar toolbars are now positioned in the middle of the selection horizontally. #TINY-8297 - Exposed `dataTransfer` property of drag and drop events for elements with a `contenteditable="false"` attribute. #TINY-9601 - Screen readers now announce instructions for resizing the editor using arrow keys, when the resize handle is focused. #TINY-9793 - Dialog `tabpanel` tab labels are now allowed to word wrap for better readability with long labels. #TINY-9947 - Added newlines before and after `details` elements in the output HTML. #TINY-9959 - Added padding for empty `summary` elements so that they can be properly edited. #TINY-9959 ### Changed - The `caption`, `address` and `dt` elements no longer incorrectly allow non-inline child elements when the editor schema is set to _HTML 4_. #TINY-9768 - SVG icons for back and foreground colors now use `class` instead of `id` to identify SVG elements that should change color. #TINY-9844 - Anchor tag elements — `<a>` — no longer incorrectly allow non-inline child elements when the editor schema is set to _HTML 4_. #TINY-9805 - Help dialog was restored to `medium` width for better readability. #TINY-9947 ### Fixed - Right-clicking on a merge tag instance presented different highlighting depending on the host browser. #TINY-9848 - When macOS was the host operating system, pressing *Command+backspace* did not add an undo level. #TINY-8910 - *Ctrl+backspace* and *Ctrl+delete* did not restore the correct insertion point position after a redo operation. #TINY-8910 - In the `tree` component, a selected item in a directory would not stay selected after collapsing the directory. #TINY-9715 - Enabling or Disabling checkboxes would not set the correct classes and attributes. #TINY-4189 - Entering a newline would, in some setups, place the insertion point in the wrong paragraph. #TINY-9822 - Redial would, in some situations, cause select elements not to have an initial value selected when they should have. #TINY-9679 - The Table toolbar was visible even if the table was within a host element with a `contenteditable="false"` attribute set. #TINY-9664 - Quickbar toolbars were incorrectly shown for elements with a `contenteditable="false"` attribute set in a root with a `contenteditable="false"` attribute set. #TINY-9460 - When Chrome was the host browser, adding a newline when the insertion point was placed after a table could, in some specific situations, not generate the expected newline. #TINY-9813 - Show the calculated height and width of Media Embed elements in the `media` plugin dialog. #TINY-8714 - Removing an image that failed to upload from an empty paragraph left the paragraph without a padding `<br>` tag. #TINY-9696 - Allow a Media Embed element to be correctly resized when using the `media` plugin dialog by converting the Media Embed element to a standalone iframe. #TINY-8714 - In some circumstances, an inline alert in the _Search and Replace_ dialog persisted when it was not necessary. #TINY-9704 - Context toolbars displayed the incorrect status for the `advlist` plugin buttons. #TINY-9680 - In Safari running on iOS, Korean characters merged onto the previous line upon typing after inserting a newline by pressing Enter. #TINY-9746 - Initiating the editor with a table as the first element resulted in resize handles being displayed around the table even when the editor did not have focus. #TINY-9748 - If the insertion point was between two images, pressing the Backspace key would, in some situations, delete the image after the insertion point instead of the image before the insertion point. #TINY-9807 - Directionality commands could set the `dir` attribute on elements with a `contenteditable="false"` attribute set when these elements were within a root with a `contenteditable="false"` attribute set. #TINY-9662 - The content of the dialog body could not be scrolled. #TINY-9668 - Some toolbar items, when in a not-enabled state, did not render the `not-allowed` mouse pointer. #TINY-9758 - Formats were incorrectly applied to the closest editable element if the selection was in a `contenteditable="false"` context. #TINY-9678 - Formats were incorrectly removed from the closest editable element if the selection was in a `contenteditable="false"` context. #TINY-9678 - Formatter API, `canApply`, was not returning `false` when the selection was in a `contenteditable="false"` context. #TINY-9678 - When dragging image elements and dropping the image in the editor the `dragend` event would sometimes not fire when Firefox was the host browser. #TINY-9694 - It was possible to remove links in noneditable contents with the `unlink` editor command. #TINY-9739 - Direction was not visually changing when using the Directionality plugin on an element which had the `direction` CSS property set. #TINY-9314 - Whitespace between transparent elements was incorrectly converted into empty paragraphs. #TINY-9761 - Popups were not constrained within the scrollable container when in a shadow root. #TINY-9743 - Pressing arrow keys inside RTL elements would move the insertion point in an incorrect direction when moving over elements with the `contenteditable` attribute set to `false`. #TINY-9565 - Inserting two tables consecutively without focus in the editor resulted in the second table being inserted at the wrong position. #TINY-3909 - Pasting content into the editor did not fire `beforeinput` and `input` events. #TINY-9829 - In some cases, exiting a `blockquote` element could fail when the insertion point was positioned at the end of the `blockquote`. #TINY-9794 - Templates containing an `<html>` tag were not parsed before being rendered for preview. #TINY-9867 - Typing after deleting formatted content could remove a space at the start of the typing. #TINY-9310 - Invalid markup in Notification and Dialog close buttons. #TINY-9849 - In dialogs, an incorrect `aria-describedby` attribute caused the dialog body to be announced when using a screen reader. #TINY-9816 - The sticky toolbar did not render correctly when transitioning from the custom editor view to the main view. #TINY-9814 - Saving the Table Properties dialog after changing properties unrelated to cells would overwrite cell properties set by the Cell Properties dialog. #TINY-9837 - Fixed the constrained bounds calculation for dismissal of the toolbar when using `toolbar_location: 'bottom'`. #TINY-9718 - Pressing the Backspace or Delete key when the insertion point was within a `details` element resulted in broken markup. #TINY-9884 - Making the selection into a list did not work if the selection included a block element with a `contenteditable="false"` attribute. #TINY-9823 - Inserting elements in the middle of the summary caused two summaries to appear within `details` elements. #TINY-9885 ## 6.4.2 - 2023-04-26 ### Fixed - The editor displayed a notification error when it failed to retrieve a blob image uri. #TINY-9604 - Tab navigation no longer incorrectly stops at menu buttons within toolbar groups. #TINY-9723 - The `urlinput` dialog component would not open the type-ahead dropdown when the input value was reset to an empty string. #TINY-9717 - Redial would, in some circumstances, cause elements to not have an initial value selected when they should have. #TINY-9679 - When hovering over tree dialog components the mouse pointer rendered incorrectly. #TINY-9692 - The `tox-button` and `tox-button-secondary` buttons now support the `hover`, `active`, `focus`, and `disabled` states. #TINY-9713 - Setting an invalid unit in the `fontsizeinput` changed it to the default value instead of reverting it to the previous, and valid, value. #TINY-9754 - Selection was not correctly scrolled horizontally into view when using the `selection.scrollIntoView` API. #TINY-9747 - The contextual toolbar displayed the status of Advanced List Premium plugin icons incorrectly. #TINY-9680 - The `quickimage` toolbar button failed to insert images selected from the local computer when running on Google Chrome for macOS. #TINY-9769 ## 6.4.1 - 2023-03-29 ### Fixed - The `fontsizeinput` increase and decrease size buttons now work on TinyMCE mobile. #TINY-9725 - The TinyMCE editor toolbar is now accessible for all screen widths; it no longer collapses into an inaccessible vertical line when the screen is scrolled horizontally. #TINY-9646 - Reverted the changes made, in TinyMCE 6.4.0, to UI button colors in focus, active, and enabled states. #TINY-9176 ## 6.4.0 - 2023-03-15 ### Added - New `tree` component that can be used in dialog body panel. #TINY-9532 - `renderUI` property in the `Theme` type can now return a `Promise<RenderResult>` instead of `RenderResult`. #TINY-9556 - New `isEditable` API to `editor.selection` that returns true or false if the current selection is editable. #TINY-9462 - New `isEditable` API to `editor.dom` that returns true or false if the specified node is editable. #TINY-9462 - New `setText` and `setIcon` methods added to menu button and toolbar button API. #TINY-9268 - New `highlight_on_focus` option which enables highlighting the content area on focus. #TINY-9277 - New `fontsizeinput` toolbar item which allows the user to set the size via input and also increase and decrease it with `+` and `-` buttons. #TINY-9429 - Added `skipFocus` option