diff --git a/antora.yml b/antora.yml
index 19391046b8..de3c4e76f5 100644
--- a/antora.yml
+++ b/antora.yml
@@ -15,7 +15,7 @@ asciidoc:
webcomponent_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-webcomponent/dist/tinymce-webcomponent.min.js
jquery_url: https://cdn.jsdelivr.net/npm/@tinymce/tinymce-jquery@2/dist/tinymce-jquery.min.js
openai_proxy_url: https://openai.ai-demo-proxy.tiny.cloud/v1/chat/completions
- openai_proxy_token: eyJhbGciOiJFUzM4NCJ9.eyJhdWQiOlsiaHR0cHM6Ly9vcGVuYWkuYWktZGVtby1wcm94eS50aW55LmNsb3VkLyJdLCJleHAiOjE3NTEzMjgwMDAsImh0dHBzOi8vb3BlbmFpLmFpLWRlbW8tcHJveHkudGlueS5jbG91ZC9yb2xlIjoicHVibGljLWRlbW8iLCJpc3MiOiJodHRwczovL2FpLWRlbW8tcHJveHkudGlueS5jbG91ZC8iLCJqdGkiOiJmOGFmY2EyNC1mN2FhLTQxMjktYTc2Yy02YThlZDU3YjAyZjYiLCJzdWIiOiJhaS1hc3Npc3RhbnQtZGVtbyJ9.Xu0apHCbxgmRQTeTqrTIDFFhh2CgKeARRXa3mCxSGoCwZqkoQaFRZBCzDo8Xz7DuUa5mW2XHl-HYcYiXJM9ly16d0oY7lJefHBeLlmJEBE1CSttHBkCRWZS8eFLCasL6
+ openai_proxy_token: eyJhbGciOiJFUzM4NCJ9.eyJhdWQiOlsiaHR0cHM6Ly9vcGVuYWkuYWktZGVtby1wcm94eS50aW55LmNsb3VkLyJdLCJleHAiOjE3ODI4NjQwMDAsImh0dHBzOi8vb3BlbmFpLmFpLWRlbW8tcHJveHkudGlueS5jbG91ZC9yb2xlIjoicHVibGljLWRlbW8iLCJpc3MiOiJodHRwczovL2FpLWRlbW8tcHJveHkudGlueS5jbG91ZC8iLCJqdGkiOiIxZWY3NjJiNi1mZDYyLTQ3ZWQtOGRkNS0yOGRmMzBkZDU4YmMiLCJzdWIiOiJhaS1hc3Npc3RhbnQtZGVtbyJ9.WC8GIY19MgZneDVZoA-Ttt9E7gNkD0Yl-pcM_5c2RT3RdV_zE0i4bPOGBJpg_g6wu_4ki2ery6_JZtk2Q9gXEBHH7fIu7hXDFS8uIV9qe8MyxEqqRncGFVDjSTldVXGS
default_meta_keywords: tinymce, documentation, docs, plugins, customizable skins, configuration, examples, html, php, java, javascript, image editor, inline editor, distraction-free editor, classic editor, wysiwyg
# product docker variables
dockerimageimportfromwordexporttoword: registry.containers.tiny.cloud/docx-converter-tiny
diff --git a/modules/ROOT/pages/exportpdf.adoc b/modules/ROOT/pages/exportpdf.adoc
index a3a84750db..7032ad7341 100644
--- a/modules/ROOT/pages/exportpdf.adoc
+++ b/modules/ROOT/pages/exportpdf.adoc
@@ -28,8 +28,8 @@ tinymce.init({
selector: 'textarea',
plugins: 'exportpdf',
toolbar: 'exportpdf',
-// Below option is only required when using the cloud-based Export to PDF plugin from Tiny.Cloud.
-// Avoid setting it up during the trial period.
+ // Required for the cloud-based Export to PDF plugin with Tiny Cloud
+ // Create a JWT key in the Customer Portal for trial functionality to enable watermark-free exports during the trial period
exportpdf_token_provider: () => {
return fetch('http://localhost:3000/jwt', { // specify your token endpoint
method: 'POST',
diff --git a/modules/ROOT/pages/exportword.adoc b/modules/ROOT/pages/exportword.adoc
index d275fb96ed..042dd16561 100644
--- a/modules/ROOT/pages/exportword.adoc
+++ b/modules/ROOT/pages/exportword.adoc
@@ -35,8 +35,8 @@ tinymce.init({
selector: 'textarea',
plugins: 'exportword',
toolbar: 'exportword',
-// Below option is only required when using the cloud-based Export to Word plugin from Tiny.Cloud.
-// Avoid setting it up during the trial period.
+ // Required for the cloud-based Export to Word plugin with Tiny Cloud
+ // Create a JWT key in the Customer Portal for trial functionality to enable watermark-free exports during the trial period
exportword_token_provider: () => {
return fetch('http://localhost:3000/jwt', { // specify your token endpoint
method: 'POST',
diff --git a/modules/ROOT/pages/importword.adoc b/modules/ROOT/pages/importword.adoc
index 7c5a201d7f..2134fa1653 100644
--- a/modules/ROOT/pages/importword.adoc
+++ b/modules/ROOT/pages/importword.adoc
@@ -1,4 +1,3 @@
-
= {pluginname} plugin
:plugincode: importword
:pluginname: Import from Word
@@ -30,9 +29,9 @@ tinymce.init({
selector: 'textarea',
plugins: 'importword',
toolbar: 'importword',
-// Below option is only required when using the cloud-based Import from Word plugin from Tiny.Cloud.
-// Avoid setting it up during the trial period.
- importword_token_provider: () => { // required when using the Import from Word plugin with Tiny Cloud.
+ // Required for the cloud-based Import from Word plugin with Tiny Cloud
+ // Create a JWT key in the Customer Portal for trial functionality to enable watermark-free exports during the trial period
+ importword_token_provider: () => {
return fetch('http://localhost:3000/jwt', { // specify your token endpoint
method: 'POST',
headers: { 'Content-Type': 'application/json' },
diff --git a/modules/ROOT/pages/understanding-editor-loads.adoc b/modules/ROOT/pages/understanding-editor-loads.adoc
index 7719b0e6ec..83a0376d6e 100644
--- a/modules/ROOT/pages/understanding-editor-loads.adoc
+++ b/modules/ROOT/pages/understanding-editor-loads.adoc
@@ -6,7 +6,7 @@
== Understanding editor loads for {productname}
[IMPORTANT]
-This information is only relevant to Tiny Cloud users. Users who self-host the open source version of {productname} are not subject to editor load restrictions, but must comply with the https://github.com/tinymce/tinymce/blob/master/LICENSE.TXT[open source license].
+This information is only relevant to Tiny Cloud users. Users who self-host the open source version of {productname} are not subject to editor load restrictions, but must comply with the link:https://github.com/tinymce/tinymce/blob/release/{productmajorversion}/LICENSE.md[open source license].
An editor load is the event that occurs each time {productname} is initialized in your application. The editor dispatches the 'init' event to indicate a successful load. For example, if 100 users load {productname} 10 times each, the result would be 1,000 editor loads.
diff --git a/modules/ROOT/partials/individually-licensed-components/export-to-pdf/export-to-pdf-installation.adoc b/modules/ROOT/partials/individually-licensed-components/export-to-pdf/export-to-pdf-installation.adoc
index e2b5727b8a..bba40324ba 100644
--- a/modules/ROOT/partials/individually-licensed-components/export-to-pdf/export-to-pdf-installation.adoc
+++ b/modules/ROOT/partials/individually-licensed-components/export-to-pdf/export-to-pdf-installation.adoc
@@ -32,7 +32,7 @@ Pull the Docker image:
[source, sh, subs="attributes+"]
----
-docker pull registry.containers.tiny.cloud/{dockerimageexporttopdf}:[version]
+docker pull {dockerimageexporttopdf}:[version]
----
[TIP]
diff --git a/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-autorization-on-premises.adoc b/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-autorization-on-premises.adoc
index 444a629f2d..180ceac642 100644
--- a/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-autorization-on-premises.adoc
+++ b/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-autorization-on-premises.adoc
@@ -17,7 +17,7 @@ If the `SECRET_KEY` is not setup during the installation, then {pluginname} On-P
* it is not issued in the future (e.i. the `iat` timestamp cannot be newer than the current time),
* it has not expired yet.
-Tokens for the {pluginname} On-Premises do not require any additional claims such as the environment ID (which is specific for Collaboration Server On-Premises), the token can be created with an empty payload.
+Tokens for the {pluginname} On-Premises do not require any additional claims such as the `aud` (which is specific to cloud-based document converters), so the token can be created with an empty payload.
If the specific use case involves sending requests from a backend server, then JWT tokens can be generated locally, as shown in the below request example.
diff --git a/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-installation-on-premises.adoc b/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-installation-on-premises.adoc
index efb79a5ae1..aa508f7c14 100644
--- a/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-installation-on-premises.adoc
+++ b/modules/ROOT/partials/individually-licensed-components/import-from-word-and-export-to-word/import-from-word-and-export-to-word-installation-on-premises.adoc
@@ -32,7 +32,7 @@ Pull the Docker image:
[source, sh, subs="attributes+"]
----
-docker pull registry.containers.tiny.cloud/{dockerimageimportfromwordexporttoword}:[version]
+docker pull {dockerimageimportfromwordexporttoword}:[version]
----
[TIP]
diff --git a/modules/ROOT/partials/integrations/angular-tech-ref.adoc b/modules/ROOT/partials/integrations/angular-tech-ref.adoc
index 4a7261db9f..ce1ebbcb8f 100644
--- a/modules/ROOT/partials/integrations/angular-tech-ref.adoc
+++ b/modules/ROOT/partials/integrations/angular-tech-ref.adoc
@@ -8,6 +8,7 @@
** xref:licensekey[`+licenseKey+`]
** xref:cloudchannel[`+cloudChannel+`]
** xref:disabled[`+disabled+`]
+** xref:readonly[`+readonly+`]
** xref:id[`+id+`]
** xref:init[`+init+`]
** xref:initialvalue[`+initialValue+`]
@@ -97,6 +98,7 @@ The editor accepts the following properties:
apiKey="no-api-key"
cloudChannel="{productmajorversion}"
[disabled]="false"
+ [readonly]="false"
id=""
[init]="{ }"
initialValue=""
@@ -193,6 +195,24 @@ The `+disabled+` property can dynamically switch the editor between a "disabled"
----
+[[readonly]]
+=== `+readonly+`
+
+The `+readonly+` property can dynamically switch the editor between a "read-only" mode (`+true+`) and the standard editable mode (`+false+`).
+
+*Type:* `+Boolean+`
+
+*Default value:* `+false+`
+
+*Possible values:* `+true+`, `+false+`
+
+==== Example: using `+readonly+`
+
+[source,html]
+----
+
+----
+
[[id]]
=== `+id+`
diff --git a/modules/ROOT/partials/integrations/react-tech-ref.adoc b/modules/ROOT/partials/integrations/react-tech-ref.adoc
index 41ed4d0a97..22693ca86d 100644
--- a/modules/ROOT/partials/integrations/react-tech-ref.adoc
+++ b/modules/ROOT/partials/integrations/react-tech-ref.adoc
@@ -8,6 +8,7 @@
** xref:licenseKey[`+licenseKey+`]
** xref:cloudchannel[`+cloudChannel+`]
** xref:disabled[`+disabled+`]
+** xref:readonly[`+readonly+`]
** xref:id[`+id+`]
** xref:init[`+init+`]
** xref:initialvalue[`+initialValue+`]
@@ -143,7 +144,8 @@ xref:toolbar[`+toolbar+`]:: Specify the editor toolbar. This will *override* the
These props can be updated after the editor is initialized. Note that there are xref:event-binding[other events] not mentioned here.
-xref:disabled[`+disabled+`]:: Should the editor be in read-only mode.
+xref:disabled[`+disabled+`]:: Should the editor be disabled.
+xref:readonly[`+readonly+`]:: Should the editor be in read-only mode.
xref:initialvalue[`+initialValue+`]:: The starting value of the editor. Changing this value after the editor has loaded will reset the editor (including the editor content).
@@ -240,7 +242,7 @@ For information {productname} development channels, see: xref:editor-plugin-vers
[[disabled]]
=== `+disabled+`
-The `+disabled+` prop can dynamically switch the editor between a "disabled" (read-only) mode (`+true+`) and the standard editable mode (`+false+`).
+The `+disabled+` prop can dynamically toggle the editor's disabled state.
*Type:* `Boolean`
@@ -257,6 +259,26 @@ The `+disabled+` prop can dynamically switch the editor between a "disabled" (re
/>
----
+[[readonly]]
+=== `+readonly+`
+
+The `+readonly+` prop can dynamically switch the editor between a read-only mode (`+true+`) and the standard editable mode (`+false+`).
+
+*Type:* `Boolean`
+
+*Default value:* `+false+`
+
+*Possible values:* `+true+`, `+false+`
+
+==== Example: using `+readonly+`
+
+[source,jsx]
+----
+
+----
+
[[id]]
=== `+id+`
diff --git a/modules/ROOT/partials/integrations/svelte-tech-ref.adoc b/modules/ROOT/partials/integrations/svelte-tech-ref.adoc
index 5929994775..179f871367 100644
--- a/modules/ROOT/partials/integrations/svelte-tech-ref.adoc
+++ b/modules/ROOT/partials/integrations/svelte-tech-ref.adoc
@@ -7,6 +7,7 @@ Covered in this section:
** xref:id[id]
** xref:inline[inline]
** xref:disabled[disabled]
+** xref:readonly[readonly]
** xref:scriptsrc[scriptsrc]
** xref:conf[conf]
* xref:component-binding[Component binding]
@@ -25,6 +26,7 @@ The `+tinymce-svelte+` `+Editor+` component accepts the following properties:
id="uuid"
inline=false
disabled=false
+ readonly=false
scriptSrc=undefined
conf={}
modelEvents="input change undo redo"
@@ -134,7 +136,7 @@ Sets the editor to use inline mode.
[[disabled]]
=== `+disabled+`
-Set the editor to readonly mode.
+Set the editor to disabled.
*Type:* `+Boolean+`
@@ -149,6 +151,24 @@ Set the editor to readonly mode.
/>
----
+[[readonly]]
+=== `+readonly+`
+
+Set the editor to readonly mode.
+
+*Type:* `+Boolean+`
+
+*Default value:* `+false+`
+
+==== Example using `+readonly+`
+
+[source,jsx]
+----
+
+----
+
[[scriptsrc]]
=== `+scriptSrc+`
diff --git a/modules/ROOT/partials/integrations/vue-tech-ref.adoc b/modules/ROOT/partials/integrations/vue-tech-ref.adoc
index cb24552b92..fd230670fe 100644
--- a/modules/ROOT/partials/integrations/vue-tech-ref.adoc
+++ b/modules/ROOT/partials/integrations/vue-tech-ref.adoc
@@ -7,6 +7,7 @@
** xref:license-key[`+licenseKey+`]
** xref:cloud-channel[`+cloud-channel+`]
** xref:disabled[`+disabled+`]
+** xref:readonly[`+readonly+`]
** xref:id[`+id+`]
** xref:init[`+init+`]
** xref:initial-value[`+initial-value+`]
@@ -99,6 +100,7 @@ The editor accepts the following properties:
api-key="no-api-key"
cloud-channel="{productmajorversion}"
:disabled=false
+ :readonly=false
id="uuid"
:init= "{ }"
initial-value=""
@@ -205,6 +207,26 @@ The `+disabled+` property can dynamically switch the editor between a "disabled"
/>
----
+[[readonly]]
+=== `+readonly+`
+
+The `+readonly+` property can dynamically switch the editor between a "read-only" mode (`+true+`) and the standard editable mode (`+false+`).
+
+*Type:* `+Boolean+`
+
+*Default value:* `+false+`
+
+*Possible values:* `+true+`, `+false+`
+
+==== Example: using `+readonly+`
+
+[source,html]
+----
+
+----
+
[[id]]
=== `+id+`
diff --git a/modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc b/modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc
index 1640dc3354..ffb83ab3dc 100644
--- a/modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc
+++ b/modules/ROOT/partials/integrations/webcomponent-tech-ref.adoc
@@ -8,6 +8,8 @@
** xref:loading-plugins[Loading plugins]
** xref:setting-the-editor-width[Setting the editor width]
** xref:setting-the-editor-height[Setting the editor height]
+** xref:setting-readonly[Setting the editor to readonly]
+** xref:setting-disabled[Setting the editor to disabled]
** xref:setting-the-toolbar[Setting the toolbar]
** xref:setting-the-toolbar-mode[Setting the toolbar mode]
** xref:setting-the-menu-bar[Setting the menu bar]
@@ -146,6 +148,26 @@ To set the height of the editor (content area and user interface), use the `+hei
----
+
+[[setting-readonly]]
+=== Setting readonly mode
+
+To set the editor's mode to `readonly`.
+
+[source,html]
+----
+
+----
+
+[[setting-disaled-state]]
+=== Setting disabled state
+To set the editor to a disabled state.
+
+[source,html]
+----
+
+----
+
[[setting-the-toolbar]]
=== Setting the toolbar
diff --git a/modules/ROOT/partials/misc/admon-jwt-authentication-requirements.adoc b/modules/ROOT/partials/misc/admon-jwt-authentication-requirements.adoc
index d4445f6186..d2858ee3e6 100644
--- a/modules/ROOT/partials/misc/admon-jwt-authentication-requirements.adoc
+++ b/modules/ROOT/partials/misc/admon-jwt-authentication-requirements.adoc
@@ -2,17 +2,34 @@
====
The {pluginname} plugin **requires** JWT authentication when using the {companyname} Cloud service.
-* Configure the `{plugincode}_token_provider` option to specify the endpoint for retrieving a valid JWT token.
+**Authentication Setup:**
-For more information on how to set up JWT authentication with {pluginname}, see examples:
+. Create a JWT key in the Customer Portal
+. Configure the `{plugincode}_token_provider` option to specify the endpoint for retrieving your JWT token
-* xref:{pluginfilename}-with-jwt-authentication-nodejs.adoc[{pluginname} with JWT authentication (Node.js)]
-* xref:{pluginfilename}-with-jwt-authentication-php.adoc[{pluginname} with JWT authentication (PHP)]
+For more information on how to set up JWT authentication with {pluginname}, see examples: xref:{pluginfilename}-with-jwt-authentication-nodejs.adoc[{pluginname} with JWT authentication (Node.js)] or xref:{pluginfilename}-with-jwt-authentication-php.adoc[{pluginname} with JWT authentication (PHP)]
-**Trial period behavior:**
+**Trial period behavior**
-* The {pluginname} plugin runs in evaluation mode and adds a watermark to exported content.
-* The `{plugincode}_token_provider` option is "not required" during the trial period.
-* If the trial period "expires" or the plugin lacks the necessary entitlement, it becomes _non-functional_.
-* Attempting to use JWT authentication during the trial will result in an _error_.
+ifeval::["{plugincode}" == "importword"]
+* **Trial Period:**
+** With JWT: Full functionality, unlimited usage, no watermarks.
+** Without JWT: Full functionality with watermarks and page limits.
+
+* **After Trial:**
+** With {pluginname} add-on + JWT: Full functionality (subscription-based)
+** Without add-on: Plugin entitlements are `disabled` and functionality is no longer available.
+endif::[]
+
+ifeval::["{plugincode}" != "importword"]
+* **Trial Period:**
+** With JWT: Full functionality, unlimited usage, no watermarks.
+** Without JWT: Full functionality with watermarks.
+
+* **After Trial:**
+** With {pluginname} add-on + JWT: Full functionality (subscription-based)
+** Without add-on: Plugin entitlements are `disabled` and functionality is no longer available.
+endif::[]
+
+Visit the link:https://www.tiny.cloud/auth/login/[account portal] to obtain your JWT key and test full functionality.
====
\ No newline at end of file