@superdoc-dev/cli 0.2.0-next.82 → 0.2.0-next.83

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 (2) hide show
  1. package/dist/index.js +639 -629
  2. package/package.json +6 -6
package/dist/index.js CHANGED
@@ -119798,9 +119798,9 @@ var init_remark_gfm_CjV8kaUy_es = __esm(() => {
119798
119798
  init_remark_gfm_z_sDF4ss_es();
119799
119799
  });
119800
119800
 
119801
- // ../../packages/superdoc/dist/chunks/src-SQD068uc.es.js
119802
- var exports_src_SQD068uc_es = {};
119803
- __export(exports_src_SQD068uc_es, {
119801
+ // ../../packages/superdoc/dist/chunks/src-B8PRu6_u.es.js
119802
+ var exports_src_B8PRu6_u_es = {};
119803
+ __export(exports_src_B8PRu6_u_es, {
119804
119804
  zt: () => defineMark,
119805
119805
  z: () => cM,
119806
119806
  yt: () => removeAwarenessStates,
@@ -143426,6 +143426,28 @@ function computeWrapExclusion(image2, lineY, lineHeight$1) {
143426
143426
  return null;
143427
143427
  }
143428
143428
  }
143429
+ function mapWordFamilyFallback(wordFamily) {
143430
+ if (!wordFamily)
143431
+ return DEFAULT_GENERIC_FALLBACK2;
143432
+ return FONT_FAMILY_FALLBACKS2[wordFamily.toLowerCase()] || "sans-serif";
143433
+ }
143434
+ function toCssFontFamily(fontName, options = {}) {
143435
+ if (!fontName || typeof fontName !== "string")
143436
+ return fontName;
143437
+ let trimmed = fontName.trim();
143438
+ if (!trimmed || trimmed.includes(","))
143439
+ return trimmed;
143440
+ if (trimmed.includes(";"))
143441
+ trimmed = splitOutsideQuotes(trimmed, ";").join(", ");
143442
+ const { fallback, wordFamily } = options;
143443
+ const fallbackParts = normalizeParts(fallback ?? (wordFamily ? mapWordFamilyFallback(wordFamily) : undefined) ?? "sans-serif");
143444
+ if (fallbackParts.length === 0)
143445
+ return trimmed;
143446
+ const normalizedName = trimmed.toLowerCase();
143447
+ if (fallbackParts.some((part) => part.toLowerCase() === normalizedName))
143448
+ return fallbackParts.join(", ");
143449
+ return [trimmed, ...fallbackParts].join(", ");
143450
+ }
143429
143451
  function U() {
143430
143452
  if (typeof DOMParser < "u")
143431
143453
  return new DOMParser;
@@ -143842,6 +143864,318 @@ function k0(t) {
143842
143864
  ${o}
143843
143865
  </svg>`;
143844
143866
  }
143867
+ function assertPmPositions(run2, context) {
143868
+ const hasPmStart = run2.pmStart != null;
143869
+ const hasPmEnd = run2.pmEnd != null;
143870
+ globalValidationStats.record(hasPmStart, hasPmEnd);
143871
+ if (!isDevelopment())
143872
+ return;
143873
+ if (!hasPmStart || !hasPmEnd) {
143874
+ const textPreview = run2.text ? run2.text.substring(0, 20) + (run2.text.length > 20 ? "..." : "") : "(no text)";
143875
+ console.warn(`[PmPositionValidation] Missing PM positions in ${context}:`, {
143876
+ hasPmStart,
143877
+ hasPmEnd,
143878
+ textPreview,
143879
+ fallback: "Will use PM DOM coordinates for cursor positioning"
143880
+ });
143881
+ }
143882
+ }
143883
+ function assertFragmentPmPositions(fragment, _context) {
143884
+ const hasPmStart = fragment.pmStart != null;
143885
+ const hasPmEnd = fragment.pmEnd != null;
143886
+ globalValidationStats.record(hasPmStart, hasPmEnd);
143887
+ }
143888
+ function generateRulerDefinition(config2) {
143889
+ const ppi = config2.ppi ?? DEFAULT_PPI;
143890
+ const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
143891
+ const { pageSize, pageMargins } = config2;
143892
+ if (!Number.isFinite(ppi) || ppi <= 0)
143893
+ throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
143894
+ if (!Number.isFinite(pageSize.width) || pageSize.width <= 0)
143895
+ throw new Error(`Invalid page width: ${pageSize.width}. Must be a positive finite number.`);
143896
+ if (!Number.isFinite(pageSize.height) || pageSize.height <= 0)
143897
+ throw new Error(`Invalid page height: ${pageSize.height}. Must be a positive finite number.`);
143898
+ if (!Number.isFinite(pageMargins.left) || pageMargins.left < 0)
143899
+ throw new Error(`Invalid left margin: ${pageMargins.left}. Must be a non-negative finite number.`);
143900
+ if (!Number.isFinite(pageMargins.right) || pageMargins.right < 0)
143901
+ throw new Error(`Invalid right margin: ${pageMargins.right}. Must be a non-negative finite number.`);
143902
+ if (pageMargins.left + pageMargins.right >= pageSize.width)
143903
+ throw new Error(`Invalid margins: left (${pageMargins.left}) + right (${pageMargins.right}) must be less than page width (${pageSize.width}).`);
143904
+ const widthPx = pageSize.width * ppi;
143905
+ const ticks = [];
143906
+ let currentX = 0;
143907
+ for (let inch = 0;inch < pageSize.width; inch++) {
143908
+ const remaining = pageSize.width - inch;
143909
+ ticks.push({
143910
+ size: "main",
143911
+ height: "20%",
143912
+ label: inch,
143913
+ x: currentX
143914
+ });
143915
+ currentX += TICK_SPACING_PX;
143916
+ for (let i$1 = 0;i$1 < 3; i$1++) {
143917
+ ticks.push({
143918
+ size: "eighth",
143919
+ height: "10%",
143920
+ x: currentX
143921
+ });
143922
+ currentX += TICK_SPACING_PX;
143923
+ }
143924
+ ticks.push({
143925
+ size: "half",
143926
+ height: "40%",
143927
+ x: currentX
143928
+ });
143929
+ currentX += TICK_SPACING_PX;
143930
+ if (remaining <= 0.5)
143931
+ break;
143932
+ for (let i$1 = 0;i$1 < 3; i$1++) {
143933
+ ticks.push({
143934
+ size: "eighth",
143935
+ height: "10%",
143936
+ x: currentX
143937
+ });
143938
+ currentX += TICK_SPACING_PX;
143939
+ }
143940
+ }
143941
+ return {
143942
+ widthPx,
143943
+ heightPx,
143944
+ ticks,
143945
+ leftMarginPx: pageMargins.left * ppi,
143946
+ rightMarginPx: widthPx - pageMargins.right * ppi,
143947
+ pageWidthInches: pageSize.width
143948
+ };
143949
+ }
143950
+ function calculateMarginFromHandle(handleX, side, pageWidthPx, ppi = DEFAULT_PPI) {
143951
+ if (side === "left")
143952
+ return handleX / ppi;
143953
+ else
143954
+ return (pageWidthPx - handleX) / ppi;
143955
+ }
143956
+ function clampHandlePosition(handleX, side, otherHandleX, pageWidthPx, minContentWidthPx = 200) {
143957
+ if (!Number.isFinite(handleX))
143958
+ throw new Error(`Invalid handleX: ${handleX}. Must be a finite number.`);
143959
+ if (!Number.isFinite(otherHandleX))
143960
+ throw new Error(`Invalid otherHandleX: ${otherHandleX}. Must be a finite number.`);
143961
+ if (!Number.isFinite(pageWidthPx))
143962
+ throw new Error(`Invalid pageWidthPx: ${pageWidthPx}. Must be a finite number.`);
143963
+ if (!Number.isFinite(minContentWidthPx))
143964
+ throw new Error(`Invalid minContentWidthPx: ${minContentWidthPx}. Must be a finite number.`);
143965
+ if (side === "left") {
143966
+ const min$2 = 0;
143967
+ const max$2 = otherHandleX - minContentWidthPx;
143968
+ return Math.max(min$2, Math.min(max$2, handleX));
143969
+ } else {
143970
+ const min$2 = otherHandleX + minContentWidthPx;
143971
+ const max$2 = pageWidthPx;
143972
+ return Math.max(min$2, Math.min(max$2, handleX));
143973
+ }
143974
+ }
143975
+ function generateRulerDefinitionFromPx(config2) {
143976
+ const ppi = config2.ppi ?? DEFAULT_PPI;
143977
+ const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
143978
+ const { pageWidthPx, leftMarginPx, rightMarginPx } = config2;
143979
+ if (!Number.isFinite(ppi) || ppi <= 0)
143980
+ throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
143981
+ if (!Number.isFinite(pageWidthPx) || pageWidthPx <= 0)
143982
+ throw new Error(`Invalid page width: ${pageWidthPx}px. Must be a positive finite number.`);
143983
+ if (!Number.isFinite(config2.pageHeightPx) || config2.pageHeightPx <= 0)
143984
+ throw new Error(`Invalid page height: ${config2.pageHeightPx}px. Must be a positive finite number.`);
143985
+ if (!Number.isFinite(leftMarginPx) || leftMarginPx < 0)
143986
+ throw new Error(`Invalid left margin: ${leftMarginPx}px. Must be a non-negative finite number.`);
143987
+ if (!Number.isFinite(rightMarginPx) || rightMarginPx < 0)
143988
+ throw new Error(`Invalid right margin: ${rightMarginPx}px. Must be a non-negative finite number.`);
143989
+ if (leftMarginPx + rightMarginPx >= pageWidthPx)
143990
+ throw new Error(`Invalid margins: left (${leftMarginPx}px) + right (${rightMarginPx}px) must be less than page width (${pageWidthPx}px).`);
143991
+ const pageWidthInches = pageWidthPx / ppi;
143992
+ const ticks = [];
143993
+ let currentX = 0;
143994
+ for (let inch = 0;inch < pageWidthInches; inch++) {
143995
+ const remaining = pageWidthInches - inch;
143996
+ ticks.push({
143997
+ size: "main",
143998
+ height: "20%",
143999
+ label: inch,
144000
+ x: currentX
144001
+ });
144002
+ currentX += TICK_SPACING_PX;
144003
+ for (let i$1 = 0;i$1 < 3; i$1++) {
144004
+ ticks.push({
144005
+ size: "eighth",
144006
+ height: "10%",
144007
+ x: currentX
144008
+ });
144009
+ currentX += TICK_SPACING_PX;
144010
+ }
144011
+ ticks.push({
144012
+ size: "half",
144013
+ height: "40%",
144014
+ x: currentX
144015
+ });
144016
+ currentX += TICK_SPACING_PX;
144017
+ if (remaining <= 0.5)
144018
+ break;
144019
+ for (let i$1 = 0;i$1 < 3; i$1++) {
144020
+ ticks.push({
144021
+ size: "eighth",
144022
+ height: "10%",
144023
+ x: currentX
144024
+ });
144025
+ currentX += TICK_SPACING_PX;
144026
+ }
144027
+ }
144028
+ return {
144029
+ widthPx: pageWidthPx,
144030
+ heightPx,
144031
+ ticks,
144032
+ leftMarginPx,
144033
+ rightMarginPx: pageWidthPx - rightMarginPx,
144034
+ pageWidthInches
144035
+ };
144036
+ }
144037
+ function createRulerElement(options) {
144038
+ const { definition: definition3, doc: doc$2, interactive = false } = options;
144039
+ if (!Number.isFinite(definition3.widthPx) || definition3.widthPx <= 0) {
144040
+ console.warn(`[createRulerElement] Invalid ruler width: ${definition3.widthPx}px. Using minimum width of 1px.`);
144041
+ definition3.widthPx = Math.max(1, definition3.widthPx || 1);
144042
+ }
144043
+ if (!definition3.ticks || definition3.ticks.length === 0)
144044
+ console.warn("[createRulerElement] Ruler definition has no ticks. Ruler will be empty.");
144045
+ const ruler = doc$2.createElement("div");
144046
+ ruler.className = RULER_CLASS_NAMES.ruler;
144047
+ ruler.style.cssText = `
144048
+ position: relative;
144049
+ width: ${definition3.widthPx}px;
144050
+ height: ${definition3.heightPx}px;
144051
+ display: flex;
144052
+ align-items: flex-end;
144053
+ box-sizing: border-box;
144054
+ user-select: none;
144055
+ pointer-events: ${interactive ? "auto" : "none"};
144056
+ `;
144057
+ for (const tick of definition3.ticks) {
144058
+ const tickEl = createTickElement(tick, doc$2);
144059
+ ruler.appendChild(tickEl);
144060
+ }
144061
+ if (interactive) {
144062
+ const leftHandle = createHandleElement("left", definition3.leftMarginPx, doc$2, options);
144063
+ const rightHandle = createHandleElement("right", definition3.rightMarginPx, doc$2, options);
144064
+ ruler.appendChild(leftHandle);
144065
+ ruler.appendChild(rightHandle);
144066
+ }
144067
+ return ruler;
144068
+ }
144069
+ function createTickElement(tick, doc$2) {
144070
+ const el = doc$2.createElement("div");
144071
+ const sizeClass = tick.size === "main" ? RULER_CLASS_NAMES.tickMain : tick.size === "half" ? RULER_CLASS_NAMES.tickHalf : RULER_CLASS_NAMES.tickEighth;
144072
+ el.className = `${RULER_CLASS_NAMES.tick} ${sizeClass}`;
144073
+ el.style.cssText = `
144074
+ position: absolute;
144075
+ left: ${tick.x}px;
144076
+ bottom: 0;
144077
+ width: 1px;
144078
+ height: ${tick.height};
144079
+ background-color: #666;
144080
+ pointer-events: none;
144081
+ `;
144082
+ if (tick.label !== undefined) {
144083
+ const label = doc$2.createElement("span");
144084
+ label.className = RULER_CLASS_NAMES.label;
144085
+ label.textContent = String(tick.label);
144086
+ label.style.cssText = `
144087
+ position: absolute;
144088
+ top: -16px;
144089
+ left: -2px;
144090
+ font-size: 10px;
144091
+ color: #666;
144092
+ pointer-events: none;
144093
+ user-select: none;
144094
+ `;
144095
+ el.appendChild(label);
144096
+ }
144097
+ return el;
144098
+ }
144099
+ function createHandleElement(side, x, doc$2, options) {
144100
+ const handle3 = doc$2.createElement("div");
144101
+ const sideClass = side === "left" ? RULER_CLASS_NAMES.handleLeft : RULER_CLASS_NAMES.handleRight;
144102
+ handle3.className = `${RULER_CLASS_NAMES.handle} ${sideClass}`;
144103
+ handle3.dataset.side = side;
144104
+ handle3.style.cssText = `
144105
+ position: absolute;
144106
+ left: ${x}px;
144107
+ top: 0;
144108
+ width: 5px;
144109
+ height: 20px;
144110
+ margin-left: -2px;
144111
+ background-color: #ccc;
144112
+ border-radius: 4px 4px 0 0;
144113
+ cursor: grab;
144114
+ transition: background-color 150ms ease;
144115
+ z-index: 10;
144116
+ `;
144117
+ handle3.addEventListener("mouseenter", () => {
144118
+ if (!handle3.dataset.dragging)
144119
+ handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
144120
+ });
144121
+ handle3.addEventListener("mouseleave", () => {
144122
+ if (!handle3.dataset.dragging)
144123
+ handle3.style.backgroundColor = "#ccc";
144124
+ });
144125
+ if (options.onDragStart || options.onDrag || options.onDragEnd)
144126
+ setupHandleDrag(handle3, side, options);
144127
+ return handle3;
144128
+ }
144129
+ function setupHandleDrag(handle3, side, options) {
144130
+ let offsetX = 0;
144131
+ const onPointerDown = (event) => {
144132
+ event.preventDefault();
144133
+ handle3.dataset.dragging = "true";
144134
+ handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
144135
+ handle3.style.cursor = "grabbing";
144136
+ const rect = handle3.getBoundingClientRect();
144137
+ offsetX = event.clientX - rect.left - rect.width / 2;
144138
+ handle3.setPointerCapture(event.pointerId);
144139
+ options.onDragStart?.(side, event);
144140
+ };
144141
+ const onPointerMove = (event) => {
144142
+ if (handle3.dataset.dragging !== "true")
144143
+ return;
144144
+ const ruler = handle3.parentElement;
144145
+ if (!ruler)
144146
+ return;
144147
+ const rulerRect = ruler.getBoundingClientRect();
144148
+ const newX = event.clientX - rulerRect.left - offsetX;
144149
+ options.onDrag?.(side, newX, event);
144150
+ };
144151
+ const onPointerUp = (event) => {
144152
+ if (handle3.dataset.dragging !== "true")
144153
+ return;
144154
+ handle3.dataset.dragging = "";
144155
+ handle3.style.backgroundColor = "#ccc";
144156
+ handle3.style.cursor = "grab";
144157
+ handle3.releasePointerCapture(event.pointerId);
144158
+ const ruler = handle3.parentElement;
144159
+ if (!ruler)
144160
+ return;
144161
+ const rulerRect = ruler.getBoundingClientRect();
144162
+ const finalX = event.clientX - rulerRect.left - offsetX;
144163
+ options.onDragEnd?.(side, finalX, event);
144164
+ };
144165
+ handle3.addEventListener("pointerdown", onPointerDown);
144166
+ handle3.addEventListener("pointermove", onPointerMove);
144167
+ handle3.addEventListener("pointerup", onPointerUp);
144168
+ handle3.addEventListener("pointercancel", onPointerUp);
144169
+ }
144170
+ function ensureRulerStyles(doc$2) {
144171
+ if (rulerStylesInjected || !doc$2)
144172
+ return;
144173
+ const styleEl = doc$2.createElement("style");
144174
+ styleEl.setAttribute("data-superdoc-ruler-styles", "true");
144175
+ styleEl.textContent = RULER_STYLES;
144176
+ doc$2.head?.appendChild(styleEl);
144177
+ rulerStylesInjected = true;
144178
+ }
143845
144179
  function validateHexColor(color2) {
143846
144180
  if (typeof color2 !== "string")
143847
144181
  return;
@@ -144025,28 +144359,6 @@ function normalizeRotation(rotation) {
144025
144359
  function degToRad(degrees) {
144026
144360
  return degrees * Math.PI / 180;
144027
144361
  }
144028
- function mapWordFamilyFallback(wordFamily) {
144029
- if (!wordFamily)
144030
- return DEFAULT_GENERIC_FALLBACK2;
144031
- return FONT_FAMILY_FALLBACKS2[wordFamily.toLowerCase()] || "sans-serif";
144032
- }
144033
- function toCssFontFamily(fontName, options = {}) {
144034
- if (!fontName || typeof fontName !== "string")
144035
- return fontName;
144036
- let trimmed = fontName.trim();
144037
- if (!trimmed || trimmed.includes(","))
144038
- return trimmed;
144039
- if (trimmed.includes(";"))
144040
- trimmed = splitOutsideQuotes(trimmed, ";").join(", ");
144041
- const { fallback, wordFamily } = options;
144042
- const fallbackParts = normalizeParts(fallback ?? (wordFamily ? mapWordFamilyFallback(wordFamily) : undefined) ?? "sans-serif");
144043
- if (fallbackParts.length === 0)
144044
- return trimmed;
144045
- const normalizedName = trimmed.toLowerCase();
144046
- if (fallbackParts.some((part) => part.toLowerCase() === normalizedName))
144047
- return fallbackParts.join(", ");
144048
- return [trimmed, ...fallbackParts].join(", ");
144049
- }
144050
144362
  function getMeasuredTextWidth(text5, font, letterSpacing, ctx$2) {
144051
144363
  if (text5.length > 32000)
144052
144364
  text5 = text5.substring(0, 32000);
@@ -150242,321 +150554,9 @@ function applyParagraphBordersAndShading(paraWrapper, block) {
150242
150554
  if (shadingFill)
150243
150555
  paraWrapper.style.backgroundColor = shadingFill;
150244
150556
  }
150245
- function assertPmPositions(run2, context) {
150246
- const hasPmStart = run2.pmStart != null;
150247
- const hasPmEnd = run2.pmEnd != null;
150248
- globalValidationStats.record(hasPmStart, hasPmEnd);
150249
- if (!isDevelopment())
150250
- return;
150251
- if (!hasPmStart || !hasPmEnd) {
150252
- const textPreview = run2.text ? run2.text.substring(0, 20) + (run2.text.length > 20 ? "..." : "") : "(no text)";
150253
- console.warn(`[PmPositionValidation] Missing PM positions in ${context}:`, {
150254
- hasPmStart,
150255
- hasPmEnd,
150256
- textPreview,
150257
- fallback: "Will use PM DOM coordinates for cursor positioning"
150258
- });
150259
- }
150260
- }
150261
- function assertFragmentPmPositions(fragment, _context) {
150262
- const hasPmStart = fragment.pmStart != null;
150263
- const hasPmEnd = fragment.pmEnd != null;
150264
- globalValidationStats.record(hasPmStart, hasPmEnd);
150265
- }
150266
150557
  function sdtElementsById(root$1, sdtId) {
150267
150558
  return root$1.querySelectorAll(`.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id="${sdtId}"]`);
150268
150559
  }
150269
- function generateRulerDefinition(config2) {
150270
- const ppi = config2.ppi ?? DEFAULT_PPI;
150271
- const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
150272
- const { pageSize, pageMargins } = config2;
150273
- if (!Number.isFinite(ppi) || ppi <= 0)
150274
- throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
150275
- if (!Number.isFinite(pageSize.width) || pageSize.width <= 0)
150276
- throw new Error(`Invalid page width: ${pageSize.width}. Must be a positive finite number.`);
150277
- if (!Number.isFinite(pageSize.height) || pageSize.height <= 0)
150278
- throw new Error(`Invalid page height: ${pageSize.height}. Must be a positive finite number.`);
150279
- if (!Number.isFinite(pageMargins.left) || pageMargins.left < 0)
150280
- throw new Error(`Invalid left margin: ${pageMargins.left}. Must be a non-negative finite number.`);
150281
- if (!Number.isFinite(pageMargins.right) || pageMargins.right < 0)
150282
- throw new Error(`Invalid right margin: ${pageMargins.right}. Must be a non-negative finite number.`);
150283
- if (pageMargins.left + pageMargins.right >= pageSize.width)
150284
- throw new Error(`Invalid margins: left (${pageMargins.left}) + right (${pageMargins.right}) must be less than page width (${pageSize.width}).`);
150285
- const widthPx = pageSize.width * ppi;
150286
- const ticks = [];
150287
- let currentX = 0;
150288
- for (let inch = 0;inch < pageSize.width; inch++) {
150289
- const remaining = pageSize.width - inch;
150290
- ticks.push({
150291
- size: "main",
150292
- height: "20%",
150293
- label: inch,
150294
- x: currentX
150295
- });
150296
- currentX += TICK_SPACING_PX;
150297
- for (let i$1 = 0;i$1 < 3; i$1++) {
150298
- ticks.push({
150299
- size: "eighth",
150300
- height: "10%",
150301
- x: currentX
150302
- });
150303
- currentX += TICK_SPACING_PX;
150304
- }
150305
- ticks.push({
150306
- size: "half",
150307
- height: "40%",
150308
- x: currentX
150309
- });
150310
- currentX += TICK_SPACING_PX;
150311
- if (remaining <= 0.5)
150312
- break;
150313
- for (let i$1 = 0;i$1 < 3; i$1++) {
150314
- ticks.push({
150315
- size: "eighth",
150316
- height: "10%",
150317
- x: currentX
150318
- });
150319
- currentX += TICK_SPACING_PX;
150320
- }
150321
- }
150322
- return {
150323
- widthPx,
150324
- heightPx,
150325
- ticks,
150326
- leftMarginPx: pageMargins.left * ppi,
150327
- rightMarginPx: widthPx - pageMargins.right * ppi,
150328
- pageWidthInches: pageSize.width
150329
- };
150330
- }
150331
- function calculateMarginFromHandle(handleX, side, pageWidthPx, ppi = DEFAULT_PPI) {
150332
- if (side === "left")
150333
- return handleX / ppi;
150334
- else
150335
- return (pageWidthPx - handleX) / ppi;
150336
- }
150337
- function clampHandlePosition(handleX, side, otherHandleX, pageWidthPx, minContentWidthPx = 200) {
150338
- if (!Number.isFinite(handleX))
150339
- throw new Error(`Invalid handleX: ${handleX}. Must be a finite number.`);
150340
- if (!Number.isFinite(otherHandleX))
150341
- throw new Error(`Invalid otherHandleX: ${otherHandleX}. Must be a finite number.`);
150342
- if (!Number.isFinite(pageWidthPx))
150343
- throw new Error(`Invalid pageWidthPx: ${pageWidthPx}. Must be a finite number.`);
150344
- if (!Number.isFinite(minContentWidthPx))
150345
- throw new Error(`Invalid minContentWidthPx: ${minContentWidthPx}. Must be a finite number.`);
150346
- if (side === "left") {
150347
- const min$2 = 0;
150348
- const max$2 = otherHandleX - minContentWidthPx;
150349
- return Math.max(min$2, Math.min(max$2, handleX));
150350
- } else {
150351
- const min$2 = otherHandleX + minContentWidthPx;
150352
- const max$2 = pageWidthPx;
150353
- return Math.max(min$2, Math.min(max$2, handleX));
150354
- }
150355
- }
150356
- function generateRulerDefinitionFromPx(config2) {
150357
- const ppi = config2.ppi ?? DEFAULT_PPI;
150358
- const heightPx = config2.heightPx ?? DEFAULT_RULER_HEIGHT;
150359
- const { pageWidthPx, leftMarginPx, rightMarginPx } = config2;
150360
- if (!Number.isFinite(ppi) || ppi <= 0)
150361
- throw new Error(`Invalid PPI: ${ppi}. Must be a positive finite number.`);
150362
- if (!Number.isFinite(pageWidthPx) || pageWidthPx <= 0)
150363
- throw new Error(`Invalid page width: ${pageWidthPx}px. Must be a positive finite number.`);
150364
- if (!Number.isFinite(config2.pageHeightPx) || config2.pageHeightPx <= 0)
150365
- throw new Error(`Invalid page height: ${config2.pageHeightPx}px. Must be a positive finite number.`);
150366
- if (!Number.isFinite(leftMarginPx) || leftMarginPx < 0)
150367
- throw new Error(`Invalid left margin: ${leftMarginPx}px. Must be a non-negative finite number.`);
150368
- if (!Number.isFinite(rightMarginPx) || rightMarginPx < 0)
150369
- throw new Error(`Invalid right margin: ${rightMarginPx}px. Must be a non-negative finite number.`);
150370
- if (leftMarginPx + rightMarginPx >= pageWidthPx)
150371
- throw new Error(`Invalid margins: left (${leftMarginPx}px) + right (${rightMarginPx}px) must be less than page width (${pageWidthPx}px).`);
150372
- const pageWidthInches = pageWidthPx / ppi;
150373
- const ticks = [];
150374
- let currentX = 0;
150375
- for (let inch = 0;inch < pageWidthInches; inch++) {
150376
- const remaining = pageWidthInches - inch;
150377
- ticks.push({
150378
- size: "main",
150379
- height: "20%",
150380
- label: inch,
150381
- x: currentX
150382
- });
150383
- currentX += TICK_SPACING_PX;
150384
- for (let i$1 = 0;i$1 < 3; i$1++) {
150385
- ticks.push({
150386
- size: "eighth",
150387
- height: "10%",
150388
- x: currentX
150389
- });
150390
- currentX += TICK_SPACING_PX;
150391
- }
150392
- ticks.push({
150393
- size: "half",
150394
- height: "40%",
150395
- x: currentX
150396
- });
150397
- currentX += TICK_SPACING_PX;
150398
- if (remaining <= 0.5)
150399
- break;
150400
- for (let i$1 = 0;i$1 < 3; i$1++) {
150401
- ticks.push({
150402
- size: "eighth",
150403
- height: "10%",
150404
- x: currentX
150405
- });
150406
- currentX += TICK_SPACING_PX;
150407
- }
150408
- }
150409
- return {
150410
- widthPx: pageWidthPx,
150411
- heightPx,
150412
- ticks,
150413
- leftMarginPx,
150414
- rightMarginPx: pageWidthPx - rightMarginPx,
150415
- pageWidthInches
150416
- };
150417
- }
150418
- function createRulerElement(options) {
150419
- const { definition: definition3, doc: doc$2, interactive = false } = options;
150420
- if (!Number.isFinite(definition3.widthPx) || definition3.widthPx <= 0) {
150421
- console.warn(`[createRulerElement] Invalid ruler width: ${definition3.widthPx}px. Using minimum width of 1px.`);
150422
- definition3.widthPx = Math.max(1, definition3.widthPx || 1);
150423
- }
150424
- if (!definition3.ticks || definition3.ticks.length === 0)
150425
- console.warn("[createRulerElement] Ruler definition has no ticks. Ruler will be empty.");
150426
- const ruler = doc$2.createElement("div");
150427
- ruler.className = RULER_CLASS_NAMES.ruler;
150428
- ruler.style.cssText = `
150429
- position: relative;
150430
- width: ${definition3.widthPx}px;
150431
- height: ${definition3.heightPx}px;
150432
- display: flex;
150433
- align-items: flex-end;
150434
- box-sizing: border-box;
150435
- user-select: none;
150436
- pointer-events: ${interactive ? "auto" : "none"};
150437
- `;
150438
- for (const tick of definition3.ticks) {
150439
- const tickEl = createTickElement(tick, doc$2);
150440
- ruler.appendChild(tickEl);
150441
- }
150442
- if (interactive) {
150443
- const leftHandle = createHandleElement("left", definition3.leftMarginPx, doc$2, options);
150444
- const rightHandle = createHandleElement("right", definition3.rightMarginPx, doc$2, options);
150445
- ruler.appendChild(leftHandle);
150446
- ruler.appendChild(rightHandle);
150447
- }
150448
- return ruler;
150449
- }
150450
- function createTickElement(tick, doc$2) {
150451
- const el = doc$2.createElement("div");
150452
- const sizeClass = tick.size === "main" ? RULER_CLASS_NAMES.tickMain : tick.size === "half" ? RULER_CLASS_NAMES.tickHalf : RULER_CLASS_NAMES.tickEighth;
150453
- el.className = `${RULER_CLASS_NAMES.tick} ${sizeClass}`;
150454
- el.style.cssText = `
150455
- position: absolute;
150456
- left: ${tick.x}px;
150457
- bottom: 0;
150458
- width: 1px;
150459
- height: ${tick.height};
150460
- background-color: #666;
150461
- pointer-events: none;
150462
- `;
150463
- if (tick.label !== undefined) {
150464
- const label = doc$2.createElement("span");
150465
- label.className = RULER_CLASS_NAMES.label;
150466
- label.textContent = String(tick.label);
150467
- label.style.cssText = `
150468
- position: absolute;
150469
- top: -16px;
150470
- left: -2px;
150471
- font-size: 10px;
150472
- color: #666;
150473
- pointer-events: none;
150474
- user-select: none;
150475
- `;
150476
- el.appendChild(label);
150477
- }
150478
- return el;
150479
- }
150480
- function createHandleElement(side, x, doc$2, options) {
150481
- const handle3 = doc$2.createElement("div");
150482
- const sideClass = side === "left" ? RULER_CLASS_NAMES.handleLeft : RULER_CLASS_NAMES.handleRight;
150483
- handle3.className = `${RULER_CLASS_NAMES.handle} ${sideClass}`;
150484
- handle3.dataset.side = side;
150485
- handle3.style.cssText = `
150486
- position: absolute;
150487
- left: ${x}px;
150488
- top: 0;
150489
- width: 5px;
150490
- height: 20px;
150491
- margin-left: -2px;
150492
- background-color: #ccc;
150493
- border-radius: 4px 4px 0 0;
150494
- cursor: grab;
150495
- transition: background-color 150ms ease;
150496
- z-index: 10;
150497
- `;
150498
- handle3.addEventListener("mouseenter", () => {
150499
- if (!handle3.dataset.dragging)
150500
- handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
150501
- });
150502
- handle3.addEventListener("mouseleave", () => {
150503
- if (!handle3.dataset.dragging)
150504
- handle3.style.backgroundColor = "#ccc";
150505
- });
150506
- if (options.onDragStart || options.onDrag || options.onDragEnd)
150507
- setupHandleDrag(handle3, side, options);
150508
- return handle3;
150509
- }
150510
- function setupHandleDrag(handle3, side, options) {
150511
- let offsetX = 0;
150512
- const onPointerDown = (event) => {
150513
- event.preventDefault();
150514
- handle3.dataset.dragging = "true";
150515
- handle3.style.backgroundColor = "rgba(37, 99, 235, 0.4)";
150516
- handle3.style.cursor = "grabbing";
150517
- const rect = handle3.getBoundingClientRect();
150518
- offsetX = event.clientX - rect.left - rect.width / 2;
150519
- handle3.setPointerCapture(event.pointerId);
150520
- options.onDragStart?.(side, event);
150521
- };
150522
- const onPointerMove = (event) => {
150523
- if (handle3.dataset.dragging !== "true")
150524
- return;
150525
- const ruler = handle3.parentElement;
150526
- if (!ruler)
150527
- return;
150528
- const rulerRect = ruler.getBoundingClientRect();
150529
- const newX = event.clientX - rulerRect.left - offsetX;
150530
- options.onDrag?.(side, newX, event);
150531
- };
150532
- const onPointerUp = (event) => {
150533
- if (handle3.dataset.dragging !== "true")
150534
- return;
150535
- handle3.dataset.dragging = "";
150536
- handle3.style.backgroundColor = "#ccc";
150537
- handle3.style.cursor = "grab";
150538
- handle3.releasePointerCapture(event.pointerId);
150539
- const ruler = handle3.parentElement;
150540
- if (!ruler)
150541
- return;
150542
- const rulerRect = ruler.getBoundingClientRect();
150543
- const finalX = event.clientX - rulerRect.left - offsetX;
150544
- options.onDragEnd?.(side, finalX, event);
150545
- };
150546
- handle3.addEventListener("pointerdown", onPointerDown);
150547
- handle3.addEventListener("pointermove", onPointerMove);
150548
- handle3.addEventListener("pointerup", onPointerUp);
150549
- handle3.addEventListener("pointercancel", onPointerUp);
150550
- }
150551
- function ensureRulerStyles(doc$2) {
150552
- if (rulerStylesInjected || !doc$2)
150553
- return;
150554
- const styleEl = doc$2.createElement("style");
150555
- styleEl.setAttribute("data-superdoc-ruler-styles", "true");
150556
- styleEl.textContent = RULER_STYLES;
150557
- doc$2.head?.appendChild(styleEl);
150558
- rulerStylesInjected = true;
150559
- }
150560
150560
  function isMinimalWordLayout(value) {
150561
150561
  if (typeof value !== "object" || value === null)
150562
150562
  return false;
@@ -179258,7 +179258,194 @@ var Node$13 = class Node$14 {
179258
179258
  return;
179259
179259
  const candidate = run2.pmEnd;
179260
179260
  return typeof candidate === "number" ? candidate : undefined;
179261
- }, engines_exports, _, F, X, p3 = "http://schemas.openxmlformats.org/drawingml/2006/main", G, c0, n0 = 100, o0, u0 = (t) => h$1(t, p3, "path").length > 0, M0, r0, gradientIdCounter = 0, DOM_CLASS_NAMES, CLASS_NAMES$1, DEFAULT_PAGE_STYLES, containerStyles, containerStylesHorizontal, spreadStyles, pageStyles = (width, height, overrides) => {
179261
+ }, engines_exports, FONT_FAMILY_FALLBACKS2, DEFAULT_GENERIC_FALLBACK2 = "sans-serif", normalizeParts = (value) => (value || "").split(",").map((part) => part.trim()).filter(Boolean), splitOutsideQuotes = (str, delimiter) => {
179262
+ if (!str.includes('"') && !str.includes("'"))
179263
+ return str.split(delimiter).map((p$12) => p$12.trim()).filter(Boolean);
179264
+ const parts = [];
179265
+ let current = "";
179266
+ let inQuote = false;
179267
+ let quoteChar = null;
179268
+ for (const char of str)
179269
+ if (!inQuote && (char === '"' || char === "'")) {
179270
+ inQuote = true;
179271
+ quoteChar = char;
179272
+ current += char;
179273
+ } else if (inQuote && char === quoteChar) {
179274
+ inQuote = false;
179275
+ quoteChar = null;
179276
+ current += char;
179277
+ } else if (!inQuote && char === delimiter) {
179278
+ if (current.trim())
179279
+ parts.push(current.trim());
179280
+ current = "";
179281
+ } else
179282
+ current += char;
179283
+ if (current.trim())
179284
+ parts.push(current.trim());
179285
+ return parts;
179286
+ }, _, F, X, p3 = "http://schemas.openxmlformats.org/drawingml/2006/main", G, c0, n0 = 100, o0, u0 = (t) => h$1(t, p3, "path").length > 0, M0, r0, DOM_CLASS_NAMES, hashParagraphBorder$1 = (border) => {
179287
+ const parts = [];
179288
+ if (border.style !== undefined)
179289
+ parts.push(`s:${border.style}`);
179290
+ if (border.width !== undefined)
179291
+ parts.push(`w:${border.width}`);
179292
+ if (border.color !== undefined)
179293
+ parts.push(`c:${border.color}`);
179294
+ if (border.space !== undefined)
179295
+ parts.push(`sp:${border.space}`);
179296
+ return parts.join(",");
179297
+ }, hashParagraphBorders$1 = (borders) => {
179298
+ const parts = [];
179299
+ if (borders.top)
179300
+ parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
179301
+ if (borders.right)
179302
+ parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
179303
+ if (borders.bottom)
179304
+ parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
179305
+ if (borders.left)
179306
+ parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
179307
+ return parts.join(";");
179308
+ }, isNoneBorder$1 = (value) => {
179309
+ return typeof value === "object" && value !== null && "none" in value && value.none === true;
179310
+ }, isBorderSpec$1 = (value) => {
179311
+ return typeof value === "object" && value !== null && !("none" in value);
179312
+ }, hashBorderSpec$1 = (border) => {
179313
+ const parts = [];
179314
+ if (border.style !== undefined)
179315
+ parts.push(`s:${border.style}`);
179316
+ if (border.width !== undefined)
179317
+ parts.push(`w:${border.width}`);
179318
+ if (border.color !== undefined)
179319
+ parts.push(`c:${border.color}`);
179320
+ if (border.space !== undefined)
179321
+ parts.push(`sp:${border.space}`);
179322
+ return parts.join(",");
179323
+ }, hashTableBorderValue$1 = (borderValue) => {
179324
+ if (borderValue === undefined)
179325
+ return "";
179326
+ if (borderValue === null)
179327
+ return "null";
179328
+ if (isNoneBorder$1(borderValue))
179329
+ return "none";
179330
+ if (isBorderSpec$1(borderValue))
179331
+ return hashBorderSpec$1(borderValue);
179332
+ return "";
179333
+ }, hashTableBorders$1 = (borders) => {
179334
+ if (!borders)
179335
+ return "";
179336
+ const parts = [];
179337
+ if (borders.top !== undefined)
179338
+ parts.push(`t:[${hashTableBorderValue$1(borders.top)}]`);
179339
+ if (borders.right !== undefined)
179340
+ parts.push(`r:[${hashTableBorderValue$1(borders.right)}]`);
179341
+ if (borders.bottom !== undefined)
179342
+ parts.push(`b:[${hashTableBorderValue$1(borders.bottom)}]`);
179343
+ if (borders.left !== undefined)
179344
+ parts.push(`l:[${hashTableBorderValue$1(borders.left)}]`);
179345
+ if (borders.insideH !== undefined)
179346
+ parts.push(`ih:[${hashTableBorderValue$1(borders.insideH)}]`);
179347
+ if (borders.insideV !== undefined)
179348
+ parts.push(`iv:[${hashTableBorderValue$1(borders.insideV)}]`);
179349
+ return parts.join(";");
179350
+ }, hashCellBorders$1 = (borders) => {
179351
+ if (!borders)
179352
+ return "";
179353
+ const parts = [];
179354
+ if (borders.top)
179355
+ parts.push(`t:[${hashBorderSpec$1(borders.top)}]`);
179356
+ if (borders.right)
179357
+ parts.push(`r:[${hashBorderSpec$1(borders.right)}]`);
179358
+ if (borders.bottom)
179359
+ parts.push(`b:[${hashBorderSpec$1(borders.bottom)}]`);
179360
+ if (borders.left)
179361
+ parts.push(`l:[${hashBorderSpec$1(borders.left)}]`);
179362
+ return parts.join(";");
179363
+ }, hasStringProp = (run2, prop) => {
179364
+ return prop in run2 && typeof run2[prop] === "string";
179365
+ }, hasNumberProp = (run2, prop) => {
179366
+ return prop in run2 && typeof run2[prop] === "number";
179367
+ }, hasBooleanProp = (run2, prop) => {
179368
+ return prop in run2 && typeof run2[prop] === "boolean";
179369
+ }, getRunStringProp = (run2, prop) => {
179370
+ if (hasStringProp(run2, prop))
179371
+ return run2[prop];
179372
+ return "";
179373
+ }, getRunNumberProp = (run2, prop) => {
179374
+ if (hasNumberProp(run2, prop))
179375
+ return run2[prop];
179376
+ return 0;
179377
+ }, getRunBooleanProp = (run2, prop) => {
179378
+ if (hasBooleanProp(run2, prop))
179379
+ return run2[prop];
179380
+ return false;
179381
+ }, getRunUnderlineStyle = (run2) => {
179382
+ if ("underline" in run2 && typeof run2.underline === "boolean")
179383
+ return run2.underline ? "single" : "";
179384
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179385
+ return run2.underline.style ?? "";
179386
+ return "";
179387
+ }, getRunUnderlineColor = (run2) => {
179388
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
179389
+ return run2.underline.color ?? "";
179390
+ return "";
179391
+ }, isDevelopment = () => {
179392
+ if (typeof process$1 !== "undefined" && typeof process$1.env !== "undefined")
179393
+ return process$1.env.NODE_ENV === "development";
179394
+ return false;
179395
+ }, ValidationStatsCollector = class {
179396
+ constructor() {
179397
+ this.stats = {
179398
+ totalSpans: 0,
179399
+ validSpans: 0,
179400
+ missingPmStart: 0,
179401
+ missingPmEnd: 0,
179402
+ missingBoth: 0
179403
+ };
179404
+ }
179405
+ record(hasPmStart, hasPmEnd) {
179406
+ this.stats.totalSpans++;
179407
+ if (hasPmStart && hasPmEnd)
179408
+ this.stats.validSpans++;
179409
+ else if (!hasPmStart && !hasPmEnd)
179410
+ this.stats.missingBoth++;
179411
+ else if (!hasPmStart)
179412
+ this.stats.missingPmStart++;
179413
+ else
179414
+ this.stats.missingPmEnd++;
179415
+ }
179416
+ getStats() {
179417
+ return { ...this.stats };
179418
+ }
179419
+ reset() {
179420
+ this.stats = {
179421
+ totalSpans: 0,
179422
+ validSpans: 0,
179423
+ missingPmStart: 0,
179424
+ missingPmEnd: 0,
179425
+ missingBoth: 0
179426
+ };
179427
+ }
179428
+ getCoveragePercent() {
179429
+ if (this.stats.totalSpans === 0)
179430
+ return 100;
179431
+ return this.stats.validSpans / this.stats.totalSpans * 100;
179432
+ }
179433
+ logSummary() {
179434
+ if (!isDevelopment())
179435
+ return;
179436
+ const coverage = this.getCoveragePercent();
179437
+ const s2 = this.stats;
179438
+ if (coverage < 100)
179439
+ console.warn("[PmPositionValidation] PM position coverage:", {
179440
+ coverage: `${coverage.toFixed(1)}%`,
179441
+ totalSpans: s2.totalSpans,
179442
+ validSpans: s2.validSpans,
179443
+ missingPmStart: s2.missingPmStart,
179444
+ missingPmEnd: s2.missingPmEnd,
179445
+ missingBoth: s2.missingBoth
179446
+ });
179447
+ }
179448
+ }, globalValidationStats, DEFAULT_PPI = 96, DEFAULT_RULER_HEIGHT = 25, TICK_SPACING_PX, RULER_CLASS_NAMES, RULER_STYLES, rulerStylesInjected = false, CLASS_NAMES$1, DEFAULT_PAGE_STYLES, containerStyles, containerStylesHorizontal, spreadStyles, pageStyles = (width, height, overrides) => {
179262
179449
  const merged = {
179263
179450
  ...DEFAULT_PAGE_STYLES,
179264
179451
  ...overrides || {}
@@ -179815,32 +180002,7 @@ var Node$13 = class Node$14 {
179815
180002
  styleEl.textContent = NATIVE_SELECTION_STYLES;
179816
180003
  doc$2.head?.appendChild(styleEl);
179817
180004
  nativeSelectionStylesInjected = true;
179818
- }, EMUS_PER_INCH = 914400, FONT_FAMILY_FALLBACKS2, DEFAULT_GENERIC_FALLBACK2 = "sans-serif", normalizeParts = (value) => (value || "").split(",").map((part) => part.trim()).filter(Boolean), splitOutsideQuotes = (str, delimiter) => {
179819
- if (!str.includes('"') && !str.includes("'"))
179820
- return str.split(delimiter).map((p$12) => p$12.trim()).filter(Boolean);
179821
- const parts = [];
179822
- let current = "";
179823
- let inQuote = false;
179824
- let quoteChar = null;
179825
- for (const char of str)
179826
- if (!inQuote && (char === '"' || char === "'")) {
179827
- inQuote = true;
179828
- quoteChar = char;
179829
- current += char;
179830
- } else if (inQuote && char === quoteChar) {
179831
- inQuote = false;
179832
- quoteChar = null;
179833
- current += char;
179834
- } else if (!inQuote && char === delimiter) {
179835
- if (current.trim())
179836
- parts.push(current.trim());
179837
- current = "";
179838
- } else
179839
- current += char;
179840
- if (current.trim())
179841
- parts.push(current.trim());
179842
- return parts;
179843
- }, maxSize = 5000, cache$2, makeKey = (text5, font, letterSpacing) => {
180005
+ }, gradientIdCounter = 0, EMUS_PER_INCH = 914400, maxSize = 5000, cache$2, makeKey = (text5, font, letterSpacing) => {
179844
180006
  return `${text5}|${font}|${letterSpacing || 0}`;
179845
180007
  }, fontMetricsCache, MAX_CACHE_SIZE$1 = 1000, METRICS_TEST_STRING = "MHgypbdlÁÉÍ", computeTabStops, measurementConfig, canvasContext = null, DEFAULT_TAB_INTERVAL_TWIPS$2 = 720, TWIPS_PER_PX$1, twipsToPx$2 = (twips) => twips / TWIPS_PER_PX$1, pxToTwips$1 = (px) => Math.round(px * TWIPS_PER_PX$1), DEFAULT_TAB_INTERVAL_PX$1, TAB_EPSILON$1 = 0.1, DEFAULT_DECIMAL_SEPARATOR$1 = ".", ALLOWED_TAB_VALS, FIELD_ANNOTATION_PILL_PADDING = 8, FIELD_ANNOTATION_LINE_HEIGHT_MULTIPLIER = 1.2, FIELD_ANNOTATION_VERTICAL_PADDING = 6, DEFAULT_FIELD_ANNOTATION_FONT_SIZE = 16, DEFAULT_PARAGRAPH_FONT_SIZE = 12, DEFAULT_PARAGRAPH_FONT_FAMILY = "Arial", isValidFontSize = (value) => typeof value === "number" && Number.isFinite(value) && value > 0, normalizeFontSize$1 = (value, fallback = DEFAULT_PARAGRAPH_FONT_SIZE) => {
179846
180008
  if (isValidFontSize(value))
@@ -181256,64 +181418,7 @@ var Node$13 = class Node$14 {
181256
181418
  y$1 += actualRowHeight + cellSpacingPx;
181257
181419
  }
181258
181420
  return container;
181259
- }, isDevelopment = () => {
181260
- if (typeof process$1 !== "undefined" && typeof process$1.env !== "undefined")
181261
- return process$1.env.NODE_ENV === "development";
181262
- return false;
181263
- }, ValidationStatsCollector = class {
181264
- constructor() {
181265
- this.stats = {
181266
- totalSpans: 0,
181267
- validSpans: 0,
181268
- missingPmStart: 0,
181269
- missingPmEnd: 0,
181270
- missingBoth: 0
181271
- };
181272
- }
181273
- record(hasPmStart, hasPmEnd) {
181274
- this.stats.totalSpans++;
181275
- if (hasPmStart && hasPmEnd)
181276
- this.stats.validSpans++;
181277
- else if (!hasPmStart && !hasPmEnd)
181278
- this.stats.missingBoth++;
181279
- else if (!hasPmStart)
181280
- this.stats.missingPmStart++;
181281
- else
181282
- this.stats.missingPmEnd++;
181283
- }
181284
- getStats() {
181285
- return { ...this.stats };
181286
- }
181287
- reset() {
181288
- this.stats = {
181289
- totalSpans: 0,
181290
- validSpans: 0,
181291
- missingPmStart: 0,
181292
- missingPmEnd: 0,
181293
- missingBoth: 0
181294
- };
181295
- }
181296
- getCoveragePercent() {
181297
- if (this.stats.totalSpans === 0)
181298
- return 100;
181299
- return this.stats.validSpans / this.stats.totalSpans * 100;
181300
- }
181301
- logSummary() {
181302
- if (!isDevelopment())
181303
- return;
181304
- const coverage = this.getCoveragePercent();
181305
- const s2 = this.stats;
181306
- if (coverage < 100)
181307
- console.warn("[PmPositionValidation] PM position coverage:", {
181308
- coverage: `${coverage.toFixed(1)}%`,
181309
- totalSpans: s2.totalSpans,
181310
- validSpans: s2.validSpans,
181311
- missingPmStart: s2.missingPmStart,
181312
- missingPmEnd: s2.missingPmEnd,
181313
- missingBoth: s2.missingBoth
181314
- });
181315
- }
181316
- }, globalValidationStats, SDT_BLOCK_SELECTOR, HOVER_CLASS, SdtGroupedHover = class {
181421
+ }, SDT_BLOCK_SELECTOR, HOVER_CLASS, SdtGroupedHover = class {
181317
181422
  constructor() {
181318
181423
  this.hoveredSdtId = null;
181319
181424
  this.mount = null;
@@ -181364,111 +181469,6 @@ var Node$13 = class Node$14 {
181364
181469
  this.onMouseLeave = null;
181365
181470
  this.hoveredSdtId = null;
181366
181471
  }
181367
- }, DEFAULT_PPI = 96, DEFAULT_RULER_HEIGHT = 25, TICK_SPACING_PX, RULER_CLASS_NAMES, RULER_STYLES, rulerStylesInjected = false, hashParagraphBorder$1 = (border) => {
181368
- const parts = [];
181369
- if (border.style !== undefined)
181370
- parts.push(`s:${border.style}`);
181371
- if (border.width !== undefined)
181372
- parts.push(`w:${border.width}`);
181373
- if (border.color !== undefined)
181374
- parts.push(`c:${border.color}`);
181375
- if (border.space !== undefined)
181376
- parts.push(`sp:${border.space}`);
181377
- return parts.join(",");
181378
- }, hashParagraphBorders$1 = (borders) => {
181379
- const parts = [];
181380
- if (borders.top)
181381
- parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
181382
- if (borders.right)
181383
- parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
181384
- if (borders.bottom)
181385
- parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
181386
- if (borders.left)
181387
- parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
181388
- return parts.join(";");
181389
- }, isNoneBorder$1 = (value) => {
181390
- return typeof value === "object" && value !== null && "none" in value && value.none === true;
181391
- }, isBorderSpec$1 = (value) => {
181392
- return typeof value === "object" && value !== null && !("none" in value);
181393
- }, hashBorderSpec$1 = (border) => {
181394
- const parts = [];
181395
- if (border.style !== undefined)
181396
- parts.push(`s:${border.style}`);
181397
- if (border.width !== undefined)
181398
- parts.push(`w:${border.width}`);
181399
- if (border.color !== undefined)
181400
- parts.push(`c:${border.color}`);
181401
- if (border.space !== undefined)
181402
- parts.push(`sp:${border.space}`);
181403
- return parts.join(",");
181404
- }, hashTableBorderValue$1 = (borderValue) => {
181405
- if (borderValue === undefined)
181406
- return "";
181407
- if (borderValue === null)
181408
- return "null";
181409
- if (isNoneBorder$1(borderValue))
181410
- return "none";
181411
- if (isBorderSpec$1(borderValue))
181412
- return hashBorderSpec$1(borderValue);
181413
- return "";
181414
- }, hashTableBorders$1 = (borders) => {
181415
- if (!borders)
181416
- return "";
181417
- const parts = [];
181418
- if (borders.top !== undefined)
181419
- parts.push(`t:[${hashTableBorderValue$1(borders.top)}]`);
181420
- if (borders.right !== undefined)
181421
- parts.push(`r:[${hashTableBorderValue$1(borders.right)}]`);
181422
- if (borders.bottom !== undefined)
181423
- parts.push(`b:[${hashTableBorderValue$1(borders.bottom)}]`);
181424
- if (borders.left !== undefined)
181425
- parts.push(`l:[${hashTableBorderValue$1(borders.left)}]`);
181426
- if (borders.insideH !== undefined)
181427
- parts.push(`ih:[${hashTableBorderValue$1(borders.insideH)}]`);
181428
- if (borders.insideV !== undefined)
181429
- parts.push(`iv:[${hashTableBorderValue$1(borders.insideV)}]`);
181430
- return parts.join(";");
181431
- }, hashCellBorders$1 = (borders) => {
181432
- if (!borders)
181433
- return "";
181434
- const parts = [];
181435
- if (borders.top)
181436
- parts.push(`t:[${hashBorderSpec$1(borders.top)}]`);
181437
- if (borders.right)
181438
- parts.push(`r:[${hashBorderSpec$1(borders.right)}]`);
181439
- if (borders.bottom)
181440
- parts.push(`b:[${hashBorderSpec$1(borders.bottom)}]`);
181441
- if (borders.left)
181442
- parts.push(`l:[${hashBorderSpec$1(borders.left)}]`);
181443
- return parts.join(";");
181444
- }, hasStringProp = (run2, prop) => {
181445
- return prop in run2 && typeof run2[prop] === "string";
181446
- }, hasNumberProp = (run2, prop) => {
181447
- return prop in run2 && typeof run2[prop] === "number";
181448
- }, hasBooleanProp = (run2, prop) => {
181449
- return prop in run2 && typeof run2[prop] === "boolean";
181450
- }, getRunStringProp = (run2, prop) => {
181451
- if (hasStringProp(run2, prop))
181452
- return run2[prop];
181453
- return "";
181454
- }, getRunNumberProp = (run2, prop) => {
181455
- if (hasNumberProp(run2, prop))
181456
- return run2[prop];
181457
- return 0;
181458
- }, getRunBooleanProp = (run2, prop) => {
181459
- if (hasBooleanProp(run2, prop))
181460
- return run2[prop];
181461
- return false;
181462
- }, getRunUnderlineStyle = (run2) => {
181463
- if ("underline" in run2 && typeof run2.underline === "boolean")
181464
- return run2.underline ? "single" : "";
181465
- if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
181466
- return run2.underline.style ?? "";
181467
- return "";
181468
- }, getRunUnderlineColor = (run2) => {
181469
- if ("underline" in run2 && run2.underline && typeof run2.underline === "object")
181470
- return run2.underline.color ?? "";
181471
- return "";
181472
181472
  }, LIST_MARKER_GAP = 8, DEFAULT_PAGE_HEIGHT_PX = 1056, DEFAULT_VIRTUALIZED_PAGE_GAP = 72, COMMENT_EXTERNAL_COLOR = "#B1124B", COMMENT_INTERNAL_COLOR = "#078383", COMMENT_INACTIVE_ALPHA = "40", COMMENT_ACTIVE_ALPHA = "66", COMMENT_FADED_ALPHA = "20", LINK_DATASET_KEYS, MAX_HREF_LENGTH = 2048, SAFE_ANCHOR_PATTERN, MAX_DATA_URL_LENGTH, VALID_IMAGE_DATA_URL, MAX_RESIZE_MULTIPLIER = 3, FALLBACK_MAX_DIMENSION = 1000, MIN_IMAGE_DIMENSION = 20, AMBIGUOUS_LINK_PATTERNS, linkMetrics, TRACK_CHANGE_BASE_CLASS, TRACK_CHANGE_FOCUSED_CLASS = "track-change-focused", TRACK_CHANGE_MODIFIER_CLASS, LINK_TARGET_SET, normalizeAnchor = (value) => {
181473
181473
  if (typeof value !== "string")
181474
181474
  return null;
@@ -195789,7 +195789,7 @@ var Node$13 = class Node$14 {
195789
195789
  trackedChanges: context.trackedChanges ?? []
195790
195790
  });
195791
195791
  }, _hoisted_1$6, _hoisted_2$2, _hoisted_3, _hoisted_4, ContextMenu_default, _hoisted_1$5, BasicUpload_default, _hoisted_1$4, MIN_WIDTH = 200, PPI = 96, alignment = "flex-end", Ruler_default, GenericPopover_default, _hoisted_1$3, _hoisted_2$1, RESIZE_HANDLE_WIDTH_PX = 9, RESIZE_HANDLE_HEIGHT_PX = 9, RESIZE_HANDLE_OFFSET_PX = 4, DRAG_OVERLAY_EXTENSION_PX = 1000, MIN_DRAG_OVERLAY_WIDTH_PX = 2000, THROTTLE_INTERVAL_MS = 16, MIN_RESIZE_DELTA_PX = 1, TableResizeOverlay_default, _hoisted_1$2, OVERLAY_EXPANSION_PX = 2000, RESIZE_HANDLE_SIZE_PX = 12, MOUSE_MOVE_THROTTLE_MS = 16, DIMENSION_CHANGE_THRESHOLD_PX = 1, Z_INDEX_OVERLAY = 10, Z_INDEX_HANDLE = 15, Z_INDEX_GUIDELINE = 20, ImageResizeOverlay_default, LINK_CLICK_DEBOUNCE_MS = 300, CURSOR_UPDATE_TIMEOUT_MS = 10, POPOVER_VERTICAL_OFFSET_PX = 15, LinkClickHandler_default, _hoisted_1$1, _hoisted_2, DOCX2 = "application/vnd.openxmlformats-officedocument.wordprocessingml.document", TABLE_RESIZE_HOVER_THRESHOLD = 8, TABLE_RESIZE_THROTTLE_MS = 16, SuperEditor_default, _hoisted_1, SuperInput_default, SlashMenu, Extensions;
195792
- var init_src_SQD068uc_es = __esm(() => {
195792
+ var init_src_B8PRu6_u_es = __esm(() => {
195793
195793
  init_rolldown_runtime_B2q5OVn9_es();
195794
195794
  init_SuperConverter_CejXSSGL_es();
195795
195795
  init_jszip_ChlR43oI_es();
@@ -207106,6 +207106,15 @@ function print() { __p += __j.call(arguments, '') }
207106
207106
  resolveSpacingIndent: () => resolveSpacingIndent,
207107
207107
  scaleWrapPolygon: () => scaleWrapPolygon
207108
207108
  }, 1);
207109
+ FONT_FAMILY_FALLBACKS2 = Object.freeze({
207110
+ swiss: "Arial, sans-serif",
207111
+ roman: "Times New Roman, serif",
207112
+ modern: "Courier New, monospace",
207113
+ script: "cursive",
207114
+ decorative: "fantasy",
207115
+ system: "system-ui",
207116
+ auto: "sans-serif"
207117
+ });
207109
207118
  init_dist();
207110
207119
  _ = {
207111
207120
  accentBorderCallout1: {
@@ -209617,6 +209626,88 @@ function print() { __p += __j.call(arguments, '') }
209617
209626
  INLINE_IMAGE: "superdoc-inline-image",
209618
209627
  INLINE_IMAGE_CLIP_WRAPPER: "superdoc-inline-image-clip-wrapper"
209619
209628
  };
209629
+ init_dist();
209630
+ globalValidationStats = new ValidationStatsCollector;
209631
+ TICK_SPACING_PX = DEFAULT_PPI / 8;
209632
+ RULER_CLASS_NAMES = {
209633
+ ruler: "superdoc-ruler",
209634
+ tick: "superdoc-ruler-tick",
209635
+ tickMain: "superdoc-ruler-tick--main",
209636
+ tickHalf: "superdoc-ruler-tick--half",
209637
+ tickEighth: "superdoc-ruler-tick--eighth",
209638
+ label: "superdoc-ruler-label",
209639
+ handle: "superdoc-ruler-handle",
209640
+ handleLeft: "superdoc-ruler-handle--left",
209641
+ handleRight: "superdoc-ruler-handle--right",
209642
+ indicator: "superdoc-ruler-indicator"
209643
+ };
209644
+ RULER_STYLES = `
209645
+ /* Ruler container */
209646
+ .${RULER_CLASS_NAMES.ruler} {
209647
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
209648
+ background-color: transparent;
209649
+ }
209650
+
209651
+ /* Tick marks base styling */
209652
+ .${RULER_CLASS_NAMES.tick} {
209653
+ flex-shrink: 0;
209654
+ }
209655
+
209656
+ /* Handle hover and active states */
209657
+ .${RULER_CLASS_NAMES.handle}:hover {
209658
+ background-color: rgba(37, 99, 235, 0.4) !important;
209659
+ }
209660
+
209661
+ .${RULER_CLASS_NAMES.handle}:active,
209662
+ .${RULER_CLASS_NAMES.handle}[data-dragging="true"] {
209663
+ background-color: rgba(37, 99, 235, 0.6) !important;
209664
+ cursor: grabbing !important;
209665
+ }
209666
+
209667
+ /* Vertical indicator animation */
209668
+ .${RULER_CLASS_NAMES.indicator} {
209669
+ transition: left 16ms linear;
209670
+ }
209671
+
209672
+ /* Print mode: hide rulers */
209673
+ @media print {
209674
+ .${RULER_CLASS_NAMES.ruler} {
209675
+ display: none !important;
209676
+ }
209677
+ }
209678
+
209679
+ /* High contrast mode support */
209680
+ @media (prefers-contrast: high) {
209681
+ .${RULER_CLASS_NAMES.tick} {
209682
+ background-color: #000 !important;
209683
+ }
209684
+
209685
+ .${RULER_CLASS_NAMES.label} {
209686
+ color: #000 !important;
209687
+ }
209688
+
209689
+ .${RULER_CLASS_NAMES.handle} {
209690
+ background-color: #666 !important;
209691
+ border: 1px solid #000;
209692
+ }
209693
+
209694
+ .${RULER_CLASS_NAMES.handle}:hover,
209695
+ .${RULER_CLASS_NAMES.handle}:active {
209696
+ background-color: #0066cc !important;
209697
+ }
209698
+ }
209699
+
209700
+ /* Reduced motion support */
209701
+ @media (prefers-reduced-motion: reduce) {
209702
+ .${RULER_CLASS_NAMES.handle} {
209703
+ transition: none !important;
209704
+ }
209705
+
209706
+ .${RULER_CLASS_NAMES.indicator} {
209707
+ transition: none !important;
209708
+ }
209709
+ }
209710
+ `;
209620
209711
  CLASS_NAMES$1 = {
209621
209712
  container: "superdoc-layout",
209622
209713
  page: "superdoc-page",
@@ -209698,15 +209789,6 @@ function print() { __p += __j.call(arguments, '') }
209698
209789
  `;
209699
209790
  96 / EMUS_PER_INCH;
209700
209791
  EMUS_PER_INCH / 96;
209701
- FONT_FAMILY_FALLBACKS2 = Object.freeze({
209702
- swiss: "Arial, sans-serif",
209703
- roman: "Times New Roman, serif",
209704
- modern: "Courier New, monospace",
209705
- script: "cursive",
209706
- decorative: "fantasy",
209707
- system: "system-ui",
209708
- auto: "sans-serif"
209709
- });
209710
209792
  cache$2 = /* @__PURE__ */ new Map;
209711
209793
  fontMetricsCache = /* @__PURE__ */ new Map;
209712
209794
  ({ computeTabStops } = engines_exports);
@@ -209794,90 +209876,8 @@ function print() { __p += __j.call(arguments, '') }
209794
209876
  "wave",
209795
209877
  "doubleWave"
209796
209878
  ]);
209797
- init_dist();
209798
- globalValidationStats = new ValidationStatsCollector;
209799
209879
  SDT_BLOCK_SELECTOR = `.${DOM_CLASS_NAMES.BLOCK_SDT}[data-sdt-id]`;
209800
209880
  HOVER_CLASS = DOM_CLASS_NAMES.SDT_HOVER;
209801
- TICK_SPACING_PX = DEFAULT_PPI / 8;
209802
- RULER_CLASS_NAMES = {
209803
- ruler: "superdoc-ruler",
209804
- tick: "superdoc-ruler-tick",
209805
- tickMain: "superdoc-ruler-tick--main",
209806
- tickHalf: "superdoc-ruler-tick--half",
209807
- tickEighth: "superdoc-ruler-tick--eighth",
209808
- label: "superdoc-ruler-label",
209809
- handle: "superdoc-ruler-handle",
209810
- handleLeft: "superdoc-ruler-handle--left",
209811
- handleRight: "superdoc-ruler-handle--right",
209812
- indicator: "superdoc-ruler-indicator"
209813
- };
209814
- RULER_STYLES = `
209815
- /* Ruler container */
209816
- .${RULER_CLASS_NAMES.ruler} {
209817
- font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;
209818
- background-color: transparent;
209819
- }
209820
-
209821
- /* Tick marks base styling */
209822
- .${RULER_CLASS_NAMES.tick} {
209823
- flex-shrink: 0;
209824
- }
209825
-
209826
- /* Handle hover and active states */
209827
- .${RULER_CLASS_NAMES.handle}:hover {
209828
- background-color: rgba(37, 99, 235, 0.4) !important;
209829
- }
209830
-
209831
- .${RULER_CLASS_NAMES.handle}:active,
209832
- .${RULER_CLASS_NAMES.handle}[data-dragging="true"] {
209833
- background-color: rgba(37, 99, 235, 0.6) !important;
209834
- cursor: grabbing !important;
209835
- }
209836
-
209837
- /* Vertical indicator animation */
209838
- .${RULER_CLASS_NAMES.indicator} {
209839
- transition: left 16ms linear;
209840
- }
209841
-
209842
- /* Print mode: hide rulers */
209843
- @media print {
209844
- .${RULER_CLASS_NAMES.ruler} {
209845
- display: none !important;
209846
- }
209847
- }
209848
-
209849
- /* High contrast mode support */
209850
- @media (prefers-contrast: high) {
209851
- .${RULER_CLASS_NAMES.tick} {
209852
- background-color: #000 !important;
209853
- }
209854
-
209855
- .${RULER_CLASS_NAMES.label} {
209856
- color: #000 !important;
209857
- }
209858
-
209859
- .${RULER_CLASS_NAMES.handle} {
209860
- background-color: #666 !important;
209861
- border: 1px solid #000;
209862
- }
209863
-
209864
- .${RULER_CLASS_NAMES.handle}:hover,
209865
- .${RULER_CLASS_NAMES.handle}:active {
209866
- background-color: #0066cc !important;
209867
- }
209868
- }
209869
-
209870
- /* Reduced motion support */
209871
- @media (prefers-reduced-motion: reduce) {
209872
- .${RULER_CLASS_NAMES.handle} {
209873
- transition: none !important;
209874
- }
209875
-
209876
- .${RULER_CLASS_NAMES.indicator} {
209877
- transition: none !important;
209878
- }
209879
- }
209880
- `;
209881
209881
  init_dist();
209882
209882
  LINK_DATASET_KEYS = {
209883
209883
  blocked: "linkBlocked",
@@ -209978,6 +209978,7 @@ function print() { __p += __j.call(arguments, '') }
209978
209978
  this.onResizeHandler = null;
209979
209979
  this.zoomFactor = 1;
209980
209980
  this.scrollContainer = null;
209981
+ this.scrollContainerMountOffset = null;
209981
209982
  this.sdtHover = new SdtGroupedHover;
209982
209983
  this.activeCommentId = null;
209983
209984
  this.paintSnapshotBuilder = null;
@@ -210016,6 +210017,7 @@ function print() { __p += __j.call(arguments, '') }
210016
210017
  const next2 = typeof zoom === "number" && Number.isFinite(zoom) && zoom > 0 ? zoom : 1;
210017
210018
  if (next2 !== this.zoomFactor) {
210018
210019
  this.zoomFactor = next2;
210020
+ this.scrollContainerMountOffset = null;
210019
210021
  if (this.virtualEnabled && this.mount)
210020
210022
  this.updateVirtualWindow();
210021
210023
  }
@@ -210023,6 +210025,7 @@ function print() { __p += __j.call(arguments, '') }
210023
210025
  setScrollContainer(el) {
210024
210026
  if (el !== this.scrollContainer) {
210025
210027
  this.scrollContainer = el;
210028
+ this.scrollContainerMountOffset = null;
210026
210029
  if (this.virtualEnabled && this.mount)
210027
210030
  this.updateVirtualWindow();
210028
210031
  }
@@ -210311,6 +210314,7 @@ function print() { __p += __j.call(arguments, '') }
210311
210314
  this.virtualPagesEl.style.alignItems = "center";
210312
210315
  this.virtualPagesEl.style.width = "100%";
210313
210316
  this.virtualPagesEl.style.gap = `${this.virtualGap}px`;
210317
+ this.virtualPagesEl.style.overflowAnchor = "none";
210314
210318
  mount$1.appendChild(this.topSpacerEl);
210315
210319
  mount$1.appendChild(this.virtualPagesEl);
210316
210320
  mount$1.appendChild(this.bottomSpacerEl);
@@ -210320,6 +210324,7 @@ function print() { __p += __j.call(arguments, '') }
210320
210324
  element3.style.width = "1px";
210321
210325
  element3.style.height = "0px";
210322
210326
  element3.style.flex = "0 0 auto";
210327
+ element3.style.overflowAnchor = "none";
210323
210328
  element3.setAttribute("data-virtual-spacer", type);
210324
210329
  }
210325
210330
  bindVirtualizationHandlers(mount$1) {
@@ -210340,6 +210345,7 @@ function print() { __p += __j.call(arguments, '') }
210340
210345
  if (this.onResizeHandler)
210341
210346
  win.removeEventListener("resize", this.onResizeHandler);
210342
210347
  this.onResizeHandler = () => {
210348
+ this.scrollContainerMountOffset = null;
210343
210349
  this.updateVirtualWindow();
210344
210350
  };
210345
210351
  win.addEventListener("resize", this.onResizeHandler);
@@ -210402,9 +210408,12 @@ function print() { __p += __j.call(arguments, '') }
210402
210408
  if (this.mount.scrollHeight > this.mount.clientHeight + 1)
210403
210409
  scrollY = Math.max(0, this.mount.scrollTop - paddingTop);
210404
210410
  else if (this.scrollContainer) {
210405
- const mountRect = this.mount.getBoundingClientRect();
210406
- const containerRect = this.scrollContainer.getBoundingClientRect();
210407
- scrollY = Math.max(0, (containerRect.top - mountRect.top) / zoom - paddingTop);
210411
+ if (this.scrollContainerMountOffset == null) {
210412
+ const mountRect = this.mount.getBoundingClientRect();
210413
+ const containerRect = this.scrollContainer.getBoundingClientRect();
210414
+ this.scrollContainerMountOffset = mountRect.top - containerRect.top + this.scrollContainer.scrollTop;
210415
+ }
210416
+ scrollY = Math.max(0, (this.scrollContainer.scrollTop - this.scrollContainerMountOffset) / zoom - paddingTop);
210408
210417
  } else {
210409
210418
  const rect = this.mount.getBoundingClientRect();
210410
210419
  scrollY = Math.max(0, -rect.top / zoom - paddingTop);
@@ -210761,6 +210770,7 @@ function print() { __p += __j.call(arguments, '') }
210761
210770
  this.onScrollHandler = null;
210762
210771
  this.onWindowScrollHandler = null;
210763
210772
  this.onResizeHandler = null;
210773
+ this.scrollContainerMountOffset = null;
210764
210774
  this.sdtHover.destroy();
210765
210775
  this.layoutVersion = 0;
210766
210776
  this.processedLayoutVersion = -1;
@@ -227463,8 +227473,8 @@ function print() { __p += __j.call(arguments, '') }
227463
227473
  return isObjectLike_default(value) && hasOwnProperty$8.call(value, "callee") && !propertyIsEnumerable$1.call(value, "callee");
227464
227474
  };
227465
227475
  stubFalse_default = stubFalse;
227466
- freeExports$2 = typeof exports_src_SQD068uc_es == "object" && exports_src_SQD068uc_es && !exports_src_SQD068uc_es.nodeType && exports_src_SQD068uc_es;
227467
- freeModule$2 = freeExports$2 && typeof module_src_SQD068uc_es == "object" && module_src_SQD068uc_es && !module_src_SQD068uc_es.nodeType && module_src_SQD068uc_es;
227476
+ freeExports$2 = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227477
+ freeModule$2 = freeExports$2 && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
227468
227478
  Buffer$1 = freeModule$2 && freeModule$2.exports === freeExports$2 ? _root_default.Buffer : undefined;
227469
227479
  isBuffer_default = (Buffer$1 ? Buffer$1.isBuffer : undefined) || stubFalse_default;
227470
227480
  typedArrayTags = {};
@@ -227472,8 +227482,8 @@ function print() { __p += __j.call(arguments, '') }
227472
227482
  typedArrayTags[argsTag$1] = typedArrayTags[arrayTag$1] = typedArrayTags[arrayBufferTag$1] = typedArrayTags[boolTag$1] = typedArrayTags[dataViewTag$2] = typedArrayTags[dateTag$1] = typedArrayTags[errorTag$1] = typedArrayTags[funcTag] = typedArrayTags[mapTag$2] = typedArrayTags[numberTag$1] = typedArrayTags[objectTag$3] = typedArrayTags[regexpTag$1] = typedArrayTags[setTag$2] = typedArrayTags[stringTag$1] = typedArrayTags[weakMapTag$1] = false;
227473
227483
  _baseIsTypedArray_default = baseIsTypedArray;
227474
227484
  _baseUnary_default = baseUnary;
227475
- freeExports$1 = typeof exports_src_SQD068uc_es == "object" && exports_src_SQD068uc_es && !exports_src_SQD068uc_es.nodeType && exports_src_SQD068uc_es;
227476
- freeModule$1 = freeExports$1 && typeof module_src_SQD068uc_es == "object" && module_src_SQD068uc_es && !module_src_SQD068uc_es.nodeType && module_src_SQD068uc_es;
227485
+ freeExports$1 = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227486
+ freeModule$1 = freeExports$1 && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
227477
227487
  freeProcess = freeModule$1 && freeModule$1.exports === freeExports$1 && _freeGlobal_default.process;
227478
227488
  _nodeUtil_default = function() {
227479
227489
  try {
@@ -227578,8 +227588,8 @@ function print() { __p += __j.call(arguments, '') }
227578
227588
  Stack.prototype.has = _stackHas_default;
227579
227589
  Stack.prototype.set = _stackSet_default;
227580
227590
  _Stack_default = Stack;
227581
- freeExports = typeof exports_src_SQD068uc_es == "object" && exports_src_SQD068uc_es && !exports_src_SQD068uc_es.nodeType && exports_src_SQD068uc_es;
227582
- freeModule = freeExports && typeof module_src_SQD068uc_es == "object" && module_src_SQD068uc_es && !module_src_SQD068uc_es.nodeType && module_src_SQD068uc_es;
227591
+ freeExports = typeof exports_src_B8PRu6_u_es == "object" && exports_src_B8PRu6_u_es && !exports_src_B8PRu6_u_es.nodeType && exports_src_B8PRu6_u_es;
227592
+ freeModule = freeExports && typeof module_src_B8PRu6_u_es == "object" && module_src_B8PRu6_u_es && !module_src_B8PRu6_u_es.nodeType && module_src_B8PRu6_u_es;
227583
227593
  Buffer4 = freeModule && freeModule.exports === freeExports ? _root_default.Buffer : undefined;
227584
227594
  allocUnsafe = Buffer4 ? Buffer4.allocUnsafe : undefined;
227585
227595
  _cloneBuffer_default = cloneBuffer;
@@ -235659,7 +235669,7 @@ var init_zipper_DqXT7uTa_es = __esm(() => {
235659
235669
 
235660
235670
  // ../../packages/superdoc/dist/super-editor.es.js
235661
235671
  var init_super_editor_es = __esm(() => {
235662
- init_src_SQD068uc_es();
235672
+ init_src_B8PRu6_u_es();
235663
235673
  init_SuperConverter_CejXSSGL_es();
235664
235674
  init_jszip_ChlR43oI_es();
235665
235675
  init_xml_js_DLE8mr0n_es();