@harbour-enterprises/superdoc 1.3.0-next.7 → 1.3.0-next.8

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
  "use strict";
2
- const index = require("./index-CmmcvSxn.cjs");
3
- require("./SuperConverter-BIrkxV37.cjs");
2
+ const index = require("./index-DzCJy9Bf.cjs");
3
+ require("./SuperConverter-d7nvQrVD.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");
@@ -7461,7 +7461,7 @@ const _sfc_main = {
7461
7461
  __name: "SuperDoc",
7462
7462
  emits: ["selection-update"],
7463
7463
  setup(__props, { emit: __emit }) {
7464
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BolWPjJ9.cjs")));
7464
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-fF1B6H-9.cjs")));
7465
7465
  const superdocStore = useSuperdocStore();
7466
7466
  const commentsStore = useCommentsStore();
7467
7467
  const {
@@ -8367,7 +8367,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
8367
8367
  this.config.colors = shuffleArray(this.config.colors);
8368
8368
  this.userColorMap = /* @__PURE__ */ new Map();
8369
8369
  this.colorIndex = 0;
8370
- this.version = "1.3.0-next.7";
8370
+ this.version = "1.3.0-next.8";
8371
8371
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8372
8372
  this.superdocId = config.superdocId || uuid.v4();
8373
8373
  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 _getReferencedTableStyles, a4 as decodeRPrFromMarks, a5 as calculateResolvedParagraphProperties, a6 as encodeCSSFromPPr, a7 as encodeCSSFromRPr, a8 as generateOrderedListIndex, a9 as docxNumberingHelpers, aa as InputRule, ab as insertNewRelationship, ac as kebabCase$1, ad as getUnderlineCssString } from "./SuperConverter-Bc9dM-qO.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 _getReferencedTableStyles, a4 as decodeRPrFromMarks, a5 as calculateResolvedParagraphProperties, a6 as encodeCSSFromPPr, a7 as encodeCSSFromRPr, a8 as generateOrderedListIndex, a9 as docxNumberingHelpers, aa as InputRule, ab as insertNewRelationship, ac as kebabCase$1, ad as getUnderlineCssString } from "./SuperConverter-DwLhA2mM.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 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";
@@ -15334,7 +15334,7 @@ const canUseDOM = () => {
15334
15334
  return false;
15335
15335
  }
15336
15336
  };
15337
- const summaryVersion = "1.3.0-next.7";
15337
+ const summaryVersion = "1.3.0-next.8";
15338
15338
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15339
15339
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15340
15340
  function mapAttributes(attrs) {
@@ -17967,7 +17967,7 @@ class Editor extends EventEmitter {
17967
17967
  * Process collaboration migrations
17968
17968
  */
17969
17969
  processCollaborationMigrations() {
17970
- console.debug("[checkVersionMigrations] Current editor version", "1.3.0-next.7");
17970
+ console.debug("[checkVersionMigrations] Current editor version", "1.3.0-next.8");
17971
17971
  if (!this.options.ydoc) return;
17972
17972
  const metaMap = this.options.ydoc.getMap("meta");
17973
17973
  let docVersion = metaMap.get("version");
@@ -44853,6 +44853,12 @@ const applyBaseRunDefaults = (run, defaults, uiDisplayFallbackFont, fallbackSize
44853
44853
  run.letterSpacing = defaults.letterSpacing;
44854
44854
  }
44855
44855
  };
44856
+ const applyInlineRunProperties = (run, runProperties) => {
44857
+ if (!runProperties) return;
44858
+ if (runProperties?.letterSpacing != null) {
44859
+ run.letterSpacing = twipsToPx$1(runProperties.letterSpacing);
44860
+ }
44861
+ };
44856
44862
  function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defaultSize, styleContext, listCounterContext, trackedChanges, bookmarks, hyperlinkConfig = DEFAULT_HYPERLINK_CONFIG$1, themeColors, converters, converterContext) {
44857
44863
  const baseBlockId = nextBlockId("paragraph");
44858
44864
  const paragraphProps = typeof para.attrs?.paragraphProperties === "object" && para.attrs.paragraphProperties !== null ? para.attrs.paragraphProperties : {};
@@ -45005,7 +45011,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45005
45011
  runStyleId
45006
45012
  });
45007
45013
  };
