Skip to content

Commit e10918f

Browse files
authored
Merge branch 'feature/8.3.0/DOC-3224' into feature/8.3.0/DOC-3224_TINY-13270
2 parents bd17f8b + d7115ba commit e10918f

File tree

8 files changed

+141
-16
lines changed

8 files changed

+141
-16
lines changed

modules/ROOT/examples/live-demos/uploadcare-video/index.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ <h1>Experience Mallorca: Outdoor Paradise</h1>
44

55
<h2>Evenings by the Fire</h2>
66
<p>Watch this captivating video showcasing the magical atmosphere of Mallorca's outdoor lifestyle:</p>
7-
<p><uc-video uuid="83fd9f98-1939-4d99-b5e3-85563f89f5fb" class="tox-uc-video" contenteditable="false" controls="true" /></p>
7+
<p><uc-video uuid="83fd9f98-1939-4d99-b5e3-85563f89f5fb" fluid="true" style="width: min(3840px, 100%);" class="tox-uc-video" contenteditable="false" controls="true" /></p>
88
<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>
99

1010
<h2>Mallorca's Outdoor Lifestyle</h2>

modules/ROOT/pages/8.3.0-release-notes.adoc

Lines changed: 84 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,33 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[]
2828

2929
The following premium plugin updates were released alongside {productname} {release-version}.
3030

31+
=== PowerPaste
32+
33+
The {productname} {release-version} release includes an accompanying release of the **PowerPaste** premium plugin.
34+
35+
**PowerPaste** includes the following addition.
36+
37+
==== `powerpaste_emf_processor` function that takes an `emf` blob and returns a promise of a `png` blob.
38+
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+
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+
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+
3153
=== Media Optimizer
3254

3355
The {productname} {release-version} release includes an accompanying release of the **Media Optimizer** premium plugin.
3456

35-
**Media Optimizer** includes the following improvements.
57+
**Media Optimizer** includes the following improvement and fix.
3658

3759
==== Support for uploading additional file types
3860
// #TINY-13270
@@ -43,16 +65,43 @@ The default list of supported file types can be customized using the xref:upload
4365

4466
For information on the **Media Optimizer** plugin, see: xref:uploadcare-documents.adoc[Media Optimizer: Documents].
4567

68+
==== Newly uploaded videos are now responsive
69+
// #TINY-13166
70+
71+
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].
72+
73+
For information on the **Media Optimizer** plugin, see: xref:uploadcare-video.adoc[Media Optimizer: Video].
74+
75+
==== CSS resource files were not loaded correctly.
76+
// #TINY-13154
77+
78+
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.
79+
80+
For information on the **Media Optimizer** plugin, see: xref:uploadcare.adoc[Media Optimizer].
81+
82+
=== Premium plugins now include ESM module support
83+
// #TINY-12888
84+
85+
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.
4686

4787
[[improvements]]
4888
== Improvements
4989

5090
{productname} {release-version} also includes the following improvements:
5191

52-
=== <TINY-vwxyz 1 changelog entry>
53-
// #TINY-vwxyz1
92+
=== Show editor notification when a premium plugin is not allowed for a given license key.
93+
// #TINY-12937
5494

55-
// CCFR here.
95+
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.
96+
97+
For more informaton on license keys, see: xref:license-key.adoc[License Key].
98+
99+
=== Accordions can now be opened and closed when the editor is set to readonly.
100+
// #TINY-12316
101+
102+
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.
103+
104+
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.
56105

57106

58107
[[additions]]
@@ -111,10 +160,38 @@ For more information, see xref:dialog-components.adoc#dropzone[dropzone componen
111160

112161
{productname} {release-version} also includes the following bug fixes:
113162

114-
=== <TINY-vwxyz 1 changelog entry>
115-
// #TINY-vwxyz1
163+
=== Accordions could be toggled when the editor was disabled.
164+
// #TINY-12315
116165

