@harbour-enterprises/superdoc 0.21.0-next.5 → 0.21.0-next.6

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 (32) hide show
  1. package/dist/chunks/{PdfViewer-DYQ6TKSD.cjs → PdfViewer-BrJSIJjF.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-p-D44U59.es.js → PdfViewer-CJAEtjUD.es.js} +1 -1
  3. package/dist/chunks/{index-CDJb8aX-.es.js → index-BDfKQQiO.es.js} +2 -2
  4. package/dist/chunks/{index-CtZxITmf.cjs → index-NiOytIlp.cjs} +2 -2
  5. package/dist/chunks/{super-editor.es-Do6Vcsbv.cjs → super-editor.es-DmkkMNKU.cjs} +1638 -669
  6. package/dist/chunks/{super-editor.es-HiSJrA0J.es.js → super-editor.es-iVTtEcot.es.js} +1638 -669
  7. package/dist/core/types/index.d.ts.map +1 -1
  8. package/dist/style.css +11 -11
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-3xnF_NHq.js → converter-CYC0HBJe.js} +733 -642
  11. package/dist/super-editor/chunks/{docx-zipper-CZdELYi-.js → docx-zipper-DlwteneT.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-BqYH4kDD.js → editor-BzT9rpXb.js} +59 -13
  13. package/dist/super-editor/chunks/{toolbar-TkaE2kKM.js → toolbar-BnTHDmlP.js} +6 -7
  14. package/dist/super-editor/converter.es.js +1 -1
  15. package/dist/super-editor/docx-zipper.es.js +2 -2
  16. package/dist/super-editor/editor.es.js +3 -3
  17. package/dist/super-editor/file-zipper.es.js +1 -1
  18. package/dist/super-editor/src/core/super-converter/v3/handlers/mc/altermateContent/alternate-content-translator.d.ts +6 -0
  19. package/dist/super-editor/src/core/super-converter/v3/handlers/mc/altermateContent/index.d.ts +1 -0
  20. package/dist/super-editor/src/extensions/noderesizer/helpers.d.ts +2 -0
  21. package/dist/super-editor/src/tests/helpers/helpers.d.ts +1 -0
  22. package/dist/super-editor/src/utils/shadow-root.d.ts +12 -0
  23. package/dist/super-editor/style.css +11 -11
  24. package/dist/super-editor/super-editor.es.js +849 -16
  25. package/dist/super-editor/toolbar.es.js +2 -2
  26. package/dist/super-editor.cjs +1 -1
  27. package/dist/super-editor.es.js +1 -1
  28. package/dist/superdoc.cjs +2 -2
  29. package/dist/superdoc.es.js +2 -2
  30. package/dist/superdoc.umd.js +1638 -669
  31. package/dist/superdoc.umd.js.map +1 -1
  32. package/package.json +1 -1
@@ -9,14 +9,14 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
11
11
  var _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, runCommandWithArgumentOnly_fn;
12
- import { av as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, ay as vClickOutside, H as findParentNode, az as getActiveFormatting, ap as isInTable, aA as readFromClipboard, aB as handleClipboardPaste, aC as getFileObject, aD as runPropertyTranslators, aE as translator, aF as translator$1, aG as translator$2, aH as translator$3, aI as translator$4, aJ as translator$5, aK as translator$6, aL as translator$7, aM as translator$8, aN as translator$9, aO as translator$a, aP as translator$b, aQ as translator$c, aR as translator$d, aS as translator$e, aT as translator$f, aU as translator$g, aV as translator$h, aW as translator$i, aX as translator$j, aY as translator$k, aZ as translator$l, a_ as translator$m, a$ as translator$n, b0 as translator$o, b1 as translator$p, a as Plugin } from "./chunks/converter-3xnF_NHq.js";
13
- import { b2, a5, i, a2 } from "./chunks/converter-3xnF_NHq.js";
14
- import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, y as yUndoPluginKey, f as undoDepth, h as redoDepth, S as SlashMenuPluginKey, E as Editor, i as getStarterExtensions, P as Placeholder, j as getRichTextExtensions, M as Mark, k as Extension, A as Attribute, N as Node } from "./chunks/editor-BqYH4kDD.js";
15
- import { n, C, o, T, l, p, m } from "./chunks/editor-BqYH4kDD.js";
12
+ import { av as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, ay as vClickOutside, H as findParentNode, az as getActiveFormatting, ap as isInTable, aA as readFromClipboard, aB as handleClipboardPaste, aC as getFileObject, aD as runPropertyTranslators, aE as translator, aF as translator$1, aG as translator$2, aH as translator$3, aI as translator$4, aJ as translator$5, aK as translator$6, aL as translator$7, aM as translator$8, aN as translator$9, aO as translator$a, aP as translator$b, aQ as translator$c, aR as translator$d, aS as translator$e, aT as translator$f, aU as translator$g, aV as translator$h, aW as translator$i, aX as translator$j, aY as translator$k, aZ as translator$l, a_ as translator$m, a$ as translator$n, b0 as translator$o, b1 as translator$p, a as Plugin } from "./chunks/converter-CYC0HBJe.js";
13
+ import { b2, a5, i, a2 } from "./chunks/converter-CYC0HBJe.js";
14
+ import { _ as _export_sfc, u as useHighContrastMode, a as getQuickFormatList, b as generateLinkedStyleString, c as getFileOpener, d as checkAndProcessImage, r as replaceSelectionWithImagePlaceholder, e as uploadAndInsertImage, y as yUndoPluginKey, f as undoDepth, h as redoDepth, S as SlashMenuPluginKey, E as Editor, i as getStarterExtensions, P as Placeholder, j as getRichTextExtensions, M as Mark, k as Extension, A as Attribute, N as Node } from "./chunks/editor-BzT9rpXb.js";
15
+ import { n, C, o, T, l, p, m } from "./chunks/editor-BzT9rpXb.js";
16
16
  import { ref, onMounted, createElementBlock, openBlock, normalizeClass, unref, Fragment, renderList, createElementVNode, withModifiers, toDisplayString, createCommentVNode, normalizeStyle, computed, watch, withDirectives, withKeys, vModelText, createTextVNode, createVNode, h, createApp, markRaw, nextTick, onBeforeUnmount, reactive, onUnmounted, renderSlot, shallowRef, createBlock, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
17
- import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-TkaE2kKM.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, m as magicWandIcon, p as plusIconSvg, a as trashIconSvg, l as linkIconSvg, b as tableIconSvg, c as scissorsIconSvg, d as copyIconSvg, e as pasteIconSvg, f as borderNoneIconSvg, g as arrowsToDotIconSvg, h as arrowsLeftRightIconSvg, w as wrenchIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-BnTHDmlP.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-CZdELYi-.js";
19
+ import { D } from "./chunks/docx-zipper-DlwteneT.js";
20
20
  import { createZip } from "./file-zipper.es.js";
21
21
  var eventemitter3 = { exports: {} };
22
22
  var hasRequiredEventemitter3;
@@ -4231,10 +4231,12 @@ const _sfc_main$4 = {
4231
4231
  }
4232
4232
  };