45008
- const visitNode = (node, inheritedMarks = [], activeSdt, activeRunStyleId = null) => {
45014
+ const visitNode = (node, inheritedMarks = [], activeSdt, activeRunStyleId = null, activeRunProperties) => {
45009
45015
  if (node.type === "text" && node.text) {
45010
45016
  const run = textNodeToRun(
45011
45017
  node,
@@ -45021,6 +45027,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45021
45027
  const inlineStyleId = getInlineStyleId(inheritedMarks);
45022
45028
  applyRunStyles2(run, inlineStyleId, activeRunStyleId);
45023
45029
  applyBaseRunDefaults(run, baseRunDefaults, defaultFont, defaultSize);
45030
+ applyInlineRunProperties(run, activeRunProperties);
45024
45031
  applyMarksToRun(
45025
45032
  run,
45026
45033
  [...node.marks ?? [], ...inheritedMarks ?? []],
@@ -45033,14 +45040,16 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45033
45040
  }
45034
45041
  if (node.type === "run" && Array.isArray(node.content)) {
45035
45042
  const mergedMarks = [...node.marks ?? [], ...inheritedMarks ?? []];
45036
- const nextRunStyleId = extractRunStyleId(node.attrs?.runProperties) ?? activeRunStyleId;
45037
- node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt, nextRunStyleId));
45043
+ const runProperties = typeof node.attrs?.runProperties === "object" && node.attrs.runProperties !== null ? node.attrs.runProperties : null;
45044
+ const nextRunStyleId = extractRunStyleId(runProperties) ?? activeRunStyleId;
45045
+ const nextRunProperties = runProperties ?? activeRunProperties;
45046
+ node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt, nextRunStyleId, nextRunProperties));
45038
45047
  return;
45039
45048
  }
45040
45049
  if (node.type === "structuredContent" && Array.isArray(node.content)) {
45041
45050
  const inlineMetadata = resolveNodeSdtMetadata(node, "structuredContent");
45042
45051
  const nextSdt = inlineMetadata ?? activeSdt;
45043
- node.content.forEach((child) => visitNode(child, inheritedMarks, nextSdt, activeRunStyleId));
45052
+ node.content.forEach((child) => visitNode(child, inheritedMarks, nextSdt, activeRunStyleId, activeRunProperties));
45044
45053
  return;
45045
45054
  }
45046
45055
  if (node.type === "fieldAnnotation") {
@@ -45094,6 +45103,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45094
45103
  const inlineStyleId = getInlineStyleId(mergedMarks);
45095
45104
  applyRunStyles2(tokenRun, inlineStyleId, activeRunStyleId);
45096
45105
  applyBaseRunDefaults(tokenRun, baseRunDefaults, defaultFont, defaultSize);
45106
+ applyInlineRunProperties(tokenRun, activeRunProperties);
45097
45107
  if (pageRefPos) {
45098
45108
  tokenRun.pmStart = pageRefPos.start;
45099
45109
  tokenRun.pmEnd = pageRefPos.end;
@@ -45108,7 +45118,9 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45108
45118
  }
45109
45119
  currentRuns.push(tokenRun);
45110
45120
  } else if (Array.isArray(node.content)) {
45111
- node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt));
45121
+ node.content.forEach(
45122
+ (child) => visitNode(child, mergedMarks, activeSdt, activeRunStyleId, activeRunProperties)
45123
+ );
45112
45124
  }
45113
45125
  return;
45114
45126
  }
@@ -45122,7 +45134,9 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45122
45134
  }
45123
45135
  }
45124
45136
  if (Array.isArray(node.content)) {
45125
- node.content.forEach((child) => visitNode(child, inheritedMarks, activeSdt));
45137
+ node.content.forEach(
45138
+ (child) => visitNode(child, inheritedMarks, activeSdt, activeRunStyleId, activeRunProperties)
45139
+ );
45126
45140
  }
45127
45141
  return;
45128
45142
  }
@@ -45174,6 +45188,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45174
45188
  runStyleId: activeRunStyleId,
45175
45189
  mergedMarksCount: mergedMarks.length
45176
45190
  });
45191
+ applyInlineRunProperties(tokenRun, activeRunProperties);
45177
45192
  currentRuns.push(tokenRun);
45178
45193
  }
45179
45194
  return;
@@ -48350,6 +48365,7 @@ async function measureParagraphBlock(block, maxWidth) {
48350
48365
  let lastFontSize = 12;
48351
48366
  let tabStopCursor = 0;
48352
48367
  let pendingTabAlignment = null;
48368
+ let pendingRunSpacing = 0;
48353
48369
  let lastAppliedTabAlign = null;
48354
48370
  const warnedTabVals = /* @__PURE__ */ new Set();
48355
48371
  let activeTabGroup = null;
@@ -48360,6 +48376,10 @@ async function measureParagraphBlock(block, maxWidth) {
48360
48376
  }
48361
48377
  return true;
48362
48378
  };
