@harbour-enterprises/superdoc 1.0.0-beta.92 → 1.0.0-beta.93

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 (27) hide show
  1. package/dist/chunks/{PdfViewer-CrMwuKcn.es.js → PdfViewer-DDlUqq8s.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-BYKB8fT_.cjs → PdfViewer-DbMCgjlc.cjs} +1 -1
  3. package/dist/chunks/{index-BZloH4nq.cjs → index-CIyFPdjr.cjs} +3 -3
  4. package/dist/chunks/{index-CqnVFwjL-zbanjw1O.cjs → index-Cyp2JwAE-BDSzsvVr.cjs} +1 -1
  5. package/dist/chunks/{index-CqnVFwjL-DJT5AqWq.es.js → index-Cyp2JwAE-C4V2XscX.es.js} +1 -1
  6. package/dist/chunks/{index-CUUqzJ4M.es.js → index-D1G3HZnw.es.js} +3 -3
  7. package/dist/chunks/{super-editor.es-ALp2ApyE.es.js → super-editor.es-BLW0IRfr.es.js} +174 -6
  8. package/dist/chunks/{super-editor.es-DvpDTsC4.cjs → super-editor.es-CZ_EMz2h.cjs} +174 -6
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-CpOA_SSA.js → converter-CvPb50HR.js} +1 -1
  11. package/dist/super-editor/chunks/{docx-zipper-zilXqAq6.js → docx-zipper-BWUuyGDp.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-DvF9Gp0h.js → editor-CsWOz21v.js} +175 -7
  13. package/dist/super-editor/chunks/{index-CqnVFwjL.js → index-Cyp2JwAE.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-BVOTlKFf.js → toolbar-DjWypz4_.js} +2 -2
  15. package/dist/super-editor/converter.es.js +1 -1
  16. package/dist/super-editor/docx-zipper.es.js +2 -2
  17. package/dist/super-editor/editor.es.js +3 -3
  18. package/dist/super-editor/file-zipper.es.js +1 -1
  19. package/dist/super-editor/super-editor.es.js +6 -6
  20. package/dist/super-editor/toolbar.es.js +2 -2
  21. package/dist/super-editor.cjs +1 -1
  22. package/dist/super-editor.es.js +1 -1
  23. package/dist/superdoc.cjs +2 -2
  24. package/dist/superdoc.es.js +2 -2
  25. package/dist/superdoc.umd.js +176 -8
  26. package/dist/superdoc.umd.js.map +1 -1
  27. package/package.json +1 -1
