create-nextjs-cms 0.5.23 → 0.5.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (191) hide show
  1. package/package.json +5 -7
  2. package/templates/default/components/NewPage.tsx +2 -2
  3. package/templates/default/components/ProgressBar.tsx +46 -22
  4. package/templates/default/components/form/DateRangeFormInput.tsx +8 -6
  5. package/templates/default/components/form/helpers/_section-hot-reload.js +1 -1
  6. package/templates/default/components/form/inputs/DateFormInput.tsx +82 -34
  7. package/templates/default/components/form/inputs/MultipleSelectFormInput.tsx +40 -107
  8. package/templates/default/components/form/inputs/RichTextFormInput.tsx +2 -0
  9. package/templates/default/components/form/inputs/TagsFormInput.tsx +115 -26
  10. package/templates/default/components/form/inputs/TextFormInput.tsx +1 -1
  11. package/templates/default/components/multi-select.tsx +1144 -0
  12. package/templates/default/components/ui/badge.tsx +16 -12
  13. package/templates/default/components/ui/button.tsx +35 -30
  14. package/templates/default/components/ui/calendar.tsx +145 -47
  15. package/templates/default/components/ui/command.tsx +184 -0
  16. package/templates/default/components/ui/dialog.tsx +143 -0
  17. package/templates/default/components/ui/popover.tsx +39 -22
  18. package/templates/default/components/ui/progress.tsx +31 -0
  19. package/templates/default/components/ui/select.tsx +150 -149
  20. package/templates/default/components/ui/separator.tsx +28 -0
  21. package/templates/default/components.json +8 -3
  22. package/templates/default/{postinstall.js → lib/postinstall.js} +1 -1
  23. package/templates/default/lib/utils.ts +6 -0
  24. package/templates/default/{proxy.ts → middleware.ts} +3 -2
  25. package/templates/default/next-env.d.ts +1 -1
  26. package/templates/default/package.json +41 -52
  27. package/templates/default/public/tinymce/CHANGELOG.md +155 -0
  28. package/templates/default/public/tinymce/README.md +12 -12
  29. package/templates/default/public/tinymce/bower.json +1 -1
  30. package/templates/default/public/tinymce/composer.json +2 -2
  31. package/templates/default/public/tinymce/icons/default/icons.js +40 -32
  32. package/templates/default/public/tinymce/icons/default/icons.min.js +1 -1
  33. package/templates/default/public/tinymce/license.md +7 -4
  34. package/templates/default/public/tinymce/models/dom/model.js +36 -50
  35. package/templates/default/public/tinymce/models/dom/model.min.js +1 -1
  36. package/templates/default/public/tinymce/notices.txt +2 -2
  37. package/templates/default/public/tinymce/package.json +2 -2
  38. package/templates/default/public/tinymce/plugins/accordion/plugin.js +45 -21
  39. package/templates/default/public/tinymce/plugins/accordion/plugin.min.js +1 -1
  40. package/templates/default/public/tinymce/plugins/advlist/plugin.js +8 -6
  41. package/templates/default/public/tinymce/plugins/advlist/plugin.min.js +1 -1
  42. package/templates/default/public/tinymce/plugins/anchor/plugin.js +1 -1
  43. package/templates/default/public/tinymce/plugins/autolink/plugin.js +3 -6
  44. package/templates/default/public/tinymce/plugins/autolink/plugin.min.js +1 -1
  45. package/templates/default/public/tinymce/plugins/autoresize/plugin.js +4 -6
  46. package/templates/default/public/tinymce/plugins/autoresize/plugin.min.js +1 -1
  47. package/templates/default/public/tinymce/plugins/autosave/plugin.js +4 -7
  48. package/templates/default/public/tinymce/plugins/autosave/plugin.min.js +1 -1
  49. package/templates/default/public/tinymce/plugins/charmap/plugin.js +8 -8
  50. package/templates/default/public/tinymce/plugins/charmap/plugin.min.js +1 -1
  51. package/templates/default/public/tinymce/plugins/code/plugin.js +3 -2
  52. package/templates/default/public/tinymce/plugins/code/plugin.min.js +1 -1
  53. package/templates/default/public/tinymce/plugins/codesample/plugin.js +11 -10
  54. package/templates/default/public/tinymce/plugins/codesample/plugin.min.js +2 -2
  55. package/templates/default/public/tinymce/plugins/directionality/plugin.js +9 -11
  56. package/templates/default/public/tinymce/plugins/directionality/plugin.min.js +1 -1
  57. package/templates/default/public/tinymce/plugins/emoticons/plugin.js +7 -7
  58. package/templates/default/public/tinymce/plugins/emoticons/plugin.min.js +1 -1
  59. package/templates/default/public/tinymce/plugins/fullscreen/plugin.js +11 -13
  60. package/templates/default/public/tinymce/plugins/fullscreen/plugin.min.js +1 -1
  61. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/bg-BG.js +93 -0
  62. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/fr-FR.js +93 -0
  63. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/he-IL.js +93 -0
  64. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/hu-HU.js +93 -0
  65. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/ko-KR.js +93 -0
  66. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/nb-NO.js +93 -0
  67. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-BR.js +93 -0
  68. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/pt-PT.js +93 -0
  69. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sl-SI.js +93 -0
  70. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/sv-SE.js +93 -0
  71. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/th-TH.js +93 -0
  72. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-CN.js +87 -0
  73. package/templates/default/public/tinymce/plugins/help/js/i18n/keynav/zh-TW.js +93 -0
  74. package/templates/default/public/tinymce/plugins/help/plugin.js +15 -17
  75. package/templates/default/public/tinymce/plugins/help/plugin.min.js +1 -1
  76. package/templates/default/public/tinymce/plugins/image/plugin.js +34 -32
  77. package/templates/default/public/tinymce/plugins/image/plugin.min.js +1 -1
  78. package/templates/default/public/tinymce/plugins/importcss/plugin.js +4 -6
  79. package/templates/default/public/tinymce/plugins/importcss/plugin.min.js +1 -1
  80. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.js +4 -3
  81. package/templates/default/public/tinymce/plugins/insertdatetime/plugin.min.js +1 -1
  82. package/templates/default/public/tinymce/plugins/link/plugin.js +170 -38
  83. package/templates/default/public/tinymce/plugins/link/plugin.min.js +1 -1
  84. package/templates/default/public/tinymce/plugins/lists/plugin.js +111 -2053
  85. package/templates/default/public/tinymce/plugins/lists/plugin.min.js +1 -1
  86. package/templates/default/public/tinymce/plugins/media/plugin.js +15 -23
  87. package/templates/default/public/tinymce/plugins/media/plugin.min.js +1 -1
  88. package/templates/default/public/tinymce/plugins/nonbreaking/plugin.js +1 -1
  89. package/templates/default/public/tinymce/plugins/pagebreak/plugin.js +1 -1
  90. package/templates/default/public/tinymce/plugins/preview/plugin.js +88 -10
  91. package/templates/default/public/tinymce/plugins/preview/plugin.min.js +1 -1
  92. package/templates/default/public/tinymce/plugins/quickbars/plugin.js +9 -9
  93. package/templates/default/public/tinymce/plugins/quickbars/plugin.min.js +1 -1
  94. package/templates/default/public/tinymce/plugins/save/plugin.js +1 -1
  95. package/templates/default/public/tinymce/plugins/searchreplace/plugin.js +10 -13
  96. package/templates/default/public/tinymce/plugins/searchreplace/plugin.min.js +1 -1
  97. package/templates/default/public/tinymce/plugins/table/plugin.js +13 -24
  98. package/templates/default/public/tinymce/plugins/table/plugin.min.js +1 -1
  99. package/templates/default/public/tinymce/plugins/visualblocks/plugin.js +1 -1
  100. package/templates/default/public/tinymce/plugins/visualchars/plugin.js +9 -10
  101. package/templates/default/public/tinymce/plugins/visualchars/plugin.min.js +1 -1
  102. package/templates/default/public/tinymce/plugins/wordcount/plugin.js +1 -1
  103. package/templates/default/public/tinymce/skins/content/dark/content.min.ts +3 -0
  104. package/templates/default/public/tinymce/skins/content/dark/content.ts +3 -0
  105. package/templates/default/public/tinymce/skins/content/default/content.min.ts +3 -0
  106. package/templates/default/public/tinymce/skins/content/default/content.ts +3 -0
  107. package/templates/default/public/tinymce/skins/content/document/content.min.ts +3 -0
  108. package/templates/default/public/tinymce/skins/content/document/content.ts +3 -0
  109. package/templates/default/public/tinymce/skins/content/tinymce-5/content.min.ts +3 -0
  110. package/templates/default/public/tinymce/skins/content/tinymce-5/content.ts +3 -0
  111. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.min.ts +3 -0
  112. package/templates/default/public/tinymce/skins/content/tinymce-5-dark/content.ts +3 -0
  113. package/templates/default/public/tinymce/skins/content/writer/content.min.ts +3 -0
  114. package/templates/default/public/tinymce/skins/content/writer/content.ts +3 -0
  115. package/templates/default/public/tinymce/skins/ui/oxide/content.css +144 -0
  116. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.css +144 -0
  117. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.js +1 -1
  118. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.css +1 -1
  119. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.min.ts +116 -0
  120. package/templates/default/public/tinymce/skins/ui/oxide/content.inline.ts +116 -0
  121. package/templates/default/public/tinymce/skins/ui/oxide/content.js +1 -1
  122. package/templates/default/public/tinymce/skins/ui/oxide/content.min.css +1 -1
  123. package/templates/default/public/tinymce/skins/ui/oxide/content.min.ts +116 -0
  124. package/templates/default/public/tinymce/skins/ui/oxide/content.ts +116 -0
  125. package/templates/default/public/tinymce/skins/ui/oxide/skin.css +923 -449
  126. package/templates/default/public/tinymce/skins/ui/oxide/skin.js +1 -1
  127. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.css +1 -1
  128. package/templates/default/public/tinymce/skins/ui/oxide/skin.min.ts +507 -0
  129. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.min.ts +9 -0
  130. package/templates/default/public/tinymce/skins/ui/oxide/skin.shadowdom.ts +9 -0
  131. package/templates/default/public/tinymce/skins/ui/oxide/skin.ts +507 -0
  132. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.css +144 -0
  133. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.css +144 -0
  134. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.js +1 -1
  135. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.css +1 -1
  136. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.min.ts +116 -0
  137. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.inline.ts +116 -0
  138. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.js +1 -1
  139. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.css +1 -1
  140. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.min.ts +116 -0
  141. package/templates/default/public/tinymce/skins/ui/oxide-dark/content.ts +116 -0
  142. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.css +926 -452
  143. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.js +1 -1
  144. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.css +1 -1
  145. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.min.ts +507 -0
  146. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.min.ts +9 -0
  147. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.shadowdom.ts +9 -0
  148. package/templates/default/public/tinymce/skins/ui/oxide-dark/skin.ts +507 -0
  149. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.css +144 -0
  150. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.css +144 -0
  151. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.js +1 -1
  152. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.css +1 -1
  153. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.min.ts +116 -0
  154. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.inline.ts +116 -0
  155. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.js +1 -1
  156. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.css +1 -1
  157. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.min.ts +116 -0
  158. package/templates/default/public/tinymce/skins/ui/tinymce-5/content.ts +116 -0
  159. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.css +924 -450
  160. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.js +1 -1
  161. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.css +1 -1
  162. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.min.ts +508 -0
  163. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.min.ts +9 -0
  164. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.shadowdom.ts +9 -0
  165. package/templates/default/public/tinymce/skins/ui/tinymce-5/skin.ts +508 -0
  166. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.css +144 -0
  167. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.css +144 -0
  168. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.js +1 -1
  169. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.css +1 -1
  170. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.min.ts +116 -0
  171. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.inline.ts +116 -0
  172. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.js +1 -1
  173. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.css +1 -1
  174. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.min.ts +116 -0
  175. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/content.ts +116 -0
  176. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.css +925 -451
  177. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.js +1 -1
  178. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.css +1 -1
  179. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.min.ts +508 -0
  180. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.min.ts +9 -0
  181. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.shadowdom.ts +9 -0
  182. package/templates/default/public/tinymce/skins/ui/tinymce-5-dark/skin.ts +508 -0
  183. package/templates/default/public/tinymce/themes/silver/theme.js +543 -593
  184. package/templates/default/public/tinymce/themes/silver/theme.min.js +1 -1
  185. package/templates/default/public/tinymce/tinymce.d.ts +559 -496
  186. package/templates/default/public/tinymce/tinymce.js +6788 -3964
  187. package/templates/default/public/tinymce/tinymce.min.js +3 -4
  188. package/templates/default/styles/globals.css +132 -107
  189. package/templates/default/tsconfig.json +45 -45
  190. package/templates/default/.prettierrc.json +0 -19
  191. package/templates/default/eslint.config.mjs +0 -38
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 7.9.1 (2025-05-29)
2
+ * TinyMCE version 8.3.1 (2025-12-17)
3
3
  */
