superdoc 1.0.0-beta.85 → 1.0.0-beta.87

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-CGlfOU3w.cjs → PdfViewer-Cwmc4rak.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-DKSowWMT.es.js → PdfViewer-DAayAt76.es.js} +1 -1
  3. package/dist/chunks/{index-B4I7N08F.es.js → index-BV2SxVfK.es.js} +3 -3
  4. package/dist/chunks/{index-nbBk8Xrw.cjs → index-huIbWXSg.cjs} +3 -3
  5. package/dist/chunks/{index-D8ciXlCs-B1Q8QwX8.cjs → index-rv7o9043-DD5SvBoC.cjs} +1 -1
  6. package/dist/chunks/{index-D8ciXlCs-CB0cgrGv.es.js → index-rv7o9043-DVlRSGhv.es.js} +1 -1
  7. package/dist/chunks/{super-editor.es-BblRVT7_.es.js → super-editor.es-BuujpqOr.es.js} +105 -13
  8. package/dist/chunks/{super-editor.es-Hkn9VlOX.cjs → super-editor.es-C43B4f8Z.cjs} +105 -13
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-JgEU6dRK.js → converter-G519mwN2.js} +14 -8
  11. package/dist/super-editor/chunks/{docx-zipper-I9EOoeW0.js → docx-zipper-CHfjJ_h-.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-tcvFrXO7.js → editor-BQsR9BR1.js} +93 -7
  13. package/dist/super-editor/chunks/{index-D8ciXlCs.js → index-rv7o9043.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-CIlSwcI_.js → toolbar-DNfQq2Cl.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 +107 -15
  26. package/dist/superdoc.umd.js.map +1 -1
  27. package/package.json +1 -1
@@ -20299,6 +20299,7 @@ const handleParagraphNode$1 = (params) => {
20299
20299
  params,
20300
20300
  inlineParagraphProperties,
20301
20301
  insideTable,
20302
+ false,
20302
20303
  tableStyleId
20303
20304
  );
20304
20305
  const { elements = [], attributes = {}, marks = [] } = parseProperties(node, params.docx);
@@ -20987,7 +20988,9 @@ const translator$Z = NodeTranslator.from(
20987
20988
  (v2) => integerToString(v2)
20988
20989
  )
20989
20990
  );
20990
- const translator$Y = NodeTranslator.from(createSingleAttrPropertyHandler("w:vMerge"));
20991
+ const translator$Y = NodeTranslator.from(
20992
+ createSingleAttrPropertyHandler("w:vMerge", null, "w:val", (val) => !val ? "continue" : val)
20993
+ );
20991
20994
  const translator$X = NodeTranslator.from(createBorderPropertyHandler("w:end"));
20992
20995
  const translator$W = NodeTranslator.from(createMeasurementPropertyHandler("w:end", "marginEnd"));
20993
20996
  const translator$V = NodeTranslator.from(createBorderPropertyHandler("w:insideH"));
@@ -21366,11 +21369,12 @@ function generateTableCellProperties(node) {
21366
21369
  delete tableCellProperties.vAlign;
21367
21370
  }
21368
21371
  const { rowspan } = attrs;