@@ -12,8 +12,8 @@ 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, dispatchWithFallback_fn, _commandService, _Editor_instances, initContainerElement_fn, init_fn, initRichText_fn, onFocus_fn, checkHeadless_fn, registerCopyHandler_fn, insertNewFileData_fn, getPluginKeyName_fn, createExtensionService_fn, createCommandService_fn, createConverter_fn, initMedia_fn, initFonts_fn, checkFonts_fn, determineUnsupportedFonts_fn, createSchema_fn, generatePmData_fn, createView_fn, onCollaborationReady_fn, initComments_fn, dispatchTransaction_fn, handleNodeSelection_fn, prepareDocumentForImport_fn, prepareDocumentForExport_fn, endCollaboration_fn, validateDocumentInit_fn, validateDocumentExport_fn, initDevTools_fn, _map, _editor2, _descriptors, _collections, _editorEntries, _maxCachedEditors, _editorAccessOrder, _pendingCreations, _cacheHits, _cacheMisses, _evictions, _HeaderFooterEditorManager_instances, hasConverter_fn, extractCollections_fn, collectDescriptors_fn, teardownMissingEditors_fn, teardownEditors_fn, createEditor_fn, createEditorContainer_fn, registerConverterEditor_fn, unregisterConverterEditor_fn, updateAccessOrder_fn, enforceCacheSizeLimit_fn, _manager, _mediaFiles, _blockCache, _HeaderFooterLayoutAdapter_instances, getBlocks_fn, getConverterContext_fn, _selectionOverlay, _activeEditorHost, _activeDecorationContainer, _activeRegion, _borderLine, _dimmingOverlay, _EditorOverlayManager_instances, findDecorationContainer_fn, ensureEditorHost_fn, positionEditorHost_fn, hideDimmingOverlay_fn, showHeaderFooterBorder_fn, hideHeaderFooterBorder_fn, _instances, _options, _editor3, _visibleHost, _viewportHost, _painterHost, _selectionOverlay2, _hiddenHost, _layoutOptions, _layoutState, _domPainter, _dragHandlerCleanup, _layoutError, _layoutErrorState, _errorBanner, _errorBannerMessage, _telemetryEmitter, _renderScheduled, _pendingDocChange, _isRerendering, _selectionUpdateScheduled, _remoteCursorUpdateScheduled, _rafHandle, _editorListeners, _sectionMetadata, _documentMode, _inputBridge, _trackedChangesMode, _trackedChangesEnabled, _trackedChangesOverrides, _headerFooterManager, _headerFooterAdapter, _headerFooterIdentifier, _multiSectionIdentifier, _headerLayoutResults, _footerLayoutResults, _headerLayoutsByRId, _footerLayoutsByRId, _headerDecorationProvider, _footerDecorationProvider, _headerFooterManagerCleanups, _headerRegions, _footerRegions, _session, _activeHeaderFooterEditor, _overlayManager, _hoverOverlay, _hoverTooltip, _modeBanner, _ariaLiveRegion, _hoverRegion, _clickCount, _lastClickTime, _lastClickPosition, _lastSelectedImageBlockId, _dragAnchor, _isDragging, _dragExtensionMode, _cellAnchor, _cellDragMode, _remoteCursorState, _remoteCursorElements, _remoteCursorDirty, _remoteCursorOverlay, _localSelectionLayer, _awarenessCleanup, _scrollCleanup, _scrollTimeout, _lastRemoteCursorRenderTime, _remoteCursorThrottleTimeout, _PresentationEditor_instances, collectCommentPositions_fn, aggregateLayoutBounds_fn, safeCleanup_fn, setupEditorListeners_fn, setupCollaborationCursors_fn, updateLocalAwarenessCursor_fn, normalizeAwarenessStates_fn, getFallbackColor_fn, getValidatedColor_fn, scheduleRemoteCursorUpdate_fn, scheduleRemoteCursorReRender_fn, updateRemoteCursors_fn, renderRemoteCursors_fn, renderRemoteCaret_fn, renderRemoteCursorLabel_fn, renderRemoteSelection_fn, setupPointerHandlers_fn, setupDragHandlers_fn, focusEditorAfterImageSelection_fn, setupInputBridge_fn, initHeaderFooterRegistry_fn, _handlePointerDown, getFirstTextPosition_fn, registerPointerClick_fn, getCellPosFromTableHit_fn, getTablePosFromHit_fn, shouldUseCellSelection_fn, setCellAnchor_fn, clearCellAnchor_fn, hitTestTable_fn, selectWordAt_fn, selectParagraphAt_fn, calculateExtendedSelection_fn, isWordCharacter_fn, _handlePointerMove, _handlePointerLeave, _handlePointerUp, _handleDragOver, _handleDrop, _handleDoubleClick, _handleKeyDown, focusHeaderFooterShortcut_fn, scheduleRerender_fn, flushRerenderQueue_fn, rerender_fn, ensurePainter_fn, scheduleSelectionUpdate_fn, updateSelection_fn, resolveLayoutOptions_fn, buildHeaderFooterInput_fn, computeHeaderFooterConstraints_fn, layoutPerRIdHeaderFooters_fn, updateDecorationProviders_fn, createDecorationProvider_fn, findHeaderFooterPageForPageNumber_fn, computeDecorationBox_fn, computeExpectedSectionType_fn, rebuildHeaderFooterRegions_fn, hitTestHeaderFooterRegion_fn, pointInRegion_fn, activateHeaderFooterRegion_fn, enterHeaderFooterMode_fn, exitHeaderFooterMode_fn, getActiveDomTarget_fn, emitHeaderFooterModeChanged_fn, emitHeaderFooterEditingContext_fn, updateAwarenessSession_fn, updateModeBanner_fn, announce_fn, validateHeaderFooterEditPermission_fn, emitHeaderFooterEditBlocked_fn, resolveDescriptorForRegion_fn, createDefaultHeaderFooter_fn, getPageElement_fn, scrollPageIntoView_fn, computeAnchorMap_fn, waitForPageMount_fn, getBodyPageHeight_fn, getHeaderFooterPageHeight_fn, applyDomCorrectionToRects_fn, renderCellSelectionOverlay_fn, renderSelectionRects_fn, renderHoverRegion_fn, clearHoverRegion_fn, renderCaretOverlay_fn, getHeaderFooterContext_fn, computeHeaderFooterSelectionRects_fn, syncTrackedChangesPreferences_fn, deriveTrackedChangesMode_fn, deriveTrackedChangesEnabled_fn, getTrackChangesPluginState_fn, computeDefaultLayoutDefaults_fn, parseColumns_fn, inchesToPx_fn, applyZoom_fn, createLayoutMetrics_fn, getPageOffsetX_fn, convertPageLocalToOverlayCoords_fn, computeDomCaretPageLocal_fn, normalizeClientPoint_fn, computeCaretLayoutRectGeometry_fn, computeCaretLayoutRect_fn, computeCaretLayoutRectFromDOM_fn, computeTableCaretLayoutRect_fn, findLineContainingPos_fn, lineHeightBeforeIndex_fn, getCurrentPageIndex_fn, findRegionForPage_fn, handleLayoutError_fn, decorateError_fn, showLayoutErrorBanner_fn, dismissErrorBanner_fn, createHiddenHost_fn, _windowRoot, _layoutSurfaces, _getTargetDom, _isEditable, _onTargetChanged, _listeners, _currentTarget, _destroyed, _useWindowFallback, _PresentationInputBridge_instances, addListener_fn, dispatchToTarget_fn, forwardKeyboardEvent_fn, forwardTextEvent_fn, forwardCompositionEvent_fn, forwardContextMenu_fn, isEventOnActiveTarget_fn, shouldSkipSurface_fn, isInLayoutSurface_fn, getListenerTargets_fn, isPlainCharacterKey_fn, _DocumentSectionView_instances, init_fn2, addToolTip_fn, _ParagraphNodeView_instances, checkShouldUpdate_fn, updateHTMLAttributes_fn, updateDOMStyles_fn, resolveNeighborParagraphProperties_fn, updateListStyles_fn, initList_fn, checkIsList_fn, createMarker_fn, createSeparator_fn, calculateTabSeparatorStyle_fn, calculateMarkerStyle_fn, removeList_fn, getParagraphContext_fn, scheduleAnimation_fn, cancelScheduledAnimation_fn, _FieldAnnotationView_instances, createAnnotation_fn, _AutoPageNumberNodeView_instances, renderDom_fn, scheduleUpdateNodeStyle_fn, _VectorShapeView_instances, ensureParentPositioned_fn, _ShapeGroupView_instances, ensureParentPositioned_fn2;
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 htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName$1, $ as TrackInsertMarkName$1, a0 as v4, a1 as TrackFormatMarkName$1, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as SelectionRange, ak as Transform, al as resolveParagraphProperties, am as _getReferencedTableStyles, an as parseSizeUnit, ao as minMax, ap as updateDOMAttributes, aq as findChildren$5, ar as generateRandomSigned32BitIntStrId, as as decodeRPrFromMarks, at as calculateResolvedParagraphProperties, au as resolveRunProperties, av as encodeCSSFromPPr, aw as twipsToPixels$2, ax as encodeCSSFromRPr, ay as generateOrderedListIndex, az as docxNumberingHelpers, aA as InputRule, aB as convertSizeToCSS, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-CpOA_SSA.js";
16
- import { D as DocxZipper } from "./docx-zipper-zilXqAq6.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 htmlHandler, E as ReplaceStep, G as twipsToInches, H as inchesToTwips, I as ptToTwips, J as getResolvedParagraphProperties, K as linesToTwips, L as changeListLevel, O as findParentNode, Q as isList, U as updateNumberingProperties, V as ListHelpers, W as isMacOS, X as isIOS, Y as getSchemaTypeByName, Z as inputRulesPlugin, _ as TrackDeleteMarkName$1, $ as TrackInsertMarkName$1, a0 as v4, a1 as TrackFormatMarkName$1, a2 as comments_module_events, a3 as findMark, a4 as objectIncludes, a5 as AddMarkStep, a6 as RemoveMarkStep, a7 as twipsToLines, a8 as pixelsToTwips, a9 as helpers, aa as posToDOMRect, ab as CommandService, ac as SuperConverter, ad as createDocument, ae as createDocFromMarkdown, af as createDocFromHTML, ag as EditorState, ah as isActive, ai as unflattenListsInHtml, aj as SelectionRange, ak as Transform, al as resolveParagraphProperties, am as _getReferencedTableStyles, an as parseSizeUnit, ao as minMax, ap as updateDOMAttributes, aq as findChildren$5, ar as generateRandomSigned32BitIntStrId, as as decodeRPrFromMarks, at as calculateResolvedParagraphProperties, au as resolveRunProperties, av as encodeCSSFromPPr, aw as twipsToPixels$2, ax as encodeCSSFromRPr, ay as generateOrderedListIndex, az as docxNumberingHelpers, aA as InputRule, aB as convertSizeToCSS, aC as findParentNodeClosestToPos, aD as isInTable$1, aE as generateDocxRandomId, aF as insertNewRelationship, aG as inchesToPixels, aH as kebabCase, aI as getUnderlineCssString } from "./converter-CvPb50HR.js";
16
+ import { D as DocxZipper } from "./docx-zipper-BWUuyGDp.js";
17
17
  import { ref, computed, createElementBlock, openBlock, withModifiers, Fragment as Fragment$1, renderList, normalizeClass, createCommentVNode, toDisplayString, createElementVNode, createApp } from "vue";
