@harbour-enterprises/superdoc 1.0.0-beta.98 → 1.0.0-beta.99

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 (28) hide show
  1. package/dist/chunks/{PdfViewer-D1Ot32kX.cjs → PdfViewer-BtuTHUW7.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-1_KffD-j.es.js → PdfViewer-DF-v5Yrr.es.js} +1 -1
  3. package/dist/chunks/{index-Dg_sTYZK-DYDzxoXL.cjs → index-BB0msI45-CPU6Ak2R.cjs} +1 -1
  4. package/dist/chunks/{index-Dg_sTYZK-D20z8mus.es.js → index-BB0msI45-DUPBw4Bh.es.js} +1 -1
  5. package/dist/chunks/{index-CUO7gEi8.cjs → index-BBu9BBvp.cjs} +5 -14
  6. package/dist/chunks/{index-CP2_WwLA.es.js → index-CJy3FxL7.es.js} +5 -14
  7. package/dist/chunks/{super-editor.es-3dJOUw65.es.js → super-editor.es-BiaFIbw-.es.js} +133 -13
  8. package/dist/chunks/{super-editor.es-DN_dgBH0.cjs → super-editor.es-C04sFzVD.cjs} +133 -13
  9. package/dist/style.css +6 -6
  10. package/dist/super-editor/ai-writer.es.js +2 -2
  11. package/dist/super-editor/chunks/{converter-Oj-eTB79.js → converter-B_cVJPnh.js} +1 -1
  12. package/dist/super-editor/chunks/{docx-zipper-Dl188zQ3.js → docx-zipper-fPWx7kV0.js} +1 -1
  13. package/dist/super-editor/chunks/{editor-DBXoaaWP.js → editor-DS9z42Je.js} +134 -14
  14. package/dist/super-editor/chunks/{index-Dg_sTYZK.js → index-BB0msI45.js} +1 -1
  15. package/dist/super-editor/chunks/{toolbar-PlGGj0Ew.js → toolbar-aIFlIr6h.js} +2 -2
  16. package/dist/super-editor/converter.es.js +1 -1
  17. package/dist/super-editor/docx-zipper.es.js +2 -2
  18. package/dist/super-editor/editor.es.js +3 -3
  19. package/dist/super-editor/file-zipper.es.js +1 -1
  20. package/dist/super-editor/super-editor.es.js +6 -6
  21. package/dist/super-editor/toolbar.es.js +2 -2
  22. package/dist/super-editor.cjs +1 -1
  23. package/dist/super-editor.es.js +1 -1
  24. package/dist/superdoc.cjs +2 -2
  25. package/dist/superdoc.es.js +2 -2
  26. package/dist/superdoc.umd.js +137 -26
  27. package/dist/superdoc.umd.js.map +1 -1
  28. package/package.json +1 -1
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const vue = require("./vue-jWLMl8Ts.cjs");
4
- const superdoc = require("./index-CUO7gEi8.cjs");
4
+ const superdoc = require("./index-BBu9BBvp.cjs");
5
5
  function self(vars) {
6
6
  const {
7
7
  opacityDisabled,
@@ -1,5 +1,5 @@
1
1
  import { y as defineComponent, z as h, O as Transition, a0 as process$1, J as watchEffect, a as computed, r as ref, j as onMounted, W as onUnmounted, b as createElementBlock, o as openBlock, f as createBaseVNode, e as createCommentVNode, u as createVNode, v as unref } from "./vue-Dysv_7z5.es.js";
2
- import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-CP2_WwLA.es.js";
2
+ import { d as derived, c, a as cB, f as fadeInTransition, b as cM, N as NBaseLoading, w as warnOnce, u as useConfig, e as useTheme, p as pxfy, g as createKey, h as useThemeClass, i as useCompitable, _ as _export_sfc, j as useSuperdocStore, s as storeToRefs, k as useSelection } from "./index-CJy3FxL7.es.js";
3
3
  function self(vars) {
4
4
  const {
5
5
  opacityDisabled,
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
- const superEditor_es = require("./super-editor.es-DN_dgBH0.cjs");
3
+ const superEditor_es = require("./super-editor.es-C04sFzVD.cjs");
4
4
  const indexCvBqQJbG = require("./index-CvBqQJbG-Dwm0THD7.cjs");
5
5
  function bail(error) {
6
6
  if (error) {
@@ -1,4 +1,4 @@
1
- import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-3dJOUw65.es.js";
1
+ import { s as getDefaultExportFromCjs$2 } from "./super-editor.es-BiaFIbw-.es.js";
2
2
  import { V as VFile } from "./index-CvBqQJbG-CvBqQJbG.es.js";
3
3
  function bail(error) {
4
4
  if (error) {
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- const superEditor_es = require("./super-editor.es-DN_dgBH0.cjs");
2
+ const superEditor_es = require("./super-editor.es-C04sFzVD.cjs");
3
3
  const blankDocx = require("./blank-docx-DfW3Eeh2.cjs");
4
4
  const eventemitter3 = require("./eventemitter3-DQmQUge-.cjs");
5
5
  const provider = require("@hocuspocus/provider");
@@ -16550,19 +16550,10 @@ const _sfc_main$9 = {
16550
16550
  measurementTimeoutId.value = null;
16551
16551
  }
16552
16552
  const totalComments = getFloatingComments.value.length;
16553
- const measuredComments = renderedSizes.value.length;
16554
16553
  if (totalComments === 0) {
16555
16554
  return;
16556
16555
  }
16557
- if (measuredComments === totalComments) {
16558
- vue.nextTick(processLocations);
16559
- } else if (measuredComments > 0 && !firstGroupRendered.value) {
16560
- measurementTimeoutId.value = setTimeout(() => {
16561
- if (!firstGroupRendered.value && renderedSizes.value.length > 0) {
16562
- processLocations();
16563
- }
16564
- }, 100);
16565
- }
16556
+ vue.nextTick(processLocations);
16566
16557
  });
16567
16558
  vue.watch(activeComment, (newVal, oldVal) => {
16568
16559
  vue.nextTick(() => {
@@ -16640,7 +16631,7 @@ const _sfc_main$9 = {
16640
16631
  };
16641
16632
  }
16642
16633
  };
16643
- const FloatingComments = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-eab6fbfa"]]);
16634
+ const FloatingComments = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-6905dd07"]]);
16644
16635
  const _sfc_main$8 = {
16645
16636
  __name: "TextField",
16646
16637
  props: {
@@ -17268,7 +17259,7 @@ const _sfc_main = {
17268
17259
  __name: "SuperDoc",
17269
17260
  emits: ["selection-update"],
17270
17261
  setup(__props, { emit: __emit }) {
17271
- const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-D1Ot32kX.cjs")));
17262
+ const PdfViewer = vue.defineAsyncComponent(() => Promise.resolve().then(() => require("./PdfViewer-BtuTHUW7.cjs")));
17272
17263
  const superdocStore = useSuperdocStore();
17273
17264
  const commentsStore = useCommentsStore();
17274
17265
  const {
@@ -18157,7 +18148,7 @@ class SuperDoc extends eventemitter3.EventEmitter {
18157
18148
  this.config.colors = shuffleArray(this.config.colors);
18158
18149
  this.userColorMap = /* @__PURE__ */ new Map();
18159
18150
  this.colorIndex = 0;
18160
- this.version = "1.0.0-beta.98";
18151
+ this.version = "1.0.0-beta.99";
18161
18152
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18162
18153
  this.superdocId = config.superdocId || uuid.v4();
18163
18154
  this.colors = this.config.colors;
@@ -1,4 +1,4 @@
1
- import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-3dJOUw65.es.js";
1
+ import { q as index, C as CommentsPluginKey, h as TrackChangesBasePluginKey, E as Editor, n as getRichTextExtensions, f as SuperInput, P as PresentationEditor, e as SuperEditor, A as AIWriter, g as SuperToolbar, i as createZip } from "./super-editor.es-BiaFIbw-.es.js";
2
2
  import { B as BlankDOCX } from "./blank-docx-ABm6XYAA.es.js";
3
3
  import { E as EventEmitter } from "./eventemitter3-CcXAdeql.es.js";
4
4
  import { HocuspocusProvider, HocuspocusProviderWebsocket } from "@hocuspocus/provider";
@@ -16533,19 +16533,10 @@ const _sfc_main$9 = {
16533
16533
  measurementTimeoutId.value = null;
16534
16534
  }
16535
16535
  const totalComments = getFloatingComments.value.length;
16536
- const measuredComments = renderedSizes.value.length;
16537
16536
  if (totalComments === 0) {
16538
16537
  return;
16539
16538
  }
16540
- if (measuredComments === totalComments) {
16541
- nextTick(processLocations);
16542
- } else if (measuredComments > 0 && !firstGroupRendered.value) {
16543
- measurementTimeoutId.value = setTimeout(() => {
16544
- if (!firstGroupRendered.value && renderedSizes.value.length > 0) {
16545
- processLocations();
16546
- }
16547
- }, 100);
16548
- }
16539
+ nextTick(processLocations);
16549
16540
  });
16550
16541
  watch(activeComment, (newVal, oldVal) => {
16551
16542
  nextTick(() => {
@@ -16623,7 +16614,7 @@ const _sfc_main$9 = {
16623
16614
  };
16624
16615
  }
16625
16616
  };
16626
- const FloatingComments = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-eab6fbfa"]]);
16617
+ const FloatingComments = /* @__PURE__ */ _export_sfc(_sfc_main$9, [["__scopeId", "data-v-6905dd07"]]);
16627
16618
  const _sfc_main$8 = {
16628
16619
  __name: "TextField",
16629
16620
  props: {
@@ -17251,7 +17242,7 @@ const _sfc_main = {
17251
17242
  __name: "SuperDoc",
17252
17243
  emits: ["selection-update"],
17253
17244
  setup(__props, { emit: __emit }) {
17254
- const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-1_KffD-j.es.js"));
17245
+ const PdfViewer = defineAsyncComponent(() => import("./PdfViewer-DF-v5Yrr.es.js"));
17255
17246
  const superdocStore = useSuperdocStore();
17256
17247
  const commentsStore = useCommentsStore();
17257
17248
  const {
@@ -18140,7 +18131,7 @@ class SuperDoc extends EventEmitter {
18140
18131
  this.config.colors = shuffleArray(this.config.colors);
18141
18132
  this.userColorMap = /* @__PURE__ */ new Map();
18142
18133
  this.colorIndex = 0;
18143
- this.version = "1.0.0-beta.98";
18134
+ this.version = "1.0.0-beta.99";
18144
18135
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
18145
18136
  this.superdocId = config.superdocId || v4();
18146
18137
  this.colors = this.config.colors;
@@ -42404,7 +42404,7 @@ const _SuperConverter = class _SuperConverter2 {
42404
42404
  static getStoredSuperdocVersion(docx) {
42405
42405
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
42406
42406
  }
42407
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.98") {
42407
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.99") {
42408
42408
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
42409
42409
  }
42410
42410
  /**
@@ -59622,7 +59622,7 @@ const isHeadless = (editor) => {
59622
59622
  const shouldSkipNodeView = (editor) => {
59623
59623
  return isHeadless(editor);
59624
59624
  };
59625
- const summaryVersion = "1.0.0-beta.98";
59625
+ const summaryVersion = "1.0.0-beta.99";
59626
59626
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
59627
59627
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
59628
59628
  function mapAttributes(attrs) {
@@ -60411,7 +60411,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60411
60411
  { default: remarkStringify },
60412
60412
  { default: remarkGfm }
60413
60413
  ] = await Promise.all([
60414
- import("./index-Dg_sTYZK-D20z8mus.es.js"),
60414
+ import("./index-BB0msI45-DUPBw4Bh.es.js"),
60415
60415
  import("./index-DRCvimau-Cw339678.es.js"),
60416
60416
  import("./index-C_x_N6Uh-DJn8hIEt.es.js"),
60417
60417
  import("./index-D_sWOSiG-DE96TaT5.es.js"),
@@ -60616,7 +60616,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60616
60616
  * Process collaboration migrations
60617
60617
  */
60618
60618
  processCollaborationMigrations() {
60619
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.98");
60619
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.99");
60620
60620
  if (!this.options.ydoc) return;
60621
60621
  const metaMap = this.options.ydoc.getMap("meta");
60622
60622
  let docVersion = metaMap.get("version");
@@ -74407,6 +74407,61 @@ function ensureRulerStyles(doc2) {
74407
74407
  doc2.head?.appendChild(styleEl);
74408
74408
  rulerStylesInjected = true;
74409
74409
  }
74410
+ const hashParagraphBorder$1 = (border) => {
74411
+ const parts = [];
74412
+ if (border.style !== void 0) parts.push(`s:${border.style}`);
74413
+ if (border.width !== void 0) parts.push(`w:${border.width}`);
74414
+ if (border.color !== void 0) parts.push(`c:${border.color}`);
74415
+ if (border.space !== void 0) parts.push(`sp:${border.space}`);
74416
+ return parts.join(",");
74417
+ };
74418
+ const hashParagraphBorders$1 = (borders) => {
74419
+ const parts = [];
74420
+ if (borders.top) parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
74421
+ if (borders.right) parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
74422
+ if (borders.bottom) parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
74423
+ if (borders.left) parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
74424
+ return parts.join(";");
74425
+ };
74426
+ const hasStringProp = (run2, prop) => {
74427
+ return prop in run2 && typeof run2[prop] === "string";
74428
+ };
74429
+ const hasNumberProp = (run2, prop) => {
74430
+ return prop in run2 && typeof run2[prop] === "number";
74431
+ };
74432
+ const hasBooleanProp = (run2, prop) => {
74433
+ return prop in run2 && typeof run2[prop] === "boolean";
74434
+ };
74435
+ const getRunStringProp = (run2, prop) => {
74436
+ if (hasStringProp(run2, prop)) {
74437
+ return run2[prop];
74438
+ }
74439
+ return "";
74440
+ };
74441
+ const getRunNumberProp = (run2, prop) => {
74442
+ if (hasNumberProp(run2, prop)) {
74443
+ return run2[prop];
74444
+ }
74445
+ return 0;
74446
+ };
74447
+ const getRunBooleanProp = (run2, prop) => {
74448
+ if (hasBooleanProp(run2, prop)) {
74449
+ return run2[prop];
74450
+ }
74451
+ return false;
74452
+ };
74453
+ const getRunUnderlineStyle = (run2) => {
74454
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object") {
74455
+ return run2.underline.style ?? "";
74456
+ }
74457
+ return "";
74458
+ };
74459
+ const getRunUnderlineColor = (run2) => {
74460
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object") {
74461
+ return run2.underline.color ?? "";
74462
+ }
74463
+ return "";
74464
+ };
74410
74465
  function isMinimalWordLayout(value) {
74411
74466
  if (typeof value !== "object" || value === null) {
74412
74467
  return false;
@@ -77486,7 +77541,7 @@ const deriveBlockVersion = (block) => {
77486
77541
  attrs.indent?.right ?? "",
77487
77542
  attrs.indent?.firstLine ?? "",
77488
77543
  attrs.indent?.hanging ?? "",
77489
- attrs.borders ? JSON.stringify(attrs.borders) : "",
77544
+ attrs.borders ? hashParagraphBorders$1(attrs.borders) : "",
77490
77545
  attrs.shading?.fill ?? "",
77491
77546
  attrs.shading?.color ?? "",
77492
77547
  attrs.direction ?? "",
@@ -77575,14 +77630,43 @@ const deriveBlockVersion = (block) => {
77575
77630
  for (const cellBlock of cellBlocks) {
77576
77631
  hash2 = hashString(hash2, cellBlock?.kind ?? "unknown");
77577
77632
  if (cellBlock?.kind === "paragraph") {
77578
- const runs = cellBlock.runs ?? [];
77633
+ const paragraphBlock = cellBlock;
77634
+ const runs = paragraphBlock.runs ?? [];
77579
77635
  hash2 = hashNumber(hash2, runs.length);
77636
+ const attrs = paragraphBlock.attrs;
77637
+ if (attrs) {
77638
+ hash2 = hashString(hash2, attrs.alignment ?? "");
77639
+ hash2 = hashNumber(hash2, attrs.spacing?.before ?? 0);
77640
+ hash2 = hashNumber(hash2, attrs.spacing?.after ?? 0);
77641
+ hash2 = hashNumber(hash2, attrs.spacing?.line ?? 0);
77642
+ hash2 = hashString(hash2, attrs.spacing?.lineRule ?? "");
77643
+ hash2 = hashNumber(hash2, attrs.indent?.left ?? 0);
77644
+ hash2 = hashNumber(hash2, attrs.indent?.right ?? 0);
77645
+ hash2 = hashNumber(hash2, attrs.indent?.firstLine ?? 0);
77646
+ hash2 = hashNumber(hash2, attrs.indent?.hanging ?? 0);
77647
+ hash2 = hashString(hash2, attrs.shading?.fill ?? "");
77648
+ hash2 = hashString(hash2, attrs.shading?.color ?? "");
77649
+ hash2 = hashString(hash2, attrs.direction ?? "");
77650
+ hash2 = hashString(hash2, attrs.rtl ? "1" : "");
77651
+ if (attrs.borders) {
77652
+ hash2 = hashString(hash2, hashParagraphBorders$1(attrs.borders));
77653
+ }
77654
+ }
77580
77655
  for (const run2 of runs) {
77581
77656
  if ("text" in run2 && typeof run2.text === "string") {
77582
77657
  hash2 = hashString(hash2, run2.text);
77583
77658
  }
77584
77659
  hash2 = hashNumber(hash2, run2.pmStart ?? -1);
77585
77660
  hash2 = hashNumber(hash2, run2.pmEnd ?? -1);
77661
+ hash2 = hashString(hash2, getRunStringProp(run2, "color"));
77662
+ hash2 = hashString(hash2, getRunStringProp(run2, "highlight"));
77663
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "bold") ? "1" : "");
77664
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "italic") ? "1" : "");
77665
+ hash2 = hashNumber(hash2, getRunNumberProp(run2, "fontSize"));
77666
+ hash2 = hashString(hash2, getRunStringProp(run2, "fontFamily"));
77667
+ hash2 = hashString(hash2, getRunUnderlineStyle(run2));
77668
+ hash2 = hashString(hash2, getRunUnderlineColor(run2));
77669
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "strike") ? "1" : "");
77586
77670
  }
77587
77671
  }
77588
77672
  }
@@ -81280,10 +81364,6 @@ const resolveTrackedChangesEnabled = (attrs, defaultEnabled = true) => {
81280
81364
  }
81281
81365
  return attrs.trackedChangesEnabled !== false;
81282
81366
  };
81283
- const MAX_CACHE_SIZE$1 = 1e4;
81284
- const BYTES_PER_ENTRY_ESTIMATE = 5e3;
81285
- const NORMALIZED_WHITESPACE = /\s+/g;
81286
- const normalizeText = (text) => text.replace(NORMALIZED_WHITESPACE, " ");
81287
81367
  const hashParagraphBorder = (border) => {
81288
81368
  const parts = [];
81289
81369
  if (border.style !== void 0) parts.push(`s:${border.style}`);
@@ -81300,6 +81380,10 @@ const hashParagraphBorders = (borders) => {
81300
81380
  if (borders.left) parts.push(`l:[${hashParagraphBorder(borders.left)}]`);
81301
81381
  return parts.join(";");
81302
81382
  };
81383
+ const MAX_CACHE_SIZE$1 = 1e4;
81384
+ const BYTES_PER_ENTRY_ESTIMATE = 5e3;
81385
+ const NORMALIZED_WHITESPACE = /\s+/g;
81386
+ const normalizeText = (text) => text.replace(NORMALIZED_WHITESPACE, " ");
81303
81387
  const hashParagraphFrame = (frame) => {
81304
81388
  const parts = [];
81305
81389
  if (frame.wrap !== void 0) parts.push(`w:${frame.wrap}`);
@@ -81336,12 +81420,14 @@ const hashRuns = (block) => {
81336
81420
  const color = "color" in run2 ? run2.color : void 0;
81337
81421
  const fontSize2 = "fontSize" in run2 ? run2.fontSize : void 0;
81338
81422
  const fontFamily2 = "fontFamily" in run2 ? run2.fontFamily : void 0;
81423
+ const highlight = "highlight" in run2 ? run2.highlight : void 0;
81339
81424
  const marks = [
81340
81425
  bold ? "b" : "",
81341
81426
  italic ? "i" : "",
81342
81427
  color ?? "",
81343
81428
  fontSize2 !== void 0 ? `fs:${fontSize2}` : "",
81344
- fontFamily2 ? `ff:${fontFamily2}` : ""
81429
+ fontFamily2 ? `ff:${fontFamily2}` : "",
81430
+ highlight ? `hl:${highlight}` : ""
81345
81431
  ].join("");
81346
81432
  let trackedKey = "";
81347
81433
  if (hasTrackedChange(run2)) {
@@ -81352,6 +81438,38 @@ const hashRuns = (block) => {
81352
81438
  }
81353
81439
  cellHashes.push(`${text}:${marks}${trackedKey}`);
81354
81440
  }
81441
+ if (paragraphBlock.attrs) {
81442
+ const attrs = paragraphBlock.attrs;
81443
+ const parts = [];
81444
+ if (attrs.alignment) parts.push(`al:${attrs.alignment}`);
81445
+ if (attrs.spacing) {
81446
+ const s2 = attrs.spacing;
81447
+ if (s2.before !== void 0) parts.push(`sb:${s2.before}`);
81448
+ if (s2.after !== void 0) parts.push(`sa:${s2.after}`);
81449
+ if (s2.line !== void 0) parts.push(`sl:${s2.line}`);
81450
+ if (s2.lineRule) parts.push(`sr:${s2.lineRule}`);
81451
+ }
81452
+ if (attrs.indent) {
81453
+ const ind = attrs.indent;
81454
+ if (ind.left !== void 0) parts.push(`il:${ind.left}`);
81455
+ if (ind.right !== void 0) parts.push(`ir:${ind.right}`);
81456
+ if (ind.firstLine !== void 0) parts.push(`if:${ind.firstLine}`);
81457
+ if (ind.hanging !== void 0) parts.push(`ih:${ind.hanging}`);
81458
+ }
81459
+ if (attrs.borders) {
81460
+ parts.push(`br:${hashParagraphBorders(attrs.borders)}`);
81461
+ }
81462
+ if (attrs.shading) {
81463
+ const sh = attrs.shading;
81464
+ if (sh.fill) parts.push(`shf:${sh.fill}`);
81465
+ if (sh.color) parts.push(`shc:${sh.color}`);
81466
+ }
81467
+ if (attrs.direction) parts.push(`dir:${attrs.direction}`);
81468
+ if (attrs.rtl) parts.push("rtl");
81469
+ if (parts.length > 0) {
81470
+ cellHashes.push(`pa:${parts.join(":")}`);
81471
+ }
81472
+ }
81355
81473
  }
81356
81474
  }
81357
81475
  }
@@ -81375,12 +81493,14 @@ const hashRuns = (block) => {
81375
81493
  const color = "color" in run2 ? run2.color : void 0;
81376
81494
  const fontSize2 = "fontSize" in run2 ? run2.fontSize : void 0;
81377
81495
  const fontFamily2 = "fontFamily" in run2 ? run2.fontFamily : void 0;
81496
+ const highlight = "highlight" in run2 ? run2.highlight : void 0;
81378
81497
  const marks = [
81379
81498
  bold ? "b" : "",
81380
81499
  italic ? "i" : "",
81381
81500
  color ?? "",
81382
81501
  fontSize2 !== void 0 ? `fs:${fontSize2}` : "",
81383
- fontFamily2 ? `ff:${fontFamily2}` : ""
81502
+ fontFamily2 ? `ff:${fontFamily2}` : "",
81503
+ highlight ? `hl:${highlight}` : ""
81384
81504
  ].join("");
81385
81505
  let trackedKey = "";
81386
81506
  if (hasTrackedChange(run2)) {
@@ -82507,7 +82627,7 @@ const paragraphBlocksEqual = (a, b2) => {
82507
82627
  for (let i = 0; i < a.runs.length; i += 1) {
82508
82628
  const runA = a.runs[i];
82509
82629
  const runB = b2.runs[i];
82510
- if (("src" in runA || runA.kind === "lineBreak" || runA.kind === "break" || runA.kind === "fieldAnnotation" ? "" : runA.text) !== ("src" in runB || runB.kind === "lineBreak" || runB.kind === "break" || runB.kind === "fieldAnnotation" ? "" : runB.text) || ("bold" in runA ? runA.bold : false) !== ("bold" in runB ? runB.bold : false) || ("italic" in runA ? runA.italic : false) !== ("italic" in runB ? runB.italic : false) || ("color" in runA ? runA.color : void 0) !== ("color" in runB ? runB.color : void 0) || ("fontSize" in runA ? runA.fontSize : void 0) !== ("fontSize" in runB ? runB.fontSize : void 0) || ("fontFamily" in runA ? runA.fontFamily : void 0) !== ("fontFamily" in runB ? runB.fontFamily : void 0) || getTrackedChangeKey(runA) !== getTrackedChangeKey(runB)) {
82630
+ if (("src" in runA || runA.kind === "lineBreak" || runA.kind === "break" || runA.kind === "fieldAnnotation" ? "" : runA.text) !== ("src" in runB || runB.kind === "lineBreak" || runB.kind === "break" || runB.kind === "fieldAnnotation" ? "" : runB.text) || ("bold" in runA ? runA.bold : false) !== ("bold" in runB ? runB.bold : false) || ("italic" in runA ? runA.italic : false) !== ("italic" in runB ? runB.italic : false) || ("color" in runA ? runA.color : void 0) !== ("color" in runB ? runB.color : void 0) || ("fontSize" in runA ? runA.fontSize : void 0) !== ("fontSize" in runB ? runB.fontSize : void 0) || ("fontFamily" in runA ? runA.fontFamily : void 0) !== ("fontFamily" in runB ? runB.fontFamily : void 0) || ("highlight" in runA ? runA.highlight : void 0) !== ("highlight" in runB ? runB.highlight : void 0) || getTrackedChangeKey(runA) !== getTrackedChangeKey(runB)) {
82511
82631
  return false;
82512
82632
  }
82513
82633
  }
@@ -42421,7 +42421,7 @@ const _SuperConverter = class _SuperConverter2 {
42421
42421
  static getStoredSuperdocVersion(docx) {
42422
42422
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
42423
42423
  }
42424
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.98") {
42424
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.99") {
42425
42425
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
42426
42426
  }
42427
42427
  /**
@@ -59639,7 +59639,7 @@ const isHeadless = (editor) => {
59639
59639
  const shouldSkipNodeView = (editor) => {
59640
59640
  return isHeadless(editor);
59641
59641
  };
59642
- const summaryVersion = "1.0.0-beta.98";
59642
+ const summaryVersion = "1.0.0-beta.99";
59643
59643
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
59644
59644
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
59645
59645
  function mapAttributes(attrs) {
@@ -60428,7 +60428,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60428
60428
  { default: remarkStringify },
60429
60429
  { default: remarkGfm }
60430
60430
  ] = await Promise.all([
60431
- Promise.resolve().then(() => require("./index-Dg_sTYZK-DYDzxoXL.cjs")),
60431
+ Promise.resolve().then(() => require("./index-BB0msI45-CPU6Ak2R.cjs")),
60432
60432
  Promise.resolve().then(() => require("./index-DRCvimau-H4Ck3S9a.cjs")),
60433
60433
  Promise.resolve().then(() => require("./index-C_x_N6Uh-Db3CUJMX.cjs")),
60434
60434
  Promise.resolve().then(() => require("./index-D_sWOSiG-BtDZzJ6I.cjs")),
@@ -60633,7 +60633,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60633
60633
  * Process collaboration migrations
60634
60634
  */
60635
60635
  processCollaborationMigrations() {
60636
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.98");
60636
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.99");
60637
60637
  if (!this.options.ydoc) return;
60638
60638
  const metaMap = this.options.ydoc.getMap("meta");
60639
60639
  let docVersion = metaMap.get("version");
@@ -74424,6 +74424,61 @@ function ensureRulerStyles(doc2) {
74424
74424
  doc2.head?.appendChild(styleEl);
74425
74425
  rulerStylesInjected = true;
74426
74426
  }
74427
+ const hashParagraphBorder$1 = (border) => {
74428
+ const parts = [];
74429
+ if (border.style !== void 0) parts.push(`s:${border.style}`);
74430
+ if (border.width !== void 0) parts.push(`w:${border.width}`);
74431
+ if (border.color !== void 0) parts.push(`c:${border.color}`);
74432
+ if (border.space !== void 0) parts.push(`sp:${border.space}`);
74433
+ return parts.join(",");
74434
+ };
74435
+ const hashParagraphBorders$1 = (borders) => {
74436
+ const parts = [];
74437
+ if (borders.top) parts.push(`t:[${hashParagraphBorder$1(borders.top)}]`);
74438
+ if (borders.right) parts.push(`r:[${hashParagraphBorder$1(borders.right)}]`);
74439
+ if (borders.bottom) parts.push(`b:[${hashParagraphBorder$1(borders.bottom)}]`);
74440
+ if (borders.left) parts.push(`l:[${hashParagraphBorder$1(borders.left)}]`);
74441
+ return parts.join(";");
74442
+ };
74443
+ const hasStringProp = (run2, prop) => {
74444
+ return prop in run2 && typeof run2[prop] === "string";
74445
+ };
74446
+ const hasNumberProp = (run2, prop) => {
74447
+ return prop in run2 && typeof run2[prop] === "number";
74448
+ };
74449
+ const hasBooleanProp = (run2, prop) => {
74450
+ return prop in run2 && typeof run2[prop] === "boolean";
74451
+ };
74452
+ const getRunStringProp = (run2, prop) => {
74453
+ if (hasStringProp(run2, prop)) {
74454
+ return run2[prop];
74455
+ }
74456
+ return "";
74457
+ };
74458
+ const getRunNumberProp = (run2, prop) => {
74459
+ if (hasNumberProp(run2, prop)) {
74460
+ return run2[prop];
74461
+ }
74462
+ return 0;
74463
+ };
74464
+ const getRunBooleanProp = (run2, prop) => {
74465
+ if (hasBooleanProp(run2, prop)) {
74466
+ return run2[prop];
74467
+ }
74468
+ return false;
74469
+ };
74470
+ const getRunUnderlineStyle = (run2) => {
74471
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object") {
74472
+ return run2.underline.style ?? "";
74473
+ }
74474
+ return "";
74475
+ };
74476
+ const getRunUnderlineColor = (run2) => {
74477
+ if ("underline" in run2 && run2.underline && typeof run2.underline === "object") {
74478
+ return run2.underline.color ?? "";
74479
+ }
74480
+ return "";
74481
+ };
74427
74482
  function isMinimalWordLayout(value) {
74428
74483
  if (typeof value !== "object" || value === null) {
74429
74484
  return false;
@@ -77503,7 +77558,7 @@ const deriveBlockVersion = (block) => {
77503
77558
  attrs.indent?.right ?? "",
77504
77559
  attrs.indent?.firstLine ?? "",
77505
77560
  attrs.indent?.hanging ?? "",
77506
- attrs.borders ? JSON.stringify(attrs.borders) : "",
77561
+ attrs.borders ? hashParagraphBorders$1(attrs.borders) : "",
77507
77562
  attrs.shading?.fill ?? "",
77508
77563
  attrs.shading?.color ?? "",
77509
77564
  attrs.direction ?? "",
@@ -77592,14 +77647,43 @@ const deriveBlockVersion = (block) => {
77592
77647
  for (const cellBlock of cellBlocks) {
77593
77648
  hash2 = hashString(hash2, cellBlock?.kind ?? "unknown");
77594
77649
  if (cellBlock?.kind === "paragraph") {
77595
- const runs = cellBlock.runs ?? [];
77650
+ const paragraphBlock = cellBlock;
77651
+ const runs = paragraphBlock.runs ?? [];
77596
77652
  hash2 = hashNumber(hash2, runs.length);
77653
+ const attrs = paragraphBlock.attrs;
77654
+ if (attrs) {
77655
+ hash2 = hashString(hash2, attrs.alignment ?? "");
77656
+ hash2 = hashNumber(hash2, attrs.spacing?.before ?? 0);
77657
+ hash2 = hashNumber(hash2, attrs.spacing?.after ?? 0);
77658
+ hash2 = hashNumber(hash2, attrs.spacing?.line ?? 0);
77659
+ hash2 = hashString(hash2, attrs.spacing?.lineRule ?? "");
77660
+ hash2 = hashNumber(hash2, attrs.indent?.left ?? 0);
77661
+ hash2 = hashNumber(hash2, attrs.indent?.right ?? 0);
77662
+ hash2 = hashNumber(hash2, attrs.indent?.firstLine ?? 0);
77663
+ hash2 = hashNumber(hash2, attrs.indent?.hanging ?? 0);
77664
+ hash2 = hashString(hash2, attrs.shading?.fill ?? "");
77665
+ hash2 = hashString(hash2, attrs.shading?.color ?? "");
77666
+ hash2 = hashString(hash2, attrs.direction ?? "");
77667
+ hash2 = hashString(hash2, attrs.rtl ? "1" : "");
77668
+ if (attrs.borders) {
77669
+ hash2 = hashString(hash2, hashParagraphBorders$1(attrs.borders));
77670
+ }
77671
+ }
77597
77672
  for (const run2 of runs) {
77598
77673
  if ("text" in run2 && typeof run2.text === "string") {
77599
77674
  hash2 = hashString(hash2, run2.text);
77600
77675
  }
77601
77676
  hash2 = hashNumber(hash2, run2.pmStart ?? -1);
77602
77677
  hash2 = hashNumber(hash2, run2.pmEnd ?? -1);
77678
+ hash2 = hashString(hash2, getRunStringProp(run2, "color"));
77679
+ hash2 = hashString(hash2, getRunStringProp(run2, "highlight"));
77680
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "bold") ? "1" : "");
77681
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "italic") ? "1" : "");
77682
+ hash2 = hashNumber(hash2, getRunNumberProp(run2, "fontSize"));
77683
+ hash2 = hashString(hash2, getRunStringProp(run2, "fontFamily"));
77684
+ hash2 = hashString(hash2, getRunUnderlineStyle(run2));
77685
+ hash2 = hashString(hash2, getRunUnderlineColor(run2));
77686
+ hash2 = hashString(hash2, getRunBooleanProp(run2, "strike") ? "1" : "");
77603
77687
  }
77604
77688
  }
77605
77689
  }
@@ -81297,10 +81381,6 @@ const resolveTrackedChangesEnabled = (attrs, defaultEnabled = true) => {
81297
81381
  }
81298
81382
  return attrs.trackedChangesEnabled !== false;
81299
81383
  };
81300
- const MAX_CACHE_SIZE$1 = 1e4;
81301
- const BYTES_PER_ENTRY_ESTIMATE = 5e3;
81302
- const NORMALIZED_WHITESPACE = /\s+/g;
81303
- const normalizeText = (text) => text.replace(NORMALIZED_WHITESPACE, " ");
81304
81384
  const hashParagraphBorder = (border) => {
81305
81385
  const parts = [];
81306
81386
  if (border.style !== void 0) parts.push(`s:${border.style}`);
@@ -81317,6 +81397,10 @@ const hashParagraphBorders = (borders) => {
81317
81397
  if (borders.left) parts.push(`l:[${hashParagraphBorder(borders.left)}]`);
81318
81398
  return parts.join(";");
81319
81399
  };
81400
+ const MAX_CACHE_SIZE$1 = 1e4;
81401
+ const BYTES_PER_ENTRY_ESTIMATE = 5e3;
81402
+ const NORMALIZED_WHITESPACE = /\s+/g;
81403
+ const normalizeText = (text) => text.replace(NORMALIZED_WHITESPACE, " ");
81320
81404
  const hashParagraphFrame = (frame) => {
81321
81405
  const parts = [];
81322
81406
  if (frame.wrap !== void 0) parts.push(`w:${frame.wrap}`);
@@ -81353,12 +81437,14 @@ const hashRuns = (block) => {
81353
81437
  const color = "color" in run2 ? run2.color : void 0;
81354
81438
  const fontSize2 = "fontSize" in run2 ? run2.fontSize : void 0;
81355
81439
  const fontFamily2 = "fontFamily" in run2 ? run2.fontFamily : void 0;
81440
+ const highlight = "highlight" in run2 ? run2.highlight : void 0;
81356
81441
  const marks = [
81357
81442
  bold ? "b" : "",
81358
81443
  italic ? "i" : "",
81359
81444
  color ?? "",
81360
81445
  fontSize2 !== void 0 ? `fs:${fontSize2}` : "",
81361
- fontFamily2 ? `ff:${fontFamily2}` : ""
81446
+ fontFamily2 ? `ff:${fontFamily2}` : "",
81447
+ highlight ? `hl:${highlight}` : ""
81362
81448
  ].join("");
81363
81449
  let trackedKey = "";
81364
81450
  if (hasTrackedChange(run2)) {
@@ -81369,6 +81455,38 @@ const hashRuns = (block) => {
81369
81455
  }
81370
81456
  cellHashes.push(`${text}:${marks}${trackedKey}`);
81371
81457
  }
81458
+ if (paragraphBlock.attrs) {
81459
+ const attrs = paragraphBlock.attrs;
81460
+ const parts = [];
81461
+ if (attrs.alignment) parts.push(`al:${attrs.alignment}`);
81462
+ if (attrs.spacing) {
81463
+ const s2 = attrs.spacing;
81464
+ if (s2.before !== void 0) parts.push(`sb:${s2.before}`);
81465
+ if (s2.after !== void 0) parts.push(`sa:${s2.after}`);
81466
+ if (s2.line !== void 0) parts.push(`sl:${s2.line}`);
81467
+ if (s2.lineRule) parts.push(`sr:${s2.lineRule}`);
81468
+ }
81469
+ if (attrs.indent) {
81470
+ const ind = attrs.indent;
81471
+ if (ind.left !== void 0) parts.push(`il:${ind.left}`);
81472
+ if (ind.right !== void 0) parts.push(`ir:${ind.right}`);
81473
+ if (ind.firstLine !== void 0) parts.push(`if:${ind.firstLine}`);
81474
+ if (ind.hanging !== void 0) parts.push(`ih:${ind.hanging}`);
81475
+ }
81476
+ if (attrs.borders) {
81477
+ parts.push(`br:${hashParagraphBorders(attrs.borders)}`);
81478
+ }
81479
+ if (attrs.shading) {
81480
+ const sh = attrs.shading;
81481
+ if (sh.fill) parts.push(`shf:${sh.fill}`);
81482
+ if (sh.color) parts.push(`shc:${sh.color}`);
81483
+ }
81484
+ if (attrs.direction) parts.push(`dir:${attrs.direction}`);
81485
+ if (attrs.rtl) parts.push("rtl");
81486
+ if (parts.length > 0) {
81487
+ cellHashes.push(`pa:${parts.join(":")}`);
81488
+ }
81489
+ }
81372
81490
  }
81373
81491
  }
81374
81492
  }
@@ -81392,12 +81510,14 @@ const hashRuns = (block) => {
81392
81510
  const color = "color" in run2 ? run2.color : void 0;
81393
81511
  const fontSize2 = "fontSize" in run2 ? run2.fontSize : void 0;
81394
81512
  const fontFamily2 = "fontFamily" in run2 ? run2.fontFamily : void 0;
81513
+ const highlight = "highlight" in run2 ? run2.highlight : void 0;
81395
81514
  const marks = [
81396
81515
  bold ? "b" : "",
81397
81516
  italic ? "i" : "",
81398
81517
  color ?? "",
81399
81518
  fontSize2 !== void 0 ? `fs:${fontSize2}` : "",
81400
- fontFamily2 ? `ff:${fontFamily2}` : ""
81519
+ fontFamily2 ? `ff:${fontFamily2}` : "",
81520
+ highlight ? `hl:${highlight}` : ""
81401
81521
  ].join("");
81402
81522
  let trackedKey = "";
81403
81523
  if (hasTrackedChange(run2)) {
@@ -82524,7 +82644,7 @@ const paragraphBlocksEqual = (a, b2) => {
82524
82644
  for (let i = 0; i < a.runs.length; i += 1) {
82525
82645
  const runA = a.runs[i];
82526
82646
  const runB = b2.runs[i];
82527
- if (("src" in runA || runA.kind === "lineBreak" || runA.kind === "break" || runA.kind === "fieldAnnotation" ? "" : runA.text) !== ("src" in runB || runB.kind === "lineBreak" || runB.kind === "break" || runB.kind === "fieldAnnotation" ? "" : runB.text) || ("bold" in runA ? runA.bold : false) !== ("bold" in runB ? runB.bold : false) || ("italic" in runA ? runA.italic : false) !== ("italic" in runB ? runB.italic : false) || ("color" in runA ? runA.color : void 0) !== ("color" in runB ? runB.color : void 0) || ("fontSize" in runA ? runA.fontSize : void 0) !== ("fontSize" in runB ? runB.fontSize : void 0) || ("fontFamily" in runA ? runA.fontFamily : void 0) !== ("fontFamily" in runB ? runB.fontFamily : void 0) || getTrackedChangeKey(runA) !== getTrackedChangeKey(runB)) {
82647
+ if (("src" in runA || runA.kind === "lineBreak" || runA.kind === "break" || runA.kind === "fieldAnnotation" ? "" : runA.text) !== ("src" in runB || runB.kind === "lineBreak" || runB.kind === "break" || runB.kind === "fieldAnnotation" ? "" : runB.text) || ("bold" in runA ? runA.bold : false) !== ("bold" in runB ? runB.bold : false) || ("italic" in runA ? runA.italic : false) !== ("italic" in runB ? runB.italic : false) || ("color" in runA ? runA.color : void 0) !== ("color" in runB ? runB.color : void 0) || ("fontSize" in runA ? runA.fontSize : void 0) !== ("fontSize" in runB ? runB.fontSize : void 0) || ("fontFamily" in runA ? runA.fontFamily : void 0) !== ("fontFamily" in runB ? runB.fontFamily : void 0) || ("highlight" in runA ? runA.highlight : void 0) !== ("highlight" in runB ? runB.highlight : void 0) || getTrackedChangeKey(runA) !== getTrackedChangeKey(runB)) {
82528
82648
  return false;
82529
82649
  }
82530
82650
  }