`, could be incorrectly removed, leading to unexpected changes in the content structure. This issue primarily affected Chrome users and did not reproduce consistently in Safari or Firefox.
-[[bug-fixes]]
-== Bug fixes
+This issue has been resolved in {release-version}. The `mceInsertContent` command now properly retains the parent block elements when inserting content into a selected anchor element.
+
+=== Japanese keyboard could insert content while the editor was in `readonly` mode
+// #TINY-11363
+
+In previous versions of {productname}, an issue was identified where the editor permitted content insertion via IME (Input Method Editor) input, such as using a Japanese keyboard even when the editor was configured with `readonly: true`.
+
+With the release of {productname} {release-version}, this issue has been addressed by implementing event handlers that intercept and block IME-related input events and their default behaviors while in read-only mode. This enhancement ensures that the readonly setting is strictly enforced, preventing content modifications from all input sources, including IME.
+
+=== Autolink behavior was updated to preserve existing links.
+// TINY-11836
+
+Previously, the Autolink plugin could incorrectly re-link content that was already part of a hyperlink when the user pressed Enter at the end of a line. This occurred when the cursor was placed immediately after a link element rather than inside it and the visible text resembled a URL. As a result, Autolink could unintentionally overwrite link attributes, modify the destination URL, or alter otherwise valid markup.
+
+{productname} {release-version} resolves this issue by treating any text inside or directly following a hyperlink as the end of its search scope. This prevents Autolink from creating a new link if the content is already hyperlinked. The behavior now consistently mirrors the existing handling for cases when the cursor is inside a link.
+
+.Example of incorrect behavior
+[source,html]
+----
+
www.google.com
+
www.google.com
+----
+
+This update improves reliability when working with links, ensuring that attributes and destinations remain unchanged unless explicitly edited.
+
+=== Editor did not scroll into viewport on receiving focus on Chrome and Safari.
+// #TINY-12017
+
+Previously the editor did not scroll into the viewport when focused via the keyboard `Tab` key, causing a poor user experience as users had to manually scroll to find the editor.
+
+{productname} {release-version} introduces a workaround to resolve this issue. In addition and a bug report has been submitted to both Chrome (link:https://issues.chromium.org/issues/414129878[414129878]) and Safari (link:https://bugs.webkit.org/show_bug.cgi?id=292062[292062]) teams for further investigation.
+
+=== The toolbar did not always account for the full available space during horizontal scrolling.
+// #TINY-11549
+
+In previous versions of {productname}, the toolbar did not accurately account for the actual available space. As a result, the layout area allocated for the toolbar was smaller than the effective free space, leading to inconsistent resizing and positioning during horizontal scrolling.
+
+This issue has been addressed in {release-version}. The toolbar now correctly utilizes the available area, ensuring stable and consistent rendering within the intended layout.
+
+=== Improved handling of overlapping matches in abbreviation detection.
+// #TINY-11560
+
+Previously in {productname}, an issue occurred during pattern matching where overlapping regular expression matches caused duplicated content when processing abbreviations. For example, in the string `D. dd.D.`, multiple overlapping patterns such as `D.`, `dd.D`, and a final `D.` could be incorrectly matched and processed more than once. This resulted in unexpected duplication in the editor, such as `D. dd.DDD.`.
+
+This behavior was caused by insufficient overlap detection when identifying match regions, leading to multiple reinsertions of already matched substrings. The issue has now been resolved in {productname} {release-version} by refining the pattern-matching logic to accurately detect and avoid overlapping matches. The updated implementation ensures that each abbreviation is matched and processed only once, eliminating duplicated insertions and preserving the original content structure.
+
+.Example before the fix:
+[source,html]
+----
+
+
D. dd.D.
+
+
+
D. dd.DDD.
+----
+
+.Example after the fix:
+[source,html]
+----
+
+
D. dd.D.
+
+
+
D. dd.D.
+----
+
+=== Inline dialog dropdowns reposition when the dialog is dragged or the window is scrolled.
+// TINY-11368 sub TINY-11823, TINY-11832
+
+Prior to {productname} {release-version}, opening the preferences menu from within the **Search and Replace** dialog in inline mode caused the dropdown to remain fixed in its original position, even when the dialog was moved or the window was scrolled. This resulted in the dropdown becoming visually detached from its associated button and dialog, leading to a disjointed and confusing user experience.
+
+In {productname} {release-version}, this issue has been resolved. The dropdown menu now remains visually and functionally anchored to the dialog when it is dragged or when the window is scrolled. This ensures consistent and intuitive behavior, aligned with the handling of other dropdowns across the application.
+
+=== Tabbing inside a `figcaption` element no longer shows two text insertion carets.
+// #TINY-11997
+
+Previously, when tabbing within a `figcaption` element, the fake text caret was not properly hidden, resulting in both the browser’s native caret and the fake caret being rendered simultaneously. This visual duplication caused confusion for users during text navigation and editing. The issue occurred because the focus event inside editable captions did not trigger logic to hide the fake caret.
+
+This has been resolved by updating the focus handling behavior to detect whether the focused element is within an editable context and hide the fake caret accordingly.
-{productname} {release-version} also includes the following bug fix
:
+As a result, only a single, correct text caret is displayed when tabbing inside `figcaption` elements, improving editing clarity and user experience.
-// ===
-// #TINY-vwxyz1
+=== Pressing `enter` before a floating image sometimes duplicated the image.
+// #TINY-1676
-// CCFR here.
+Previously, when pressing `Enter` before a floating image, the image could be duplicated instead of a new line being correctly inserted. This issue was due to limitations in the native content-editable behavior of **Firefox**, which {productname} previously relied on for handling new lines. In particular, Firefox did not clear line content correctly when it included floated elements, resulting in duplicated images.
+With the release of {productname} {release-version}, an internal new line mechanism has been introduced to replace the unreliable browser behavior. This ensures consistent and correct handling of new lines around floating content. Pressing `Enter` before a floating image now behaves as expected, and duplicate images no longer appear.
-[[security-fixes]]
-== Security fixes
+=== Removed deprecated CSS media selector `-ms-high-contrast`.
+// TINY-11876
-{productname} {release-version} includes :
+The `-ms-high-contrast` media feature was previously used to apply a darker border color for improved accessibility in Internet Explorer 11. However, this feature is no longer supported and has been link:https://blogs.windows.com/msedgedev/2024/04/29/deprecating-ms-high-contrast/[officially deprecated] by Microsoft Edge. Its continued use triggered warnings in browser developer consoles, potentially affecting user experience during development. To enhance cross-browser compatibility and eliminate these warnings, the deprecated selector has been removed from {productname} in {release-version}.
-// ===
-// #TINY-vwxyz1
+=== Table resizers are now visible when inline editor has a `z-index` property.
+// #TINY-11981
-// CCFR here.
+Previously, table resizers were rendered outside the editor's stacking context, causing them to appear beneath the editor when a `z-index` property was applied, making them unusable.
+{productname} {release-version} addresses this issue, by moving the resizers inside the editor content area, which unifies the resizer behavior across all editor modes.
-[[deprecated]]
-== Deprecated
+Key Improvements/Benefits:
-{productname} {release-version} includes the following deprecation:
+* Integrators can now add a `z-index` such as `++` to the inline editor without affecting the visibility of the resizers.
+* UI elements are consistently placed within the controlled stacking context, improving layout reliability.
-// === The `
` configuration property, ``, has been deprecated
-// #TINY-vwxyz1
-// placeholder here.
+=== If `style_formats` is empty the button is now disabled.
+// #TINY-12005
+Previously, when the xref:user-formatting-options.adoc#style_formats[style_formats] configuration was explicitly set to an empty list, the **Formats** toolbar button remained enabled, displaying an empty and non-functional dropdown menu. This led to confusion, as the button appeared interactive and suggested available formatting options, despite none being configured.
-[[known-issues]]
-== Known issues
+In {release-version}, the {productname} editor now disables the **Formats** button entirely when no style formats are defined. This change improves usability by clearly signaling that there are no available style options, preventing unnecessary interaction and enhancing clarity for end users.
-This section describes issues that users of {productname} {release-version} may encounter and possible workarounds for these issues.
+=== Select UI elements were not properly styled on Chrome version 136.
+// #TINY-12131
-There known issue in {productname} {release-version}.
+Previously, the `Select` UI elements were not properly styled in Chrome version 136, resulting in no visual indication of the currently selected option, which lead to usability issues.
-// ===
-// #TINY-vwxyz1
-// CCFR here.
\ No newline at end of file
+{productname} {release-version} addresses this issue. Now, the styling for `Select` UI elements had been updated to ensure the selected option is clearly displayed, restoring proper visual feedback. This improvement ensures consistent and intuitive styling for Chrome 136 and earlier versions.
\ No newline at end of file
diff --git a/modules/ROOT/pages/apis/tinymce.editor.adoc b/modules/ROOT/pages/apis/tinymce.editor.adoc
index d67d64611b..0aa6ddec6f 100644
--- a/modules/ROOT/pages/apis/tinymce.editor.adoc
+++ b/modules/ROOT/pages/apis/tinymce.editor.adoc
@@ -90,7 +90,7 @@ the tinymce command identifiers documentation.|`xref:apis/tinymce.editor.adoc[Ed
link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more details on each event.
-__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 7.0. Use `dispatch` instead.__|`xref:apis/tinymce.util.observable.adoc[Observable]`
+__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.__|`xref:apis/tinymce.util.observable.adoc[Observable]`
|xref:#focus[focus()]|Focuses/activates the editor. This will set this editor as the activeEditor in the tinymce collection
it will also place DOM focus inside the editor.|`xref:apis/tinymce.editor.adoc[Editor]`
|xref:#getBody[getBody()]|Returns the root element of the editable area.
@@ -394,7 +394,7 @@ Fires the specified event by name. Consult the
link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more details on each event.
-__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 7.0. Use `dispatch` instead.__
+__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.__
==== Examples
[source, javascript]
diff --git a/modules/ROOT/pages/apis/tinymce.util.observable.adoc b/modules/ROOT/pages/apis/tinymce.util.observable.adoc
index ccdad4b6b2..ae3f5ac05b 100644
--- a/modules/ROOT/pages/apis/tinymce.util.observable.adoc
+++ b/modules/ROOT/pages/apis/tinymce.util.observable.adoc
@@ -20,7 +20,7 @@ link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more det
link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more details on each event.
-__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 7.0. Use `dispatch` instead.__|`xref:apis/tinymce.util.observable.adoc[Observable]`
+__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.__|`xref:apis/tinymce.util.observable.adoc[Observable]`
|xref:#hasEventListeners[hasEventListeners()]|Returns true/false if the object has a event of the specified name.|`xref:apis/tinymce.util.observable.adoc[Observable]`
|xref:#off[off()]|Unbinds an event listener to a specific event by name. Consult the
link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more details on each event.|`xref:apis/tinymce.util.observable.adoc[Observable]`
@@ -70,7 +70,7 @@ Fires the specified event by name. Consult the
link:https://www.tiny.cloud/docs/tinymce/7/events/[event reference] for more details on each event.
-__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 7.0. Use `dispatch` instead.__
+__Deprecated in TinyMCE 6.0 and has been marked for removal in TinyMCE 9.0. Use `dispatch` instead.__
==== Examples
[source, javascript]
diff --git a/modules/ROOT/pages/apis/tinymce.util.tools.adoc b/modules/ROOT/pages/apis/tinymce.util.tools.adoc
index f17c88f813..f2bdc1e1c8 100644
--- a/modules/ROOT/pages/apis/tinymce.util.tools.adoc
+++ b/modules/ROOT/pages/apis/tinymce.util.tools.adoc
@@ -1,10 +1,10 @@
= tinymce.util.Tools
:navtitle: tinymce.util.Tools
-:description: This class contains various utlity functions. These are also exposed directly on the tinymce namespace.
+:description: This class contains various utility functions. These are also exposed directly on the tinymce namespace.
:keywords: each, explode, grep, hasOwnProperty, inArray, is, isArray, makeMap, map, resolve, toArray, trim, walk
:moxie-type: api
-This class contains various utlity functions. These are also exposed directly on the tinymce namespace.
+This class contains various utility functions. These are also exposed directly on the tinymce namespace.
[[summary]]
== Summary
diff --git a/modules/ROOT/pages/changelog.adoc b/modules/ROOT/pages/changelog.adoc
index f17f2e781e..ad69bddb90 100644
--- a/modules/ROOT/pages/changelog.adoc
+++ b/modules/ROOT/pages/changelog.adoc
@@ -5,7 +5,46 @@
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:7.9.0-release-notes.adoc[7.9.0 - 2025-05-14]
-//TODO
+
+=== Added
+* Added new `disc` style option for unordered lists.
+// #TINY-12015
+* New `onboarding` option.
+// #TINY-11931
+
+=== Improved
+* The resize cursor now points in the correct direction for each resize mode. Patch contributed by link:https://github.com/daniloff200[daniloff200].
+// ##GH-10189
+* If `style_formats` is empty, the button is now disabled.
+// #TINY-12005
+* Inline dialog dropdowns reposition when the dialog is dragged or the window is scrolled.
+// #TINY-11368
+* Bullet list icons were have been updated to better represent the default styles.
+// #TINY-12014
+
+=== Changed
+* The ContextFormSizeInput lock button is now centered instead of aligned to the end.
+// #TINY-11916
+* Changed the default value of `advlist_bullet_styles` option to `default,disc,circle,square`.
+// #TINY-12083
+
+=== Fixed
+* Autolink no longer overrides already existing links when autolinking.
+// #TINY-11836
+* Removed the deprecated CSS media selector `-ms-high-contrast`.
+// #TINY-11876
+* The `mceInsertContent` command no longer deletes the parent block element when an anchor is selected.
+// #TINY-11953
+* Table resizers are now visible when inline editor has a z-index property.
+// #TINY-11981
+* Tabbing inside a `figcaption` element no longer displays two text insertion carets.
+// #TINY-11997
+* Pressing Enter before a floating image no longer duplicates the image.
+// #TINY-11676
+* Editor did not scroll into viewport on receiving focus on Chrome and Safari.
+// #TINY-12017
+* Select UI elements were not properly styled on Chrome version 136.
+// #TINY-12131
== xref:7.8.0-release-notes.adoc[7.8.0 - 2025-04-9]
@@ -14,8 +53,6 @@ NOTE: This is the {productname} Community version changelog. For information abo
// #TINY-11748
* New `extended_mathml_attributes` and `extended_mathml_elements` options.
// #TINY-11756
-* New `onboarding` option.
-// #TINY-11931
=== Improved
* Focus outline was misaligned with comment card border on saving an edit.
diff --git a/modules/ROOT/pages/cloud-troubleshooting.adoc b/modules/ROOT/pages/cloud-troubleshooting.adoc
index 5c60dcf7d7..14a059d2f1 100644
--- a/modules/ROOT/pages/cloud-troubleshooting.adoc
+++ b/modules/ROOT/pages/cloud-troubleshooting.adoc
@@ -8,63 +8,86 @@ When {cloudname} detects a problem, it will show an editor notification containi
NOTE: The wording of the notifications shown here may differ from the actual notifications from {cloudname}.
'''
-
[[invalid-api-key-cloud-troubleshooting]]
== Invalid API Key
[[A-valid-API-key-is-required-to-continue-using-TinyMCE.-Please-alert-the-admin-to-check-the-current-API-key]]
=== "A valid API key is required to continue using {productname}. **Please alert the admin** to check the current API key. xref:invalid-api-key.adoc[Click here to learn more.]"
-==== Cause "No API Key"
+==== Cause
+
+This notification is shown when either:
+
+* An `+apiKey+` is not provided in the script tag,
+* An empty or missing `+apiKey+` is provided, or
+* The `+apiKey+` provided cannot be found on the {cloudname} server.
-This notification is *only shown* when either:
+The `+apiKey+` must be:
-* An `+apiKey+` is not provided in the script tag.
-* `+no-api-key+` is provided as the API key.
+* An exact length,
+* comprised of certain characters, and
+* created with a {cloudname} account on the link:{accountsignup}/[{accountpage} page].
For example:
[source,html,subs="attributes+"]
----
-
+
----
+In this case, the editor will be in a **read-only** state, and a notification appears stating: **"A valid API key is required to continue using TinyMCE. Please alert the admin to check the current API key. Click here to learn more."**
+
==== Solution
-Update the `+src+` URL to include your (website or application developer's) {cloudname} API Key. Your API key should replace the string `+no-api-key+`.
+To resolve this issue:
+. Update the `+src+` URL to include your (website or application developer's) {cloudname} API Key, by replacing the placeholder `+no-api-key+` with your actual API key.
++
For example: if your API is `+abcd1234+`:
-
++
[source,html,subs="attributes+"]
----
----
++
+. Check the `+apiKey+` provided in the script tag:
+* Remove any leading or trailing spaces.
+* Remove any other characters that are not in your `apiKey`. If you are using variable substitution, ensure that the variable is substituting properly.
+* Ensure the `apiKey+` matches the API key shown at {accountpageurl}.
++
+. If you do not have an API key, or need to retrieve your existing key, visit: link:{accountsignup}/[{cloudname}].
-To retrieve your API key, or to sign up for an API key, visit: link:{accountsignup}/[{cloudname}].
+[NOTE]
+Visit our xref:invalid-api-key.adoc[Invalid API key] page for more information on how to fix an `invalid API key` issue with {productname}.
-NOTE: Visit our xref:invalid-api-key.adoc[Invalid API key] page for more information on how to fix a `invalid API key` with {productname}.
+'''
-==== Cause "Invalid API Key"
+[[no-api-key-cloud-troubleshooting]]
+== No API Key
-This notification is shown when the API key provided cannot be found on the {cloudname} server.
+[[A-valid-API-key-is-required-to-continue-using-TinyMCE.]]
+=== "A valid API key is required to continue using {productname}." (Console message)
-The `+apiKey+` must be:
+==== Cause
-* An exact length,
-* comprised of certain characters, and
-* created with a {cloudname} account on the link:{accountsignup}/[{accountpage} page].
+When `+no-api-key+` is set as the `+apiKey+` the editor will be in a **read-only** state, and the user will see a **"Finish setting up"** dialog prompting them to add a valid API key, configure their domain, and explore premium features.
+
+image:onboarding/onboarding-finish-setting-up-dialog.png[onboarding finish setting up dialog, width=500, height=auto]
==== Solution
-Check the `apiKey` provided in the script tag:
+. Update the `+src+` URL to include your (website or application developer's) {cloudname} API Key, by replacing the placeholder `+no-api-key+` with your actual API key.
-* Remove any leading or trailing spaces
-* Remove any other characters that are not in your `apiKey`. If you are using variable substitution, ensure that the variable is substituting properly
-* Ensure the `apiKey` matches the API key shown at {accountpageurl}.
+For example: if your API is `+abcd1234+`:
-NOTE: Visit our xref:invalid-api-key.adoc[Invalid API key] page for more information on how to fix a `invalid API key` with {productname}.
+[source,html,subs="attributes+"]
+----
+
+----
-'''
+To retrieve your API key, or to sign up for an API key, visit: link:{accountsignup}/[{cloudname}].
+
+''''
[[domain-not-registered]]
== Domain Not Registered
diff --git a/modules/ROOT/pages/export-to-pdf-with-jwt-authentication-nodejs.adoc b/modules/ROOT/pages/export-to-pdf-with-jwt-authentication-nodejs.adoc
index cc93a3a11d..5bfcedbf24 100644
--- a/modules/ROOT/pages/export-to-pdf-with-jwt-authentication-nodejs.adoc
+++ b/modules/ROOT/pages/export-to-pdf-with-jwt-authentication-nodejs.adoc
@@ -29,7 +29,7 @@ Inside the `public` folder where you created the `index.html` file add the HTML
TinyMCE with Export to PDF
+
----
+
-Replace `+your-api-key+` with your link:{accountpageurl}/[{cloudname} API key].
+Replace `+no-api-key+` with your link:{accountpageurl}/[{cloudname} API key].
* For Self-hosted {productname} deployments:
+
[source,html]
diff --git a/modules/ROOT/partials/auth/document-converters/nodejs/configuration-steps.adoc b/modules/ROOT/partials/auth/document-converters/nodejs/configuration-steps.adoc
index 27873853c9..a5bbf5671e 100644
--- a/modules/ROOT/partials/auth/document-converters/nodejs/configuration-steps.adoc
+++ b/modules/ROOT/partials/auth/document-converters/nodejs/configuration-steps.adoc
@@ -2,7 +2,7 @@
=== Add Your API Key
-* Replace `YOUR-API-KEY` in both files with your actual {productname} API key
+* Replace `no-api-key` in both files with your actual {productname} API key
* The API key should be the same in both the HTML script source and the JWT payload
=== Add Your Private Key
diff --git a/modules/ROOT/partials/auth/document-converters/nodejs/server-setup-jwt.adoc b/modules/ROOT/partials/auth/document-converters/nodejs/server-setup-jwt.adoc
index 016553e5f9..b451fcdb97 100644
--- a/modules/ROOT/partials/auth/document-converters/nodejs/server-setup-jwt.adoc
+++ b/modules/ROOT/partials/auth/document-converters/nodejs/server-setup-jwt.adoc
@@ -24,7 +24,7 @@ app.use(express.static(path.join(__dirname, 'public')));
// JWT token generation endpoint
app.post('/jwt', (req, res) => {
const payload = {
- aud: 'YOUR-API-KEY', // Replace with your actual API key
+ aud: 'no-api-key', // Replace with your actual API key
iat: Math.floor(Date.now() / 1000), // Issue timestamp
exp: Math.floor(Date.now() / 1000) + (60 * 10) // Expiration time (10 minutes)
};
diff --git a/modules/ROOT/partials/auth/document-converters/php/configuration-steps.adoc b/modules/ROOT/partials/auth/document-converters/php/configuration-steps.adoc
index 80142bc569..83acec7629 100644
--- a/modules/ROOT/partials/auth/document-converters/php/configuration-steps.adoc
+++ b/modules/ROOT/partials/auth/document-converters/php/configuration-steps.adoc
@@ -2,7 +2,7 @@
=== Add Your API Key
-* Replace `YOUR-API-KEY` in both files with your actual {productname} API key
+* Replace `no-api-key` in both files with your actual {productname} API key
* The API key should be the same in both the HTML script source and the JWT payload
=== Add Your Private Key
diff --git a/modules/ROOT/partials/auth/document-converters/php/server-setup-php.adoc b/modules/ROOT/partials/auth/document-converters/php/server-setup-php.adoc
index c19845721e..62a0469961 100644
--- a/modules/ROOT/partials/auth/document-converters/php/server-setup-php.adoc
+++ b/modules/ROOT/partials/auth/document-converters/php/server-setup-php.adoc
@@ -25,7 +25,7 @@ header("Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Ac
// JWT payload
$payload = array(
- "aud" => "YOUR-API-KEY",
+ "aud" => "no-api-key",
"iat" => time(), // Issue timestamp
"exp" => time() + 60 * 10 // Expiration time (10 minutes)
);
diff --git a/modules/ROOT/partials/configuration/icon_list.adoc b/modules/ROOT/partials/configuration/icon_list.adoc
index f1588936fe..c8a777f63d 100644
--- a/modules/ROOT/partials/configuration/icon_list.adoc
+++ b/modules/ROOT/partials/configuration/icon_list.adoc
@@ -107,9 +107,10 @@
| `+line-height+` | image:icons/line-height.svg[line-height.svg] | `+line-height.svg+`
| `+line+` | image:icons/line.svg[line.svg] | `+line.svg+`
| `+link+` | image:icons/link.svg[link.svg] | `+link.svg+`
-| `+list-bull-circle+` | image:icons/list-bull-circle.svg[list-bull-circle.svg] | `+list-bull-circle.svg+`
| `+list-bull-default+` | image:icons/list-bull-default.svg[list-bull-default.svg] | `+list-bull-default.svg+`
+| `+list-bull-circle+` | image:icons/list-bull-circle.svg[list-bull-circle.svg] | `+list-bull-circle.svg+`
| `+list-bull-square+` | image:icons/list-bull-square.svg[list-bull-square.svg] | `+list-bull-square.svg+`
+| `+list-bull-disc+` | image:icons/list-bull-disc.svg[list-bull-disc.svg] | `+list-bull-disc.svg+`
| `+list-num-default-rtl+` | image:icons/list-num-default-rtl.svg[list-num-default-rtl.svg] | `+list-num-default-rtl.svg+`
| `+list-num-default+` | image:icons/list-num-default.svg[list-num-default.svg] | `+list-num-default.svg+`
| `+list-num-lower-alpha-rtl+` | image:icons/list-num-lower-alpha-rtl.svg[list-num-lower-alpha-rtl.svg] | `+list-num-lower-alpha-rtl.svg+`
diff --git a/modules/ROOT/partials/integrations/swing-quick-start.adoc b/modules/ROOT/partials/integrations/swing-quick-start.adoc
index c8d8eb895a..3766f21954 100644
--- a/modules/ROOT/partials/integrations/swing-quick-start.adoc
+++ b/modules/ROOT/partials/integrations/swing-quick-start.adoc
@@ -26,11 +26,11 @@ The Swing integration allows the user to select the origin of the {productname}
----
final Config myTinyConfiguration = Config.embedded();
----
-* Cloud deployments pull {productname} from the {cloudname}. Use this option by passing your API key and xref:editor-plugin-version.adoc#specifying-the-tinymce-editor-version-deployed-from-cloud[specifying the {cloudname} version].
+* Cloud deployments pull {productname} from the {cloudname}. Use this option by passing your API key and xref:editor-plugin-version.adoc#specifying-the-tinymce-editor-version-deployed-from-cloud[specifying the {cloudname} version]. Ensure you replace `` with your API key.
+
[source,java,subs="attributes+"]
----
-final Config myTinyConfiguration = Config.cloud("", "{productmajorversion}-stable");
+final Config myTinyConfiguration = Config.cloud("", "{productmajorversion}-stable");
----
* External deployments allow to use a local version of {productname} by giving the address of the location where {productname} is being served.
+
diff --git a/modules/ROOT/partials/misc/premium-upgrade-promotion-option.adoc b/modules/ROOT/partials/misc/premium-upgrade-promotion-option.adoc
index dadafbeaa5..f056248aaf 100644
--- a/modules/ROOT/partials/misc/premium-upgrade-promotion-option.adoc
+++ b/modules/ROOT/partials/misc/premium-upgrade-promotion-option.adoc
@@ -2,6 +2,6 @@
include::partial$configuration/promotion.adoc[leveloffset=+1]
-// == Cloud promotion
+== Cloud promotion
-// include::partial$configuration/onboarding.adoc[leveloffset=+1]
\ No newline at end of file
+include::partial$configuration/onboarding.adoc[leveloffset=+1]
\ No newline at end of file