48379
+ const resolveBoundarySpacing = (lineWidth, isRunStart, run) => {
48380
+ if (lineWidth <= 0) return 0;
48381
+ return isRunStart ? pendingRunSpacing : run.letterSpacing ?? 0;
48382
+ };
48363
48383
  const alignPendingTabForWidth = (segmentWidth, beforeDecimalWidth) => {
48364
48384
  if (!pendingTabAlignment || !currentLine) return void 0;
48365
48385
  if (segmentWidth < 0) {
@@ -48487,6 +48507,7 @@ async function measureParagraphBlock(block, maxWidth) {
48487
48507
  tabStopCursor = 0;
48488
48508
  pendingTabAlignment = null;
48489
48509
  lastAppliedTabAlign = null;
48510
+ pendingRunSpacing = 0;
48490
48511
  continue;
48491
48512
  }
48492
48513
  if (isLineBreakRun(run)) {
@@ -48529,6 +48550,7 @@ async function measureParagraphBlock(block, maxWidth) {
48529
48550
  tabStopCursor = 0;
48530
48551
  pendingTabAlignment = null;
48531
48552
  lastAppliedTabAlign = null;
48553
+ pendingRunSpacing = 0;
48532
48554
  continue;
48533
48555
  }
48534
48556
  if (isTabRun(run)) {
@@ -48594,6 +48616,7 @@ async function measureParagraphBlock(block, maxWidth) {
48594
48616
  } else {
48595
48617
  pendingTabAlignment = null;
48596
48618
  }
48619
+ pendingRunSpacing = 0;
48597
48620
  continue;
48598
48621
  }
48599
48622
  if (isImageRun(run)) {
@@ -48632,6 +48655,7 @@ async function measureParagraphBlock(block, maxWidth) {
48632
48655
  }
48633
48656
  ]
48634
48657
  };
48658
+ pendingRunSpacing = 0;
48635
48659
  if (activeTabGroup && runIndex + 1 >= activeTabGroup.measure.endRunIndex) {
48636
48660
  activeTabGroup = null;
48637
48661
  }
@@ -48693,6 +48717,7 @@ async function measureParagraphBlock(block, maxWidth) {
48693
48717
  currentLine.width = roundValue(tabAlign.target);
48694
48718
  }
48695
48719
  lastAppliedTabAlign = null;
48720
+ pendingRunSpacing = 0;
48696
48721
  continue;
48697
48722
  }
48698
48723
  if (isFieldAnnotationRun(run)) {
@@ -48732,6 +48757,7 @@ async function measureParagraphBlock(block, maxWidth) {
48732
48757
  }
48733
48758
  ]
48734
48759
  };
48760
+ pendingRunSpacing = 0;
48735
48761
  continue;
48736
48762
  }
48737
48763
  if (currentLine.width + annotationWidth > currentLine.maxWidth && currentLine.width > 0) {
@@ -48784,9 +48810,11 @@ async function measureParagraphBlock(block, maxWidth) {
48784
48810
  currentLine.width = roundValue(tabAlign.target);
48785
48811
  }
48786
48812
  lastAppliedTabAlign = null;
48813
+ pendingRunSpacing = 0;
48787
48814
  continue;
48788
48815
  }
48789
48816
  if (!("text" in run) || !("fontSize" in run)) {
48817
+ pendingRunSpacing = 0;
48790
48818
  continue;
48791
48819
  }
48792
48820
  lastFontSize = run.fontSize;