4233
4233
  function adjustPaginationBreaks(editorElem, editor) {
4234
- if (!editorElem.value || !editor?.value?.options?.scale) return;
4234
+ const hostElement = editorElem.value;
4235
+ if (!hostElement || !editor?.value?.options?.scale) return;
4235
4236
  const zoom = editor.value.options.scale;
4236
- const bounds = editorElem.value.getBoundingClientRect();
4237
- const breakNodes = editorElem.value.querySelectorAll(".pagination-break-wrapper");
4237
+ const bounds = hostElement.getBoundingClientRect();
4238
+ const searchRoot = hostElement.shadowRoot || hostElement;
4239
+ const breakNodes = searchRoot.querySelectorAll(".pagination-break-wrapper");
4238
4240
  let firstLeft;
4239
4241
  breakNodes.forEach((node) => {
4240
4242
  const nodeBounds = node.getBoundingClientRect();
@@ -4525,6 +4527,821 @@ const _sfc_main$2 = {
4525
4527
  };
4526
4528
  const GenericPopover = /* @__PURE__ */ _export_sfc(_sfc_main$2, [["__scopeId", "data-v-cbddcc0f"]]);
4527
4529
  const BlankDOCX = "data:application/octet-stream;base64,UEsDBBQABgAIAAAAIQAykW9XZgEAAKUFAAATAAgCW0NvbnRlbnRfVHlwZXNdLnhtbCCiBAIooAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC0lMtqwzAQRfeF/oPRtthKuiilxMmij2UbaPoBijRORPVCo7z+vuM4MaUkMTTJxiDP3HvPCDGD0dqabAkRtXcl6xc9loGTXmk3K9nX5C1/ZBkm4ZQw3kHJNoBsNLy9GUw2ATAjtcOSzVMKT5yjnIMVWPgAjiqVj1YkOsYZD0J+ixnw+17vgUvvEriUp9qDDQcvUImFSdnrmn43JBEMsuy5aayzSiZCMFqKRHW+dOpPSr5LKEi57cG5DnhHDYwfTKgrxwN2ug+6mqgVZGMR07uw1MVXPiquvFxYUhanbQ5w+qrSElp97Rail4BId25N0Vas0G7Pf5TDLewUIikvD9Jad0Jg2hjAyxM0vt3xkBIJrgGwc+5EWMH082oUv8w7QSrKnYipgctjtNadEInWADTf/tkcW5tTkdQ5jj4grZX4j7H3e6NW5zRwgJj06VfXJpL12fNBvZIUqAPZfLtkhz8AAAD//wMAUEsDBBQABgAIAAAAIQAekRq37wAAAE4CAAALAAgCX3JlbHMvLnJlbHMgogQCKKAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArJLBasMwDEDvg/2D0b1R2sEYo04vY9DbGNkHCFtJTBPb2GrX/v082NgCXelhR8vS05PQenOcRnXglF3wGpZVDYq9Cdb5XsNb+7x4AJWFvKUxeNZw4gyb5vZm/cojSSnKg4tZFYrPGgaR+IiYzcAT5SpE9uWnC2kiKc/UYySzo55xVdf3mH4zoJkx1dZqSFt7B6o9Rb6GHbrOGX4KZj+xlzMtkI/C3rJdxFTqk7gyjWop9SwabDAvJZyRYqwKGvC80ep6o7+nxYmFLAmhCYkv+3xmXBJa/ueK5hk/Nu8hWbRf4W8bnF1B8wEAAP//AwBQSwMEFAAGAAgAAAAhAJYWuCvkAgAAiAsAABEAAAB3b3JkL2RvY3VtZW50LnhtbKSW227cIBBA3yv1H1Z+T/Btb1Y2kZptozxUWiXtB7DA2laMQYD30q/v4HvrNvI6LwYG5jDMMGPuHs48mx2Z0qnIN4536zozlhNB0zzeOD9/fLtZOTNtcE5xJnK2cS5MOw/3nz/dnSIqSMFZbmaAyHV0kmTjJMbICCFNEsaxvuUpUUKLg7klgiNxOKSEoZNQFPmu55Y9qQRhWsN+jzg/Yu3UOHIeR6MKn0DZAkNEEqwMO3cM72rIHK3RagjyJ4DghL43RAVXoxbIWjUAhZNAYNWANJ9G+sfhFtNI/pC0nEYKhqTVNNLgOvHhBReS5TB5EIpjA0MVI47VWyFvACyxSfdplpoLMN1Fg8Fp/jbBItBqCTygVxOWiAvKsoA2FLFxCpVHtf5Nq29Njyr9umk1WDZuW9hujdjZZNo0umqM7yr1bV1YSq8hxTLwo8h1ksq2OvCpNJhMGsjxPQccedasO0lvZKr9r7RtqzB0wDHm17HjWWX5+0TPHRFNi2g1xpjw556NJRxucLfxJNf0nOuNLD4NwB8AFoSN/Fk0jFXNQKTLbstJR6ZVw6miYjlp51hvZA3825gegBZXIfygscM2Vr3H0tTQ5DpcEyNkdbHBCdZt0lgiu+6A8xZ34T1/y/hjSfWkRCE7Wvox2nNXXk/2oXMFq07OfsHQHzPmNcESqi4n0XOcC4X3GVgEqTaDbJmVEbBfuHS2KbvsXMptrG2HFjNbtZx7eKftBb3YVsJEGEms8DNc89BbL8LF0nNKKfzljJW64Xy9Wq7nII3gTUhfQATXK9guv7SinbLCwHPDx6+tcMsOuMjMcPmutxhZMzQjZqfG8kvD49dfMAkVy/P90LUL4UJ78xX0S6SMv2NLNAIKqxdWS1QaJ6Yb7oUxgnfjjB16swnDlMG+S78cHoQwvWFcmHJYb0dEpkGqJSasWlOK4T38pGxIoizN2S41BKwMFuUsas5ddquIoO4Jff8bAAD//wMAUEsDBBQABgAIAAAAIQCzvosdBQEAALYDAAAcAAgBd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVscyCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKyTzWrDMBCE74W+g9h7LTttQwmRcymBXFv3AWR7/UP1Y6RNWr99RUoShwbTg44zYme+hdV6860VO6DzvTUCsiQFhqaydW9aAR/F9uEFmCdpaqmsQQEjetjk93frN1SSwpDv+sGzkGK8gI5oWHHuqw619Ikd0ISXxjotKUjX8kFWn7JFvkjTJXfTDMivMtmuFuB29SOwYhzwP9m2afoKX22112joRgX3SBQ28yFTuhZJwMlJQhbw2wiLqAg0KpwCHPVcfRaz3ux1iS5sfCE4W3MQy5gQFGbxAnCUv2Y2x/Ack6GxhgpZqgnH2ZqDeIoJ8YXl+5+TnJgnEH712/IfAAAA//8DAFBLAwQUAAYACAAAACEAZ4D8tM4GAADNIAAAFQAAAHdvcmQvdGhlbWUvdGhlbWUxLnhtbOxZzYsbNxS/F/o/iLk7Ho+/l3iDP7NNdpMl66TkKNvyjNaa0SDJuzEhUJJTL4VCWnop9NZDKQ000NBL/5iFhDb9IyppbM/I1nTzsaGh7BrWI+n3nn567+npWXP12oOQgBPEOKZRyyldcR2AojGd4MhvOXeHg0LDAVzAaAIJjVDLWSDuXNv99JOrcEcEKERAykd8B7acQIh4p1jkY9kN+RUao0iOTSkLoZBN5hcnDJ5KvSEpeq5bK4YQRw6IYCjV3p5O8RiBoVLp7K6U94n8FwmuOsaEHSnVyJDQ2MmspL74gncJAyeQtBw5z4SeDtED4QACuZADLcfVf05x92pxLUREjmxGbqD/lnJLgcnM03LMH60F3b7XqJTW+jWAiG1cv6E+a30aAMdjudKESxZbqtbchrfEZkDJo0V3s14qm/iM/vK2/mat41UMvAYlj5XtNQ6a/V7VwGtQ8ljdwrddr9MsG3gNSh5rW/hKv133+gZegwKCo9k2ulZvNGpL9BoypWTPCm/Wam69t4SnqGImuhL5SOTFWgiPKRtIgHYuFDgCYhGjKRxLXDsWlIMe5jGBCwfEMKJcdrteqSQDr+J664+2ONxBMCOddI35VpfiA/iY4Vi0nBtSq5OBvHzx4uzx87PHv509eXL2+Bewj/1AWOT2YORn5V7/+PXf338B/vr1h9dPv7HjeRb/6ucvX/3+x7+pFwatb5+9ev7s5Xdf/fnTUwu8zeAoCx/iEHFwC52COzSUC7RMgEbs7SSGAcRZiXbkcxhBJWNB90VgoG8tIIEWXAeZdrzHZLqwAa/Pjw3CRwGbC2wB3gxCA3hAKelQZl3TTTVX1grzyLdPzuZZ3B0IT2xzdze83J/HMu6xTWU3QAbNQyJdDn0UIQHUGJ0hZBG7j7Fh1wM8ZpTTqQD3MehAbDXJEI+MaEqF9nAo/bKwEZT+NmxzcA90KLGp76ETEyn3BiQ2lYgYZrwO5wKGVsYwJFnkPhSBjeTRgo0Ng3MhPe0jQkF/gji3ydxmC4PuTSjzltXtB2QRmkgm8MyG3IeUZpE9OusGMIytnHEUZLGf8ZkMUQgOqbCSoOYOUW3pBxjluvseRoa7z9/bd2UasgeIGpkz25ZA1NyPCzKFyKa8zUIjxbYZtkZHZ+4bob2PEIGncIIQuPuZDU9jw+Yp6RuBzCp7yGabG9CMVdWOEJe1kipuLI7F3AjZI+TTHD4Hi43Es4BRCFme5lszM2T6IyY3oy1eyXhmpFLM1Ka1k7jNQ2N9uVoPA2iElWpze7wumOG/N9ljUub4HWTQW8vIxP7GthlCYkyQBswQYrBvS7dSxHB/KqK2kxabW+Wm5qZN3VDcKHpCHJ1TAf03lY9F4mJqHjvwfaqdvISyWePk4TYrmy5lE/zxFzY9OI8OkTxLLNDLuuayrvnf1zV5+/mymrmsZi6rGbvIB6hm0gJGXwOtLnu0ljD35meKCTkSC4L2uS59uNz7k4Hs1A0ttL5oigP5uJzOwPkM6mfAqPgci+AogLGcpqRn8PlStc9BTLksn3S3VbcaIPPwgE6W93iqztJ3m1IAirTfra77Zakmkt5aPb0IXavXLV9ftq4IKNm3IZGZzCRRtpCorzrPIaFXdiEsmhYWDaU+l4X+WnpFHk4AqmvxaiVhJMNNhvRE+SmRX3n3wj2dZ0xz2Z5leU3F9WI8bZDIhJtJIhOGgTw8Nrsv2NfN1KUGPWWKbRr1xofwtUoiG7mBRGYLnMo9V65KNWMYt5yp/NkkH8NY6uMqU0HiRy1nLJaGfpfMEjMuepAHCUwPJesPsUAMEBzKWM+6gUQpt5JXV2v8SMk13Y/Pcvor62Q0naKxyOlJm3IsUWIdfU+watC5JH0UTE7BiMzZHSgNVa2XlAEnmIu1NSeYZYI7teJGulpuReMNULpFIYkDuDxRssk8gevnNZ3MOjTTzVWZ7eViRr5y0nufuucLqYFM0sw5QNSpac8fH+6Qz7BK877BKkndm7muucp1eafE+x8IGWrpZAY1xdhCLe01qV1gQZCZbh2aeWfERZ8Gm1GrDohVXalbWy+36ehYRn5PVqtzIrimKn+1MNhdvZZMMoHuXWWXBwLMGW45D91qu9L1qt2C26j2C5VyxS00qu1yoV2tlkv9asntdbxH0igiCEvVZO6B/LFPFst397p/6/19uCq1r4xpWKS6Di5qYf3+vuTlv78HWFrmYc0bNMvNTq3QLLcHhUqv0yg0u7VOoVfr1nuDXrfaaA4eOeBEgyvtcrdS6zcKtVK3W6jUXEW/0SzUK57XrtTbjX6l/Whpa7ny1ffKvJrX7j8AAAD//wMAUEsDBBQABgAIAAAAIQDK52WKOwQAAL4MAAARAAAAd29yZC9zZXR0aW5ncy54bWy0V9tu2zgQfV9g/8HQ8zq6WnaEOoWvmxTxdlGl2GdKom0ipCiQVBy32H/fISVa7kYo7BZ9sag5M2eGw5mh/O79K6ODFywk4eXU8W88Z4DLnBek3E2dz0/r4cQZSIXKAlFe4qlzxNJ5f/f7b+8OicRKgZocAEUpE5ZPnb1SVeK6Mt9jhuQNr3AJ4JYLhhS8ip3LkHiuq2HOWYUUyQgl6ugGnhc7LQ2fOrUok5ZiyEguuORbpU0Svt2SHLcPayEu8duYLHleM1wq49EVmEIMvJR7UknLxn6UDcC9JXn53iZeGLV6B9+7YLsHLoqTxSXhaYNK8BxLCQfEqA2QlJ3j6A3RyfcN+G63aKjA3PfM6jzy0XUEwRuCOMev13FMWg4XLM95SHEdT3ziIV1i/fjHgjkjKOqrKILQxqEf2vyMSxaq2F9HZ8/I1bZIoT2Sp4rUjPi6DY5OdEfW5VvSSyqwgR5JJpBo+rstP5YnD7uSC5RRCAfKcACVNDDR6V84EP0wS/xq5DoPegHZuYOp84VzNjgkFRY5tB6MrMBzXA1AwfNtqpACokRWmFIzw3KKEfg9JDuBGEwfKzE2Bd6imqonlKWKV6D0gmB7Y0uZ75FAucIirVAObAteKsGp1Sv4X1wtYJIJaLTWwsy1bpU2MxIsSsRgw9/MvQ0vsI6sFuTyk9EGxrs/Onf5f0ccZrogBX7SiU7VkeI1BJ+SL3hWFh9qqQgwmun3ExF8LwBcas8foTSejhVeY6RqSNMvcmZOYk1JtSFCcPFQFlAbv8wZ2W6xAAcEam0D5UMEP5g832NUwFX6i/zWEv8DytCZ4ROU5fOcK8XZ/bHaQ65/7iRNvbvn5QsfBIW0i0+cq5MqjK1wOZ43kWr0EiT0vWix6kVib+3328yi0At7kYW/9KN+ZDSZL/qQ6DaK/VkfEo+CVdQ207fIbB5MwkkfMp/741EvsliEi3Ddi6y8Zf9+VotgPO6NbX0beLcmb+7pTFiiPzX+FnalG3vAGosFYpkgaLDRHyOu1sjE85yUFs8wTGl8jqR1ZsHhsAEkQ5SuocQsYMqDJQWR1RJvzZpukNh1vK2G6JXClP1w4tJTG4s/Ba+rBj0IVDUNa1X8KGotSakeCbNyWWeptSrhXjmD6rL4+CJMnrr0HBIFDWAG3yMyjWR0cTn8nLaNRkWqmwRvUFU1vZbt/KlDyW6vfN0eCt4K+GY1L9kuaLHAYEGDmReU652BdrvoZIGVnemFVhZ2ssjKok42srJRJ4utLNayPUxXAVfdM7S9XWr5llPKD7i47/A3oiYJBc4JnHh6ZFl3t900GCUS5lAF16DiwmJ/GMyPkoLnD/q+jhp5OJuNljNv3MAjc30qM6ogtZ/wdo4kLlrMmo4a069x7MW+v5gMo8nqdrgaR9Fw4s9vh+OxN/bDtR+EE+/ftg/sH4+7/wAAAP//AwBQSwMEFAAGAAgAAAAhANuFbMOhBAAAlx0AABIAAAB3b3JkL251bWJlcmluZy54bWzMmN1u2zYUx+8H7B0MAbtMJMr6slGnSNJkSNEVRZth17REW0T4IVCUHd/2ZfYIe6y+wkjJku3IjUU53nwT2vz48ZzDc8h//O79MyWDBRI55mxigUvHGiAW8wSz+cT68/H+IrIGuYQsgYQzNLFWKLfeX/36y7vlmBV0ioSaOFAMlo+XWTyxUimzsW3ncYoozC8pjgXP+UxexpzafDbDMbKXXCS26wCn/JQJHqM8V5xbyBYwt9a4+LkbLRFwqRZroGfHKRQSPW8YwBji2yM7aoPcHiDloQvaqKExKrC1VS2Q1wukrGqR/H6kPc4F/UhumxT2Iw3bpKgfqZVOtJ3gPENMDc64oFCqr2JuUyieiuxCgTMo8RQTLFeK6QQ1BmL21MMitaoh0GFiTAhtyhNEhklN4ROrEGy8Xn/RrNemj6v166ZZgUi3bdV2Ixs9S5LLeq3oErtq+QceFxQxWUbNFoioOHKWpzhrbgfal6YG0xqyeC0AC0rqecsMdCy1n11tH6pj2AC7mL8+O0oqy18nAqfDaWpEs6KLCbt71pZQlcGbjXuFZiu4oOPlUwPcFiCIUcfHomZEa4Ydb6pbc3DHsqo51aloDt4EFnS8A18aswVICiOEO6zt0I1evsXKE5mkZrj6jGy9FkqYwrwpGk1EZg76DW5Ft+KdzY8rqt8FL7INDR9He9hcr0utdAxY6+LcvjDy44z5lsJM3bo0Hj/MGRdwSpRFqtQGqloG5QnovyrpdFN+RM9lvz5r/SEpBvrWsq6UUIPTXAoYy88FHex8e1DZrgSfYo4FUipP6M5K013PJBI3AsEnPUVTWK53Gy+gegJAANzgxgktW4/Qgkj8CS0QeVxlqJ6TrqYCJ3/oMaLHqrmSZqSe4YO7W+/OiaoRstADWDWVUWOZEfXeOp4zchwHlDaUNjZGVOuUDL2nTee0IATJhvio3qB66Mf3f5r+j3HdS9BsPT37InSDmXZTd0+s0C0tSSGbl4J4GDh6rt1MFuvmnjOZ6+DmMVZ5+G1Fp5yUS69V3HY6MFPgBM2giswaVlLs0rCXkQCtSAzLHvWeqUdxgfSMoyPDTeMCPK9fYG55ITASg89ouRWdF71x3p5oFjW3FTX/7aP24/vfpnFzQdAvbn+p2fp/snwrart9ZgGqkmi3wE4QIOOCc6Po/6447ywrTsXhrCuuqq/zqzhv2PMKf+uKC8604nyn51X+dhUXnmXF+WHPu/o/qrjoTCsu8Hpe4cdXnL2jbvUer0pfXYDG0tePQgcMb64r//tK37u7wAPhrdcEtznWtvS973iMCYoxhevNXpzjb+DS9BwPaN+OchWMeiYl4UskPiGpzmK/R66xR4dUa0ctCW6Ocekrp5Dt92i4zyOB56mBoARRB5fa6u++p0uv5pxnfEKH5F9HxXa6pPONXTok3DrKqZMlXWCedC1N1Snp2gLoJEkXGp/QIQXUUbScLukic5cOaJeOiuJkSTcyT7qWrPhJ0rU1ACvffrb15usfzsZJUf6sVnYqV71wFLilezsqoTau3ovtYeoXosX0It8HoQeqkO1llqGrmVVbKZCrfwEAAP//AwBQSwMEFAAGAAgAAAAhAD+v4WbrDwAADaYAAA8AAAB3b3JkL3N0eWxlcy54bWzsXdty20YSfd+q/QcUn5IHWxdKlKyKkpJke+1a23FCefM8BIbiRCDABUDLytfv3EAO2RgQPWjTimvLVRYJog9m5vRpTDcu89MvX+Zp9JkXpcizy8HR88NBxLM4T0R2dzn4dPv62fkgKiuWJSzNM345eOTl4Jef//mPnx4uyuox5WUkAbLyYh5fDmZVtbg4OCjjGZ+z8nm+4Jn8cZoXc1bJr8XdwZwV98vFszifL1glJiIV1ePB8eHhaGBhii4o+XQqYv4yj5dznlXa/qDgqUTMs3ImFmWN9tAF7SEvkkWRx7wsZafnqcGbM5GtYI5OANBcxEVe5tPqueyMbZGGkuZHh/rTPF0DnOIAjgHAKOZfcBjnFuNAWro4IsHhjFY4InFwwhrjACRLFMTxsG6H+qPMHawyqZIZDq7m6EDZsorNWDlzETmug6cruMe5Gu95fPH2LssLNkklkvSgSDpBpIHV/3Is1R/9kX/R21UX1AfZsZ+lupI8fsmnbJlWpfpafCzsV/tN/3mdZ1UZPVywMhbicnBVCCaH+OGCs7K6KgW7lS2Xh58L2ZI3V1kp1I8z9cHZOS4vB7diLqX8gT9Ev+dzlkU/XOfJY3Qz/nFwoA50z4tM7vmZpZeDY7Op/Gu14aTecqPasrEtZdldvY1nzz6N3dY5myYikU1ixbPxlTY8OrlIxR2rloVslvqmEUwgKpIb2W3+pVrK9sudD+x4mL/OKC1W38xeW0MqA4YMH2MTxeSvfPouj+95Mq7kD5eDQ9UuufHT24+FyAsZqS4HL17YjWM+F29EkvDM2TGbiYT/MePZp5In6+2/vdbRxm6I82UmPw/PRprmtExefYn5QsUu+WvGFF8flIHmZinWB9fm/63BjuwAN9nPOFMBPDrahtDNR0EcK4vS6W0z5nKr73ov1IGG+zrQyb4OdLqvA432daCzfR3ofF8H0jBf80AiS2R81/vDwwDUXTgeNaJxPGJD43i0hMbxSAWN41ECGsfj6Ggcjx+jcTxuisCp8tjnhY6zDz3e3o67+xwRhrv7lBCGu/sMEIa7O+CH4e6O72G4u8N5GO7u6B2GuztY43HNVCt6K2WWVb1VNs3zKssrHqnpaW80lkksndXS4KmTHi9IOkkAYyKbPRH3RouZ/r7bQ7RIw8/nlUroonwaTcWdSk56N5xnn3maL3jEkkTiEQIWXKZPnhEJ8emCT3nBs5hTOjYdaCoyHmXL+YTANxfsjgyLZwnx8NWIJEFh5dBsWc2USASBU89ZXOT9m5YzsvjwTpT9x0qBRNfLNOVEWB9oXExj9c8NNEz/1EDD9M8MNEz/xMDhjGqILBrRSFk0ogGzaETjZvyTatwsGtG4WTSicbNo/cftVlSpDvHurOOoe+3uJs3VdYje7RiLu0zXT3sj2Zpp9JEV7K5gi1mkys7NsG6fscfRJedbinPaColqXq9dRFWdRbbsP6AbaFTiWuERyWuFRySwFV5/ib2X02Q1QXtDk8+Ml5OqUbQaqZNoxyxdmgltf7Wxqr+HrQXwWhQlmQyaYQk8+IOazio6KSLfupX9G7bG6i+r7ahE2jwLSdDKNI/vacLwm8cFL2Radt8b6XWepvkDT+gQx1WRG19zJX+sKekk+VfzxYyVQudKGxDdT/X1HQzRe7bo3aGPKRMZDW+vns2ZSCO6GcSb2/fvott8odJMNTA0gNd5VeVzMkxbCfzhDz75kaaBVzIJzh6JentFVB7SYDeC4CRjkPKECElOM0UmSM6hGu/f/HGSsyKhQftYcHPTUMWJEMdsvjCTDgJtybj4IOMPwWxI4/2HFULVhahEdUsC5pQNy+XkTx73D3Uf8oikMvTrstL1Rz3V1dZ0cP2nCRtw/acImk15elD+S9DZDbj+nd2Ao+rsTcrKUngvoQbjUXW3xqPub//kz+LlaV5MlyndANaAZCNYA5INYZ4u51lJ2WONR9hhjUfdX0KX0XgEJTmN969CJGRkaDAqJjQYFQ0ajIoDDUZKQP87dByw/rfpOGD979UxYERTAAeMys9IT/9EV3kcMCo/02BUfqbBqPxMg1H52fBlxKdTOQmmO8U4kFQ+50DSnWiyis8XecGKRyLIVym/YwQFUoP2scin6mmSPDM3cRNAqhp1SjjZNnBUJP/BJ2RNU1iU7SKoiLI0zXOi2tr6hKMtN+9d22WmH+fo3YSPKYv5LE8TXnj65LeV+fJ4wWJbpgeX+zqVPd+Ju1kVjWerar8LMzrcaVkn7Btmuw/YNOYj+zBLo9l7nojlvG4ofJhiNOxurD16w7h+QKbFeD2T2LA87WgJjznabbmeJW9YnnW0hMc872ipdbph2aaHl6y4b3SEszb/WeV4Huc7a/OilXHjYdscaWXZ5IJnbV60IZXoKo7V1QLITjfN+O27icdvj1GRHwUjJz9KZ135IdoE9jv/LNSZHRM09fFWd0+AuK8n0Z0i52/L3NTtNy44dX+o662cOGUljxpxht0vXG1EGf84dg43fojOcccP0TkA+SE6RSKvOSok+VE6xyY/ROcg5YdARyt4RsBFK2iPi1bQPiRaQZSQaNVjFuCH6Dwd8EOghQoh0ELtMVPwQ6CECsyDhApR0EKFEGihQgi0UOEEDCdUaI8TKrQPESpECREqREELFUKghQoh0EKFEGihQgi0UAPn9l7zIKFCFLRQIQRaqBACLVQ9X+whVGiPEyq0DxEqRAkRKkRBCxVCoIUKIdBChRBooUIItFAhBEqowDxIqBAFLVQIgRYqhEAL1TxqGC5UaI8TKrQPESpECREqREELFUKghQoh0EKFEGihQgi0UCEESqjAPEioEAUtVAiBFiqEQAtVXyzsIVRojxMqtA8RKkQJESpEQQsVQqCFCiHQQoUQaKFCCLRQIQRKqMA8SKgQBS1UCIEWKoRo8097idJ3m/0RvurpvWO/+6Ur26jf3Ue5Xahhd6i6VX6s7s8iXOf5fdT44OFQ5xvdQMQkFbkuUXsuq7u4+pYI1IXPX2/an/Bx0Xu+dMk+C6GvmQLwk66WoKZy0ubyriVI8k7aPN21BLPOk7bo61qC0+BJW9DVuqxvSpGnI2DcFmYc4yOPeVu0dszhELfFaMcQjnBbZHYM4QC3xWPH8DRSwXnb+rTjOI1W95cChDZ3dBDO/Ahtbgm5qsMxFEZX0vwIXdnzI3Sl0Y+A4tMLgyfWD4Vm2A8VRjWUGZbqcKH6EbBUQ4QgqgFMONUQKphqCBVGNQyMWKohApbq8ODsRwiiGsCEUw2hgqmGUGFUw1MZlmqIgKUaImCp7nlC9sKEUw2hgqmGUGFUw8kdlmqIgKUaImCphghBVAOYcKohVDDVECqMapAlo6mGCFiqIQKWaogQRDWACacaQgVTDaHaqNZVlA2qUQw75rhJmGOIOyE7hrjg7BgGZEuOdWC25CAEZkuQq5pzXLbkkuZH6MqeH6ErjX4EFJ9eGDyxfig0w36oMKpx2VIT1eFC9SNgqcZlS16qcdlSK9W4bKmValy25Kcaly01UY3LlpqoDg/OfoQgqnHZUivVuGyplWpctuSnGpctNVGNy5aaqMZlS01U9zwhe2HCqcZlS61U47IlP9W4bKmJaly21EQ1LltqohqXLXmpxmVLrVTjsqVWqnHZkp9qXLbURDUuW2qiGpctNVGNy5a8VOOypVaqcdlSK9W4bOm9NBEEr4Aaz1lRRXTvi3vDylnF+r+c8FNW8DJPP/Mkou3qO1QvDx42lr9S2Ho5P7l/JcdMvQHdeVwpMW+AtYB6x7fJapkqZaxaEtl1vuxm3WB7udYcURvuONQK3F4rPgLw68Wt9BEmTPbqVzUa4OCZejFiw3blEPX2+jA3M1aYX9euWu9jxbjuy8NFUYqk/vnw8Hg4fHl2bfZamKXZ7jlffJDH19vUF8kPL/W30jxAK80n6p1icgSGI/3sFZtWvLgcnFvV5uatTe8+p6sjWersMRpXgauXfGN/Oku+ba8Hp358Zbep3/WScI2WcVk5m69FIkzjYqXyVbten5yNtG/onXUEuBwwrf/1ZnVTigS6fm0Q1gvI1Reb3QXkzDZnabcQ5zn2Oo8NQTTOc9zBedayNPttiPIru9dRR/eqI8N35l5DS7brXmZbT/caet3L3u5B417D78S96iH3uNcuJ9qHqxzbmdvGUpZ6W09XOfG6ir2/h8ZVTp64q5y7nlKHfegpWj70niLM/zemdX39pqdHnHo9wt63ReMRp9+HR2iVPL3Y0dMHzBKwTT5gs1gaHxg9cR/w066lsNdAcPpC/dt2ArXS0toFboVawfdKc9TTA868HmCrEDQecPa39YB6kL+m8PfM+bmXczv7oOH8/ElxDpnVDr5XbR+fqX9deH5JMed74eXZjj4Nzy+eOM/1UH5NBdMzG8tBZbF9obqn/mUXRlq92Ucvi7TNuWf1JA9ftqi1iy9/uytVhW1ps67SthbuTCHX61CdPaqapIZq+eFtphzqwa5hb1qafGEGSv5+w9P0PTN75wv/rimfKlnIX48O9Xs0t36fmCUhvPaFvnbgBTjYbIz52u4nZpFIYR5q8dZJVYG8Ybj1E1Z9R7qjD8fLUg7NWO2w3b6NGuh2K+2P0VG0jjNbgatRB75wZT3cG6r8wef/5U40paYy6aP0mIhSW1/revb5/hnuU3FEMmyKgz6Gh0QM23omPcPfKnF32epT9EOyZepzPrZOiNiyJcWnw9a+C29IVkyNzMfKKRErtqz3/WiInAdTp/LxMCLiwZbW/hbqoK9MICkxhSMfJWdElNha1xOVxjcnwVRyfCScE5Fgz4J/C1185Xx/NyWm6OKj5AURJXbkn6gu9lVOMy+22B5rs7VpiLF1NI20JqyhKGMTNlSNbF3k3rowHqvlK75US5baN+mboXkCN12sm6y79azu9z0vVoO7nizXW07tCdWdPpttdKpbU9ToBn3l5viSn/2nmbbun7Nmka4W0d4maPUDhVRrsFa12goTSq3Zcm4+iBTeD7X6EWha3frSKt9vMgEBXnFkc4/95rwbZPncoq90N93L7w1PfM74lSlr1qxZBmCbGbOVQq0aqU2qx3YeE3hibb4BzWry4eLPuMZRSSzXrQBKbZlknhyqf104pM6H1wPXSE5fzTgM+znZKZi9jlyzA6vLJ+t1NbbHSj+VsP55l0fDoRjaQhrKPYW+1KUuVKl35HWY83V0l1Wn7YvjVm+z2+42eN0dzlEaPAJ1Qt3tHXu8z8qORXOg21wNZZd7dAl47uHa4t4wJKFYXCf6r7lAqvcrpSfZdbX/UvfIqQ/Sv1Q80erTwx5YH19dSv3KR1IysD3b9WCE+mbcytHY+Ui3Rl/ZNd/0Ln2D/zethwI/anXdvqeDDZHs8Ngnp/vWGLl+t6ZvANd79I2S9TU/VJScmKPa0SplUElv2IJm7MCUsr6ZcmtE60/lz/8DAAD//wMAUEsDBBQABgAIAAAAIQC+fnZiXgEAANADAAAUAAAAd29yZC93ZWJTZXR0aW5ncy54bWyc01FPwjAQAOB3E//D0nfoQCGGMEiMwfhiTNQfUNoba2x7S1sc+Ou9TsAZXpgv67Xbfbnr2vlyZ032CT5odAUbDXOWgZOotNsU7P1tNbhjWYjCKWHQQcH2ENhycX01b2YNrF8hRvoyZKS4MLOyYFWM9YzzICuwIgyxBkcvS/RWRJr6DbfCf2zrgURbi6jX2ui45+M8n7ID4y9RsCy1hAeUWwsutvncgyERXah0HY5ac4nWoFe1RwkhUD/W/HhWaHdiRrdnkNXSY8AyDqmZQ0UtRemjvI2s+QUm/YDxGTCVsOtn3B0MTpldR6t+zvTkaNVx/ldMB1DbXsT45lhHGlJ6xwoqqqofd/xHPOWKKCoRqq4I/RqcnLi9Tftt5exp49CLtSGJTlBGhyBr4fSkvUxDG8KuXU8tpIAaW9AVwzpqq79ghf7eYxPA87QsjMHm5fmRJvzPPVx8AwAA//8DAFBLAwQUAAYACAAAACEAunZwPLMCAADYCwAAEgAAAHdvcmQvZm9udFRhYmxlLnhtbOSVW2/aMBSA3yftP0R52h7aXAiXokJFb9Je+rAy7dk4DrHmS2Q7QP79jh3SpoR2ZKq6hxFBzLH94fPl2Fxe7TjzNkRpKsXMj85D3yMCy5SK9cz/sbw/m/ieNkikiElBZn5FtH81//zpcjvNpDDag/lCTzme+bkxxTQINM4JR/pcFkRAZyYVRwa+qnXAkfpVFmdY8gIZuqKMmiqIw3Dk7zHqFIrMMorJrcQlJ8K4+YEiDIhS6JwWuqFtT6FtpUoLJTHRGnLmrOZxRMUTJko6IE6xklpm5hyS2a/IoWB6FLoWZ8+AYT9A3AGMMNn1Y0z2jABmtjk07ccZPXFo2uL83WJagLTshYgHzTrszU5vsXRq0rwfrnlGgZ2LDMqRzttE0i/B4ROu4tY3x9NvayEVWjEgQQV5UASeA9tPcGlvrkl2Lm5TsA1IbL7fXN52KhCH+Y8VX0nm4gUSUpMIujaIzfxwCFcU2qIbhyO4D8OxH9iBOEdKE8uoB8Z1OEOcsqqJpgTDGg3dkLq3oAbnTecGKWrXX3dpuoaOUq9CgO1ffh2J4OB4GYk7YwYvI9hxJi8jUWsM/GZQW+jYWFJOtPdAtt53yZE4qsU+4VE4AB0JvGNoJce1uF861KIct4+RO1hzfHd//2zkBiLjyfC6Y+TiLSPua1RzTjdyI0tFibJOXrExBgMXzoq1kfSywWVK1DEdGd2R9HQXyeAjXPyEU9z+e+lXtkvnddREcvv+26VJv53IoZBTtkvUT8gClnX87IjDa9gkiSuL+upTFnpLte6/SRb/qjAWhZHHi8J6CD/QQ2yXGk/GnXroenizHmoPFz09HByf3pdrmVbezeNX5wYx8wDDmiQOz9o6zXeto9ZhK6RZqpIsq4J0faYkQyUzf3zE3i3VBUPV//io9w09/w0AAP//AwBQSwMEFAAGAAgAAAAhAArzp/hsAQAA7QIAABEACAFkb2NQcm9wcy9jb3JlLnhtbCCiBAEooAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJySXU+DMBSG7038D6T3UGBqDAGWTLMrZ0yc0XhX27Otjn6k7cb27y0wmMRdeXc+nvP29G3z6UFUwR6M5UoWKIliFICkinG5LtDbch7eo8A6IhmplIQCHcGiaXl9lVOdUWXgxSgNxnGwgVeSNqO6QBvndIaxpRsQxEaekL65UkYQ51OzxprQLVkDTuP4DgtwhBFHcCMY6kERnSQZHST1zlStAKMYKhAgncVJlOAz68AIe3Gg7fwiBXdHDRfRvjnQB8sHsK7rqJ60qN8/wR+Lp9f2qiGXjVcUUJkzmjnuKihzfA59ZHdf30BdVx4SH1MDxClTPnO6DWZgJKlapq83jm/hWCvDrJ8eZR5jYKnh2vl37LRHBU9XxLqFf9gVBzY7jo/5224mDOx58y/KtCWGND+Z3K0GLPDmZJ2Vfed98vC4nKMyjdObMEnD5G6Zpll8m8XxZ7PdaP4sKE4L/FuxF+gMGn/Q8gcAAP//AwBQSwMEFAAGAAgAAAAhACEYr1lrAQAAxQIAABAACAFkb2NQcm9wcy9hcHAueG1sIKIEASigAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnFJNT8MwDL0j8R+q3rd0HCY0eUFoCHHgY9IKnKPEbSPSJEqyif17nBVKEZzIye/Zfnl2AlfvvSkOGKJ2dl0u5lVZoJVOaduuy+f6dnZZFjEJq4RxFtflEWN5xc/PYBucx5A0xoIkbFyXXUp+xViUHfYiziltKdO40ItEMLTMNY2WeOPkvkeb2EVVLRm+J7QK1cyPguWguDqk/4oqJ7O/+FIfPelxqLH3RiTkj7nTzJVLPbCRhdolYWrdI6+IHgFsRYuRL4ANAby6oGKuGQLYdCIImWh/mZwguPbeaCkS7ZU/aBlcdE0qnk5mi9wNbFoCNMAO5T7odMxSUwj32uLpgiEgV0G0QfjuRE4Q7KQwuKHReSNMRGDfBGxc74UlOTZGpPcWn33tbvIWPlt+kpMRX3Xqdl7IwcufPOyIRUXuRwMjAXf0GMFkdeq1Laqvmt+JvL6X4VfyxXJe0Tnt64ujqcfvwj8AAAD//wMAUEsBAi0AFAAGAAgAAAAhADKRb1dmAQAApQUAABMAAAAAAAAAAAAAAAAAAAAAAFtDb250ZW50X1R5cGVzXS54bWxQSwECLQAUAAYACAAAACEAHpEat+8AAABOAgAACwAAAAAAAAAAAAAAAACfAwAAX3JlbHMvLnJlbHNQSwECLQAUAAYACAAAACEAlha4K+QCAACICwAAEQAAAAAAAAAAAAAAAAC/BgAAd29yZC9kb2N1bWVudC54bWxQSwECLQAUAAYACAAAACEAs76LHQUBAAC2AwAAHAAAAAAAAAAAAAAAAADSCQAAd29yZC9fcmVscy9kb2N1bWVudC54bWwucmVsc1BLAQItABQABgAIAAAAIQBngPy0zgYAAM0gAAAVAAAAAAAAAAAAAAAAABkMAAB3b3JkL3RoZW1lL3RoZW1lMS54bWxQSwECLQAUAAYACAAAACEAyudlijsEAAC+DAAAEQAAAAAAAAAAAAAAAAAaEwAAd29yZC9zZXR0aW5ncy54bWxQSwECLQAUAAYACAAAACEA24Vsw6EEAACXHQAAEgAAAAAAAAAAAAAAAACEFwAAd29yZC9udW1iZXJpbmcueG1sUEsBAi0AFAAGAAgAAAAhAD+v4WbrDwAADaYAAA8AAAAAAAAAAAAAAAAAVRwAAHdvcmQvc3R5bGVzLnhtbFBLAQItABQABgAIAAAAIQC+fnZiXgEAANADAAAUAAAAAAAAAAAAAAAAAG0sAAB3b3JkL3dlYlNldHRpbmdzLnhtbFBLAQItABQABgAIAAAAIQC6dnA8swIAANgLAAASAAAAAAAAAAAAAAAAAP0tAAB3b3JkL2ZvbnRUYWJsZS54bWxQSwECLQAUAAYACAAAACEACvOn+GwBAADtAgAAEQAAAAAAAAAAAAAAAADgMAAAZG9jUHJvcHMvY29yZS54bWxQSwECLQAUAAYACAAAACEAIRivWWsBAADFAgAAEAAAAAAAAAAAAAAAAACDMwAAZG9jUHJvcHMvYXBwLnhtbFBLBQYAAAAADAAMAAEDAAAkNgAAAAA=";
4530
+ const editorStyles = `:root {
4531
+ /* CSS variables */
4532
+ }
4533
+ .sd-input-active {
4534
+ border: 1px solid #1355ff !important;
4535
+ }
4536
+ .sd-super-editor-html .ProseMirror {
4537
+ border: 1px solid #d9d9d9;
4538
+ outline: none;
4539
+ border-radius: 8px;
4540
+ height: 100%;
4541
+ width: 100%;
4542
+ outline: none;
4543
+ }
4544
+ a {
4545
+ text-decoration: auto;
4546
+ }
4547
+ /**
4548
+ * Basic ProseMirror styles.
4549
+ * https://github.com/ProseMirror/prosemirror-view/blob/master/style/prosemirror.css
4550
+ */
4551
+ .ProseMirror {
4552
+ position: relative;
4553
+ }
4554
+ .ProseMirror {
4555
+ word-wrap: break-word;
4556
+ white-space: pre-wrap;
4557
+ white-space: break-spaces;
4558
+ -webkit-font-variant-ligatures: none;
4559
+ font-variant-ligatures: none;
4560
+ font-feature-settings: 'liga' 0; /* the above doesn't seem to work in Edge */
4561
+ }
4562
+ .ProseMirror pre {
4563
+ white-space: pre-wrap;
4564
+ }
4565
+ .ProseMirror ol,
4566
+ .ProseMirror ul {
4567
+ margin-block-start: 0;
4568
+ margin-block-end: 0;
4569
+ margin-inline-start: 0;
4570
+ margin-inline-end: 0;
4571
+ }
4572
+ .ProseMirror ol,
4573
+ .ProseMirror ul {
4574
+ padding-inline-start: 0;
4575
+ padding-left: 0;
4576
+ list-style: none;
4577
+ }
4578
+ .ProseMirror li::marker {
4579
+ content: none;
4580
+ }
4581
+ .ProseMirror li::marker {
4582
+ padding: 0;
4583
+ margin: 0;
4584
+ }
4585
+ .ProseMirror li > p {
4586
+ margin: 0;
4587
+ padding: 0;
4588
+ display: inline-block;
4589
+ }
4590
+ .ProseMirror.header-footer-edit > p img,
4591
+ .ProseMirror.header-footer-edit > p a,
4592
+ .ProseMirror.header-footer-edit li img,
4593
+ .ProseMirror.header-footer-edit li a,
4594
+ .ProseMirror.header-footer-edit span img,
4595
+ .ProseMirror.header-footer-edit span a {
4596
+ opacity: 1;
4597
+ }
4598
+ .ProseMirror.header-footer-edit .pagination-break-wrapper {
4599
+ color: initial !important;
4600
+ }
4601
+ .ProseMirror.header-footer-edit .pagination-break-wrapper span {
4602
+ color: initial !important;
4603
+ }
4604
+ .ProseMirror.header-footer-edit .pagination-break-wrapper img,
4605
+ .ProseMirror.header-footer-edit .pagination-break-wrapper a {
4606
+ opacity: 1;
4607
+ }
4608
+ .pagination-section-header div[contenteditable='false'] {
4609
+ user-select: none;
4610
+ }
4611
+ /**
4612
+ * Hide marker for indented lists.
4613
+ * If a list-item contains a list but doesn't contain a "p" tag with text.
4614
+ */
4615
+ .ProseMirror ol {
4616
+ margin: 0;
4617
+ }
4618
+ .ProseMirror li:has(> ul:first-child, > ol:first-child):not(:has(> p)) {
4619
+ list-style-type: none;
4620
+ }
4621
+ .ProseMirror li:has(> ul:first-child, > ol:first-child):not(:has(> p))::marker {
4622
+ content: '';
4623
+ }
4624
+ .ProseMirror-hideselection *::selection {
4625
+ background: transparent;
4626
+ }
4627
+ .ProseMirror-hideselection *::-moz-selection {
4628
+ background: transparent;
4629
+ }
4630
+ .ProseMirror-hideselection * {
4631
+ caret-color: transparent;
4632
+ }
4633
+ /* See https://github.com/ProseMirror/prosemirror/issues/1421#issuecomment-1759320191 */
4634
+ .ProseMirror [draggable][contenteditable='false'] {
4635
+ user-select: text;
4636
+ }
4637
+ .ProseMirror-selectednode {
4638
+ outline: 2px solid #8cf;
4639
+ }
4640
+ /* Make sure li selections wrap around markers */
4641
+ li.ProseMirror-selectednode {
4642
+ outline: none;
4643
+ }
4644
+ li.ProseMirror-selectednode:after {
4645
+ content: '';
4646
+ position: absolute;
4647
+ left: -32px;
4648
+ right: -2px;
4649
+ top: -2px;
4650
+ bottom: -2px;
4651
+ border: 2px solid #8cf;
4652
+ pointer-events: none;
4653
+ }
4654
+ .ProseMirror img {
4655
+ height: auto;
4656
+ max-width: 100%;
4657
+ }
4658
+ /* Protect against generic img rules */
4659
+ img.ProseMirror-separator {
4660
+ display: inline !important;
4661
+ border: none !important;
4662
+ margin: 0 !important;
4663
+ }
4664
+ .ProseMirror .sd-editor-tab {
4665
+ display: inline-block;
4666
+ vertical-align: text-bottom;
4667
+ }
4668
+ .ProseMirror u .sd-editor-tab:not(.pagination-inner .sd-editor-tab) {
4669
+ white-space: pre;
4670
+ border-bottom: 1px solid #000;
4671
+ margin-bottom: 1.5px;
4672
+ }
4673
+ /*
4674
+ Tables
4675
+ https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css
4676
+ https://github.com/ProseMirror/prosemirror-tables/blob/master/demo/index.html
4677
+ */
4678
+ .ProseMirror.resize-cursor {
4679
+ cursor: ew-resize;
4680
+ cursor: col-resize;
4681
+ }
4682
+ .ProseMirror .tableWrapper {
4683
+ --table-border-width: 1px;
4684
+ --offset: 2px;
4685
+
4686
+ overflow-x: auto;
4687
+ scrollbar-width: thin;
4688
+ overflow: hidden;
4689
+
4690
+ /*
4691
+ The border width does not need to be multiplied by two,
4692
+ for tables it works differently. */
4693
+ width: calc(100% + (var(--table-border-width) + var(--offset)));
4694
+ }
4695
+ .ProseMirror table {
4696
+ border-collapse: collapse;
4697
+ border-spacing: 0;
4698
+ table-layout: fixed;
4699
+ margin: 0;
4700
+ /* width: 100%; */
4701
+ }
4702
+ .ProseMirror tr {
4703
+ position: relative;
4704
+ }
4705
+ .ProseMirror td,
4706
+ .ProseMirror th {
4707
+ min-width: 1em;
4708
+ position: relative;
4709
+ vertical-align: top;
4710
+ box-sizing: border-box;
4711
+ overflow-wrap: anywhere;
4712
+ }
4713
+ .ProseMirror th {
4714
+ font-weight: bold;
4715
+ text-align: left;
4716
+ }
4717
+ .ProseMirror table .column-resize-handle {
4718
+ position: absolute;
4719
+ right: -2px;
4720
+ top: 0;
4721
+ bottom: -2px; /* 0 */
4722
+ width: 4px;
4723
+ z-index: 20;
4724
+ background-color: #adf;
4725
+ pointer-events: none;
4726
+ }
4727
+ .ProseMirror table .selectedCell:after {
4728
+ position: absolute;
4729
+ content: '';
4730
+ left: 0;
4731
+ right: 0;
4732
+ top: 0;
4733
+ bottom: 0;
4734
+ background: rgba(200, 200, 255, 0.4);
4735
+ pointer-events: none;
4736
+ z-index: 2;
4737
+ }
4738
+ /* Tables - end */
4739
+ /* Track changes */
4740
+ .ProseMirror .track-insert-dec,
4741
+ .ProseMirror .track-delete-dec,
4742
+ .ProseMirror .track-format-dec {
4743
+ pointer-events: none;
4744
+ }
4745
+ .ProseMirror .track-insert-dec.hidden,
4746
+ .ProseMirror .track-delete-dec.hidden {
4747
+ display: none;
4748
+ }
4749
+ .ProseMirror .track-insert-dec.highlighted {
4750
+ border-top: 1px dashed #00853d;
4751
+ border-bottom: 1px dashed #00853d;
4752
+ background-color: #399c7222;
4753
+ }
4754
+ .ProseMirror .track-delete-dec.highlighted {
4755
+ border-top: 1px dashed #cb0e47;
4756
+ border-bottom: 1px dashed #cb0e47;
4757
+ background-color: #cb0e4722;
4758
+ text-decoration: line-through;
4759
+ text-decoration-thickness: 2px;
4760
+ }
4761
+ .ProseMirror .track-format-dec.highlighted {
4762
+ border-bottom: 2px solid gold;
4763
+ }
4764
+ .ProseMirror .track-delete-widget {
4765
+ visibility: hidden;
4766
+ }
4767
+ /* Track changes - end */
4768
+ /* Collaboration cursors */
4769
+ .ProseMirror > .ProseMirror-yjs-cursor:first-child {
4770
+ margin-top: 16px;
4771
+ }
4772
+ .ProseMirror-yjs-cursor {
4773
+ position: relative;
4774
+ margin-left: -1px;
4775
+ margin-right: -1px;
4776
+ border-left: 1px solid black;
4777
+ border-right: 1px solid black;
4778
+ border-color: orange;
4779
+ word-break: normal;
4780
+ pointer-events: none;
4781
+ }
4782
+ .ProseMirror-yjs-cursor > div {
4783
+ position: absolute;
4784
+ top: -1.05em;
4785
+ left: -1px;
4786
+ font-size: 13px;
4787
+ background-color: rgb(250, 129, 0);
4788
+ font-family: serif;
4789
+ font-style: normal;
4790
+ font-weight: normal;
4791
+ line-height: normal;
4792
+ user-select: none;
4793
+ color: white;
4794
+ padding-left: 2px;
4795
+ padding-right: 2px;
4796
+ white-space: nowrap;
4797
+ }
4798
+ /* Collaboration cursors - end */
4799
+ /* Image placeholder */
4800
+ .ProseMirror placeholder {
4801
+ display: inline;
4802
+ border: 1px solid #ccc;
4803
+ color: #ccc;
4804
+ }
4805
+ .ProseMirror placeholder:after {
4806
+ content: '☁';
4807
+ font-size: 200%;
4808
+ line-height: 0.1;
4809
+ font-weight: bold;
4810
+ }
4811
+ /* Gapcursor */
4812
+ .ProseMirror-gapcursor {
4813
+ display: none;
4814
+ pointer-events: none;
4815
+ position: absolute;
4816
+ margin: 0;
4817
+ }
4818
+ .ProseMirror-gapcursor:after {
4819
+ content: '';
4820
+ display: block;
4821
+ position: absolute;
4822
+ top: -2px;
4823
+ width: 20px;
4824
+ border-top: 1px solid black;
4825
+ animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
4826
+ }
4827
+ @keyframes ProseMirror-cursor-blink {
4828
+ to {
4829
+ visibility: hidden;
4830
+ }
4831
+ }
4832
+ .ProseMirror-focused .ProseMirror-gapcursor {
4833
+ display: block;
4834
+ }
4835
+ .ProseMirror div[data-type='contentBlock'] {
4836
+ position: absolute;
4837
+ outline: none;
4838
+ user-select: none;
4839
+ z-index: -1;
4840
+ }
4841
+ .ProseMirror div[data-horizontal-rule='true'] {
4842
+ margin-top: auto;
4843
+ align-self: flex-end;
4844
+ }
4845
+ .sd-editor-dropcap {
4846
+ float: left;
4847
+ display: flex;
4848
+ align-items: baseline;
4849
+ margin-top: -5px;
4850
+ }
4851
+ .ProseMirror-search-match {
4852
+ background-color: #ffff0054;
4853
+ }
4854
+ .ProseMirror-active-search-match {
4855
+ background-color: #ff6a0054;
4856
+ }
4857
+ .ProseMirror span.sd-custom-selection::selection {
4858
+ background: transparent;
4859
+ }
4860
+ .sd-custom-selection {
4861
+ background-color: #d9d9d9;
4862
+ border-radius: 0.1em;
4863
+ }
4864
+ .superdoc-toolbar svg {
4865
+ width: 100%;
4866
+ height: 100%;
4867
+ display: block;
4868
+ fill: currentColor;
4869
+ }
4870
+ .superdoc-toolbar svg path {
4871
+ stroke: currentColor;
4872
+ }
4873
+ .sd-editor-toolbar-dropdown .n-dropdown-option .dropdown-select-icon {
4874
+ display: flex;
4875
+ width: 12px;
4876
+ height: 12px;
4877
+ }
4878
+ /* Custom toolbar styling */
4879
+ /* AI button icon styling with gradient */
4880
+ .toolbar-icon__icon--ai {
4881
+ position: relative;
4882
+ z-index: 1;
4883
+ }
4884
+ .toolbar-icon__icon--ai svg {
4885
+ fill: transparent;
4886
+ }
4887
+ .toolbar-icon__icon--ai::before {
4888
+ content: '';
4889
+ position: absolute;
4890
+ top: 0;
4891
+ left: 0;
4892
+ right: 0;
4893
+ bottom: 0;
4894
+ z-index: -1;
4895
+ background: linear-gradient(
4896
+ 270deg,
4897
+ rgba(218, 215, 118, 0.5) -20%,
4898
+ rgba(191, 100, 100, 1) 30%,
4899
+ rgba(77, 82, 217, 1) 60%,
4900
+ rgb(255, 219, 102) 150%
4901
+ );
4902
+ -webkit-mask: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.7-53.3L160 80l-53.3-26.7L80 0 53.3 53.3 0 80l53.3 26.7L80 160zm352 128l-26.7 53.3L352 368l53.3 26.7L432 448l26.7-53.3L512 368l-53.3-26.7L432 288zm70.6-193.8L417.8 9.4C411.5 3.1 403.3 0 395.2 0c-8.2 0-16.4 3.1-22.6 9.4L9.4 372.5c-12.5 12.5-12.5 32.8 0 45.3l84.9 84.9c6.3 6.3 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l363.1-363.2c12.5-12.5 12.5-32.8 0-45.2zM359.5 203.5l-50.9-50.9 86.6-86.6 50.9 50.9-86.6 86.6z'/></svg>")
4903
+ center / contain no-repeat;
4904
+ mask: url("data:image/svg+xml;charset=utf-8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'><path d='M224 96l16-32 32-16-32-16-16-32-16 32-32 16 32 16 16 32zM80 160l26.7-53.3L160 80l-53.3-26.7L80 0 53.3 53.3 0 80l53.3 26.7L80 160zm352 128l-26.7 53.3L352 368l53.3 26.7L432 448l26.7-53.3L512 368l-53.3-26.7L432 288zm70.6-193.8L417.8 9.4C411.5 3.1 403.3 0 395.2 0c-8.2 0-16.4 3.1-22.6 9.4L9.4 372.5c-12.5 12.5-12.5 32.8 0 45.3l84.9 84.9c6.3 6.3 14.4 9.4 22.6 9.4 8.2 0 16.4-3.1 22.6-9.4l363.1-363.2c12.5-12.5 12.5-32.8 0-45.2zM359.5 203.5l-50.9-50.9 86.6-86.6 50.9 50.9-86.6 86.6z'/></svg>")
4905
+ center / contain no-repeat;
4906
+ filter: brightness(1.2);
4907
+ transition: filter 0.2s ease;
4908
+ }
4909
+ .toolbar-icon__icon--ai:hover::before {
4910
+ filter: brightness(1.3);
4911
+ }
4912
+ /* AI text appear animation */
4913
+ @keyframes aiTextAppear {
4914
+ from {
4915
+ opacity: 0;
4916
+ transform: translateY(5px);
4917
+ }
4918
+ to {
4919
+ opacity: 1;
4920
+ transform: translateY(0);
4921
+ }
4922
+ }
4923
+ .sd-ai-text-appear {
4924
+ display: inline;
4925
+ opacity: 0;
4926
+ animation: aiTextAppear 0.7s ease-out forwards;
4927
+ animation-fill-mode: both;
4928
+ will-change: opacity, transform;
4929
+ /* Ensure each mark is treated as a separate animation context */
4930
+ contain: content;
4931
+ }
4932
+ .sd-ai-loader {
4933
+ display: flex;
4934
+ justify-content: flex-start;
4935
+ }
4936
+ .sd-ai-loader > img {
4937
+ width: fit-content;
4938
+ height: 40px;
4939
+ }
4940
+ @keyframes ai-pulse {
4941
+ 0% {
4942
+ background-color: rgba(99, 102, 241, 0.1);
4943
+ }
4944
+ 50% {
4945
+ background-color: rgba(99, 102, 241, 0.375);
4946
+ }
4947
+ 100% {
4948
+ background-color: rgba(99, 102, 241, 0.1);
4949
+ }
4950
+ }
4951
+ .sd-ai-highlight-pulse {
4952
+ animation: ai-pulse 1.5s ease-in-out infinite;
4953
+ }
4954
+ .sd-editor-auto-page-number,
4955
+ .sd-editor-auto-total-pages {
4956
+ transition: all 250ms ease;
4957
+ border-bottom: 1px solid #9a9a9a;
4958
+ cursor: not-allowed;
4959
+ }
4960
+ .sd-editor-auto-page-number:hover,
4961
+ .sd-editor-auto-total-pages:hover {
4962
+ border-bottom-color: #4f4f4f;
4963
+ }
4964
+ .sd-editor-auto-page-number-content {
4965
+ pointer-events: none;
4966
+ }
4967
+ .ProseMirror.view-mode .sd-editor-auto-page-number,
4968
+ .ProseMirror.view-mode .sd-editor-auto-total-pages {
4969
+ border: none;
4970
+ }
4971
+ :root {
4972
+ --sd-editor-separator-height: 18px;
4973
+ }
4974
+ .pagination-section-header {
4975
+ cursor: default;
4976
+ }
4977
+ /* To not inherit styles from the wrapper paragraph */
4978
+ .pagination-section-header p {
4979
+ text-align: initial;
4980
+ }
4981
+ .pagination-section-footer {
4982
+ position: relative;
4983
+ width: 100%;
4984
+ min-width: 100%;
4985
+ display: flex;
4986
+ flex-direction: column;
4987
+ justify-content: flex-end;
4988
+ cursor: default;
4989
+ }
4990
+ /* To not inherit styles from the wrapper paragraph */
4991
+ .pagination-section-footer p {
4992
+ text-align: initial;
4993
+ }
4994
+ .pagination-break-wrapper {
4995
+ width: 100%;
4996
+ margin: 0;
4997
+ padding: 0;
4998
+ cursor: default;
4999
+ position: relative;
5000
+ }
5001
+ .pagination-separator {
5002
+ position: relative;
5003
+ display: block;
5004
+ height: var(--sd-editor-separator-height);
5005
+ min-height: var(--sd-editor-separator-height);
5006
+ min-width: 100%;
5007
+ width: 100%;
5008
+ border-top: 1px solid #dbdbdb;
5009
+ border-bottom: 1px solid #dbdbdb;
5010
+ cursor: default;
5011
+ }
5012
+ .pagination-separator--table {
5013
+ border: 0;
5014
+ }
5015
+ .pagination-separator-floating {
5016
+ position: absolute;
5017
+ height: var(--sd-editor-separator-height);
5018
+ border-top: 1px solid #dbdbdb;
5019
+ border-bottom: 1px solid #dbdbdb;
5020
+ pointer-events: none;
5021
+ }
5022
+ .pagination-inner {
5023
+ position: absolute;
5024
+ top: 0;
5025
+ left: 0;
5026
+ display: flex;
5027
+ flex-direction: column;
5028
+ background-color: white;
5029
+ }
5030
+ /**
5031
+ Workaround to display pagination in footer
5032
+ on the right if it is inside shape textbox.
5033
+ */
5034
+ .pagination-section-footer .sd-editor-shape-container:has([data-id='auto-page-number'], [data-id='auto-total-pages']) {
5035
+ margin-left: auto;
5036
+ }
5037
+ .pagination-section-header img[contenteditable='false'],
5038
+ .pagination-section-footer img[contenteditable='false'] {
5039
+ pointer-events: none;
5040
+ }
5041
+ .pagination-break-wrapper {
5042
+ font-weight: normal;
5043
+ font-style: normal;
5044
+ color: initial;
5045
+ }
5046
+ /* TODO: This is going to be enabled again */
5047
+ /* .pagination-section-header div[contenteditable="false"]:not([documentmode="viewing"]),
5048
+ .pagination-section-footer div[contenteditable="false"]:not([documentmode="viewing"]) {
5049
+ opacity: 0.5;
5050
+ } */
5051
+ .sd-editor-popover {
5052
+ background-color: #fff;
5053
+ border-radius: 8px;
5054
+ -webkit-box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
5055
+ -moz-box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
5056
+ box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
5057
+ padding: 0;
5058
+ width: auto;
5059
+ height: auto;
5060
+ font-size: 14px;
5061
+ color: #333;
5062
+ z-index: 1000;
5063
+ }
5064
+ .sd-editor-popover .popover-header {
5065
+ font-weight: bold;
5066
+ margin-bottom: 8px;
5067
+ }
5068
+ .tippy-box[data-theme~='sd-editor-popover'] {
5069
+ background-color: #fff;
5070
+ border-radius: 8px;
5071
+ box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
5072
+ border: none !important;
5073
+ padding: 0 !important;
5074
+ }
5075
+ .tippy-box[data-theme~='sd-editor-popover'] .tippy-arrow {
5076
+ color: #fff;
5077
+ border: 1px solid #dbdbdb;
5078
+ }
5079
+ .tippy-box[data-theme~='sd-editor-popover'] .tippy-content {
5080
+ padding: 0;
5081
+ }
5082
+ .sd-editor-placeholder::before {
5083
+ content: attr(data-placeholder);
5084
+ color: #aaa;
5085
+ pointer-events: none;
5086
+ display: block;
5087
+ height: 0;
5088
+ }
5089
+ .sd-editor-mention {
5090
+ background-color: #1355ff15;
5091
+ color: #222;
5092
+ font-weight: 400;
5093
+ border-radius: 3px;
5094
+ padding: 0 5px;
5095
+ cursor: default;
5096
+ display: inline-block;
5097
+ box-sizing: border-box;
5098
+ }
5099
+ .sd-editor-comment-highlight {
5100
+ transition: background-color 250ms ease;
5101
+ }
5102
+ .sd-editor-comment-highlight:hover {
5103
+ background-color: #1354ff55;
5104
+ }
5105
+ .sd-editor-comment-highlight.sd-custom-selection {
5106
+ background-color: #d6c0c6 !important;
5107
+ }
5108
+ .sd-editor-list-item-node-view {
5109
+ position: relative;
5110
+ width: 100%;
5111
+ }
5112
+ .sd-editor-list-item-numbering {
5113
+ position: absolute;
5114
+ top: 0;
5115
+ white-space: nowrap;
5116
+ user-select: none;
5117
+ pointer-events: auto;
5118
+ text-align: right;
5119
+ z-index: 1;
5120
+ }
5121
+ .sd-editor-list-item-content-dom {
5122
+ position: relative;
5123
+ min-height: inherit;
5124
+ word-wrap: break-word;
5125
+ }
5126
+ /* temporary fix */
5127
+ .sd-editor-list-item-node-view .sd-custom-selection {
5128
+ font-size: inherit !important;
5129
+ }
5130
+ /* Resize handles container */
5131
+ .sd-editor-resize-container {
5132
+ position: absolute;
5133
+ pointer-events: none;
5134
+ z-index: 11;
5135
+ }
5136
+ /* Resize handles */
5137
+ .sd-editor-resize-handle {
5138
+ position: absolute;
5139
+ width: 12px;
5140
+ height: 12px;
5141
+ background-color: #4dabf7;
5142
+ border: 2px solid #fff;
5143
+ border-radius: 50%;
5144
+ box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
5145
+ pointer-events: auto;
5146
+ transition: all 0.1s ease;
5147
+ }
5148
+ .sd-editor-resize-handle:hover {
5149
+ background-color: #228be6;
5150
+ transform: scale(1.1);
5151
+ box-shadow: 0 0 6px rgba(0, 0, 0, 0.4);
5152
+ }
5153
+ /* Handle positions */
5154
+ .sd-editor-resize-handle-nw {
5155
+ top: -6px;
5156
+ left: -6px;
5157
+ cursor: nwse-resize;
5158
+ }
5159
+ .sd-editor-resize-handle-ne {
5160
+ top: -6px;
5161
+ right: -6px;
5162
+ cursor: nesw-resize;
5163
+ }
5164
+ .sd-editor-resize-handle-sw {
5165
+ bottom: -6px;
5166
+ left: -6px;
5167
+ cursor: nesw-resize;
5168
+ }
5169
+ .sd-editor-resize-handle-se {
5170
+ bottom: -6px;
5171
+ right: -6px;
5172
+ cursor: nwse-resize;
5173
+ }
5174
+ /* Hide handles when editor loses focus */
5175
+ .ProseMirror:not(.ProseMirror-focused) .sd-editor-resize-container {
5176
+ display: none;
5177
+ }
5178
+ /* Smooth transitions for resizing */
5179
+ .sd-editor-resizable-wrapper * {
5180
+ transition: none;
5181
+ }
5182
+ .sd-editor-resizable-wrapper *:not([style*='width']) {
5183
+ transition: all 0.2s ease;
5184
+ }
5185
+ /* Resize feedback indicator */
5186
+ .sd-editor-resizable-wrapper::after {
5187
+ content: 'Drag corners to resize';
5188
+ position: absolute;
5189
+ bottom: -25px;
5190
+ left: 50%;
5191
+ transform: translateX(-50%);
5192
+ background-color: rgba(77, 171, 247, 0.9);
5193
+ color: white;
5194
+ font-size: 11px;
5195
+ padding: 4px 8px;
5196
+ border-radius: 4px;
5197
+ white-space: nowrap;
5198
+ pointer-events: none;
5199
+ opacity: 0;
5200
+ transition: opacity 0.3s ease;
5201
+ z-index: 12;
5202
+ }
5203
+ .sd-editor-resizable-wrapper:hover::after {
5204
+ opacity: 1;
5205
+ }
5206
+ .sd-document-section-block {
5207
+ background-color: #fafafa;
5208
+ border: 1px solid #ababab;
5209
+ border-radius: 4px;
5210
+ position: relative;
5211
+ }
5212
+ .sd-document-section-block-info {
5213
+ position: absolute;
5214
+ top: -19px;
5215
+ left: -1px;
5216
+ max-width: 100px;
5217
+ min-width: 0;
5218
+ height: 18px;
5219
+ border: 1px solid #ababab;
5220
+ border-bottom: none;
5221
+ border-radius: 6px 6px 0 0;
5222
+ padding: 0 8px;
5223
+ align-items: center;
5224
+ font-size: 10px;
5225
+ display: none;
5226
+ z-index: 100;
5227
+ background-color: #fafafa;
5228
+ }
5229
+ .sd-document-section-block:hover {
5230
+ border-radius: 0 4px 4px 4px;
5231
+ }
5232
+ .sd-document-section-block:hover .sd-document-section-block-info {
5233
+ display: flex;
5234
+ align-items: center;
5235
+ }
5236
+ .sd-document-section-block-info span {
5237
+ max-width: 100%;
5238
+ overflow: hidden;
5239
+ white-space: nowrap;
5240
+ text-overflow: ellipsis;
5241
+ }
5242
+ .sd-structured-content,
5243
+ .sd-structured-content-block {
5244
+ padding: 1px;
5245
+ box-sizing: border-box;
5246
+ border-radius: 4px;
5247
+ border: 1px solid #629be7;
5248
+ position: relative;
5249
+ }
5250
+ .sd-structured-content-draggable {
5251
+ font-size: 10px;
5252
+ align-items: center;
5253
+ justify-content: center;
5254
+ position: absolute;
5255
+ left: 2px;
5256
+ bottom: 100%;
5257
+ width: calc(100% - 4px);
5258
+ max-width: 110px;
5259
+ min-width: 0;
5260
+ height: 18px;
5261
+ padding: 0 4px;
5262
+ border: 1px solid #629be7;
5263
+ border-bottom: none;
5264
+ border-radius: 6px 6px 0 0;
5265
+ background-color: #629be7dd;
5266
+ z-index: 10;
5267
+ cursor: grab;
5268
+ display: none;
5269
+ }
5270
+ .sd-structured-content-draggable span {
5271
+ max-width: 100%;
5272
+ overflow: hidden;
5273
+ white-space: nowrap;
5274
+ text-overflow: ellipsis;
5275
+ }
5276
+ .sd-structured-content:hover .sd-structured-content-draggable,
5277
+ .sd-structured-content-block:hover .sd-structured-content-draggable {
5278
+ display: inline-flex;
5279
+ }
5280
+ `;
5281
+ let cachedStyleSheet = null;
5282
+ const defaultEditorStyles = editorStyles;
5283
+ let shadowEditorStyles = defaultEditorStyles;
5284
+ const supportsConstructableStylesheets = () => {
5285
+ const DocumentCtor = (
5286
+ /** @type {typeof Document | undefined} */
5287
+ globalThis.Document
5288
+ );
5289
+ const CSSStyleSheetCtor = (
5290
+ /** @type {typeof CSSStyleSheet | undefined} */
5291
+ globalThis.CSSStyleSheet
5292
+ );
5293
+ if (!DocumentCtor || !CSSStyleSheetCtor) return false;
5294
+ const documentPrototype = DocumentCtor.prototype;
5295
+ const styleSheetPrototype = CSSStyleSheetCtor.prototype;
5296
+ return !!documentPrototype && "adoptedStyleSheets" in documentPrototype && !!styleSheetPrototype && typeof styleSheetPrototype.replaceSync === "function";
5297
+ };
5298
+ const ensureStyleSheet = (root) => {
5299
+ if (!root || !shadowEditorStyles) return;
5300
+ if (supportsConstructableStylesheets()) {
5301
+ if (!cachedStyleSheet) {
5302
+ const CSSStyleSheetCtor = (
5303
+ /** @type {typeof CSSStyleSheet} */
5304
+ globalThis.CSSStyleSheet
5305
+ );
5306
+ cachedStyleSheet = new CSSStyleSheetCtor();
5307
+ cachedStyleSheet.replaceSync(shadowEditorStyles);
5308
+ }
5309
+ const sheets = Array.isArray(root.adoptedStyleSheets) ? root.adoptedStyleSheets : [];
5310
+ if (!sheets.includes(cachedStyleSheet)) {
5311
+ root.adoptedStyleSheets = [...sheets, cachedStyleSheet];
5312
+ }
5313
+ return;
5314
+ }
5315
+ const doc = (
5316
+ /** @type {Document | undefined} */
5317
+ globalThis.document
5318
+ );
5319
+ if (!doc || typeof root.querySelector !== "function") return;
5320
+ if (!root.querySelector("style[data-super-editor-styles]")) {
5321
+ const styleEl = doc.createElement("style");
5322
+ styleEl.setAttribute("data-super-editor-styles", "");
5323
+ styleEl.textContent = shadowEditorStyles;
5324
+ root.appendChild(styleEl);
5325
+ }
5326
+ };
5327
+ const ensureEditorShadowRoot = (hostElement) => {
5328
+ const doc = (
5329
+ /** @type {Document | undefined} */
5330
+ globalThis.document
5331
+ );
5332
+ if (!hostElement || !doc || typeof hostElement.attachShadow !== "function") {
5333
+ return { root: null, mount: null };
5334
+ }
5335
+ const root = hostElement.shadowRoot || hostElement.attachShadow({ mode: "open" });
5336
+ ensureStyleSheet(root);
5337
+ let mount = root.querySelector(".sd-editor-mount");
5338
+ if (!mount) {
5339
+ mount = doc.createElement("div");
5340
+ mount.className = "sd-editor-mount";
5341
+ root.appendChild(mount);
5342
+ }
5343
+ return { root, mount };
5344
+ };
4528
5345
  const _hoisted_1$1 = { class: "super-editor-container" };
4529
5346
  const _hoisted_2 = {
4530
5347
  key: 1,
@@ -4563,6 +5380,7 @@ const _sfc_main$1 = {
4563
5380
  const message = useMessage();
4564
5381
  const editorWrapper = ref(null);
4565
5382
  const editorElem = ref(null);
5383
+ const editorMountPoint = shallowRef(null);
4566
5384
  const fileSource = ref(null);
4567
5385
  const popoverControls = reactive({
4568
5386
  visible: false,
@@ -4651,9 +5469,15 @@ const _sfc_main$1 = {
4651
5469
  return extensions;
4652
5470
  };
4653
5471
  const initEditor = async ({ content, media = {}, mediaFiles = {}, fonts = {} } = {}) => {
5472
+ if (!editorElem.value) return;
5473
+ const { mount } = ensureEditorShadowRoot(editorElem.value);
5474
+ editorMountPoint.value = mount;
5475
+ if (editorMountPoint.value) {
5476
+ editorMountPoint.value.innerHTML = "";
5477
+ }
4654
5478
  editor.value = new Editor({
4655
5479
  mode: "docx",
4656
- element: editorElem.value,
5480
+ element: editorMountPoint.value || editorElem.value,
4657
5481
  fileSource: fileSource.value,
4658
5482
  extensions: getExtensions(),
4659
5483
  externalExtensions: props.options.externalExtensions,
@@ -4700,11 +5524,12 @@ const _sfc_main$1 = {
4700
5524
  };
4701
5525
  const handleSuperEditorClick = (event) => {
4702
5526
  emit("editor-click", { editor: editor.value });
4703
- let pmElement = editorElem.value?.querySelector(".ProseMirror");
5527
+ const pmElement = editor.value?.view?.dom;
4704
5528
  if (!pmElement || !editor.value) {
4705
5529
  return;
4706
5530
  }
4707
- let isInsideEditor = pmElement.contains(event.target);
5531
+ const eventPath = event.composedPath?.() || [];
5532
+ const isInsideEditor = eventPath.includes(pmElement);
4708
5533
  if (!isInsideEditor && editor.value.isEditable) {
4709
5534
  editor.value.view?.focus();
4710
5535
  }
@@ -4717,7 +5542,9 @@ const _sfc_main$1 = {
4717
5542
  if (props.options?.suppressSkeletonLoader || !props.options?.collaborationProvider) editorReady.value = true;
4718
5543
  });
4719
5544
  const handleMarginClick = (event) => {
4720
- if (event.target.classList.contains("ProseMirror")) return;
5545
+ const pmElement = editor.value?.view?.dom;
5546
+ const eventPath = event.composedPath?.() || [];
5547
+ if (pmElement && eventPath.includes(pmElement)) return;
4721
5548
  onMarginClickCursorChange(event, editor.value);
4722
5549
  };
4723
5550
  const handleMarginChange = ({ side, value }) => {
@@ -4823,7 +5650,7 @@ const _sfc_main$1 = {
4823
5650
  };
4824
5651
  }
4825
5652
  };
4826
- const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-0c36dd72"]]);
5653
+ const SuperEditor = /* @__PURE__ */ _export_sfc(_sfc_main$1, [["__scopeId", "data-v-3d49a1a6"]]);
4827
5654
  const _hoisted_1 = ["innerHTML"];
4828
5655
  const _sfc_main = {
4829
5656
  __name: "SuperInput",
@@ -4853,6 +5680,7 @@ const _sfc_main = {
4853
5680
  const props = __props;
4854
5681
  const editor = shallowRef();
4855
5682
  const editorElem = ref(null);
5683
+ const editorMountPoint = shallowRef(null);
4856
5684
  const isFocused = ref(false);
4857
5685
  const onTransaction = ({ editor: editor2, transaction }) => {
4858
5686
  const contents = editor2.getHTML();
@@ -4872,10 +5700,15 @@ const _sfc_main = {
4872
5700
  props.options.onTransaction = onTransaction;
4873
5701
  props.options.onFocus = onFocus;
4874
5702
  props.options.onBlur = onBlur;
5703
+ const { mount } = ensureEditorShadowRoot(editorElem.value);
5704
+ editorMountPoint.value = mount;
5705
+ if (editorMountPoint.value) {
5706
+ editorMountPoint.value.innerHTML = "";
5707
+ }
4875
5708
  editor.value = new Editor({
4876
5709
  mode: "text",
4877
5710
  content: document.getElementById("currentContent"),
4878
- element: editorElem.value,
5711
+ element: editorMountPoint.value || editorElem.value,
4879
5712
  extensions: getRichTextExtensions(),
4880
5713
  users: props.users,
4881
5714
  ...props.options
@@ -4914,7 +5747,7 @@ const _sfc_main = {
4914
5747
  };
4915
5748
  }
4916
5749
  };
4917
- const SuperInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-4d5cff52"]]);
5750
+ const SuperInput = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-23a4e794"]]);
4918
5751
  const baseHandlers = {
4919
5752
  ...runPropertyTranslators,
4920
5753
  "w:br": translator$p,