@harbour-enterprises/superdoc 0.23.0-next.22 → 0.23.0-next.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
- const superdoc = require("./index-CzDXj8Kn.cjs");
4
+ const superdoc = require("./index-D1mJXW5e.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  import { m as defineComponent, B as h, O as Transition, $ as process$1, I as watchEffect, d as computed, r as ref, j as onMounted, W as onUnmounted, c as createElementBlock, o as openBlock, a as createBaseVNode, f as createCommentVNode, v as createVNode, x as unref } from "./vue-ZWZLQtoU.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-C4jqec_K.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-C3Ap3XRR.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-C_TNO7vs.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-BoA7QIJp.es.js";
2
2
  import { a0 as effectScope, r as ref, _ as markRaw, $ as process$1, a1 as toRaw, d as computed, a2 as isRef, a3 as isReactive, C as toRef, i as inject, p as getCurrentInstance, l as watch, x as unref, a4 as hasInjectionContext, M as reactive, s as nextTick, a5 as getCurrentScope, a6 as onScopeDispose, a7 as toRefs, g as global$1, J as shallowRef, N as readonly, j as onMounted, k as onBeforeUnmount, h as onBeforeMount, S as onActivated, q as onDeactivated, z as createTextVNode, F as Fragment, Q as Comment, m as defineComponent, D as provide, H as withDirectives, B as h, U as Teleport, R as renderSlot, V as isVNode, I as watchEffect, O as Transition, a8 as TransitionGroup, E as mergeProps, P as vShow, G as cloneVNode, T as Text, c as createElementBlock, o as openBlock, t as toDisplayString, v as createVNode, y as withCtx, a as createBaseVNode, A as normalizeStyle, f as createCommentVNode, u as createBlock, w as withModifiers, n as normalizeClass, a9 as resolveDirective, e as renderList, b as createApp, X as resolveDynamicComponent, aa as defineAsyncComponent } from "./vue-ZWZLQtoU.es.js";
3
3
  import { B as BlankDOCX } from "./blank-docx-iwdyG9RH.es.js";
4
4
  import { E as EventEmitter } from "./eventemitter3-BWEnUdTY.es.js";
@@ -17099,7 +17099,7 @@ const _sfc_main = {
17099
17099
  __name: "SuperDoc",
17100
17100
  emits: ["selection-update"],
17101
17101
  setup(__props, { emit: __emit }) {
17102
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-DN7WcPFE.es.js"));
17102
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CxwrANQt.es.js"));
17103
17103
  const superdocStore = useSuperdocStore();
17104
17104
  const commentsStore = useCommentsStore();
17105
17105
  const {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-BAutf_un.cjs");
2
+ const superEditor_es = require("./super-editor.es-CQI1Qv00.cjs");
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
4
  const blankDocx = require("./blank-docx-CPqX9RF5.cjs");
5
5
  const eventemitter3 = require("./eventemitter3-DkXkH2rT.cjs");
@@ -17116,7 +17116,7 @@ const _sfc_main = {
17116
17116
  __name: "SuperDoc",
17117
17117
  emits: ["selection-update"],
17118
17118
  setup(__props, { emit: __emit }) {
17119
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-C1OeVT5x.cjs")));
17119
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-C8AMc13r.cjs")));
17120
17120
  const superdocStore = useSuperdocStore();
17121
17121
  const commentsStore = useCommentsStore();
17122
17122
  const {
@@ -21475,11 +21475,11 @@ function stripHtmlStyles(html) {
21475
21475
  ];
21476
21476
  const cleanNode = (node) => {
21477
21477
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21478
+ if (node.nodeName.toLowerCase() === "span" && !node.children.length) {
21479
+ node.innerHTML = preserveSpaces(node.innerHTML);
21480
+ }
21478
21481
  [...node.attributes].forEach((attr) => {
21479
21482
  const name = attr.name.toLowerCase();
21480
- if (node.nodeName.toLowerCase() === "span") {
21481
- node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21482
- }
21483
21483
  if (name === "style") {
21484
21484
  const cleanedStyle = cleanStyle(attr.value);
21485
21485
  if (!cleanedStyle) {
@@ -21503,6 +21503,9 @@ function cleanStyle(style2) {
21503
21503
  const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21504
21504
  return textAlign ? `${textAlign};` : "";
21505
21505
  }
21506
+ function preserveSpaces(innerHtml) {
21507
+ return innerHtml.replace(/^\s+/, "&nbsp;").replace(/\s+$/, "&nbsp;");
21508
+ }
21506
21509
  function createDocFromHTML(content, schema, options = {}) {
21507
21510
  const { isImport = false } = options;
21508
21511
  let parsedContent;
@@ -71405,6 +71408,9 @@ const nodeResizer = (nodeNames = ["image"], editor) => {
71405
71408
  return oldState;
71406
71409
  }
71407
71410
  if (typeof document === "undefined" || editor.options.isHeadless) return oldState;
71411
+ if (editor.options.documentMode === "viewing" || !editor.isEditable) {
71412
+ return DecorationSet.empty;
71413
+ }
71408
71414
  const { selection } = newState;
71409
71415
  const node = selection.node;
71410
71416
  if (!node || !nodeNames.includes(node.type.name)) {
@@ -21492,11 +21492,11 @@ function stripHtmlStyles(html) {
21492
21492
  ];
21493
21493
  const cleanNode = (node) => {
21494
21494
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21495
+ if (node.nodeName.toLowerCase() === "span" && !node.children.length) {
21496
+ node.innerHTML = preserveSpaces(node.innerHTML);
21497
+ }
21495
21498
  [...node.attributes].forEach((attr) => {
21496
21499
  const name = attr.name.toLowerCase();
21497
- if (node.nodeName.toLowerCase() === "span") {
21498
- node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21499
- }
21500
21500
  if (name === "style") {
21501
21501
  const cleanedStyle = cleanStyle(attr.value);
21502
21502
  if (!cleanedStyle) {
@@ -21520,6 +21520,9 @@ function cleanStyle(style2) {
21520
21520
  const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21521
21521
  return textAlign ? `${textAlign};` : "";
21522
21522
  }
21523
+ function preserveSpaces(innerHtml) {
21524
+ return innerHtml.replace(/^\s+/, "&nbsp;").replace(/\s+$/, "&nbsp;");
21525
+ }
21523
21526
  function createDocFromHTML(content, schema, options = {}) {
21524
21527
  const { isImport = false } = options;
21525
21528
  let parsedContent;
@@ -71422,6 +71425,9 @@ const nodeResizer = (nodeNames = ["image"], editor) => {
71422
71425
  return oldState;
71423
71426
  }
71424
71427
  if (typeof document === "undefined" || editor.options.isHeadless) return oldState;
71428
+ if (editor.options.documentMode === "viewing" || !editor.isEditable) {
71429
+ return DecorationSet.empty;
71430
+ }
71425
71431
  const { selection } = newState;
71426
71432
  const node = selection.node;
71427
71433
  if (!node || !nodeNames.includes(node.type.name)) {
@@ -1,6 +1,6 @@
1
1
  import { ref, onMounted, onUnmounted, computed, createElementBlock, openBlock, withModifiers, createElementVNode, withDirectives, unref, vModelText, createCommentVNode, nextTick } from "vue";
2
- import { T as TextSelection } from "./chunks/converter-DRfV_TdS.js";
3
- import { _ as _export_sfc } from "./chunks/editor-CkWePiIz.js";
2
+ import { T as TextSelection } from "./chunks/converter-C6S8yfbc.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-Ck6BbTU7.js";
4
4
  const DEFAULT_API_ENDPOINT = "https://sd-dev-express-gateway-i6xtm.ondigitalocean.app/insights";
5
5
  const SYSTEM_PROMPT = "You are an expert copywriter and you are immersed in a document editor. You are to provide document related text responses based on the user prompts. Only write what is asked for. Do not provide explanations. Try to keep placeholders as short as possible. Do not output your prompt. Your instructions are: ";
6
6
  async function baseInsightsFetch(payload, options = {}) {
@@ -21473,11 +21473,11 @@ function stripHtmlStyles(html) {
21473
21473
  ];
21474
21474
  const cleanNode = (node) => {
21475
21475
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21476
+ if (node.nodeName.toLowerCase() === "span" && !node.children.length) {
21477
+ node.innerHTML = preserveSpaces(node.innerHTML);
21478
+ }
21476
21479
  [...node.attributes].forEach((attr) => {
21477
21480
  const name = attr.name.toLowerCase();
21478
- if (node.nodeName.toLowerCase() === "span") {
21479
- node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21480
- }
21481
21481
  if (name === "style") {
21482
21482
  const cleanedStyle = cleanStyle(attr.value);
21483
21483
  if (!cleanedStyle) {
@@ -21501,6 +21501,9 @@ function cleanStyle(style) {
21501
21501
  const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21502
21502
  return textAlign ? `${textAlign};` : "";
21503
21503
  }
21504
+ function preserveSpaces(innerHtml) {
21505
+ return innerHtml.replace(/^\s+/, "&nbsp;").replace(/\s+$/, "&nbsp;");
21506
+ }
21504
21507
  function createDocFromHTML(content, schema, options = {}) {
21505
21508
  const { isImport = false } = options;
21506
21509
  let parsedContent;
@@ -1,4 +1,4 @@
1
- import { p as process$1, aw as commonjsGlobal, B as Buffer, ax as getDefaultExportFromCjs, ay as getContentTypesFromXml, az as xmljs } from "./converter-DRfV_TdS.js";
1
+ import { p as process$1, aw as commonjsGlobal, B as Buffer, ax as getDefaultExportFromCjs, ay as getContentTypesFromXml, az as xmljs } from "./converter-C6S8yfbc.js";
2
2
  function commonjsRequire(path) {
3
3
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -12,9 +12,9 @@ var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "acce
12
12
  var _Attribute_static, getGlobalAttributes_fn, getNodeAndMarksAttributes_fn, _Schema_static, createNodesSchema_fn, createMarksSchema_fn, _events, _ExtensionService_instances, setupExtensions_fn, attachEditorEvents_fn, _editor, _stateValidators, _xmlValidators, _requiredNodeTypes, _requiredMarkTypes, _SuperValidator_instances, initializeValidators_fn, collectValidatorRequirements_fn, analyzeDocument_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, registerPluginByNameIfNotExists_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, initPagination_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ListItemNodeView_instances, init_fn3, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn;
13
13
  import * as Y from "yjs";
14
14
  import { UndoManager, Item as Item$1, ContentType, Text as Text$1, XmlElement, encodeStateAsUpdate } from "yjs";
15
- import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberigHelpers, ap as parseIndentElement, aq as combineIndents, ar as SelectionRange, as as Transform, at as isInTable$1, au as generateDocxRandomId, av as insertNewRelationship } from "./converter-DRfV_TdS.js";
15
+ import { P as PluginKey, a as Plugin, M as Mapping, N as NodeSelection, S as Selection, T as TextSelection, b as Slice, D as DOMSerializer, F as Fragment, c as DOMParser$1, d as Mark$1, e as dropPoint, A as AllSelection, p as process$1, B as Buffer2, f as callOrGet, g as getExtensionConfigField, h as getMarkType, i as getMarksFromSelection, j as getNodeType, k as getSchemaTypeNameByName, l as Schema$1, m as cleanSchemaItem, n as canSplit, o as defaultBlockAt$1, q as liftTarget, r as canJoin, s as joinPoint, t as replaceStep$1, R as ReplaceAroundStep$1, u as isTextSelection, v as getMarkRange, w as isMarkActive, x as isNodeActive, y as deleteProps, z as processContent, C as ReplaceStep, E as NodeRange, G as findWrapping, L as ListHelpers, H as findParentNode, I as isMacOS, J as isIOS, K as getSchemaTypeByName, O as inputRulesPlugin, Q as TrackDeleteMarkName, U as TrackInsertMarkName, V as v4, W as TrackFormatMarkName, X as comments_module_events, Y as findMark, Z as objectIncludes, _ as AddMarkStep, $ as RemoveMarkStep, a0 as twipsToLines, a1 as pixelsToTwips, a2 as helpers, a3 as posToDOMRect, a4 as CommandService, a5 as SuperConverter, a6 as createDocument, a7 as createDocFromMarkdown, a8 as createDocFromHTML, a9 as EditorState, aa as hasSomeParentWithClass, ab as isActive, ac as unflattenListsInHtml, ad as parseSizeUnit, ae as minMax, af as getLineHeightValueString, ag as updateDOMAttributes, ah as findChildren$5, ai as htmlHandler, aj as generateRandomSigned32BitIntStrId, ak as InputRule, al as kebabCase, am as findParentNodeClosestToPos, an as getListItemStyleDefinitions, ao as docxNumberigHelpers, ap as parseIndentElement, aq as combineIndents, ar as SelectionRange, as as Transform, at as isInTable$1, au as generateDocxRandomId, av as insertNewRelationship } from "./converter-C6S8yfbc.js";
16
16
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
17
- import { D as DocxZipper } from "./docx-zipper-BGbNO5Td.js";
17
+ import { D as DocxZipper } from "./docx-zipper-UtME8lZ1.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -34080,6 +34080,9 @@ const nodeResizer = (nodeNames = ["image"], editor) => {
34080
34080
  return oldState;
34081
34081
  }
34082
34082
  if (typeof document === "undefined" || editor.options.isHeadless) return oldState;
34083
+ if (editor.options.documentMode === "viewing" || !editor.isEditable) {
34084
+ return DecorationSet.empty;
34085
+ }
34083
34086
  const { selection } = newState;
34084
34087
  const node = selection.node;
34085
34088
  if (!node || !nodeNames.includes(node.type.name)) {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, createVNode, readonly, watch, onMounted, onBeforeUnmount, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, h, Teleport, toRef, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, renderList, withCtx } from "vue";
2
- import { p as process$1 } from "./converter-DRfV_TdS.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CkWePiIz.js";
2
+ import { p as process$1 } from "./converter-C6S8yfbc.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-Ck6BbTU7.js";
4
4
  const sanitizeNumber = (value, defaultNumber) => {
5
5
  let sanitized = value.replace(/[^0-9.]/g, "");
6
6
  sanitized = parseFloat(sanitized);
@@ -1,4 +1,4 @@
1
- import { a5 } from "./chunks/converter-DRfV_TdS.js";
1
+ import { a5 } from "./chunks/converter-C6S8yfbc.js";
2
2
  import "vue";
3
3
  export {
4
4
  a5 as SuperConverter
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-DRfV_TdS.js";
2
- import { D } from "./chunks/docx-zipper-BGbNO5Td.js";
1
+ import "./chunks/converter-C6S8yfbc.js";
2
+ import { D } from "./chunks/docx-zipper-UtME8lZ1.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-CkWePiIz.js";
2
- import "./chunks/converter-DRfV_TdS.js";
3
- import "./chunks/docx-zipper-BGbNO5Td.js";
1
+ import { E } from "./chunks/editor-Ck6BbTU7.js";
2
+ import "./chunks/converter-C6S8yfbc.js";
3
+ import "./chunks/docx-zipper-UtME8lZ1.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-BGbNO5Td.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-UtME8lZ1.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -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 { ax as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, aA as vClickOutside, H as findParentNode, aB as getActiveFormatting, at as isInTable, aC as readFromClipboard, aD as handleClipboardPaste, aE as getFileObject, aF as runPropertyTranslators, aG as commentRangeEndTranslator, aH as commentRangeStartTranslator, aI as translator, aJ as translator$1, aK as translator$2, aL as translator$3, aM as translator$4, aN as translator$5, aO as translator$6, aP as translator$7, aQ as translator$8, aR as translator$9, aS as translator$a, aT as translator$b, aU as translator$c, aV as translator$d, aW as translator$e, aX as translator$f, aY as translator$g, aZ as translator$h, a_ as translator$i, a$ as translator$j, b0 as translator$k, b1 as translator$l, b2 as translator$m, b3 as translator$n, b4 as translator$o, b5 as translator$p, b6 as translator$q, b7 as translator$r, b8 as translator$s, b9 as translator$t, ba as translator$u, bb as translator$v, bc as translator$w, bd as translator$x, be as translator$y, bf as translator$z, bg as translator$A, bh as translator$B, bi as translator$C, bj as translator$D, bk as translator$E, bl as translator$F, bm as translator$G, bn as translator$H, bo as translator$I, bp as translator$J, bq as translator$K, br as translator$L, bs as translator$M, bt as translator$N, bu as translator$O, bv as translator$P, bw as translator$Q, bx as translator$R, by as translator$S, bz as translator$T, bA as translator$U, bB as translator$V, bC as translator$W, bD as translator$X, bE as translator$Y, bF as translator$Z, bG as translator$_, bH as translator$$, bI as translator$10, bJ as translator$11, bK as translator$12, a as Plugin } from "./chunks/converter-DRfV_TdS.js";
13
- import { bL, a5, i, a2 } from "./chunks/converter-DRfV_TdS.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 shouldBypassContextMenu, 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-CkWePiIz.js";
15
- import { n, C, o, T, l, p, m } from "./chunks/editor-CkWePiIz.js";
12
+ import { ax as getDefaultExportFromCjs, V as v4, T as TextSelection$1, v as getMarkRange, aA as vClickOutside, H as findParentNode, aB as getActiveFormatting, at as isInTable, aC as readFromClipboard, aD as handleClipboardPaste, aE as getFileObject, aF as runPropertyTranslators, aG as commentRangeEndTranslator, aH as commentRangeStartTranslator, aI as translator, aJ as translator$1, aK as translator$2, aL as translator$3, aM as translator$4, aN as translator$5, aO as translator$6, aP as translator$7, aQ as translator$8, aR as translator$9, aS as translator$a, aT as translator$b, aU as translator$c, aV as translator$d, aW as translator$e, aX as translator$f, aY as translator$g, aZ as translator$h, a_ as translator$i, a$ as translator$j, b0 as translator$k, b1 as translator$l, b2 as translator$m, b3 as translator$n, b4 as translator$o, b5 as translator$p, b6 as translator$q, b7 as translator$r, b8 as translator$s, b9 as translator$t, ba as translator$u, bb as translator$v, bc as translator$w, bd as translator$x, be as translator$y, bf as translator$z, bg as translator$A, bh as translator$B, bi as translator$C, bj as translator$D, bk as translator$E, bl as translator$F, bm as translator$G, bn as translator$H, bo as translator$I, bp as translator$J, bq as translator$K, br as translator$L, bs as translator$M, bt as translator$N, bu as translator$O, bv as translator$P, bw as translator$Q, bx as translator$R, by as translator$S, bz as translator$T, bA as translator$U, bB as translator$V, bC as translator$W, bD as translator$X, bE as translator$Y, bF as translator$Z, bG as translator$_, bH as translator$$, bI as translator$10, bJ as translator$11, bK as translator$12, a as Plugin } from "./chunks/converter-C6S8yfbc.js";
13
+ import { bL, a5, i, a2 } from "./chunks/converter-C6S8yfbc.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 shouldBypassContextMenu, 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-Ck6BbTU7.js";
15
+ import { n, C, o, T, l, p, m } from "./chunks/editor-Ck6BbTU7.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-Ba-s6umZ.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-C6MV2CtV.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-BGbNO5Td.js";
19
+ import { D } from "./chunks/docx-zipper-UtME8lZ1.js";
20
20
  import { createZip } from "./file-zipper.es.js";
21
21
  var eventemitter3 = { exports: {} };
22
22
  var hasRequiredEventemitter3;
@@ -1,6 +1,6 @@
1
1
  import "vue";
2
- import { T } from "./chunks/toolbar-Ba-s6umZ.js";
3
- import "./chunks/editor-CkWePiIz.js";
2
+ import { T } from "./chunks/toolbar-C6MV2CtV.js";
3
+ import "./chunks/editor-Ck6BbTU7.js";
4
4
  export {
5
5
  T as default
6
6
  };
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-BAutf_un.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CQI1Qv00.cjs");
4
4
  require("./chunks/vue-DKMj1I9B.cjs");
5
5
  exports.AIWriter = superEditor_es.AIWriter;
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,4 +1,4 @@
1
- import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-C_TNO7vs.es.js";
1
+ import { A, a, _, C, D, E, b, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-BoA7QIJp.es.js";
2
2
  import "./chunks/vue-ZWZLQtoU.es.js";
3
3
  export {
4
4
  A as AIWriter,
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./chunks/super-editor.es-BAutf_un.cjs");
4
- const superdoc = require("./chunks/index-CzDXj8Kn.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CQI1Qv00.cjs");
4
+ const superdoc = require("./chunks/index-D1mJXW5e.cjs");
5
5
  require("./chunks/vue-DKMj1I9B.cjs");
6
6
  const blankDocx = require("./chunks/blank-docx-CPqX9RF5.cjs");
7
7
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-C_TNO7vs.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-C4jqec_K.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-BoA7QIJp.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-C3Ap3XRR.es.js";
3
3
  import "./chunks/vue-ZWZLQtoU.es.js";
4
4
  import { B } from "./chunks/blank-docx-iwdyG9RH.es.js";
5
5
  export {
@@ -29217,11 +29217,11 @@
29217
29217
  ];
29218
29218
  const cleanNode = (node) => {
29219
29219
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
29220
+ if (node.nodeName.toLowerCase() === "span" && !node.children.length) {
29221
+ node.innerHTML = preserveSpaces(node.innerHTML);
29222
+ }
29220
29223
  [...node.attributes].forEach((attr) => {
29221
29224
  const name = attr.name.toLowerCase();
29222
- if (node.nodeName.toLowerCase() === "span") {
29223
- node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
29224
- }
29225
29225
  if (name === "style") {
29226
29226
  const cleanedStyle = cleanStyle(attr.value);
29227
29227
  if (!cleanedStyle) {
@@ -29245,6 +29245,9 @@
29245
29245
  const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
29246
29246
  return textAlign ? `${textAlign};` : "";
29247
29247
  }
29248
+ function preserveSpaces(innerHtml) {
29249
+ return innerHtml.replace(/^\s+/, "&nbsp;").replace(/\s+$/, "&nbsp;");
29250
+ }
29248
29251
  function createDocFromHTML(content, schema, options = {}) {
29249
29252
  const { isImport = false } = options;
29250
29253
  let parsedContent;
@@ -79120,6 +79123,9 @@ Please report this to https://github.com/markedjs/marked.`, e) {
79120
79123
  return oldState;
79121
79124
  }
79122
79125
  if (typeof document === "undefined" || editor.options.isHeadless) return oldState;
79126
+ if (editor.options.documentMode === "viewing" || !editor.isEditable) {
79127
+ return DecorationSet.empty;
79128
+ }
79123
79129
  const { selection } = newState;
79124
79130
  const node = selection.node;
79125
79131
  if (!node || !nodeNames.includes(node.type.name)) {