@harbour-enterprises/superdoc 1.5.0-next.2 → 1.5.0-next.3

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.
@@ -1,6 +1,6 @@
1
1
  import { d as defineComponent, h, T as Transition, p as process$1, w as watchEffect, c as computed, r as ref, f as onMounted, X as onUnmounted, E as createElementBlock, G as openBlock, K as createBaseVNode, M as createCommentVNode, I as createVNode, v as unref } from "./vue-BnBKJwCW.es.js";
2
- import { N as NBaseLoading, u as useSuperdocStore, s as storeToRefs, a as useSelection } from "./index-D03ZjzRB.es.js";
3
- import { C as derived, r as c, q as cB, aF as fadeInTransition, y as cM, I as warnOnce, J as useConfig, N as useTheme, aG as pxfy, P as createKey, Q as useThemeClass, aH as useCompitable, ai as _export_sfc } from "./index-BacPRPG2.es.js";
2
+ import { N as NBaseLoading, u as useSuperdocStore, s as storeToRefs, a as useSelection } from "./index-CebB-tdL.es.js";
3
+ import { C as derived, r as c, q as cB, aF as fadeInTransition, y as cM, I as warnOnce, J as useConfig, N as useTheme, aG as pxfy, P as createKey, Q as useThemeClass, aH as useCompitable, ai as _export_sfc } from "./index-CuBynP0z.es.js";
4
4
  function self(vars) {
5
5
  const {
6
6
  opacityDisabled,
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-De9wkgLl.cjs");
4
- const superdoc = require("./index-1UViep5u.cjs");
5
- const index = require("./index-BHHMmDjt.cjs");
4
+ const superdoc = require("./index-BmEbRo6D.cjs");
5
+ const index = require("./index-BxgDTX0H.cjs");
6
6
  function self(vars) {
7
7
  const {
8
8
  opacityDisabled,
@@ -31564,7 +31564,7 @@ class SuperConverter {
31564
31564
  static getStoredSuperdocVersion(docx) {
31565
31565
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
31566
31566
  }
31567
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.5.0-next.2") {
31567
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.5.0-next.3") {
31568
31568
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
31569
31569
  }
31570
31570
  /**
@@ -31565,7 +31565,7 @@ class SuperConverter {
31565
31565
  static getStoredSuperdocVersion(docx) {
31566
31566
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
31567
31567
  }
31568
- static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.5.0-next.2") {
31568
+ static setStoredSuperdocVersion(docx = this.convertedXml, version = "1.5.0-next.3") {
31569
31569
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version, false);
31570
31570
  }
31571
31571
  /**
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
- const index = require("./index-BHHMmDjt.cjs");
3
- require("./SuperConverter-CC_Varka.cjs");
2
+ const index = require("./index-BxgDTX0H.cjs");
3
+ require("./SuperConverter-B35ywdgG.cjs");
4
4
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
5
5
  const eventemitter3 = require("./eventemitter3-BQuRcMPI.cjs");
6
6
  const provider = require("@hocuspocus/provider");
@@ -7530,7 +7530,7 @@ const _sfc_main = {
7530
7530
  __name: "SuperDoc",
7531
7531
  emits: ["selection-update"],
7532
7532
  setup(__props, { emit: __emit }) {
7533
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BwvdH5n3.cjs")));
7533
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-CkolHMrf.cjs")));
7534
7534
  const superdocStore = useSuperdocStore();
7535
7535
  const commentsStore = useCommentsStore();
7536
7536
  const {
@@ -8484,7 +8484,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
8484
8484
  this.config.colors = shuffleArray(this.config.colors);
8485
8485
  this.userColorMap = /* @__PURE__ */ new Map();
8486
8486
  this.colorIndex = 0;
8487
- this.version = "1.5.0-next.2";
8487
+ this.version = "1.5.0-next.3";
8488
8488
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8489
8489
  this.superdocId = config.superdocId || uuid.v4();
8490
8490
  this.colors = this.config.colors;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  const jszip = require("./jszip-C8_CqJxM.cjs");
3
3
  const helpers$1 = require("./helpers-nOdwpmwb.cjs");
4
- const superEditor_converter = require("./SuperConverter-CC_Varka.cjs");
4
+ const superEditor_converter = require("./SuperConverter-B35ywdgG.cjs");
5
5
  const vue = require("./vue-De9wkgLl.cjs");
6
6
  require("./jszip.min-BPh2MMAa.cjs");
7
7
  const eventemitter3 = require("./eventemitter3-BQuRcMPI.cjs");
@@ -15516,7 +15516,7 @@ const canUseDOM = () => {
15516
15516
  return false;
15517
15517
  }
15518
15518
  };
15519
- const summaryVersion = "1.5.0-next.2";
15519
+ const summaryVersion = "1.5.0-next.3";
15520
15520
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15521
15521
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15522
15522
  function mapAttributes(attrs) {
@@ -18173,7 +18173,7 @@ class Editor extends EventEmitter {
18173
18173
  * Process collaboration migrations
18174
18174
  */
18175
18175
  processCollaborationMigrations() {
18176
- console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.2");
18176
+ console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.3");
18177
18177
  if (!this.options.ydoc) return;
18178
18178
  const metaMap = this.options.ydoc.getMap("meta");
18179
18179
  let docVersion = metaMap.get("version");
@@ -24288,6 +24288,9 @@ function applySdtContainerStyling(doc2, container, sdt, containerSdt, boundaryOp
24288
24288
  container.dataset.sdtContainerStart = String(isStart);
24289
24289
  container.dataset.sdtContainerEnd = String(isEnd);
24290
24290
  container.style.overflow = "visible";
24291
+ if (boundaryOptions?.widthOverride != null) {
24292
+ container.style.width = `${boundaryOptions.widthOverride}px`;
24293
+ }
24291
24294
  if (isStart) {
24292
24295
  const labelEl = doc2.createElement("div");
24293
24296
  labelEl.className = config.labelClassName;
@@ -24850,6 +24853,7 @@ const renderTableFragment = (deps) => {
24850
24853
  fragment,
24851
24854
  blockLookup,
24852
24855
  context,
24856
+ sdtBoundary,
24853
24857
  renderLine,
24854
24858
  renderDrawingContent,
24855
24859
  applyFragmentFrame,
@@ -24890,7 +24894,7 @@ const renderTableFragment = (deps) => {
24890
24894
  applyFragmentFrame(container, fragment);
24891
24895
  container.style.height = `${fragment.height}px`;
24892
24896
  applySdtDataset(container, block.attrs?.sdt);
24893
- applySdtContainerStyling(doc2, container, block.attrs?.sdt);
24897
+ applySdtContainerStyling(doc2, container, block.attrs?.sdt, block.attrs?.containerSdt, sdtBoundary);
24894
24898
  container.classList.add("superdoc-table-fragment");
24895
24899
  if (fragment.metadata?.columnBoundaries) {
24896
24900
  const columnCount = measure.columnWidths.length;
@@ -26528,6 +26532,9 @@ class DomPainter {
26528
26532
  this.updatePositionAttributes(current.element, this.currentMapping);
26529
26533
  }
26530
26534
  this.updateFragmentElement(current.element, fragment, contextBase.section);
26535
+ if (sdtBoundary?.widthOverride != null) {
26536
+ current.element.style.width = `${sdtBoundary.widthOverride}px`;
26537
+ }
26531
26538
  current.fragment = fragment;
26532
26539
  current.key = key2;
26533
26540
  current.context = contextBase;
@@ -26643,7 +26650,7 @@ class DomPainter {
26643
26650
  return this.renderDrawingFragment(fragment, context);
26644
26651
  }
26645
26652
  if (fragment.kind === "table") {
26646
- return this.renderTableFragment(fragment, context);
26653
+ return this.renderTableFragment(fragment, context, sdtBoundary);
26647
26654
  }
26648
26655
  throw new Error(`DomPainter: unsupported fragment kind ${fragment.kind}`);
26649
26656
  }
@@ -27770,7 +27777,7 @@ class DomPainter {
27770
27777
  placeholder.style.border = "1px dashed rgba(15, 23, 42, 0.3)";
27771
27778
  return placeholder;
27772
27779
  }
27773
- renderTableFragment(fragment, context) {
27780
+ renderTableFragment(fragment, context, sdtBoundary) {
27774
27781
  if (!this.doc) {
27775
27782
  throw new Error("DomPainter: document is not available");
27776
27783
  }
@@ -27800,6 +27807,7 @@ class DomPainter {
27800
27807
  fragment,
27801
27808
  context,
27802
27809
  blockLookup: this.blockLookup,
27810
+ sdtBoundary,
27803
27811
  renderLine: renderLineForTableCell,
27804
27812
  renderDrawingContent: renderDrawingContentForTableCell,
27805
27813
  applyFragmentFrame: applyFragmentFrameWithSection,
@@ -29119,19 +29127,40 @@ const getFragmentSdtContainerKey = (fragment, blockLookup) => {
29119
29127
  const attrs = item?.paragraph.attrs;
29120
29128
  return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
29121
29129
  }
29130
+ if (fragment.kind === "table" && block.kind === "table") {
29131
+ const attrs = block.attrs;
29132
+ return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
29133
+ }
29122
29134
  return null;
29123
29135
  };
29124
29136
  const computeSdtBoundaries = (fragments, blockLookup) => {
29125
29137
  const boundaries = /* @__PURE__ */ new Map();
29126
29138
  const containerKeys = fragments.map((fragment) => getFragmentSdtContainerKey(fragment, blockLookup));
29127
- for (let i = 0; i < fragments.length; i += 1) {
29139
+ let i = 0;
29140
+ while (i < fragments.length) {
29128
29141
  const currentKey = containerKeys[i];
29129
- if (!currentKey) continue;
29130
- const prev = i > 0 ? containerKeys[i - 1] : null;
29131
- const next = i < fragments.length - 1 ? containerKeys[i + 1] : null;
29132
- const isStart = currentKey !== prev;
29133
- const isEnd = currentKey !== next;
29134
- boundaries.set(i, { isStart, isEnd });
29142
+ if (!currentKey) {
29143
+ i += 1;
29144
+ continue;
29145
+ }
29146
+ let groupRight = fragments[i].x + fragments[i].width;
29147
+ let j = i;
29148
+ while (j + 1 < fragments.length && containerKeys[j + 1] === currentKey) {
29149
+ j += 1;
29150
+ const fragmentRight = fragments[j].x + fragments[j].width;
29151
+ if (fragmentRight > groupRight) {
29152
+ groupRight = fragmentRight;
29153
+ }
29154
+ }
29155
+ for (let k2 = i; k2 <= j; k2 += 1) {
29156
+ const fragment = fragments[k2];
29157
+ boundaries.set(k2, {
29158
+ isStart: k2 === i,
29159
+ isEnd: k2 === j,
29160
+ widthOverride: groupRight - fragment.x
29161
+ });
29162
+ }
29163
+ i = j + 1;
29135
29164
  }
29136
29165
  return boundaries;
29137
29166
  };
@@ -1,5 +1,5 @@
1
- import { B as BIT8, M as MAX_SAFE_INTEGER, c as create, a as BITS7, u as utf8TextDecoder, b as create$1, s as setIfUndefined, d as create$2, f as from, e as floor$1, g as equalityDeep, w as writeVarUint, h as writeVarString, t as toUint8Array, i as createEncoder, j as createInjectionKey, k as toString, l as throwError, m as useSsrAdapter, n as configProviderInjectionKey, o as cssrAnchorMetaName, p as globalStyle, q as cB, r as c, v as isMounted, x as commonVariables$2, y as cM, z as cNotM, A as cE, C as derived, D as changeColor, E as insideModal, F as insidePopover, G as resolveWrappedSlot, H as on, I as warnOnce, J as useConfig, K as useMergedState, L as useMemo, N as useTheme, O as useRtl, P as createKey, Q as useThemeClass, R as createId, S as call, T as render, U as messageProviderInjectionKey, V as messageApiInjectionKey, W as fromBase64, X as onChange, Y as varStorage, Z as toBase64, _ as createUint8ArrayFromArrayBuffer, $ as offChange, a0 as writeVarUint8Array, a1 as map, a2 as length, a3 as isNode, a4 as min, a5 as pow, a6 as comments_module_events, a7 as getFileObject, a8 as getTrackChanges, a9 as CommentsPluginKey, aa as TrackChangesBasePluginKey, ab as Editor, ac as getRichTextExtensions, ad as ellipsisVerticalSvg, ae as xmarkIconSvg, af as checkIconSvg, ag as caretDownIconSvg, ah as commentIconSvg, ai as _export_sfc, aj as NDropdown, ak as SuperInput, al as vClickOutside, am as PresentationEditor, an as SuperEditor, ao as AIWriter, ap as NConfigProvider, aq as SuperToolbar } from "./index-BacPRPG2.es.js";
2
- import "./SuperConverter-UBc5QZsB.es.js";
1
+ import { B as BIT8, M as MAX_SAFE_INTEGER, c as create, a as BITS7, u as utf8TextDecoder, b as create$1, s as setIfUndefined, d as create$2, f as from, e as floor$1, g as equalityDeep, w as writeVarUint, h as writeVarString, t as toUint8Array, i as createEncoder, j as createInjectionKey, k as toString, l as throwError, m as useSsrAdapter, n as configProviderInjectionKey, o as cssrAnchorMetaName, p as globalStyle, q as cB, r as c, v as isMounted, x as commonVariables$2, y as cM, z as cNotM, A as cE, C as derived, D as changeColor, E as insideModal, F as insidePopover, G as resolveWrappedSlot, H as on, I as warnOnce, J as useConfig, K as useMergedState, L as useMemo, N as useTheme, O as useRtl, P as createKey, Q as useThemeClass, R as createId, S as call, T as render, U as messageProviderInjectionKey, V as messageApiInjectionKey, W as fromBase64, X as onChange, Y as varStorage, Z as toBase64, _ as createUint8ArrayFromArrayBuffer, $ as offChange, a0 as writeVarUint8Array, a1 as map, a2 as length, a3 as isNode, a4 as min, a5 as pow, a6 as comments_module_events, a7 as getFileObject, a8 as getTrackChanges, a9 as CommentsPluginKey, aa as TrackChangesBasePluginKey, ab as Editor, ac as getRichTextExtensions, ad as ellipsisVerticalSvg, ae as xmarkIconSvg, af as checkIconSvg, ag as caretDownIconSvg, ah as commentIconSvg, ai as _export_sfc, aj as NDropdown, ak as SuperInput, al as vClickOutside, am as PresentationEditor, an as SuperEditor, ao as AIWriter, ap as NConfigProvider, aq as SuperToolbar } from "./index-CuBynP0z.es.js";
2
+ import "./SuperConverter-9G1UwVBf.es.js";
3
3
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
4
4
  import { E as EventEmitter } from "./eventemitter3-CwrdEv8r.es.js";
5
5
  import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
@@ -7513,7 +7513,7 @@ const _sfc_main = {
7513
7513
  __name: "SuperDoc",
7514
7514
  emits: ["selection-update"],
7515
7515
  setup(__props, { emit: __emit }) {
7516
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CjfwQAWB.es.js"));
7516
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-BWqysjFE.es.js"));
7517
7517
  const superdocStore = useSuperdocStore();
7518
7518
  const commentsStore = useCommentsStore();
7519
7519
  const {
@@ -8467,7 +8467,7 @@ class SuperDoc extends EventEmitter {
8467
8467
  this.config.colors = shuffleArray(this.config.colors);
8468
8468
  this.userColorMap = /* @__PURE__ */ new Map();
8469
8469
  this.colorIndex = 0;
8470
- this.version = "1.5.0-next.2";
8470
+ this.version = "1.5.0-next.3";
8471
8471
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8472
8472
  this.superdocId = config.superdocId || v4();
8473
8473
  this.colors = this.config.colors;
@@ -1,6 +1,6 @@
1
1
  import { B as Buffer$2 } from "./jszip-B1fkPkPJ.es.js";
2
2
  import { t as twipsToInches, i as inchesToTwips, p as ptToTwips, l as linesToTwips, a as twipsToLines, b as pixelsToTwips, h as halfPointToPoints, c as twipsToPixels$2, d as convertSizeToCSS, e as inchesToPixels } from "./helpers-C8e9wR5l.es.js";
3
- import { g as generateDocxRandomId, T as TextSelection$1, o as objectIncludes, w as wrapTextsInRuns, D as DOMParser$1, c as createDocFromMarkdown, a as createDocFromHTML, b as chainableEditorState, d as convertMarkdownToHTML, f as findParentNode, e as findParentNodeClosestToPos, h as generateRandom32BitHex, i as generateRandomSigned32BitIntStrId, P as PluginKey, j as Plugin, M as Mapping, N as NodeSelection, k as Selection, l as Slice, m as DOMSerializer, F as Fragment, n as Mark$1, p as dropPoint, A as AllSelection, q as Schema$1, s as canSplit, t as resolveRunProperties, u as encodeMarksFromRPr, v as liftTarget, x as canJoin, y as joinPoint, z as replaceStep$1, R as ReplaceAroundStep$1, B as htmlHandler, C as ReplaceStep, E as getResolvedParagraphProperties, G as changeListLevel, H as isList$1, I as updateNumberingProperties, L as ListHelpers, J as inputRulesPlugin, K as TrackDeleteMarkName$1, O as TrackInsertMarkName$1, Q as TrackFormatMarkName$1, U as AddMarkStep, V as RemoveMarkStep, W as CommandService, S as SuperConverter, X as EditorState, Y as unflattenListsInHtml, Z as SelectionRange, _ as Transform, $ as createOoxmlResolver, a0 as translator, a1 as translator$1, a2 as resolveDocxFontFamily, a3 as combineIndentProperties, a4 as _getReferencedTableStyles, a5 as decodeRPrFromMarks, a6 as calculateResolvedParagraphProperties, a7 as encodeCSSFromPPr, a8 as encodeCSSFromRPr, a9 as generateOrderedListIndex, aa as docxNumberingHelpers, ab as InputRule, ac as insertNewRelationship, ad as kebabCase$1, ae as getUnderlineCssString } from "./SuperConverter-UBc5QZsB.es.js";
3
+ import { g as generateDocxRandomId, T as TextSelection$1, o as objectIncludes, w as wrapTextsInRuns, D as DOMParser$1, c as createDocFromMarkdown, a as createDocFromHTML, b as chainableEditorState, d as convertMarkdownToHTML, f as findParentNode, e as findParentNodeClosestToPos, h as generateRandom32BitHex, i as generateRandomSigned32BitIntStrId, P as PluginKey, j as Plugin, M as Mapping, N as NodeSelection, k as Selection, l as Slice, m as DOMSerializer, F as Fragment, n as Mark$1, p as dropPoint, A as AllSelection, q as Schema$1, s as canSplit, t as resolveRunProperties, u as encodeMarksFromRPr, v as liftTarget, x as canJoin, y as joinPoint, z as replaceStep$1, R as ReplaceAroundStep$1, B as htmlHandler, C as ReplaceStep, E as getResolvedParagraphProperties, G as changeListLevel, H as isList$1, I as updateNumberingProperties, L as ListHelpers, J as inputRulesPlugin, K as TrackDeleteMarkName$1, O as TrackInsertMarkName$1, Q as TrackFormatMarkName$1, U as AddMarkStep, V as RemoveMarkStep, W as CommandService, S as SuperConverter, X as EditorState, Y as unflattenListsInHtml, Z as SelectionRange, _ as Transform, $ as createOoxmlResolver, a0 as translator, a1 as translator$1, a2 as resolveDocxFontFamily, a3 as combineIndentProperties, a4 as _getReferencedTableStyles, a5 as decodeRPrFromMarks, a6 as calculateResolvedParagraphProperties, a7 as encodeCSSFromPPr, a8 as encodeCSSFromRPr, a9 as generateOrderedListIndex, aa as docxNumberingHelpers, ab as InputRule, ac as insertNewRelationship, ad as kebabCase$1, ae as getUnderlineCssString } from "./SuperConverter-9G1UwVBf.es.js";
4
4
  import { p as process$1, r as ref, C as global$1, c as computed, E as createElementBlock, F as Fragment$1, S as renderList, O as withModifiers, G as openBlock, P as normalizeClass, M as createCommentVNode, H as toDisplayString, K as createBaseVNode, U as createApp, f as onMounted, X as onUnmounted, R as withDirectives, v as unref, Y as vModelText, y as nextTick, L as normalizeStyle, u as watch, Z as withKeys, _ as createTextVNode, I as createVNode, h as h$1, $ as readonly, s as getCurrentInstance, o as onBeforeUnmount, j as reactive, b as onBeforeMount, i as inject, a0 as onActivated, a1 as onDeactivated, a2 as Comment, d as defineComponent, a as provide, g as Teleport, t as toRef, a3 as renderSlot, a4 as isVNode, D as shallowRef, w as watchEffect, T as Transition, a5 as mergeProps, a6 as vShow, a7 as cloneVNode, a8 as Text$2, m as markRaw, N as createBlock, J as withCtx, a9 as useCssVars, V as resolveDynamicComponent, aa as normalizeProps, ab as guardReactiveProps } from "./vue-BnBKJwCW.es.js";
5
5
  import "./jszip.min-DCl8qkFO.es.js";
6
6
  import { E as EventEmitter$1 } from "./eventemitter3-CwrdEv8r.es.js";
@@ -15499,7 +15499,7 @@ const canUseDOM = () => {
15499
15499
  return false;
15500
15500
  }
15501
15501
  };
15502
- const summaryVersion = "1.5.0-next.2";
15502
+ const summaryVersion = "1.5.0-next.3";
15503
15503
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15504
15504
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15505
15505
  function mapAttributes(attrs) {
@@ -18156,7 +18156,7 @@ class Editor extends EventEmitter {
18156
18156
  * Process collaboration migrations
18157
18157
  */
18158
18158
  processCollaborationMigrations() {
18159
- console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.2");
18159
+ console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.3");
18160
18160
  if (!this.options.ydoc) return;
18161
18161
  const metaMap = this.options.ydoc.getMap("meta");
18162
18162
  let docVersion = metaMap.get("version");
@@ -24271,6 +24271,9 @@ function applySdtContainerStyling(doc2, container, sdt, containerSdt, boundaryOp
24271
24271
  container.dataset.sdtContainerStart = String(isStart);
24272
24272
  container.dataset.sdtContainerEnd = String(isEnd);
24273
24273
  container.style.overflow = "visible";
24274
+ if (boundaryOptions?.widthOverride != null) {
24275
+ container.style.width = `${boundaryOptions.widthOverride}px`;
24276
+ }
24274
24277
  if (isStart) {
24275
24278
  const labelEl = doc2.createElement("div");
24276
24279
  labelEl.className = config.labelClassName;
@@ -24833,6 +24836,7 @@ const renderTableFragment = (deps) => {
24833
24836
  fragment,
24834
24837
  blockLookup,
24835
24838
  context,
24839
+ sdtBoundary,
24836
24840
  renderLine,
24837
24841
  renderDrawingContent,
24838
24842
  applyFragmentFrame,
@@ -24873,7 +24877,7 @@ const renderTableFragment = (deps) => {
24873
24877
  applyFragmentFrame(container, fragment);
24874
24878
  container.style.height = `${fragment.height}px`;
24875
24879
  applySdtDataset(container, block.attrs?.sdt);
24876
- applySdtContainerStyling(doc2, container, block.attrs?.sdt);
24880
+ applySdtContainerStyling(doc2, container, block.attrs?.sdt, block.attrs?.containerSdt, sdtBoundary);
24877
24881
  container.classList.add("superdoc-table-fragment");
24878
24882
  if (fragment.metadata?.columnBoundaries) {
24879
24883
  const columnCount = measure.columnWidths.length;
@@ -26511,6 +26515,9 @@ class DomPainter {
26511
26515
  this.updatePositionAttributes(current.element, this.currentMapping);
26512
26516
  }
26513
26517
  this.updateFragmentElement(current.element, fragment, contextBase.section);
26518
+ if (sdtBoundary?.widthOverride != null) {
26519
+ current.element.style.width = `${sdtBoundary.widthOverride}px`;
26520
+ }
26514
26521
  current.fragment = fragment;
26515
26522
  current.key = key2;
26516
26523
  current.context = contextBase;
@@ -26626,7 +26633,7 @@ class DomPainter {
26626
26633
  return this.renderDrawingFragment(fragment, context);
26627
26634
  }
26628
26635
  if (fragment.kind === "table") {
26629
- return this.renderTableFragment(fragment, context);
26636
+ return this.renderTableFragment(fragment, context, sdtBoundary);
26630
26637
  }
26631
26638
  throw new Error(`DomPainter: unsupported fragment kind ${fragment.kind}`);
26632
26639
  }
@@ -27753,7 +27760,7 @@ class DomPainter {
27753
27760
  placeholder.style.border = "1px dashed rgba(15, 23, 42, 0.3)";
27754
27761
  return placeholder;
27755
27762
  }
27756
- renderTableFragment(fragment, context) {
27763
+ renderTableFragment(fragment, context, sdtBoundary) {
27757
27764
  if (!this.doc) {
27758
27765
  throw new Error("DomPainter: document is not available");
27759
27766
  }
@@ -27783,6 +27790,7 @@ class DomPainter {
27783
27790
  fragment,
27784
27791
  context,
27785
27792
  blockLookup: this.blockLookup,
27793
+ sdtBoundary,
27786
27794
  renderLine: renderLineForTableCell,
27787
27795
  renderDrawingContent: renderDrawingContentForTableCell,
27788
27796
  applyFragmentFrame: applyFragmentFrameWithSection,
@@ -29102,19 +29110,40 @@ const getFragmentSdtContainerKey = (fragment, blockLookup) => {
29102
29110
  const attrs = item?.paragraph.attrs;
29103
29111
  return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
29104
29112
  }
29113
+ if (fragment.kind === "table" && block.kind === "table") {
29114
+ const attrs = block.attrs;
29115
+ return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
29116
+ }
29105
29117
  return null;
29106
29118
  };
29107
29119
  const computeSdtBoundaries = (fragments, blockLookup) => {
29108
29120
  const boundaries = /* @__PURE__ */ new Map();
29109
29121
  const containerKeys = fragments.map((fragment) => getFragmentSdtContainerKey(fragment, blockLookup));
29110
- for (let i = 0; i < fragments.length; i += 1) {
29122
+ let i = 0;
29123
+ while (i < fragments.length) {
29111
29124
  const currentKey = containerKeys[i];
29112
- if (!currentKey) continue;
29113
- const prev = i > 0 ? containerKeys[i - 1] : null;
29114
- const next = i < fragments.length - 1 ? containerKeys[i + 1] : null;
29115
- const isStart = currentKey !== prev;
29116
- const isEnd = currentKey !== next;
29117
- boundaries.set(i, { isStart, isEnd });
29125
+ if (!currentKey) {
29126
+ i += 1;
29127
+ continue;
29128
+ }
29129
+ let groupRight = fragments[i].x + fragments[i].width;
29130
+ let j = i;
29131
+ while (j + 1 < fragments.length && containerKeys[j + 1] === currentKey) {
29132
+ j += 1;
29133
+ const fragmentRight = fragments[j].x + fragments[j].width;
29134
+ if (fragmentRight > groupRight) {
29135
+ groupRight = fragmentRight;
29136
+ }
29137
+ }
29138
+ for (let k2 = i; k2 <= j; k2 += 1) {
29139
+ const fragment = fragments[k2];
29140
+ boundaries.set(k2, {
29141
+ isStart: k2 === i,
29142
+ isEnd: k2 === j,
29143
+ widthOverride: groupRight - fragment.x
29144
+ });
29145
+ }
29146
+ i = j + 1;
29118
29147
  }
29119
29148
  return boundaries;
29120
29149
  };
@@ -2,6 +2,6 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  require("../chunks/jszip-C8_CqJxM.cjs");
4
4
  require("../chunks/helpers-nOdwpmwb.cjs");
5
- const superEditor_converter = require("../chunks/SuperConverter-CC_Varka.cjs");
5
+ const superEditor_converter = require("../chunks/SuperConverter-B35ywdgG.cjs");
6
6
  require("../chunks/uuid-R7L08bOx.cjs");
7
7
  exports.SuperConverter = superEditor_converter.SuperConverter;
@@ -1,6 +1,6 @@
1
1
  import "../chunks/jszip-B1fkPkPJ.es.js";
2
2
  import "../chunks/helpers-C8e9wR5l.es.js";
3
- import { S } from "../chunks/SuperConverter-UBc5QZsB.es.js";
3
+ import { S } from "../chunks/SuperConverter-9G1UwVBf.es.js";
4
4
  import "../chunks/uuid-CjlX8hrF.es.js";
5
5
  export {
6
6
  S as SuperConverter
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./chunks/index-BHHMmDjt.cjs");
3
+ const index = require("./chunks/index-BxgDTX0H.cjs");
4
4
  const superEditor_docxZipper = require("./super-editor/docx-zipper.cjs");
5
5
  const superEditor_fileZipper = require("./super-editor/file-zipper.cjs");
6
6
  const vue = require("./chunks/vue-De9wkgLl.cjs");
7
- const superEditor_converter = require("./chunks/SuperConverter-CC_Varka.cjs");
7
+ const superEditor_converter = require("./chunks/SuperConverter-B35ywdgG.cjs");
8
8
  function isNodeType(node, name) {
9
9
  return node.type.name === name;
10
10
  }
@@ -1,9 +1,9 @@
1
- import { ax as Node, ay as Mark } from "./chunks/index-BacPRPG2.es.js";
2
- import { ao, au, a9, ab, aw, am, av, aA, an, ak, aq, az, aa, as, aC, aE, aB, ac, aD, ar, at } from "./chunks/index-BacPRPG2.es.js";
1
+ import { ax as Node, ay as Mark } from "./chunks/index-CuBynP0z.es.js";
2
+ import { ao, au, a9, ab, aw, am, av, aA, an, ak, aq, az, aa, as, aC, aE, aB, ac, aD, ar, at } from "./chunks/index-CuBynP0z.es.js";
3
3
  import { default as default2 } from "./super-editor/docx-zipper.es.js";
4
4
  import { createZip } from "./super-editor/file-zipper.es.js";
5
5
  import { d as defineComponent, E as createElementBlock, G as openBlock, K as createBaseVNode } from "./chunks/vue-BnBKJwCW.es.js";
6
- import { S, r } from "./chunks/SuperConverter-UBc5QZsB.es.js";
6
+ import { S, r } from "./chunks/SuperConverter-9G1UwVBf.es.js";
7
7
  function isNodeType(node, name) {
8
8
  return node.type.name === name;
9
9
  }
package/dist/superdoc.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const index = require("./chunks/index-BHHMmDjt.cjs");
4
- const superdoc = require("./chunks/index-1UViep5u.cjs");
5
- const superEditor_converter = require("./chunks/SuperConverter-CC_Varka.cjs");
3
+ const index = require("./chunks/index-BxgDTX0H.cjs");
4
+ const superdoc = require("./chunks/index-BmEbRo6D.cjs");
5
+ const superEditor_converter = require("./chunks/SuperConverter-B35ywdgG.cjs");
6
6
  const blankDocx = require("./chunks/blank-docx-DfW3Eeh2.cjs");
7
7
  require("./chunks/jszip-C8_CqJxM.cjs");
8
8
  require("./chunks/helpers-nOdwpmwb.cjs");
@@ -1,6 +1,6 @@
1
- import { au, ab, aw, av, as, a7, ac, ar, at } from "./chunks/index-BacPRPG2.es.js";
2
- import { D, H, P, S, c } from "./chunks/index-D03ZjzRB.es.js";
3
- import { S as S2, r } from "./chunks/SuperConverter-UBc5QZsB.es.js";
1
+ import { au, ab, aw, av, as, a7, ac, ar, at } from "./chunks/index-CuBynP0z.es.js";
2
+ import { D, H, P, S, c } from "./chunks/index-CebB-tdL.es.js";
3
+ import { S as S2, r } from "./chunks/SuperConverter-9G1UwVBf.es.js";
4
4
  import { B } from "./chunks/blank-docx-ABm6XYAA.es.js";
5
5
  import "./chunks/jszip-B1fkPkPJ.es.js";
6
6
  import "./chunks/helpers-C8e9wR5l.es.js";
@@ -36992,7 +36992,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
36992
36992
  static getStoredSuperdocVersion(docx) {
36993
36993
  return SuperConverter.getStoredCustomProperty(docx, "SuperdocVersion");
36994
36994
  }
36995
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.5.0-next.2") {
36995
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.5.0-next.3") {
36996
36996
  return SuperConverter.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
36997
36997
  }
36998
36998
  /**
@@ -62867,7 +62867,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
62867
62867
  return false;
62868
62868
  }
62869
62869
  };
62870
- const summaryVersion = "1.5.0-next.2";
62870
+ const summaryVersion = "1.5.0-next.3";
62871
62871
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
62872
62872
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
62873
62873
  function mapAttributes(attrs) {
@@ -65525,7 +65525,7 @@ Please report this to https://github.com/markedjs/marked.`, e) {
65525
65525
  * Process collaboration migrations
65526
65526
  */
65527
65527
  processCollaborationMigrations() {
65528
- console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.2");
65528
+ console.debug("[checkVersionMigrations] Current editor version", "1.5.0-next.3");
65529
65529
  if (!this.options.ydoc) return;
65530
65530
  const metaMap = this.options.ydoc.getMap("meta");
65531
65531
  let docVersion = metaMap.get("version");
@@ -71641,6 +71641,9 @@ ${o}
71641
71641
  container.dataset.sdtContainerStart = String(isStart);
71642
71642
  container.dataset.sdtContainerEnd = String(isEnd);
71643
71643
  container.style.overflow = "visible";
71644
+ if (boundaryOptions?.widthOverride != null) {
71645
+ container.style.width = `${boundaryOptions.widthOverride}px`;
71646
+ }
71644
71647
  if (isStart) {
71645
71648
  const labelEl = doc2.createElement("div");
71646
71649
  labelEl.className = config2.labelClassName;
@@ -72203,6 +72206,7 @@ ${o}
72203
72206
  fragment,
72204
72207
  blockLookup,
72205
72208
  context,
72209
+ sdtBoundary,
72206
72210
  renderLine,
72207
72211
  renderDrawingContent,
72208
72212
  applyFragmentFrame,
@@ -72243,7 +72247,7 @@ ${o}
72243
72247
  applyFragmentFrame(container, fragment);
72244
72248
  container.style.height = `${fragment.height}px`;
72245
72249
  applySdtDataset(container, block.attrs?.sdt);
72246
- applySdtContainerStyling(doc2, container, block.attrs?.sdt);
72250
+ applySdtContainerStyling(doc2, container, block.attrs?.sdt, block.attrs?.containerSdt, sdtBoundary);
72247
72251
  container.classList.add("superdoc-table-fragment");
72248
72252
  if (fragment.metadata?.columnBoundaries) {
72249
72253
  const columnCount = measure.columnWidths.length;
@@ -73882,6 +73886,9 @@ ${o}
73882
73886
  this.updatePositionAttributes(current.element, this.currentMapping);
73883
73887
  }
73884
73888
  this.updateFragmentElement(current.element, fragment, contextBase.section);
73889
+ if (sdtBoundary?.widthOverride != null) {
73890
+ current.element.style.width = `${sdtBoundary.widthOverride}px`;
73891
+ }
73885
73892
  current.fragment = fragment;
73886
73893
  current.key = key2;
73887
73894
  current.context = contextBase;
@@ -73997,7 +74004,7 @@ ${o}
73997
74004
  return this.renderDrawingFragment(fragment, context);
73998
74005
  }
73999
74006
  if (fragment.kind === "table") {
74000
- return this.renderTableFragment(fragment, context);
74007
+ return this.renderTableFragment(fragment, context, sdtBoundary);
74001
74008
  }
74002
74009
  throw new Error(`DomPainter: unsupported fragment kind ${fragment.kind}`);
74003
74010
  }
@@ -75124,7 +75131,7 @@ ${o}
75124
75131
  placeholder.style.border = "1px dashed rgba(15, 23, 42, 0.3)";
75125
75132
  return placeholder;
75126
75133
  }
75127
- renderTableFragment(fragment, context) {
75134
+ renderTableFragment(fragment, context, sdtBoundary) {
75128
75135
  if (!this.doc) {
75129
75136
  throw new Error("DomPainter: document is not available");
75130
75137
  }
@@ -75154,6 +75161,7 @@ ${o}
75154
75161
  fragment,
75155
75162
  context,
75156
75163
  blockLookup: this.blockLookup,
75164
+ sdtBoundary,
75157
75165
  renderLine: renderLineForTableCell,
75158
75166
  renderDrawingContent: renderDrawingContentForTableCell,
75159
75167
  applyFragmentFrame: applyFragmentFrameWithSection,
@@ -76473,19 +76481,40 @@ ${o}
76473
76481
  const attrs = item?.paragraph.attrs;
76474
76482
  return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
76475
76483
  }
76484
+ if (fragment.kind === "table" && block.kind === "table") {
76485
+ const attrs = block.attrs;
76486
+ return getSdtContainerKey(attrs?.sdt, attrs?.containerSdt);
76487
+ }
76476
76488
  return null;
76477
76489
  };
76478
76490
  const computeSdtBoundaries = (fragments, blockLookup) => {
76479
76491
  const boundaries = /* @__PURE__ */ new Map();
76480
76492
  const containerKeys = fragments.map((fragment) => getFragmentSdtContainerKey(fragment, blockLookup));
76481
- for (let i2 = 0; i2 < fragments.length; i2 += 1) {
76493
+ let i2 = 0;
76494
+ while (i2 < fragments.length) {
76482
76495
  const currentKey = containerKeys[i2];
76483
- if (!currentKey) continue;
76484
- const prev = i2 > 0 ? containerKeys[i2 - 1] : null;
76485
- const next2 = i2 < fragments.length - 1 ? containerKeys[i2 + 1] : null;
76486
- const isStart = currentKey !== prev;
76487
- const isEnd = currentKey !== next2;
76488
- boundaries.set(i2, { isStart, isEnd });
76496
+ if (!currentKey) {
76497
+ i2 += 1;
76498
+ continue;
76499
+ }
76500
+ let groupRight = fragments[i2].x + fragments[i2].width;
76501
+ let j2 = i2;
76502
+ while (j2 + 1 < fragments.length && containerKeys[j2 + 1] === currentKey) {
76503
+ j2 += 1;
76504
+ const fragmentRight = fragments[j2].x + fragments[j2].width;
76505
+ if (fragmentRight > groupRight) {
76506
+ groupRight = fragmentRight;
76507
+ }
76508
+ }
76509
+ for (let k2 = i2; k2 <= j2; k2 += 1) {
76510
+ const fragment = fragments[k2];
76511
+ boundaries.set(k2, {
76512
+ isStart: k2 === i2,
76513
+ isEnd: k2 === j2,
76514
+ widthOverride: groupRight - fragment.x
76515
+ });
76516
+ }
76517
+ i2 = j2 + 1;
76489
76518
  }
76490
76519
  return boundaries;
76491
76520
  };
@@ -146900,7 +146929,7 @@ ${reason}`);
146900
146929
  this.config.colors = shuffleArray(this.config.colors);
146901
146930
  this.userColorMap = /* @__PURE__ */ new Map();
146902
146931
  this.colorIndex = 0;
146903
- this.version = "1.5.0-next.2";
146932
+ this.version = "1.5.0-next.3";
146904
146933
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
146905
146934
  this.superdocId = config2.superdocId || v4();
146906
146935
  this.colors = this.config.colors;