4
4
 
5
5
  (function () {
@@ -9,13 +9,12 @@
9
9
 
10
10
  /* eslint-disable @typescript-eslint/no-wrapper-object-types */
11
11
  const hasProto = (v, constructor, predicate) => {
12
- var _a;
13
12
  if (predicate(v, constructor.prototype)) {
14
13
  return true;
15
14
  }
16
15
  else {
17
16
  // String-based fallback time
18
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
17
+ return v.constructor?.name === constructor.name;
19
18
  }
20
19
  };
21
20
  const typeOf = (x) => {
@@ -64,6 +63,11 @@
64
63
  * strict-null-checks
65
64
  */
66
65
  class Optional {
66
+ tag;
67
+ value;
68
+ // Sneaky optimisation: every instance of Optional.none is identical, so just
69
+ // reuse the same object
70
+ static singletonNone = new Optional(false);
67
71
  // The internal representation has a `tag` and a `value`, but both are
68
72
  // private: able to be console.logged, but not able to be accessed by code
69
73
  constructor(tag, value) {
@@ -231,7 +235,7 @@
231
235
  */
232
236
  getOrDie(message) {
233
237
  if (!this.tag) {
234
- throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
238
+ throw new Error(message ?? 'Called getOrDie on None');
235
239
  }
236
240
  else {
237
241
  return this.value;
@@ -295,9 +299,6 @@
295
299
  return this.tag ? `some(${this.value})` : 'none()';
296
300
  }
297
301
  }
298
- // Sneaky optimisation: every instance of Optional.none is identical, so just
299
- // reuse the same object
300
- Optional.singletonNone = new Optional(false);
301
302
 
302
303
  /**
303
304
  * Adds two numbers, and wrap to a range.
@@ -360,9 +361,8 @@
360
361
  fileInput.style.opacity = '0.001';
361
362
  document.body.appendChild(fileInput);
362
363
  const resolveFileInput = (value) => {
363
- var _a;
364
364
  if (!resolved) {
365
- (_a = fileInput.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(fileInput);
365
+ fileInput.parentNode?.removeChild(fileInput);
366
366
  resolved = true;
367
367
  resolve(value);
368
368
  }
@@ -1 +1 @@
1
- !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>typeof t===e,o=e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=r=e,(n=String).prototype.isPrototypeOf(o)||(null===(i=r.constructor)||void 0===i?void 0:i.name)===n.name)?"string":t;var o,r,n,i})(e);const r=t("boolean"),n=t("function"),i=()=>false;class s{constructor(e,t){this.tag=e,this.value=t}static some(e){return new s(!0,e)}static none(){return s.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?s.some(e(this.value)):s.none()}bind(e){return this.tag?e(this.value):s.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:s.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?s.none():s.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}s.singletonNone=new s(!1);let a=0;var l=tinymce.util.Tools.resolve("tinymce.util.Delay");const c=e=>{e.on("PreInit",(()=>{e.queryCommandSupported("QuickbarInsertImage")||e.addCommand("QuickbarInsertImage",(()=>{(e=>new Promise((t=>{let o=!1;const r=document.createElement("input");r.type="file",r.accept="image/*",r.style.position="fixed",r.style.left="0",r.style.top="0",r.style.opacity="0.001",document.body.appendChild(r);const n=e=>{var n;o||(null===(n=r.parentNode)||void 0===n||n.removeChild(r),o=!0,t(e))},i=e=>{n(Array.prototype.slice.call(e.target.files))};r.addEventListener("input",i),r.addEventListener("change",i);const s=t=>{const r=()=>{n([])};o||("focusin"===t.type?l.setEditorTimeout(e,r,1e3):r()),e.off("focusin remove",s)};e.on("focusin remove",s),r.click()})))(e).then((t=>{if(t.length>0){const o=t[0];(e=>new Promise((t=>{const o=new FileReader;o.onloadend=()=>{t(o.result.split(",")[1])},o.readAsDataURL(e)})))(o).then((t=>{((e,t,o)=>{const r=e.editorUpload.blobCache,n=r.create((e=>{const t=(new Date).getTime(),o=Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*1e9);return a++,e+"_"+o+a+String(t)})("mceu"),o,t);r.add(n),e.insertContent(e.dom.createHTML("img",{src:n.blobUri()}))})(e,t,o)}))}}))}))}))},u=e=>t=>t.options.get(e),d=u("quickbars_selection_toolbar"),m=u("quickbars_insert_toolbar"),g=u("quickbars_image_toolbar"),h=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},b=h,p=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}};var v=(e,t,o,r,i)=>e(o,r)?s.some(o):n(i)&&i(o)?s.none():t(o,r,i);const f=(e,t,o)=>{let r=e.dom;const a=n(o)?o:i;for(;r.parentNode;){r=r.parentNode;const e=b(r);if(t(e))return s.some(e);if(a(e))break}return s.none()},y=(e,t,o)=>f(e,(e=>p(e,t)),o),k=e=>{const t=m(e);t.length>0&&e.ui.registry.addContextToolbar("quickblock",{predicate:t=>{const o=b(t),r=e.schema.getTextBlockElements(),n=t=>t.dom===e.getBody();return!(e=>{const t=e.dom;return!(!t||!t.hasAttribute)&&t.hasAttribute("data-mce-bogus")})(o)&&((e,t,o)=>v(((e,t)=>p(e,t)),y,e,'table,[data-mce-bogus="all"]',o))(o,0,n).fold((()=>((e,t,o)=>((e,t,o)=>v(((e,t)=>t(e)),f,e,t,o))(e,t,o).isSome())(o,(t=>t.dom.nodeName.toLowerCase()in r&&e.dom.isEmpty(t.dom)),n)),i)},items:t,position:"line",scope:"editor"})};e.add("quickbars",(e=>{(e=>{const t=e.options.register,n=e=>t=>{const n=r(t)||o(t);return n?r(t)?{value:t?e:"",valid:n}:{value:t.trim(),valid:n}:{valid:!1,message:"Must be a boolean or string."}},i="bold italic | quicklink h2 h3 blockquote";t("quickbars_selection_toolbar",{processor:n(i),default:i});const s="quickimage quicktable";t("quickbars_insert_toolbar",{processor:n(s),default:s});const a="alignleft aligncenter alignright";t("quickbars_image_toolbar",{processor:n(a),default:a})})(e),c(e),(e=>{e.ui.registry.addButton("quickimage",{icon:"image",tooltip:"Insert image",onAction:()=>e.execCommand("QuickbarInsertImage")}),e.ui.registry.addButton("quicktable",{icon:"table",tooltip:"Insert table",onAction:()=>{(e=>{e.execCommand("mceInsertTable",!1,{rows:2,columns:2})})(e)}})})(e),k(e),(e=>{const t=t=>e.dom.isEditable(t),o=e=>{const o="FIGURE"===e.nodeName&&/image/i.test(e.className),r="IMG"===e.nodeName||o,n=(e=>void 0!==e.dom.classList)(i=b(e))&&i.dom.classList.contains("mce-pagebreak");var i;return r&&t(e.parentElement)&&!n},r=g(e);r.length>0&&e.ui.registry.addContextToolbar("imageselection",{predicate:o,items:r,position:"node"});const n=d(e);n.length>0&&e.ui.registry.addContextToolbar("textselection",{predicate:r=>!o(r)&&!e.selection.isCollapsed()&&t(r),items:n,position:"selection",scope:"editor"})})(e)}))}();
1
+ !function(){"use strict";var e=tinymce.util.Tools.resolve("tinymce.PluginManager");const t=e=>t=>typeof t===e,o=e=>"string"===(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(o=r=e,(n=String).prototype.isPrototypeOf(o)||r.constructor?.name===n.name)?"string":t;var o,r,n})(e);const r=t("boolean"),n=t("function"),i=()=>false;class s{tag;value;static singletonNone=new s(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new s(!0,e)}static none(){return s.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?s.some(e(this.value)):s.none()}bind(e){return this.tag?e(this.value):s.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:s.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return null==e?s.none():s.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}let a=0;var l=tinymce.util.Tools.resolve("tinymce.util.Delay");const c=e=>{e.on("PreInit",(()=>{e.queryCommandSupported("QuickbarInsertImage")||e.addCommand("QuickbarInsertImage",(()=>{(e=>new Promise((t=>{let o=!1;const r=document.createElement("input");r.type="file",r.accept="image/*",r.style.position="fixed",r.style.left="0",r.style.top="0",r.style.opacity="0.001",document.body.appendChild(r);const n=e=>{o||(r.parentNode?.removeChild(r),o=!0,t(e))},i=e=>{n(Array.prototype.slice.call(e.target.files))};r.addEventListener("input",i),r.addEventListener("change",i);const s=t=>{const r=()=>{n([])};o||("focusin"===t.type?l.setEditorTimeout(e,r,1e3):r()),e.off("focusin remove",s)};e.on("focusin remove",s),r.click()})))(e).then((t=>{if(t.length>0){const o=t[0];(e=>new Promise((t=>{const o=new FileReader;o.onloadend=()=>{t(o.result.split(",")[1])},o.readAsDataURL(e)})))(o).then((t=>{((e,t,o)=>{const r=e.editorUpload.blobCache,n=r.create((e=>{const t=(new Date).getTime(),o=Math.floor(window.crypto.getRandomValues(new Uint32Array(1))[0]/4294967295*1e9);return a++,e+"_"+o+a+String(t)})("mceu"),o,t);r.add(n),e.insertContent(e.dom.createHTML("img",{src:n.blobUri()}))})(e,t,o)}))}}))}))}))},u=e=>t=>t.options.get(e),d=u("quickbars_selection_toolbar"),m=u("quickbars_insert_toolbar"),g=u("quickbars_image_toolbar"),h=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},b=h,p=(e,t)=>{const o=e.dom;if(1!==o.nodeType)return!1;{const e=o;if(void 0!==e.matches)return e.matches(t);if(void 0!==e.msMatchesSelector)return e.msMatchesSelector(t);if(void 0!==e.webkitMatchesSelector)return e.webkitMatchesSelector(t);if(void 0!==e.mozMatchesSelector)return e.mozMatchesSelector(t);throw new Error("Browser lacks native selectors")}};var v=(e,t,o,r,i)=>e(o,r)?s.some(o):n(i)&&i(o)?s.none():t(o,r,i);const f=(e,t,o)=>{let r=e.dom;const a=n(o)?o:i;for(;r.parentNode;){r=r.parentNode;const e=b(r);if(t(e))return s.some(e);if(a(e))break}return s.none()},y=(e,t,o)=>f(e,(e=>p(e,t)),o),k=e=>{const t=m(e);t.length>0&&e.ui.registry.addContextToolbar("quickblock",{predicate:t=>{const o=b(t),r=e.schema.getTextBlockElements(),n=t=>t.dom===e.getBody();return!(e=>{const t=e.dom;return!(!t||!t.hasAttribute)&&t.hasAttribute("data-mce-bogus")})(o)&&((e,t,o)=>v(((e,t)=>p(e,t)),y,e,'table,[data-mce-bogus="all"]',o))(o,0,n).fold((()=>((e,t,o)=>((e,t,o)=>v(((e,t)=>t(e)),f,e,t,o))(e,t,o).isSome())(o,(t=>t.dom.nodeName.toLowerCase()in r&&e.dom.isEmpty(t.dom)),n)),i)},items:t,position:"line",scope:"editor"})};e.add("quickbars",(e=>{(e=>{const t=e.options.register,n=e=>t=>{const n=r(t)||o(t);return n?r(t)?{value:t?e:"",valid:n}:{value:t.trim(),valid:n}:{valid:!1,message:"Must be a boolean or string."}},i="bold italic | quicklink h2 h3 blockquote";t("quickbars_selection_toolbar",{processor:n(i),default:i});const s="quickimage quicktable";t("quickbars_insert_toolbar",{processor:n(s),default:s});const a="alignleft aligncenter alignright";t("quickbars_image_toolbar",{processor:n(a),default:a})})(e),c(e),(e=>{e.ui.registry.addButton("quickimage",{icon:"image",tooltip:"Insert image",onAction:()=>e.execCommand("QuickbarInsertImage")}),e.ui.registry.addButton("quicktable",{icon:"table",tooltip:"Insert table",onAction:()=>{(e=>{e.execCommand("mceInsertTable",!1,{rows:2,columns:2})})(e)}})})(e),k(e),(e=>{const t=t=>e.dom.isEditable(t),o=e=>{const o="FIGURE"===e.nodeName&&/image/i.test(e.className),r="IMG"===e.nodeName||o,n=(e=>void 0!==e.dom.classList)(i=b(e))&&i.dom.classList.contains("mce-pagebreak");var i;return r&&t(e.parentElement)&&!n},r=g(e);r.length>0&&e.ui.registry.addContextToolbar("imageselection",{predicate:o,items:r,position:"node"});const n=d(e);n.length>0&&e.ui.registry.addContextToolbar("textselection",{predicate:r=>!o(r)&&!e.selection.isCollapsed()&&t(r),items:n,position:"selection",scope:"editor"})})(e)}))}();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 7.9.1 (2025-05-29)
2
+ * TinyMCE version 8.3.1 (2025-12-17)
3
3
  */
4
4
 
5
5
  (function () {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 7.9.1 (2025-05-29)
2
+ * TinyMCE version 8.3.1 (2025-12-17)
3
3
  */
4
4
 
5
5
  (function () {
@@ -7,13 +7,12 @@
7
7
 
8
8
  /* eslint-disable @typescript-eslint/no-wrapper-object-types */
9
9
  const hasProto = (v, constructor, predicate) => {
10
- var _a;
11
10
  if (predicate(v, constructor.prototype)) {
12
11
  return true;
13
12
  }
14
13
  else {
15
14
  // String-based fallback time
16
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
15
+ return v.constructor?.name === constructor.name;
17
16
  }
18
17
  };
19
18
  const typeOf = (x) => {
@@ -64,6 +63,11 @@
64
63
  * strict-null-checks
65
64
  */
66
65
  class Optional {
66
+ tag;
67
+ value;
68
+ // Sneaky optimisation: every instance of Optional.none is identical, so just
69
+ // reuse the same object
70
+ static singletonNone = new Optional(false);
67
71
  // The internal representation has a `tag` and a `value`, but both are
68
72
  // private: able to be console.logged, but not able to be accessed by code
69
73
  constructor(tag, value) {
@@ -231,7 +235,7 @@
231
235
  */
232
236
  getOrDie(message) {
233
237
  if (!this.tag) {
234
- throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
238
+ throw new Error(message ?? 'Called getOrDie on None');
235
239
  }
236
240
  else {
237
241
  return this.value;
@@ -295,11 +299,7 @@
295
299
  return this.tag ? `some(${this.value})` : 'none()';
296
300
  }
297
301
  }
298
- // Sneaky optimisation: every instance of Optional.none is identical, so just
299
- // reuse the same object
300
- Optional.singletonNone = new Optional(false);
301
302
 
302
- /* eslint-disable @typescript-eslint/unbound-method */
303
303
  const nativeSlice = Array.prototype.slice;
304
304
  const nativePush = Array.prototype.push;
305
305
  const map = (xs, f) => {
@@ -391,7 +391,6 @@
391
391
  return copy;
392
392
  };
393
393
 
394
- // eslint-disable-next-line @typescript-eslint/unbound-method
395
394
  const hasOwnProperty = Object.hasOwnProperty;
396
395
  const has = (obj, key) => hasOwnProperty.call(obj, key);
397
396
 
@@ -658,12 +657,11 @@
658
657
  }
659
658
  };
660
659
  const collectTextToBoundary = (dom, section, node, rootNode, forwards) => {
661
- var _a;
662
660
  // Don't bother collecting text nodes if we're already at a boundary
663
661
  if (isBoundary(dom, node)) {
664
662
  return;
665
663
  }
666
- const rootBlock = (_a = dom.getParent(rootNode, dom.isBlock)) !== null && _a !== void 0 ? _a : dom.getRoot();
664
+ const rootBlock = dom.getParent(rootNode, dom.isBlock) ?? dom.getRoot();
667
665
  const walker = new global(node, rootBlock);
668
666
  const walkerFn = forwards ? walker.next.bind(walker) : walker.prev.bind(walker);
669
667
  // Walk over and add text nodes to the section and increase the offsets
@@ -871,12 +869,11 @@
871
869
  }
872
870
  };
873
871
  const unwrap = (node) => {
874
- var _a;
875
872
  const parentNode = node.parentNode;
876
873
  if (node.firstChild) {
877
874
  parentNode.insertBefore(node.firstChild, node);
878
875
  }
879
- (_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.removeChild(node);
876
+ node.parentNode?.removeChild(node);
880
877
  };
881
878
  const findSpansByIndex = (editor, index) => {
882
879
  const spans = [];
@@ -1 +1 @@
1
- !function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,(o=String).prototype.isPrototypeOf(n)||(null===(s=r.constructor)||void 0===s?void 0:s.name)===o.name)?"string":t;var n,r,o,s})(t)===e,t=e=>t=>typeof t===e,n=e("string"),r=e("array"),o=t("boolean"),s=t("number"),a=()=>{},l=e=>()=>e,i=l(!0);class c{constructor(e,t){this.tag=e,this.value=t}static some(e){return new c(!0,e)}static none(){return c.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?c.some(e(this.value)):c.none()}bind(e){return this.tag?e(this.value):c.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:c.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(null!=e?e:"Called getOrDie on None")}static from(e){return null==e?c.none():c.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}c.singletonNone=new c(!1);const d=Array.prototype.slice,u=Array.prototype.push,m=(e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o<n;o++){const n=e[o];r[o]=t(n,o)}return r},h=(e,t)=>{for(let n=0,r=e.length;n<r;n++)t(e[n],n)},g=(e,t)=>{for(let n=e.length-1;n>=0;n--)t(e[n],n)},f=(e,t)=>(e=>{const t=[];for(let n=0,o=e.length;n<o;++n){if(!r(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);u.apply(t,e[n])}return t})(m(e,t)),p=Object.hasOwnProperty,x=(e,t)=>p.call(e,t),y=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}};var b=tinymce.util.Tools.resolve("tinymce.PluginManager");const v=l("[~\u2116|!-*+-\\/:;?@\\[-`{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]");var w=tinymce.util.Tools.resolve("tinymce.Env"),C=tinymce.util.Tools.resolve("tinymce.util.Tools");const E=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},O=E,N=e=>3===(e=>e.dom.nodeType)(e);const T=(e,t)=>({element:e,offset:t}),k=(e,t)=>{((e,t)=>{const n=(e=>c.from(e.dom.parentNode).map(O))(e);n.each((n=>{n.dom.insertBefore(t.dom,e.dom)}))})(e,t),((e,t)=>{e.dom.appendChild(t.dom)})(t,e)},A=(e=>{const t=t=>e(t)?c.from(t.dom.nodeValue):c.none();return{get:n=>{if(!e(n))throw new Error("Can only get text value of a text node");return t(n).getOr("")},getOption:t,set:(t,n)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=n}}})(N),S=e=>A.get(e);var B=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker");const F=(e,t)=>e.isBlock(t)||x(e.schema.getVoidElements(),t.nodeName),I=(e,t)=>!e.isEditable(t),M=(e,t)=>!e.isBlock(t)&&x(e.schema.getWhitespaceElements(),t.nodeName),R=(e,t)=>((e,t)=>{const n=(e=>m(e.dom.childNodes,O))(e);return n.length>0&&t<n.length?T(n[t],0):T(e,t)})(O(e),t),D=(e,t,n,r,o,s=!0)=>{let a=s?t(!1):n;for(;a;){const n=I(e,a);if(n||M(e,a)){if(n?r.cef(a):r.boundary(a))break;a=t(!0)}else{if(F(e,a)){if(r.boundary(a))break}else 3===a.nodeType&&r.text(a);if(a===o)break;a=t(!1)}}},P=(e,t,n,r,o)=>{var s;if(((e,t)=>F(e,t)||I(e,t)||M(e,t)||((e,t)=>"true"===e.getContentEditable(t)&&t.parentNode&&!e.isEditable(t.parentNode))(e,t))(e,n))return;const a=null!==(s=e.getParent(r,e.isBlock))&&void 0!==s?s:e.getRoot(),l=new B(n,a),c=o?l.next.bind(l):l.prev.bind(l);D(e,c,n,{boundary:i,cef:i,text:e=>{o?t.fOffset+=e.length:t.sOffset+=e.length,t.elements.push(O(e))}})},W=(e,t,n,r,o,s=!0)=>{const a=new B(n,t),l=[];let i={sOffset:0,fOffset:0,elements:[]};P(e,i,n,t,!1);const c=()=>(i.elements.length>0&&(l.push(i),i={sOffset:0,fOffset:0,elements:[]}),!1);return D(e,a.next.bind(a),n,{boundary:c,cef:e=>(c(),o&&l.push(...o.cef(e)),!1),text:e=>{i.elements.push(O(e)),o&&o.text(e,i)}},r,s),r&&P(e,i,r,t,!0),c(),l},$=(e,t)=>{const n=R(t.startContainer,t.startOffset),r=n.element.dom,o=R(t.endContainer,t.endOffset),s=o.element.dom;return W(e,t.commonAncestorContainer,r,s,{text:(e,t)=>{e===s?t.fOffset+=e.length-o.offset:e===r&&(t.sOffset+=n.offset)},cef:t=>{return(e=>{const t=d.call(e,0);return t.sort(((e,t)=>((e,t)=>((e,t,n)=>!!(e.compareDocumentPosition(t)&n))(e,t,Node.DOCUMENT_POSITION_PRECEDING))(e.elements[0].dom,t.elements[0].dom)?1:-1)),t})(f((n=O(t),((e,t)=>{const n=void 0===t?document:t.dom;return 1!==(r=n).nodeType&&9!==r.nodeType&&11!==r.nodeType||0===r.childElementCount?[]:m(n.querySelectorAll(e),O);var r})("*[contenteditable=true]",n)),(t=>{const n=t.dom;return W(e,n,n)})));var n}},!1)},V=(e,t)=>t.collapsed?[]:$(e,t),j=(e,t)=>{const n=e.createRng();return n.selectNode(t),V(e,n)},z=(e,t)=>f(t,(t=>{const n=t.elements,r=m(n,S).join(""),o=((e,t,n=0,r=e.length)=>{const o=t.regex;o.lastIndex=n;const s=[];let a;for(;a=o.exec(e);){const e=a[t.matchIndex],n=a.index+a[0].indexOf(e),l=n+e.length;if(l>r)break;s.push({start:n,finish:l}),o.lastIndex=l}return s})(r,e,t.sOffset,r.length-t.fOffset);return((e,t)=>{const n=(r=e,o=(e,n)=>{const r=S(n),o=e.last,s=o+r.length,a=f(t,((e,t)=>e.start<s&&e.finish>o?[{element:n,start:Math.max(o,e.start)-o,finish:Math.min(s,e.finish)-o,matchId:t}]:[]));return{results:e.results.concat(a),last:s}},s={results:[],last:0},h(r,((e,t)=>{s=o(s,e)})),s).results;var r,o,s;return((e,t)=>{if(0===e.length)return[];{let n=t(e[0]);const r=[];let o=[];for(let s=0,a=e.length;s<a;s++){const a=e[s],l=t(a);l!==n&&(r.push(o),o=[]),n=l,o.push(a)}return 0!==o.length&&r.push(o),r}})(n,(e=>e.matchId))})(n,o)})),U=(e,t)=>{g(e,((e,r)=>{g(e,(e=>{const a=O(t.cloneNode(!1));((e,t,r)=>{((e,t,r)=>{if(!(n(r)||o(r)||s(r)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",r,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,r+"")})(e.dom,t,r)})(a,"data-mce-index",r);const l=e.element.dom;if(l.length===e.finish&&0===e.start)k(e.element,a);else{l.length!==e.finish&&l.splitText(e.finish);const t=l.splitText(e.start);k(O(t),a)}}))}))},_=e=>e.getAttribute("data-mce-index"),q=(e,t,n,r)=>{const o=e.dom.create("span",{"data-mce-bogus":1});o.className="mce-match-marker";const s=e.getBody();return ee(e,t,!1),r?((e,t,n,r)=>{const o=n.getBookmark(),s=e.select("td[data-mce-selected],th[data-mce-selected]"),a=s.length>0?((e,t)=>f(t,(t=>j(e,t))))(e,s):V(e,n.getRng()),l=z(t,a);return U(l,r),n.moveToBookmark(o),l.length})(e.dom,n,e.selection,o):((e,t,n,r)=>{const o=j(e,n),s=z(t,o);return U(s,r),s.length})(e.dom,n,s,o)},G=e=>{var t;const n=e.parentNode;e.firstChild&&n.insertBefore(e.firstChild,e),null===(t=e.parentNode)||void 0===t||t.removeChild(e)},K=(e,t)=>{const n=[],r=C.toArray(e.getBody().getElementsByTagName("span"));if(r.length)for(let e=0;e<r.length;e++){const o=_(r[e]);null!==o&&o.length&&o===t.toString()&&n.push(r[e])}return n},H=(e,t,n)=>{const r=t.get();let o=r.index;const s=e.dom;n?o+1===r.count?o=0:o++:o-1==-1?o=r.count-1:o--,s.removeClass(K(e,r.index),"mce-match-marker-selected");const a=K(e,o);return a.length?(s.addClass(K(e,o),"mce-match-marker-selected"),e.selection.scrollIntoView(a[0]),o):-1},J=(e,t)=>{const n=t.parentNode;e.remove(t),n&&e.isEmpty(n)&&e.remove(n)},L=(e,t,n,r,o,s)=>{const a=e.selection,l=((e,t)=>{const n="("+e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&").replace(/\s/g,"[^\\S\\r\\n\\uFEFF]")+")";return t?`(?:^|\\s|${v()})`+n+`(?=$|\\s|${v()})`:n})(n,o),i=a.isForward(),c={regex:new RegExp(l,r?"g":"gi"),matchIndex:1},d=q(e,t,c,s);if(w.browser.isSafari()&&a.setRng(a.getRng(),i),d){const a=H(e,t,!0);t.set({index:a,count:d,text:n,matchCase:r,wholeWord:o,inSelection:s})}return d},Q=(e,t)=>{const n=H(e,t,!0);t.set({...t.get(),index:n})},X=(e,t)=>{const n=H(e,t,!1);t.set({...t.get(),index:n})},Y=e=>{const t=_(e);return null!==t&&t.length>0},Z=(e,t,n,r,o)=>{const s=t.get(),a=s.index;let l,i=a;r=!1!==r;const c=e.getBody(),d=C.grep(C.toArray(c.getElementsByTagName("span")),Y);for(let t=0;t<d.length;t++){const c=_(d[t]);let u=l=parseInt(c,10);if(o||u===s.index){for(n.length?(d[t].innerText=n,G(d[t])):J(e.dom,d[t]);d[++t];){if(u=parseInt(_(d[t]),10),u!==l){t--;break}J(e.dom,d[t])}r&&i--}else l>a&&d[t].setAttribute("data-mce-index",String(l-1))}return t.set({...s,count:o?0:s.count-1,index:i}),r?Q(e,t):X(e,t),!o&&t.get().count>0},ee=(e,t,n)=>{let r,o;const s=t.get(),a=C.toArray(e.getBody().getElementsByTagName("span"));for(let e=0;e<a.length;e++){const t=_(a[e]);null!==t&&t.length&&(t===s.index.toString()&&(r||(r=a[e].firstChild),o=a[e].firstChild),G(a[e]))}if(t.set({...s,index:-1,count:0,text:""}),r&&o){const t=e.dom.createRng();return t.setStart(r,0),t.setEnd(o,o.data.length),!1!==n&&e.selection.setRng(t),t}},te=(e,t)=>{const n=(()=>{const e=(e=>{const t=y(c.none()),n=()=>t.get().each(e);return{clear:()=>{n(),t.set(c.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{n(),t.set(c.some(e))}}})(a);return{...e,on:t=>e.get().each(t)}})();e.undoManager.add();const r=C.trim(e.selection.getContent({format:"text"})),o=e=>{e.setEnabled("next",((e,t)=>t.get().count>1)(0,t)),e.setEnabled("prev",((e,t)=>t.get().count>1)(0,t))},s=(e,t)=>{h(["replace","replaceall","prev","next"],(n=>e.setEnabled(n,!t)))},l=(e,t)=>{t.redial(p(e,t.getData()))},i=(e,t)=>{w.browser.isSafari()&&w.deviceType.isTouch()&&("find"===t||"replace"===t||"replaceall"===t)&&e.focus(t)},d=n=>{ee(e,t,!1),s(n,!0),o(n)},u=n=>{const r=n.getData(),a=t.get();if(r.findtext.length){if(a.text===r.findtext&&a.matchCase===r.matchcase&&a.wholeWord===r.wholewords)Q(e,t);else{const o=L(e,t,r.findtext,r.matchcase,r.wholewords,r.inselection);o<=0&&l(!0,n),s(n,0===o)}o(n)}else d(n)},m=t.get(),g={findtext:r,replacetext:"",wholewords:m.wholeWord,matchcase:m.matchCase,inselection:m.inSelection},f=e=>{const t=[{type:"label",label:"Find",for:"findtext",items:[{type:"bar",items:[{type:"input",name:"findtext",maximized:!0,inputMode:"search"},{type:"button",name:"prev",text:"Previous",icon:"action-prev",enabled:!1,borderless:!0},{type:"button",name:"next",text:"Next",icon:"action-next",enabled:!1,borderless:!0}]}]},{type:"input",name:"replacetext",label:"Replace with",inputMode:"search"}];return e&&t.push({type:"alertbanner",level:"error",text:"Could not find the specified string.",icon:"warning"}),t},p=(n,r)=>({title:"Find and Replace",size:"normal",body:{type:"panel",items:f(n)},buttons:[{type:"menu",name:"options",icon:"preferences",tooltip:"Preferences",align:"start",items:[{type:"togglemenuitem",name:"matchcase",text:"Match case"},{type:"togglemenuitem",name:"wholewords",text:"Find whole words only"},{type:"togglemenuitem",name:"inselection",text:"Find in selection"}]},{type:"custom",name:"find",text:"Find",primary:!0},{type:"custom",name:"replace",text:"Replace",enabled:!1},{type:"custom",name:"replaceall",text:"Replace all",enabled:!1}],initialData:r,onChange:(e,r)=>{n&&l(!1,e),"findtext"===r.name&&t.get().count>0&&d(e)},onAction:(n,r)=>{const s=n.getData();switch(r.name){case"find":u(n);break;case"replace":Z(e,t,s.replacetext)?o(n):d(n);break;case"replaceall":Z(e,t,s.replacetext,!0,!0),d(n);break;case"prev":X(e,t),o(n);break;case"next":Q(e,t),o(n);break;case"matchcase":case"wholewords":case"inselection":l(!1,n),(e=>{const n=e.getData(),r=t.get();t.set({...r,matchCase:n.matchcase,wholeWord:n.wholewords,inSelection:n.inselection})})(n),d(n)}i(n,r.name)},onSubmit:e=>{u(e),i(e,"find")},onClose:()=>{e.focus(),ee(e,t),e.undoManager.add()}});n.set(e.windowManager.open(p(!1,g),{inline:"toolbar"}))},ne=(e,t)=>()=>{te(e,t)};b.add("searchreplace",(e=>{const t=y({index:-1,count:0,text:"",matchCase:!1,wholeWord:!1,inSelection:!1});return((e,t)=>{e.addCommand("SearchReplace",(()=>{te(e,t)}))})(e,t),((e,t)=>{e.ui.registry.addMenuItem("searchreplace",{text:"Find and replace...",shortcut:"Meta+F",onAction:ne(e,t),icon:"search"}),e.ui.registry.addButton("searchreplace",{tooltip:"Find and replace",onAction:ne(e,t),icon:"search",shortcut:"Meta+F"}),e.shortcuts.add("Meta+F","",ne(e,t))})(e,t),((e,t)=>({done:n=>ee(e,t,n),find:(n,r,o,s=!1)=>L(e,t,n,r,o,s),next:()=>Q(e,t),prev:()=>X(e,t),replace:(n,r,o)=>Z(e,t,n,r,o)}))(e,t)}))}();
1
+ !function(){"use strict";const e=e=>t=>(e=>{const t=typeof e;return null===e?"null":"object"===t&&Array.isArray(e)?"array":"object"===t&&(n=r=e,(o=String).prototype.isPrototypeOf(n)||r.constructor?.name===o.name)?"string":t;var n,r,o})(t)===e,t=e=>t=>typeof t===e,n=e("string"),r=e("array"),o=t("boolean"),s=t("number"),a=()=>{},l=e=>()=>e,i=l(!0);class c{tag;value;static singletonNone=new c(!1);constructor(e,t){this.tag=e,this.value=t}static some(e){return new c(!0,e)}static none(){return c.singletonNone}fold(e,t){return this.tag?t(this.value):e()}isSome(){return this.tag}isNone(){return!this.tag}map(e){return this.tag?c.some(e(this.value)):c.none()}bind(e){return this.tag?e(this.value):c.none()}exists(e){return this.tag&&e(this.value)}forall(e){return!this.tag||e(this.value)}filter(e){return!this.tag||e(this.value)?this:c.none()}getOr(e){return this.tag?this.value:e}or(e){return this.tag?this:e}getOrThunk(e){return this.tag?this.value:e()}orThunk(e){return this.tag?this:e()}getOrDie(e){if(this.tag)return this.value;throw new Error(e??"Called getOrDie on None")}static from(e){return null==e?c.none():c.some(e)}getOrNull(){return this.tag?this.value:null}getOrUndefined(){return this.value}each(e){this.tag&&e(this.value)}toArray(){return this.tag?[this.value]:[]}toString(){return this.tag?`some(${this.value})`:"none()"}}const d=Array.prototype.slice,u=Array.prototype.push,m=(e,t)=>{const n=e.length,r=new Array(n);for(let o=0;o<n;o++){const n=e[o];r[o]=t(n,o)}return r},h=(e,t)=>{for(let n=0,r=e.length;n<r;n++)t(e[n],n)},g=(e,t)=>{for(let n=e.length-1;n>=0;n--)t(e[n],n)},f=(e,t)=>(e=>{const t=[];for(let n=0,o=e.length;n<o;++n){if(!r(e[n]))throw new Error("Arr.flatten item "+n+" was not an array, input: "+e);u.apply(t,e[n])}return t})(m(e,t)),p=Object.hasOwnProperty,x=(e,t)=>p.call(e,t),y=e=>{let t=e;return{get:()=>t,set:e=>{t=e}}};var b=tinymce.util.Tools.resolve("tinymce.PluginManager");const w=l("[~\u2116|!-*+-\\/:;?@\\[-`{}\xa1\xab\xb7\xbb\xbf;\xb7\u055a-\u055f\u0589\u058a\u05be\u05c0\u05c3\u05c6\u05f3\u05f4\u0609\u060a\u060c\u060d\u061b\u061e\u061f\u066a-\u066d\u06d4\u0700-\u070d\u07f7-\u07f9\u0830-\u083e\u085e\u0964\u0965\u0970\u0df4\u0e4f\u0e5a\u0e5b\u0f04-\u0f12\u0f3a-\u0f3d\u0f85\u0fd0-\u0fd4\u0fd9\u0fda\u104a-\u104f\u10fb\u1361-\u1368\u1400\u166d\u166e\u169b\u169c\u16eb-\u16ed\u1735\u1736\u17d4-\u17d6\u17d8-\u17da\u1800-\u180a\u1944\u1945\u1a1e\u1a1f\u1aa0-\u1aa6\u1aa8-\u1aad\u1b5a-\u1b60\u1bfc-\u1bff\u1c3b-\u1c3f\u1c7e\u1c7f\u1cd3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205e\u207d\u207e\u208d\u208e\u3008\u3009\u2768-\u2775\u27c5\u27c6\u27e6-\u27ef\u2983-\u2998\u29d8-\u29db\u29fc\u29fd\u2cf9-\u2cfc\u2cfe\u2cff\u2d70\u2e00-\u2e2e\u2e30\u2e31\u3001-\u3003\u3008-\u3011\u3014-\u301f\u3030\u303d\u30a0\u30fb\ua4fe\ua4ff\ua60d-\ua60f\ua673\ua67e\ua6f2-\ua6f7\ua874-\ua877\ua8ce\ua8cf\ua8f8-\ua8fa\ua92e\ua92f\ua95f\ua9c1-\ua9cd\ua9de\ua9df\uaa5c-\uaa5f\uaade\uaadf\uabeb\ufd3e\ufd3f\ufe10-\ufe19\ufe30-\ufe52\ufe54-\ufe61\ufe63\ufe68\ufe6a\ufe6b\uff01-\uff03\uff05-\uff0a\uff0c-\uff0f\uff1a\uff1b\uff1f\uff20\uff3b-\uff3d\uff3f\uff5b\uff5d\uff5f-\uff65]");var v=tinymce.util.Tools.resolve("tinymce.Env"),C=tinymce.util.Tools.resolve("tinymce.util.Tools");const E=e=>{if(null==e)throw new Error("Node cannot be null or undefined");return{dom:e}},O=E,N=e=>3===(e=>e.dom.nodeType)(e);const T=(e,t)=>({element:e,offset:t}),k=(e,t)=>{((e,t)=>{const n=(e=>c.from(e.dom.parentNode).map(O))(e);n.each((n=>{n.dom.insertBefore(t.dom,e.dom)}))})(e,t),((e,t)=>{e.dom.appendChild(t.dom)})(t,e)},A=(e=>{const t=t=>e(t)?c.from(t.dom.nodeValue):c.none();return{get:n=>{if(!e(n))throw new Error("Can only get text value of a text node");return t(n).getOr("")},getOption:t,set:(t,n)=>{if(!e(t))throw new Error("Can only set raw text value of a text node");t.dom.nodeValue=n}}})(N),S=e=>A.get(e);var B=tinymce.util.Tools.resolve("tinymce.dom.TreeWalker");const F=(e,t)=>e.isBlock(t)||x(e.schema.getVoidElements(),t.nodeName),I=(e,t)=>!e.isEditable(t),M=(e,t)=>!e.isBlock(t)&&x(e.schema.getWhitespaceElements(),t.nodeName),R=(e,t)=>((e,t)=>{const n=(e=>m(e.dom.childNodes,O))(e);return n.length>0&&t<n.length?T(n[t],0):T(e,t)})(O(e),t),D=(e,t,n,r,o,s=!0)=>{let a=s?t(!1):n;for(;a;){const n=I(e,a);if(n||M(e,a)){if(n?r.cef(a):r.boundary(a))break;a=t(!0)}else{if(F(e,a)){if(r.boundary(a))break}else 3===a.nodeType&&r.text(a);if(a===o)break;a=t(!1)}}},P=(e,t,n,r,o)=>{if(((e,t)=>F(e,t)||I(e,t)||M(e,t)||((e,t)=>"true"===e.getContentEditable(t)&&t.parentNode&&!e.isEditable(t.parentNode))(e,t))(e,n))return;const s=e.getParent(r,e.isBlock)??e.getRoot(),a=new B(n,s),l=o?a.next.bind(a):a.prev.bind(a);D(e,l,n,{boundary:i,cef:i,text:e=>{o?t.fOffset+=e.length:t.sOffset+=e.length,t.elements.push(O(e))}})},W=(e,t,n,r,o,s=!0)=>{const a=new B(n,t),l=[];let i={sOffset:0,fOffset:0,elements:[]};P(e,i,n,t,!1);const c=()=>(i.elements.length>0&&(l.push(i),i={sOffset:0,fOffset:0,elements:[]}),!1);return D(e,a.next.bind(a),n,{boundary:c,cef:e=>(c(),o&&l.push(...o.cef(e)),!1),text:e=>{i.elements.push(O(e)),o&&o.text(e,i)}},r,s),r&&P(e,i,r,t,!0),c(),l},$=(e,t)=>{const n=R(t.startContainer,t.startOffset),r=n.element.dom,o=R(t.endContainer,t.endOffset),s=o.element.dom;return W(e,t.commonAncestorContainer,r,s,{text:(e,t)=>{e===s?t.fOffset+=e.length-o.offset:e===r&&(t.sOffset+=n.offset)},cef:t=>{return(e=>{const t=d.call(e,0);return t.sort(((e,t)=>((e,t)=>((e,t,n)=>!!(e.compareDocumentPosition(t)&n))(e,t,Node.DOCUMENT_POSITION_PRECEDING))(e.elements[0].dom,t.elements[0].dom)?1:-1)),t})(f((n=O(t),((e,t)=>{const n=void 0===t?document:t.dom;return 1!==(r=n).nodeType&&9!==r.nodeType&&11!==r.nodeType||0===r.childElementCount?[]:m(n.querySelectorAll(e),O);var r})("*[contenteditable=true]",n)),(t=>{const n=t.dom;return W(e,n,n)})));var n}},!1)},V=(e,t)=>t.collapsed?[]:$(e,t),j=(e,t)=>{const n=e.createRng();return n.selectNode(t),V(e,n)},z=(e,t)=>f(t,(t=>{const n=t.elements,r=m(n,S).join(""),o=((e,t,n=0,r=e.length)=>{const o=t.regex;o.lastIndex=n;const s=[];let a;for(;a=o.exec(e);){const e=a[t.matchIndex],n=a.index+a[0].indexOf(e),l=n+e.length;if(l>r)break;s.push({start:n,finish:l}),o.lastIndex=l}return s})(r,e,t.sOffset,r.length-t.fOffset);return((e,t)=>{const n=(r=e,o=(e,n)=>{const r=S(n),o=e.last,s=o+r.length,a=f(t,((e,t)=>e.start<s&&e.finish>o?[{element:n,start:Math.max(o,e.start)-o,finish:Math.min(s,e.finish)-o,matchId:t}]:[]));return{results:e.results.concat(a),last:s}},s={results:[],last:0},h(r,((e,t)=>{s=o(s,e)})),s).results;var r,o,s;return((e,t)=>{if(0===e.length)return[];{let n=t(e[0]);const r=[];let o=[];for(let s=0,a=e.length;s<a;s++){const a=e[s],l=t(a);l!==n&&(r.push(o),o=[]),n=l,o.push(a)}return 0!==o.length&&r.push(o),r}})(n,(e=>e.matchId))})(n,o)})),U=(e,t)=>{g(e,((e,r)=>{g(e,(e=>{const a=O(t.cloneNode(!1));((e,t,r)=>{((e,t,r)=>{if(!(n(r)||o(r)||s(r)))throw console.error("Invalid call to Attribute.set. Key ",t,":: Value ",r,":: Element ",e),new Error("Attribute value was not simple");e.setAttribute(t,r+"")})(e.dom,t,r)})(a,"data-mce-index",r);const l=e.element.dom;if(l.length===e.finish&&0===e.start)k(e.element,a);else{l.length!==e.finish&&l.splitText(e.finish);const t=l.splitText(e.start);k(O(t),a)}}))}))},_=e=>e.getAttribute("data-mce-index"),q=(e,t,n,r)=>{const o=e.dom.create("span",{"data-mce-bogus":1});o.className="mce-match-marker";const s=e.getBody();return ee(e,t,!1),r?((e,t,n,r)=>{const o=n.getBookmark(),s=e.select("td[data-mce-selected],th[data-mce-selected]"),a=s.length>0?((e,t)=>f(t,(t=>j(e,t))))(e,s):V(e,n.getRng()),l=z(t,a);return U(l,r),n.moveToBookmark(o),l.length})(e.dom,n,e.selection,o):((e,t,n,r)=>{const o=j(e,n),s=z(t,o);return U(s,r),s.length})(e.dom,n,s,o)},G=e=>{const t=e.parentNode;e.firstChild&&t.insertBefore(e.firstChild,e),e.parentNode?.removeChild(e)},K=(e,t)=>{const n=[],r=C.toArray(e.getBody().getElementsByTagName("span"));if(r.length)for(let e=0;e<r.length;e++){const o=_(r[e]);null!==o&&o.length&&o===t.toString()&&n.push(r[e])}return n},H=(e,t,n)=>{const r=t.get();let o=r.index;const s=e.dom;n?o+1===r.count?o=0:o++:o-1==-1?o=r.count-1:o--,s.removeClass(K(e,r.index),"mce-match-marker-selected");const a=K(e,o);return a.length?(s.addClass(K(e,o),"mce-match-marker-selected"),e.selection.scrollIntoView(a[0]),o):-1},J=(e,t)=>{const n=t.parentNode;e.remove(t),n&&e.isEmpty(n)&&e.remove(n)},L=(e,t,n,r,o,s)=>{const a=e.selection,l=((e,t)=>{const n="("+e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&").replace(/\s/g,"[^\\S\\r\\n\\uFEFF]")+")";return t?`(?:^|\\s|${w()})`+n+`(?=$|\\s|${w()})`:n})(n,o),i=a.isForward(),c={regex:new RegExp(l,r?"g":"gi"),matchIndex:1},d=q(e,t,c,s);if(v.browser.isSafari()&&a.setRng(a.getRng(),i),d){const a=H(e,t,!0);t.set({index:a,count:d,text:n,matchCase:r,wholeWord:o,inSelection:s})}return d},Q=(e,t)=>{const n=H(e,t,!0);t.set({...t.get(),index:n})},X=(e,t)=>{const n=H(e,t,!1);t.set({...t.get(),index:n})},Y=e=>{const t=_(e);return null!==t&&t.length>0},Z=(e,t,n,r,o)=>{const s=t.get(),a=s.index;let l,i=a;r=!1!==r;const c=e.getBody(),d=C.grep(C.toArray(c.getElementsByTagName("span")),Y);for(let t=0;t<d.length;t++){const c=_(d[t]);let u=l=parseInt(c,10);if(o||u===s.index){for(n.length?(d[t].innerText=n,G(d[t])):J(e.dom,d[t]);d[++t];){if(u=parseInt(_(d[t]),10),u!==l){t--;break}J(e.dom,d[t])}r&&i--}else l>a&&d[t].setAttribute("data-mce-index",String(l-1))}return t.set({...s,count:o?0:s.count-1,index:i}),r?Q(e,t):X(e,t),!o&&t.get().count>0},ee=(e,t,n)=>{let r,o;const s=t.get(),a=C.toArray(e.getBody().getElementsByTagName("span"));for(let e=0;e<a.length;e++){const t=_(a[e]);null!==t&&t.length&&(t===s.index.toString()&&(r||(r=a[e].firstChild),o=a[e].firstChild),G(a[e]))}if(t.set({...s,index:-1,count:0,text:""}),r&&o){const t=e.dom.createRng();return t.setStart(r,0),t.setEnd(o,o.data.length),!1!==n&&e.selection.setRng(t),t}},te=(e,t)=>{const n=(()=>{const e=(e=>{const t=y(c.none()),n=()=>t.get().each(e);return{clear:()=>{n(),t.set(c.none())},isSet:()=>t.get().isSome(),get:()=>t.get(),set:e=>{n(),t.set(c.some(e))}}})(a);return{...e,on:t=>e.get().each(t)}})();e.undoManager.add();const r=C.trim(e.selection.getContent({format:"text"})),o=e=>{e.setEnabled("next",((e,t)=>t.get().count>1)(0,t)),e.setEnabled("prev",((e,t)=>t.get().count>1)(0,t))},s=(e,t)=>{h(["replace","replaceall","prev","next"],(n=>e.setEnabled(n,!t)))},l=(e,t)=>{t.redial(p(e,t.getData()))},i=(e,t)=>{v.browser.isSafari()&&v.deviceType.isTouch()&&("find"===t||"replace"===t||"replaceall"===t)&&e.focus(t)},d=n=>{ee(e,t,!1),s(n,!0),o(n)},u=n=>{const r=n.getData(),a=t.get();if(r.findtext.length){if(a.text===r.findtext&&a.matchCase===r.matchcase&&a.wholeWord===r.wholewords)Q(e,t);else{const o=L(e,t,r.findtext,r.matchcase,r.wholewords,r.inselection);o<=0&&l(!0,n),s(n,0===o)}o(n)}else d(n)},m=t.get(),g={findtext:r,replacetext:"",wholewords:m.wholeWord,matchcase:m.matchCase,inselection:m.inSelection},f=e=>{const t=[{type:"label",label:"Find",for:"findtext",items:[{type:"bar",items:[{type:"input",name:"findtext",maximized:!0,inputMode:"search"},{type:"button",name:"prev",text:"Previous",icon:"action-prev",enabled:!1,borderless:!0},{type:"button",name:"next",text:"Next",icon:"action-next",enabled:!1,borderless:!0}]}]},{type:"input",name:"replacetext",label:"Replace with",inputMode:"search"}];return e&&t.push({type:"alertbanner",level:"error",text:"Could not find the specified string.",icon:"warning"}),t},p=(n,r)=>({title:"Find and Replace",size:"normal",body:{type:"panel",items:f(n)},buttons:[{type:"menu",name:"options",icon:"preferences",tooltip:"Preferences",align:"start",items:[{type:"togglemenuitem",name:"matchcase",text:"Match case"},{type:"togglemenuitem",name:"wholewords",text:"Find whole words only"},{type:"togglemenuitem",name:"inselection",text:"Find in selection"}]},{type:"custom",name:"find",text:"Find",primary:!0},{type:"custom",name:"replace",text:"Replace",enabled:!1},{type:"custom",name:"replaceall",text:"Replace all",enabled:!1}],initialData:r,onChange:(e,r)=>{n&&l(!1,e),"findtext"===r.name&&t.get().count>0&&d(e)},onAction:(n,r)=>{const s=n.getData();switch(r.name){case"find":u(n);break;case"replace":Z(e,t,s.replacetext)?o(n):d(n);break;case"replaceall":Z(e,t,s.replacetext,!0,!0),d(n);break;case"prev":X(e,t),o(n);break;case"next":Q(e,t),o(n);break;case"matchcase":case"wholewords":case"inselection":l(!1,n),(e=>{const n=e.getData(),r=t.get();t.set({...r,matchCase:n.matchcase,wholeWord:n.wholewords,inSelection:n.inselection})})(n),d(n)}i(n,r.name)},onSubmit:e=>{u(e),i(e,"find")},onClose:()=>{e.focus(),ee(e,t),e.undoManager.add()}});n.set(e.windowManager.open(p(!1,g),{inline:"toolbar"}))},ne=(e,t)=>()=>{te(e,t)};b.add("searchreplace",(e=>{const t=y({index:-1,count:0,text:"",matchCase:!1,wholeWord:!1,inSelection:!1});return((e,t)=>{e.addCommand("SearchReplace",(()=>{te(e,t)}))})(e,t),((e,t)=>{e.ui.registry.addMenuItem("searchreplace",{text:"Find and replace...",shortcut:"Meta+F",onAction:ne(e,t),icon:"search"}),e.ui.registry.addButton("searchreplace",{tooltip:"Find and replace",onAction:ne(e,t),icon:"search",shortcut:"Meta+F"}),e.shortcuts.add("Meta+F","",ne(e,t))})(e,t),((e,t)=>({done:n=>ee(e,t,n),find:(n,r,o,s=!1)=>L(e,t,n,r,o,s),next:()=>Q(e,t),prev:()=>X(e,t),replace:(n,r,o)=>Z(e,t,n,r,o)}))(e,t)}))}();
@@ -1,5 +1,5 @@
1
1
  /**
2
- * TinyMCE version 7.9.1 (2025-05-29)
2
+ * TinyMCE version 8.3.1 (2025-12-17)
3
3
  */
4
4
 
5
5
  (function () {
@@ -9,13 +9,12 @@
9
9
 
10
10
  /* eslint-disable @typescript-eslint/no-wrapper-object-types */
11
11
  const hasProto = (v, constructor, predicate) => {
12
- var _a;
13
12
  if (predicate(v, constructor.prototype)) {
14
13
  return true;
15
14
  }
16
15
  else {
17
16
  // String-based fallback time
18
- return ((_a = v.constructor) === null || _a === void 0 ? void 0 : _a.name) === constructor.name;
17
+ return v.constructor?.name === constructor.name;
19
18
  }
20
19
  };
21
20
  const typeOf = (x) => {
@@ -59,7 +58,6 @@
59
58
  const tripleEquals = (a, b) => {
60
59
  return a === b;
61
60
  };
62
- // eslint-disable-next-line prefer-arrow/prefer-arrow-functions
63
61
  function curry(fn, ...initialArgs) {
64
62
  return (...restArgs) => {
65
63
  const all = initialArgs.concat(restArgs);
@@ -88,6 +86,11 @@
88
86
  * strict-null-checks
89
87
  */
90
88
  class Optional {
89
+ tag;
90
+ value;
91
+ // Sneaky optimisation: every instance of Optional.none is identical, so just
92
+ // reuse the same object
93
+ static singletonNone = new Optional(false);
91
94
  // The internal representation has a `tag` and a `value`, but both are
92
95
  // private: able to be console.logged, but not able to be accessed by code
93
96
  constructor(tag, value) {
@@ -255,7 +258,7 @@
255
258
  */
256
259
  getOrDie(message) {
257
260
  if (!this.tag) {
258
- throw new Error(message !== null && message !== void 0 ? message : 'Called getOrDie on None');
261
+ throw new Error(message ?? 'Called getOrDie on None');
259
262
  }
260
263
  else {
261
264
  return this.value;
@@ -319,15 +322,10 @@
319
322
  return this.tag ? `some(${this.value})` : 'none()';
320
323
  }
321
324
  }
322
- // Sneaky optimisation: every instance of Optional.none is identical, so just
323
- // reuse the same object
324
- Optional.singletonNone = new Optional(false);
325
325
 
326
- /* eslint-disable @typescript-eslint/unbound-method */
327
326
  const nativeSlice = Array.prototype.slice;
328
327
  const nativeIndexOf = Array.prototype.indexOf;
329
328
  const nativePush = Array.prototype.push;
330
- /* eslint-enable */
331
329
  const rawIndexOf = (ts, t) => nativeIndexOf.call(ts, t);
332
330
  const contains = (xs, x) => rawIndexOf(xs, x) > -1;
333
331
  const exists = (xs, pred) => {
@@ -480,7 +478,6 @@
480
478
  //
481
479
  // Use the native keys if it is available (IE9+), otherwise fall back to manually filtering
482
480
  const keys = Object.keys;
483
- // eslint-disable-next-line @typescript-eslint/unbound-method
484
481
  const hasOwnProperty = Object.hasOwnProperty;
485
482
  const each = (obj, f) => {
486
483
  const props = keys(obj);
@@ -895,9 +892,7 @@
895
892
 
896
893
  // some elements, such as mathml, don't have style attributes
897
894
  // others, such as angular elements, have style attributes that aren't a CSSStyleDeclaration
898
- const isSupported = (dom) =>
899
- // eslint-disable-next-line @typescript-eslint/unbound-method
900
- dom.style !== undefined && isFunction(dom.style.getPropertyValue);
895
+ const isSupported = (dom) => dom.style !== undefined && isFunction(dom.style.getPropertyValue);
901
896
 
902
897
  // Node.contains() is very, very, very good performance
903
898
  // http://jsperf.com/closest-vs-contains/5
@@ -1077,9 +1072,6 @@
1077
1072
  };
1078
1073
  const getInnerWidth = (element) => getCalculatedWidth(element, 'content-box');
1079
1074
 
1080
- Dimension('width', (element) =>
1081
- // IMO passing this function is better than using dom['offset' + 'width']
1082
- element.dom.offsetWidth);
1083
1075
  Dimension('width', (element) => {
1084
1076
  const dom = element.dom;
1085
1077
  return inBody(element) ? dom.getBoundingClientRect().width : dom.offsetWidth;
@@ -2024,10 +2016,9 @@
2024
2016
  // Note: This is also contained in the core Options.ts file
2025
2017
  const defaultWidth = '100%';
2026
2018
  const getPixelForcedWidth = (editor) => {
2027
- var _a;
2028
2019
  // Determine the inner size of the parent block element where the table will be inserted
2029
2020
  const dom = editor.dom;
2030
- const parentBlock = (_a = dom.getParent(editor.selection.getStart(), dom.isBlock)) !== null && _a !== void 0 ? _a : editor.getBody();
2021
+ const parentBlock = dom.getParent(editor.selection.getStart(), dom.isBlock) ?? editor.getBody();
2031
2022
  return getInner(SugarElement.fromDom(parentBlock)) + 'px';
2032
2023
  };
2033
2024
  // Note: This is also contained in the core Options.ts file
@@ -2277,7 +2268,6 @@
2277
2268
  return hexColour(value);
2278
2269
  };
2279
2270
 
2280
- /* eslint-disable no-console */
2281
2271
  const rgbRegex = /^\s*rgb\s*\(\s*(\d+)\s*[,\s]\s*(\d+)\s*[,\s]\s*(\d+)\s*\)\s*$/i;
2282
2272
  // This regex will match rgba(0, 0, 0, 0.5) or rgba(0, 0, 0, 50%) , or without commas
2283
2273
  const rgbaRegex = /^\s*rgba\s*\(\s*(\d+)\s*[,\s]\s*(\d+)\s*[,\s]\s*(\d+)\s*[,\s]\s*((?:\d?\.\d+|\d+)%?)\s*\)\s*$/i;
@@ -2660,8 +2650,8 @@
2660
2650
  return {
2661
2651
  width: dom.getStyle(elm, 'width') || dom.getAttrib(elm, 'width'),
2662
2652
  height: dom.getStyle(elm, 'height') || dom.getAttrib(elm, 'height'),
2663
- cellspacing: cellspacing !== null && cellspacing !== void 0 ? cellspacing : '',
2664
- cellpadding: cellpadding !== null && cellpadding !== void 0 ? cellpadding : '',
2653
+ cellspacing: cellspacing ?? '',
2654
+ cellpadding: cellpadding ?? '',
2665
2655
  border: getBorder(dom, elm),
2666
2656
  caption: !!dom.select('caption', elm)[0],
2667
2657
  class: dom.getAttrib(elm, 'class', ''),
@@ -3442,8 +3432,7 @@
3442
3432
  const tableTypeRow = tableTypeBase + 'rows';
3443
3433
  const tableTypeColumn = tableTypeBase + 'columns';
3444
3434
  const getData = (type) => {
3445
- var _a;
3446
- const items = (_a = global.read()) !== null && _a !== void 0 ? _a : [];
3435
+ const items = global.read() ?? [];
3447
3436
  return findMap(items, (item) => Optional.from(item.getType(type)));
3448
3437
  };
3449
3438
  const getRows = () => getData(tableTypeRow);