@harbour-enterprises/superdoc 0.22.1 → 0.22.2

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-CBmOiHsj.es.js → PdfViewer-CT0qOjed.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-D2BPnEBG.cjs → PdfViewer-XodTY2w5.cjs} +1 -1
  3. package/dist/chunks/{index-B0CI50e4.cjs → index-DTaYMz5M.cjs} +3 -3
  4. package/dist/chunks/{index-BSDcfSFc.es.js → index-plmoIdRh.es.js} +3 -3
  5. package/dist/chunks/{super-editor.es-BW1T3N2-.es.js → super-editor.es-CFxDoDkU.es.js} +16 -3
  6. package/dist/chunks/{super-editor.es-DOOwW-Iv.cjs → super-editor.es-DTmc9_2i.cjs} +16 -3
  7. package/dist/super-editor/ai-writer.es.js +2 -2
  8. package/dist/super-editor/chunks/{converter-UuZxU-p8.js → converter-B-pFUsrk.js} +15 -2
  9. package/dist/super-editor/chunks/{docx-zipper-Bss48sB0.js → docx-zipper-Beyq1AoO.js} +1 -1
  10. package/dist/super-editor/chunks/{editor--v3HbUU0.js → editor-Blm4q9M9.js} +3 -3
  11. package/dist/super-editor/chunks/{toolbar-BeXlvdV8.js → toolbar-DEdtk_JK.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 +17 -4
  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-CXxsqYcP.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-BSDcfSFc.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-plmoIdRh.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-DWle4Cai.cjs");
4
- const superdoc = require("./index-B0CI50e4.cjs");
4
+ const superdoc = require("./index-DTaYMz5M.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-DOOwW-Iv.cjs");
2
+ const superEditor_es = require("./super-editor.es-DTmc9_2i.cjs");
3
3
  const vue = require("./vue-DWle4Cai.cjs");
4
4
  const jszip = require("./jszip-b7l8QkfH.cjs");
5
5
  const blankDocx = require("./blank-docx-CPqX9RF5.cjs");
@@ -17414,7 +17414,7 @@ const _sfc_main = {
17414
17414
  __name: "SuperDoc",
17415
17415
  emits: ["selection-update"],
17416
17416
  setup(__props, { emit: __emit }) {
17417
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-D2BPnEBG.cjs")));
17417
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-XodTY2w5.cjs")));
17418
17418
  const superdocStore = useSuperdocStore();
17419
17419
  const commentsStore = useCommentsStore();
17420
17420
  const {
@@ -18061,7 +18061,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
18061
18061
  this.config.colors = shuffleArray(this.config.colors);
18062
18062
  this.userColorMap = /* @__PURE__ */ new Map();
18063
18063
  this.colorIndex = 0;
18064
- this.version = "0.22.0";
18064
+ this.version = "0.22.1";
18065
18065
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18066
18066
  this.superdocId = config.superdocId || uuid.v4();
18067
18067
  this.colors = this.config.colors;
@@ -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-BW1T3N2-.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-CFxDoDkU.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-CXxsqYcP.es.js";
3
3
  import { B as Buffer$2 } from "./jszip-B8KIZSNe.es.js";
4
4
  import { B as BlankDOCX } from "./blank-docx-iwdyG9RH.es.js";
@@ -17397,7 +17397,7 @@ const _sfc_main = {
17397
17397
  __name: "SuperDoc",
17398
17398
  emits: ["selection-update"],
17399
17399
  setup(__props, { emit: __emit }) {
17400
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CBmOiHsj.es.js"));
17400
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CT0qOjed.es.js"));
17401
17401
  const superdocStore = useSuperdocStore();
17402
17402
  const commentsStore = useCommentsStore();
17403
17403
  const {
@@ -18044,7 +18044,7 @@ class SuperDoc extends EventEmitter {
18044
18044
  this.config.colors = shuffleArray(this.config.colors);
18045
18045
  this.userColorMap = /* @__PURE__ */ new Map();
18046
18046
  this.colorIndex = 0;
18047
- this.version = "0.22.0";
18047
+ this.version = "0.22.1";
18048
18048
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18049
18049
  this.superdocId = config.superdocId || v4();
18050
18050
  this.colors = this.config.colors;
@@ -21397,6 +21397,13 @@ function stripHtmlStyles(html) {
21397
21397
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21398
21398
  [...node.attributes].forEach((attr) => {
21399
21399
  const name = attr.name.toLowerCase();
21400
+ if (name === "style") {
21401
+ const cleanedStyle = cleanStyle(attr.value);
21402
+ if (!cleanedStyle) {
21403
+ node.removeAttribute(attr.name);
21404
+ } else node.setAttribute(attr.name, cleanedStyle);
21405
+ return;
21406
+ }
21400
21407
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21401
21408
  if (!shouldKeep) {
21402
21409
  node.removeAttribute(attr.name);
@@ -21407,6 +21414,12 @@ function stripHtmlStyles(html) {
21407
21414
  cleanNode(doc2.body);
21408
21415
  return doc2.body.innerHTML;
21409
21416
  }
21417
+ function cleanStyle(style2) {
21418
+ if (!style2) return "";
21419
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21420
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21421
+ return textAlign ? `${textAlign};` : "";
21422
+ }
21410
21423
  function createDocFromHTML(content, schema, options = {}) {
21411
21424
  const { isImport = false } = options;
21412
21425
  let parsedContent;
@@ -33491,7 +33504,7 @@ const _SuperConverter = class _SuperConverter2 {
33491
33504
  return;
33492
33505
  }
33493
33506
  }
33494
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.0") {
33507
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.1") {
33495
33508
  const customLocation = "docProps/custom.xml";
33496
33509
  if (!docx[customLocation]) {
33497
33510
  docx[customLocation] = generateCustomXml();
@@ -33980,7 +33993,7 @@ function storeSuperdocVersion(docx) {
33980
33993
  function generateCustomXml() {
33981
33994
  return DEFAULT_CUSTOM_XML;
33982
33995
  }
33983
- function generateSuperdocVersion(pid = 2, version2 = "0.22.0") {
33996
+ function generateSuperdocVersion(pid = 2, version2 = "0.22.1") {
33984
33997
  return {
33985
33998
  type: "element",
33986
33999
  name: "property",
@@ -51423,7 +51436,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
51423
51436
  * @returns {Object | void} Migration results
51424
51437
  */
51425
51438
  processCollaborationMigrations() {
51426
- console.debug("[checkVersionMigrations] Current editor version", "0.22.0");
51439
+ console.debug("[checkVersionMigrations] Current editor version", "0.22.1");
51427
51440
  if (!this.options.ydoc) return;
51428
51441
  const metaMap = this.options.ydoc.getMap("meta");
51429
51442
  let docVersion = metaMap.get("version");
@@ -21414,6 +21414,13 @@ function stripHtmlStyles(html) {
21414
21414
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
21415
21415
  [...node.attributes].forEach((attr) => {
21416
21416
  const name = attr.name.toLowerCase();
21417
+ if (name === "style") {
21418
+ const cleanedStyle = cleanStyle(attr.value);
21419
+ if (!cleanedStyle) {
21420
+ node.removeAttribute(attr.name);
21421
+ } else node.setAttribute(attr.name, cleanedStyle);
21422
+ return;
21423
+ }
21417
21424
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
21418
21425
  if (!shouldKeep) {
21419
21426
  node.removeAttribute(attr.name);
@@ -21424,6 +21431,12 @@ function stripHtmlStyles(html) {
21424
21431
  cleanNode(doc2.body);
21425
21432
  return doc2.body.innerHTML;
21426
21433
  }
21434
+ function cleanStyle(style2) {
21435
+ if (!style2) return "";
21436
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
21437
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
21438
+ return textAlign ? `${textAlign};` : "";
21439
+ }
21427
21440
  function createDocFromHTML(content, schema, options = {}) {
21428
21441
  const { isImport = false } = options;
21429
21442
  let parsedContent;
@@ -33508,7 +33521,7 @@ const _SuperConverter = class _SuperConverter2 {
33508
33521
  return;
33509
33522
  }
33510
33523
  }
33511
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.0") {
33524
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.1") {
33512
33525
  const customLocation = "docProps/custom.xml";
33513
33526
  if (!docx[customLocation]) {
33514
33527
  docx[customLocation] = generateCustomXml();
@@ -33997,7 +34010,7 @@ function storeSuperdocVersion(docx) {
33997
34010
  function generateCustomXml() {
33998
34011
  return DEFAULT_CUSTOM_XML;
33999
34012
  }
34000
- function generateSuperdocVersion(pid = 2, version2 = "0.22.0") {
34013
+ function generateSuperdocVersion(pid = 2, version2 = "0.22.1") {
34001
34014
  return {
34002
34015
  type: "element",
34003
34016
  name: "property",
@@ -51440,7 +51453,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
51440
51453
  * @returns {Object | void} Migration results
51441
51454
  */
51442
51455
  processCollaborationMigrations() {
51443
- console.debug("[checkVersionMigrations] Current editor version", "0.22.0");
51456
+ console.debug("[checkVersionMigrations] Current editor version", "0.22.1");
51444
51457
  if (!this.options.ydoc) return;
51445
51458
  const metaMap = this.options.ydoc.getMap("meta");
51446
51459
  let docVersion = metaMap.get("version");
@@ -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-UuZxU-p8.js";
3
- import { _ as _export_sfc } from "./chunks/editor--v3HbUU0.js";
2
+ import { T as TextSelection } from "./chunks/converter-B-pFUsrk.js";
3
+ import { _ as _export_sfc } from "./chunks/editor-Blm4q9M9.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 = {}) {
@@ -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(style) {
21416
+ if (!style) return "";
21417
+ const declarations = style.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;
@@ -33498,7 +33511,7 @@ const _SuperConverter = class _SuperConverter {
33498
33511
  return;
33499
33512
  }
33500
33513
  }
33501
- static updateDocumentVersion(docx = this.convertedXml, version = "0.22.0") {
33514
+ static updateDocumentVersion(docx = this.convertedXml, version = "0.22.1") {
33502
33515
  const customLocation = "docProps/custom.xml";
33503
33516
  if (!docx[customLocation]) {
33504
33517
  docx[customLocation] = generateCustomXml();
@@ -33990,7 +34003,7 @@ function storeSuperdocVersion(docx) {
33990
34003
  function generateCustomXml() {
33991
34004
  return DEFAULT_CUSTOM_XML;
33992
34005
  }
33993
- function generateSuperdocVersion(pid = 2, version = "0.22.0") {
34006
+ function generateSuperdocVersion(pid = 2, version = "0.22.1") {
33994
34007
  return {
33995
34008
  type: "element",
33996
34009
  name: "property",
@@ -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-UuZxU-p8.js";
1
+ import { p as process$1, aw as commonjsGlobal, B as Buffer, ax as getDefaultExportFromCjs, ay as getContentTypesFromXml, az as xmljs } from "./converter-B-pFUsrk.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-UuZxU-p8.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-B-pFUsrk.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-Bss48sB0.js";
17
+ import { D as DocxZipper } from "./docx-zipper-Beyq1AoO.js";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
20
20
  };
@@ -14876,7 +14876,7 @@ const _Editor = class _Editor extends EventEmitter {
14876
14876
  * @returns {Object | void} Migration results
14877
14877
  */
14878
14878
  processCollaborationMigrations() {
14879
- console.debug("[checkVersionMigrations] Current editor version", "0.22.0");
14879
+ console.debug("[checkVersionMigrations] Current editor version", "0.22.1");
14880
14880
  if (!this.options.ydoc) return;
14881
14881
  const metaMap = this.options.ydoc.getMap("meta");
14882
14882
  let docVersion = metaMap.get("version");
@@ -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-UuZxU-p8.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor--v3HbUU0.js";
2
+ import { p as process$1 } from "./converter-B-pFUsrk.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-Blm4q9M9.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-UuZxU-p8.js";
1
+ import { a5 } from "./chunks/converter-B-pFUsrk.js";
2
2
  import "vue";
3
3
  export {
4
4
  a5 as SuperConverter
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-UuZxU-p8.js";
2
- import { D } from "./chunks/docx-zipper-Bss48sB0.js";
1
+ import "./chunks/converter-B-pFUsrk.js";
2
+ import { D } from "./chunks/docx-zipper-Beyq1AoO.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor--v3HbUU0.js";
2
- import "./chunks/converter-UuZxU-p8.js";
3
- import "./chunks/docx-zipper-Bss48sB0.js";
1
+ import { E } from "./chunks/editor-Blm4q9M9.js";
2
+ import "./chunks/converter-B-pFUsrk.js";
3
+ import "./chunks/docx-zipper-Beyq1AoO.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-Bss48sB0.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-Beyq1AoO.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, a as Plugin } from "./chunks/converter-UuZxU-p8.js";
13
- import { bH, a5, i, a2 } from "./chunks/converter-UuZxU-p8.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--v3HbUU0.js";
15
- import { n, C, o, T, l, p, m } from "./chunks/editor--v3HbUU0.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, a as Plugin } from "./chunks/converter-B-pFUsrk.js";
13
+ import { bH, a5, i, a2 } from "./chunks/converter-B-pFUsrk.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-Blm4q9M9.js";
15
+ import { n, C, o, T, l, p, m } from "./chunks/editor-Blm4q9M9.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-BeXlvdV8.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-DEdtk_JK.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-Bss48sB0.js";
19
+ import { D } from "./chunks/docx-zipper-Beyq1AoO.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-BeXlvdV8.js";
3
- import "./chunks/editor--v3HbUU0.js";
2
+ import { T } from "./chunks/toolbar-DEdtk_JK.js";
3
+ import "./chunks/editor-Blm4q9M9.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-DOOwW-Iv.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DTmc9_2i.cjs");
4
4
  require("./chunks/vue-DWle4Cai.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-BW1T3N2-.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-CFxDoDkU.es.js";
2
2
  import "./chunks/vue-CXxsqYcP.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-DOOwW-Iv.cjs");
4
- const superdoc = require("./chunks/index-B0CI50e4.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-DTmc9_2i.cjs");
4
+ const superdoc = require("./chunks/index-DTaYMz5M.cjs");
5
5
  require("./chunks/vue-DWle4Cai.cjs");
6
6
  require("./chunks/jszip-b7l8QkfH.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-BW1T3N2-.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-BSDcfSFc.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-CFxDoDkU.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-plmoIdRh.es.js";
3
3
  import "./chunks/vue-CXxsqYcP.es.js";
4
4
  import "./chunks/jszip-B8KIZSNe.es.js";
5
5
  import { B } from "./chunks/blank-docx-iwdyG9RH.es.js";
@@ -29139,6 +29139,13 @@
29139
29139
  if (node.nodeType !== window.Node.ELEMENT_NODE) return;
29140
29140
  [...node.attributes].forEach((attr) => {
29141
29141
  const name = attr.name.toLowerCase();
29142
+ if (name === "style") {
29143
+ const cleanedStyle = cleanStyle(attr.value);
29144
+ if (!cleanedStyle) {
29145
+ node.removeAttribute(attr.name);
29146
+ } else node.setAttribute(attr.name, cleanedStyle);
29147
+ return;
29148
+ }
29142
29149
  const shouldKeep = SUPPORTED_ATTRS.includes(name) || name.startsWith("data-");
29143
29150
  if (!shouldKeep) {
29144
29151
  node.removeAttribute(attr.name);
@@ -29149,6 +29156,12 @@
29149
29156
  cleanNode(doc2.body);
29150
29157
  return doc2.body.innerHTML;
29151
29158
  }
29159
+ function cleanStyle(style2) {
29160
+ if (!style2) return "";
29161
+ const declarations = style2.split(";").map((s) => s.trim()).filter(Boolean);
29162
+ const textAlign = declarations.find((d2) => d2.startsWith("text-align"));
29163
+ return textAlign ? `${textAlign};` : "";
29164
+ }
29152
29165
  function createDocFromHTML(content, schema, options = {}) {
29153
29166
  const { isImport = false } = options;
29154
29167
  let parsedContent;
@@ -41206,7 +41219,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
41206
41219
  return;
41207
41220
  }
41208
41221
  }
41209
- static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.0") {
41222
+ static updateDocumentVersion(docx = this.convertedXml, version2 = "0.22.1") {
41210
41223
  const customLocation = "docProps/custom.xml";
41211
41224
  if (!docx[customLocation]) {
41212
41225
  docx[customLocation] = generateCustomXml();
@@ -41695,7 +41708,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
41695
41708
  function generateCustomXml() {
41696
41709
  return DEFAULT_CUSTOM_XML;
41697
41710
  }
41698
- function generateSuperdocVersion(pid = 2, version2 = "0.22.0") {
41711
+ function generateSuperdocVersion(pid = 2, version2 = "0.22.1") {
41699
41712
  return {
41700
41713
  type: "element",
41701
41714
  name: "property",
@@ -59138,7 +59151,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
59138
59151
  * @returns {Object | void} Migration results
59139
59152
  */
59140
59153
  processCollaborationMigrations() {
59141
- console.debug("[checkVersionMigrations] Current editor version", "0.22.0");
59154
+ console.debug("[checkVersionMigrations] Current editor version", "0.22.1");
59142
59155
  if (!this.options.ydoc) return;
59143
59156
  const metaMap = this.options.ydoc.getMap("meta");
59144
59157
  let docVersion = metaMap.get("version");
@@ -111085,7 +111098,7 @@ ${style2}
111085
111098
  this.config.colors = shuffleArray(this.config.colors);
111086
111099
  this.userColorMap = /* @__PURE__ */ new Map();
111087
111100
  this.colorIndex = 0;
111088
- this.version = "0.22.0";
111101
+ this.version = "0.22.1";
111089
111102
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
111090
111103
  this.superdocId = config2.superdocId || v4();
111091
111104
  this.colors = this.config.colors;