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

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 (38) hide show
  1. package/dist/chunks/{PdfViewer-BrJSIJjF.cjs → PdfViewer-BR9iwva-.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-CJAEtjUD.es.js → PdfViewer-CwVW7MVJ.es.js} +1 -1
  3. package/dist/chunks/{index-NiOytIlp.cjs → index-BNA5J__D.cjs} +2 -2
  4. package/dist/chunks/{index-BDfKQQiO.es.js → index-CjQDYBP2.es.js} +2 -2
  5. package/dist/chunks/{super-editor.es-iVTtEcot.es.js → super-editor.es-C5dhT0uU.es.js} +98 -911
  6. package/dist/chunks/{super-editor.es-DmkkMNKU.cjs → super-editor.es-Ct59l8tt.cjs} +98 -911
  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-CYC0HBJe.js → converter-DYAHhSrg.js} +65 -26
  11. package/dist/super-editor/chunks/{docx-zipper-DlwteneT.js → docx-zipper-BDbCmfbE.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-BzT9rpXb.js → editor-B1W7AdgQ.js} +29 -59
  13. package/dist/super-editor/chunks/{toolbar-BnTHDmlP.js → toolbar-CCvglB_X.js} +7 -6
  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/components/slash-menu/contextmenu-helpers.d.ts +1 -0
  19. package/dist/super-editor/src/core/commands/__tests__/schemaWithLists.d.ts +2 -0
  20. package/dist/super-editor/src/core/commands/__tests__/testHelpers.d.ts +4 -0
  21. package/dist/super-editor/src/core/commands/__tests__/testSchema.d.ts +2 -0
  22. package/dist/super-editor/src/core/commands/tests/commandTestUtils.d.ts +7 -0
  23. package/dist/super-editor/src/core/commands/tests/test-schema.d.ts +2 -0
  24. package/dist/super-editor/src/extensions/custom-selection/custom-selection.d.ts +1 -0
  25. package/dist/super-editor/style.css +11 -11
  26. package/dist/super-editor/super-editor.es.js +94 -878
  27. package/dist/super-editor/toolbar.es.js +2 -2
  28. package/dist/super-editor.cjs +1 -1
  29. package/dist/super-editor.es.js +1 -1
  30. package/dist/superdoc.cjs +2 -2
  31. package/dist/superdoc.es.js +2 -2
  32. package/dist/superdoc.umd.js +98 -911
  33. package/dist/superdoc.umd.js.map +1 -1
  34. package/package.json +1 -1
  35. package/dist/super-editor/src/extensions/noderesizer/helpers.d.ts +0 -2
  36. package/dist/super-editor/src/extensions/run-item/index.d.ts +0 -1
  37. package/dist/super-editor/src/extensions/run-item/run-item.d.ts +0 -26
  38. package/dist/super-editor/src/utils/shadow-root.d.ts +0 -12
@@ -55644,11 +55644,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
55644
55644
  item.editor.view.dom.setAttribute("documentmode", documentMode);
55645
55645
  });
55646
55646
  if (isEditMode) {
55647
- const pm = editor.view?.dom;
55648
- if (pm) {
55649
- pm.classList.add("header-footer-edit");
55650
- pm.setAttribute("aria-readonly", true);
55651
- }
55647
+ const pm = document.querySelector(".ProseMirror");
55648
+ pm.classList.add("header-footer-edit");
55649
+ pm.setAttribute("aria-readonly", true);
55652
55650
  }
55653
55651
  if (focusedSectionEditor) {
55654
55652
  focusedSectionEditor.view.focus();
@@ -58260,7 +58258,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
58260
58258
  setDocumentMode(documentMode) {
58261
58259
  let cleanedMode = documentMode?.toLowerCase() || "editing";
58262
58260
  if (!this.extensionService || !this.state) return;
58263
- const pm = this.view?.dom;
58261
+ const pm = document.querySelector(".ProseMirror");
58264
58262
  if (this.options.role === "viewer") cleanedMode = "viewing";
58265
58263
  if (this.options.role === "suggester" && cleanedMode === "editing") cleanedMode = "suggesting";
58266
58264
  if (cleanedMode === "viewing") {
@@ -58490,6 +58488,8 @@ Please report this to https://github.com/markedjs/marked.`, e) {
58490
58488
  element.style.isolation = "isolate";
58491
58489
  proseMirror.style.outline = "none";
58492
58490
  proseMirror.style.border = "none";
58491
+ element.style.backgroundColor = "#fff";
58492
+ proseMirror.style.backgroundColor = "#fff";
58493
58493
  const { typeface, fontSizePt, fontFamilyCss } = this.converter.getDocumentDefaultStyles() ?? {};
58494
58494
  const resolvedFontFamily = fontFamilyCss || typeface;
58495
58495
  if (resolvedFontFamily) {
@@ -59232,11 +59232,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
59232
59232
  isEditMode: false,
59233
59233
  documentMode: this.options.documentMode
59234
59234
  });
59235
- const pm = this.view?.dom;
59236
- if (pm) {
59237
- pm.classList.remove("header-footer-edit");
59238
- pm.setAttribute("aria-readonly", false);
59239
- }
59235
+ const pm = document.querySelector(".ProseMirror");
59236
+ pm.classList.remove("header-footer-edit");
59237
+ pm.setAttribute("aria-readonly", false);
59240
59238
  }
59241
59239
  setWordSelection(view, pos);
59242
59240
  }
@@ -61292,6 +61290,14 @@ Please report this to https://github.com/markedjs/marked.`, e) {
61292
61290
  return result;
61293
61291
  };
61294
61292
  const CustomSelectionPluginKey = new PluginKey("CustomSelection");
