@harbour-enterprises/superdoc 0.23.0-next.11 → 0.23.0-next.13

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 (25) hide show
  1. package/dist/chunks/{PdfViewer-itEb8CY_.es.js → PdfViewer-CiUPaSCS.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-CxsRHFKK.cjs → PdfViewer-taj6o0Su.cjs} +1 -1
  3. package/dist/chunks/{index-DO0hDjEd.cjs → index-CJgpL3oy.cjs} +2 -2
  4. package/dist/chunks/{index-CTFsQkQh.es.js → index-pO-qEUpv.es.js} +2 -2
  5. package/dist/chunks/{super-editor.es-Ck_zDasU.cjs → super-editor.es-DgD6x4pJ.cjs} +16 -0
  6. package/dist/chunks/{super-editor.es-D2K5zQwY.es.js → super-editor.es-uGaIfCPq.es.js} +16 -0
  7. package/dist/super-editor/ai-writer.es.js +2 -2
  8. package/dist/super-editor/chunks/{converter-ClnqoStR.js → converter-dZVwV0aO.js} +16 -0
  9. package/dist/super-editor/chunks/{docx-zipper-DC28ucAi.js → docx-zipper-CFmUqrbd.js} +1 -1
  10. package/dist/super-editor/chunks/{editor-C3VH8Ia2.js → editor-DGgyi2Pr.js} +2 -2
  11. package/dist/super-editor/chunks/{toolbar-BG1F_1RK.js → toolbar-BAVLoFMD.js} +2 -2
  12. package/dist/super-editor/converter.es.js +1 -1
  13. package/dist/super-editor/docx-zipper.es.js +2 -2
  14. package/dist/super-editor/editor.es.js +3 -3
  15. package/dist/super-editor/file-zipper.es.js +1 -1
  16. package/dist/super-editor/src/core/helpers/htmlSanitizer.d.ts +1 -1
  17. package/dist/super-editor/super-editor.es.js +6 -6
  18. package/dist/super-editor/toolbar.es.js +2 -2
  19. package/dist/super-editor.cjs +1 -1
  20. package/dist/super-editor.es.js +1 -1
  21. package/dist/superdoc.cjs +2 -2
  22. package/dist/superdoc.es.js +2 -2
  23. package/dist/superdoc.umd.js +16 -0
  24. package/dist/superdoc.umd.js.map +1 -1
  25. package/package.json +1 -1
@@ -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-CTFsQkQh.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-pO-qEUpv.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -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-DO0hDjEd.cjs");
4
+ const superdoc = require("./index-CJgpL3oy.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-Ck_zDasU.cjs");
2
+ const superEditor_es = require("./super-editor.es-DgD6x4pJ.cjs");
3
3
  const vue = require("./vue-DKMj1I9B.cjs");
4
4
  const jszip = require("./jszip-B4LDL19y.cjs");
5
5
  const blankDocx = require("./blank-docx-CPqX9RF5.cjs");