@@ -48797,6 +48825,7 @@ async function measureParagraphBlock(block, maxWidth) {
48797
48825
  const segment = tabSegments[segmentIndex];
48798
48826
  const isLastSegment = segmentIndex === tabSegments.length - 1;
48799
48827
  if (/^[ ]+$/.test(segment)) {
48828
+ const isRunStart = charPosInRun === 0 && segmentIndex === 0;
48800
48829
  const spacesLength = segment.length;
48801
48830
  const spacesStartChar = charPosInRun;
48802
48831
  const spacesEndChar = charPosInRun + spacesLength;
@@ -48815,7 +48844,7 @@ async function measureParagraphBlock(block, maxWidth) {
48815
48844
  spaceCount: spacesLength
48816
48845
  };
48817
48846
  } else {
48818
- const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
48847
+ const boundarySpacing = resolveBoundarySpacing(currentLine.width, isRunStart, run);
48819
48848
  if (currentLine.width + boundarySpacing + spacesWidth > currentLine.maxWidth - WIDTH_FUDGE_PX2 && currentLine.width > 0) {
48820
48849
  trimTrailingWrapSpaces(currentLine);
48821
48850
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
@@ -48879,6 +48908,7 @@ async function measureParagraphBlock(block, maxWidth) {
48879
48908
  const spaceStartChar = charPosInRun;
48880
48909
  const spaceEndChar = charPosInRun + 1;
48881
48910
  const singleSpaceWidth = measureRunWidth(" ", font, ctx2, run, spaceStartChar);
48911
+ const isRunStart2 = charPosInRun === 0 && segmentIndex === 0 && wordIndex === 0;
48882
48912
  if (!currentLine) {
48883
48913
  currentLine = {
48884
48914
  fromRun: runIndex,
@@ -48893,7 +48923,7 @@ async function measureParagraphBlock(block, maxWidth) {
48893
48923
  spaceCount: 1
48894
48924
  };
48895
48925
  } else {
48896
- const boundarySpacing2 = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
48926
+ const boundarySpacing2 = resolveBoundarySpacing(currentLine.width, isRunStart2, run);
48897
48927
  if (currentLine.width + boundarySpacing2 + singleSpaceWidth > currentLine.maxWidth - WIDTH_FUDGE_PX2 && currentLine.width > 0) {
48898
48928
  trimTrailingWrapSpaces(currentLine);
48899
48929
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
@@ -49078,7 +49108,8 @@ async function measureParagraphBlock(block, maxWidth) {
49078
49108
  continue;
49079
49109
  }
49080
49110
  const isTocEntry = block.attrs?.isTocEntry;
49081
- const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
49111
+ const isRunStart = charPosInRun === 0 && segmentIndex === 0 && wordIndex === 0;
49112
+ const boundarySpacing = resolveBoundarySpacing(currentLine.width, isRunStart, run);
49082
49113
  const justifyAlignment = block.attrs?.alignment === "justify";
49083
49114
  const totalWidthWithWord = currentLine.width + boundarySpacing + wordCommitWidth + // Safe cast: only TextRuns produce word segments from split(), other run types are handled earlier
49084
49115
  (shouldIncludeDelimiterSpace ? run.letterSpacing ?? 0 : 0);
@@ -49246,6 +49277,7 @@ async function measureParagraphBlock(block, maxWidth) {
49246
49277
  }
49247
49278
  }
49248
49279
  }
49280
+ pendingRunSpacing = run.letterSpacing ?? 0;
49249
49281
  }
49250
49282
  if (!currentLine && lines.length === 0) {
49251
49283
  const uiDisplayFallbackFontSize = (block.runs[0]?.kind === "text" ? block.runs[0].fontSize : void 0) ?? 12;
@@ -50049,6 +50081,7 @@ class PresentationEditor extends EventEmitter {
50049
50081
  #dragLastPointer = null;
50050
50082
  #dragLastRawHit = null;
50051
50083
  #dragUsedPageNotMountedFallback = false;
50084
+ #suppressFocusInFromDraggable = false;
50052
50085
  // Cell selection drag state
50053
50086
  // Tracks cell-specific context when drag starts in a table for multi-cell selection
50054
50087
  #cellAnchor = null;
@@ -52032,6 +52065,7 @@ class PresentationEditor extends EventEmitter {
52032
52065
  return;
52033
52066
  }
52034
52067
  const isDraggableAnnotation = target?.closest?.('[data-draggable="true"]') != null;
52068
+ this.#suppressFocusInFromDraggable = isDraggableAnnotation;
52035
52069
  if (!this.#layoutState.layout) {
52036
52070
  if (!isDraggableAnnotation) {
52037
52071
  event.preventDefault();
@@ -52788,6 +52822,10 @@ class PresentationEditor extends EventEmitter {
52788
52822
  if (isInRegisteredSurface(event)) {
52789
52823
  return;
52790
52824
  }
52825
+ if (this.#suppressFocusInFromDraggable) {
52826
+ this.#suppressFocusInFromDraggable = false;
52827
+ return;
52828
+ }
52791
52829
  const target = event.target;
52792
52830
  const activeTarget = this.#getActiveDomTarget();
52793
52831
  if (!activeTarget) {
@@ -52814,6 +52852,7 @@ class PresentationEditor extends EventEmitter {
52814
52852
  }
52815
52853
  };
52816
52854
  #handlePointerUp = (event) => {
52855
+ this.#suppressFocusInFromDraggable = false;
52817
52856
  if (!this.#isDragging) return;
52818
52857
  if (typeof this.#viewportHost.hasPointerCapture === "function" && typeof this.#viewportHost.releasePointerCapture === "function" && this.#viewportHost.hasPointerCapture(event.pointerId)) {
52819
52858
  this.#viewportHost.releasePointerCapture(event.pointerId);
@@ -60561,16 +60600,7 @@ const Table = Node$1.create({
60561
60600
  * @param {import("./tableHelpers/createTableBorders.js").TableBorders} [borders] - Border styling for this table
60562
60601
  */
60563
60602
  borders: {
60564
- default: {},
60565
- renderDOM({ borders }) {
60566
- if (!borders) return {};
60567
- const style2 = Object.entries(borders).reduce((acc, [key2, { size: size2, color }]) => {
60568
- return `${acc}border-${key2}: ${Math.ceil(size2)}px solid ${color || "black"};`;
60569
- }, "");
60570
- return {
60571
- style: style2
60572
- };
60573
- }
60603
+ default: {}
60574
60604
  },
60575
60605
  /**
60576
60606
  * @category Attribute
@@ -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-BIrkxV37.cjs");
4
+ const superEditor_converter = require("./SuperConverter-d7nvQrVD.cjs");
5
5
  const vue = require("./vue-De9wkgLl.cjs");
6
6
  require("./jszip.min-BPh2MMAa.cjs");
7
7
  const eventemitter3 = require("./eventemitter3-BQuRcMPI.cjs");
@@ -15351,7 +15351,7 @@ const canUseDOM = () => {
15351
15351
  return false;
15352
15352
  }
15353
15353
  };
15354
- const summaryVersion = "1.3.0-next.7";
15354
+ const summaryVersion = "1.3.0-next.8";
15355
15355
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
15356
15356
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
15357
15357
  function mapAttributes(attrs) {
@@ -17984,7 +17984,7 @@ class Editor extends EventEmitter {
17984
17984
  * Process collaboration migrations
17985
17985
  */
17986
17986
  processCollaborationMigrations() {
17987
- console.debug("[checkVersionMigrations] Current editor version", "1.3.0-next.7");
17987
+ console.debug("[checkVersionMigrations] Current editor version", "1.3.0-next.8");
17988
17988
  if (!this.options.ydoc) return;
17989
17989
  const metaMap = this.options.ydoc.getMap("meta");
17990
17990
  let docVersion = metaMap.get("version");
@@ -44870,6 +44870,12 @@ const applyBaseRunDefaults = (run, defaults, uiDisplayFallbackFont, fallbackSize
44870
44870
  run.letterSpacing = defaults.letterSpacing;
44871
44871
  }
44872
44872
  };
44873
+ const applyInlineRunProperties = (run, runProperties) => {
44874
+ if (!runProperties) return;
44875
+ if (runProperties?.letterSpacing != null) {
44876
+ run.letterSpacing = twipsToPx$1(runProperties.letterSpacing);
44877
+ }
44878
+ };
44873
44879
  function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defaultSize, styleContext, listCounterContext, trackedChanges, bookmarks, hyperlinkConfig = DEFAULT_HYPERLINK_CONFIG$1, themeColors, converters, converterContext) {
44874
44880
  const baseBlockId = nextBlockId("paragraph");
44875
44881
  const paragraphProps = typeof para.attrs?.paragraphProperties === "object" && para.attrs.paragraphProperties !== null ? para.attrs.paragraphProperties : {};
@@ -45022,7 +45028,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45022
45028
  runStyleId
45023
45029
  });
45024
45030
  };
45025
- const visitNode = (node, inheritedMarks = [], activeSdt, activeRunStyleId = null) => {
45031
+ const visitNode = (node, inheritedMarks = [], activeSdt, activeRunStyleId = null, activeRunProperties) => {
45026
45032
  if (node.type === "text" && node.text) {
45027
45033
  const run = textNodeToRun(
45028
45034
  node,
@@ -45038,6 +45044,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45038
45044
  const inlineStyleId = getInlineStyleId(inheritedMarks);
45039
45045
  applyRunStyles2(run, inlineStyleId, activeRunStyleId);
45040
45046
  applyBaseRunDefaults(run, baseRunDefaults, defaultFont, defaultSize);
45047
+ applyInlineRunProperties(run, activeRunProperties);
45041
45048
  applyMarksToRun(
45042
45049
  run,
45043
45050
  [...node.marks ?? [], ...inheritedMarks ?? []],
@@ -45050,14 +45057,16 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45050
45057
  }
45051
45058
  if (node.type === "run" && Array.isArray(node.content)) {
45052
45059
  const mergedMarks = [...node.marks ?? [], ...inheritedMarks ?? []];
45053
- const nextRunStyleId = extractRunStyleId(node.attrs?.runProperties) ?? activeRunStyleId;
45054
- node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt, nextRunStyleId));
45060
+ const runProperties = typeof node.attrs?.runProperties === "object" && node.attrs.runProperties !== null ? node.attrs.runProperties : null;
45061
+ const nextRunStyleId = extractRunStyleId(runProperties) ?? activeRunStyleId;
45062
+ const nextRunProperties = runProperties ?? activeRunProperties;
45063
+ node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt, nextRunStyleId, nextRunProperties));
45055
45064
  return;
45056
45065
  }
45057
45066
  if (node.type === "structuredContent" && Array.isArray(node.content)) {
45058
45067
  const inlineMetadata = resolveNodeSdtMetadata(node, "structuredContent");
45059
45068
  const nextSdt = inlineMetadata ?? activeSdt;
45060
- node.content.forEach((child) => visitNode(child, inheritedMarks, nextSdt, activeRunStyleId));
45069
+ node.content.forEach((child) => visitNode(child, inheritedMarks, nextSdt, activeRunStyleId, activeRunProperties));
45061
45070
  return;
45062
45071
  }
45063
45072
  if (node.type === "fieldAnnotation") {
@@ -45111,6 +45120,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45111
45120
  const inlineStyleId = getInlineStyleId(mergedMarks);
45112
45121
  applyRunStyles2(tokenRun, inlineStyleId, activeRunStyleId);
45113
45122
  applyBaseRunDefaults(tokenRun, baseRunDefaults, defaultFont, defaultSize);
45123
+ applyInlineRunProperties(tokenRun, activeRunProperties);
45114
45124
  if (pageRefPos) {
45115
45125
  tokenRun.pmStart = pageRefPos.start;
45116
45126
  tokenRun.pmEnd = pageRefPos.end;
@@ -45125,7 +45135,9 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45125
45135
  }
45126
45136
  currentRuns.push(tokenRun);
45127
45137
  } else if (Array.isArray(node.content)) {
45128
- node.content.forEach((child) => visitNode(child, mergedMarks, activeSdt));
45138
+ node.content.forEach(
45139
+ (child) => visitNode(child, mergedMarks, activeSdt, activeRunStyleId, activeRunProperties)
45140
+ );
45129
45141
  }
45130
45142
  return;
45131
45143
  }
@@ -45139,7 +45151,9 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45139
45151
  }
45140
45152
  }
45141
45153
  if (Array.isArray(node.content)) {
45142
- node.content.forEach((child) => visitNode(child, inheritedMarks, activeSdt));
45154
+ node.content.forEach(
45155
+ (child) => visitNode(child, inheritedMarks, activeSdt, activeRunStyleId, activeRunProperties)
45156
+ );
45143
45157
  }
45144
45158
  return;
45145
45159
  }
@@ -45191,6 +45205,7 @@ function paragraphToFlowBlocks$1(para, nextBlockId, positions, defaultFont, defa
45191
45205
  runStyleId: activeRunStyleId,
45192
45206
  mergedMarksCount: mergedMarks.length
45193
45207
  });
45208
+ applyInlineRunProperties(tokenRun, activeRunProperties);
45194
45209
  currentRuns.push(tokenRun);
45195
45210
  }
45196
45211
  return;
@@ -48367,6 +48382,7 @@ async function measureParagraphBlock(block, maxWidth) {
48367
48382
  let lastFontSize = 12;
48368
48383
  let tabStopCursor = 0;
48369
48384
  let pendingTabAlignment = null;
48385
+ let pendingRunSpacing = 0;
48370
48386
  let lastAppliedTabAlign = null;
48371
48387
  const warnedTabVals = /* @__PURE__ */ new Set();
48372
48388
  let activeTabGroup = null;
@@ -48377,6 +48393,10 @@ async function measureParagraphBlock(block, maxWidth) {
48377
48393
  }
48378
48394
  return true;
48379
48395
  };
48396
+ const resolveBoundarySpacing = (lineWidth, isRunStart, run) => {
48397
+ if (lineWidth <= 0) return 0;
48398
+ return isRunStart ? pendingRunSpacing : run.letterSpacing ?? 0;
48399
+ };
48380
48400
  const alignPendingTabForWidth = (segmentWidth, beforeDecimalWidth) => {
48381
48401
  if (!pendingTabAlignment || !currentLine) return void 0;
48382
48402
  if (segmentWidth < 0) {
@@ -48504,6 +48524,7 @@ async function measureParagraphBlock(block, maxWidth) {
48504
48524
  tabStopCursor = 0;
48505
48525
  pendingTabAlignment = null;
48506
48526
  lastAppliedTabAlign = null;
48527
+ pendingRunSpacing = 0;
48507
48528
  continue;
48508
48529
  }
48509
48530
  if (isLineBreakRun(run)) {
@@ -48546,6 +48567,7 @@ async function measureParagraphBlock(block, maxWidth) {
48546
48567
  tabStopCursor = 0;
48547
48568
  pendingTabAlignment = null;
48548
48569
  lastAppliedTabAlign = null;
48570
+ pendingRunSpacing = 0;
48549
48571
  continue;
48550
48572
  }
48551
48573
  if (isTabRun(run)) {
@@ -48611,6 +48633,7 @@ async function measureParagraphBlock(block, maxWidth) {
48611
48633
  } else {
48612
48634
  pendingTabAlignment = null;
48613
48635
  }
48636
+ pendingRunSpacing = 0;
48614
48637
  continue;
48615
48638
  }
48616
48639
  if (isImageRun(run)) {
@@ -48649,6 +48672,7 @@ async function measureParagraphBlock(block, maxWidth) {
48649
48672
  }
48650
48673
  ]
48651
48674
  };
48675
+ pendingRunSpacing = 0;
48652
48676
  if (activeTabGroup && runIndex + 1 >= activeTabGroup.measure.endRunIndex) {
48653
48677
  activeTabGroup = null;
48654
48678
  }
@@ -48710,6 +48734,7 @@ async function measureParagraphBlock(block, maxWidth) {
48710
48734
  currentLine.width = roundValue(tabAlign.target);
48711
48735
  }
48712
48736
  lastAppliedTabAlign = null;
48737
+ pendingRunSpacing = 0;
48713
48738
  continue;
48714
48739
  }
48715
48740
  if (isFieldAnnotationRun(run)) {
@@ -48749,6 +48774,7 @@ async function measureParagraphBlock(block, maxWidth) {
48749
48774
  }
48750
48775
  ]
48751
48776
  };
48777
+ pendingRunSpacing = 0;
48752
48778
  continue;
48753
48779
  }
48754
48780
  if (currentLine.width + annotationWidth > currentLine.maxWidth && currentLine.width > 0) {
@@ -48801,9 +48827,11 @@ async function measureParagraphBlock(block, maxWidth) {
48801
48827
  currentLine.width = roundValue(tabAlign.target);
48802
48828
  }
48803
48829
  lastAppliedTabAlign = null;
48830
+ pendingRunSpacing = 0;
48804
48831
  continue;
48805
48832
  }
48806
48833
  if (!("text" in run) || !("fontSize" in run)) {
48834
+ pendingRunSpacing = 0;
48807
48835
  continue;
48808
48836
  }
48809
48837
  lastFontSize = run.fontSize;
@@ -48814,6 +48842,7 @@ async function measureParagraphBlock(block, maxWidth) {
48814
48842
  const segment = tabSegments[segmentIndex];
48815
48843
  const isLastSegment = segmentIndex === tabSegments.length - 1;
48816
48844
  if (/^[ ]+$/.test(segment)) {
48845
+ const isRunStart = charPosInRun === 0 && segmentIndex === 0;
48817
48846
  const spacesLength = segment.length;
48818
48847
  const spacesStartChar = charPosInRun;
48819
48848
  const spacesEndChar = charPosInRun + spacesLength;
@@ -48832,7 +48861,7 @@ async function measureParagraphBlock(block, maxWidth) {
48832
48861
  spaceCount: spacesLength
48833
48862
  };
48834
48863
  } else {
48835
- const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
48864
+ const boundarySpacing = resolveBoundarySpacing(currentLine.width, isRunStart, run);
48836
48865
  if (currentLine.width + boundarySpacing + spacesWidth > currentLine.maxWidth - WIDTH_FUDGE_PX2 && currentLine.width > 0) {
48837
48866
  trimTrailingWrapSpaces(currentLine);
48838
48867
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
@@ -48896,6 +48925,7 @@ async function measureParagraphBlock(block, maxWidth) {
48896
48925
  const spaceStartChar = charPosInRun;
48897
48926
  const spaceEndChar = charPosInRun + 1;
48898
48927
  const singleSpaceWidth = measureRunWidth(" ", font, ctx2, run, spaceStartChar);
48928
+ const isRunStart2 = charPosInRun === 0 && segmentIndex === 0 && wordIndex === 0;
48899
48929
  if (!currentLine) {
48900
48930
  currentLine = {
48901
48931
  fromRun: runIndex,
@@ -48910,7 +48940,7 @@ async function measureParagraphBlock(block, maxWidth) {
48910
48940
  spaceCount: 1
48911
48941
  };
48912
48942
  } else {
48913
- const boundarySpacing2 = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
48943
+ const boundarySpacing2 = resolveBoundarySpacing(currentLine.width, isRunStart2, run);
48914
48944
  if (currentLine.width + boundarySpacing2 + singleSpaceWidth > currentLine.maxWidth - WIDTH_FUDGE_PX2 && currentLine.width > 0) {
48915
48945
  trimTrailingWrapSpaces(currentLine);
48916
48946
  const metrics = calculateTypographyMetrics(currentLine.maxFontSize, spacing, currentLine.maxFontInfo);
@@ -49095,7 +49125,8 @@ async function measureParagraphBlock(block, maxWidth) {
49095
49125
  continue;
49096
49126
  }
49097
49127
  const isTocEntry = block.attrs?.isTocEntry;
49098
- const boundarySpacing = currentLine.width > 0 ? run.letterSpacing ?? 0 : 0;
49128
+ const isRunStart = charPosInRun === 0 && segmentIndex === 0 && wordIndex === 0;
49129
+ const boundarySpacing = resolveBoundarySpacing(currentLine.width, isRunStart, run);
49099
49130
  const justifyAlignment = block.attrs?.alignment === "justify";
49100
49131
  const totalWidthWithWord = currentLine.width + boundarySpacing + wordCommitWidth + // Safe cast: only TextRuns produce word segments from split(), other run types are handled earlier
49101
49132
  (shouldIncludeDelimiterSpace ? run.letterSpacing ?? 0 : 0);
@@ -49263,6 +49294,7 @@ async function measureParagraphBlock(block, maxWidth) {
49263
49294
  }
49264
49295
  }
49265
49296
  }
49297
+ pendingRunSpacing = run.letterSpacing ?? 0;
49266
49298
  }
49267
49299
  if (!currentLine && lines.length === 0) {
49268
49300
  const uiDisplayFallbackFontSize = (block.runs[0]?.kind === "text" ? block.runs[0].fontSize : void 0) ?? 12;
@@ -50066,6 +50098,7 @@ class PresentationEditor extends EventEmitter {
50066
50098
  #dragLastPointer = null;
50067
50099
  #dragLastRawHit = null;
50068
50100
  #dragUsedPageNotMountedFallback = false;
50101
+ #suppressFocusInFromDraggable = false;
50069
50102
  // Cell selection drag state
50070
50103
  // Tracks cell-specific context when drag starts in a table for multi-cell selection
50071
50104
  #cellAnchor = null;
@@ -52049,6 +52082,7 @@ class PresentationEditor extends EventEmitter {
52049
52082
  return;
52050
52083
  }
52051
52084
  const isDraggableAnnotation = target?.closest?.('[data-draggable="true"]') != null;
52085
+ this.#suppressFocusInFromDraggable = isDraggableAnnotation;
52052
52086
  if (!this.#layoutState.layout) {
52053
52087
  if (!isDraggableAnnotation) {
52054
52088
  event.preventDefault();
@@ -52805,6 +52839,10 @@ class PresentationEditor extends EventEmitter {
52805
52839
  if (isInRegisteredSurface(event)) {
52806
52840
  return;
52807
52841
  }
52842
+ if (this.#suppressFocusInFromDraggable) {
52843
+ this.#suppressFocusInFromDraggable = false;
52844
+ return;
52845
+ }
52808
52846
  const target = event.target;
52809
52847
  const activeTarget = this.#getActiveDomTarget();
52810
52848
  if (!activeTarget) {
@@ -52831,6 +52869,7 @@ class PresentationEditor extends EventEmitter {
52831
52869
  }
52832
52870
  };
52833
52871
  #handlePointerUp = (event) => {
52872
+ this.#suppressFocusInFromDraggable = false;
52834
52873
  if (!this.#isDragging) return;
52835
52874
  if (typeof this.#viewportHost.hasPointerCapture === "function" && typeof this.#viewportHost.releasePointerCapture === "function" && this.#viewportHost.hasPointerCapture(event.pointerId)) {
52836
52875
  this.#viewportHost.releasePointerCapture(event.pointerId);
@@ -60578,16 +60617,7 @@ const Table = Node$1.create({
60578
60617
  * @param {import("./tableHelpers/createTableBorders.js").TableBorders} [borders] - Border styling for this table
60579
60618
  */
60580
60619
  borders: {
60581
- default: {},
60582
- renderDOM({ borders }) {
60583
- if (!borders) return {};
60584
- const style2 = Object.entries(borders).reduce((acc, [key2, { size: size2, color }]) => {
60585
- return `${acc}border-${key2}: ${Math.ceil(size2)}px solid ${color || "black"};`;
60586
- }, "");
60587
- return {
60588
- style: style2
60589
- };
60590
- }
60620
+ default: {}
60591
60621
  },
60592
60622
  /**
60593
60623
  * @category Attribute
@@ -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-BuT4cwmK.es.js";
2
- import "./SuperConverter-Bc9dM-qO.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-DoZiv8EQ.es.js";
2
+ import "./SuperConverter-DwLhA2mM.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";
@@ -7444,7 +7444,7 @@ const _sfc_main = {
7444
7444
  __name: "SuperDoc",
7445
7445
  emits: ["selection-update"],
7446
7446
  setup(__props, { emit: __emit }) {
7447
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CnKGOFjP.es.js"));
7447
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-CjwO2nPe.es.js"));
7448
7448
  const superdocStore = useSuperdocStore();
7449
7449
  const commentsStore = useCommentsStore();
7450
7450
  const {
@@ -8350,7 +8350,7 @@ class SuperDoc extends EventEmitter {
8350
8350
  this.config.colors = shuffleArray(this.config.colors);
8351
8351
  this.userColorMap = /* @__PURE__ */ new Map();
8352
8352
  this.colorIndex = 0;
8353
- this.version = "1.3.0-next.7";
8353
+ this.version = "1.3.0-next.8";
8354
8354
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
8355
8355
  this.superdocId = config.superdocId || v4();
8356
8356
  this.colors = this.config.colors;
package/dist/style.css CHANGED
@@ -7,7 +7,7 @@
7
7
  * SVG has its own rendering model and doesn't need CSS isolation the same way text content does.
8
8
  */
9
9
  .sd-editor-scoped,
10
- .sd-editor-scoped :where(*:not(svg):not(svg *)),
10
+ .sd-editor-scoped :where(*:not(svg):not(svg *):not(.annotation):not([data-drag-handle])),
11
11
  .sd-editor-scoped :where(*:not(svg):not(svg *)::before),
12
12
  .sd-editor-scoped :where(*:not(svg):not(svg *)::after) {
13
13
  all: revert;
@@ -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-BIrkxV37.cjs");
5
+ const superEditor_converter = require("../chunks/SuperConverter-d7nvQrVD.cjs");
6
6
  require("../chunks/uuid-R7L08bOx.cjs");
7
7
  exports.SuperConverter = superEditor_converter.SuperConverter;