61293
+ const shouldAllowNativeContextMenu = (event) => {
61294
+ if (!event) return false;
61295
+ if (event.ctrlKey || event.metaKey) {
61296
+ return true;
61297
+ }
61298
+ const isKeyboardInvocation = event.type === "contextmenu" && typeof event.detail === "number" && event.detail === 0 && (event.button === 0 || event.button === void 0) && event.clientX === 0 && event.clientY === 0;
61299
+ return Boolean(isKeyboardInvocation);
61300
+ };
61295
61301
  const handleClickOutside = (event, editor) => {
61296
61302
  const editorElem = editor?.options?.element;
61297
61303
  if (!editorElem) return;
@@ -61353,6 +61359,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
61353
61359
  props: {
61354
61360
  handleDOMEvents: {
61355
61361
  contextmenu: (view, event) => {
61362
+ if (shouldAllowNativeContextMenu(event)) {
61363
+ return false;
61364
+ }
61356
61365
  event.preventDefault();
61357
61366
  const { selection } = view.state;
61358
61367
  if (!selection.empty) {
@@ -61371,6 +61380,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
61371
61380
  },
61372
61381
  mousedown: (view, event) => {
61373
61382
  if (event.button === 2) {
61383
+ if (shouldAllowNativeContextMenu(event)) {
61384
+ return false;
61385
+ }
61374
61386
  event.preventDefault();
61375
61387
  const { selection: selection2 } = view.state;
61376
61388
  if (!selection2.empty) {
@@ -77171,45 +77183,6 @@ Please report this to https://github.com/markedjs/marked.`, e) {
77171
77183
  };
77172
77184
  }
77173
77185
  });
77174
- let cachedShadowRootCtor;
77175
- const getShadowRootCtor = () => {
77176
- if (cachedShadowRootCtor === void 0) {
77177
- const ctor = globalThis.ShadowRoot;
77178
- cachedShadowRootCtor = typeof ctor === "function" ? ctor : null;
77179
- }
77180
- return cachedShadowRootCtor;
77181
- };
77182
- let cachedElementCtor;
77183
- const getElementCtor = () => {
77184
- if (cachedElementCtor === void 0) {
77185
- const ctor = globalThis.Element;
77186
- cachedElementCtor = typeof ctor === "function" ? ctor : null;
77187
- }
77188
- return cachedElementCtor;
77189
- };
77190
- const queryWithinRoot = (domNode, selector) => {
77191
- const shadowRoot = domNode?.shadowRoot;
77192
- if (shadowRoot && typeof shadowRoot.querySelector === "function") {
77193
- return shadowRoot.querySelector(selector);
77194
- }
77195
- const rawRoot = domNode?.getRootNode?.();
77196
- const ShadowRootCtor = getShadowRootCtor();
77197
- const isShadowRoot2 = !!ShadowRootCtor && rawRoot instanceof ShadowRootCtor;
77198
- if (isShadowRoot2 && typeof rawRoot.querySelector === "function") {
77199
- return rawRoot.querySelector(selector);
77200
- }
77201
- if (domNode && typeof domNode.querySelector === "function") {
77202
- const localMatch = domNode.querySelector(selector);
77203
- if (localMatch) return localMatch;
77204
- }
77205
- return typeof document !== "undefined" ? document.querySelector(selector) : null;
77206
- };
77207
- const findInEventPath = (event, selector) => {
77208
- if (!event || !selector) return void 0;
77209
- const path = typeof event.composedPath === "function" ? event.composedPath() : [];
77210
- const ElementCtor = getElementCtor();
77211
- return path.find((node) => ElementCtor && node instanceof ElementCtor && node.matches(selector));
77212
- };
77213
77186
  const NodeResizerKey = new PluginKey("node-resizer");
77214
77187
  const nodeResizer = (nodeNames = ["image"], editor) => {
77215
77188
  let resizeState = {
@@ -77264,19 +77237,16 @@ Please report this to https://github.com/markedjs/marked.`, e) {
77264
77237
  view(view) {
77265
77238
  editorView = view;
77266
77239
  globalClickHandler = (event) => {
77267
- const wrapperInPath = findInEventPath(event, ".sd-editor-resizable-wrapper");
77268
- const containerInPath = findInEventPath(event, ".sd-editor-resize-container");
77269
- if (!wrapperInPath && !containerInPath) {
77240
+ if (!event.target.closest(".sd-editor-resizable-wrapper") && !event.target.closest(".sd-editor-resize-container")) {
77270
77241
  hideResizeHandles();
77271
77242
  }
77272
77243
  };
77273
77244
  document.addEventListener("click", globalClickHandler);
77274
77245
  globalMousedownHandler = (event) => {
77275
- const handle = findInEventPath(event, ".sd-editor-resize-handle");
77276
- if (handle) {
77246
+ if (event.target.closest(".sd-editor-resize-handle")) {
77277
77247
  event.preventDefault();
77278
77248
  event.stopPropagation();
77279
- startResize(editorView, event, handle);
77249
+ startResize(editorView, event, event.target);
77280
77250
  return true;
77281
77251
  }
77282
77252
  };
@@ -77293,7 +77263,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
77293
77263
  const prevSelection = prevState.selection;
77294
77264
  if (selection.from !== prevSelection.from || selection.to !== prevSelection.to) {
77295
77265
  setTimeout(() => {
77296
- const selectedResizableWrapper = queryWithinRoot(editorView?.dom, ".sd-editor-resizable-wrapper");
77266
+ const selectedResizableWrapper = document.querySelector(".sd-editor-resizable-wrapper");
77297
77267
  if (selectedResizableWrapper) {
77298
77268
  showResizeHandles(view2, selectedResizableWrapper);
77299
77269
  } else {
@@ -87406,7 +87376,6 @@ ${style2}
87406
87376
  const toolbarItemRefs = ref$1([]);
87407
87377
  const props = __props;
87408
87378
  const currentItem = ref$1(null);
87409
- const { proxy } = getCurrentInstance();
87410
87379
  const { isHighContrastMode: isHighContrastMode2 } = useHighContrastMode$1();
87411
87380
  const isMobile = window.matchMedia("(max-width: 768px)").matches;
87412
87381
  const styleMap = {
@@ -87505,8 +87474,10 @@ ${style2}
87505
87474
  nextButtonGroup.setAttribute("tabindex", "0");
87506
87475
  nextButtonGroup.focus();
87507
87476
  } else {
87508
- const editorDom = proxy?.$toolbar?.activeEditor?.view?.dom;
87509
- editorDom?.focus();
87477
+ const editor = document.querySelector(".ProseMirror");
87478
+ if (editor) {
87479
+ editor.focus();
87480
+ }
87510
87481
  }
87511
87482
  };
87512
87483
  const moveToPreviousButtonGroup = (e) => {
@@ -87652,7 +87623,7 @@ ${style2}
87652
87623
  };
87653
87624
  }
87654
87625
  };
87655
- const ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$2, [["__scopeId", "data-v-c1b3551b"]]);
87626
+ const ButtonGroup = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$2, [["__scopeId", "data-v-f42ec7e6"]]);
87656
87627
  const _sfc_main$k = {
87657
87628
  __name: "Toolbar",
87658
87629
  emits: ["command", "toggle", "select"],
@@ -91890,6 +91861,14 @@ ${style2}
91890
91861
  return null;
91891
91862
  }
91892
91863
  }
91864
+ const shouldBypassContextMenu = (event) => {
91865
+ if (!event) return false;
91866
+ if (event.ctrlKey || event.metaKey) {
91867
+ return true;
91868
+ }
91869
+ const isKeyboardInvocation = event.type === "contextmenu" && typeof event.detail === "number" && event.detail === 0 && (event.button === 0 || event.button === void 0) && event.clientX === 0 && event.clientY === 0;
91870
+ return Boolean(isKeyboardInvocation);
91871
+ };
91893
91872
  const isModuleEnabled = (editorOptions, moduleName) => {
91894
91873
  switch (moduleName) {
91895
91874
  case "ai":
@@ -92264,8 +92243,7 @@ ${style2}
92264
92243
  };
92265
92244
  const handleRightClick = async (event) => {
92266
92245
  const readOnly = !props.editor?.isEditable;
92267
- const isHoldingCtrl = event.ctrlKey;
92268
- if (readOnly || isHoldingCtrl) {
92246
+ if (readOnly || shouldBypassContextMenu(event)) {
92269
92247
  return;
92270
92248
  }
92271
92249
  event.preventDefault();
@@ -92426,12 +92404,10 @@ ${style2}
92426
92404
  }
92427
92405
  };
92428
92406
  function adjustPaginationBreaks(editorElem, editor) {
92429
- const hostElement = editorElem.value;
92430
- if (!hostElement || !editor?.value?.options?.scale) return;
92407
+ if (!editorElem.value || !editor?.value?.options?.scale) return;
92431
92408
  const zoom = editor.value.options.scale;
92432
- const bounds = hostElement.getBoundingClientRect();
92433
- const searchRoot = hostElement.shadowRoot || hostElement;
92434
- const breakNodes = searchRoot.querySelectorAll(".pagination-break-wrapper");
92409
+ const bounds = editorElem.value.getBoundingClientRect();
92410
+ const breakNodes = editorElem.value.querySelectorAll(".pagination-break-wrapper");
92435
92411
  let firstLeft;
92436
92412
  breakNodes.forEach((node) => {
92437
92413
  const nodeBounds = node.getBoundingClientRect();
@@ -92722,821 +92698,6 @@ ${style2}
92722
92698
  };
92723
92699
  const GenericPopover = /* @__PURE__ */ _export_sfc$1(_sfc_main$2$1, [["__scopeId", "data-v-cbddcc0f"]]);
92724
92700
  const BlankDOCX$1 = "data:application/octet-stream;base64,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";
92725
- const editorStyles = `:root {
92726
- /* CSS variables */
92727
- }
92728
- .sd-input-active {
92729
- border: 1px solid #1355ff !important;
92730
- }
92731
- .sd-super-editor-html .ProseMirror {
92732
- border: 1px solid #d9d9d9;
92733
- outline: none;
92734
- border-radius: 8px;
92735
- height: 100%;
92736
- width: 100%;
92737
- outline: none;
92738
- }
92739
- a {
92740
- text-decoration: auto;
92741
- }
92742
- /**
92743
- * Basic ProseMirror styles.
92744
- * https://github.com/ProseMirror/prosemirror-view/blob/master/style/prosemirror.css
92745
- */
92746
- .ProseMirror {
92747
- position: relative;
92748
- }
92749
- .ProseMirror {
92750
- word-wrap: break-word;
92751
- white-space: pre-wrap;
92752
- white-space: break-spaces;
92753
- -webkit-font-variant-ligatures: none;
92754
- font-variant-ligatures: none;
92755
- font-feature-settings: 'liga' 0; /* the above doesn't seem to work in Edge */
92756
- }
92757
- .ProseMirror pre {
92758
- white-space: pre-wrap;
92759
- }
92760
- .ProseMirror ol,
92761
- .ProseMirror ul {
92762
- margin-block-start: 0;
92763
- margin-block-end: 0;
92764
- margin-inline-start: 0;
92765
- margin-inline-end: 0;
92766
- }
92767
- .ProseMirror ol,
92768
- .ProseMirror ul {
92769
- padding-inline-start: 0;
92770
- padding-left: 0;
92771
- list-style: none;
92772
- }
92773
- .ProseMirror li::marker {
92774
- content: none;
92775
- }
92776
- .ProseMirror li::marker {
92777
- padding: 0;
92778
- margin: 0;
92779
- }
92780
- .ProseMirror li > p {
92781
- margin: 0;
92782
- padding: 0;
92783
- display: inline-block;
92784
- }
92785
- .ProseMirror.header-footer-edit > p img,
92786
- .ProseMirror.header-footer-edit > p a,
92787
- .ProseMirror.header-footer-edit li img,
92788
- .ProseMirror.header-footer-edit li a,
92789
- .ProseMirror.header-footer-edit span img,
92790
- .ProseMirror.header-footer-edit span a {
92791
- opacity: 1;
92792
- }
92793
- .ProseMirror.header-footer-edit .pagination-break-wrapper {
92794
- color: initial !important;
92795
- }
92796
- .ProseMirror.header-footer-edit .pagination-break-wrapper span {
92797
- color: initial !important;
92798
- }
92799
- .ProseMirror.header-footer-edit .pagination-break-wrapper img,
92800
- .ProseMirror.header-footer-edit .pagination-break-wrapper a {
92801
- opacity: 1;
92802
- }
92803
- .pagination-section-header div[contenteditable='false'] {
92804
- user-select: none;
92805
- }
92806
- /**
92807
- * Hide marker for indented lists.
92808
- * If a list-item contains a list but doesn't contain a "p" tag with text.
92809
- */
92810
- .ProseMirror ol {
92811
- margin: 0;
92812
- }
92813
- .ProseMirror li:has(> ul:first-child, > ol:first-child):not(:has(> p)) {
92814
- list-style-type: none;
92815
- }
92816
- .ProseMirror li:has(> ul:first-child, > ol:first-child):not(:has(> p))::marker {
92817
- content: '';
92818
- }
92819
- .ProseMirror-hideselection *::selection {
92820
- background: transparent;
92821
- }
92822
- .ProseMirror-hideselection *::-moz-selection {
92823
- background: transparent;
92824
- }
92825
- .ProseMirror-hideselection * {
92826
- caret-color: transparent;
92827
- }
92828
- /* See https://github.com/ProseMirror/prosemirror/issues/1421#issuecomment-1759320191 */
92829
- .ProseMirror [draggable][contenteditable='false'] {
92830
- user-select: text;
92831
- }
92832
- .ProseMirror-selectednode {
92833
- outline: 2px solid #8cf;
92834
- }
92835
- /* Make sure li selections wrap around markers */
92836
- li.ProseMirror-selectednode {
92837
- outline: none;
92838
- }
92839
- li.ProseMirror-selectednode:after {
92840
- content: '';
92841
- position: absolute;
92842
- left: -32px;
92843
- right: -2px;
92844
- top: -2px;
92845
- bottom: -2px;
92846
- border: 2px solid #8cf;
92847
- pointer-events: none;
92848
- }
92849
- .ProseMirror img {
92850
- height: auto;
92851
- max-width: 100%;
92852
- }
92853
- /* Protect against generic img rules */
92854
- img.ProseMirror-separator {
92855
- display: inline !important;
92856
- border: none !important;
92857
- margin: 0 !important;
92858
- }
92859
- .ProseMirror .sd-editor-tab {
92860
- display: inline-block;
92861
- vertical-align: text-bottom;
92862
- }
92863
- .ProseMirror u .sd-editor-tab:not(.pagination-inner .sd-editor-tab) {
92864
- white-space: pre;
92865
- border-bottom: 1px solid #000;
92866
- margin-bottom: 1.5px;
92867
- }
92868
- /*
92869
- Tables
92870
- https://github.com/ProseMirror/prosemirror-tables/blob/master/style/tables.css
92871
- https://github.com/ProseMirror/prosemirror-tables/blob/master/demo/index.html
92872
- */
92873
- .ProseMirror.resize-cursor {
92874
- cursor: ew-resize;
92875
- cursor: col-resize;
92876
- }
92877
- .ProseMirror .tableWrapper {
92878
- --table-border-width: 1px;
92879
- --offset: 2px;
92880
-
92881
- overflow-x: auto;
92882
- scrollbar-width: thin;
92883
- overflow: hidden;
92884
-
92885
- /*
92886
- The border width does not need to be multiplied by two,
92887
- for tables it works differently. */
92888
- width: calc(100% + (var(--table-border-width) + var(--offset)));
92889
- }
92890
- .ProseMirror table {
92891
- border-collapse: collapse;
92892
- border-spacing: 0;
92893
- table-layout: fixed;
92894
- margin: 0;
92895
- /* width: 100%; */
92896
- }
92897
- .ProseMirror tr {
92898
- position: relative;
92899
- }
92900
- .ProseMirror td,
92901
- .ProseMirror th {
92902
- min-width: 1em;
92903
- position: relative;
92904
- vertical-align: top;
92905
- box-sizing: border-box;
92906
- overflow-wrap: anywhere;
92907
- }
92908
- .ProseMirror th {
92909
- font-weight: bold;
92910
- text-align: left;
92911
- }
92912
- .ProseMirror table .column-resize-handle {
92913
- position: absolute;
92914
- right: -2px;
92915
- top: 0;
92916
- bottom: -2px; /* 0 */
92917
- width: 4px;
92918
- z-index: 20;
92919
- background-color: #adf;
92920
- pointer-events: none;
92921
- }
92922
- .ProseMirror table .selectedCell:after {
92923
- position: absolute;
92924
- content: '';
92925
- left: 0;
92926
- right: 0;
92927
- top: 0;
92928
- bottom: 0;
92929
- background: rgba(200, 200, 255, 0.4);
92930
- pointer-events: none;
92931
- z-index: 2;
92932
- }
92933
- /* Tables - end */
92934
- /* Track changes */
92935
- .ProseMirror .track-insert-dec,
92936
- .ProseMirror .track-delete-dec,
92937
- .ProseMirror .track-format-dec {
92938
- pointer-events: none;
92939
- }
92940
- .ProseMirror .track-insert-dec.hidden,
92941
- .ProseMirror .track-delete-dec.hidden {
92942
- display: none;
92943
- }
92944
- .ProseMirror .track-insert-dec.highlighted {
92945
- border-top: 1px dashed #00853d;
92946
- border-bottom: 1px dashed #00853d;
92947
- background-color: #399c7222;
92948
- }
92949
- .ProseMirror .track-delete-dec.highlighted {
92950
- border-top: 1px dashed #cb0e47;
92951
- border-bottom: 1px dashed #cb0e47;
92952
- background-color: #cb0e4722;
92953
- text-decoration: line-through;
92954
- text-decoration-thickness: 2px;
92955
- }
92956
- .ProseMirror .track-format-dec.highlighted {
92957
- border-bottom: 2px solid gold;
92958
- }
92959
- .ProseMirror .track-delete-widget {
92960
- visibility: hidden;
92961
- }
92962
- /* Track changes - end */
92963
- /* Collaboration cursors */
92964
- .ProseMirror > .ProseMirror-yjs-cursor:first-child {
92965
- margin-top: 16px;
92966
- }
92967
- .ProseMirror-yjs-cursor {
92968
- position: relative;
92969
- margin-left: -1px;
92970
- margin-right: -1px;
92971
- border-left: 1px solid black;
92972
- border-right: 1px solid black;
92973
- border-color: orange;
92974
- word-break: normal;
92975
- pointer-events: none;
92976
- }
92977
- .ProseMirror-yjs-cursor > div {
92978
- position: absolute;
92979
- top: -1.05em;
92980
- left: -1px;
92981
- font-size: 13px;
92982
- background-color: rgb(250, 129, 0);
92983
- font-family: serif;
92984
- font-style: normal;
92985
- font-weight: normal;
92986
- line-height: normal;
92987
- user-select: none;
92988
- color: white;
92989
- padding-left: 2px;
92990
- padding-right: 2px;
92991
- white-space: nowrap;
92992
- }
92993
- /* Collaboration cursors - end */
92994
- /* Image placeholder */
92995
- .ProseMirror placeholder {
92996
- display: inline;
92997
- border: 1px solid #ccc;
92998
- color: #ccc;
92999
- }
93000
- .ProseMirror placeholder:after {
93001
- content: '☁';
93002
- font-size: 200%;
93003
- line-height: 0.1;
93004
- font-weight: bold;
93005
- }
93006
- /* Gapcursor */
93007
- .ProseMirror-gapcursor {
93008
- display: none;
93009
- pointer-events: none;
93010
- position: absolute;
93011
- margin: 0;
93012
- }
93013
- .ProseMirror-gapcursor:after {
93014
- content: '';
93015
- display: block;
93016
- position: absolute;
93017
- top: -2px;
93018
- width: 20px;
93019
- border-top: 1px solid black;
93020
- animation: ProseMirror-cursor-blink 1.1s steps(2, start) infinite;
93021
- }
93022
- @keyframes ProseMirror-cursor-blink {
93023
- to {
93024
- visibility: hidden;
93025
- }
93026
- }
93027
- .ProseMirror-focused .ProseMirror-gapcursor {
93028
- display: block;
93029
- }
93030
- .ProseMirror div[data-type='contentBlock'] {
93031
- position: absolute;
93032
- outline: none;
93033
- user-select: none;
93034
- z-index: -1;
93035
- }
93036
- .ProseMirror div[data-horizontal-rule='true'] {
93037
- margin-top: auto;
93038
- align-self: flex-end;
93039
- }
93040
- .sd-editor-dropcap {
93041
- float: left;
93042
- display: flex;
93043
- align-items: baseline;
93044
- margin-top: -5px;
93045
- }
93046
- .ProseMirror-search-match {
93047
- background-color: #ffff0054;
93048
- }
93049
- .ProseMirror-active-search-match {
93050
- background-color: #ff6a0054;
93051
- }
93052
- .ProseMirror span.sd-custom-selection::selection {
93053
- background: transparent;
93054
- }
93055
- .sd-custom-selection {
93056
- background-color: #d9d9d9;
93057
- border-radius: 0.1em;
93058
- }
93059
- .superdoc-toolbar svg {
93060
- width: 100%;
93061
- height: 100%;
93062
- display: block;
93063
- fill: currentColor;
93064
- }
93065
- .superdoc-toolbar svg path {
93066
- stroke: currentColor;
93067
- }
93068
- .sd-editor-toolbar-dropdown .n-dropdown-option .dropdown-select-icon {
93069
- display: flex;
93070
- width: 12px;
93071
- height: 12px;
93072
- }
93073
- /* Custom toolbar styling */
93074
- /* AI button icon styling with gradient */
93075
- .toolbar-icon__icon--ai {
93076
- position: relative;
93077
- z-index: 1;
93078
- }
93079
- .toolbar-icon__icon--ai svg {
93080
- fill: transparent;
93081
- }
93082
- .toolbar-icon__icon--ai::before {
93083
- content: '';
93084
- position: absolute;
93085
- top: 0;
93086
- left: 0;
93087
- right: 0;
93088
- bottom: 0;
93089
- z-index: -1;
93090
- background: linear-gradient(
93091
- 270deg,
93092
- rgba(218, 215, 118, 0.5) -20%,
93093
- rgba(191, 100, 100, 1) 30%,
93094
- rgba(77, 82, 217, 1) 60%,
93095
- rgb(255, 219, 102) 150%
93096
- );
93097
- -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>")
93098
- center / contain no-repeat;
93099
- 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>")
93100
- center / contain no-repeat;
93101
- filter: brightness(1.2);
93102
- transition: filter 0.2s ease;
93103
- }
93104
- .toolbar-icon__icon--ai:hover::before {
93105
- filter: brightness(1.3);
93106
- }
93107
- /* AI text appear animation */
93108
- @keyframes aiTextAppear {
93109
- from {
93110
- opacity: 0;
93111
- transform: translateY(5px);
93112
- }
93113
- to {
93114
- opacity: 1;
93115
- transform: translateY(0);
93116
- }
93117
- }
93118
- .sd-ai-text-appear {
93119
- display: inline;
93120
- opacity: 0;
93121
- animation: aiTextAppear 0.7s ease-out forwards;
93122
- animation-fill-mode: both;
93123
- will-change: opacity, transform;
93124
- /* Ensure each mark is treated as a separate animation context */
93125
- contain: content;
93126
- }
93127
- .sd-ai-loader {
93128
- display: flex;
93129
- justify-content: flex-start;
93130
- }
93131
- .sd-ai-loader > img {
93132
- width: fit-content;
93133
- height: 40px;
93134
- }
93135
- @keyframes ai-pulse {
93136
- 0% {
93137
- background-color: rgba(99, 102, 241, 0.1);
93138
- }
93139
- 50% {
93140
- background-color: rgba(99, 102, 241, 0.375);
93141
- }
93142
- 100% {
93143
- background-color: rgba(99, 102, 241, 0.1);
93144
- }
93145
- }
93146
- .sd-ai-highlight-pulse {
93147
- animation: ai-pulse 1.5s ease-in-out infinite;
93148
- }
93149
- .sd-editor-auto-page-number,
93150
- .sd-editor-auto-total-pages {
93151
- transition: all 250ms ease;
93152
- border-bottom: 1px solid #9a9a9a;
93153
- cursor: not-allowed;
93154
- }
93155
- .sd-editor-auto-page-number:hover,
93156
- .sd-editor-auto-total-pages:hover {
93157
- border-bottom-color: #4f4f4f;
93158
- }
93159
- .sd-editor-auto-page-number-content {
93160
- pointer-events: none;
93161
- }
93162
- .ProseMirror.view-mode .sd-editor-auto-page-number,
93163
- .ProseMirror.view-mode .sd-editor-auto-total-pages {
93164
- border: none;
93165
- }
93166
- :root {
93167
- --sd-editor-separator-height: 18px;
93168
- }
93169
- .pagination-section-header {
93170
- cursor: default;
93171
- }
93172
- /* To not inherit styles from the wrapper paragraph */
93173
- .pagination-section-header p {
93174
- text-align: initial;
93175
- }
93176
- .pagination-section-footer {
93177
- position: relative;
93178
- width: 100%;
93179
- min-width: 100%;
93180
- display: flex;
93181
- flex-direction: column;
93182
- justify-content: flex-end;
93183
- cursor: default;
93184
- }
93185
- /* To not inherit styles from the wrapper paragraph */
93186
- .pagination-section-footer p {
93187
- text-align: initial;
93188
- }
93189
- .pagination-break-wrapper {
93190
- width: 100%;
93191
- margin: 0;
93192
- padding: 0;
93193
- cursor: default;
93194
- position: relative;
93195
- }
93196
- .pagination-separator {
93197
- position: relative;
93198
- display: block;
93199
- height: var(--sd-editor-separator-height);
93200
- min-height: var(--sd-editor-separator-height);
93201
- min-width: 100%;
93202
- width: 100%;
93203
- border-top: 1px solid #dbdbdb;
93204
- border-bottom: 1px solid #dbdbdb;
93205
- cursor: default;
93206
- }
93207
- .pagination-separator--table {
93208
- border: 0;
93209
- }
93210
- .pagination-separator-floating {
93211
- position: absolute;
93212
- height: var(--sd-editor-separator-height);
93213
- border-top: 1px solid #dbdbdb;
93214
- border-bottom: 1px solid #dbdbdb;
93215
- pointer-events: none;
93216
- }
93217
- .pagination-inner {
93218
- position: absolute;
93219
- top: 0;
93220
- left: 0;
93221
- display: flex;
93222
- flex-direction: column;
93223
- background-color: white;
93224
- }
93225
- /**
93226
- Workaround to display pagination in footer
93227
- on the right if it is inside shape textbox.
93228
- */
93229
- .pagination-section-footer .sd-editor-shape-container:has([data-id='auto-page-number'], [data-id='auto-total-pages']) {
93230
- margin-left: auto;
93231
- }
93232
- .pagination-section-header img[contenteditable='false'],
93233
- .pagination-section-footer img[contenteditable='false'] {
93234
- pointer-events: none;
93235
- }
93236
- .pagination-break-wrapper {
93237
- font-weight: normal;
93238
- font-style: normal;
93239
- color: initial;
93240
- }
93241
- /* TODO: This is going to be enabled again */
93242
- /* .pagination-section-header div[contenteditable="false"]:not([documentmode="viewing"]),
93243
- .pagination-section-footer div[contenteditable="false"]:not([documentmode="viewing"]) {
93244
- opacity: 0.5;
93245
- } */
93246
- .sd-editor-popover {
93247
- background-color: #fff;
93248
- border-radius: 8px;
93249
- -webkit-box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
93250
- -moz-box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
93251
- box-shadow: 0px 4px 12px 0px rgba(50, 50, 50, 0.15);
93252
- padding: 0;
93253
- width: auto;
93254
- height: auto;
93255
- font-size: 14px;
93256
- color: #333;
93257
- z-index: 1000;
93258
- }
93259
- .sd-editor-popover .popover-header {
93260
- font-weight: bold;
93261
- margin-bottom: 8px;
93262
- }
93263
- .tippy-box[data-theme~='sd-editor-popover'] {
93264
- background-color: #fff;
93265
- border-radius: 8px;
93266
- box-shadow: 0px 4px 8px rgba(0, 0, 0, 0.1);
93267
- border: none !important;
93268
- padding: 0 !important;
93269
- }
93270
- .tippy-box[data-theme~='sd-editor-popover'] .tippy-arrow {
93271
- color: #fff;
93272
- border: 1px solid #dbdbdb;
93273
- }
93274
- .tippy-box[data-theme~='sd-editor-popover'] .tippy-content {
93275
- padding: 0;
93276
- }
93277
- .sd-editor-placeholder::before {
93278
- content: attr(data-placeholder);
93279
- color: #aaa;
93280
- pointer-events: none;
93281
- display: block;
93282
- height: 0;
93283
- }
93284
- .sd-editor-mention {
93285
- background-color: #1355ff15;
93286
- color: #222;
93287
- font-weight: 400;
93288
- border-radius: 3px;
93289
- padding: 0 5px;
93290
- cursor: default;
93291
- display: inline-block;
93292
- box-sizing: border-box;
93293
- }
93294
- .sd-editor-comment-highlight {
93295
- transition: background-color 250ms ease;
93296
- }
93297
- .sd-editor-comment-highlight:hover {
93298
- background-color: #1354ff55;
93299
- }
93300
- .sd-editor-comment-highlight.sd-custom-selection {
93301
- background-color: #d6c0c6 !important;
93302
- }
93303
- .sd-editor-list-item-node-view {
93304
- position: relative;
93305
- width: 100%;
93306
- }
93307
- .sd-editor-list-item-numbering {
93308
- position: absolute;
93309
- top: 0;
93310
- white-space: nowrap;
93311
- user-select: none;
93312
- pointer-events: auto;
93313
- text-align: right;
93314
- z-index: 1;
93315
- }
93316
- .sd-editor-list-item-content-dom {
93317
- position: relative;
93318
- min-height: inherit;
93319
- word-wrap: break-word;
93320
- }
93321
- /* temporary fix */
93322
- .sd-editor-list-item-node-view .sd-custom-selection {
93323
- font-size: inherit !important;
93324
- }
93325
- /* Resize handles container */
93326
- .sd-editor-resize-container {
93327
- position: absolute;
93328
- pointer-events: none;
93329
- z-index: 11;
93330
- }
93331
- /* Resize handles */
93332
- .sd-editor-resize-handle {
93333
- position: absolute;
93334
- width: 12px;
93335
- height: 12px;
93336
- background-color: #4dabf7;
93337
- border: 2px solid #fff;
93338
- border-radius: 50%;
93339
- box-shadow: 0 0 4px rgba(0, 0, 0, 0.3);
93340
- pointer-events: auto;
93341
- transition: all 0.1s ease;
93342
- }
93343
- .sd-editor-resize-handle:hover {
93344
- background-color: #228be6;
93345
- transform: scale(1.1);
93346
- box-shadow: 0 0 6px rgba(0, 0, 0, 0.4);
93347
- }
93348
- /* Handle positions */
93349
- .sd-editor-resize-handle-nw {
93350
- top: -6px;
93351
- left: -6px;
93352
- cursor: nwse-resize;
93353
- }
93354
- .sd-editor-resize-handle-ne {
93355
- top: -6px;
93356
- right: -6px;
93357
- cursor: nesw-resize;
93358
- }
93359
- .sd-editor-resize-handle-sw {
93360
- bottom: -6px;
93361
- left: -6px;
93362
- cursor: nesw-resize;
93363
- }
93364
- .sd-editor-resize-handle-se {
93365
- bottom: -6px;
93366
- right: -6px;
93367
- cursor: nwse-resize;
93368
- }
93369
- /* Hide handles when editor loses focus */
93370
- .ProseMirror:not(.ProseMirror-focused) .sd-editor-resize-container {
93371
- display: none;
93372
- }
93373
- /* Smooth transitions for resizing */
93374
- .sd-editor-resizable-wrapper * {
93375
- transition: none;
93376
- }
93377
- .sd-editor-resizable-wrapper *:not([style*='width']) {
93378
- transition: all 0.2s ease;
93379
- }
93380
- /* Resize feedback indicator */
93381
- .sd-editor-resizable-wrapper::after {
93382
- content: 'Drag corners to resize';
93383
- position: absolute;
93384
- bottom: -25px;
93385
- left: 50%;
93386
- transform: translateX(-50%);
93387
- background-color: rgba(77, 171, 247, 0.9);
93388
- color: white;
93389
- font-size: 11px;
93390
- padding: 4px 8px;
93391
- border-radius: 4px;
93392
- white-space: nowrap;
93393
- pointer-events: none;
93394
- opacity: 0;
93395
- transition: opacity 0.3s ease;
93396
- z-index: 12;
93397
- }
93398
- .sd-editor-resizable-wrapper:hover::after {
93399
- opacity: 1;
93400
- }
93401
- .sd-document-section-block {
93402
- background-color: #fafafa;
93403
- border: 1px solid #ababab;
93404
- border-radius: 4px;
93405
- position: relative;
93406
- }
93407
- .sd-document-section-block-info {
93408
- position: absolute;
93409
- top: -19px;
93410
- left: -1px;
93411
- max-width: 100px;
93412
- min-width: 0;
93413
- height: 18px;
93414
- border: 1px solid #ababab;
93415
- border-bottom: none;
93416
- border-radius: 6px 6px 0 0;
93417
- padding: 0 8px;
93418
- align-items: center;
93419
- font-size: 10px;
93420
- display: none;
93421
- z-index: 100;
93422
- background-color: #fafafa;
93423
- }
93424
- .sd-document-section-block:hover {
93425
- border-radius: 0 4px 4px 4px;
93426
- }
93427
- .sd-document-section-block:hover .sd-document-section-block-info {
93428
- display: flex;
93429
- align-items: center;
93430
- }
93431
- .sd-document-section-block-info span {
93432
- max-width: 100%;
93433
- overflow: hidden;
93434
- white-space: nowrap;
93435
- text-overflow: ellipsis;
93436
- }
93437
- .sd-structured-content,
93438
- .sd-structured-content-block {
93439
- padding: 1px;
93440
- box-sizing: border-box;
93441
- border-radius: 4px;
93442
- border: 1px solid #629be7;
93443
- position: relative;
93444
- }
93445
- .sd-structured-content-draggable {
93446
- font-size: 10px;
93447
- align-items: center;
93448
- justify-content: center;
93449
- position: absolute;
93450
- left: 2px;
93451
- bottom: 100%;
93452
- width: calc(100% - 4px);
93453
- max-width: 110px;
93454
- min-width: 0;
93455
- height: 18px;
93456
- padding: 0 4px;
93457
- border: 1px solid #629be7;
93458
- border-bottom: none;
93459
- border-radius: 6px 6px 0 0;
93460
- background-color: #629be7dd;
93461
- z-index: 10;
93462
- cursor: grab;
93463
- display: none;
93464
- }
93465
- .sd-structured-content-draggable span {
93466
- max-width: 100%;
93467
- overflow: hidden;
93468
- white-space: nowrap;
93469
- text-overflow: ellipsis;
93470
- }
93471
- .sd-structured-content:hover .sd-structured-content-draggable,
93472
- .sd-structured-content-block:hover .sd-structured-content-draggable {
93473
- display: inline-flex;
93474
- }
93475
- `;
93476
- let cachedStyleSheet = null;
93477
- const defaultEditorStyles = editorStyles;
93478
- let shadowEditorStyles = defaultEditorStyles;
93479
- const supportsConstructableStylesheets = () => {
93480
- const DocumentCtor = (
93481
- /** @type {typeof Document | undefined} */
93482
- globalThis.Document
93483
- );
93484
- const CSSStyleSheetCtor = (
93485
- /** @type {typeof CSSStyleSheet | undefined} */
93486
- globalThis.CSSStyleSheet
93487
- );
93488
- if (!DocumentCtor || !CSSStyleSheetCtor) return false;
93489
- const documentPrototype = DocumentCtor.prototype;
93490
- const styleSheetPrototype = CSSStyleSheetCtor.prototype;
93491
- return !!documentPrototype && "adoptedStyleSheets" in documentPrototype && !!styleSheetPrototype && typeof styleSheetPrototype.replaceSync === "function";
93492
- };
93493
- const ensureStyleSheet = (root2) => {
93494
- if (!root2 || !shadowEditorStyles) return;
93495
- if (supportsConstructableStylesheets()) {
93496
- if (!cachedStyleSheet) {
93497
- const CSSStyleSheetCtor = (
93498
- /** @type {typeof CSSStyleSheet} */
93499
- globalThis.CSSStyleSheet
93500
- );
93501
- cachedStyleSheet = new CSSStyleSheetCtor();
93502
- cachedStyleSheet.replaceSync(shadowEditorStyles);
93503
- }
93504
- const sheets = Array.isArray(root2.adoptedStyleSheets) ? root2.adoptedStyleSheets : [];
93505
- if (!sheets.includes(cachedStyleSheet)) {
93506
- root2.adoptedStyleSheets = [...sheets, cachedStyleSheet];
93507
- }
93508
- return;
93509
- }
93510
- const doc2 = (
93511
- /** @type {Document | undefined} */
93512
- globalThis.document
93513
- );
93514
- if (!doc2 || typeof root2.querySelector !== "function") return;
93515
- if (!root2.querySelector("style[data-super-editor-styles]")) {
93516
- const styleEl = doc2.createElement("style");
93517
- styleEl.setAttribute("data-super-editor-styles", "");
93518
- styleEl.textContent = shadowEditorStyles;
93519
- root2.appendChild(styleEl);
93520
- }
93521
- };
93522
- const ensureEditorShadowRoot = (hostElement) => {
93523
- const doc2 = (
93524
- /** @type {Document | undefined} */
93525
- globalThis.document
93526
- );
93527
- if (!hostElement || !doc2 || typeof hostElement.attachShadow !== "function") {
93528
- return { root: null, mount: null };
93529
- }
93530
- const root2 = hostElement.shadowRoot || hostElement.attachShadow({ mode: "open" });
93531
- ensureStyleSheet(root2);
93532
- let mount2 = root2.querySelector(".sd-editor-mount");
93533
- if (!mount2) {
93534
- mount2 = doc2.createElement("div");
93535
- mount2.className = "sd-editor-mount";
93536
- root2.appendChild(mount2);
93537
- }
93538
- return { root: root2, mount: mount2 };
93539
- };
93540
92701
  const _hoisted_1$1$1 = { class: "super-editor-container" };
93541
92702
  const _hoisted_2$a = {
93542
92703
  key: 1,
@@ -93575,7 +92736,6 @@ on the right if it is inside shape textbox.
93575
92736
  const message = useMessage();
93576
92737
  const editorWrapper = ref$1(null);
93577
92738
  const editorElem = ref$1(null);
93578
- const editorMountPoint = shallowRef(null);
93579
92739
  const fileSource = ref$1(null);
93580
92740
  const popoverControls = reactive({
93581
92741
  visible: false,
@@ -93664,15 +92824,9 @@ on the right if it is inside shape textbox.
93664
92824
  return extensions;
93665
92825
  };
93666
92826
  const initEditor = async ({ content, media = {}, mediaFiles = {}, fonts = {} } = {}) => {
93667
- if (!editorElem.value) return;
93668
- const { mount: mount2 } = ensureEditorShadowRoot(editorElem.value);
93669
- editorMountPoint.value = mount2;
93670
- if (editorMountPoint.value) {
93671
- editorMountPoint.value.innerHTML = "";
93672
- }
93673
92827
  editor.value = new Editor({
93674
92828
  mode: "docx",
93675
- element: editorMountPoint.value || editorElem.value,
92829
+ element: editorElem.value,
93676
92830
  fileSource: fileSource.value,
93677
92831
  extensions: getExtensions(),
93678
92832
  externalExtensions: props.options.externalExtensions,
@@ -93719,12 +92873,11 @@ on the right if it is inside shape textbox.
93719
92873
  };
93720
92874
  const handleSuperEditorClick = (event) => {
93721
92875
  emit2("editor-click", { editor: editor.value });
93722
- const pmElement = editor.value?.view?.dom;
92876
+ let pmElement = editorElem.value?.querySelector(".ProseMirror");
93723
92877
  if (!pmElement || !editor.value) {
93724
92878
  return;
93725
92879
  }
93726
- const eventPath = event.composedPath?.() || [];
93727
- const isInsideEditor = eventPath.includes(pmElement);
92880
+ let isInsideEditor = pmElement.contains(event.target);
93728
92881
  if (!isInsideEditor && editor.value.isEditable) {
93729
92882
  editor.value.view?.focus();
93730
92883
  }
@@ -93737,9 +92890,7 @@ on the right if it is inside shape textbox.
93737
92890
  if (props.options?.suppressSkeletonLoader || !props.options?.collaborationProvider) editorReady.value = true;
93738
92891
  });
93739
92892
  const handleMarginClick = (event) => {
93740
- const pmElement = editor.value?.view?.dom;
93741
- const eventPath = event.composedPath?.() || [];
93742
- if (pmElement && eventPath.includes(pmElement)) return;
92893
+ if (event.target.classList.contains("ProseMirror")) return;
93743
92894
  onMarginClickCursorChange(event, editor.value);
93744
92895
  };
93745
92896
  const handleMarginChange = ({ side, value }) => {
@@ -93845,7 +92996,7 @@ on the right if it is inside shape textbox.
93845
92996
  };
93846
92997
  }
93847
92998
  };
93848
- const SuperEditor = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$1, [["__scopeId", "data-v-3d49a1a6"]]);
92999
+ const SuperEditor = /* @__PURE__ */ _export_sfc$1(_sfc_main$1$1, [["__scopeId", "data-v-0c36dd72"]]);
93849
93000
  const _hoisted_1$h = ["innerHTML"];
93850
93001
  const _sfc_main$i = {
93851
93002
  __name: "SuperInput",
@@ -93875,7 +93026,6 @@ on the right if it is inside shape textbox.
93875
93026
  const props = __props;
93876
93027
  const editor = shallowRef();
93877
93028
  const editorElem = ref$1(null);
93878
- const editorMountPoint = shallowRef(null);
93879
93029
  const isFocused = ref$1(false);
93880
93030
  const onTransaction = ({ editor: editor2, transaction }) => {
93881
93031
  const contents = editor2.getHTML();
@@ -93895,15 +93045,10 @@ on the right if it is inside shape textbox.
93895
93045
  props.options.onTransaction = onTransaction;
93896
93046
  props.options.onFocus = onFocus;
93897
93047
  props.options.onBlur = onBlur;
93898
- const { mount: mount2 } = ensureEditorShadowRoot(editorElem.value);
93899
- editorMountPoint.value = mount2;
93900
- if (editorMountPoint.value) {
93901
- editorMountPoint.value.innerHTML = "";
93902
- }
93903
93048
  editor.value = new Editor({
93904
93049
  mode: "text",
93905
93050
  content: document.getElementById("currentContent"),
93906
- element: editorMountPoint.value || editorElem.value,
93051
+ element: editorElem.value,
93907
93052
  extensions: getRichTextExtensions(),
93908
93053
  users: props.users,
93909
93054
  ...props.options
@@ -93942,35 +93087,77 @@ on the right if it is inside shape textbox.
93942
93087
  };
93943
93088
  }
93944
93089
  };
93945
- const SuperInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-23a4e794"]]);
93946
- const baseHandlers = {
93947
- ...runPropertyTranslators,
93090
+ const SuperInput = /* @__PURE__ */ _export_sfc$1(_sfc_main$i, [["__scopeId", "data-v-4d5cff52"]]);
93091
+ const additionalHandlers = Object.freeze({
93092
+ "mc:AlternateContent": translator,
93093
+ "w:b": translator$12,
93094
+ "w:bidiVisual": translator$F,
93095
+ "w:bookmarkEnd": translator$1,
93096
+ "w:bookmarkStart": translator$2,
93097
+ "w:bottom": translator$s,
93948
93098
  "w:br": translator$16,
93949
93099
  "w:cantSplit": translator$T,
93950
93100
  "w:cnfStyle": translator$S,
93101
+ "w:color": translator$_,
93951
93102
  "w:divId": translator$R,
93103
+ "w:drawing": translator$4,
93104
+ "w:end": translator$q,
93952
93105
  "w:gridAfter": translator$Q,
93953
93106
  "w:gridBefore": translator$P,
93107
+ "w:gridCol": translator$b,
93954
93108
  "w:hidden": translator$O,
93109
+ "w:highlight": translator$15,
93955
93110
  "w:hyperlink": translator$7,
93111
+ "w:i": translator$11,
93112
+ "w:insideH": translator$o,
93113
+ "w:insideV": translator$n,
93956
93114
  "w:jc": translator$N,
93115
+ "w:left": translator$m,
93957
93116
  "w:p": translator$13,
93958
93117
  "w:r": translator$U,
93118
+ "w:rFonts": translator$Z,
93959
93119
  "w:rPr": translator$V,
93120
+ "w:rStyle": translator$Y,
93121
+ "w:right": translator$k,
93960
93122
  "w:sdt": translator$3,
93123
+ "w:shd": translator$E,
93124
+ "w:start": translator$i,
93125
+ "w:strike": translator$$,
93126
+ "w:sz": translator$X,
93127
+ "w:szCs": translator$W,
93961
93128
  "w:tab": translator$14,
93129
+ "w:tbl": translator$9,
93130
+ "w:tblBorders": translator$e,
93131
+ "w:tblCaption": translator$D,
93132
+ "w:tblCellMar": translator$d,
93962
93133
  "w:tblCellSpacing": translator$M,
93134
+ "w:tblDescription": translator$C,
93135
+ "w:tblGrid": translator$a,
93963
93136
  "w:tblHeader": translator$L,
93137
+ "w:tblInd": translator$B,
93138
+ "w:tblLayout": translator$A,
93139
+ "w:tblLook": translator$z,
93140
+ "w:tblOverlap": translator$y,
93141
+ "w:tblPr": translator$c,
93142
+ "w:tblStyle": translator$x,
93143
+ "w:tblStyleColBandSize": translator$w,
93144
+ "w:tblStyleRowBandSize": translator$v,
93145
+ "w:tblW": translator$u,
93146
+ "w:tblpPr": translator$t,
93964
93147
  "w:tc": translator$8,
93148
+ "w:top": translator$g,
93965
93149
  "w:tr": translator$G,
93966
93150
  "w:trHeight": translator$K,
93967
93151
  "w:trPr": translator$H,
93152
+ "w:u": translator$10,
93968
93153
  "w:wAfter": translator$J,
93969
93154
  "w:wBefore": translator$I,
93970
93155
  "wp:anchor": translator$6,
93971
- "wp:inline": translator$5,
93972
- "w:bookmarkStart": translator$2,
93973
- "w:bookmarkEnd": translator$1
93156
+ "wp:inline": translator$5
93157
+ });
93158
+ const baseHandlers = {
93159
+ ...runPropertyTranslators,
93160
+ ...additionalHandlers
93974
93161
  };
93975
93162
  const registeredHandlers = Object.freeze(baseHandlers);
93976
93163
  const Extensions = {