You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
<p><em>Experience the warmth of beachside gatherings, the crackling of bonfires under starlit skies, and the peaceful ambiance that makes Mallorca the perfect destination for outdoor living.</em></p>
The following premium plugin updates were released alongside {productname} {release-version}.
30
30
31
-
// === <Premium plugin name 1> <Premium plugin name 1 version>
31
+
=== PowerPaste
32
32
33
-
// The {productname} {release-version} release includes an accompanying release of the **<Premium plugin name 1>** premium plugin.
33
+
The {productname} {release-version} release includes an accompanying release of the **PowerPaste** premium plugin.
34
34
35
-
// **<Premium plugin name 1>** <Premium plugin name 1 version> includes the following <fixes, changes, improvements>.
35
+
**PowerPaste** includes the following addition.
36
36
37
-
// ==== <Premium plugin name 1 change 1>
37
+
==== `powerpaste_emf_processor` function that takes an `emf` blob and returns a promise of a `png` blob.
38
38
39
-
// // CCFR here.
39
+
Before October 2025, copying and pasting content from Microsoft Word containing `emf` images resulted in those images not being pasted and an error message being displayed. After October 2025, this behavior changed where the images began appearing in the editor, but only at low resolution, accompanied by an error message in Chrome and Firefox. Safari displayed the low-resolution images without showing an error message.
40
40
41
-
// For information on the **<Premium plugin name 1>** plugin, see: xref:<plugincode>.adoc[<Premium plugin name 1>].
41
+
This change negatively affected the user experience. After October 2025, users would see a low-quality image alongside an error message stating `Some images failed to import`, which caused confusion since the image was, in fact, visible in the editor—albeit with degraded quality.
42
42
43
+
{productname} {release-version} introduces a new option, xref:powerpaste-options.adoc#powerpaste_emf_processor[powerpaste_emf_processor], to address this issue. This option accepts a function that receives an `emf` blob and returns a promise resolving to a `png` blob (i.e. `(blob: Blob) => Promise<Blob>`).
44
+
45
+
* If this option is provided, the editor will invoke the supplied function to convert `emf` image blobs into `png` image blobs before inserting them into the editor.
46
+
47
+
* If this option is **not** provided, the editor will remove the low-quality images and display an error message, restoring the pre–October 2025 behavior.
48
+
49
+
NOTE: If only the image is selected, pasting it will succeed and the image will be inserted correctly. However, if the image is selected together with other types of content, such as text, the image will not be pasted and an error message will be displayed.
50
+
51
+
For information on the **PowerPaste** plugin, see: xref:introduction-to-powerpaste.adoc[PowerPaste].
52
+
53
+
=== Media Optimizer
54
+
55
+
The {productname} {release-version} release includes an accompanying release of the **Media Optimizer** premium plugin.
56
+
57
+
**Media Optimizer** includes the following improvement and fix.
58
+
59
+
==== Newly uploaded videos are now responsive
60
+
// #TINY-13166
61
+
62
+
Newly uploaded videos are now responsive by default. Videos automatically scale down on smaller screens while maintaining their maximum size. For more information, see: xref:uploadcare-video.adoc#uploadcare-video-properties[`uploadcare_video_properties` configuration option].
63
+
64
+
For information on the **Media Optimizer** plugin, see: xref:uploadcare-video.adoc[Media Optimizer: Video].
65
+
66
+
==== CSS resource files were not loaded correctly.
67
+
// #TINY-13154
68
+
69
+
Previously, Media Optimizer CSS resource files were not loaded correctly. This mainly caused issues when trying to bundle this plugin. In {productname} {release-version}, this issue has been resolved by ensuring that CSS resource files for Media Optimizer are now loaded correctly.
70
+
71
+
For information on the **Media Optimizer** plugin, see: xref:uploadcare.adoc[Media Optimizer].
72
+
73
+
=== Premium plugins now include ESM module support
74
+
// #TINY-12888
75
+
76
+
Premium plugins in {productname} {release-version} can now be consumed as native ES modules (`import`) in addition to CommonJS (`require`). This enhancement aligns premium plugins with the existing ESM capabilities already available in core plugins and applies to all distributed artifacts, including NPM packages and ZIP bundles. The update enables modern bundlers to automatically resolve the optimal module format, improving compatibility with ESM-focused toolchains and removing the need for CommonJS shims during integration.
43
77
44
78
[[improvements]]
45
79
== Improvements
46
80
47
81
{productname} {release-version} also includes the following improvements:
48
82
49
-
=== <TINY-vwxyz 1 changelog entry>
50
-
// #TINY-vwxyz1
83
+
=== Show editor notification when a premium plugin is not allowed for a given license key.
84
+
// #TINY-12937
51
85
52
-
// CCFR here.
86
+
Previously, when a premium plugin was not permitted for a given license key, the plugin would be disabled without any corresponding editor message. As of {release-version}, this behaviour has been improved: the editor now displays a notification when a plugin is disabled due to license restrictions, reducing ambiguity.
87
+
88
+
For more informaton on license keys, see: xref:license-key.adoc[License Key].
89
+
90
+
=== Accordions can now be opened and closed when the editor is set to readonly.
91
+
// #TINY-12316
92
+
93
+
In previous versions of {productname}, accordion behavior in readonly mode relied on the browser’s default handling, which could still modify the DOM and lead to undesirable, uncontrolled changes to the editor state. This meant that even when the editor was configured as readonly, expanding or collapsing accordion sections could alter the underlying content structure in inconsistent ways.
94
+
95
+
In {productname} {release-version}, the xref:accordion.adoc[Accordion plugin] now explicitly manages open and close interactions in readonly mode, ensuring that any required DOM updates for toggling panels are performed in a controlled, minimally invasive manner. This improvement provides more predictable behavior, better control over how the DOM is manipulated, and a consistent user experience when interacting with accordions in readonly editors.
53
96
54
97
55
98
[[additions]]
@@ -97,6 +140,32 @@ Earlier versions of {productname} allowed accordions to remain expandable even w
97
140
98
141
This could lead to content changes when none were expected and caused interaction patterns to shift between the intended custom behavior and the browser’s default handling. In {release-version}, this issue has been resolved by ensuring accordions are fully non-interactive when the editor is disabled, preventing unintended state changes and maintaining consistent editor behavior.
99
142
143
+
=== Inline formats were not applied to the marker of a list item when its content was a single block element.
144
+
// #TINY-13197
145
+
146
+
Previously, when applying an inline format to a fully or partially selected list that contained content wrapped inside a single block element, the style was not applied to the list item where the selection began. This resulted in inconsistent styling between the list decorator and its content.
147
+
148
+
This issue has now been resolved in {release-version}. The logic has been updated to ensure that the inline format is applied correctly to the list item where the selection begins.
149
+
150
+
=== Tooltip is now translated correctly for the dropdown chevron of the bullet and number list toolbar buttons.
151
+
// #TINY-13271
152
+
153
+
Previously, an issue was identified where the tooltips for the dropdown chevrons for the **Bullet list** and **Numbered list** toolbar buttons were not translated correctly. This has been resolved in {release-version}. The dropdown chevron of these splitbuttons now displays correctly translated tooltips on hover.
154
+
155
+
=== Removing a line height at times did not remove it from all selected lines.
156
+
// #TINY-13053
157
+
158
+
An issue was identified where removing or modifying `lineheight` properties on multiple elements resulted in inconsistent updates when the elements had differing values. In these cases, only the `lineheight` of the first line was changed or removed, while subsequent lines were not updated.
159
+
160
+
{productname} {release-version} resolves this issue by introducing improved toggling behavior for the permissive `lineheight` option, ensuring that all lines are now correctly updated or removed as expected.
161
+
162
+
=== The `font-size` style on list items was not copied to new list items.
163
+
// #TINY-13224
164
+
165
+
Previously, an issue was identified where the `font-size` style applied to list items was not retained when creating new items in either numbered or bulleted lists. As a result, list items added by pressing `Enter` did not inherit the correct font size from the preceding item.
166
+
167
+
{productname} {release-version} addresses this issue by changing the behavior such that the `font-size` style is now consistently transferred to newly created list items. This ensures that all new list items have the correct font size.
The plugin creates a custom `+<uc-video>+` element that replaces the standard HTML `+<video>+` element when videos are processed through Uploadcare's infrastructure.
119
119
120
-
.Example: Custom video element created by the plugin on video insertion
120
+
.Example: Custom video element with fixed dimensions (non-responsive)
121
121
[source,html]
122
122
----
123
123
<uc-video
@@ -130,8 +130,6 @@ The plugin creates a custom `+<uc-video>+` element that replaces the standard HT
This option controls how `emf` images are handled. If this option **is** provided, `emf` image blobs will be converted into `png` image blobs using the supplied function, which will then be pasted into the editor. If this option is **not** provided, the editor will remove the poor quality images, and show an error message.
5
+
6
+
*Type:* `+Function+`
7
+
8
+
=== Example: `+powerpaste_emf_processor+`
9
+
10
+
[source,js]
11
+
----
12
+
tinymce.init({
13
+
selector: 'textarea', // change this value according to your HTML
NOTE: If only the image is selected, pasting it will succeed and the image will be inserted correctly. However, if the image is selected together with other types of content, such as text, the image will not be pasted and an error message will be displayed.
Copy file name to clipboardExpand all lines: modules/ROOT/partials/configuration/uploadcare_video_properties.adoc
+1-2Lines changed: 1 addition & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -15,7 +15,7 @@ Configures the video player properties and behavior for video elements.
15
15
|`autoplay` | Boolean | `true`, `false`, `undefined` | `undefined` | Automatically starts video playback when the page loads. NOTE: Even if autoplay is enabled, modern browsers may delay or block playback until the user interacts with the page, depending on their autoplay policies.
16
16
|`controls` | Boolean | `true`, `false` | `true` | Displays the video player controls (play/pause, volume, timeline, fullscreen, etc.). When disabled, users can still control playback through keyboard shortcuts or programmatic methods.
17
17
|`disablePictureInPicture` | Boolean | `true`, `false`, `undefined` | `undefined` | Disables the Picture-in-Picture feature for the video player. When enabled, users cannot use Picture-in-Picture mode.
18
-
|`height` | Number or String | Pixels or CSS value | `undefined` | Sets the video player height. Accepts numeric values (interpreted as pixels) or CSS values like `"100%"`, `"50vh"`, or `"auto"`.
18
+
|`height` | Number or String | Pixels or CSS value | `undefined` | Sets the video player height. Accepts numeric values (interpreted as pixels) or CSS values like `"100%"`, `"50vh"`, or `"auto"`. When a numeric value is provided, it is applied as an inline CSS style with `px` units (e.g., `height: 360px`).
19
19
|`loop` | Boolean | `true`, `false`, `undefined` | `undefined` | Automatically restarts video playback from the beginning when it reaches the end. Useful for background videos or continuous content loops.
20
20
|`muted` | Boolean | `true`, `false`, `undefined` | `undefined` | Mutes the video audio by default. Often used in combination with autoplay since most browsers require muted videos for autoplay to function.
21
21
|`poster` | String | Valid URL | `undefined` | Sets a poster image (thumbnail) that displays before video playback begins. The image should match the video's aspect ratio for best results.
@@ -25,7 +25,6 @@ Configures the video player properties and behavior for video elements.
25
25
|`width` | Number or String | Pixels or CSS value | `undefined` | Sets the video player width. Accepts numeric values (interpreted as pixels) or CSS values like `"100%"`, `"50vw"`, or `"auto"`.
0 commit comments