@harbour-enterprises/superdoc 1.0.0-beta.88 → 1.0.0-beta.89

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-DBW8dNGO.cjs → PdfViewer-64l7m5Lq.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-2DqlQMKM.es.js → PdfViewer-Dj0ADYo6.es.js} +1 -1
  3. package/dist/chunks/{index-i17b8wYa.cjs → index-Cnq_7qcp.cjs} +3 -3
  4. package/dist/chunks/{index-nvs_L5an.es.js → index-DXKu3E-3.es.js} +3 -3
  5. package/dist/chunks/{index-BLlh97IN-75N3psN2.es.js → index-DcTrJ8db-9XJOggtC.es.js} +1 -1
  6. package/dist/chunks/{index-BLlh97IN-BF_Nyujm.cjs → index-DcTrJ8db-kUMXGs8M.cjs} +1 -1
  7. package/dist/chunks/{super-editor.es-DpbjE-x_.es.js → super-editor.es-D0fgEP38.es.js} +145 -38
  8. package/dist/chunks/{super-editor.es-DB49uQPF.cjs → super-editor.es-D8F0msfn.cjs} +145 -38
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-CjKHGzQU.js → converter-DPyEmTPY.js} +1 -1
  11. package/dist/super-editor/chunks/{docx-zipper-BDVppBrA.js → docx-zipper-BTkZSGvz.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-CgbApADp.js → editor-4iR-p-_J.js} +146 -39
  13. package/dist/super-editor/chunks/{index-BLlh97IN.js → index-DcTrJ8db.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-BEQMP5-e.js → toolbar-Dx7gHXE2.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 +147 -40
  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-CjKHGzQU.js";
16
- import { D as DocxZipper } from "./docx-zipper-BDVppBrA.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-DPyEmTPY.js";
16
+ import { D as DocxZipper } from "./docx-zipper-BTkZSGvz.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.88";
13943
+ const summaryVersion = "1.0.0-beta.89";
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-BLlh97IN.js"),
14735
+ import("./index-DcTrJ8db.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.88");
14940
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.89");
14941
14941
  if (!this.options.ydoc) return;
14942
14942
  const metaMap = this.options.ydoc.getMap("meta");
14943
14943
  let docVersion = metaMap.get("version");
@@ -27937,7 +27937,14 @@ const renderTableCell = (deps) => {
27937
27937
  let renderedHeight = 0;
27938
27938
  for (let lineIdx = localStartLine; lineIdx < localEndLine && lineIdx < lines.length; lineIdx++) {
27939
27939
  const line = lines[lineIdx];
27940
- const lineEl = renderLine(block, line, { ...context, section: "body" });
27940
+ const isLastLine = lineIdx === lines.length - 1;
27941
+ const lineEl = renderLine(
27942
+ block,
27943
+ line,
27944
+ { ...context, section: "body" },
27945
+ lineIdx,
27946
+ isLastLine
27947
+ );
27941
27948
  lineEl.style.paddingLeft = "";
27942
27949
  lineEl.style.paddingRight = "";
27943
27950
  lineEl.style.textIndent = "";
@@ -30569,8 +30576,11 @@ const _DomPainter = class _DomPainter {
30569
30576
  const applyFragmentFrameWithSection = (el, frag) => {
30570
30577
  this.applyFragmentFrame(el, frag, context.section);
30571
30578
  };
30572
- const renderLineForTableCell = (block, line, ctx2) => {
30573
- return this.renderLine(block, line, ctx2, void 0, void 0, true);
30579
+ const renderLineForTableCell = (block, line, ctx2, lineIndex, isLastLine) => {
30580
+ const lastRun = block.runs.length > 0 ? block.runs[block.runs.length - 1] : null;
30581
+ const paragraphEndsWithLineBreak = lastRun?.kind === "lineBreak";
30582
+ const shouldSkipJustify = isLastLine && !paragraphEndsWithLineBreak;
30583
+ return this.renderLine(block, line, ctx2, void 0, lineIndex, shouldSkipJustify);
30574
30584
  };
30575
30585
  const renderDrawingContentForTableCell = (block) => {
30576
30586
  if (block.drawingKind === "image") {
@@ -31179,9 +31189,10 @@ const _DomPainter = class _DomPainter {
31179
31189
  el.setAttribute("styleid", styleId);
31180
31190
  }
31181
31191
  const alignment = block.attrs?.alignment;
31182
- if (alignment === "center" || alignment === "right") {
31183
- el.style.textAlign = alignment;
31184
- } else if (alignment === "justify") {
31192
+ const effectiveAlignment = alignment;
31193
+ if (effectiveAlignment === "center" || effectiveAlignment === "right") {
31194
+ el.style.textAlign = effectiveAlignment;
31195
+ } else if (effectiveAlignment === "justify") {
31185
31196
  el.style.textAlign = "left";
31186
31197
  } else {
31187
31198
  el.style.textAlign = "left";
@@ -31243,16 +31254,16 @@ const _DomPainter = class _DomPainter {
31243
31254
  }
31244
31255
  const hasExplicitPositioning = line.segments?.some((seg) => seg.x !== void 0);
31245
31256
  const availableWidth = availableWidthOverride ?? line.maxWidth ?? line.width;
31246
- const shouldJustify = !skipJustify && alignment === "justify" && !hasExplicitPositioning;
31257
+ const shouldJustify = !skipJustify && effectiveAlignment === "justify" && !hasExplicitPositioning;
31247
31258
  if (shouldJustify) {
31248
31259
  const spaceCount = textSlices.reduce(
31249
31260
  (sum, s2) => sum + Array.from(s2).filter((ch) => ch === " " || ch === " ").length,
31250
31261
  0
31251
31262
  );
31252
- const slack = Math.max(0, availableWidth - line.width);
31253
- if (spaceCount > 0 && slack > 0) {
31254
- const extraPerSpace = slack / spaceCount;
31255
- el.style.wordSpacing = `${extraPerSpace}px`;
31263
+ const slack = availableWidth - line.width;
31264
+ if (spaceCount > 0 && slack !== 0) {
31265
+ const spacingPerSpace = slack / spaceCount;
31266
+ el.style.wordSpacing = `${spacingPerSpace}px`;
31256
31267
  }
31257
31268
  }
31258
31269
  if (hasExplicitPositioning && line.segments) {
@@ -38493,9 +38504,7 @@ function getMeasuredTextWidth(text, font, letterSpacing, ctx2) {
38493
38504
  try {
38494
38505
  ctx2.font = font;
38495
38506
  const metrics = ctx2.measureText(text);
38496
- const advanceWidth = metrics.width;
38497
- const paintedWidth = (metrics.actualBoundingBoxLeft || 0) + (metrics.actualBoundingBoxRight || 0);
38498
- const baseWidth = Math.max(advanceWidth, paintedWidth);
38507
+ const baseWidth = metrics.width;
38499
38508
  const extra = letterSpacing ? Math.max(0, text.length - 1) * letterSpacing : 0;
38500
38509
  const width = baseWidth + extra;
38501
38510
  cache$1.set(key2, { width });
@@ -38704,7 +38713,8 @@ async function measureParagraphBlock(block, maxWidth) {
38704
38713
  const isWordLayoutList = Boolean(wordLayout?.marker);
38705
38714
  const suppressFirstLine = block.attrs?.suppressFirstLineIndent === true;
38706
38715
  const rawFirstLineOffset = suppressFirstLine ? 0 : firstLine - hanging;
38707
- const firstLineOffset = isWordLayoutList ? 0 : rawFirstLineOffset;
38716
+ const clampedFirstLineOffset = Math.max(0, rawFirstLineOffset);
38717
+ const firstLineOffset = isWordLayoutList ? 0 : clampedFirstLineOffset;
38708
38718
  const contentWidth = Math.max(1, maxWidth - indentLeft - indentRight);
38709
38719
  let leftJustifiedMarkerSpace = 0;
38710
38720
  if (wordLayout?.marker) {
@@ -38857,7 +38867,8 @@ async function measureParagraphBlock(block, maxWidth) {
38857
38867
  if (run.kind === "break") {
38858
38868
  if (currentLine) {
38859
38869
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
38860
- const completedLine = { ...currentLine, ...metrics };
38870
+ const { spaceCount: _sc, ...lineBase } = currentLine;
38871
+ const completedLine = { ...lineBase, ...metrics };
38861
38872
  addBarTabsToLine(completedLine);
38862
38873
  lines.push(completedLine);
38863
38874
  currentLine = null;
@@ -38918,7 +38929,8 @@ async function measureParagraphBlock(block, maxWidth) {
38918
38929
  width: 0,
38919
38930
  maxFontSize: lastFontSize,
38920
38931
  maxWidth: nextLineMaxWidth,
38921
- segments: []
38932
+ segments: [],
38933
+ spaceCount: 0
38922
38934
  };
38923
38935
  tabStopCursor = 0;
38924
38936
  pendingTabAlignment = null;
@@ -38936,7 +38948,8 @@ async function measureParagraphBlock(block, maxWidth) {
38936
38948
  maxFontSize: 12,
38937
38949
  // Default font size for tabs
38938
38950
  maxWidth: getEffectiveWidth(initialAvailableWidth),
38939
- segments: []
38951
+ segments: [],
38952
+ spaceCount: 0
38940
38953
  };
38941
38954
  }
38942
38955
  const originX = currentLine.width;
@@ -38985,6 +38998,7 @@ async function measureParagraphBlock(block, maxWidth) {
38985
38998
  maxFontSize: imageHeight,
38986
38999
  // Use image height for line height calculation
38987
39000
  maxWidth: getEffectiveWidth(initialAvailableWidth),
39001
+ spaceCount: 0,
38988
39002
  segments: [
38989
39003
  {
38990
39004
  runIndex,
@@ -39000,8 +39014,9 @@ async function measureParagraphBlock(block, maxWidth) {
39000
39014
  const appliedTabAlign = lastAppliedTabAlign;
39001
39015
  if (currentLine.width + imageWidth > currentLine.maxWidth && currentLine.width > 0) {
39002
39016
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39017
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39003
39018
  const completedLine = {
39004
- ...currentLine,
39019
+ ...lineBase,
39005
39020
  ...metrics
39006
39021
  };
39007
39022
  addBarTabsToLine(completedLine);
@@ -39017,6 +39032,7 @@ async function measureParagraphBlock(block, maxWidth) {
39017
39032
  width: imageWidth,
39018
39033
  maxFontSize: imageHeight,
39019
39034
  maxWidth: getEffectiveWidth(contentWidth),
39035
+ spaceCount: 0,
39020
39036
  segments: [
39021
39037
  {
39022
39038
  runIndex,
@@ -39072,6 +39088,7 @@ async function measureParagraphBlock(block, maxWidth) {
39072
39088
  width: annotationWidth,
39073
39089
  maxFontSize: annotationHeight,
39074
39090
  maxWidth: getEffectiveWidth(initialAvailableWidth),
39091
+ spaceCount: 0,
39075
39092
  segments: [
39076
39093
  {
39077
39094
  runIndex,
@@ -39086,8 +39103,9 @@ async function measureParagraphBlock(block, maxWidth) {
39086
39103
  }
39087
39104
  if (currentLine.width + annotationWidth > currentLine.maxWidth && currentLine.width > 0) {
39088
39105
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39106
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39089
39107
  const completedLine = {
39090
- ...currentLine,
39108
+ ...lineBase,
39091
39109
  ...metrics
39092
39110
  };
39093
39111
  addBarTabsToLine(completedLine);
@@ -39103,6 +39121,7 @@ async function measureParagraphBlock(block, maxWidth) {
39103
39121
  width: annotationWidth,
39104
39122
  maxFontSize: annotationHeight,
39105
39123
  maxWidth: getEffectiveWidth(contentWidth),
39124
+ spaceCount: 0,
39106
39125
  segments: [
39107
39126
  {
39108
39127
  runIndex,
@@ -39158,14 +39177,16 @@ async function measureParagraphBlock(block, maxWidth) {
39158
39177
  maxFontSize: run.fontSize,
39159
39178
  maxFontInfo: getFontInfoFromRun(run),
39160
39179
  maxWidth: getEffectiveWidth(initialAvailableWidth),
39161
- segments: [{ runIndex, fromChar: spacesStartChar, toChar: spacesEndChar, width: spacesWidth }]
39180
+ segments: [{ runIndex, fromChar: spacesStartChar, toChar: spacesEndChar, width: spacesWidth }],
39181
+ spaceCount: spacesLength
39162
39182
  };
39163
39183
  } else {
39164
39184
  const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
39165
39185
  if (currentLine.width + boundarySpacing + spacesWidth > currentLine.maxWidth - WIDTH_FUDGE_PX && currentLine.width > 0) {
39166
39186
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39187
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39167
39188
  const completedLine = {
39168
- ...currentLine,
39189
+ ...lineBase,
39169
39190
  ...metrics
39170
39191
  };
39171
39192
  addBarTabsToLine(completedLine);
@@ -39182,7 +39203,8 @@ async function measureParagraphBlock(block, maxWidth) {
39182
39203
  maxFontSize: run.fontSize,
39183
39204
  maxFontInfo: getFontInfoFromRun(run),
39184
39205
  maxWidth: getEffectiveWidth(contentWidth),
39185
- segments: [{ runIndex, fromChar: spacesStartChar, toChar: spacesEndChar, width: spacesWidth }]
39206
+ segments: [{ runIndex, fromChar: spacesStartChar, toChar: spacesEndChar, width: spacesWidth }],
39207
+ spaceCount: spacesLength
39186
39208
  };
39187
39209
  } else {
39188
39210
  currentLine.toRun = runIndex;
@@ -39191,6 +39213,7 @@ async function measureParagraphBlock(block, maxWidth) {
39191
39213
  currentLine.maxFontInfo = updateMaxFontInfo(currentLine.maxFontSize, currentLine.maxFontInfo, run);
39192
39214
  currentLine.maxFontSize = Math.max(currentLine.maxFontSize, run.fontSize);
39193
39215
  appendSegment(currentLine.segments, runIndex, spacesStartChar, spacesEndChar, spacesWidth);
39216
+ currentLine.spaceCount += spacesLength;
39194
39217
  }
39195
39218
  }
39196
39219
  charPosInRun = spacesEndChar;
@@ -39207,7 +39230,56 @@ async function measureParagraphBlock(block, maxWidth) {
39207
39230
  for (let wordIndex = 0; wordIndex < words.length; wordIndex++) {
39208
39231
  const word = words[wordIndex];
39209
39232
  if (word === "") {
39210
- charPosInRun += 1;
39233
+ const spaceStartChar = charPosInRun;
39234
+ const spaceEndChar = charPosInRun + 1;
39235
+ const singleSpaceWidth = measureRunWidth(" ", font, ctx2, run);
39236
+ if (!currentLine) {
39237
+ currentLine = {
39238
+ fromRun: runIndex,
39239
+ fromChar: spaceStartChar,
39240
+ toRun: runIndex,
39241
+ toChar: spaceEndChar,
39242
+ width: singleSpaceWidth,
39243
+ maxFontSize: run.fontSize,
39244
+ maxFontInfo: getFontInfoFromRun(run),
39245
+ maxWidth: getEffectiveWidth(initialAvailableWidth),
39246
+ segments: [{ runIndex, fromChar: spaceStartChar, toChar: spaceEndChar, width: singleSpaceWidth }],
39247
+ spaceCount: 1
39248
+ };
39249
+ } else {
39250
+ const boundarySpacing2 = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
39251
+ if (currentLine.width + boundarySpacing2 + singleSpaceWidth > currentLine.maxWidth - WIDTH_FUDGE_PX && currentLine.width > 0) {
39252
+ const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39253
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39254
+ const completedLine = { ...lineBase, ...metrics };
39255
+ addBarTabsToLine(completedLine);
39256
+ lines.push(completedLine);
39257
+ tabStopCursor = 0;
39258
+ pendingTabAlignment = null;
39259
+ lastAppliedTabAlign = null;
39260
+ currentLine = {
39261
+ fromRun: runIndex,
39262
+ fromChar: spaceStartChar,
39263
+ toRun: runIndex,
39264
+ toChar: spaceEndChar,
39265
+ width: singleSpaceWidth,
39266
+ maxFontSize: run.fontSize,
39267
+ maxFontInfo: getFontInfoFromRun(run),
39268
+ maxWidth: getEffectiveWidth(contentWidth),
39269
+ segments: [{ runIndex, fromChar: spaceStartChar, toChar: spaceEndChar, width: singleSpaceWidth }],
39270
+ spaceCount: 1
39271
+ };
39272
+ } else {
39273
+ currentLine.toRun = runIndex;
39274
+ currentLine.toChar = spaceEndChar;
39275
+ currentLine.width = roundValue(currentLine.width + boundarySpacing2 + singleSpaceWidth);
39276
+ currentLine.maxFontInfo = updateMaxFontInfo(currentLine.maxFontSize, currentLine.maxFontInfo, run);
39277
+ currentLine.maxFontSize = Math.max(currentLine.maxFontSize, run.fontSize);
39278
+ appendSegment(currentLine.segments, runIndex, spaceStartChar, spaceEndChar, singleSpaceWidth);
39279
+ currentLine.spaceCount += 1;
39280
+ }
39281
+ }
39282
+ charPosInRun = spaceEndChar;
39211
39283
  continue;
39212
39284
  }
39213
39285
  const isLastWordInSegment = wordIndex === words.length - 1;
@@ -39228,13 +39300,15 @@ async function measureParagraphBlock(block, maxWidth) {
39228
39300
  maxFontSize: run.fontSize,
39229
39301
  maxFontInfo: getFontInfoFromRun(run),
39230
39302
  maxWidth: getEffectiveWidth(initialAvailableWidth),
39231
- segments: [{ runIndex, fromChar: wordStartChar, toChar: wordEndNoSpace, width: wordOnlyWidth }]
39303
+ segments: [{ runIndex, fromChar: wordStartChar, toChar: wordEndNoSpace, width: wordOnlyWidth }],
39304
+ spaceCount: 0
39232
39305
  };
39233
39306
  const ls = run.letterSpacing ?? 0;
39234
39307
  if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
39235
39308
  currentLine.toChar = wordEndWithSpace;
39236
39309
  currentLine.width = roundValue(currentLine.width + spaceWidth + ls);
39237
39310
  charPosInRun = wordEndWithSpace;
39311
+ currentLine.spaceCount += 1;
39238
39312
  } else {
39239
39313
  charPosInRun = wordEndWithSpace;
39240
39314
  }
@@ -39242,10 +39316,36 @@ async function measureParagraphBlock(block, maxWidth) {
39242
39316
  }
39243
39317
  const isTocEntry = block.attrs?.isTocEntry;
39244
39318
  const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
39245
- if (currentLine.width + boundarySpacing + wordOnlyWidth > currentLine.maxWidth - WIDTH_FUDGE_PX && currentLine.width > 0 && !isTocEntry) {
39319
+ const justifyAlignment = block.attrs?.alignment === "justify";
39320
+ const totalWidthWithWord = currentLine.width + boundarySpacing + wordCommitWidth + // Safe cast: only TextRuns produce word segments from split(), other run types are handled earlier
39321
+ (isLastWord ? 0 : run.letterSpacing ?? 0);
39322
+ const availableWidth = currentLine.maxWidth - WIDTH_FUDGE_PX;
39323
+ let shouldBreak = currentLine.width + boundarySpacing + wordOnlyWidth > availableWidth && currentLine.width > 0 && !isTocEntry;
39324
+ let compressedWidth = null;
39325
+ if (shouldBreak && justifyAlignment) {
39326
+ const isParagraphLastWord = isLastWord && runIndex === runsToProcess.length - 1;
39327
+ if (!isParagraphLastWord) {
39328
+ const existingSpaces = currentLine.spaceCount ?? 0;
39329
+ const candidateSpaces = existingSpaces + (isLastWord ? 0 : 1);
39330
+ if (candidateSpaces > 0) {
39331
+ const overflow = totalWidthWithWord - availableWidth;
39332
+ if (overflow > 0) {
39333
+ const baseSpaceWidth = spaceWidth || measureRunWidth(" ", font, ctx2, run) || Math.max(1, boundarySpacing);
39334
+ const perSpaceCompression = overflow / candidateSpaces;
39335
+ const maxPerSpaceCompression = baseSpaceWidth * 0.25;
39336
+ if (perSpaceCompression <= maxPerSpaceCompression) {
39337
+ shouldBreak = false;
39338
+ compressedWidth = availableWidth;
39339
+ }
39340
+ }
39341
+ }
39342
+ }
39343
+ }
39344
+ if (shouldBreak) {
39246
39345
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39346
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39247
39347
  const completedLine = {
39248
- ...currentLine,
39348
+ ...lineBase,
39249
39349
  ...metrics
39250
39350
  };
39251
39351
  addBarTabsToLine(completedLine);
@@ -39261,12 +39361,14 @@ async function measureParagraphBlock(block, maxWidth) {
39261
39361
  maxFontSize: run.fontSize,
39262
39362
  maxFontInfo: getFontInfoFromRun(run),
39263
39363
  maxWidth: getEffectiveWidth(contentWidth),
39264
- segments: [{ runIndex, fromChar: wordStartChar, toChar: wordEndNoSpace, width: wordOnlyWidth }]
39364
+ segments: [{ runIndex, fromChar: wordStartChar, toChar: wordEndNoSpace, width: wordOnlyWidth }],
39365
+ spaceCount: 0
39265
39366
  };
39266
39367
  if (!isLastWord && currentLine.width + spaceWidth <= currentLine.maxWidth - WIDTH_FUDGE_PX) {
39267
39368
  currentLine.toChar = wordEndWithSpace;
39268
39369
  currentLine.width = roundValue(currentLine.width + spaceWidth + (run.letterSpacing ?? 0));
39269
39370
  charPosInRun = wordEndWithSpace;
39371
+ currentLine.spaceCount += 1;
39270
39372
  } else {
39271
39373
  charPosInRun = wordEndWithSpace;
39272
39374
  }
@@ -39287,7 +39389,8 @@ async function measureParagraphBlock(block, maxWidth) {
39287
39389
  useExplicitXHere ? segmentStartX : void 0
39288
39390
  );
39289
39391
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39290
- const completedLine = { ...currentLine, ...metrics };
39392
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39393
+ const completedLine = { ...lineBase, ...metrics };
39291
39394
  addBarTabsToLine(completedLine);
39292
39395
  lines.push(completedLine);
39293
39396
  tabStopCursor = 0;
@@ -39300,12 +39403,14 @@ async function measureParagraphBlock(block, maxWidth) {
39300
39403
  currentLine.toChar = newToChar;
39301
39404
  const useExplicitX = wordIndex === 0 && segmentStartX !== void 0;
39302
39405
  const explicitX = useExplicitX ? segmentStartX : void 0;
39303
- currentLine.width = roundValue(
39304
- currentLine.width + boundarySpacing + wordCommitWidth + (isLastWord ? 0 : run.letterSpacing ?? 0)
39305
- );
39406
+ const targetWidth = compressedWidth != null ? compressedWidth : currentLine.width + boundarySpacing + wordCommitWidth + (isLastWord ? 0 : run.letterSpacing ?? 0);
39407
+ currentLine.width = roundValue(targetWidth);
39306
39408
  currentLine.maxFontInfo = updateMaxFontInfo(currentLine.maxFontSize, currentLine.maxFontInfo, run);
39307
39409
  currentLine.maxFontSize = Math.max(currentLine.maxFontSize, run.fontSize);
39308
39410
  appendSegment(currentLine.segments, runIndex, wordStartChar, newToChar, wordCommitWidth, explicitX);
39411
+ if (!isLastWord) {
39412
+ currentLine.spaceCount += 1;
39413
+ }
39309
39414
  }
39310
39415
  charPosInRun = isLastWord ? wordEndNoSpace : wordEndWithSpace;
39311
39416
  }
@@ -39328,7 +39433,8 @@ async function measureParagraphBlock(block, maxWidth) {
39328
39433
  maxFontSize: run.fontSize,
39329
39434
  maxFontInfo: getFontInfoFromRun(run),
39330
39435
  maxWidth: getEffectiveWidth(initialAvailableWidth),
39331
- segments: []
39436
+ segments: [],
39437
+ spaceCount: 0
39332
39438
  };
39333
39439
  }
39334
39440
  const originX = currentLine.width;
@@ -39374,8 +39480,9 @@ async function measureParagraphBlock(block, maxWidth) {
39374
39480
  }
39375
39481
  if (currentLine) {
39376
39482
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
39483
+ const { spaceCount: _sc, ...lineBase } = currentLine;
39377
39484
  const finalLine = {
39378
- ...currentLine,
39485
+ ...lineBase,
39379
39486
  ...metrics
39380
39487
  };
39381
39488
  addBarTabsToLine(finalLine);
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-CjKHGzQU.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-DPyEmTPY.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-CjKHGzQU.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-CgbApADp.js";
2
+ import { p as process$1 } from "./converter-DPyEmTPY.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-4iR-p-_J.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-CjKHGzQU.js";
1
+ import { ac } from "./chunks/converter-DPyEmTPY.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-CjKHGzQU.js";
2
- import { D } from "./chunks/docx-zipper-BDVppBrA.js";
1
+ import "./chunks/converter-DPyEmTPY.js";
2
+ import { D } from "./chunks/docx-zipper-BTkZSGvz.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-CgbApADp.js";
2
- import "./chunks/converter-CjKHGzQU.js";
3
- import "./chunks/docx-zipper-BDVppBrA.js";
1
+ import { E } from "./chunks/editor-4iR-p-_J.js";
2
+ import "./chunks/converter-DPyEmTPY.js";
3
+ import "./chunks/docx-zipper-BTkZSGvz.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-BDVppBrA.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-BTkZSGvz.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-CjKHGzQU.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-CjKHGzQU.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-CgbApADp.js";
15
- import { F, I, G, T, B, H, C } from "./chunks/editor-CgbApADp.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-DPyEmTPY.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-DPyEmTPY.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-4iR-p-_J.js";
15
+ import { F, I, G, T, B, H, C } from "./chunks/editor-4iR-p-_J.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-BEQMP5-e.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-Dx7gHXE2.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-BDVppBrA.js";
19
+ import { D } from "./chunks/docx-zipper-BTkZSGvz.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-BEQMP5-e.js";
3
- import "./chunks/editor-CgbApADp.js";
2
+ import { T } from "./chunks/toolbar-Dx7gHXE2.js";
3
+ import "./chunks/editor-4iR-p-_J.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-DB49uQPF.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-D8F0msfn.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-DpbjE-x_.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-D0fgEP38.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-DB49uQPF.cjs");
4
- const superdoc = require("./chunks/index-i17b8wYa.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-D8F0msfn.cjs");
4
+ const superdoc = require("./chunks/index-Cnq_7qcp.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-DpbjE-x_.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-nvs_L5an.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-D0fgEP38.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-DXKu3E-3.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,