@harbour-enterprises/superdoc 2.0.0-next.3 → 2.0.0-next.4

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-4xn9rggA.es.js → PdfViewer-D3PZ6zBK.es.js} +1 -1
  2. package/dist/chunks/{PdfViewer-C6tuSJXA.cjs → PdfViewer-DW9Jjot9.cjs} +1 -1
  3. package/dist/chunks/{index-CSZ7bAL7.es.js → index-NcWPPbrQ.es.js} +3 -3
  4. package/dist/chunks/{index-k0xTe_8v.cjs → index-VXujz1iS.cjs} +3 -3
  5. package/dist/chunks/{index-lLnrqNSJ-CMJxa5vJ.cjs → index-YoL4XmHs-DgX6YU__.cjs} +1 -1
  6. package/dist/chunks/{index-lLnrqNSJ-DoACeFqL.es.js → index-YoL4XmHs-DnigArXx.es.js} +1 -1
  7. package/dist/chunks/{super-editor.es-BY4paJvP.cjs → super-editor.es-CeYiIfGN.cjs} +123 -23
  8. package/dist/chunks/{super-editor.es-B1DZfUz0.es.js → super-editor.es-o4f9FxT-.es.js} +123 -23
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-Bd6dIe0l.js → converter-Cv-PWHhI.js} +1 -1
  11. package/dist/super-editor/chunks/{docx-zipper-Dzdi5pfi.js → docx-zipper-aIZi_y1u.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-C3sjGwAb.js → editor-R1nZ8Y4J.js} +124 -24
  13. package/dist/super-editor/chunks/{index-lLnrqNSJ.js → index-YoL4XmHs.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-Bn20lflQ.js → toolbar-DTrmhth_.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 +125 -25
  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 _a, _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, _currentEpoch, _mapsByFromEpoch, _maxEpochsToKeep, _EpochPositionMapper_instances, pruneByCurrentEpoch_fn, _entries, _windowRoot, _getPainterHost, _onRebuild, _observer, _rebuildScheduled, _rebuildRafId, _docEpoch, _layoutEpoch, _layoutUpdating, _pending, _scheduled, _rafHandle, _scheduler, _SelectionSyncCoordinator_instances, isSafeToRender_fn, maybeSchedule_fn, cancelScheduledRender_fn, _windowRoot2, _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, _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, _pageGeometryHelper, _dragHandlerCleanup, _layoutError, _layoutErrorState, _errorBanner, _errorBannerMessage, _telemetryEmitter, _renderScheduled, _pendingDocChange, _isRerendering, _selectionSync, _remoteCursorUpdateScheduled, _epochMapper, _layoutEpoch2, _domPositionIndex, _domIndexObserverManager, _debugLastPointer, _debugLastHit, _pendingMarginClick, _rafHandle2, _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, _a11ySelectionAnnounceTimeout, _a11yLastAnnouncedSelectionKey, _hoverRegion, _clickCount, _lastClickTime, _lastClickPosition, _lastSelectedImageBlockId, _dragAnchor, _dragAnchorPageIndex, _isDragging, _dragExtensionMode, _dragLastPointer, _dragLastRawHit, _dragUsedPageNotMountedFallback, _cellAnchor, _cellDragMode, _remoteCursorState, _remoteCursorElements, _remoteCursorDirty, _remoteCursorOverlay, _localSelectionLayer, _awarenessCleanup, _scrollCleanup, _scrollTimeout, _lastRemoteCursorRenderTime, _remoteCursorThrottleTimeout, _PresentationEditor_instances, wrapHiddenEditorFocus_fn, collectCommentPositions_fn, updateSelectionDebugHud_fn, computePendingMarginClick_fn, aggregateLayoutBounds_fn, rebuildDomPositionIndex_fn, setupEditorListeners_fn, setupCollaborationCursors_fn, updateLocalAwarenessCursor_fn, scheduleRemoteCursorUpdate_fn, scheduleRemoteCursorReRender_fn, updateRemoteCursors_fn, renderRemoteCursors_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, _handlePointerMove, _handlePointerLeave, _handleVisibleHostFocusIn, _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, syncHiddenEditorA11yAttributes_fn, scheduleA11ySelectionAnnouncement_fn, announceSelectionNow_fn, validateHeaderFooterEditPermission_fn, emitHeaderFooterEditBlocked_fn, resolveDescriptorForRegion_fn, createDefaultHeaderFooter_fn, getPageElement_fn, isSelectionAwareVirtualizationEnabled_fn, updateSelectionVirtualizationPins_fn, finalizeDragSelectionWithDom_fn, scrollPageIntoView_fn, waitForPageMount_fn, getEffectivePageGap_fn, getBodyPageHeight_fn, getHeaderFooterPageHeight_fn, renderCellSelectionOverlay_fn, renderHoverRegion_fn, clearHoverRegion_fn, getHeaderFooterContext_fn, computeHeaderFooterSelectionRects_fn, syncTrackedChangesPreferences_fn, deriveTrackedChangesMode_fn, deriveTrackedChangesEnabled_fn, getTrackChangesPluginState_fn, computeDefaultLayoutDefaults_fn, applyZoom_fn, getPageOffsetX_fn, convertPageLocalToOverlayCoords_fn, computeSelectionRectsFromDom_fn, computeDomCaretPageLocal_fn, normalizeClientPoint_fn, computeCaretLayoutRectGeometry_fn, computeCaretLayoutRect_fn, getCurrentPageIndex_fn, findRegionForPage_fn, handleLayoutError_fn, decorateError_fn, showLayoutErrorBanner_fn, dismissErrorBanner_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$2, 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-Bd6dIe0l.js";
16
- import { D as DocxZipper } from "./docx-zipper-Dzdi5pfi.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$2, 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-Cv-PWHhI.js";
16
+ import { D as DocxZipper } from "./docx-zipper-aIZi_y1u.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() {
@@ -14815,7 +14815,7 @@ const isHeadless = (editor) => {
14815
14815
  const shouldSkipNodeView = (editor) => {
14816
14816
  return isHeadless(editor);
14817
14817
  };
14818
- const summaryVersion = "2.0.0-next.3";
14818
+ const summaryVersion = "2.0.0-next.4";
14819
14819
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
14820
14820
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
14821
14821
  function mapAttributes(attrs) {
@@ -15607,7 +15607,7 @@ const _Editor = class _Editor extends EventEmitter {
15607
15607
  { default: remarkStringify },
15608
15608
  { default: remarkGfm }
15609
15609
  ] = await Promise.all([
15610
- import("./index-lLnrqNSJ.js"),
15610
+ import("./index-YoL4XmHs.js"),
15611
15611
  import("./index-DRCvimau.js"),
15612
15612
  import("./index-C_x_N6Uh.js"),
15613
15613
  import("./index-D_sWOSiG.js"),
@@ -15812,7 +15812,7 @@ const _Editor = class _Editor extends EventEmitter {
15812
15812
  * Process collaboration migrations
15813
15813
  */
15814
15814
  processCollaborationMigrations() {
15815
- console.debug("[checkVersionMigrations] Current editor version", "2.0.0-next.3");
15815
+ console.debug("[checkVersionMigrations] Current editor version", "2.0.0-next.4");
15816
15816
  if (!this.options.ydoc) return;
15817
15817
  const metaMap = this.options.ydoc.getMap("meta");
15818
15818
  let docVersion = metaMap.get("version");
@@ -28266,7 +28266,8 @@ function measureCharacterX(block, line, charOffset, availableWidthOverride, alig
28266
28266
  }
28267
28267
  const text = "src" in run || run.kind === "lineBreak" || run.kind === "break" || run.kind === "fieldAnnotation" ? "" : run.text ?? "";
28268
28268
  const runLength = text.length;
28269
- const displayText = applyTextTransform$2(text, run.textTransform);
28269
+ const transform = isTabRun$1(run) || "src" in run || run.kind === "lineBreak" || run.kind === "break" || run.kind === "fieldAnnotation" ? void 0 : run.textTransform;
28270
+ const displayText = applyTextTransform$2(text, transform);
28270
28271
  if (currentCharOffset + runLength >= charOffset) {
28271
28272
  const offsetInRun = charOffset - currentCharOffset;
28272
28273
  ctx2.font = getRunFontString(run);
@@ -28316,7 +28317,8 @@ function measureCharacterXSegmentBased(block, line, charOffset, ctx2) {
28316
28317
  return segmentBaseX + (offsetInSegment >= segmentChars ? segment.width ?? 0 : 0);
28317
28318
  }
28318
28319
  const text = run.text ?? "";
28319
- const displayText = applyTextTransform$2(text, run.textTransform);
28320
+ const transform = "textTransform" in run ? run.textTransform : void 0;
28321
+ const displayText = applyTextTransform$2(text, transform);
28320
28322
  const displaySegmentText = displayText.slice(segment.fromChar, segment.toChar);
28321
28323
  const textUpToTarget = displaySegmentText.slice(0, offsetInSegment);
28322
28324
  ctx2.font = getRunFontString(run);
@@ -28414,7 +28416,8 @@ function findCharacterAtX(block, line, x, pmStart, availableWidthOverride, align
28414
28416
  }
28415
28417
  const text = "src" in run || run.kind === "lineBreak" || run.kind === "break" || run.kind === "fieldAnnotation" ? "" : run.text ?? "";
28416
28418
  const runLength = text.length;
28417
- const displayText = applyTextTransform$2(text, run.textTransform);
28419
+ const transform = isTabRun$1(run) || "src" in run || run.kind === "lineBreak" || run.kind === "break" || run.kind === "fieldAnnotation" ? void 0 : run.textTransform;
28420
+ const displayText = applyTextTransform$2(text, transform);
28418
28421
  if (runLength === 0) continue;
28419
28422
  ctx2.font = getRunFontString(run);
28420
28423
  for (let i = 0; i <= runLength; i++) {
@@ -28892,12 +28895,12 @@ function resolveListTextStartPx(wordLayout, indentLeft, firstLine, hanging, meas
28892
28895
  if (markerTextWidth == null && marker.markerText) {
28893
28896
  markerTextWidth = measureMarkerText(marker.markerText, marker);
28894
28897
  }
28895
- if (!Number.isFinite(markerTextWidth) || markerTextWidth < 0) {
28898
+ if (!Number.isFinite(markerTextWidth) || markerTextWidth !== void 0 && markerTextWidth < 0) {
28896
28899
  markerTextWidth = markerBoxWidth;
28897
28900
  }
28898
- markerTextWidth = Math.max(0, markerTextWidth);
28901
+ const finalMarkerTextWidth = Math.max(0, markerTextWidth ?? 0);
28899
28902
  let markerStartPos;
28900
- if (wordLayout?.firstLineIndentMode === true && Number.isFinite(marker.markerX)) {
28903
+ if (wordLayout?.firstLineIndentMode === true && typeof marker.markerX === "number" && Number.isFinite(marker.markerX)) {
28901
28904
  markerStartPos = marker.markerX;
28902
28905
  } else {
28903
28906
  markerStartPos = indentLeft - hanging + firstLine;
@@ -28905,18 +28908,18 @@ function resolveListTextStartPx(wordLayout, indentLeft, firstLine, hanging, meas
28905
28908
  if (!Number.isFinite(markerStartPos)) {
28906
28909
  markerStartPos = 0;
28907
28910
  }
28908
- const currentPos = markerStartPos + markerTextWidth;
28911
+ const currentPos = markerStartPos + finalMarkerTextWidth;
28909
28912
  const suffix = marker.suffix ?? "tab";
28910
28913
  if (suffix === "space") {
28911
- return markerStartPos + markerTextWidth + SPACE_SUFFIX_GAP_PX;
28914
+ return markerStartPos + finalMarkerTextWidth + SPACE_SUFFIX_GAP_PX;
28912
28915
  }
28913
28916
  if (suffix === "nothing") {
28914
- return markerStartPos + markerTextWidth;
28917
+ return markerStartPos + finalMarkerTextWidth;
28915
28918
  }
28916
28919
  const markerJustification = marker.justification ?? "left";
28917
28920
  if (markerJustification !== "left") {
28918
28921
  const gutterWidth = typeof marker.gutterWidthPx === "number" && Number.isFinite(marker.gutterWidthPx) && marker.gutterWidthPx > 0 ? marker.gutterWidthPx : LIST_MARKER_GAP$1;
28919
- return markerStartPos + markerTextWidth + Math.max(gutterWidth, LIST_MARKER_GAP$1);
28922
+ return markerStartPos + finalMarkerTextWidth + Math.max(gutterWidth, LIST_MARKER_GAP$1);
28920
28923
  }
28921
28924
  if (wordLayout?.firstLineIndentMode === true) {
28922
28925
  let targetTabStop;
@@ -28940,7 +28943,7 @@ function resolveListTextStartPx(wordLayout, indentLeft, firstLine, hanging, meas
28940
28943
  if (tabWidth2 < LIST_MARKER_GAP$1) {
28941
28944
  tabWidth2 = LIST_MARKER_GAP$1;
28942
28945
  }
28943
- return markerStartPos + markerTextWidth + tabWidth2;
28946
+ return markerStartPos + finalMarkerTextWidth + tabWidth2;
28944
28947
  }
28945
28948
  const textStart = indentLeft + firstLine;
28946
28949
  let tabWidth = textStart - currentPos;
@@ -28949,7 +28952,7 @@ function resolveListTextStartPx(wordLayout, indentLeft, firstLine, hanging, meas
28949
28952
  } else if (tabWidth < LIST_MARKER_GAP$1) {
28950
28953
  tabWidth = LIST_MARKER_GAP$1;
28951
28954
  }
28952
- return markerStartPos + markerTextWidth + tabWidth;
28955
+ return markerStartPos + finalMarkerTextWidth + tabWidth;
28953
28956
  }
28954
28957
  function getWordLayoutConfig(block) {
28955
28958
  if (!block || block.kind !== "paragraph") {
@@ -30269,6 +30272,94 @@ function getCellPadding(cellIdx, blockRow) {
30269
30272
  function getCellTotalLines(cell) {
30270
30273
  return getCellLines(cell).length;
30271
30274
  }
30275
+ function mergePmRange(target, range) {
30276
+ if (typeof range.pmStart === "number") {
30277
+ target.pmStart = target.pmStart == null ? range.pmStart : Math.min(target.pmStart, range.pmStart);
30278
+ }
30279
+ if (typeof range.pmEnd === "number") {
30280
+ target.pmEnd = target.pmEnd == null ? range.pmEnd : Math.max(target.pmEnd, range.pmEnd);
30281
+ }
30282
+ }
30283
+ function computeCellPmRange(cell, cellMeasure, fromLine, toLine) {
30284
+ const range = {};
30285
+ if (!cell || !cellMeasure) return range;
30286
+ const cellBlocks = cell.blocks ?? (cell.paragraph ? [cell.paragraph] : []);
30287
+ const blockMeasures = cellMeasure.blocks ?? (cellMeasure.paragraph ? [cellMeasure.paragraph] : []);
30288
+ const maxBlocks = Math.min(cellBlocks.length, blockMeasures.length);
30289
+ let cumulativeLineCount = 0;
30290
+ for (let i = 0; i < maxBlocks; i++) {
30291
+ const block = cellBlocks[i];
30292
+ const blockMeasure = blockMeasures[i];
30293
+ if (blockMeasure.kind === "paragraph" && block?.kind === "paragraph") {
30294
+ const paraMeasure = blockMeasure;
30295
+ const lines = paraMeasure.lines;
30296
+ const blockLineCount = lines?.length ?? 0;
30297
+ const blockStartGlobal = cumulativeLineCount;
30298
+ const blockEndGlobal = cumulativeLineCount + blockLineCount;
30299
+ const localFrom = Math.max(fromLine, blockStartGlobal) - blockStartGlobal;
30300
+ const localTo = Math.min(toLine, blockEndGlobal) - blockStartGlobal;
30301
+ if (lines && lines.length > 0 && localFrom < localTo) {
30302
+ mergePmRange(range, computeFragmentPmRange(block, lines, localFrom, localTo));
30303
+ } else {
30304
+ mergePmRange(range, extractBlockPmRange(block));
30305
+ }
30306
+ cumulativeLineCount += blockLineCount;
30307
+ continue;
30308
+ }
30309
+ mergePmRange(range, extractBlockPmRange(block));
30310
+ }
30311
+ return range;
30312
+ }
30313
+ function computeTableFragmentPmRange(block, measure, fromRow, toRow, partialRow) {
30314
+ const range = {};
30315
+ for (let rowIndex = fromRow; rowIndex < toRow; rowIndex++) {
30316
+ const row = block.rows[rowIndex];
30317
+ const rowMeasure = measure.rows[rowIndex];
30318
+ if (!row || !rowMeasure) continue;
30319
+ const isPartial = partialRow?.rowIndex === rowIndex;
30320
+ const cellCount = Math.min(row.cells.length, rowMeasure.cells.length);
30321
+ for (let cellIndex = 0; cellIndex < cellCount; cellIndex++) {
30322
+ const cell = row.cells[cellIndex];
30323
+ const cellMeasure = rowMeasure.cells[cellIndex];
30324
+ if (!cell || !cellMeasure) continue;
30325
+ const totalLines = getCellTotalLines(cellMeasure);
30326
+ let fromLine = 0;
30327
+ let toLine = totalLines;
30328
+ if (isPartial) {
30329
+ const hasValidFromLineByCell = partialRow?.fromLineByCell && cellIndex < partialRow.fromLineByCell.length;
30330
+ const hasValidToLineByCell = partialRow?.toLineByCell && cellIndex < partialRow.toLineByCell.length;
30331
+ if (hasValidFromLineByCell) {
30332
+ const rawFrom = partialRow.fromLineByCell[cellIndex];
30333
+ if (typeof rawFrom === "number" && rawFrom >= 0) {
30334
+ fromLine = rawFrom;
30335
+ }
30336
+ }
30337
+ if (hasValidToLineByCell) {
30338
+ const rawTo = partialRow.toLineByCell[cellIndex];
30339
+ if (typeof rawTo === "number") {
30340
+ toLine = rawTo === -1 ? totalLines : rawTo;
30341
+ }
30342
+ }
30343
+ }
30344
+ fromLine = Math.max(0, Math.min(fromLine, totalLines));
30345
+ toLine = Math.max(0, Math.min(toLine, totalLines));
30346
+ if (toLine < fromLine) {
30347
+ toLine = fromLine;
30348
+ }
30349
+ mergePmRange(range, computeCellPmRange(cell, cellMeasure, fromLine, toLine));
30350
+ }
30351
+ }
30352
+ return range;
30353
+ }
30354
+ function applyTableFragmentPmRange(fragment, block, measure) {
30355
+ const range = computeTableFragmentPmRange(block, measure, fragment.fromRow, fragment.toRow, fragment.partialRow);
30356
+ if (range.pmStart != null) {
30357
+ fragment.pmStart = range.pmStart;
30358
+ }
30359
+ if (range.pmEnd != null) {
30360
+ fragment.pmEnd = range.pmEnd;
30361
+ }
30362
+ }
30272
30363
  function computePartialRow(rowIndex, blockRow, measure, availableHeight, fromLineByCell) {
30273
30364
  const row = measure.rows[rowIndex];
30274
30365
  if (!row) {
@@ -30413,6 +30504,7 @@ function layoutMonolithicTable(context) {
30413
30504
  height,
30414
30505
  metadata
30415
30506
  };
30507
+ applyTableFragmentPmRange(fragment, context.block, context.measure);
30416
30508
  state.page.fragments.push(fragment);
30417
30509
  state.cursorY += height;
30418
30510
  }
@@ -30491,6 +30583,7 @@ function layoutTableBlock({
30491
30583
  height,
30492
30584
  metadata
30493
30585
  };
30586
+ applyTableFragmentPmRange(fragment, block, measure);
30494
30587
  state.page.fragments.push(fragment);
30495
30588
  state.cursorY += height;
30496
30589
  return;
@@ -30554,6 +30647,7 @@ function layoutTableBlock({
30554
30647
  partialRow: continuationPartialRow,
30555
30648
  metadata: generateFragmentMetadata(measure)
30556
30649
  };
30650
+ applyTableFragmentPmRange(fragment2, block, measure);
30557
30651
  state.page.fragments.push(fragment2);
30558
30652
  state.cursorY += fragmentHeight2;
30559
30653
  }
@@ -30598,6 +30692,7 @@ function layoutTableBlock({
30598
30692
  partialRow: forcedPartialRow,
30599
30693
  metadata: generateFragmentMetadata(measure)
30600
30694
  };
30695
+ applyTableFragmentPmRange(fragment2, block, measure);
30601
30696
  state.page.fragments.push(fragment2);
30602
30697
  state.cursorY += fragmentHeight2;
30603
30698
  pendingPartialRow = forcedPartialRow;
@@ -30633,6 +30728,7 @@ function layoutTableBlock({
30633
30728
  partialRow: partialRow || void 0,
30634
30729
  metadata: generateFragmentMetadata(measure)
30635
30730
  };
30731
+ applyTableFragmentPmRange(fragment, block, measure);
30636
30732
  state.page.fragments.push(fragment);
30637
30733
  state.cursorY += fragmentHeight;
30638
30734
  if (partialRow && !partialRow.isLastPart) {
@@ -30650,7 +30746,7 @@ function createAnchoredTableFragment(block, measure, x, y) {
30650
30746
  columnBoundaries: generateColumnBoundaries(measure),
30651
30747
  coordinateSystem: "fragment"
30652
30748
  };
30653
- return {
30749
+ const fragment = {
30654
30750
  kind: "table",
30655
30751
  blockId: block.id,
30656
30752
  fromRow: 0,
@@ -30661,6 +30757,8 @@ function createAnchoredTableFragment(block, measure, x, y) {
30661
30757
  height: measure.totalHeight ?? 0,
30662
30758
  metadata
30663
30759
  };
30760
+ applyTableFragmentPmRange(fragment, block, measure);
30761
+ return fragment;
30664
30762
  }
30665
30763
  function isPageRelativeAnchor(block) {
30666
30764
  const vRelativeFrom = block.anchor?.vRelativeFrom;
@@ -33120,7 +33218,8 @@ const getNextTabStopPx$1 = (currentX, tabStops, startIndex) => {
33120
33218
  function measureRunSliceWidth(run, fromChar, toChar) {
33121
33219
  const context = getCtx();
33122
33220
  const fullText = runText(run);
33123
- const text = applyTextTransform$1(fullText.slice(fromChar, toChar), run.textTransform, fullText, fromChar);
33221
+ const transform = isTextRun$2(run) ? run.textTransform : void 0;
33222
+ const text = applyTextTransform$1(fullText.slice(fromChar, toChar), transform, fullText, fromChar);
33124
33223
  if (!context) {
33125
33224
  const textRun = isTextRun$2(run) ? run : null;
33126
33225
  const size2 = textRun?.fontSize ?? 16;
@@ -36490,14 +36589,15 @@ function getAtomNodeTypes(schema) {
36490
36589
  if (!schema) return [];
36491
36590
  const types = [];
36492
36591
  try {
36493
- schema.nodes.forEach((nodeType, name) => {
36592
+ for (const name in schema.nodes) {
36494
36593
  if (name === "text") {
36495
- return;
36594
+ continue;
36496
36595
  }
36497
- if (nodeType.isAtom || nodeType.isLeaf) {
36596
+ const nodeType = schema.nodes[name];
36597
+ if (nodeType && (nodeType.isAtom || nodeType.isLeaf)) {
36498
36598
  types.push(name);
36499
36599
  }
36500
- });
36600
+ }
36501
36601
  } catch {
36502
36602
  return [];
36503
36603
  }
@@ -47511,7 +47611,7 @@ const capitalizeText = (text, fullText, startOffset) => {
47511
47611
  return result;
47512
47612
  };
47513
47613
  const applyTextTransform = (text, run, startOffset) => {
47514
- const transform = run.textTransform;
47614
+ const transform = "textTransform" in run ? run.textTransform : void 0;
47515
47615
  if (!text || !transform || transform === "none") return text;
47516
47616
  if (transform === "uppercase") return text.toUpperCase();
47517
47617
  if (transform === "lowercase") return text.toLowerCase();
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-Bd6dIe0l.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-Cv-PWHhI.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 { ref, readonly, watch, computed, getCurrentInstance, onMounted, onBeforeUnmount, reactive, onBeforeMount, inject, onActivated, onDeactivated, createTextVNode, Fragment, Comment, defineComponent, provide, withDirectives, h, Teleport, toRef, nextTick, renderSlot, isVNode, shallowRef, watchEffect, mergeProps, Transition, vShow, cloneVNode, Text, markRaw, createElementBlock, openBlock, createElementVNode, createCommentVNode, normalizeClass, normalizeStyle, withKeys, unref, withModifiers, createBlock, toDisplayString, vModelText, createVNode, renderList, withCtx } from "vue";
2
- import { p as process$1 } from "./converter-Bd6dIe0l.js";
3
- import { g as global$1, _ as _export_sfc, u as useHighContrastMode } from "./editor-C3sjGwAb.js";
2
+ import { p as process$1 } from "./converter-Cv-PWHhI.js";
3
+ import { g as global$1, _ as _export_sfc, u as useHighContrastMode } from "./editor-R1nZ8Y4J.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-Bd6dIe0l.js";
1
+ import { ac } from "./chunks/converter-Cv-PWHhI.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-Bd6dIe0l.js";
2
- import { D } from "./chunks/docx-zipper-Dzdi5pfi.js";
1
+ import "./chunks/converter-Cv-PWHhI.js";
2
+ import { D } from "./chunks/docx-zipper-aIZi_y1u.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-C3sjGwAb.js";
2
- import "./chunks/converter-Bd6dIe0l.js";
3
- import "./chunks/docx-zipper-Dzdi5pfi.js";
1
+ import { E } from "./chunks/editor-R1nZ8Y4J.js";
2
+ import "./chunks/converter-Cv-PWHhI.js";
3
+ import "./chunks/docx-zipper-aIZi_y1u.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-Dzdi5pfi.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-aIZi_y1u.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-Bd6dIe0l.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-Bd6dIe0l.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 SLASH_MENU_HANDLED_FLAG, m as SlashMenuPluginKey, s as shouldBypassContextMenu, n as generateRulerDefinition, o as clampHandlePosition, p as calculateMarginFromHandle, q as measureCache, t as isHeadless, E as Editor, v as getStarterExtensions, P as PresentationEditor, w as Placeholder, x as getRichTextExtensions, D as DecorationSet, z as Decoration, M as Mark, A as Extension, B as Attribute, N as Node } from "./chunks/editor-C3sjGwAb.js";
15
- import { G, J, H, T, C, I, F } from "./chunks/editor-C3sjGwAb.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-Cv-PWHhI.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-Cv-PWHhI.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 SLASH_MENU_HANDLED_FLAG, m as SlashMenuPluginKey, s as shouldBypassContextMenu, n as generateRulerDefinition, o as clampHandlePosition, p as calculateMarginFromHandle, q as measureCache, t as isHeadless, E as Editor, v as getStarterExtensions, P as PresentationEditor, w as Placeholder, x as getRichTextExtensions, D as DecorationSet, z as Decoration, M as Mark, A as Extension, B as Attribute, N as Node } from "./chunks/editor-R1nZ8Y4J.js";
15
+ import { G, J, H, T, C, I, F } from "./chunks/editor-R1nZ8Y4J.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-Bn20lflQ.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-DTrmhth_.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-Dzdi5pfi.js";
19
+ import { D } from "./chunks/docx-zipper-aIZi_y1u.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-Bn20lflQ.js";
3
- import "./chunks/editor-C3sjGwAb.js";
2
+ import { T } from "./chunks/toolbar-DTrmhth_.js";
3
+ import "./chunks/editor-R1nZ8Y4J.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-BY4paJvP.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CeYiIfGN.cjs");
4
4
  require("./chunks/vue-gvuFr0vx.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-B1DZfUz0.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-o4f9FxT-.es.js";
2
2
  import "./chunks/vue-CLFbn_1r.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-BY4paJvP.cjs");
4
- const superdoc = require("./chunks/index-k0xTe_8v.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-CeYiIfGN.cjs");
4
+ const superdoc = require("./chunks/index-VXujz1iS.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-B1DZfUz0.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-CSZ7bAL7.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-o4f9FxT-.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-NcWPPbrQ.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,