From 2bdf05e5c55142c9ebfb0fc91085e99b82b6cea8 Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Mon, 22 Sep 2025 15:51:26 +1000 Subject: [PATCH 1/4] DOC-3295: TinyMCE 8.2.0 Release Documentation. --- modules/ROOT/nav.adoc | 16 ++ modules/ROOT/pages/8.2.0-release-notes.adoc | 195 ++++++++++++++++++ modules/ROOT/pages/changelog.adoc | 4 + modules/ROOT/pages/release-notes.adoc | 6 + .../partials/misc/supported-versions.adoc | 1 + 5 files changed, 222 insertions(+) create mode 100644 modules/ROOT/pages/8.2.0-release-notes.adoc diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index e189dcd8be..4cb12a6303 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -415,6 +415,22 @@ ** xref:tinymce-and-cors.adoc[Cross-Origin Resource Sharing (CORS)] * Release information ** xref:release-notes.adoc[Release notes for {productname}] +*** {productname} 8.2.0 +**** xref:8.2.0-release-notes.adoc#overview[Overview] +**** xref:8.2.0-release-notes.adoc#new-premium-plugin[New Premium Plugin] +**** xref:8.2.0-release-notes.adoc#new-open-source-plugin[New Open Source Plugin] +**** xref:8.2.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes] +**** xref:8.2.0-release-notes.adoc#accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium Plugin end-of-life announcement] +**** xref:8.2.0-release-notes.adoc#accompanying-open-source-plugin-end-of-life-announcement[Accompanying Open Source Plugin end-of-life announcement] +**** xref:8.2.0-release-notes.adoc#accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] +**** xref:8.2.0-release-notes.adoc#improvements[Improvements] +**** xref:8.2.0-release-notes.adoc#additions[Additions] +**** xref:8.2.0-release-notes.adoc#changes[Changes] +**** xref:8.2.0-release-notes.adoc#removed[Removed] +**** xref:8.2.0-release-notes.adoc#bug-fixes[Bug fixes] +**** xref:8.2.0-release-notes.adoc#security-fixes[Security fixes] +**** xref:8.2.0-release-notes.adoc#deprecated[Deprecated] +**** xref:8.2.0-release-notes.adoc#known-issues[Known issues] *** {productname} 8.1.2 **** xref:8.1.2-release-notes.adoc#overview[Overview] **** xref:8.1.2-release-notes.adoc#bug-fix[Bug fix] diff --git a/modules/ROOT/pages/8.2.0-release-notes.adoc b/modules/ROOT/pages/8.2.0-release-notes.adoc new file mode 100644 index 0000000000..753c00f0ea --- /dev/null +++ b/modules/ROOT/pages/8.2.0-release-notes.adoc @@ -0,0 +1,195 @@ += {productname} 8.2.0 +:release-version: 8.2.0 +:navtitle: {productname} 8.2.0 +:description: Release notes for {productname} 8.2.0 +:keywords: releasenotes, new, changes, bugfixes +:page-toclevels: 1 + +include::partial$misc/admon-releasenotes-for-stable.adoc[] + + +[[overview]] +== Overview + +{productname} 8.2.0 was released for {enterpriseversion} and {cloudname} on Wednesday, October 22^nd^, 2025. These release notes provide an overview of the changes for {productname} 8.2.0, including: + +// Remove sections and section boilerplates as necessary. +// Pluralise as necessary or remove the placeholder plural marker. +* xref:new-premium-plugin[New Premium plugin] +* xref:new-open-source-plugin[New Open Source plugin] +* xref:accompanying-premium-plugin-changes[Accompanying Premium plugin changes] +* xref:accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium plugin end-of-life announcement] +* xref:accompanying-open-source-plugin-end-of-life-announcement[Accompanying open source plugin end-of-life-announcement] +* xref:accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] +* xref:improvements[Improvements] +* xref:additions[Additions] +* xref:changes[Changes] +* xref:bug-fixes[Bug fixes] +* xref:security-fixes[Security fixes] +* xref:deprecated[Deprecated] +* xref:known-issues[Known issues] + + +[[new-premium-plugin]] +== New Premium plugin + +The following new Premium plugin was released alongside {productname} 8.2.0. + +=== + +The new Premium plugin, **** // description here. + +For information on the **** plugin, see xref:.adoc[]. + + +[[new-open-source-plugin]] +== New Open Source plugin + +The following new Open Source plugin was released alongside {productname} 8.2.0. + +=== + +The new open source plugin, **** // description here. + +For information on the **** plugin, see xref:.adoc[]. + + +[[accompanying-premium-plugin-changes]] +== Accompanying Premium plugin changes + +The following premium plugin updates were released alongside {productname} 8.2.0. + +=== + +The {productname} 8.2.0 release includes an accompanying release of the **** premium plugin. + +**** includes the following . + +==== + +// CCFR here. + +For information on the **** plugin, see: xref:.adoc[]. + + +[[accompanying-premium-plugin-end-of-life-announcement]] +== Accompanying Premium plugin end-of-life announcement + +The following Premium plugin has been announced as reaching its end-of-life: + +=== + +{productname}'s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. + + +[[accompanying-open-source-plugin-end-of-life-announcement]] +== Accompanying open source plugin end-of-life announcement + +The following open source plugin has been announced as reaching its end-of-life: + +=== + +{productname}'s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. + + +[[accompanying-enhanced-skins-and-icon-packs-changes]] +== Accompanying Enhanced Skins & Icon Packs changes + +The {productname} 8.2.0 release includes an accompanying release of the **Enhanced Skins & Icon Packs**. + +=== Enhanced Skins & Icon Packs + +The **Enhanced Skins & Icon Packs** release includes the following updates: + +The **Enhanced Skins & Icon Packs** were rebuilt to pull in the changes also incorporated into the default {productname} 8.2.0 skin, Oxide. + +For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-and-icon-packs.adoc[Enhanced Skins & Icon Packs]. + + +[[improvements]] +== Improvements + +{productname} 8.2.0 also includes the following improvement: + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[additions]] +== Additions + +{productname} 8.2.0 also includes the following addition: + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[changes]] +== Changes + +{productname} 8.2.0 also includes the following change: + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[removed]] +== Removed + +{productname} 8.2.0 also includes the following removal: + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[bug-fixes]] +== Bug fixes + +{productname} 8.2.0 also includes the following bug fix: + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[security-fixes]] +== Security fixes + +{productname} 8.2.0 includes : + +=== +// #TINY-vwxyz1 + +// CCFR here. + + +[[deprecated]] +== Deprecated + +{productname} 8.2.0 includes the following deprecation: + +=== The `` configuration property, ``, has been deprecated + +// placeholder here. + + +[[known-issues]] +== Known issues + +This section describes issues that users of {productname} 8.2.0 may encounter and possible workarounds for these issues. + +There known issue in {productname} 8.2.0. + +=== +// #TINY-vwxyz1 + +// CCFR here. diff --git a/modules/ROOT/pages/changelog.adoc b/modules/ROOT/pages/changelog.adoc index 2e800a1f0d..e5e3f30baa 100644 --- a/modules/ROOT/pages/changelog.adoc +++ b/modules/ROOT/pages/changelog.adoc @@ -4,6 +4,10 @@ NOTE: This is the {productname} Community version changelog. For information about the latest {cloudname} or {enterpriseversion} Release, see: xref:release-notes.adoc[{productname} Release Notes]. +== xref:8.2.0-release-notes.adoc[8.2.0 - 2025-10-22] + +//TODO + == xref:8.1.2-release-notes.adoc[8.1.2 - 2025-09-18] ### Fixed diff --git a/modules/ROOT/pages/release-notes.adoc b/modules/ROOT/pages/release-notes.adoc index c9bee69ac7..23f9b0591c 100644 --- a/modules/ROOT/pages/release-notes.adoc +++ b/modules/ROOT/pages/release-notes.adoc @@ -9,6 +9,12 @@ This section lists the releases for {productname} {productmajorversion} and the [cols="1,1"] |=== +a| +[.lead] +xref:8.2.0-release-notes.adoc#overview[{productname} 8.2.0] + +Release notes for {productname} 8.2.0 + a| [.lead] xref:8.1.2-release-notes.adoc#overview[{productname} 8.1.2] diff --git a/modules/ROOT/partials/misc/supported-versions.adoc b/modules/ROOT/partials/misc/supported-versions.adoc index 6c92e7fd71..cd0a875b30 100644 --- a/modules/ROOT/partials/misc/supported-versions.adoc +++ b/modules/ROOT/partials/misc/supported-versions.adoc @@ -6,6 +6,7 @@ Supported versions of {productname}: [cols="^,^,^",options="header"] |=== |Version |Release Date |End of Premium Support +|8.2 |2025-10-22 |2027-10-22 |8.0 |2025-07-23 |2027-01-23 |7.9 |2025-05-14 |2026-11-14 |7.8 |2025-04-09 |2026-10-09 From 8dec7ad82407bda549aa70a5d2a526f06190ce26 Mon Sep 17 00:00:00 2001 From: Mitchell Crompton Date: Thu, 16 Oct 2025 13:42:11 +1100 Subject: [PATCH 2/4] TINY-12258: New `suggestededits_auto_approve` option (#3869) * TINY-12258: Add documentation for new `suggestededits_auto_approve` option * DOC-3223: Added release note entry for new suggestededits_auto_approve option --------- Co-authored-by: Karl Kemister-Sheppard --- .../suggestededits-auto-approve/index.html | 44 +++++++++++++++++++ .../suggestededits-auto-approve/index.js | 24 ++++++++++ modules/ROOT/pages/8.2.0-release-notes.adoc | 14 ++++++ modules/ROOT/pages/suggestededits.adoc | 2 + .../suggestededits_auto_approve.adoc | 27 ++++++++++++ 5 files changed, 111 insertions(+) create mode 100644 modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.html create mode 100644 modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.js create mode 100644 modules/ROOT/partials/configuration/suggestededits_auto_approve.adoc diff --git a/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.html b/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.html new file mode 100644 index 0000000000..9cb33f1b32 --- /dev/null +++ b/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.html @@ -0,0 +1,44 @@ + diff --git a/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.js b/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.js new file mode 100644 index 0000000000..fb93a40d34 --- /dev/null +++ b/modules/ROOT/examples/live-demos/suggestededits-auto-approve/index.js @@ -0,0 +1,24 @@ +const API_URL = 'https://demouserdirectory.tiny.cloud/v1/users'; + +const tinymceElement = document.querySelector('textarea#suggestededits-auto-approve'); +const model = JSON.parse(tinymceElement.getAttribute('suggestededits-model')); + +tinymce.init({ + selector: 'textarea#suggestededits-auto-approve', + height: 500, + plugins: 'suggestededits advlist anchor autolink code charmap emoticons fullscreen help image link lists media preview searchreplace table', + toolbar: 'undo redo | suggestededits | styles fontsizeinput | bold italic | align bullist numlist | table link image | code', + content_style: 'body { font-family:Helvetica,Arial,sans-serif; font-size:16px }', + + suggestededits_model: model, + suggestededits_access: 'full', + suggestededits_content: 'html', + suggestededits_auto_approve: true, + + user_id: 'kai-nakamura', + fetch_users: (userIds) => Promise.all(userIds + .map((userId) => + fetch(`${API_URL}/${userId}`) + .then((response) => response.json()) + .catch(() => ({ id: userId })))), +}); diff --git a/modules/ROOT/pages/8.2.0-release-notes.adoc b/modules/ROOT/pages/8.2.0-release-notes.adoc index 753c00f0ea..cde1d11cca 100644 --- a/modules/ROOT/pages/8.2.0-release-notes.adoc +++ b/modules/ROOT/pages/8.2.0-release-notes.adoc @@ -72,6 +72,20 @@ The {productname} 8.2.0 release includes an accompanying release of the **** plugin, see: xref:.adoc[]. +=== Suggested Edits + +The {productname} {release-version} release includes an accompanying release of the **Suggested Edits** premium plugin. + +**Suggested Edits** includes the following improvement. + +==== Added new `+suggestededits_auto_approve+` option to auto-approve edits by the current user +// #TINY-12258 + +A new `suggestededits_auto_approve` option has been added to the **Suggested Edits** plugin. This option allows automatic approval of edits made by the current user, as defined by the xref:suggestededits.adoc#user_id[`+user_id+`] setting, without requiring manual review. When enabled, any new edits and previously suggested changes from the same user are instantly approved and applied, streamlining workflows where review is unnecessary. + +For more information on the `+suggestededits_auto_approve+` option, see: xref:suggestededits.adoc#suggestededits_auto_approve[suggestededits_auto_approve]. + + [[accompanying-premium-plugin-end-of-life-announcement]] == Accompanying Premium plugin end-of-life announcement diff --git a/modules/ROOT/pages/suggestededits.adoc b/modules/ROOT/pages/suggestededits.adoc index 1d5c8240e7..b787f2bdbe 100644 --- a/modules/ROOT/pages/suggestededits.adoc +++ b/modules/ROOT/pages/suggestededits.adoc @@ -123,6 +123,8 @@ include::partial$configuration/suggestededits_content.adoc[leveloffset=+1] include::partial$configuration/suggestededits_access.adoc[leveloffset=+1] +include::partial$configuration/suggestededits_auto_approve.adoc[leveloffset=+1] + include::partial$configuration/user_id.adoc[leveloffset=+1] include::partial$configuration/fetch_users.adoc[leveloffset=+1] diff --git a/modules/ROOT/partials/configuration/suggestededits_auto_approve.adoc b/modules/ROOT/partials/configuration/suggestededits_auto_approve.adoc new file mode 100644 index 0000000000..928ddd7358 --- /dev/null +++ b/modules/ROOT/partials/configuration/suggestededits_auto_approve.adoc @@ -0,0 +1,27 @@ +[[suggestededits_auto_approve]] +== `suggestededits_auto_approve` + +The `suggestededits_auto_approve` option controls whether edits made during the session by the current user are automatically approved without requiring manual review. With this option enabled any edits by the current user, as set by the xref:#user_id[`+user_id+` option], as well as any previous suggestions made by the current user, will be instantly applied, bypassing the review process. This is useful for scenarios where reviews aren't necessary, such as when creating an initial draft or when the user is a trusted editor. + +When set to: + +* `false`: All edits require manual approval before being applied. +* `true`: All new edits are automatically approved and applied. + + +*Type:* `+Boolean+` + +*Default Value*: `false` + +.Example: `suggestededits_auto_approve: true` +[source,javascript] +---- +tinymce.init({ + selector: 'textarea#suggestededits', // Change this value according to your HTML + plugins: 'suggestededits', + toolbar: 'suggestededits', + suggestededits_auto_approve: true, // Change this value to auto-approve suggested edits +}); +---- + +liveDemo::suggestededits-auto-approve[] From 1c961fc1bcf26a6c097965b8323435ea637b733d Mon Sep 17 00:00:00 2001 From: Karl Kemister-Sheppard Date: Thu, 23 Oct 2025 11:30:58 +1000 Subject: [PATCH 3/4] DOC-3223: TinyMCE 8.2.0 Documentation and Community Changelog. (#3868) * DOC-3223: TinyMCE 8.2.0 Documentation and Community Changelog. * DOC-3223: Added support for loading web components into iframes. (#3888) * DOC-3223: Added support for loading web components into iframes. * DOC-3223: Add link to api docs for new getComponentUrls. * DOC-3223: Head element added to the same line as the meta element. (#3887) * DOC-3223: Some elements would be given an extra newline by the serializer when indented. (#3885) * DOC-3223: Tooltips on toolbar buttons sometimes remained visible if the button icon was updated while hovered. (#3873) * DOC-3223: UI elements like focus outlines and placeholders would be visible after printing. (#3877) * DOC-3223: Empty captions for floating images were not rendered correctly. (#3878) * DOC-3223: The cursor could get stuck around an absolute CEF element when navigating using arrow keys (#3879) * DOC: The cursor could get stuck around an absolute CEF element when navigating using arrow keys. * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: tiny-ben-tran * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: tiny-ben-tran * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: tiny-ben-tran --------- Co-authored-by: tiny-ben-tran * DOC-3223: Encoding provided in the charset meta attribute would not be detected (#3882) * DOC-3223: Encoding provided in the charset meta attribute would not be detected. * Update modules/ROOT/pages/8.2.0-release-notes.adoc * DOC-3223: Some UI elements related to dragging elements were not properly filtered out when fetching content. (#3881) * DOC-3223: The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame (#3883) * DOC-3223: The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame. * DOC-3223: Update word phrasing. * DOC-3223: Pressing enter while focused on title input during category or template creation would submit even when the submit button was disabled. (#3884) * DOC-3223: The schema will now allow the RDFa attribute on elements. (#3886) * DOC-3223: The schema will now allow the RDFa attribute on elements. * Update modules/ROOT/pages/8.2.0-release-notes.adoc * DOC-3223: New js/commerciallicensekeymanager.js file to lazyload majority of plugin after editor init. (#3880) * DOC-3223: Suggestions now display the type of content that was changed (#3890) * DOC-3223: Operation descriptions now shows the type of content that was changed. * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * Apply suggestion from @kimwoodfield Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * Apply suggestion from @kimwoodfield Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * Apply suggestion from @kimwoodfield Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * Apply suggestion from @kimwoodfield Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> * DOC-3223: Suggested edits and improvements to simpliy the context. * Update modules/ROOT/pages/8.2.0-release-notes.adoc Co-authored-by: Mitchell Crompton --------- Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> Co-authored-by: Mitchell Crompton * DOC-3296: Rename `Image Optimizer` to `Media Optimizer`, add new `uc-video` documentation with supporting demos. (#3872) * DOC-3296: Rename Image Optimizer to Media Optimizer, add new UC-Video Documentation with supporting demos. * DOC-3223: rename uploadcare_disable_video_resize to uploadcare_enable_video_resize and remove from demos. * DOC-3296: Update uc-video supported files.adoc, file structure changes and improvements. * DOC-3296: fix ifeval blocks * DOC-3296: add missing uploadcare-video toolbar element. * DOC-3223: Remove unwanted options, demo cleanup and improvements. * DOC-3223: Update toolbar buttons across all three pages. * Apply suggestion from @kemister85 * Update modules/ROOT/examples/live-demos/uploadcare-full-feature/index.js Co-authored-by: tiny-ben-tran * DOC-3223: Add missing uploadcare_resources option, cleanup of unsupported video_props. --------- Co-authored-by: tiny-ben-tran * DOC-3223: Initial cleanup and checks. * DOC-3223: Add missing release note entries. * DOC-3223: revert 8-dev changes to antora.yml. * DOC-3223: add missing changelog item and release note fix. --------- Co-authored-by: tiny-ben-tran Co-authored-by: Kim <45845989+kimwoodfield@users.noreply.github.com> Co-authored-by: Mitchell Crompton --- .../uploadcare-full-feature/example.js | 47 ++++ .../uploadcare-full-feature/index.html | 36 +++ .../uploadcare-full-feature/index.js | 46 ++++ .../live-demos/uploadcare-image/example.js | 34 +++ .../index.html | 13 +- .../{uploadcare => uploadcare-image}/index.js | 4 +- .../live-demos/uploadcare-video/example.js | 38 +++ .../live-demos/uploadcare-video/index.html | 34 +++ .../live-demos/uploadcare-video/index.js | 40 ++++ .../examples/live-demos/uploadcare/example.js | 34 --- modules/ROOT/nav.adoc | 15 +- modules/ROOT/pages/8.1.0-release-notes.adoc | 10 +- modules/ROOT/pages/8.2.0-release-notes.adoc | 206 ++++++++-------- modules/ROOT/pages/changelog.adoc | 30 ++- modules/ROOT/pages/license-key.adoc | 10 + modules/ROOT/pages/suggestededits.adoc | 4 +- modules/ROOT/pages/uploadcare-image.adoc | 219 ++++++++++++++++++ modules/ROOT/pages/uploadcare-video.adoc | 143 ++++++++++++ modules/ROOT/pages/uploadcare.adoc | 209 ++++------------- .../configuration/a11y_advanced_options.adoc | 4 +- .../configuration/custom_elements.adoc | 26 +++ .../configuration/uploadcare_resources.adoc | 82 +++++++ .../uploadcare_video_properties.adoc | 52 +++++ .../uploadcare_video_resize.adoc | 35 +++ .../partials/index-pages/premium-plugins.adoc | 4 +- ...plugin-compatibility-uploadcare-image.adoc | 9 +- .../partials/misc/premium-plugin-list.adoc | 2 +- .../uploadcare_dashboard_configuration.adoc | 17 ++ .../uploadcare-toolbar-buttons.adoc | 22 +- 29 files changed, 1093 insertions(+), 332 deletions(-) create mode 100644 modules/ROOT/examples/live-demos/uploadcare-full-feature/example.js create mode 100644 modules/ROOT/examples/live-demos/uploadcare-full-feature/index.html create mode 100644 modules/ROOT/examples/live-demos/uploadcare-full-feature/index.js create mode 100644 modules/ROOT/examples/live-demos/uploadcare-image/example.js rename modules/ROOT/examples/live-demos/{uploadcare => uploadcare-image}/index.html (99%) rename modules/ROOT/examples/live-demos/{uploadcare => uploadcare-image}/index.js (91%) create mode 100644 modules/ROOT/examples/live-demos/uploadcare-video/example.js create mode 100644 modules/ROOT/examples/live-demos/uploadcare-video/index.html create mode 100644 modules/ROOT/examples/live-demos/uploadcare-video/index.js delete mode 100644 modules/ROOT/examples/live-demos/uploadcare/example.js create mode 100644 modules/ROOT/pages/uploadcare-image.adoc create mode 100644 modules/ROOT/pages/uploadcare-video.adoc create mode 100644 modules/ROOT/partials/configuration/uploadcare_resources.adoc create mode 100644 modules/ROOT/partials/configuration/uploadcare_video_properties.adoc create mode 100644 modules/ROOT/partials/configuration/uploadcare_video_resize.adoc create mode 100644 modules/ROOT/partials/misc/uploadcare_dashboard_configuration.adoc diff --git a/modules/ROOT/examples/live-demos/uploadcare-full-feature/example.js b/modules/ROOT/examples/live-demos/uploadcare-full-feature/example.js new file mode 100644 index 0000000000..7f34993e1c --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-full-feature/example.js @@ -0,0 +1,47 @@ +tinymce.init({ + selector: "textarea#uploadcare-full-feature", + plugins: [ "uploadcare", "code", "link", "preview", "lists" ], + uploadcare_public_key: '', + uploadcare_filters: [ + { name: 'none' }, // No filter applied + { name: 'adaris', amount: -100 }, // Adaris with inverted effect (amount -100), label defaults to 'adaris' + { name: 'adaris', amount: -100, label: 'Vintage Fade' }, // Adaris with inverted effect (amount -100), label reads 'Vintage Fade' + { name: 'adaris', amount: 0, label: 'Base' }, // Adaris with neutral effect (amount 0), label reads 'Base' + { name: 'adaris', amount: 50, label: 'Light' }, // Adaris with light effect (amount 50), label reads 'Light' + { name: 'adaris', amount: 100, label: 'Standard' }, // Adaris with standard effect (amount 100), label reads 'Standard' + { name: 'adaris', amount: 200, label: 'Intense' }, // Adaris with intense effect (amount 200), label reads 'Intense' + { name: 'zevcen', amount: 200, label: 'Glow Boost' }, // Zevcen with intense effect (amount 200), label reads 'Glow Boost' + { name: 'galen', amount: 80, label: 'Soft Focus' }, // Galen with softening effect (amount 80), label reads 'Soft Focus' + { name: 'carris', amount: 120, label: 'Sharp Contrast' }, // Carris with high contrast (amount 120), label reads 'Sharp Contrast' + { name: 'ferand', amount: 60, label: 'Light Touch' }, // Ferand with light enhancement (amount 60), label reads 'Light Touch' + { name: 'sorahel', amount: -50, label: 'Night Mood' } // Sorahel with darkened effect (amount -50), label reads 'Night Mood' + ], + // Video configuration + uploadcare_video_properties: { + autoplay: false, + controls: true, + loop: false, + muted: true, + preload: 'metadata', + poster: 'https://placehold.co/600x400', + width: 640, + height: 360, + showLogo: false + }, + a11y_advanced_options: true, + toolbar: "undo redo | uploadcare uploadcare-video | styles | bold italic underline | forecolor | bullist numlist| link | code preview", + height: 700, + content_style: ` + body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } + h1 { font-size: 1.5em; } + h2 { font-size: 1.17em; } + h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } + p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } + p { line-height: 1.6; margin: 0; } + p + p { margin-top: 1rem; } + a { color: #2b70e3; } + blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } + figcaption {font-size: 0.875em;} + uc-video { display: block; margin: 1rem 0; } + ` +}); \ No newline at end of file diff --git a/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.html b/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.html new file mode 100644 index 0000000000..49975197ab --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.html @@ -0,0 +1,36 @@ + \ No newline at end of file diff --git a/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.js b/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.js new file mode 100644 index 0000000000..90d9ce8549 --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-full-feature/index.js @@ -0,0 +1,46 @@ +tinymce.init({ + selector: "textarea#uploadcare-full-feature", + plugins: [ "uploadcare", "code", "link", "preview", "lists" ], + uploadcare_public_key: '630992ad50fe2291c406', + uploadcare_cdn_base_url: 'https://tiny.ucarecdn.com', + uploadcare_store_type: 'temporary', + uploadcare_filters: [ + { name: 'adaris', amount: -100 }, // Adaris with inverted effect (amount -100), label defaults to 'adaris' + { name: 'adaris', amount: -100, label: 'Vintage' }, // Adaris with inverted effect (amount -100), label reads 'Vintage' + { name: 'adaris', amount: 0, label: 'Base' }, // Adaris with neutral effect (amount 0), label reads 'Base' + { name: 'adaris', amount: 50, label: 'Light' }, // Adaris with light effect (amount 50), label reads 'Light' + { name: 'adaris', amount: 200, label: 'Intense' }, // Adaris with intense effect (amount 200), label reads 'Intense' + { name: 'galen', amount: 80, label: 'Soft' }, // Galen with softening effect (amount 80), label reads 'Soft' + { name: 'carris', amount: 120, label: 'Sharp' }, // Carris with high contrast (amount 120), label reads 'Sharp' + { name: 'sorahel', amount: -50, label: 'Night' }, // Sorahel with darkened effect (amount -50), label reads 'Night' + { name: 'none' }, // No filter applied + ], + // Video configuration + uploadcare_video_properties: { + autoplay: false, + controls: true, + loop: false, + muted: true, + preload: 'metadata', + // poster: 'https://placehold.co/600x400', // Optional poster image URL + width: 640, + height: 360, + showLogo: false + }, + a11y_advanced_options: true, + toolbar: "undo redo | uploadcare uploadcare-video | styles | bold italic underline | forecolor | bullist numlist| link | code preview", + height: 700, + content_style: ` + body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } + h1 { font-size: 1.5em; } + h2 { font-size: 1.17em; } + h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } + p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } + p { line-height: 1.6; margin: 0; } + p + p { margin-top: 1rem; } + a { color: #2b70e3; } + blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } + figcaption {font-size: 0.875em;} + uc-video { display: block; margin: 1rem 0; } + ` +}); diff --git a/modules/ROOT/examples/live-demos/uploadcare-image/example.js b/modules/ROOT/examples/live-demos/uploadcare-image/example.js new file mode 100644 index 0000000000..7b341b467a --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-image/example.js @@ -0,0 +1,34 @@ +tinymce.init({ + selector: "textarea#uploadcare-image", + plugins: [ "uploadcare", "code", "link", "preview", "lists" ], + uploadcare_public_key: '', + uploadcare_filters: [ + { name: 'none' }, // No filter applied + { name: 'adaris', amount: -100 }, // Adaris with inverted effect (amount -100), label defaults to 'adaris' + { name: 'adaris', amount: -100, label: 'Vintage Fade' }, // Adaris with inverted effect (amount -100), label reads 'Vintage Fade' + { name: 'adaris', amount: 0, label: 'Base' }, // Adaris with neutral effect (amount 0), label reads 'Base' + { name: 'adaris', amount: 50, label: 'Light' }, // Adaris with light effect (amount 50), label reads 'Light' + { name: 'adaris', amount: 100, label: 'Standard' }, // Adaris with standard effect (amount 100), label reads 'Standard' + { name: 'adaris', amount: 200, label: 'Intense' }, // Adaris with intense effect (amount 200), label reads 'Intense' + { name: 'zevcen', amount: 200, label: 'Glow Boost' }, // Zevcen with intense effect (amount 200), label reads 'Glow Boost' + { name: 'galen', amount: 80, label: 'Soft Focus' }, // Galen with softening effect (amount 80), label reads 'Soft Focus' + { name: 'carris', amount: 120, label: 'Sharp Contrast' }, // Carris with high contrast (amount 120), label reads 'Sharp Contrast' + { name: 'ferand', amount: 60, label: 'Light Touch' }, // Ferand with light enhancement (amount 60), label reads 'Light Touch' + { name: 'sorahel', amount: -50, label: 'Night Mood' } // Sorahel with darkened effect (amount -50), label reads 'Night Mood' + ], + a11y_advanced_options: true, + toolbar: "undo redo | uploadcare | styles | bold italic underline | forecolor | bullist numlist| link | code preview", + height: 700, + content_style: ` + body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } + h1 { font-size: 1.5em; } + h2 { font-size: 1.17em; } + h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } + p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } + p { line-height: 1.6; margin: 0; } + p + p { margin-top: 1rem; } + a { color: #2b70e3; } + blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } + figcaption {font-size: 0.875em;} + ` + }); diff --git a/modules/ROOT/examples/live-demos/uploadcare/index.html b/modules/ROOT/examples/live-demos/uploadcare-image/index.html similarity index 99% rename from modules/ROOT/examples/live-demos/uploadcare/index.html rename to modules/ROOT/examples/live-demos/uploadcare-image/index.html index 6fb2c2d2e2..94c511d821 100644 --- a/modules/ROOT/examples/live-demos/uploadcare/index.html +++ b/modules/ROOT/examples/live-demos/uploadcare-image/index.html @@ -1,17 +1,23 @@ - \ No newline at end of file + diff --git a/modules/ROOT/examples/live-demos/uploadcare/index.js b/modules/ROOT/examples/live-demos/uploadcare-image/index.js similarity index 91% rename from modules/ROOT/examples/live-demos/uploadcare/index.js rename to modules/ROOT/examples/live-demos/uploadcare-image/index.js index 40d7018930..bfd47021ff 100644 --- a/modules/ROOT/examples/live-demos/uploadcare/index.js +++ b/modules/ROOT/examples/live-demos/uploadcare-image/index.js @@ -1,5 +1,5 @@ tinymce.init({ - selector: "textarea", + selector: "textarea#uploadcare-image", plugins: [ "uploadcare", "code", "link", "preview", "lists" ], uploadcare_public_key: '630992ad50fe2291c406', uploadcare_cdn_base_url: 'https://tiny.ucarecdn.com', @@ -16,7 +16,7 @@ tinymce.init({ { name: 'none' }, // No filter applied ], a11y_advanced_options: true, - toolbar: "undo redo | styles | bold italic underline | forecolor | bullist numlist| link uploadcare | code preview", + toolbar: "undo redo | uploadcare | styles | bold italic underline | forecolor | bullist numlist| link | code preview", height: 700, content_style: ` body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } diff --git a/modules/ROOT/examples/live-demos/uploadcare-video/example.js b/modules/ROOT/examples/live-demos/uploadcare-video/example.js new file mode 100644 index 0000000000..2a9bad1c1f --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-video/example.js @@ -0,0 +1,38 @@ +tinymce.init({ + selector: "textarea#uploadcare-video", + plugins: [ "uploadcare", "code", "link", "preview", "lists" ], + uploadcare_public_key: '', + // Video configuration + uploadcare_video_properties: { + autoplay: false, + controls: true, + loop: false, + muted: true, + preload: 'metadata', + // poster: 'https://placehold.co/600x400', // Optional poster image URL + width: 640, + height: 360, + showLogo: false + }, + a11y_advanced_options: true, + toolbar: "undo redo | uploadcare uploadcare-video | styles | bold italic underline | forecolor | bullist numlist| link | code preview", + height: 700, + content_style: ` + body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } + h1 { font-size: 1.5em; } + h2 { font-size: 1.17em; } + h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } + p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } + p { line-height: 1.6; margin: 0; } + p + p { margin-top: 1rem; } + a { color: #2b70e3; } + blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } + figcaption {font-size: 0.875em;} + uc-video { + display: block; + margin: 1rem 0; + border-radius: 8px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + } + ` + }); diff --git a/modules/ROOT/examples/live-demos/uploadcare-video/index.html b/modules/ROOT/examples/live-demos/uploadcare-video/index.html new file mode 100644 index 0000000000..6a82b95a54 --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-video/index.html @@ -0,0 +1,34 @@ + diff --git a/modules/ROOT/examples/live-demos/uploadcare-video/index.js b/modules/ROOT/examples/live-demos/uploadcare-video/index.js new file mode 100644 index 0000000000..ee7d6aea71 --- /dev/null +++ b/modules/ROOT/examples/live-demos/uploadcare-video/index.js @@ -0,0 +1,40 @@ +tinymce.init({ + selector: "textarea#uploadcare-video", + plugins: [ "uploadcare", "code", "link", "preview", "lists" ], + uploadcare_public_key: '630992ad50fe2291c406', + uploadcare_cdn_base_url: 'https://tiny.ucarecdn.com', + uploadcare_store_type: 'temporary', + // Video configuration + uploadcare_video_properties: { + autoplay: false, + controls: true, + loop: false, + muted: true, + preload: 'metadata', + // poster: 'https://placehold.co/600x400', // Optional poster image URL + width: 640, + height: 360, + showLogo: false + }, + a11y_advanced_options: true, + toolbar: "undo redo | uploadcare uploadcare-video | styles | bold italic underline | forecolor | bullist numlist| link | code preview", + height: 700, + content_style: ` + body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } + h1 { font-size: 1.5em; } + h2 { font-size: 1.17em; } + h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } + p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } + p { line-height: 1.6; margin: 0; } + p + p { margin-top: 1rem; } + a { color: #2b70e3; } + blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } + figcaption {font-size: 0.875em;} + uc-video { + display: block; + margin: 1rem 0; + border-radius: 8px; + box-shadow: 0 4px 6px rgba(0, 0, 0, 0.1); + } + ` +}); diff --git a/modules/ROOT/examples/live-demos/uploadcare/example.js b/modules/ROOT/examples/live-demos/uploadcare/example.js deleted file mode 100644 index 38bcb9f27a..0000000000 --- a/modules/ROOT/examples/live-demos/uploadcare/example.js +++ /dev/null @@ -1,34 +0,0 @@ -tinymce.init({ - selector: "textarea", - plugins: [ "uploadcare", "code", "link", "preview", "lists" ], - uploadcare_public_key: '', - uploadcare_filters: [ - { name: 'none' }, // No filter applied - { name: 'adaris', amount: -100 }, // Adaris with inverted effect (amount -100), label defaults to 'adaris' - { name: 'adaris', amount: -100, label: 'Vintage Fade' }, // Adaris with inverted effect (amount -100), label reads 'Vintage Fade' - { name: 'adaris', amount: 0, label: 'Base' }, // Adaris with neutral effect (amount 0), label reads 'Base' - { name: 'adaris', amount: 50, label: 'Light' }, // Adaris with light effect (amount 50), label reads 'Light' - { name: 'adaris', amount: 100, label: 'Standard' }, // Adaris with standard effect (amount 100), label reads 'Standard' - { name: 'adaris', amount: 200, label: 'Intense' }, // Adaris with intense effect (amount 200), label reads 'Intense' - { name: 'zevcen', amount: 200, label: 'Glow Boost' }, // Zevcen with intense effect (amount 200), label reads 'Glow Boost' - { name: 'galen', amount: 80, label: 'Soft Focus' }, // Galen with softening effect (amount 80), label reads 'Soft Focus' - { name: 'carris', amount: 120, label: 'Sharp Contrast' }, // Carris with high contrast (amount 120), label reads 'Sharp Contrast' - { name: 'ferand', amount: 60, label: 'Light Touch' }, // Ferand with light enhancement (amount 60), label reads 'Light Touch' - { name: 'sorahel', amount: -50, label: 'Night Mood' } // Sorahel with darkened effect (amount -50), label reads 'Night Mood' - ], - a11y_advanced_options: true, - toolbar: "undo redo | styles | bold italic underline | forecolor | bullist numlist| link uploadcare | code preview", - height: 700, - content_style: ` - body { max-width: 920px; margin: 1.5rem auto; padding: 0 2vw; } - h1 { font-size: 1.5em; } - h2 { font-size: 1.17em; } - h1, h2, h3, h4, h5, h6 { font-weight: 500; margin: 0 0 0.75rem; } - p + h1, p + h2, p + h3, p + h4, p + h5, p + h6 { margin-top: 2rem; } - p { line-height: 1.6; margin: 0; } - p + p { margin-top: 1rem; } - a { color: #2b70e3; } - blockquote { color: #4e5c73; font-weight: 200; font-size: 1.3rem; margin: 1rem 2rem; padding: 0 0 0 1rem; border-left: 2px solid #2b70e3 !important; } - figcaption {font-size: 0.875em;} - ` - }); \ No newline at end of file diff --git a/modules/ROOT/nav.adoc b/modules/ROOT/nav.adoc index 4cb12a6303..af83412324 100644 --- a/modules/ROOT/nav.adoc +++ b/modules/ROOT/nav.adoc @@ -324,7 +324,9 @@ ***** xref:import-from-word-with-jwt-authentication-nodejs.adoc[Node.js] ***** xref:import-from-word-with-jwt-authentication-php.adoc[PHP] *** xref:editimage.adoc[Image Editing] -*** xref:uploadcare.adoc[Image Optimizer Powered by Uploadcare] +*** xref:uploadcare.adoc[Media Optimizer] +**** xref:uploadcare-image.adoc[Image] +**** xref:uploadcare-video.adoc[Video] *** xref:inline-css.adoc[Inline CSS] *** xref:linkchecker.adoc[Link Checker] *** xref:math.adoc[Math] @@ -417,20 +419,9 @@ ** xref:release-notes.adoc[Release notes for {productname}] *** {productname} 8.2.0 **** xref:8.2.0-release-notes.adoc#overview[Overview] -**** xref:8.2.0-release-notes.adoc#new-premium-plugin[New Premium Plugin] -**** xref:8.2.0-release-notes.adoc#new-open-source-plugin[New Open Source Plugin] **** xref:8.2.0-release-notes.adoc#accompanying-premium-plugin-changes[Accompanying Premium Plugin changes] -**** xref:8.2.0-release-notes.adoc#accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium Plugin end-of-life announcement] -**** xref:8.2.0-release-notes.adoc#accompanying-open-source-plugin-end-of-life-announcement[Accompanying Open Source Plugin end-of-life announcement] -**** xref:8.2.0-release-notes.adoc#accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] **** xref:8.2.0-release-notes.adoc#improvements[Improvements] -**** xref:8.2.0-release-notes.adoc#additions[Additions] -**** xref:8.2.0-release-notes.adoc#changes[Changes] -**** xref:8.2.0-release-notes.adoc#removed[Removed] **** xref:8.2.0-release-notes.adoc#bug-fixes[Bug fixes] -**** xref:8.2.0-release-notes.adoc#security-fixes[Security fixes] -**** xref:8.2.0-release-notes.adoc#deprecated[Deprecated] -**** xref:8.2.0-release-notes.adoc#known-issues[Known issues] *** {productname} 8.1.2 **** xref:8.1.2-release-notes.adoc#overview[Overview] **** xref:8.1.2-release-notes.adoc#bug-fix[Bug fix] diff --git a/modules/ROOT/pages/8.1.0-release-notes.adoc b/modules/ROOT/pages/8.1.0-release-notes.adoc index 842703e846..607d9a2fcc 100644 --- a/modules/ROOT/pages/8.1.0-release-notes.adoc +++ b/modules/ROOT/pages/8.1.0-release-notes.adoc @@ -55,19 +55,19 @@ To resolve this, {productname} now inserts a temporary hidden element before the For information on the **Spell Checker** plugin, see: xref:introduction-to-tiny-spellchecker.adoc[Spell Checker]. -=== Image Optimizer (Powered by Uploadcare) +=== Media Optimizer (Powered by Uploadcare) -The {productname} {release-version} release includes an accompanying release of the **Image Optimizer (Powered by Uploadcare)** premium plugin. +The {productname} {release-version} release includes an accompanying release of the **Media Optimizer (Powered by Uploadcare)** premium plugin. -**Image Optimizer (Powered by Uploadcare)** includes the following fix. +**Media Optimizer (Powered by Uploadcare)** includes the following fix. ==== Image previews sometimes showed the wrong image from a `srcset`. -In previous versions of the Image Optimizer premium plugin, an issue where image effects were applied based on the main `src` instead of the active `srcset` URL, caused discrepancies when the displayed image was selected from `srcset`. This led to a mismatch in the adjustment preview (rendered from the main `src`) versus the image shown in the editor (rendered from the `srcset` URL), resulting in different visual outcomes for effects such as blur or resize. +In previous versions of the Media Optimizer premium plugin, an issue where image effects were applied based on the main `src` instead of the active `srcset` URL, caused discrepancies when the displayed image was selected from `srcset`. This led to a mismatch in the adjustment preview (rendered from the main `src`) versus the image shown in the editor (rendered from the `srcset` URL), resulting in different visual outcomes for effects such as blur or resize. {productname} {release-version} resolves this issue by using the `currentSrc` property to generate previews, ensuring the preview and the editor image reference the same resource. As a result, the preview image and the image in the editor are now consistent. -For information on the **Image Optimizer Powered by Uploadcare** plugin, see: xref:uploadcare.adoc[Image Optimizer (Powered by Uploadcare)]. +For information on the **Media Optimizer Powered by Uploadcare** plugin, see: xref:uploadcare.adoc[Media Optimizer (Powered by Uploadcare)]. === Accessibility Checker diff --git a/modules/ROOT/pages/8.2.0-release-notes.adoc b/modules/ROOT/pages/8.2.0-release-notes.adoc index cde1d11cca..5414068491 100644 --- a/modules/ROOT/pages/8.2.0-release-notes.adoc +++ b/modules/ROOT/pages/8.2.0-release-notes.adoc @@ -11,72 +11,75 @@ include::partial$misc/admon-releasenotes-for-stable.adoc[] [[overview]] == Overview -{productname} 8.2.0 was released for {enterpriseversion} and {cloudname} on Wednesday, October 22^nd^, 2025. These release notes provide an overview of the changes for {productname} 8.2.0, including: +{productname} {release-version} was released for {enterpriseversion} and {cloudname} on Wednesday, October 22^nd^, 2025. These release notes provide an overview of the changes for {productname} {release-version}, including: -// Remove sections and section boilerplates as necessary. -// Pluralise as necessary or remove the placeholder plural marker. -* xref:new-premium-plugin[New Premium plugin] -* xref:new-open-source-plugin[New Open Source plugin] * xref:accompanying-premium-plugin-changes[Accompanying Premium plugin changes] -* xref:accompanying-premium-plugin-end-of-life-announcement[Accompanying Premium plugin end-of-life announcement] -* xref:accompanying-open-source-plugin-end-of-life-announcement[Accompanying open source plugin end-of-life-announcement] -* xref:accompanying-enhanced-skins-and-icon-packs-changes[Accompanying Enhanced Skins & Icon Packs changes] * xref:improvements[Improvements] -* xref:additions[Additions] -* xref:changes[Changes] * xref:bug-fixes[Bug fixes] -* xref:security-fixes[Security fixes] -* xref:deprecated[Deprecated] -* xref:known-issues[Known issues] -[[new-premium-plugin]] -== New Premium plugin +[[accompanying-premium-plugin-changes]] +== Accompanying Premium plugin changes -The following new Premium plugin was released alongside {productname} 8.2.0. +The following premium plugin updates were released alongside {productname} 8.2.0. -=== +=== Media Optimizer -The new Premium plugin, **** // description here. +The {productname} 8.2.0 release includes an accompanying release of the **Media Optimizer** premium plugin. -For information on the **** plugin, see xref:.adoc[]. +**Media Optimizer** now includes comprehensive video handling capabilities. +==== Video Upload Support -[[new-open-source-plugin]] -== New Open Source plugin +The **Media Optimizer** plugin now supports video upload and processing, extending beyond its previous image-only functionality. Users can now upload videos directly within the editor through drag-and-drop, file selection, or URL input. -The following new Open Source plugin was released alongside {productname} 8.2.0. +The plugin now supports commonly available video formats including MP4, WebM, 3GPP, MPEG variants, QuickTime, Matroska, AVI, Flash Video, RealMedia, and other standard video formats. -=== +This new functionality is supported with the following configuration options: -The new open source plugin, **** // description here. +* **`uploadcare_video_properties`**: Comprehensive video player configuration including autoplay, controls, loop and more. +* **`uploadcare_video_resize`**: Option to control whether videos can be resized directly within the editor. -For information on the **** plugin, see xref:.adoc[]. +For information on the **Media Optimizer** plugin, see: xref:uploadcare-video.adoc[Media Optimizer: Video]. +=== Empty captions for floating images were not rendered correctly. +// #TINY-12592 -[[accompanying-premium-plugin-changes]] -== Accompanying Premium plugin changes +In previous versions of **Media Optimizer**, when figures were styled with `+display: table+`, a floated `++` could cause an empty `+
+` to render incorrectly alongside the image instead of below it. Deleting the caption text further disrupted the layout, causing the caption area to shift or disappear entirely. -The following premium plugin updates were released alongside {productname} 8.2.0. +In {productname} {release-version}, this issue has been resolved by applying `+clear: both+` to `+
+` elements when the associated image is floated. This ensures captions always render below the image, even when empty, maintaining proper alignment and consistent visual structure. + +For information on the **Media Optimizer** plugin, see: xref:uploadcare.adoc[Media Optimizer]. + +=== License Key Manager + +The {productname} 8.2.0 release includes an accompanying release of the **License Key Manager**. + +==== New `+js/commerciallicensekeymanager.js+` file to lazyload majority of plugin after editor init. +// #TINY-12820 -=== +The **License Key Manager** has been reworked to include a new `+js/commerciallicensekeymanager.js+` file that is lazy-loaded when required. This change reduces the initialization time of the editor and time to first render. -The {productname} 8.2.0 release includes an accompanying release of the **** premium plugin. +For information on the **License Key Manager** plugin, see: xref:license-key.adoc[License Key Manager]. -**** includes the following . +=== Templates -==== +The {productname} {release-version} release includes an accompanying release of the **Templates** premium plugin. -// CCFR here. +**Templates** includes the following fix. -For information on the **** plugin, see: xref:.adoc[]. +==== Pressing enter while focused on title input during category or template creation would submit even when the submit button was disabled +// #TINY-12730 +Previously, pressing **Enter** while focused on the title input during category or template creation would trigger form submission, even when the submit button was disabled. This occurred because the input handling logic did not validate the form state before submission. As a result, users could inadvertently attempt to create a category or template with an empty name, causing an error. + +{productname} {release-version} addresses this issue by updating the input handling logic to check the form's validity before allowing submission when **Enter** is pressed. Now, if the form is invalid or the submit button is disabled, pressing **Enter** will not trigger submission, preventing erroneous attempts to create categories or templates with empty names. === Suggested Edits The {productname} {release-version} release includes an accompanying release of the **Suggested Edits** premium plugin. -**Suggested Edits** includes the following improvement. +**Suggested Edits** includes the following improvements. ==== Added new `+suggestededits_auto_approve+` option to auto-approve edits by the current user // #TINY-12258 @@ -85,39 +88,36 @@ A new `suggestededits_auto_approve` option has been added to the **Suggested Edi For more information on the `+suggestededits_auto_approve+` option, see: xref:suggestededits.adoc#suggestededits_auto_approve[suggestededits_auto_approve]. +=== Suggestions now display the type of content that was changed +// #TINY-12598 -[[accompanying-premium-plugin-end-of-life-announcement]] -== Accompanying Premium plugin end-of-life announcement - -The following Premium plugin has been announced as reaching its end-of-life: - -=== +Previously, the **Suggested Edits** plugin only displayed the word "content" in the suggestion card description, as a generalised context for each suggestion. -{productname}'s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. +In {release-version}, the **Suggested Edits** plugin displays the type of content as well as the type of edit in the card description, to provide more context for each suggestion. +For information on the **Suggested Edits** plugin, see: xref:suggestededits.adoc[Suggested Edits]. -[[accompanying-open-source-plugin-end-of-life-announcement]] -== Accompanying open source plugin end-of-life announcement +=== Full Page HTML -The following open source plugin has been announced as reaching its end-of-life: +The {productname} {release-version} release includes an accompanying release of the **Full Page HTML** premium plugin. -=== +**Full Page HTML** includes the following fix. -{productname}'s xref:.adoc[] plugin will be deactivated on
, , and is no longer available for purchase. +=== Encoding provided in the charset meta attribute would not be detected +// #TINY-12860 +The previous encoding detection logic did not recognize certain encodings defined using the charset `+meta+` attribute, which resulted in inconsistent or conflicting encodings within a single page and caused display or editing issues. -[[accompanying-enhanced-skins-and-icon-packs-changes]] -== Accompanying Enhanced Skins & Icon Packs changes +{productname} {release-version} addresses this issue by adding support for the new encoding type, ensuring that both the original and new encoding formats are correctly detected and processed. As a result, pages using either encoding style are now handled consistently. When encoded content is edited, the output is normalized to the previously supported encoding format, ensuring consistent markup and preventing confusion that could occur if the original encoding style were retained. -The {productname} 8.2.0 release includes an accompanying release of the **Enhanced Skins & Icon Packs**. +=== Head element added to the same line as the `meta` element +// #TINY-12859 -=== Enhanced Skins & Icon Packs +Previously, the `+meta+` property within the Full Page HTML plugin was not properly treated as a block-level element. This caused the `++` element to be appended directly to the same line as the `+meta+` tag, leading to formatting inconsistencies in the generated HTML output. -The **Enhanced Skins & Icon Packs** release includes the following updates: +In {release-version}, the `+meta+` property has been updated to behave as a block element, ensuring proper separation and newline handling within the `` section. -The **Enhanced Skins & Icon Packs** were rebuilt to pull in the changes also incorporated into the default {productname} 8.2.0 skin, Oxide. - -For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-and-icon-packs.adoc[Enhanced Skins & Icon Packs]. +For information on the **Full Page HTML** plugin, see: xref:fullpagehtml.adoc[Full Page HTML]. [[improvements]] @@ -125,85 +125,89 @@ For information on using Enhanced Skins & Icon Packs, see: xref:enhanced-skins-a {productname} 8.2.0 also includes the following improvement: -=== -// #TINY-vwxyz1 - -// CCFR here. +=== Some elements would be given an extra newline by the serializer when indented +// #TINY-12857 +Previously, certain elements received an additional newline when indented due to the title not being correctly recognized as a block by the DOM Parser serializer. This caused unwanted whitespace to appear in the output. The issue was resolved by explicitly marking the title as a block within the code, ensuring that serialization no longer introduces unnecessary whitespace. -[[additions]] -== Additions +[[bug-fixes]] +== Bug fixes -{productname} 8.2.0 also includes the following addition: +{productname} 8.2.0 also includes the following bug fixes: -=== -// #TINY-vwxyz1 +=== UI elements like focus outlines and placeholders would be visible after printing +// TINY-12584 -// CCFR here. +Previously, UI elements such as focus outlines and placeholder text were rendered in printed versions of the editor content, resulting in unwanted visual artifacts in printed documents. This behavior caused confusion and reduced the professional appearance of printed materials. To address this issue, printing-specific styles were introduced to automatically hide all UI-related elements within the editor content during printing. As a result, printed output now includes only the intended content, ensuring clean and consistent presentation across all printouts. +=== The `open` attribute on `
` elements is now normalized to `open="open"` when the accordion plugin is enabled. +// #TINY-12862 -[[changes]] -== Changes +Previously, the `open` attribute on `
` elements was inconsistently defined when used with the accordion plugin. In some cases, the attribute appeared as `+open="true"+`, while toggling through the plugin converted it to `+open="open"+`. This inconsistency caused issues when loading externally created content that contained multiple open accordions with different attribute values, leading to mismatched accordion states. -{productname} 8.2.0 also includes the following change: +In {productname} {release-version}, the behavior has been standardized: when the accordion plugin is enabled, the `open` attribute is normalized to `+open="open"+` on content load. -=== -// #TINY-vwxyz1 +=== Tooltips on toolbar buttons sometimes remained visible if the button icon was updated while hovered +// #TINY-12289 -// CCFR here. +Previously, button tooltips were not always dismissed correctly when icons were updated, because the element handling hover events was being replaced and the `mouseout` event never fired. This caused tooltips to remain visible after clicking a button, creating a confusing UI experience. +{productname} {release-version} addresses this issue by adjusting the icon rendering logic so hover and tooltip behavior are attached to the button itself rather than the icon element. As a result, when the `setIcon` API updates icons, it no longer interferes with mouse events. -[[removed]] -== Removed +=== The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame +// #TINY-12626 -{productname} 8.2.0 also includes the following removal: +A legacy workaround for a Chromium bug caused the page to scroll to the center of the editor when the editor gained focus while its top edge was outside the viewport; although unrelated, features like autoresize could frequently trigger this behavior and resulted in unexpected scrolling in some situations. -=== -// #TINY-vwxyz1 +As of {productname} {release-version}, the workaround has been removed now that the underlying Chromium issue has been fixed, allowing the browser to manage scrolling natively. -// CCFR here. +=== Some UI elements related to dragging elements were not properly filtered out when fetching content +// #TINY-12384 +In {productname} {release-version}, an issue was resolved where elements used by the table resize feature were not flagged for removal by the serializer. When content was fetched via a `+getContent()+` call during an active table resize, these transient UI nodes could be included in the returned HTML, leading to extraneous markup and potentially corrupted data. -[[bug-fixes]] -== Bug fixes +The fix marks these elements with bogus attributes so the serializer reliably filters them out, ensuring clean, stable content retrieval and preventing unintended artifacts in saved or processed output. -{productname} 8.2.0 also includes the following bug fix: +=== The cursor could get stuck around an absolutely positioned CEF element when navigating using arrow keys +// #TINY-10306 -=== -// #TINY-vwxyz1 +Previously, when using arrow keys to navigate content containing absolutely positioned non-editable elements, the cursor could become trapped near these elements. This issue disrupted caret movement and made it difficult for users to continue navigating around the editor's content. -// CCFR here. +In {productname} {release-version}, the horizontal caret navigation logic has been updated to ensure that the caret movement is no longer disrupted when navigating around absolutely positioned elements. +=== The schema will now allow the `property` RDFa attribute on `meta` elements +// #TINY-12858 -[[security-fixes]] -== Security fixes +Previously, the schema did not recognize the `property` RDFa attribute as valid for `meta` elements, causing it to be removed during content validation in features such as the {productname} `fullpagehtml` premium plugin. This behavior could strip essential metadata used for social media previews or structured data integrations, and required integrators to manually whitelist the attribute to retain it. -{productname} 8.2.0 includes : +In {release-version}, the schema has been updated to include `property` as a valid attribute for `meta` elements. This change ensures compatibility with common metadata standards. -=== -// #TINY-vwxyz1 +=== Corrected type of `undoManager.add` method. The `event` parameter is type `EditorEvent` not `Event`. +// #TINY-12936 -// CCFR here. +The `undoManager.add` method previously defined its `event` parameter as type `Event`, leading to inaccurate type inference and reduced developer clarity. This issue caused incomplete type validation and limited IDE assistance when working with `undo()` events. +{productname} {release-version} addresses this issue by updating the `undoManager.add` method to use the `EditorEvent` type for the `event` parameter, ensuring consistency with other {productname} APIs. -[[deprecated]] -== Deprecated +For more information on the `undoManager.add` method, see: xref:apis/tinymce.undomanager.adoc#add[undoManager.add()]. -{productname} 8.2.0 includes the following deprecation: +=== Chromium browsers would in certain situations scroll the editor unexpectedly when dragging content over the editor. +// #INT-3373 -=== The `` configuration property, ``, has been deprecated +Previously, in Chromium-based browsers starting with Chrome 141 (and some builds of 140), focusing the editor during a `dragover` event could trigger the browser's scroll-to-caret behavior. Because the caret initially sat at the start of the document, pages could jump to the top as users dragged content over the editor, disrupting drag-and-drop workflows. -// placeholder here. +In {productname} {release-version}, dragover handling has been updated to move the caret to the intended drop position before the editor receives focus. This ensures Chrome's scroll-to-caret check finds the caret already in view, preventing unexpected scrolling and maintaining a smooth drag-and-drop experience. +=== Added support for loading web components into iframes +// #TINY-13006 -[[known-issues]] -== Known issues +Previously, there was no method to load web components into the editor iframe or preview iframes used by other plugins, which prevented these components from rendering correctly. This limitation impacted users who relied on custom web components for extended editor functionality or content visualization. In {release-version}, a new API link:https://www.tiny.cloud/docs/tinymce/latest/apis/tinymce.html.schema/#getComponentUrls[getComponentUrls] has been introduced that allows specifying a script URL for the web component within the custom element schema. This enhancement enables web components to be properly registered and rendered within the {productname} editor environment. -This section describes issues that users of {productname} 8.2.0 may encounter and possible workarounds for these issues. +For an example of using custom elements with block-level and inline-level components, see: xref:content-filtering.adoc#example-using-custom_elements-with-block-level-and-inline-level-components[Example using `+custom_elements+` with block-level and inline-level components]. -There known issue in {productname} 8.2.0. +=== Addressed split buttons rendering narrower than in TinyMCE 7, ensuring consistent sizing across the toolbar +// #TINY-13097 && #TINY-13111 -=== -// #TINY-vwxyz1 +In {productname} {release-version}, an issue was resolved where split buttons rendered narrower than in {productname} 7 and other toolbar buttons. This occurred because the main portion of the split button used a CSS rule that caused it to collapse to the icon size during initialization, resulting in an incorrect fixed width. This made split buttons appear visually inconsistent, reduced their clickability, and could cause text labels to be truncated. -// CCFR here. +{productname} {release-version} addresses this issue by adjusting the width behavior to inherit the correct `34px` for icons and auto for text—ensuring consistent sizing across the toolbar. \ No newline at end of file diff --git a/modules/ROOT/pages/changelog.adoc b/modules/ROOT/pages/changelog.adoc index e5e3f30baa..47970d7ee2 100644 --- a/modules/ROOT/pages/changelog.adoc +++ b/modules/ROOT/pages/changelog.adoc @@ -6,7 +6,35 @@ NOTE: This is the {productname} Community version changelog. For information abo == xref:8.2.0-release-notes.adoc[8.2.0 - 2025-10-22] -//TODO +### Improved +* Some elements would be given an extra newline by the serializer when indented. +// #TINY-12857 + +### Fixed +* UI elements like focus outlines and placeholders would be visible after printing. +// #TINY-12584 +* The `open` attribute on `
` elements is now normalized to `open="open"` when the accordion plugin is enabled. +//#TINY-12862 +* Tooltips on toolbar buttons sometimes remained visible if the button icon was updated while hovered. +// #TINY-12289 +* The editor would upon gaining focus scroll to the center of the editor on some browsers if the top of the editor was out of frame. +// #TINY-12626 +* Some UI elements related to dragging elements were not properly filtered out when fetching content. +// #TINY-12384 +* The cursor could get stuck around an absolute CEF element when navigating using arrow keys. +// #TINY-10526 +* The schema will now allow the `property` RDFa attribute on `meta` elements. +// #TINY-12858 +* Corrected type of `undoManager.add` method. The `event` parameter is type `EditorEvent` not `Event`. +// #TINY-12936 +* Chromium browsers would in certain situations scroll the editor unexpectedly when dragging content over the editor. +// #INT-3373 +* Support for setting component urls for custom elements. +// #TINY-13006 +* Reverted toolbar button width to `auto`. +// #TINY-13097 +* Addressed split buttons rendering narrower than in TinyMCE 7, ensuring consistent sizing across the toolbar. +// #TINY-13111 == xref:8.1.2-release-notes.adoc[8.1.2 - 2025-09-18] diff --git a/modules/ROOT/pages/license-key.adoc b/modules/ROOT/pages/license-key.adoc index fdb12b916a..8a630e6e10 100644 --- a/modules/ROOT/pages/license-key.adoc +++ b/modules/ROOT/pages/license-key.adoc @@ -316,6 +316,12 @@ a| * Check your internet connection a| * Verify that your API key is valid * Check if your subscription is active * Visit the link:https://support.tiny.cloud[Support Portal] if the issue persists + +| xref:resource-load-error[Resource Load Error] +| The editor is disabled because the {productname} license key could not be validated. +| The editor is disabled because the {productname} license key could not be validated. The {productname} Commercial License Key Manager plugin was unable to load additional required resources. +a| * If bundling, verify that you are using the `licensekeymanager/index.js` file that imports other required resources. +* If hosting, verify that a `js/commerciallicensekeymanager.js` file is also present in the `plugins/licensekeymanager` folder. |=== === Detailed Error Descriptions @@ -360,4 +366,8 @@ A server-side error occurred while validating the API key. The editor will attem ==== Online API Key Error (4xx - Disable) The API key validation failed due to an invalid key or inactive subscription. The editor will be disabled until a valid API key is provided. For API key issues, visit link:https://www.tiny.cloud/my-account[Tiny Cloud Account] or see the "<>" section for clarification. +[[resource-load-error]] +==== Resource Load Error +The TinyMCE Commercial License Key Manager plugin was unable to load additional required resources. This typically occurs when the `js/commerciallicensekeymanager.js` file is missing or not properly configured. For bundled applications, ensure you are using the `licensekeymanager/index.js` file that imports other required resources. For self-hosted installations, verify that a `js/commerciallicensekeymanager.js` file is present in the `plugins/licensekeymanager` folder. See the <> section for implementation details. + For additional assistance, visit our link:https://support.tiny.cloud[Support Portal] or contact your link:https://www.tiny.cloud/my-account[Tiny Cloud Account] manager. diff --git a/modules/ROOT/pages/suggestededits.adoc b/modules/ROOT/pages/suggestededits.adoc index b787f2bdbe..9d983e4a26 100644 --- a/modules/ROOT/pages/suggestededits.adoc +++ b/modules/ROOT/pages/suggestededits.adoc @@ -55,7 +55,9 @@ Replaced content is represented as both added and removed content, and indicates === Sidebar -Each suggested edit is listed as a card in the sidebar and color coded by the type of change, along with the user who made the suggestion, when the edit was made, and any feedback provided on that suggestion. When selected, each suggestion can be handled in the following ways: +Each suggested edit is listed as a card in the sidebar and color coded by the type of change. Each card shows a contextual description of the content, along with the user who made the suggestion, when the edit was made, and any feedback provided on that suggestion. + +When selected, a suggestion can be handled in the following ways: * Accept: Resolves the suggestion, applying the edit to the document when the review is completed. * Reject: Resolves the suggestion, turning back the edit to the original state. diff --git a/modules/ROOT/pages/uploadcare-image.adoc b/modules/ROOT/pages/uploadcare-image.adoc new file mode 100644 index 0000000000..2469666e4c --- /dev/null +++ b/modules/ROOT/pages/uploadcare-image.adoc @@ -0,0 +1,219 @@ += Media Optimizer (Image) +:navtitle: Image feature of the Media Optimizer plugin +:description: The Image feature of the Media Optimizer plugin allows you to optimize images in your content. +:description_short: optimize images in your content. +:plugincode: uploadcare +:pluginname: Media Optimizer's Image feature +:keywords: plugin, {plugincode}, image, align, transform, alt text, caption, adjust, filter +:plugincategory: premium + +include::partial$misc/admon-premium-plugin.adoc[] + +== Overview + +The **Image feature of the Media Optimizer plugin** offers a range of powerful features for image hosting, serving, and editing. These include responsive image delivery, automatic image format selection, automatic compression, and non-destructive image transformations and adjustments, all powered by link:https://uploadcare.com[Uploadcare^]. + +== Key benefits + +* Improve page loading speed and save on bandwidth by serving images in the optimal size, format, and compression based on the visitor's browser and device. +* Ditch the image editor and adjust images right inside {productname} with non-destructive transformations and adjustments. Change your mind any time! +* Stay safe and compliant with secure uploads, built in malware protection, and unsafe content detection +* Enterprise-ready scalable cloud storage provided by Uploadcare, delivered through its lightning-fast global CDN, and compliant with SOC2 and GDPR standards. + +== Interactive example + +liveDemo::uploadcare-image[] + +:includedSection: uploadcarePlugin +include::partial$misc/plugin-compatibility-uploadcare-image.adoc[] +:!includedSection: + +== Basic setup + +To add the {pluginname} plugin to the editor, include `{plugincode}` in the `plugins` option in the editor configuration. + +.Example +[source,js] +---- +tinymce.init({ + selector: 'textarea', + plugins: 'uploadcare', + toolbar: 'uploadcare', + uploadcare_public_key: '', // Required for Uploadcare integration + // uploadcare_signed_upload_auth_provider: (_publicKey) => Promise.resolve({ + // signature: 'sig', + // expire: 123 + // }), // Recommended option for secure uploads +}); +---- + +[NOTE] +==== +The {pluginname} plugin overrides the xref:quickbars.adoc[Quickbar] quickimage toolbar item. To ensure a better user experience and to avoid having two image buttons configure `quickbars_insert_toolbar` to omit the `quickimage` toolbar item. +==== + + +== Image Operations + +Below is an overview of the features provided by the {pluginname} plugin for image optimization: + +[cols="1,1,^1,3",options="header"] +|=== +| Feature | Operation | Icon | Description + +| Align +| +| image:icons/align-left.svg[align-left.svg] +| Provides alignment options for the image or element. + +| +| Align Left +| image:icons/align-left.svg[align-left.svg] +| Aligns the image to the left. + +| +| Align Centre +| image:icons/align-center.svg[align-center.svg] +| Centers the image. + +| +| Align Right +| image:icons/align-right.svg[align-right.svg] +| Aligns the image to the right. + +| Transform +| +| image:icons/transform-image.svg[transform-image.svg] +| Allows users to apply transformations to the image: + +| +| Rotate Left +| image:icons/rotate-left.svg[rotate-left.svg] +| Rotates the image counterclockwise (left). + +| +| Rotate Right +| image:icons/rotate-right.svg[rotate-right.svg] +| Rotates the image clockwise (right). + +| +| Flip Vertically +| image:icons/flip-vertically.svg[flip-vertically.svg] +| Flips the image vertically. + +| +| Flip Horizontally +| image:icons/flip-horizontally.svg[flip-horizontally.svg] +| Flips the image horizontally. + +| +| Resize +| image:icons/resize.svg[resize.svg] +| Changes the size of the image. + +| Adjust +| +| image:icons/adjustments.svg[adjustments.svg] +| Provides tools for adjusting image properties: + +| +| Brightness +| image:icons/brightness.svg[brightness.svg] +| Adjusts the image brightness. + +| +| Contrast +| image:icons/contrast.svg[contrast.svg] +| Adjusts the image contrast. + +| +| Exposure +| image:icons/exposure.svg[exposure.svg] +| Adjusts the image exposure. + +| +| Gamma +| image:icons/gamma.svg[gamma.svg] +| Adjusts the image gamma. + +| +| Vibrance +| image:icons/vibrance.svg[vibrance.svg] +| Adjusts the image vibrance. + +| +| Saturation +| image:icons/saturation.svg[saturation.svg] +| Adjusts the image saturation. + +| +| Warmth +| image:icons/warmth.svg[warmth.svg] +| Adjusts the image warmth. + +| +| Grayscale +| image:icons/grayscale.svg[grayscale.svg] +| Converts the image to grayscale. + +| +| Invert Colors +| image:icons/invert.svg[invert.svg] +| Inverts the image colors. + +| +| Sharpen +| image:icons/sharpen.svg[sharpen.svg] +| Sharpens the image. + +| +| Blur +| image:icons/blur.svg[blur.svg] +| Blurs the image. + +| Filters +| +| image:icons/auto-image-enhancement.svg[auto-image-enhancement.svg] +| Provides tools for applying filters to the image. + +| Alt Text +| +| image:icons/alt-text.svg[alt-text.svg] +| Adds alternative text to describe the image for accessibility purposes. + +| +| Decorative Image +| image:icons/image-decorative.svg[image-decorative.svg] +a| +Marks the image as decorative, indicating it doesn't require alternative text for accessibility. + +This icon will only appear when the `a11y_advanced_options` configuration option is enabled. + +| Caption +| +| image:icons/caption.svg[caption.svg] +| Adds a caption below the image for additional context. + +| Revert +| +| image:icons/revert.svg[revert.svg] +| Restores the image to its original state by undoing all edits. +|=== + +== Options + +The following configuration options affect the behavior of the {pluginname} plugin: + + +include::partial$configuration/uploadcare_srcset_steps.adoc[leveloffset=+1] + +include::partial$configuration/uploadcare_filters.adoc[leveloffset=+1] + +:includedSection: uploadcarePlugin +include::partial$configuration/a11y_advanced_options.adoc[leveloffset=+1] +:!includedSection: + +:pluginfeature: uc-image +include::partial$misc/plugin-toolbar-button-id-boilerplate.adoc[] + +include::partial$misc/plugin-menu-item-id-boilerplate.adoc[] diff --git a/modules/ROOT/pages/uploadcare-video.adoc b/modules/ROOT/pages/uploadcare-video.adoc new file mode 100644 index 0000000000..1c7e01b7c7 --- /dev/null +++ b/modules/ROOT/pages/uploadcare-video.adoc @@ -0,0 +1,143 @@ += Media Optimizer (Video) +:navtitle: Video feature of the Media Optimizer plugin +:description: The Video feature of the Media Optimizer plugin allows you to optimize videos in your content. +:description_short: optimize videos in your content. +:plugincode: uploadcare +:pluginname: Media Optimizer's Video feature +:keywords: plugin, {plugincode}, video, controls, autoplay, loop, poster, resize, upload, url, insert, edit, video +:plugincategory: premium + +The {pluginname} plugin allows {productname} users to upload, process, and embed both images and videos directly within the editor. + +== Overview + +The {pluginname} plugin extends {productname} with powerful video handling features that allow users to upload, process, and embed videos directly within the editor. The plugin leverages Uploadcare's infrastructure to provide video processing, custom video player functionality, and responsive video sizing. + +== Key benefits + +* Upload and optimize videos directly within the editor +* Custom video player with configurable properties +* Video poster image generation +* Responsive video sizing +* Support for MP4 and WebM formats +* Drag-and-drop video upload +* URL-based video insertion +* Video controls customization +* Accessibility features for videos + +== Interactive example + +liveDemo::uploadcare-video[] + +== Basic setup + +To add the {pluginname} plugin to the editor, include `uploadcare` in the `plugins` option in the editor configuration. + +.Example +[source,js] +---- +tinymce.init({ + selector: 'textarea', + plugins: 'uploadcare', + toolbar: 'uploadcare uploadcare-video', + uploadcare_public_key: '', // Required for Uploadcare integration +}); +---- + +[NOTE] +==== +The {pluginname} plugin uses the same plugin code `+uploadcare+` as the Media Optimizer plugin. Video functionality is automatically enabled when video files are uploaded. + +When bundling {productname} with webpack or similar tools, the xref:uploadcare.adoc#uploadcare-resources[uploadcare_resources] option is required for video functionality to work properly, as it tells the plugin where to find the additional JavaScript resources needed for video playback. +==== + +== Video Operations + +Below is an overview of the features provided by the Video Optimizer plugin: + +[cols="1,1,4",options="header"] +|=== +| Feature | Icon | Description + +| Upload +| image:icons/folder.svg[folder.svg] +| Upload videos via drag-and-drop, file selection, or URL input + +| Upload from URL +| image:icons/link.svg[link.svg] +| Upload videos from a URL +|=== + +Below are the video player control options that are available to the video element: + +[cols="2,4",options="header"] +|=== +| Operation | Description + +| Play +| Customize video player controls and behavior + +| Mute +| Mute the video + +| Unmute +| Unmute the video + +| Slider +| Shows the progress of the video and allows users to move the slider to seek to a specific time in the video + +| Resize +| Changes the size of the video (when enabled) + +| Remaining Time +| Shows the remaining time of the video + +| Picture-in-Picture +| Enables picture-in-picture mode for the video + +| Settings +| Opens the video settings menu + +| Fullscreen +| Enables fullscreen mode for the video + +| UC Logo +| Shows the Uploadcare logo +|=== + +== Options + +The following configuration options affect the behavior of the {pluginname} plugin: + +include::partial$configuration/uploadcare_video_properties.adoc[leveloffset=+1] + +include::partial$configuration/uploadcare_video_resize.adoc[leveloffset=+1] + +== Custom Video Element + +The plugin creates a custom `++` element that replaces the standard HTML `+