117-
// CCFR here.
166+
Earlier versions of {productname} allowed accordions to remain expandable even when the editor was disabled, creating inconsistent and unexpected behavior, particularly when used with the xref:autoresize.adoc[Autoresize plugin].
167+
168+
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.
169+
170+
=== Inline formats were not applied to the marker of a list item when its content was a single block element.
171+
// #TINY-13197
172+
173+
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.
174+
175+
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.
176+
177+
=== Tooltip is now translated correctly for the dropdown chevron of the bullet and number list toolbar buttons.
178+
// #TINY-13271
179+
180+
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.
181+
182+
=== Removing a line height at times did not remove it from all selected lines.
183+
// #TINY-13053
184+
185+
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.
186+
187+
{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.
188+
189+
=== The `font-size` style on list items was not copied to new list items.
190+
// #TINY-13224
191+
192+
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.
193+
194+
{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.
118195

119196

120197
[[security-fixes]]
@@ -149,4 +226,3 @@ There <is one | are <number> known issue<s> in {productname} {release-version}.
149226
// #TINY-vwxyz1
150227

151228
// CCFR here.
152-

modules/ROOT/pages/changelog.adoc

Lines changed: 29 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,35 @@ NOTE: This is the {productname} Community version changelog. For information abo
66

77
== xref:8.3.0-release-notes.adoc[8.3.0 - 2025-12-10]
88

9-
//TODO
9+
### Added
10+
* New `documents_file_types` option.
11+
// #TINY-13278
12+
* New `files_upload_handler` and `link_uploadtab` options in the Link plugin.
13+
// #TINY-13278
14+
* New upload tab to the link dialog when `files_upload_handler`, `documents_file_types`, and `link_uploadtab` are all specified.
15+
// #TINY-13278
16+
* New options for `dropzone` dialog components: `dropAreaLabel`, `buttonLabel`, `allowedFileTypes` and `allowedFileExtensions`.
17+
// #TINY-13278
18+
19+
### Improved
20+
* Accordions can now be opened and closed when the editor is in a read-only state.
21+
// #TINY-12316
22+
* An editor notification is now shown when a premium plugin is not allowed for a given license key.
23+
// #TINY-12937
24+
25+
### Fixed
26+
* Help Plugin did not contain an entry for the Fullpage HTML plugin.
27+
// #TINY-13183
28+
* Accordions could be toggled when the editor was in a disabled state.
29+
// #TINY-12315
30+
* Removing a line height sometimes did not remove it from all selected lines.
31+
// #TINY-13053
32+
* The `font-size` style on `li` elements was not copied to new list items.
33+
// #TINY-13224
34+
* Toolbar split button chevron tooltip is now the same as the main button tooltip unless explicitly set.
35+
// #TINY-13271
36+
* Inline formats were not applied to the marker of a list item when its content was a single block element.
37+
// #TINY-13197
1038

1139
== xref:8.2.2-release-notes.adoc[8.2.2 - 2025-11-13]
1240

modules/ROOT/pages/license-key.adoc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ a| * Add the `license_key` parameter to your {productname} configuration
298298

299299
| xref:invalid-plugin[Invalid plugin]
300300
| The "+${pluginCode}+" plugin requires a valid {productname} license key
301-
| _No editor message_
301+
| One or more premium plugins are disabled due to license key restrictions.
302302
a| * Verify that your license includes access to the premium plugin
303303
* Check if your license key is valid and not expired
304304
* Visit the link:https://support.tiny.cloud[Support Portal] if you believe you should have access to this plugin

modules/ROOT/pages/powerpaste-options.adoc

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,8 @@ include::partial$configuration/powerpaste_autolink_urls.adoc[leveloffset=+1]
2323

2424
include::partial$configuration/powerpaste_allow_local_images.adoc[leveloffset=+1]
2525

26+
include::partial$configuration/powerpaste_emf_processor.adoc[leveloffset=+1]
27+
2628
include::partial$configuration/paste_block_drop.adoc[leveloffset=+1]
2729

2830
include::partial$configuration/powerpaste_clean_filtered_inline_elements.adoc[leveloffset=+1]

modules/ROOT/pages/uploadcare-video.adoc

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ include::partial$configuration/uploadcare_video_resize.adoc[leveloffset=+1]
117117

118118
The plugin creates a custom `+<uc-video>+` element that replaces the standard HTML `+<video>+` element when videos are processed through Uploadcare's infrastructure.
119119

120-
.Example: Custom video element created by the plugin on video insertion
120+
.Example: Custom video element with fixed dimensions (non-responsive)
121121
[source,html]
122122
----
123123
<uc-video
@@ -130,8 +130,6 @@ The plugin creates a custom `+<uc-video>+` element that replaces the standard HT
130130
loop="false"
131131
muted="false"
132132
preload="metadata"
133-
width="640"
134-
height="360"
135133
poster="https://example.com/poster.jpg"
136134
showlogo="false"
137135
</uc-video>
Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
[[powerpaste_emf_processor]]
2+
== `+powerpaste_emf_processor+`
3+
4+
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
14+
plugins: 'powerpaste',
15+
powerpaste_word_import: 'clean',
16+
powerpaste_emf_processor: (blob) => {
17+
return fetch('YOUR_IMAGE_URL').then(res => res.blob())
18+
}
19+
});
20+
----
21+
22+
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.

modules/ROOT/partials/configuration/uploadcare_video_properties.adoc

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ Configures the video player properties and behavior for video elements.
1515
|`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.
1616
|`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.
1717
|`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`).
1919
|`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.
2020
|`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.
2121
|`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.
2525
|`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"`.
2626
|===
2727

28-
2928
.Example: Basic video player configuration
3029

3130
[source,js]

0 commit comments

Comments
 (0)