@@ -17421,7 +17421,7 @@ const _sfc_main = {
17421
17421
  __name: "SuperDoc",
17422
17422
  emits: ["selection-update"],
17423
17423
  setup(__props, { emit: __emit }) {
17424
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-CxsRHFKK.cjs")));
17424
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-taj6o0Su.cjs")));
17425
17425
  const superdocStore = useSuperdocStore();
17426
17426
  const commentsStore = useCommentsStore();
17427
17427
  const {
@@ -1,4 +1,4 @@
1
- import { q as index$1, 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-D2K5zQwY.es.js";
1
+ import { q as index$1, 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-uGaIfCPq.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 Buffer$2 } from "./jszip-DAXEPCUv.es.js";
4
4
  import { B as BlankDOCX } from "./blank-docx-iwdyG9RH.es.js";
@@ -17404,7 +17404,7 @@ const _sfc_main = {
17404
17404
  __name: "SuperDoc",
17405
17405
  emits: ["selection-update"],
17406
17406
  setup(__props, { emit: __emit }) {
17407
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-itEb8CY_.es.js"));
17407
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CiUPaSCS.es.js"));
17408
17408
  const superdocStore = useSuperdocStore();
17409
17409
  const commentsStore = useCommentsStore();
17410
17410
  const {
@@ -21412,6 +21412,16 @@ function stripHtmlStyles(html) {
21412
21412
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21413
21413
  [...node.attributes].forEach((attr) => {
21414
21414
  const name = attr.name.toLowerCase();
21415
+ if (node.nodeName.toLowerCase() === "span") {
21416
+ node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21417
+ }
21418
+ if (name === "style") {
21419
+ const cleanedStyle = cleanStyle(attr.value);
21420
+ if (!cleanedStyle) {
21421
+ node.removeAttribute(attr.name);
21422
+ } else node.setAttribute(attr.name, cleanedStyle);
21423
+ return;
21424
+ }
21415
21425
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21416
21426
  if (!shouldKeep) {
21417
21427
  node.removeAttribute(attr.name);
@@ -21422,6 +21432,12 @@ function stripHtmlStyles(html) {
21422
21432
  cleanNode(doc2.body);
21423
21433
  return doc2.body.innerHTML;
21424
21434
  }
21435
+ function cleanStyle(style2) {
21436
+ if (!style2) return "";
21437
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21438
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21439
+ return textAlign ? `${textAlign};` : "";
21440
+ }
21425
21441
  function createDocFromHTML(content, schema, options = {}) {
21426
21442
  const { isImport = false } = options;
21427
21443
  let parsedContent;
@@ -21395,6 +21395,16 @@ function stripHtmlStyles(html) {
21395
21395
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21396
21396
  [...node.attributes].forEach((attr) => {
21397
21397
  const name = attr.name.toLowerCase();
21398
+ if (node.nodeName.toLowerCase() === "span") {
21399
+ node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21400
+ }
21401
+ if (name === "style") {
21402
+ const cleanedStyle = cleanStyle(attr.value);
21403
+ if (!cleanedStyle) {
21404
+ node.removeAttribute(attr.name);
21405
+ } else node.setAttribute(attr.name, cleanedStyle);
21406
+ return;
21407
+ }
21398
21408
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21399
21409
  if (!shouldKeep) {
21400
21410
  node.removeAttribute(attr.name);
@@ -21405,6 +21415,12 @@ function stripHtmlStyles(html) {
21405
21415
  cleanNode(doc2.body);
21406
21416
  return doc2.body.innerHTML;
21407
21417
  }
21418
+ function cleanStyle(style2) {
21419
+ if (!style2) return "";
21420
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21421
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21422
+ return textAlign ? `${textAlign};` : "";
21423
+ }
21408
21424
  function createDocFromHTML(content, schema, options = {}) {
21409
21425
  const { isImport = false } = options;
21410
21426
  let parsedContent;
@@ -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-ClnqoStR.js";
3
- import { _ as _export_sfc } from "./chunks/editor-C3VH8Ia2.js";
2
+ import { T as TextSelection } from "./chunks/converter-dZVwV0aO.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-DGgyi2Pr.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 = {}) {
@@ -21393,6 +21393,16 @@ function stripHtmlStyles(html) {
21393
21393
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21394
21394
  [...node.attributes].forEach((attr) => {
21395
21395
  const name = attr.name.toLowerCase();
21396
+ if (node.nodeName.toLowerCase() === "span") {
21397
+ node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
21398
+ }
21399
+ if (name === "style") {
21400
+ const cleanedStyle = cleanStyle(attr.value);
21401
+ if (!cleanedStyle) {
21402
+ node.removeAttribute(attr.name);
21403
+ } else node.setAttribute(attr.name, cleanedStyle);
21404
+ return;
21405
+ }
21396
21406
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21397
21407
  if (!shouldKeep) {
21398
21408
  node.removeAttribute(attr.name);
@@ -21403,6 +21413,12 @@ function stripHtmlStyles(html) {
21403
21413
  cleanNode(doc2.body);
21404
21414
  return doc2.body.innerHTML;
21405
21415
  }
21416
+ function cleanStyle(style) {
21417
+ if (!style) return "";
21418
+ const declarations = style.split(";").map((s) => s.trim()).filter(Boolean);
21419
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21420
+ return textAlign ? `${textAlign};` : "";
21421
+ }
21406
21422
  function createDocFromHTML(content, schema, options = {}) {
21407
21423
  const { isImport = false } = options;
21408
21424
  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-ClnqoStR.js";
1
+ import { p as process$1, aw as commonjsGlobal, B as Buffer, ax as getDefaultExportFromCjs, ay as getContentTypesFromXml, az as xmljs } from "./converter-dZVwV0aO.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-ClnqoStR.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-dZVwV0aO.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-DC28ucAi.js";
17
+ import { D as DocxZipper } from "./docx-zipper-CFmUqrbd.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -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-ClnqoStR.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-C3VH8Ia2.js";
2
+ import { p as process$1 } from "./converter-dZVwV0aO.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-DGgyi2Pr.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-ClnqoStR.js";
1
+ import { a5 } from "./chunks/converter-dZVwV0aO.js";
2
2
  import "vue";
3
3
  export {
4
4
  a5 as SuperConverter
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-ClnqoStR.js";
2
- import { D } from "./chunks/docx-zipper-DC28ucAi.js";
1
+ import "./chunks/converter-dZVwV0aO.js";
2
+ import { D } from "./chunks/docx-zipper-CFmUqrbd.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-C3VH8Ia2.js";
2
- import "./chunks/converter-ClnqoStR.js";
3
- import "./chunks/docx-zipper-DC28ucAi.js";
1
+ import { E } from "./chunks/editor-DGgyi2Pr.js";
2
+ import "./chunks/converter-dZVwV0aO.js";
3
+ import "./chunks/docx-zipper-CFmUqrbd.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-DC28ucAi.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-CFmUqrbd.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Strip all inline styles and non-semantic attributes from HTML
2
+ * Strip all inline styles(but alignment) and non-semantic attributes from HTML
3
3
  * Preserves structure while removing presentation
4
4
  *
5
5
  * @param {string} html - Raw HTML string
@@ -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 translator, aH as translator$1, aI as translator$2, aJ as translator$3, aK as translator$4, aL as translator$5, aM as translator$6, aN as translator$7, aO as translator$8, aP as translator$9, aQ as translator$a, aR as translator$b, aS as translator$c, aT as translator$d, aU as translator$e, aV as translator$f, aW as translator$g, aX as translator$h, aY as translator$i, aZ as translator$j, a_ as translator$k, a$ as translator$l, b0 as translator$m, b1 as translator$n, b2 as translator$o, b3 as translator$p, b4 as translator$q, b5 as translator$r, b6 as translator$s, b7 as translator$t, b8 as translator$u, b9 as translator$v, ba as translator$w, bb as translator$x, bc as translator$y, bd as translator$z, be as translator$A, bf as translator$B, bg as translator$C, bh as translator$D, bi as translator$E, bj as translator$F, bk as translator$G, bl as translator$H, bm as translator$I, bn as translator$J, bo as translator$K, bp as translator$L, bq as translator$M, br as translator$N, bs as translator$O, bt as translator$P, bu as translator$Q, bv as translator$R, bw as translator$S, bx as translator$T, by as translator$U, bz as translator$V, bA as translator$W, bB as translator$X, bC as translator$Y, bD as translator$Z, bE as translator$_, bF as translator$$, bG as translator$10, bH as translator$11, bI as translator$12, a as Plugin } from "./chunks/converter-ClnqoStR.js";
13
- import { bJ, a5, i, a2 } from "./chunks/converter-ClnqoStR.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-C3VH8Ia2.js";
15
- import { n, C, o, T, l, p, m } from "./chunks/editor-C3VH8Ia2.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 translator, aH as translator$1, aI as translator$2, aJ as translator$3, aK as translator$4, aL as translator$5, aM as translator$6, aN as translator$7, aO as translator$8, aP as translator$9, aQ as translator$a, aR as translator$b, aS as translator$c, aT as translator$d, aU as translator$e, aV as translator$f, aW as translator$g, aX as translator$h, aY as translator$i, aZ as translator$j, a_ as translator$k, a$ as translator$l, b0 as translator$m, b1 as translator$n, b2 as translator$o, b3 as translator$p, b4 as translator$q, b5 as translator$r, b6 as translator$s, b7 as translator$t, b8 as translator$u, b9 as translator$v, ba as translator$w, bb as translator$x, bc as translator$y, bd as translator$z, be as translator$A, bf as translator$B, bg as translator$C, bh as translator$D, bi as translator$E, bj as translator$F, bk as translator$G, bl as translator$H, bm as translator$I, bn as translator$J, bo as translator$K, bp as translator$L, bq as translator$M, br as translator$N, bs as translator$O, bt as translator$P, bu as translator$Q, bv as translator$R, bw as translator$S, bx as translator$T, by as translator$U, bz as translator$V, bA as translator$W, bB as translator$X, bC as translator$Y, bD as translator$Z, bE as translator$_, bF as translator$$, bG as translator$10, bH as translator$11, bI as translator$12, a as Plugin } from "./chunks/converter-dZVwV0aO.js";
13
+ import { bJ, a5, i, a2 } from "./chunks/converter-dZVwV0aO.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-DGgyi2Pr.js";
15
+ import { n, C, o, T, l, p, m } from "./chunks/editor-DGgyi2Pr.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-BG1F_1RK.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-BAVLoFMD.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-DC28ucAi.js";
19
+ import { D } from "./chunks/docx-zipper-CFmUqrbd.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-BG1F_1RK.js";
3
- import "./chunks/editor-C3VH8Ia2.js";
2
+ import { T } from "./chunks/toolbar-BAVLoFMD.js";
3
+ import "./chunks/editor-DGgyi2Pr.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-Ck_zDasU.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DgD6x4pJ.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-D2K5zQwY.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-uGaIfCPq.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-Ck_zDasU.cjs");
4
- const superdoc = require("./chunks/index-DO0hDjEd.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DgD6x4pJ.cjs");
4
+ const superdoc = require("./chunks/index-CJgpL3oy.cjs");
5
5
  require("./chunks/vue-DKMj1I9B.cjs");
6
6
  require("./chunks/jszip-B4LDL19y.cjs");
7
7
  const blankDocx = require("./chunks/blank-docx-CPqX9RF5.cjs");
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-D2K5zQwY.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-CTFsQkQh.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-uGaIfCPq.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-pO-qEUpv.es.js";
3
3
  import "./chunks/vue-ZWZLQtoU.es.js";
4
4
  import "./chunks/jszip-DAXEPCUv.es.js";
5
5
  import { B } from "./chunks/blank-docx-iwdyG9RH.es.js";
@@ -29137,6 +29137,16 @@
29137
29137
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
29138
29138
  [...node.attributes].forEach((attr) => {
29139
29139
  const name = attr.name.toLowerCase();
29140
+ if (node.nodeName.toLowerCase() === "span") {
29141
+ node.innerHTML = node.innerHTML.replace(/(\S) (<\/span>)/g, "$1&nbsp;$2");
29142
+ }
29143
+ if (name === "style") {
29144
+ const cleanedStyle = cleanStyle(attr.value);
29145
+ if (!cleanedStyle) {
29146
+ node.removeAttribute(attr.name);
29147
+ } else node.setAttribute(attr.name, cleanedStyle);
29148
+ return;
29149
+ }
29140
29150
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
29141
29151
  if (!shouldKeep) {
29142
29152
  node.removeAttribute(attr.name);
@@ -29147,6 +29157,12 @@
29147
29157
  cleanNode(doc2.body);
29148
29158
  return doc2.body.innerHTML;
29149
29159
  }
29160
+ function cleanStyle(style2) {
29161
+ if (!style2) return "";
29162
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
29163
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
29164
+ return textAlign ? `${textAlign};` : "";
29165
+ }
29150
29166
  function createDocFromHTML(content, schema, options = {}) {
29151
29167
  const { isImport = false } = options;
29152
29168
  let parsedContent;