18
18
  var GOOD_LEAF_SIZE = 200;
19
19
  var RopeSequence = function RopeSequence2() {
@@ -13940,7 +13940,7 @@ const isHeadless = (editor) => {
13940
13940
  const shouldSkipNodeView = (editor) => {
13941
13941
  return isHeadless(editor);
13942
13942
  };
13943
- const summaryVersion = "1.0.0-beta.92";
13943
+ const summaryVersion = "1.0.0-beta.93";
13944
13944
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
13945
13945
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
13946
13946
  function mapAttributes(attrs) {
@@ -14732,7 +14732,7 @@ const _Editor = class _Editor extends EventEmitter {
14732
14732
  { default: remarkStringify },
14733
14733
  { default: remarkGfm }
14734
14734
  ] = await Promise.all([
14735
- import("./index-CqnVFwjL.js"),
14735
+ import("./index-Cyp2JwAE.js"),
14736
14736
  import("./index-DRCvimau.js"),
14737
14737
  import("./index-C_x_N6Uh.js"),
14738
14738
  import("./index-D_sWOSiG.js"),
@@ -14937,7 +14937,7 @@ const _Editor = class _Editor extends EventEmitter {
14937
14937
  * Process collaboration migrations
14938
14938
  */
14939
14939
  processCollaborationMigrations() {
14940
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.92");
14940
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.93");
14941
14941
  if (!this.options.ydoc) return;
14942
14942
  const metaMap = this.options.ydoc.getMap("meta");
14943
14943
  let docVersion = metaMap.get("version");
@@ -31905,7 +31905,26 @@ const deriveBlockVersion = (block) => {
31905
31905
  textRun.token ?? ""
31906
31906
  ].join(",");
31907
31907
  }).join("|");
31908
- return markerVersion ? `${markerVersion}|${runsVersion}` : runsVersion;
31908
+ const attrs = block.attrs;
31909
+ const paragraphAttrsVersion = attrs ? [
31910
+ attrs.alignment ?? "",
31911
+ attrs.spacing?.before ?? "",
31912
+ attrs.spacing?.after ?? "",
31913
+ attrs.spacing?.line ?? "",
31914
+ attrs.spacing?.lineRule ?? "",
31915
+ attrs.indent?.left ?? "",
31916
+ attrs.indent?.right ?? "",
31917
+ attrs.indent?.firstLine ?? "",
31918
+ attrs.indent?.hanging ?? "",
31919
+ attrs.borders ? JSON.stringify(attrs.borders) : "",
31920
+ attrs.shading?.fill ?? "",
31921
+ attrs.shading?.color ?? "",
31922
+ attrs.direction ?? "",
31923
+ attrs.rtl ? "1" : "",
31924
+ attrs.tabs?.length ? JSON.stringify(attrs.tabs) : ""
31925
+ ].join(":") : "";
31926
+ const parts = [markerVersion, runsVersion, paragraphAttrsVersion].filter(Boolean);
31927
+ return parts.join("|");
31909
31928
  }
31910
31929
  if (block.kind === "list") {
31911
31930
  return block.items.map((item) => `${item.id}:${item.marker.text}:${deriveBlockVersion(item.paragraph)}`).join("|");
@@ -35652,6 +35671,33 @@ const MAX_CACHE_SIZE$1 = 1e4;
35652
35671
  const BYTES_PER_ENTRY_ESTIMATE = 5e3;
35653
35672
  const NORMALIZED_WHITESPACE = /\s+/g;
35654
35673
  const normalizeText = (text) => text.replace(NORMALIZED_WHITESPACE, " ");
35674
+ const hashParagraphBorder = (border) => {
35675
+ const parts = [];
35676
+ if (border.style !== void 0) parts.push(`s:${border.style}`);
35677
+ if (border.width !== void 0) parts.push(`w:${border.width}`);
35678
+ if (border.color !== void 0) parts.push(`c:${border.color}`);
35679
+ if (border.space !== void 0) parts.push(`sp:${border.space}`);
35680
+ return parts.join(",");
35681
+ };
35682
+ const hashParagraphBorders = (borders) => {
35683
+ const parts = [];
35684
+ if (borders.top) parts.push(`t:[${hashParagraphBorder(borders.top)}]`);
35685
+ if (borders.right) parts.push(`r:[${hashParagraphBorder(borders.right)}]`);
35686
+ if (borders.bottom) parts.push(`b:[${hashParagraphBorder(borders.bottom)}]`);
35687
+ if (borders.left) parts.push(`l:[${hashParagraphBorder(borders.left)}]`);
35688
+ return parts.join(";");
35689
+ };
35690
+ const hashParagraphFrame = (frame) => {
35691
+ const parts = [];
35692
+ if (frame.wrap !== void 0) parts.push(`w:${frame.wrap}`);
35693
+ if (frame.x !== void 0) parts.push(`x:${frame.x}`);
35694
+ if (frame.y !== void 0) parts.push(`y:${frame.y}`);
35695
+ if (frame.xAlign !== void 0) parts.push(`xa:${frame.xAlign}`);
35696
+ if (frame.yAlign !== void 0) parts.push(`ya:${frame.yAlign}`);
35697
+ if (frame.hAnchor !== void 0) parts.push(`ha:${frame.hAnchor}`);
35698
+ if (frame.vAnchor !== void 0) parts.push(`va:${frame.vAnchor}`);
35699
+ return parts.join(",");
35700
+ };
35655
35701
  const hashRuns = (block) => {
35656
35702
  if (block.kind === "table") {
35657
35703
  const tableBlock = block;
@@ -35747,7 +35793,59 @@ const hashRuns = (block) => {
35747
35793
  numberingKey = `|num:${np.numId ?? ""}:${np.ilvl ?? 0}:${markerTextKey}`;
35748
35794
  }
35749
35795
  }
35750
- return `${trackedMode}:${trackedEnabled ? "on" : "off"}|${runsHash}${numberingKey}`;
35796
+ let paragraphAttrsKey = "";
35797
+ if (block.attrs) {
35798
+ const attrs = block.attrs;
35799
+ const parts = [];
35800
+ if (attrs.alignment) parts.push(`al:${attrs.alignment}`);
35801
+ if (attrs.spacing) {
35802
+ const s2 = attrs.spacing;
35803
+ if (s2.before !== void 0) parts.push(`sb:${s2.before}`);
35804
+ if (s2.after !== void 0) parts.push(`sa:${s2.after}`);
35805
+ if (s2.line !== void 0) parts.push(`sl:${s2.line}`);
35806
+ if (s2.lineRule) parts.push(`sr:${s2.lineRule}`);
35807
+ }
35808
+ if (attrs.indent) {
35809
+ const ind = attrs.indent;
35810
+ if (ind.left !== void 0) parts.push(`il:${ind.left}`);
35811
+ if (ind.right !== void 0) parts.push(`ir:${ind.right}`);
35812
+ if (ind.firstLine !== void 0) parts.push(`if:${ind.firstLine}`);
35813
+ if (ind.hanging !== void 0) parts.push(`ih:${ind.hanging}`);
35814
+ }
35815
+ if (attrs.borders) {
35816
+ parts.push(`br:${hashParagraphBorders(attrs.borders)}`);
35817
+ }
35818
+ if (attrs.shading) {
35819
+ const sh = attrs.shading;
35820
+ if (sh.fill) parts.push(`shf:${sh.fill}`);
35821
+ if (sh.color) parts.push(`shc:${sh.color}`);
35822
+ }
35823
+ if (attrs.tabs && attrs.tabs.length > 0) {
35824
+ const tabsHash = attrs.tabs.map((t) => `${t.val ?? ""}:${t.pos ?? ""}:${t.leader ?? ""}`).join(",");
35825
+ parts.push(`tb:${tabsHash}`);
35826
+ }
35827
+ if (attrs.direction) parts.push(`dir:${attrs.direction}`);
35828
+ if (attrs.rtl) parts.push("rtl");
35829
+ if (attrs.keepNext) parts.push("kn");
35830
+ if (attrs.keepLines) parts.push("kl");
35831
+ if (attrs.floatAlignment) parts.push(`fa:${attrs.floatAlignment}`);
35832
+ if (attrs.contextualSpacing) parts.push("cs");
35833
+ if (attrs.suppressFirstLineIndent) parts.push("sfi");
35834
+ if (attrs.dropCap) parts.push(`dc:${attrs.dropCap}`);
35835
+ if (attrs.dropCapDescriptor) {
35836
+ const dcd = attrs.dropCapDescriptor;
35837
+ parts.push(`dcd:${dcd.mode ?? ""}:${dcd.lines ?? ""}`);
35838
+ }
35839
+ if (attrs.frame) {
35840
+ parts.push(`fr:${hashParagraphFrame(attrs.frame)}`);
35841
+ }
35842
+ if (attrs.tabIntervalTwips !== void 0) parts.push(`ti:${attrs.tabIntervalTwips}`);
35843
+ if (attrs.decimalSeparator) parts.push(`ds:${attrs.decimalSeparator}`);
35844
+ if (parts.length > 0) {
35845
+ paragraphAttrsKey = `|pa:${parts.join(":")}`;
35846
+ }
35847
+ }
35848
+ return `${trackedMode}:${trackedEnabled ? "on" : "off"}|${runsHash}${numberingKey}${paragraphAttrsKey}`;
35751
35849
  };
35752
35850
  const createStats = () => ({
35753
35851
  hits: 0,
@@ -36632,6 +36730,75 @@ const getTrackedChangeKey = (run) => {
36632
36730
  }
36633
36731
  return "";
36634
36732
  };
36733
+ const paragraphSpacingEqual = (a, b) => {
36734
+ if (a === b) return true;
36735
+ if (!a || !b) return !a && !b;
36736
+ return a.before === b.before && a.after === b.after && a.line === b.line && a.lineRule === b.lineRule && a.beforeAutospacing === b.beforeAutospacing && a.afterAutospacing === b.afterAutospacing;
36737
+ };
36738
+ const paragraphIndentEqual = (a, b) => {
36739
+ if (a === b) return true;
36740
+ if (!a || !b) return !a && !b;
36741
+ return a.left === b.left && a.right === b.right && a.firstLine === b.firstLine && a.hanging === b.hanging;
36742
+ };
36743
+ const paragraphBorderEqual = (a, b) => {
36744
+ if (a === b) return true;
36745
+ if (!a || !b) return !a && !b;
36746
+ return a.style === b.style && a.width === b.width && a.color === b.color && a.space === b.space;
36747
+ };
36748
+ const paragraphBordersEqual = (a, b) => {
36749
+ if (a === b) return true;
36750
+ if (!a || !b) return !a && !b;
36751
+ return paragraphBorderEqual(a.top, b.top) && paragraphBorderEqual(a.right, b.right) && paragraphBorderEqual(a.bottom, b.bottom) && paragraphBorderEqual(a.left, b.left);
36752
+ };
36753
+ const paragraphShadingEqual = (a, b) => {
36754
+ if (a === b) return true;
36755
+ if (!a || !b) return !a && !b;
36756
+ return a.fill === b.fill && a.color === b.color && a.val === b.val && a.themeColor === b.themeColor && a.themeFill === b.themeFill && a.themeFillShade === b.themeFillShade && a.themeFillTint === b.themeFillTint && a.themeShade === b.themeShade && a.themeTint === b.themeTint;
36757
+ };
36758
+ const tabStopEqual = (a, b) => {
36759
+ return a.val === b.val && a.pos === b.pos && a.leader === b.leader;
36760
+ };
36761
+ const tabStopsEqual = (a, b) => {
36762
+ if (a === b) return true;
36763
+ if (!a || !b) return !a && !b;
36764
+ if (a.length !== b.length) return false;
36765
+ for (let i = 0; i < a.length; i += 1) {
36766
+ if (!tabStopEqual(a[i], b[i])) return false;
36767
+ }
36768
+ return true;
36769
+ };
36770
+ const paragraphFrameEqual = (a, b) => {
36771
+ if (a === b) return true;
36772
+ if (!a || !b) return !a && !b;
36773
+ return a.wrap === b.wrap && a.x === b.x && a.y === b.y && a.xAlign === b.xAlign && a.yAlign === b.yAlign && a.hAnchor === b.hAnchor && a.vAnchor === b.vAnchor;
36774
+ };
36775
+ const dropCapDescriptorEqual = (a, b) => {
36776
+ if (a === b) return true;
36777
+ if (!a || !b) return !a && !b;
36778
+ if (a.mode !== b.mode || a.lines !== b.lines) return false;
36779
+ const runA = a.run;
36780
+ const runB = b.run;
36781
+ if (!runA || !runB) return !runA && !runB;
36782
+ if (runA.text !== runB.text || runA.fontFamily !== runB.fontFamily || runA.fontSize !== runB.fontSize || runA.bold !== runB.bold || runA.italic !== runB.italic || runA.color !== runB.color) {
36783
+ return false;
36784
+ }
36785
+ return true;
36786
+ };
36787
+ const paragraphAttrsEqual = (a, b) => {
36788
+ if (a === b) return true;
36789
+ if (!a || !b) return !a && !b;
36790
+ if (a.alignment !== b.alignment || a.contextualSpacing !== b.contextualSpacing || a.suppressFirstLineIndent !== b.suppressFirstLineIndent || a.dropCap !== b.dropCap || a.decimalSeparator !== b.decimalSeparator || a.tabIntervalTwips !== b.tabIntervalTwips || a.keepNext !== b.keepNext || a.keepLines !== b.keepLines || a.direction !== b.direction || a.rtl !== b.rtl || a.floatAlignment !== b.floatAlignment) {
36791
+ return false;
36792
+ }
36793
+ if (!paragraphSpacingEqual(a.spacing, b.spacing)) return false;
36794
+ if (!paragraphIndentEqual(a.indent, b.indent)) return false;
36795
+ if (!paragraphBordersEqual(a.borders, b.borders)) return false;
36796
+ if (!paragraphShadingEqual(a.shading, b.shading)) return false;
36797
+ if (!tabStopsEqual(a.tabs, b.tabs)) return false;
36798
+ if (!paragraphFrameEqual(a.frame, b.frame)) return false;
36799
+ if (!dropCapDescriptorEqual(a.dropCapDescriptor, b.dropCapDescriptor)) return false;
36800
+ return true;
36801
+ };
36635
36802
  const paragraphBlocksEqual = (a, b) => {
36636
36803
  const aMode = a.attrs?.trackedChangesMode ?? "review";
36637
36804
  const bMode = b.attrs?.trackedChangesMode ?? "review";
@@ -36639,6 +36806,7 @@ const paragraphBlocksEqual = (a, b) => {
36639
36806
  const aEnabled = resolveTrackedChangesEnabled(a.attrs, true);
36640
36807
  const bEnabled = resolveTrackedChangesEnabled(b.attrs, true);
36641
36808
  if (aEnabled !== bEnabled) return false;
36809
+ if (!paragraphAttrsEqual(a.attrs, b.attrs)) return false;
36642
36810
  if (a.runs.length !== b.runs.length) return false;
36643
36811
  for (let i = 0; i < a.runs.length; i += 1) {
36644
36812
  const runA = a.runs[i];
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-CpOA_SSA.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-CvPb50HR.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,6 +1,6 @@
1
1
  import { computed, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, ref, withKeys, unref, withModifiers, createBlock, toDisplayString, withDirectives, vModelText, nextTick, getCurrentInstance, onMounted, onBeforeUnmount, createVNode, readonly, watch, 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-CpOA_SSA.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-DvF9Gp0h.js";
2
+ import { p as process$1 } from "./converter-CvPb50HR.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CsWOz21v.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 { ac } from "./chunks/converter-CpOA_SSA.js";
1
+ import { ac } from "./chunks/converter-CvPb50HR.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-CpOA_SSA.js";
2
- import { D } from "./chunks/docx-zipper-zilXqAq6.js";
1
+ import "./chunks/converter-CvPb50HR.js";
2
+ import { D } from "./chunks/docx-zipper-BWUuyGDp.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-DvF9Gp0h.js";
2
- import "./chunks/converter-CpOA_SSA.js";
3
- import "./chunks/docx-zipper-zilXqAq6.js";
1
+ import { E } from "./chunks/editor-CsWOz21v.js";
2
+ import "./chunks/converter-CvPb50HR.js";
3
+ import "./chunks/docx-zipper-BWUuyGDp.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-zilXqAq6.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-BWUuyGDp.js";
2
2
  async function createZip(blobs, fileNames) {
3
3
  const zip = new JSZip();
4
4
  blobs.forEach((blob, index) => {
@@ -9,14 +9,14 @@ var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read fr
9
9
  var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
10
  var __privateMethod = (obj, member, method) => (__accessCheck(obj, member, "access private method"), method);
11
11
  var _MARK_TOGGLE_NAMES, _SuperToolbar_instances, initToolbarGroups_fn, _interceptedCommands, makeToolbarItems_fn, initDefaultFonts_fn, updateHighlightColors_fn, deactivateAll_fn, updateToolbarHistory_fn, enrichTrackedChanges_fn, runCommandWithArgumentOnly_fn, syncStickyMarksFromState_fn, restoreStickyMarksIfNeeded_fn, ensureStoredMarksForMarkToggle_fn;
12
- import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, at as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, an as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-CpOA_SSA.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-CpOA_SSA.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, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as generateRulerDefinition, n as clampHandlePosition, o as calculateMarginFromHandle, p as measureCache, q as isHeadless, E as Editor, t as getStarterExtensions, P as PresentationEditor, v as Placeholder, w as getRichTextExtensions, D as DecorationSet, x as Decoration, M as Mark, z as Extension, A as Attribute, N as Node } from "./chunks/editor-DvF9Gp0h.js";
15
- import { F, I, G, T, B, H, C } from "./chunks/editor-DvF9Gp0h.js";
12
+ import { aK as getDefaultExportFromCjs, a0 as v4, T as TextSelection$1, v as getMarkRange, aN as vClickOutside, aO as getActiveFormatting, aD as isInTable, O as findParentNode, at as calculateResolvedParagraphProperties, a7 as twipsToLines, Q as isList, an as parseSizeUnit, a8 as pixelsToTwips, aP as getFileObject, P as PluginKey, a as Plugin } from "./chunks/converter-CvPb50HR.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-CvPb50HR.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, f as collectTrackedChanges, i as isTrackedChangeActionAllowed, y as yUndoPluginKey, h as undoDepth, j as redoDepth, k as getEditorSurfaceElement, l as collectTrackedChangesForContext, s as shouldBypassContextMenu, S as SlashMenuPluginKey, m as generateRulerDefinition, n as clampHandlePosition, o as calculateMarginFromHandle, p as measureCache, q as isHeadless, E as Editor, t as getStarterExtensions, P as PresentationEditor, v as Placeholder, w as getRichTextExtensions, D as DecorationSet, x as Decoration, M as Mark, z as Extension, A as Attribute, N as Node } from "./chunks/editor-CsWOz21v.js";
15
+ import { F, I, G, T, B, H, C } from "./chunks/editor-CsWOz21v.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, defineComponent, reactive, onUnmounted, renderSlot, useCssVars, shallowRef, createBlock, Teleport, withCtx, resolveDynamicComponent, normalizeProps, guardReactiveProps } from "vue";
17
- import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-BVOTlKFf.js";
17
+ import { t as toolbarIcons, s as sanitizeNumber, T as Toolbar, p as plusIconSvg, a as trashIconSvg, b as borderNoneIconSvg, c as arrowsToDotIconSvg, d as arrowsLeftRightIconSvg, w as wrenchIconSvg, m as magicWandIcon, e as checkIconSvg$1, x as xMarkIconSvg, l as linkIconSvg, f as tableIconSvg, g as scissorsIconSvg, h as copyIconSvg, i as pasteIconSvg, u as useMessage, N as NSkeleton } from "./chunks/toolbar-DjWypz4_.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-zilXqAq6.js";
19
+ import { D } from "./chunks/docx-zipper-BWUuyGDp.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-BVOTlKFf.js";
3
- import "./chunks/editor-DvF9Gp0h.js";
2
+ import { T } from "./chunks/toolbar-DjWypz4_.js";
3
+ import "./chunks/editor-CsWOz21v.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-DvpDTsC4.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CZ_EMz2h.cjs");
4
4
  require("./chunks/vue-jWLMl8Ts.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, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-ALp2ApyE.es.js";
1
+ import { A, a, _, C, D, E, b, P, S, c, d, e, f, g, T, h, i, j, k, l, m, n, o, p, r, q } from "./chunks/super-editor.es-BLW0IRfr.es.js";
2
2
  import "./chunks/vue-Dysv_7z5.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-DvpDTsC4.cjs");
4
- const superdoc = require("./chunks/index-BZloH4nq.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CZ_EMz2h.cjs");
4
+ const superdoc = require("./chunks/index-CIyFPdjr.cjs");
5
5
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
6
6
  exports.AnnotatorHelpers = superEditor_es.AnnotatorHelpers;
7
7
  exports.Editor = superEditor_es.Editor;
@@ -1,5 +1,5 @@
1
- import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-ALp2ApyE.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-CUUqzJ4M.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-BLW0IRfr.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-D1G3HZnw.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,