21369
- if (rowspan && rowspan > 1 && tableCellProperties.vMerge !== "restart") {
21372
+ const hasExistingVMerge = tableCellProperties.vMerge != null;
21373
+ if (rowspan && rowspan > 1) {
21370
21374
  tableCellProperties["vMerge"] = "restart";
21371
21375
  } else if (attrs.continueMerge) {
21372
21376
  tableCellProperties["vMerge"] = "continue";
21373
- } else if (tableCellProperties?.vMerge) {
21377
+ } else if (!hasExistingVMerge) {
21374
21378
  delete tableCellProperties.vMerge;
21375
21379
  }
21376
21380
  const { borders = {} } = attrs;
@@ -33460,12 +33464,14 @@ function calculateResolvedParagraphProperties(editor, node, $pos) {
33460
33464
  if (cached) {
33461
33465
  return cached;
33462
33466
  }
33463
- const inTable = Boolean(findParentNodeClosestToPos($pos, (node2) => node2.type.name === "table"));
33467
+ const tableNode = findParentNodeClosestToPos($pos, (node2) => node2.type.name === "table");
33468
+ const tableStyleId = tableNode?.node.attrs.tableStyleId || null;
33464
33469
  const paragraphProperties = resolveParagraphProperties(
33465
33470
  { docx: editor.converter.convertedXml, numbering: editor.converter.numbering },
33466
33471
  node.attrs.paragraphProperties || {},
33467
- inTable,
33468
- false
33472
+ Boolean(tableNode),
33473
+ false,
33474
+ tableStyleId
33469
33475
  );
33470
33476
  resolvedParagraphPropertiesCache.set(node, paragraphProperties);
33471
33477
  return paragraphProperties;
@@ -38331,7 +38337,7 @@ function _getReferencedTableStyles(tableStyleReference, params) {
38331
38337
  const tblPr = styleTag.elements.find((el) => el.name === "w:tblPr");
38332
38338
  if (tblPr && tblPr.elements) {
38333
38339
  if (baseTblPr && baseTblPr.elements) {
38334
- tblPr.elements.push(...baseTblPr.elements);
38340
+ tblPr.elements = [...baseTblPr.elements, ...tblPr.elements];
38335
38341
  }
38336
38342
  const tableProperties = translator$c.encode({ ...params, nodes: [tblPr] });
38337
38343
  if (tableProperties) {
@@ -42691,7 +42697,7 @@ const _SuperConverter = class _SuperConverter {
42691
42697
  static getStoredSuperdocVersion(docx) {
42692
42698
  return _SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
42693
42699
  }
42694
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.85") {
42700
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.0.0-beta.87") {
42695
42701
  return _SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
42696
42702
  }
42697
42703
  /**
@@ -1,4 +1,4 @@
1
- import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-JgEU6dRK.js";
1
+ import { p as process$1, aJ as commonjsGlobal, B as Buffer, aK as getDefaultExportFromCjs, aL as getContentTypesFromXml, aM as xmljs } from "./converter-G519mwN2.js";
2
2
  function commonjsRequire(path) {
3
3
  throw new Error('Could not dynamically require "' + path + '". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.');
4
4
  }
@@ -12,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-JgEU6dRK.js";
16
- import { D as DocxZipper } from "./docx-zipper-I9EOoeW0.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-G519mwN2.js";
16
+ import { D as DocxZipper } from "./docx-zipper-CHfjJ_h-.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() {
@@ -10877,6 +10877,23 @@ const findTrackedMarkBetween = ({
10877
10877
  };
10878
10878
  }
10879
10879
  });
10880
+ const nodeAtEndPosition = doc2.nodeAt(endPos);
10881
+ if (nodeAtEndPosition?.type?.name === "run") {
10882
+ const node = nodeAtEndPosition.content?.content?.[0];
10883
+ const isTextNode = node?.type?.name === "text";
10884
+ if (isTextNode) {
10885
+ const mark = node.marks.find(
10886
+ (mark2) => mark2.type.name === markName && Object.keys(attrs).every((attr) => mark2.attrs[attr] === attrs[attr])
10887
+ );
10888
+ if (mark && !markFound) {
10889
+ markFound = {
10890
+ from: endPos,
10891
+ to: endPos + node.nodeSize,
10892
+ mark
10893
+ };
10894
+ }
10895
+ }
10896
+ }
10880
10897
  return markFound;
10881
10898
  };
10882
10899
  const markInsertion = ({ tr, from: from2, to, user, date }) => {
@@ -13923,7 +13940,7 @@ const isHeadless = (editor) => {
13923
13940
  const shouldSkipNodeView = (editor) => {
13924
13941
  return isHeadless(editor);
13925
13942
  };
13926
- const summaryVersion = "1.0.0-beta.85";
13943
+ const summaryVersion = "1.0.0-beta.87";
13927
13944
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
13928
13945
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
13929
13946
  function mapAttributes(attrs) {
@@ -14715,7 +14732,7 @@ const _Editor = class _Editor extends EventEmitter {
14715
14732
  { default: remarkStringify },
14716
14733
  { default: remarkGfm }
14717
14734
  ] = await Promise.all([
14718
- import("./index-D8ciXlCs.js"),
14735
+ import("./index-rv7o9043.js"),
14719
14736
  import("./index-DRCvimau.js"),
14720
14737
  import("./index-C_x_N6Uh.js"),
14721
14738
  import("./index-D_sWOSiG.js"),
@@ -14920,7 +14937,7 @@ const _Editor = class _Editor extends EventEmitter {
14920
14937
  * Process collaboration migrations
14921
14938
  */
14922
14939
  processCollaborationMigrations() {
14923
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.85");
14940
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.87");
14924
14941
  if (!this.options.ydoc) return;
14925
14942
  const metaMap = this.options.ydoc.getMap("meta");
14926
14943
  let docVersion = metaMap.get("version");
@@ -18084,7 +18101,9 @@ function hydrateImageBlocks(blocks, mediaFiles) {
18084
18101
  let cellsChanged = false;
18085
18102
  const newCells = row.cells.map((cell) => {
18086
18103
  let cellChanged = false;
18087
- const hydratedBlocks = (cell.blocks ?? (cell.paragraph ? [cell.paragraph] : [])).map((cb) => hydrateBlock(cb));
18104
+ const hydratedBlocks = (cell.blocks ?? (cell.paragraph ? [cell.paragraph] : [])).map(
18105
+ (cb) => hydrateBlock(cb)
18106
+ );
18088
18107
  if (cell.blocks && hydratedBlocks !== cell.blocks) {
18089
18108
  cellChanged = true;
18090
18109
  }
@@ -18119,6 +18138,40 @@ function hydrateImageBlocks(blocks, mediaFiles) {
18119
18138
  }
18120
18139
  return blk;
18121
18140
  }
18141
+ if (blk.kind === "drawing") {
18142
+ const drawingBlock = blk;
18143
+ if (drawingBlock.drawingKind !== "shapeGroup") {
18144
+ return blk;
18145
+ }
18146
+ const shapeGroupBlock = drawingBlock;
18147
+ if (!shapeGroupBlock.shapes || shapeGroupBlock.shapes.length === 0) {
18148
+ return blk;
18149
+ }
18150
+ let shapesChanged = false;
18151
+ const hydratedShapes = shapeGroupBlock.shapes.map((shape) => {
18152
+ if (shape.shapeType !== "image") {
18153
+ return shape;
18154
+ }
18155
+ const imageChild = shape;
18156
+ const src = imageChild.attrs?.src;
18157
+ if (!src || src.startsWith("data:")) {
18158
+ return shape;
18159
+ }
18160
+ const resolvedSrc = resolveImageSrc(src);
18161
+ if (resolvedSrc) {
18162
+ shapesChanged = true;
18163
+ return {
18164
+ ...imageChild,
18165
+ attrs: { ...imageChild.attrs, src: resolvedSrc }
18166
+ };
18167
+ }
18168
+ return shape;
18169
+ });
18170
+ if (shapesChanged) {
18171
+ return { ...shapeGroupBlock, shapes: hydratedShapes };
18172
+ }
18173
+ return blk;
18174
+ }
18122
18175
  return blk;
18123
18176
  };
18124
18177
  return hydrateBlock(block);
@@ -27682,6 +27735,7 @@ const renderTableCell = (deps) => {
27682
27735
  cell,
27683
27736
  borders,
27684
27737
  renderLine,
27738
+ renderDrawingContent,
27685
27739
  context,
27686
27740
  applySdtDataset,
27687
27741
  fromLine,
@@ -27824,6 +27878,11 @@ const renderTableCell = (deps) => {
27824
27878
  img.style.height = "100%";
27825
27879
  img.style.objectFit = block.objectFit ?? "contain";
27826
27880
  drawingInner.appendChild(img);
27881
+ } else if (renderDrawingContent) {
27882
+ const drawingContent = renderDrawingContent(block);
27883
+ drawingContent.style.width = "100%";
27884
+ drawingContent.style.height = "100%";
27885
+ drawingInner.appendChild(drawingContent);
27827
27886
  } else {
27828
27887
  const placeholder = doc2.createElement("div");
27829
27888
  placeholder.style.width = "100%";
@@ -27949,6 +28008,7 @@ const renderTableRow = (deps) => {
27949
28008
  allRowHeights,
27950
28009
  context,
27951
28010
  renderLine,
28011
+ renderDrawingContent,
27952
28012
  applySdtDataset,
27953
28013
  continuesFromPrev,
27954
28014
  continuesOnNext,
@@ -28045,6 +28105,7 @@ const renderTableRow = (deps) => {
28045
28105
  cell,
28046
28106
  borders: resolvedBorders,
28047
28107
  renderLine,
28108
+ renderDrawingContent,
28048
28109
  context,
28049
28110
  applySdtDataset,
28050
28111
  fromLine,
@@ -28098,7 +28159,17 @@ function applySdtContainerStyling(doc2, container, sdt, containerSdt) {
28098
28159
  container.appendChild(labelEl);
28099
28160
  }
28100
28161
  const renderTableFragment = (deps) => {
28101
- const { doc: doc2, fragment, blockLookup, context, renderLine, applyFragmentFrame, applySdtDataset, applyStyles: applyStyles2 } = deps;
28162
+ const {
28163
+ doc: doc2,
28164
+ fragment,
28165
+ blockLookup,
28166
+ context,
28167
+ renderLine,
28168
+ renderDrawingContent,
28169
+ applyFragmentFrame,
28170
+ applySdtDataset,
28171
+ applyStyles: applyStyles2
28172
+ } = deps;
28102
28173
  if (!doc2) {
28103
28174
  console.error("DomPainter: document is not available");
28104
28175
  if (typeof document !== "undefined") {
@@ -28228,6 +28299,7 @@ const renderTableFragment = (deps) => {
28228
28299
  allRowHeights,
28229
28300
  context,
28230
28301
  renderLine,
28302
+ renderDrawingContent,
28231
28303
  applySdtDataset,
28232
28304
  // Headers are always rendered as-is (no border suppression)
28233
28305
  continuesFromPrev: false,
@@ -28257,6 +28329,7 @@ const renderTableFragment = (deps) => {
28257
28329
  allRowHeights,
28258
28330
  context,
28259
28331
  renderLine,
28332
+ renderDrawingContent,
28260
28333
  applySdtDataset,
28261
28334
  // Draw top border if table continues from previous fragment (MS Word behavior)
28262
28335
  continuesFromPrev: isFirstRenderedBodyRow && fragment.continuesFromPrev === true,
@@ -30499,12 +30572,25 @@ const _DomPainter = class _DomPainter {
30499
30572
  const renderLineForTableCell = (block, line, ctx2) => {
30500
30573
  return this.renderLine(block, line, ctx2, void 0, void 0, true);
30501
30574
  };
30575
+ const renderDrawingContentForTableCell = (block) => {
30576
+ if (block.drawingKind === "image") {
30577
+ return this.createDrawingImageElement(block);
30578
+ }
30579
+ if (block.drawingKind === "shapeGroup") {
30580
+ return this.createShapeGroupElement(block);
30581
+ }
30582
+ if (block.drawingKind === "vectorShape") {
30583
+ return this.createVectorShapeElement(block, block.geometry, false);
30584
+ }
30585
+ return this.createDrawingPlaceholder();
30586
+ };
30502
30587
  return renderTableFragment({
30503
30588
  doc: this.doc,
30504
30589
  fragment,
30505
30590
  context,
30506
30591
  blockLookup: this.blockLookup,
30507
30592
  renderLine: renderLineForTableCell,
30593
+ renderDrawingContent: renderDrawingContentForTableCell,
30508
30594
  applyFragmentFrame: applyFragmentFrameWithSection,
30509
30595
  applySdtDataset: this.applySdtDataset.bind(this),
30510
30596
  applyStyles: applyStyles$2
@@ -1,4 +1,4 @@
1
- import { aK as getDefaultExportFromCjs } from "./converter-JgEU6dRK.js";
1
+ import { aK as getDefaultExportFromCjs } from "./converter-G519mwN2.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-JgEU6dRK.js";
3
- import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-tcvFrXO7.js";
2
+ import { p as process$1 } from "./converter-G519mwN2.js";
3
+ import { _ as _export_sfc, u as useHighContrastMode, g as global$1 } from "./editor-BQsR9BR1.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-JgEU6dRK.js";
1
+ import { ac } from "./chunks/converter-G519mwN2.js";
2
2
  export {
3
3
  ac as SuperConverter
4
4
  };
@@ -1,5 +1,5 @@
1
- import "./chunks/converter-JgEU6dRK.js";
2
- import { D } from "./chunks/docx-zipper-I9EOoeW0.js";
1
+ import "./chunks/converter-G519mwN2.js";
2
+ import { D } from "./chunks/docx-zipper-CHfjJ_h-.js";
3
3
  export {
4
4
  D as default
5
5
  };
@@ -1,6 +1,6 @@
1
- import { E } from "./chunks/editor-tcvFrXO7.js";
2
- import "./chunks/converter-JgEU6dRK.js";
3
- import "./chunks/docx-zipper-I9EOoeW0.js";
1
+ import { E } from "./chunks/editor-BQsR9BR1.js";
2
+ import "./chunks/converter-G519mwN2.js";
3
+ import "./chunks/docx-zipper-CHfjJ_h-.js";
4
4
  export {
5
5
  E as Editor
6
6
  };
@@ -1,4 +1,4 @@
1
- import { J as JSZip } from "./chunks/docx-zipper-I9EOoeW0.js";
1
+ import { J as JSZip } from "./chunks/docx-zipper-CHfjJ_h-.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-JgEU6dRK.js";
13
- import { ac, i, a9, aQ } from "./chunks/converter-JgEU6dRK.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-tcvFrXO7.js";
15
- import { F, I, G, T, B, H, C } from "./chunks/editor-tcvFrXO7.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-G519mwN2.js";
13
+ import { ac, i, a9, aQ } from "./chunks/converter-G519mwN2.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-BQsR9BR1.js";
15
+ import { F, I, G, T, B, H, C } from "./chunks/editor-BQsR9BR1.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-CIlSwcI_.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-DNfQq2Cl.js";
18
18
  import AIWriter from "./ai-writer.es.js";
19
- import { D } from "./chunks/docx-zipper-I9EOoeW0.js";
19
+ import { D } from "./chunks/docx-zipper-CHfjJ_h-.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-CIlSwcI_.js";
3
- import "./chunks/editor-tcvFrXO7.js";
2
+ import { T } from "./chunks/toolbar-DNfQq2Cl.js";
3
+ import "./chunks/editor-BQsR9BR1.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-Hkn9VlOX.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-C43B4f8Z.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-BblRVT7_.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-BuujpqOr.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-Hkn9VlOX.cjs");
4
- const superdoc = require("./chunks/index-nbBk8Xrw.cjs");
3
+ const superEditor_es = require("./chunks/super-editor.es-C43B4f8Z.cjs");
4
+ const superdoc = require("./chunks/index-huIbWXSg.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-BblRVT7_.es.js";
2
- import { D, H, P, S as S2, m, l } from "./chunks/index-B4I7N08F.es.js";
1
+ import { a, E, b, S, d, i, j, n, r, p, q } from "./chunks/super-editor.es-BuujpqOr.es.js";
2
+ import { D, H, P, S as S2, m, l } from "./chunks/index-BV2SxVfK.es.js";
3
3
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
4
4
  export {
5
5
  a as AnnotatorHelpers,