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

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-Def79WX8.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-CxsRHFKK.cjs → PdfViewer-UfEzsjC9.cjs} +1 -1
  3. package/dist/chunks/{index-CTFsQkQh.es.js → index-B7bpeaOD.es.js} +2 -2
  4. package/dist/chunks/{index-DO0hDjEd.cjs → index-fDlOzGBY.cjs} +2 -2
  5. package/dist/chunks/{super-editor.es-D2K5zQwY.es.js → super-editor.es-GQtMEyYE.es.js} +13 -0
  6. package/dist/chunks/{super-editor.es-Ck_zDasU.cjs → super-editor.es-MZFhQtfd.cjs} +13 -0
  7. package/dist/super-editor/ai-writer.es.js +2 -2
  8. package/dist/super-editor/chunks/{converter-ClnqoStR.js → converter-Cz6CE2gy.js} +13 -0
  9. package/dist/super-editor/chunks/{docx-zipper-DC28ucAi.js → docx-zipper-Cd2gZDQ5.js} +1 -1
  10. package/dist/super-editor/chunks/{editor-C3VH8Ia2.js → editor-CdXDzlMp.js} +2 -2
  11. package/dist/super-editor/chunks/{toolbar-BG1F_1RK.js → toolbar-Xfq2Jgfs.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 +13 -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-B7bpeaOD.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-fDlOzGBY.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -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-GQtMEyYE.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-Def79WX8.es.js"));
17408
17408
  const superdocStore = useSuperdocStore();
17409
17409
  const commentsStore = useCommentsStore();
17410
17410
  const {
@@ -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-MZFhQtfd.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-UfEzsjC9.cjs")));
17425
17425
  const superdocStore = useSuperdocStore();
17426
17426
  const commentsStore = useCommentsStore();
17427
17427
  const {
@@ -21395,6 +21395,13 @@ 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 (name === "style") {
21399
+ const cleanedStyle = cleanStyle(attr.value);
21400
+ if (!cleanedStyle) {
21401
+ node.removeAttribute(attr.name);
21402
+ } else node.setAttribute(attr.name, cleanedStyle);
21403
+ return;
21404
+ }
21398
21405
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21399
21406
  if (!shouldKeep) {
21400
21407
  node.removeAttribute(attr.name);
@@ -21405,6 +21412,12 @@ function stripHtmlStyles(html) {
21405
21412
  cleanNode(doc2.body);
21406
21413
  return doc2.body.innerHTML;
21407
21414
  }
21415
+ function cleanStyle(style2) {
21416
+ if (!style2) return "";
21417
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21418
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21419
+ return textAlign ? `${textAlign};` : "";
21420
+ }
21408
21421
  function createDocFromHTML(content, schema, options = {}) {
21409
21422
  const { isImport = false } = options;
21410
21423
  let parsedContent;
@@ -21412,6 +21412,13 @@ 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 (name === "style") {
21416
+ const cleanedStyle = cleanStyle(attr.value);
21417
+ if (!cleanedStyle) {
21418
+ node.removeAttribute(attr.name);
21419
+ } else node.setAttribute(attr.name, cleanedStyle);
21420
+ return;
21421
+ }
21415
21422
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21416
21423
  if (!shouldKeep) {
21417
21424
  node.removeAttribute(attr.name);
@@ -21422,6 +21429,12 @@ function stripHtmlStyles(html) {
21422
21429
  cleanNode(doc2.body);
21423
21430
  return doc2.body.innerHTML;
21424
21431
  }
21432
+ function cleanStyle(style2) {
21433
+ if (!style2) return "";
21434
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21435
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21436
+ return textAlign ? `${textAlign};` : "";
21437
+ }
21425
21438
  function createDocFromHTML(content, schema, options = {}) {
21426
21439
  const { isImport = false } = options;
21427
21440
  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-Cz6CE2gy.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-CdXDzlMp.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,13 @@ 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 (name === "style") {
21397
+ const cleanedStyle = cleanStyle(attr.value);
21398
+ if (!cleanedStyle) {
21399
+ node.removeAttribute(attr.name);
21400
+ } else node.setAttribute(attr.name, cleanedStyle);
21401
+ return;
21402
+ }
21396
21403
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21397
21404
  if (!shouldKeep) {
21398
21405
  node.removeAttribute(attr.name);
@@ -21403,6 +21410,12 @@ function stripHtmlStyles(html) {
21403
21410
  cleanNode(doc2.body);
21404
21411
  return doc2.body.innerHTML;
21405
21412
  }
21413
+ function cleanStyle(style) {
21414
+ if (!style) return "";
21415
+ const declarations = style.split(";").map((s) => s.trim()).filter(Boolean);
21416
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21417
+ return textAlign ? `${textAlign};` : "";
21418
+ }
21406
21419
  function createDocFromHTML(content, schema, options = {}) {
21407
21420
  const { isImport = false } = options;
21408
21421
  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-Cz6CE2gy.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-Cz6CE2gy.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-Cd2gZDQ5.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-Cz6CE2gy.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CdXDzlMp.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-Cz6CE2gy.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-Cz6CE2gy.js";
2
+ import { D } from "./chunks/docx-zipper-Cd2gZDQ5.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-CdXDzlMp.js";
2
+ import "./chunks/converter-Cz6CE2gy.js";
3
+ import "./chunks/docx-zipper-Cd2gZDQ5.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-Cd2gZDQ5.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-Cz6CE2gy.js";
13
+ import { bJ, a5, i, a2 } from "./chunks/converter-Cz6CE2gy.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-CdXDzlMp.js";
15
+ import { n, C, o, T, l, p, m } from "./chunks/editor-CdXDzlMp.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-Xfq2Jgfs.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-Cd2gZDQ5.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-Xfq2Jgfs.js";
3
+ import "./chunks/editor-CdXDzlMp.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-MZFhQtfd.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-GQtMEyYE.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-MZFhQtfd.cjs");
4
+ const superdoc = require("./chunks/index-fDlOzGBY.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-GQtMEyYE.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-B7bpeaOD.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,13 @@
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 (name === "style") {
29141
+ const cleanedStyle = cleanStyle(attr.value);
29142
+ if (!cleanedStyle) {
29143
+ node.removeAttribute(attr.name);
29144
+ } else node.setAttribute(attr.name, cleanedStyle);
29145
+ return;
29146
+ }
29140
29147
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
29141
29148
  if (!shouldKeep) {
29142
29149
  node.removeAttribute(attr.name);
@@ -29147,6 +29154,12 @@
29147
29154
  cleanNode(doc2.body);
29148
29155
  return doc2.body.innerHTML;
29149
29156
  }
29157
+ function cleanStyle(style2) {
29158
+ if (!style2) return "";
29159
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
29160
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
29161
+ return textAlign ? `${textAlign};` : "";
29162
+ }
29150
29163
  function createDocFromHTML(content, schema, options = {}) {
29151
29164
  const { isImport = false } = options;
29152
29165
  let parsedContent;