superdoc 1.0.0-beta.54 → 1.0.0-beta.56

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/chunks/{PdfViewer-qBKjClah.cjs → PdfViewer-CnvD--7P.cjs} +1 -1
  2. package/dist/chunks/{PdfViewer-D_U-y4Wi.es.js → PdfViewer-DsYaXp0H.es.js} +1 -1
  3. package/dist/chunks/{index-BKvAeQdF.cjs → index-BpBdSm3V.cjs} +3 -3
  4. package/dist/chunks/{index-to6_YLa7.es.js → index-DF1aQt8V.es.js} +3 -3
  5. package/dist/chunks/{index-t8thQIOL-vW80ABaR.es.js → index-DYnUncjo-Br0s3gQs.es.js} +1 -1
  6. package/dist/chunks/{index-t8thQIOL-CV8VTGI4.cjs → index-DYnUncjo-Uv8YzgRb.cjs} +1 -1
  7. package/dist/chunks/{super-editor.es-xpC1DWhM.es.js → super-editor.es-BxMwj135.es.js} +524 -190
  8. package/dist/chunks/{super-editor.es-BMiadG4G.cjs → super-editor.es-DkFw0sfq.cjs} +524 -190
  9. package/dist/super-editor/ai-writer.es.js +2 -2
  10. package/dist/super-editor/chunks/{converter-OoT4LYwQ.js → converter-DwC5XPQX.js} +274 -171
  11. package/dist/super-editor/chunks/{docx-zipper-Cf_hIcjC.js → docx-zipper-BkCzC50U.js} +1 -1
  12. package/dist/super-editor/chunks/{editor-CqbtudGQ.js → editor-CoKNeouN.js} +255 -24
  13. package/dist/super-editor/chunks/{index-t8thQIOL.js → index-DYnUncjo.js} +1 -1
  14. package/dist/super-editor/chunks/{toolbar-BsfRAJ0o.js → toolbar-DUWk-Bwi.js} +2 -2
  15. package/dist/super-editor/converter.es.js +1 -1
  16. package/dist/super-editor/docx-zipper.es.js +2 -2
  17. package/dist/super-editor/editor.es.js +3 -3
  18. package/dist/super-editor/file-zipper.es.js +1 -1
  19. package/dist/super-editor/super-editor.es.js +6 -6
  20. package/dist/super-editor/toolbar.es.js +2 -2
  21. package/dist/super-editor.cjs +1 -1
  22. package/dist/super-editor.es.js +1 -1
  23. package/dist/superdoc.cjs +2 -2
  24. package/dist/superdoc.es.js +2 -2
  25. package/dist/superdoc.umd.js +526 -192
  26. package/dist/superdoc.umd.js.map +1 -1
  27. package/package.json +1 -1
@@ -18080,7 +18080,7 @@ const config$p = {
18080
18080
  decode: decode$R,
18081
18081
  attributes: validXmlAttributes$h
18082
18082
  };
18083
- const translator$23 = NodeTranslator.from(config$p);
18083
+ const translator$2p = NodeTranslator.from(config$p);
18084
18084
  const encode$O = (attributes) => attributes?.["w:val"];
18085
18085
  const decode$Q = (attrs) => attrs?.highlight;
18086
18086
  const attrConfig$q = Object.freeze({
@@ -18142,7 +18142,7 @@ const config$o = {
18142
18142
  decode: decode$P,
18143
18143
  attributes: validXmlAttributes$g
18144
18144
  };
18145
- const translator$22 = NodeTranslator.from(config$o);
18145
+ const translator$2o = NodeTranslator.from(config$o);
18146
18146
  const encode$M = (attributes) => {
18147
18147
  return attributes["w:val"];
18148
18148
  };
@@ -18221,7 +18221,7 @@ const config$n = {
18221
18221
  decode: decode$L,
18222
18222
  attributes: validXmlAttributes$f
18223
18223
  };
18224
- const translator$21 = NodeTranslator.from(config$n);
18224
+ const translator$2n = NodeTranslator.from(config$n);
18225
18225
  const carbonCopy = (obj) => {
18226
18226
  if (!obj) return void 0;
18227
18227
  try {
@@ -18362,7 +18362,7 @@ function createBorderPropertyHandler(xmlName, sdName = null) {
18362
18362
  "color",
18363
18363
  (v2) => {
18364
18364
  if (v2 === "auto") {
18365
- return null;
18365
+ return "auto";
18366
18366
  } else if (v2) {
18367
18367
  return `#${v2}`;
18368
18368
  } else {
@@ -18547,9 +18547,10 @@ const integerToString = (value) => {
18547
18547
  const intValue = parseInteger(value);
18548
18548
  return intValue != void 0 ? String(intValue) : void 0;
18549
18549
  };
18550
- const translator$20 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:b", "bold"));
18551
- const translator$1$ = NodeTranslator.from(createSingleBooleanPropertyHandler("w:bCs", "boldCs"));
18552
- const translator$1_ = NodeTranslator.from(createSingleBooleanPropertyHandler("w:i", "italic"));
18550
+ const translator$2m = NodeTranslator.from(createSingleBooleanPropertyHandler("w:b", "bold"));
18551
+ const translator$2l = NodeTranslator.from(createSingleBooleanPropertyHandler("w:bCs", "boldCs"));
18552
+ const translator$2k = NodeTranslator.from(createBorderPropertyHandler("w:bdr", "borders"));
18553
+ const translator$2j = NodeTranslator.from(createSingleBooleanPropertyHandler("w:i", "italic"));
18553
18554
  const encode$I = (attributes) => attributes?.["w:val"];
18554
18555
  const decode$K = (attrs) => attrs?.underline;
18555
18556
  const attrConfig$m = Object.freeze({
@@ -18644,10 +18645,10 @@ const config$m = {
18644
18645
  decode: decode$F,
18645
18646
  attributes: validXmlAttributes$e
18646
18647
  };
18647
- const translator$1Z = NodeTranslator.from(config$m);
18648
- const translator$1Y = NodeTranslator.from(createSingleBooleanPropertyHandler("w:strike"));
18649
- const translator$1X = NodeTranslator.from(createSingleBooleanPropertyHandler("w:dstrike"));
18650
- const translator$1W = NodeTranslator.from({
18648
+ const translator$2i = NodeTranslator.from(config$m);
18649
+ const translator$2h = NodeTranslator.from(createSingleBooleanPropertyHandler("w:strike"));
18650
+ const translator$2g = NodeTranslator.from(createSingleBooleanPropertyHandler("w:dstrike"));
18651
+ const translator$2f = NodeTranslator.from({
18651
18652
  xmlName: "w:color",
18652
18653
  sdNodeOrKeyName: "color",
18653
18654
  attributes: [
@@ -18664,7 +18665,7 @@ const translator$1W = NodeTranslator.from({
18664
18665
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18665
18666
  }
18666
18667
  });
18667
- const translator$1V = NodeTranslator.from({
18668
+ const translator$2e = NodeTranslator.from({
18668
18669
  xmlName: "w:rFonts",
18669
18670
  sdNodeOrKeyName: "fontFamily",
18670
18671
  attributes: [
@@ -18695,16 +18696,16 @@ const translator$1V = NodeTranslator.from({
18695
18696
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18696
18697
  }
18697
18698
  });
18698
- const translator$1U = NodeTranslator.from(createSingleAttrPropertyHandler("w:rStyle", "styleId"));
18699
- const translator$1T = NodeTranslator.from(createSingleIntegerPropertyHandler("w:sz", "fontSize"));
18700
- const translator$1S = NodeTranslator.from(createSingleIntegerPropertyHandler("w:szCs", "fontSizeCs"));
18701
- const translator$1R = NodeTranslator.from({
18699
+ const translator$2d = NodeTranslator.from(createSingleAttrPropertyHandler("w:rStyle", "styleId"));
18700
+ const translator$2c = NodeTranslator.from(createSingleIntegerPropertyHandler("w:sz", "fontSize"));
18701
+ const translator$2b = NodeTranslator.from(createSingleIntegerPropertyHandler("w:szCs", "fontSizeCs"));
18702
+ const translator$2a = NodeTranslator.from({
18702
18703
  xmlName: "w:caps",
18703
18704
  sdNodeOrKeyName: "textTransform",
18704
18705
  encode: ({ nodes }) => parseBoolean(nodes[0].attributes?.["w:val"] ?? "1") ? "uppercase" : "none",
18705
18706
  decode: ({ node }) => node.attrs["textTransform"] != null ? { name: "w:caps", attributes: { "w:val": booleanToString(node.attrs["textTransform"] === "uppercase") } } : void 0
18706
18707
  });
18707
- const translator$1Q = NodeTranslator.from({
18708
+ const translator$29 = NodeTranslator.from({
18708
18709
  xmlName: "w:shd",
18709
18710
  sdNodeOrKeyName: "shading",
18710
18711
  attributes: [
@@ -18726,7 +18727,7 @@ const translator$1Q = NodeTranslator.from({
18726
18727
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18727
18728
  }
18728
18729
  });
18729
- const translator$1P = NodeTranslator.from({
18730
+ const translator$28 = NodeTranslator.from({
18730
18731
  xmlName: "w:lang",
18731
18732
  sdNodeOrKeyName: "lang",
18732
18733
  attributes: [createAttributeHandler("w:val"), createAttributeHandler("w:eastAsia"), createAttributeHandler("w:bidi")],
@@ -18738,26 +18739,99 @@ const translator$1P = NodeTranslator.from({
18738
18739
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18739
18740
  }
18740
18741
  });
18741
- const translator$1O = NodeTranslator.from(createSingleIntegerPropertyHandler("w:spacing", "letterSpacing"));
18742
+ const translator$27 = NodeTranslator.from(createSingleIntegerPropertyHandler("w:spacing", "letterSpacing"));
18743
+ const translator$26 = NodeTranslator.from(createSingleAttrPropertyHandler("w:vertAlign"));
18744
+ const translator$25 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:smallCaps"));
18745
+ const translator$24 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:snapToGrid"));
18746
+ const translator$23 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:emboss"));
18747
+ const translator$22 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:imprint"));
18748
+ const translator$21 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:noProof"));
18749
+ const translator$20 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:oMath"));
18750
+ const translator$1$ = NodeTranslator.from(createSingleBooleanPropertyHandler("w:outline"));
18751
+ const translator$1_ = NodeTranslator.from(createSingleBooleanPropertyHandler("w:shadow"));
18752
+ const translator$1Z = NodeTranslator.from(createSingleBooleanPropertyHandler("w:vanish"));
18753
+ const translator$1Y = NodeTranslator.from(createSingleBooleanPropertyHandler("w:specVanish"));
18754
+ const translator$1X = NodeTranslator.from(createSingleAttrPropertyHandler("w:effect"));
18755
+ const translator$1W = NodeTranslator.from(createSingleAttrPropertyHandler("w:em"));
18756
+ const translator$1V = NodeTranslator.from(createSingleAttrPropertyHandler("w:w"));
18757
+ const translator$1U = NodeTranslator.from(createSingleIntegerPropertyHandler("w:kern"));
18758
+ const translator$1T = NodeTranslator.from(createSingleIntegerPropertyHandler("w:position"));
18759
+ const translator$1S = NodeTranslator.from({
18760
+ xmlName: "w:fitText",
18761
+ sdNodeOrKeyName: "fitText",
18762
+ attributes: [createIntegerAttributeHandler("w:val"), createIntegerAttributeHandler("w:id")],
18763
+ encode: (_2, encodedAttrs) => {
18764
+ return encodedAttrs;
18765
+ },
18766
+ decode: function({ node }) {
18767
+ const decodedAttrs = this.decodeAttributes({ node: { ...node, attrs: node.attrs["fitText"] || {} } });
18768
+ return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18769
+ }
18770
+ });
18771
+ const translator$1R = NodeTranslator.from({
18772
+ xmlName: "w:eastAsianLayout",
18773
+ sdNodeOrKeyName: "eastAsianLayout",
18774
+ attributes: [
18775
+ createIntegerAttributeHandler("w:id"),
18776
+ createBooleanAttributeHandler("w:combine"),
18777
+ createAttributeHandler("w:combineBrackets"),
18778
+ createBooleanAttributeHandler("w:vert"),
18779
+ createBooleanAttributeHandler("w:vertCompress")
18780
+ ],
18781
+ encode: (_2, encodedAttrs) => {
18782
+ return encodedAttrs;
18783
+ },
18784
+ decode: function({ node }) {
18785
+ const decodedAttrs = this.decodeAttributes({ node: { ...node, attrs: node.attrs["eastAsianLayout"] || {} } });
18786
+ return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18787
+ }
18788
+ });
18789
+ const translator$1Q = NodeTranslator.from(createSingleBooleanPropertyHandler("w:rtl"));
18790
+ const translator$1P = NodeTranslator.from(createSingleBooleanPropertyHandler("w:cs"));
18791
+ const translator$1O = NodeTranslator.from(createSingleBooleanPropertyHandler("w:iCs"));
18792
+ const translator$1N = NodeTranslator.from(createSingleBooleanPropertyHandler("w:webHidden"));
18742
18793
  const propertyTranslators$b = [
18743
- translator$20,
18744
- translator$1$,
18745
- translator$1_,
18746
- translator$1Z,
18747
- translator$1Y,
18794
+ translator$2l,
18795
+ translator$2m,
18796
+ translator$2k,
18797
+ translator$2a,
18798
+ translator$2f,
18799
+ translator$1P,
18800
+ translator$2g,
18801
+ translator$1R,
18748
18802
  translator$1X,
18749
18803
  translator$1W,
18804
+ translator$23,
18805
+ translator$1S,
18806
+ translator$2e,
18807
+ translator$2b,
18808
+ translator$2c,
18809
+ translator$2o,
18750
18810
  translator$22,
18751
- translator$1V,
18811
+ translator$2j,
18812
+ translator$1O,
18752
18813
  translator$1U,
18814
+ translator$28,
18815
+ translator$27,
18816
+ translator$21,
18817
+ translator$20,
18818
+ translator$1$,
18753
18819
  translator$1T,
18754
- translator$1S,
18755
- translator$1R,
18756
18820
  translator$1Q,
18757
- translator$1P,
18758
- translator$1O
18821
+ translator$2d,
18822
+ translator$1_,
18823
+ translator$29,
18824
+ translator$25,
18825
+ translator$24,
18826
+ translator$1Y,
18827
+ translator$2h,
18828
+ translator$2i,
18829
+ translator$1Z,
18830
+ translator$26,
18831
+ translator$1N,
18832
+ translator$1V
18759
18833
  ];
18760
- const translator$1N = NodeTranslator.from(
18834
+ const translator$1M = NodeTranslator.from(
18761
18835
  createNestedPropertiesTranslator("w:rPr", "runProperties", propertyTranslators$b)
18762
18836
  );
18763
18837
  const SUPPORTED_ALTERNATE_CONTENT_REQUIRES = /* @__PURE__ */ new Set([
@@ -18839,18 +18913,18 @@ function selectAlternateContentElements(node) {
18839
18913
  elements: carbonCopy(selectedElements)
18840
18914
  };
18841
18915
  }
18842
- const translator$1M = NodeTranslator.from(config$l);
18916
+ const translator$1L = NodeTranslator.from(config$l);
18843
18917
  function buildPath(existingPath = [], node, branch) {
18844
18918
  const path = [...existingPath];
18845
18919
  if (node) path.push(node);
18846
18920
  if (branch) path.push(branch);
18847
18921
  return path;
18848
18922
  }
18849
- const translator$1L = NodeTranslator.from(createSingleBooleanPropertyHandler("w:adjustRightInd"));
18850
- const translator$1K = NodeTranslator.from(createSingleBooleanPropertyHandler("w:autoSpaceDE"));
18851
- const translator$1J = NodeTranslator.from(createSingleBooleanPropertyHandler("w:autoSpaceDN"));
18852
- const translator$1I = NodeTranslator.from(createSingleBooleanPropertyHandler("w:bidi", "rightToLeft"));
18853
- const translator$1H = NodeTranslator.from({
18923
+ const translator$1K = NodeTranslator.from(createSingleBooleanPropertyHandler("w:adjustRightInd"));
18924
+ const translator$1J = NodeTranslator.from(createSingleBooleanPropertyHandler("w:autoSpaceDE"));
18925
+ const translator$1I = NodeTranslator.from(createSingleBooleanPropertyHandler("w:autoSpaceDN"));
18926
+ const translator$1H = NodeTranslator.from(createSingleBooleanPropertyHandler("w:bidi", "rightToLeft"));
18927
+ const translator$1G = NodeTranslator.from({
18854
18928
  xmlName: "w:cnfStyle",
18855
18929
  sdNodeOrKeyName: "cnfStyle",
18856
18930
  attributes: [
@@ -18876,9 +18950,9 @@ const translator$1H = NodeTranslator.from({
18876
18950
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18877
18951
  }
18878
18952
  });
18879
- const translator$1G = NodeTranslator.from(createSingleBooleanPropertyHandler("w:contextualSpacing"));
18880
- const translator$1F = NodeTranslator.from(createSingleAttrPropertyHandler("w:divId"));
18881
- const translator$1E = NodeTranslator.from({
18953
+ const translator$1F = NodeTranslator.from(createSingleBooleanPropertyHandler("w:contextualSpacing"));
18954
+ const translator$1E = NodeTranslator.from(createSingleAttrPropertyHandler("w:divId"));
18955
+ const translator$1D = NodeTranslator.from({
18882
18956
  xmlName: "w:framePr",
18883
18957
  sdNodeOrKeyName: "framePr",
18884
18958
  attributes: [
@@ -18906,7 +18980,7 @@ const translator$1E = NodeTranslator.from({
18906
18980
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18907
18981
  }
18908
18982
  });
18909
- const translator$1D = NodeTranslator.from({
18983
+ const translator$1C = NodeTranslator.from({
18910
18984
  xmlName: "w:ind",
18911
18985
  sdNodeOrKeyName: "indent",
18912
18986
  attributes: [
@@ -18931,12 +19005,12 @@ const translator$1D = NodeTranslator.from({
18931
19005
  return Object.keys(decodedAttrs).length > 0 ? { attributes: decodedAttrs } : void 0;
18932
19006
  }
18933
19007
  });
18934
- const translator$1C = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
18935
- const translator$1B = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepLines"));
18936
- const translator$1A = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepNext"));
18937
- const translator$1z = NodeTranslator.from(createSingleBooleanPropertyHandler("w:kinsoku"));
18938
- const translator$1y = NodeTranslator.from(createSingleBooleanPropertyHandler("w:mirrorIndents"));
18939
- const translator$1x = NodeTranslator.from(createSingleIntegerPropertyHandler("w:ilvl"));
19008
+ const translator$1B = NodeTranslator.from(createSingleAttrPropertyHandler("w:jc", "justification"));
19009
+ const translator$1A = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepLines"));
19010
+ const translator$1z = NodeTranslator.from(createSingleBooleanPropertyHandler("w:keepNext"));
19011
+ const translator$1y = NodeTranslator.from(createSingleBooleanPropertyHandler("w:kinsoku"));
19012
+ const translator$1x = NodeTranslator.from(createSingleBooleanPropertyHandler("w:mirrorIndents"));
19013
+ const translator$1w = NodeTranslator.from(createSingleIntegerPropertyHandler("w:ilvl"));
18940
19014
  const createTrackStyleMark = (marks) => {
18941
19015
  const trackStyleMark = marks.find((mark) => mark.type === "trackFormat");
18942
19016
  if (trackStyleMark) {
@@ -19018,41 +19092,40 @@ const config$k = {
19018
19092
  decode: decode$D,
19019
19093
  attributes: validXmlAttributes$c
19020
19094
  };
19021
- const translator$1w = NodeTranslator.from(config$k);
19022
- const translator$1v = NodeTranslator.from(createSingleIntegerPropertyHandler("w:numId"));
19023
- const propertyTranslators$a = [translator$1M, translator$1x, translator$1w, translator$1v];
19024
- const translator$1u = NodeTranslator.from(
19095
+ const translator$1v = NodeTranslator.from(config$k);
19096
+ const translator$1u = NodeTranslator.from(createSingleIntegerPropertyHandler("w:numId"));
19097
+ const propertyTranslators$a = [translator$1L, translator$1w, translator$1v, translator$1u];
19098
+ const translator$1t = NodeTranslator.from(
19025
19099
  createNestedPropertiesTranslator("w:numPr", "numberingProperties", propertyTranslators$a)
19026
19100
  );
19027
- const translator$1t = NodeTranslator.from(
19101
+ const translator$1s = NodeTranslator.from(
19028
19102
  createSingleAttrPropertyHandler("w:outlineLvl", "outlineLvl", "w:val", parseInteger, integerToString)
19029
19103
  );
19030
- const translator$1s = NodeTranslator.from(createSingleBooleanPropertyHandler("w:overflowPunct"));
19031
- const translator$1r = NodeTranslator.from(createBorderPropertyHandler("w:bar"));
19032
- const translator$1q = NodeTranslator.from(createBorderPropertyHandler("w:between"));
19033
- const translator$1p = NodeTranslator.from(createBorderPropertyHandler("w:bottom"));
19034
- const translator$1o = NodeTranslator.from(createMeasurementPropertyHandler("w:bottom", "marginBottom"));
19035
- const translator$1n = NodeTranslator.from(createBorderPropertyHandler("w:left"));
19036
- const translator$1m = NodeTranslator.from(createMeasurementPropertyHandler("w:left", "marginLeft"));
19037
- const translator$1l = NodeTranslator.from(createBorderPropertyHandler("w:right"));
19038
- const translator$1k = NodeTranslator.from(createMeasurementPropertyHandler("w:right", "marginRight"));
19039
- const translator$1j = NodeTranslator.from(createBorderPropertyHandler("w:top"));
19040
- const translator$1i = NodeTranslator.from(createMeasurementPropertyHandler("w:top", "marginTop"));
19104
+ const translator$1r = NodeTranslator.from(createSingleBooleanPropertyHandler("w:overflowPunct"));
19105
+ const translator$1q = NodeTranslator.from(createBorderPropertyHandler("w:bar"));
19106
+ const translator$1p = NodeTranslator.from(createBorderPropertyHandler("w:between"));
19107
+ const translator$1o = NodeTranslator.from(createBorderPropertyHandler("w:bottom"));
19108
+ const translator$1n = NodeTranslator.from(createMeasurementPropertyHandler("w:bottom", "marginBottom"));
19109
+ const translator$1m = NodeTranslator.from(createBorderPropertyHandler("w:left"));
19110
+ const translator$1l = NodeTranslator.from(createMeasurementPropertyHandler("w:left", "marginLeft"));
19111
+ const translator$1k = NodeTranslator.from(createBorderPropertyHandler("w:right"));
19112
+ const translator$1j = NodeTranslator.from(createMeasurementPropertyHandler("w:right", "marginRight"));
19113
+ const translator$1i = NodeTranslator.from(createBorderPropertyHandler("w:top"));
19114
+ const translator$1h = NodeTranslator.from(createMeasurementPropertyHandler("w:top", "marginTop"));
19041
19115
  const propertyTranslators$9 = [
19042
- translator$1M,
19043
- translator$1r,
19116
+ translator$1L,
19044
19117
  translator$1q,
19045
19118
  translator$1p,
19046
- translator$1n,
19047
- translator$1l,
19048
- translator$1j
19119
+ translator$1o,
19120
+ translator$1m,
19121
+ translator$1k,
19122
+ translator$1i
19049
19123
  ];
19050
- const translator$1h = NodeTranslator.from(
19124
+ const translator$1g = NodeTranslator.from(
19051
19125
  createNestedPropertiesTranslator("w:pBdr", "borders", propertyTranslators$9)
19052
19126
  );
19053
- const translator$1g = NodeTranslator.from(createSingleAttrPropertyHandler("w:pStyle", "styleId"));
19054
- const translator$1f = NodeTranslator.from(createSingleBooleanPropertyHandler("w:pageBreakBefore"));
19055
- const translator$1e = NodeTranslator.from(createSingleBooleanPropertyHandler("w:snapToGrid"));
19127
+ const translator$1f = NodeTranslator.from(createSingleAttrPropertyHandler("w:pStyle", "styleId"));
19128
+ const translator$1e = NodeTranslator.from(createSingleBooleanPropertyHandler("w:pageBreakBefore"));
19056
19129
  const translator$1d = NodeTranslator.from({
19057
19130
  xmlName: "w:spacing",
19058
19131
  sdNodeOrKeyName: "spacing",
@@ -19077,7 +19150,7 @@ const translator$1d = NodeTranslator.from({
19077
19150
  const translator$1c = NodeTranslator.from(createSingleBooleanPropertyHandler("w:suppressAutoHyphens"));
19078
19151
  const translator$1b = NodeTranslator.from(createSingleBooleanPropertyHandler("w:suppressLineNumbers"));
19079
19152
  const translator$1a = NodeTranslator.from(createSingleBooleanPropertyHandler("w:suppressOverlap"));
19080
- const propertyTranslators$8 = [translator$1M, translator$21];
19153
+ const propertyTranslators$8 = [translator$1L, translator$2n];
19081
19154
  const translator$19 = NodeTranslator.from(
19082
19155
  createNestedArrayPropertyHandler("w:tabs", "tabStops", propertyTranslators$8, { skipRun: true })
19083
19156
  );
@@ -19088,7 +19161,6 @@ const translator$15 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:
19088
19161
  const translator$14 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:widowControl"));
19089
19162
  const translator$13 = NodeTranslator.from(createSingleBooleanPropertyHandler("w:wordWrap"));
19090
19163
  const propertyTranslators$7 = [
19091
- translator$1M,
19092
19164
  translator$1L,
19093
19165
  translator$1K,
19094
19166
  translator$1J,
@@ -19103,14 +19175,15 @@ const propertyTranslators$7 = [
19103
19175
  translator$1A,
19104
19176
  translator$1z,
19105
19177
  translator$1y,
19106
- translator$1u,
19178
+ translator$1x,
19107
19179
  translator$1t,
19108
19180
  translator$1s,
19109
- translator$1h,
19181
+ translator$1r,
19110
19182
  translator$1g,
19111
19183
  translator$1f,
19112
- translator$1Q,
19113
19184
  translator$1e,
19185
+ translator$29,
19186
+ translator$24,
19114
19187
  translator$1d,
19115
19188
  translator$1c,
19116
19189
  translator$1b,
@@ -19122,7 +19195,7 @@ const propertyTranslators$7 = [
19122
19195
  translator$15,
19123
19196
  translator$14,
19124
19197
  translator$13,
19125
- translator$1N
19198
+ translator$1M
19126
19199
  ];
19127
19200
  const translator$12 = NodeTranslator.from(
19128
19201
  createNestedPropertiesTranslator("w:pPr", "paragraphProperties", propertyTranslators$7)
@@ -19195,12 +19268,12 @@ const INLINE_OVERRIDE_PROPERTIES = ["fontSize", "bold", "italic", "strike", "und
19195
19268
  const DEFAULT_FONT_SIZE_HALF_POINTS = 20;
19196
19269
  const resolveRunProperties = (params2, inlineRpr, resolvedPpr, isListNumber = false, numberingDefinedInline = false) => {
19197
19270
  const paragraphStyleId = resolvedPpr?.styleId;
19198
- const paragraphStyleProps = resolveStyleChain$1(params2, paragraphStyleId, translator$1N);
19199
- const defaultProps2 = getDefaultProperties(params2, translator$1N);
19200
- const { properties: normalProps, isDefault: isNormalDefault } = getStyleProperties(params2, "Normal", translator$1N);
19271
+ const paragraphStyleProps = resolveStyleChain$1(params2, paragraphStyleId, translator$1M);
19272
+ const defaultProps2 = getDefaultProperties(params2, translator$1M);
19273
+ const { properties: normalProps, isDefault: isNormalDefault } = getStyleProperties(params2, "Normal", translator$1M);
19201
19274
  let runStyleProps = {};
19202
19275
  if (!paragraphStyleId?.startsWith("TOC")) {
19203
- runStyleProps = inlineRpr.styleId ? resolveStyleChain$1(params2, inlineRpr.styleId, translator$1N) : {};
19276
+ runStyleProps = inlineRpr.styleId ? resolveStyleChain$1(params2, inlineRpr.styleId, translator$1M) : {};
19204
19277
  }
19205
19278
  let styleChain;
19206
19279
  if (isNormalDefault) {
@@ -19216,7 +19289,7 @@ const resolveRunProperties = (params2, inlineRpr, resolvedPpr, isListNumber = fa
19216
19289
  params2,
19217
19290
  resolvedPpr.numberingProperties.ilvl ?? 0,
19218
19291
  numId,
19219
- translator$1N
19292
+ translator$1M
19220
19293
  );
19221
19294
  }
19222
19295
  if (!numberingDefinedInline) {
@@ -19378,6 +19451,7 @@ function getStyleProperties(params2, styleId, translator2) {
19378
19451
  }
19379
19452
  function getNumberingProperties(params2, ilvl, numId, translator2, tries = 0) {
19380
19453
  const { numbering: allDefinitions } = params2;
19454
+ if (!allDefinitions) return {};
19381
19455
  const { definitions, abstracts } = allDefinitions;
19382
19456
  const propertiesChain = [];
19383
19457
  const numDefinition = definitions[numId];
@@ -19805,13 +19879,12 @@ function decodeRPrFromMarks(marks) {
19805
19879
  return runProperties;
19806
19880
  }
19807
19881
  marks.forEach((mark) => {
19808
- switch (mark.type.name ?? mark.type) {
19882
+ const type2 = mark.type.name ?? mark.type;
19883
+ switch (type2) {
19809
19884
  case "strike":
19810
19885
  case "italic":
19811
19886
  case "bold":
19812
- if (mark.attrs.value != null) {
19813
- runProperties[mark.type] = mark.attrs.value;
19814
- }
19887
+ runProperties[type2] = mark.attrs.value !== "0" && mark.attrs.value !== false;
19815
19888
  break;
19816
19889
  case "underline": {
19817
19890
  const { underlineType, underlineColor } = mark.attrs;
@@ -20060,7 +20133,7 @@ function handleStyleChangeMarksV2(rPrChange, currentMarks, params2) {
20060
20133
  let submarks = [];
20061
20134
  const rPr = rPrChange.elements?.find((el) => el.name === "w:rPr");
20062
20135
  if (rPr) {
20063
- const runProperties = translator$1N.encode({ ...params2, nodes: [rPr] });
20136
+ const runProperties = translator$1M.encode({ ...params2, nodes: [rPr] });
20064
20137
  submarks = encodeMarksFromRPr(runProperties, params2?.docx);
20065
20138
  }
20066
20139
  return [{ type: TrackFormatMarkName$1, attrs: { ...mappedAttributes, before: submarks, after: [...currentMarks] } }];
@@ -20622,8 +20695,8 @@ const validXmlAttributes$a = [
20622
20695
  {
20623
20696
  xmlName: "w:history",
20624
20697
  sdName: "history",
20625
- encode: (attributes) => attributes["w:history"] === "1" || attributes["w:history"] === "true",
20626
- decode: (attributes) => attributes["history"] ? "1" : "0"
20698
+ encode: (attributes) => attributes["w:history"] == null ? null : attributes["w:history"] === "1" || attributes["w:history"] === "true",
20699
+ decode: (attributes) => attributes["history"] == null ? null : attributes["history"] ? "1" : "0"
20627
20700
  },
20628
20701
  _createAttributeHandler("w:tooltip", "tooltip"),
20629
20702
  _createAttributeHandler("r:id", "rId"),
@@ -20766,7 +20839,7 @@ const encode$o = (params2, encodedAttrs = {}) => {
20766
20839
  if (!runNode) return void 0;
20767
20840
  const elements = Array.isArray(runNode.elements) ? runNode.elements : [];
20768
20841
  const rPrNode = elements.find((child) => child?.name === "w:rPr");
20769
- const runProperties = rPrNode ? translator$1N.encode({ ...params2, nodes: [rPrNode] }) : {};
20842
+ const runProperties = rPrNode ? translator$1M.encode({ ...params2, nodes: [rPrNode] }) : {};
20770
20843
  const paragraphProperties = params2?.extraParams?.paragraphProperties || {};
20771
20844
  const resolvedRunProperties = resolveRunProperties(params2, runProperties ?? {}, paragraphProperties);
20772
20845
  const marks = encodeMarksFromRPr(resolvedRunProperties, params2?.docx) || [];
@@ -20827,29 +20900,37 @@ const decode$q = (params2, decodedAttrs = {}) => {
20827
20900
  const { runNode: runNodeForExport, trackingMarksByType } = prepareRunTrackingContext(node);
20828
20901
  const runAttrs = runNodeForExport.attrs || {};
20829
20902
  const runProperties = runAttrs.runProperties || {};
20830
- const marksProperties = decodeRPrFromMarks(runNodeForExport.marks || []);
20831
- const finalRunProperties = combineRunProperties([runProperties, marksProperties]);
20832
20903
  const exportParams = {
20833
20904
  ...params2,
20834
20905
  node: runNodeForExport,
20835
- extraParams: { ...params2?.extraParams, runProperties: finalRunProperties }
20906
+ extraParams: { ...params2?.extraParams, runProperties }
20836
20907
  };
20837
20908
  if (!exportParams.editor) {
20838
20909
  exportParams.editor = { extensionService: { extensions: [] } };
20839
20910
  }
20840
20911
  const childElements = translateChildNodes(exportParams) || [];
20841
- let runPropertiesElement = translator$1N.decode({
20912
+ let runPropertiesElement = translator$1M.decode({
20842
20913
  ...params2,
20843
- node: { attrs: { runProperties: finalRunProperties } }
20914
+ node: { attrs: { runProperties } }
20844
20915
  });
20845
20916
  const runPropsTemplate = runPropertiesElement ? cloneXmlNode(runPropertiesElement) : null;
20846
20917
  const applyBaseRunProps = (runNode) => applyRunPropertiesTemplate(runNode, runPropsTemplate);
20918
+ const replaceRunProps = (runNode) => {
20919
+ if (Array.isArray(runNode.elements)) {
20920
+ runNode.elements = runNode.elements.filter((el) => el?.name !== "w:rPr");
20921
+ } else {
20922
+ runNode.elements = [];
20923
+ }
20924
+ if (runPropsTemplate) {
20925
+ runNode.elements.unshift(cloneXmlNode(runPropsTemplate));
20926
+ }
20927
+ };
20847
20928
  const runs = [];
20848
20929
  childElements.forEach((child) => {
20849
20930
  if (!child) return;
20850
20931
  if (child.name === "w:r") {
20851
20932
  const clonedRun = cloneXmlNode(child);
20852
- applyBaseRunProps(clonedRun);
20933
+ replaceRunProps(clonedRun);
20853
20934
  runs.push(clonedRun);
20854
20935
  return;
20855
20936
  }
@@ -20865,7 +20946,7 @@ const decode$q = (params2, decodedAttrs = {}) => {
20865
20946
  const trackedClone = cloneXmlNode(child);
20866
20947
  if (Array.isArray(trackedClone.elements)) {
20867
20948
  trackedClone.elements.forEach((element) => {
20868
- if (element?.name === "w:r") applyBaseRunProps(element);
20949
+ if (element?.name === "w:r") replaceRunProps(element);
20869
20950
  });
20870
20951
  }
20871
20952
  runs.push(trackedClone);
@@ -20927,12 +21008,12 @@ const translator$S = NodeTranslator.from(createMeasurementPropertyHandler("w:sta
20927
21008
  const translator$R = NodeTranslator.from(createBorderPropertyHandler("w:tl2br"));
20928
21009
  const translator$Q = NodeTranslator.from(createBorderPropertyHandler("w:tr2bl"));
20929
21010
  const propertyTranslators$6 = [
20930
- translator$1j,
21011
+ translator$1i,
20931
21012
  translator$T,
20932
- translator$1n,
20933
- translator$1p,
21013
+ translator$1m,
21014
+ translator$1o,
20934
21015
  translator$X,
20935
- translator$1l,
21016
+ translator$1k,
20936
21017
  translator$V,
20937
21018
  translator$U,
20938
21019
  translator$R,
@@ -20951,12 +21032,12 @@ const translator$O = NodeTranslator.from(
20951
21032
  )
20952
21033
  );
20953
21034
  const propertyTranslators$5 = [
20954
- translator$1o,
21035
+ translator$1n,
20955
21036
  translator$W,
20956
- translator$1m,
20957
- translator$1k,
21037
+ translator$1l,
21038
+ translator$1j,
20958
21039
  translator$S,
20959
- translator$1i
21040
+ translator$1h
20960
21041
  ];
20961
21042
  const translator$N = NodeTranslator.from(
20962
21043
  createNestedPropertiesTranslator("w:tcMar", "cellMargins", propertyTranslators$5)
@@ -20985,12 +21066,12 @@ const translator$I = NodeTranslator.from(
20985
21066
  createNestedArrayPropertyHandler("w:headers", "headers", [translator$J])
20986
21067
  );
20987
21068
  const propertyTranslators$4 = [
20988
- translator$1H,
21069
+ translator$1G,
20989
21070
  translator$_,
20990
21071
  translator$Z,
20991
21072
  translator$Y,
20992
21073
  translator$P,
20993
- translator$1Q,
21074
+ translator$29,
20994
21075
  translator$O,
20995
21076
  translator$N,
20996
21077
  translator$17,
@@ -21446,12 +21527,12 @@ const translator$y = NodeTranslator.from(createMeasurementPropertyHandler("w:wAf
21446
21527
  const translator$x = NodeTranslator.from(createMeasurementPropertyHandler("w:wBefore"));
21447
21528
  const propertyTranslators$3 = [
21448
21529
  translator$F,
21449
- translator$1H,
21450
- translator$1F,
21530
+ translator$1G,
21531
+ translator$1E,
21451
21532
  translator$E,
21452
21533
  translator$D,
21453
21534
  translator$C,
21454
- translator$1C,
21535
+ translator$1B,
21455
21536
  translator$B,
21456
21537
  translator$A,
21457
21538
  translator$z,
@@ -36861,7 +36942,7 @@ function getTextNodeForExport(text, marks, params2) {
36861
36942
  const textRunProperties = decodeRPrFromMarks(marks || []);
36862
36943
  const parentRunProperties = params2.extraParams?.runProperties || {};
36863
36944
  const combinedRunProperties = combineRunProperties([parentRunProperties, textRunProperties]);
36864
- const rPrNode = translator$1N.decode({ node: { attrs: { runProperties: combinedRunProperties } } });
36945
+ const rPrNode = translator$1M.decode({ node: { attrs: { runProperties: combinedRunProperties } } });
36865
36946
  textNodes.push({
36866
36947
  name: "w:t",
36867
36948
  elements: [{ text, type: "text" }],
@@ -37803,33 +37884,33 @@ const translator$f = NodeTranslator.from({
37803
37884
  }
37804
37885
  });
37805
37886
  const propertyTranslators$2 = [
37806
- translator$1p,
37887
+ translator$1o,
37807
37888
  translator$X,
37808
37889
  translator$V,
37809
37890
  translator$U,
37810
- translator$1n,
37811
- translator$1l,
37891
+ translator$1m,
37892
+ translator$1k,
37812
37893
  translator$T,
37813
- translator$1j
37894
+ translator$1i
37814
37895
  ];
37815
37896
  const translator$e = NodeTranslator.from(
37816
37897
  createNestedPropertiesTranslator("w:tblBorders", "borders", propertyTranslators$2)
37817
37898
  );
37818
37899
  const propertyTranslators$1 = [
37819
- translator$1o,
37900
+ translator$1n,
37820
37901
  translator$W,
37821
- translator$1m,
37822
- translator$1k,
37902
+ translator$1l,
37903
+ translator$1j,
37823
37904
  translator$S,
37824
- translator$1i
37905
+ translator$1h
37825
37906
  ];
37826
37907
  const translator$d = NodeTranslator.from(
37827
37908
  createNestedPropertiesTranslator("w:tblCellMar", "cellMargins", propertyTranslators$1)
37828
37909
  );
37829
37910
  const propertyTranslators = [
37830
37911
  translator$q,
37831
- translator$1C,
37832
- translator$1Q,
37912
+ translator$1B,
37913
+ translator$29,
37833
37914
  translator$p,
37834
37915
  translator$B,
37835
37916
  translator$o,
@@ -39100,7 +39181,7 @@ const handleTrackChangeNode = (params2) => {
39100
39181
  });
39101
39182
  break;
39102
39183
  case "w:ins":
39103
- result = translator$1w.encode({
39184
+ result = translator$1v.encode({
39104
39185
  ...translatorParams,
39105
39186
  extraParams: {
39106
39187
  ...translatorParams.extraParams,
@@ -39156,7 +39237,7 @@ const decode$1 = (params2) => {
39156
39237
  case "trackDelete":
39157
39238
  return translator$2.decode(params2);
39158
39239
  case "trackInsert":
39159
- return translator$1w.decode(params2);
39240
+ return translator$1v.decode(params2);
39160
39241
  }
39161
39242
  }
39162
39243
  const isLinkNode = node.marks?.some((m2) => m2.type === "link");
@@ -39232,33 +39313,40 @@ const sdtNodeHandlerEntity = {
39232
39313
  };
39233
39314
  const translatorList = Array.from(
39234
39315
  /* @__PURE__ */ new Set([
39235
- translator$1M,
39316
+ translator$1L,
39236
39317
  translator$6,
39237
39318
  translator$5,
39238
39319
  translator$4,
39239
39320
  translator$3,
39240
- translator$1L,
39241
39321
  translator$1K,
39242
39322
  translator$1J,
39243
- translator$20,
39244
- translator$1r,
39245
- translator$1$,
39323
+ translator$1I,
39324
+ translator$2m,
39325
+ translator$1q,
39326
+ translator$2l,
39327
+ translator$2k,
39246
39328
  translator$q,
39247
39329
  translator$7,
39248
39330
  translator$8,
39249
- translator$1p,
39250
- translator$23,
39331
+ translator$1o,
39332
+ translator$2p,
39251
39333
  translator$F,
39252
- translator$1R,
39253
- translator$1H,
39254
- translator$1W,
39334
+ translator$2a,
39255
39335
  translator$1G,
39256
- translator$2,
39336
+ translator$2f,
39257
39337
  translator$1F,
39338
+ translator$1P,
39339
+ translator$2,
39340
+ translator$1E,
39258
39341
  translator$s,
39342
+ translator$2g,
39343
+ translator$1R,
39259
39344
  translator$1X,
39345
+ translator$1W,
39346
+ translator$23,
39260
39347
  translator$X,
39261
- translator$1E,
39348
+ translator$1S,
39349
+ translator$1D,
39262
39350
  translator$E,
39263
39351
  translator$D,
39264
39352
  translator$b,
@@ -39267,49 +39355,60 @@ const translatorList = Array.from(
39267
39355
  translator$I,
39268
39356
  translator$C,
39269
39357
  translator$K,
39270
- translator$22,
39358
+ translator$2o,
39271
39359
  translator$10,
39272
- translator$1_,
39273
- translator$1x,
39274
- translator$1D,
39360
+ translator$2j,
39361
+ translator$1O,
39275
39362
  translator$1w,
39363
+ translator$1C,
39364
+ translator$22,
39365
+ translator$1v,
39276
39366
  translator$V,
39277
39367
  translator$U,
39278
- translator$1C,
39279
39368
  translator$1B,
39280
39369
  translator$1A,
39281
39370
  translator$1z,
39282
- translator$1P,
39283
- translator$1n,
39371
+ translator$1U,
39284
39372
  translator$1y,
39373
+ translator$28,
39374
+ translator$1m,
39375
+ translator$1x,
39376
+ translator$21,
39285
39377
  translator$O,
39286
- translator$1v,
39287
39378
  translator$1u,
39288
39379
  translator$1t,
39380
+ translator$1$,
39289
39381
  translator$1s,
39382
+ translator$1r,
39383
+ translator$20,
39290
39384
  translator$11,
39291
- translator$1f,
39292
- translator$1h,
39293
- translator$12,
39385
+ translator$1e,
39294
39386
  translator$1g,
39387
+ translator$1T,
39388
+ translator$12,
39389
+ translator$1f,
39295
39390
  translator$$,
39296
- translator$1V,
39297
- translator$1N,
39298
- translator$1U,
39299
- translator$1l,
39300
- translator$r,
39391
+ translator$2e,
39392
+ translator$1M,
39393
+ translator$2d,
39301
39394
  translator$1Q,
39302
- translator$1e,
39395
+ translator$1k,
39396
+ translator$r,
39397
+ translator$1_,
39398
+ translator$29,
39399
+ translator$25,
39400
+ translator$24,
39303
39401
  translator$1d,
39304
39402
  translator$1c,
39305
39403
  translator$1b,
39306
39404
  translator$1a,
39307
- translator$T,
39308
39405
  translator$1Y,
39309
- translator$1T,
39310
- translator$1S,
39406
+ translator$T,
39407
+ translator$2h,
39408
+ translator$2c,
39409
+ translator$2b,
39311
39410
  translator$1,
39312
- translator$21,
39411
+ translator$2n,
39313
39412
  translator$19,
39314
39413
  translator$9,
39315
39414
  translator$e,
@@ -39344,12 +39443,16 @@ const translatorList = Array.from(
39344
39443
  translator$18,
39345
39444
  translator$16,
39346
39445
  translator$15,
39347
- translator$1j,
39348
- translator$1Z,
39446
+ translator$1i,
39447
+ translator$2i,
39349
39448
  translator$L,
39449
+ translator$1Z,
39450
+ translator$26,
39350
39451
  translator$Y,
39452
+ translator$1V,
39351
39453
  translator$y,
39352
39454
  translator$x,
39455
+ translator$1N,
39353
39456
  translator$14,
39354
39457
  translator$13,
39355
39458
  translator$u,
@@ -39457,7 +39560,7 @@ const handler = (params2) => {
39457
39560
  if (nodes.length === 0 || nodes[0].name !== "w:br") {
39458
39561
  return { nodes: [], consumed: 0 };
39459
39562
  }
39460
- const result = translator$23.encode(params2);
39563
+ const result = translator$2p.encode(params2);
39461
39564
  if (!result) return { nodes: [], consumed: 0 };
39462
39565
  return {
39463
39566
  nodes: [result],
@@ -39601,7 +39704,7 @@ const handleAlternateChoice = (params2) => {
39601
39704
  ...currentNode,
39602
39705
  type: "element"
39603
39706
  };
39604
- const translated = translator$1M.encode({
39707
+ const translated = translator$1L.encode({
39605
39708
  ...params2,
39606
39709
  nodes: [nodeForTranslator],
39607
39710
  extraParams: { ...params2.extraParams || {}, node: nodeForTranslator }
@@ -40107,7 +40210,7 @@ const handleTabNode = (params2) => {
40107
40210
  if (!nodes.length || nodes[0].name !== "w:tab") {
40108
40211
  return { nodes: [], consumed: 0 };
40109
40212
  }
40110
- const node = translator$21.encode(params2);
40213
+ const node = translator$2n.encode(params2);
40111
40214
  return { nodes: [node], consumed: 1 };
40112
40215
  };
40113
40216
  const tabNodeEntityHandler = {
@@ -41186,7 +41289,7 @@ function translateContentBlock(params2) {
41186
41289
  if (vmlAttributes || horizontalRule) {
41187
41290
  return translateVRectContentBlock(params2);
41188
41291
  }
41189
- const alternateContent = translator$1M.decode(params2);
41292
+ const alternateContent = translator$1L.decode(params2);
41190
41293
  return wrapTextInRun(alternateContent);
41191
41294
  }
41192
41295
  function translateVRectContentBlock(params2) {
@@ -41333,16 +41436,16 @@ function exportSchemaToJson(params2) {
41333
41436
  paragraph: translator$11,
41334
41437
  run: translator$$,
41335
41438
  text: translator$1,
41336
- lineBreak: translator$23,
41439
+ lineBreak: translator$2p,
41337
41440
  table: translator$9,
41338
41441
  tableRow: translator$v,
41339
41442
  tableCell: translator$G,
41340
41443
  bookmarkStart: translator$8,
41341
41444
  bookmarkEnd: translator$7,
41342
41445
  fieldAnnotation: translator$r,
41343
- tab: translator$21,
41446
+ tab: translator$2n,
41344
41447
  image: translator$s,
41345
- hardBreak: translator$23,
41448
+ hardBreak: translator$2p,
41346
41449
  commentRangeStart: commentRangeStartTranslator,
41347
41450
  commentRangeEnd: commentRangeEndTranslator,
41348
41451
  commentReference: () => null,
@@ -41506,7 +41609,7 @@ function translateMark(mark) {
41506
41609
  markElement.type = "element";
41507
41610
  break;
41508
41611
  case "underline": {
41509
- const translated = translator$1Z.decode({
41612
+ const translated = translator$2i.decode({
41510
41613
  node: {
41511
41614
  attrs: {
41512
41615
  underlineType: attrs.underlineType ?? attrs.underline ?? null,
@@ -41570,7 +41673,7 @@ function translateMark(mark) {
41570
41673
  break;
41571
41674
  case "highlight": {
41572
41675
  const highlightValue = attrs.color ?? attrs.highlight ?? null;
41573
- const translated = translator$22.decode({ node: { attrs: { highlight: highlightValue } } });
41676
+ const translated = translator$2o.decode({ node: { attrs: { highlight: highlightValue } } });
41574
41677
  return translated || {};
41575
41678
  }
41576
41679
  case "strike":
@@ -42082,7 +42185,7 @@ const _SuperConverter = class _SuperConverter2 {
42082
42185
  static getStoredSuperdocVersion(docx) {
42083
42186
  return _SuperConverter2.getStoredCustomProperty(docx, "SuperdocVersion");
42084
42187
  }
42085
- static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.54") {
42188
+ static setStoredSuperdocVersion(docx = this.convertedXml, version2 = "1.0.0-beta.56") {
42086
42189
  return _SuperConverter2.setStoredCustomProperty(docx, "SuperdocVersion", version2, false);
42087
42190
  }
42088
42191
  /**
@@ -59264,7 +59367,7 @@ const isHeadless = (editor) => {
59264
59367
  const shouldSkipNodeView = (editor) => {
59265
59368
  return isHeadless(editor);
59266
59369
  };
59267
- const summaryVersion = "1.0.0-beta.54";
59370
+ const summaryVersion = "1.0.0-beta.56";
59268
59371
  const nodeKeys = ["group", "content", "marks", "inline", "atom", "defining", "code", "tableRole", "summary"];
59269
59372
  const markKeys = ["group", "inclusive", "excludes", "spanning", "code"];
59270
59373
  function mapAttributes(attrs) {
@@ -60053,7 +60156,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60053
60156
  { default: remarkStringify },
60054
60157
  { default: remarkGfm }
60055
60158
  ] = await Promise.all([
60056
- Promise.resolve().then(() => require("./index-t8thQIOL-CV8VTGI4.cjs")),
60159
+ Promise.resolve().then(() => require("./index-DYnUncjo-Uv8YzgRb.cjs")),
60057
60160
  Promise.resolve().then(() => require("./index-DRCvimau-H4Ck3S9a.cjs")),
60058
60161
  Promise.resolve().then(() => require("./index-C_x_N6Uh-Db3CUJMX.cjs")),
60059
60162
  Promise.resolve().then(() => require("./index-D_sWOSiG-BtDZzJ6I.cjs")),
@@ -60258,7 +60361,7 @@ const _Editor = class _Editor2 extends EventEmitter$1 {
60258
60361
  * Process collaboration migrations
60259
60362
  */
60260
60363
  processCollaborationMigrations() {
60261
- console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.54");
60364
+ console.debug("[checkVersionMigrations] Current editor version", "1.0.0-beta.56");
60262
60365
  if (!this.options.ydoc) return;
60263
60366
  const metaMap = this.options.ydoc.getMap("meta");
60264
60367
  let docVersion = metaMap.get("version");
@@ -61205,7 +61308,15 @@ const VALID_TRACKED_MODES = ["review", "original", "final", "off"];
61205
61308
  const DEFAULT_HYPERLINK_CONFIG$1 = {
61206
61309
  enableRichHyperlinks: false
61207
61310
  };
61208
- const ATOMIC_INLINE_TYPES = /* @__PURE__ */ new Set(["image", "hardBreak", "lineBreak", "page-number", "total-page-number"]);
61311
+ const ATOMIC_INLINE_TYPES = /* @__PURE__ */ new Set([
61312
+ "image",
61313
+ "hardBreak",
61314
+ "lineBreak",
61315
+ "page-number",
61316
+ "total-page-number",
61317
+ "passthroughInline",
61318
+ "bookmarkEnd"
61319
+ ]);
61209
61320
  const TOKEN_INLINE_TYPES = /* @__PURE__ */ new Map([
61210
61321
  ["page-number", "pageNumber"],
61211
61322
  ["total-page-number", "totalPageCount"]
@@ -79829,6 +79940,7 @@ const rangesOverlap = (startA, endA, startB, endB) => {
79829
79940
  return effectiveEndA > startB && startA < endB;
79830
79941
  };
79831
79942
  function hitTestPage(layout, point) {
79943
+ const pageGap = layout.pageGap ?? 0;
79832
79944
  let cursorY = 0;
79833
79945
  for (let pageIndex = 0; pageIndex < layout.pages.length; pageIndex += 1) {
79834
79946
  const page = layout.pages[pageIndex];
@@ -79837,7 +79949,7 @@ function hitTestPage(layout, point) {
79837
79949
  if (point.y >= top2 && point.y < bottom2) {
79838
79950
  return { pageIndex, page };
79839
79951
  }
79840
- cursorY = bottom2;
79952
+ cursorY = bottom2 + pageGap;
79841
79953
  }
79842
79954
  return null;
79843
79955
  }
@@ -80046,9 +80158,10 @@ function clickToPosition(layout, blocks, measures, containerPoint, domContainer,
80046
80158
  if (!pageHit) {
80047
80159
  return null;
80048
80160
  }
80161
+ const pageGap = layout.pageGap ?? 0;
80049
80162
  const pageRelativePoint = {
80050
80163
  x: containerPoint.x,
80051
- y: containerPoint.y - pageHit.pageIndex * layout.pageSize.h
80164
+ y: containerPoint.y - pageHit.pageIndex * (layout.pageSize.h + pageGap)
80052
80165
  };
80053
80166
  logClickStage("log", "page-hit", {
80054
80167
  pageIndex: pageHit.pageIndex
@@ -80269,7 +80382,7 @@ function selectionToRects(layout, blocks, measures, from2, to) {
80269
80382
  const rectY = fragment.y + lineOffset;
80270
80383
  rects.push({
80271
80384
  x: rectX,
80272
- y: rectY + pageIndex * layout.pageSize.h,
80385
+ y: rectY + pageIndex * (layout.pageSize.h + (layout.pageGap ?? 0)),
80273
80386
  width: rectWidth,
80274
80387
  height: line.lineHeight,
80275
80388
  pageIndex
@@ -80386,7 +80499,7 @@ function selectionToRects(layout, blocks, measures, from2, to) {
80386
80499
  const rectY = fragment.y + rowOffset + blockTopCursor + lineOffset;
80387
80500
  rects.push({
80388
80501
  x: rectX,
80389
- y: rectY + pageIndex * layout.pageSize.h,
80502
+ y: rectY + pageIndex * (layout.pageSize.h + (layout.pageGap ?? 0)),
80390
80503
  width: rectWidth,
80391
80504
  height: line.lineHeight,
80392
80505
  pageIndex
@@ -80415,7 +80528,7 @@ function selectionToRects(layout, blocks, measures, from2, to) {
80415
80528
  if (!rangesOverlap(pmRange.pmStart, pmRange.pmEnd, from2, to)) return;
80416
80529
  rects.push({
80417
80530
  x: fragment.x,
80418
- y: fragment.y + pageIndex * layout.pageSize.h,
80531
+ y: fragment.y + pageIndex * (layout.pageSize.h + (layout.pageGap ?? 0)),
80419
80532
  width: fragment.width,
80420
80533
  height: fragment.height,
80421
80534
  pageIndex
@@ -83329,6 +83442,8 @@ function isValidFieldAnnotationAttributes(attrs) {
83329
83442
  const FIELD_ANNOTATION_DATA_TYPE = "fieldAnnotation";
83330
83443
  const DEFAULT_PAGE_SIZE = { w: 612, h: 792 };
83331
83444
  const DEFAULT_MARGINS = { top: 72, right: 72, bottom: 72, left: 72 };
83445
+ const DEFAULT_VIRTUALIZED_PAGE_GAP = 72;
83446
+ const DEFAULT_PAGE_GAP = 24;
83332
83447
  const WORD_CHARACTER_REGEX = /[\p{L}\p{N}''_~-]/u;
83333
83448
  const MULTI_CLICK_TIME_THRESHOLD_MS = 400;
83334
83449
  const MULTI_CLICK_DISTANCE_THRESHOLD_PX = 5;
@@ -84403,8 +84518,9 @@ const _PresentationEditor = class _PresentationEditor2 extends EventEmitter$1 {
84403
84518
  const rawRects = layoutRectSource();
84404
84519
  if (!rawRects.length) return [];
84405
84520
  const pageHeight = __privateGet$1(this, _session).mode === "body" ? __privateMethod$1(this, _PresentationEditor_instances, getBodyPageHeight_fn).call(this) : __privateMethod$1(this, _PresentationEditor_instances, getHeaderFooterPageHeight_fn).call(this);
84521
+ const pageGap = __privateGet$1(this, _layoutState).layout?.pageGap ?? 0;
84406
84522
  return rawRects.map((rect) => {
84407
- const pageLocalY = rect.y - rect.pageIndex * pageHeight;
84523
+ const pageLocalY = rect.y - rect.pageIndex * (pageHeight + pageGap);
84408
84524
  const coords = __privateMethod$1(this, _PresentationEditor_instances, convertPageLocalToOverlayCoords_fn).call(this, rect.pageIndex, rect.x, pageLocalY);
84409
84525
  if (!coords) return null;
84410
84526
  const absLeft = coords.x * zoom + overlayRect.left;
@@ -84656,7 +84772,8 @@ const _PresentationEditor = class _PresentationEditor2 extends EventEmitter$1 {
84656
84772
  return null;
84657
84773
  }
84658
84774
  const pageHeight = __privateMethod$1(this, _PresentationEditor_instances, getBodyPageHeight_fn).call(this);
84659
- const pageLocalY = rect2.y - rect2.pageIndex * pageHeight;
84775
+ const pageGap = __privateGet$1(this, _layoutState).layout?.pageGap ?? 0;
84776
+ const pageLocalY = rect2.y - rect2.pageIndex * (pageHeight + pageGap);
84660
84777
  const coords = __privateMethod$1(this, _PresentationEditor_instances, convertPageLocalToOverlayCoords_fn).call(this, rect2.pageIndex, rect2.x, pageLocalY);
84661
84778
  if (!coords) {
84662
84779
  return null;
@@ -85400,10 +85517,11 @@ renderRemoteSelection_fn = function(cursor) {
85400
85517
  const color = __privateMethod$1(this, _PresentationEditor_instances, getValidatedColor_fn).call(this, cursor);
85401
85518
  const opacity = __privateGet$1(this, _layoutOptions).presence?.highlightOpacity ?? 0.35;
85402
85519
  const pageHeight = layout.pageSize?.h ?? __privateGet$1(this, _layoutOptions).pageSize?.h ?? DEFAULT_PAGE_SIZE.h;
85520
+ const pageGap = layout.pageGap ?? 0;
85403
85521
  const doc2 = __privateGet$1(this, _visibleHost).ownerDocument ?? document;
85404
85522
  const limitedRects = rects.slice(0, MAX_SELECTION_RECTS_PER_USER);
85405
85523
  limitedRects.forEach((rect) => {
85406
- const pageLocalY = rect.y - rect.pageIndex * pageHeight;
85524
+ const pageLocalY = rect.y - rect.pageIndex * (pageHeight + pageGap);
85407
85525
  const coords = __privateMethod$1(this, _PresentationEditor_instances, convertPageLocalToOverlayCoords_fn).call(this, rect.pageIndex, rect.x, pageLocalY);
85408
85526
  if (!coords) return;
85409
85527
  const selectionEl = doc2.createElement("div");
@@ -85866,6 +85984,12 @@ rerender_fn = async function() {
85866
85984
  return;
85867
85985
  }
85868
85986
  ({ layout, measures } = result);
85987
+ if (__privateGet$1(this, _layoutOptions).virtualization?.enabled) {
85988
+ const gap = __privateGet$1(this, _layoutOptions).virtualization.gap ?? DEFAULT_VIRTUALIZED_PAGE_GAP;
85989
+ layout.pageGap = Math.max(0, gap);
85990
+ } else {
85991
+ layout.pageGap = DEFAULT_PAGE_GAP;
85992
+ }
85869
85993
  headerLayouts = result.headers;
85870
85994
  footerLayouts = result.footers;
85871
85995
  } catch (error) {
@@ -86353,9 +86477,10 @@ hitTestHeaderFooterRegion_fn = function(x2, y2) {
86353
86477
  const layout = __privateGet$1(this, _layoutState).layout;
86354
86478
  if (!layout) return null;
86355
86479
  const pageHeight = layout.pageSize?.h ?? __privateGet$1(this, _layoutOptions).pageSize?.h ?? DEFAULT_PAGE_SIZE.h;
86480
+ const pageGap = layout.pageGap ?? 0;
86356
86481
  if (pageHeight <= 0) return null;
86357
- const pageIndex = Math.max(0, Math.floor(y2 / pageHeight));
86358
- const pageLocalY = y2 - pageIndex * pageHeight;
86482
+ const pageIndex = Math.max(0, Math.floor(y2 / (pageHeight + pageGap)));
86483
+ const pageLocalY = y2 - pageIndex * (pageHeight + pageGap);
86359
86484
  const headerRegion = __privateGet$1(this, _headerRegions).get(pageIndex);
86360
86485
  if (headerRegion && __privateMethod$1(this, _PresentationEditor_instances, pointInRegion_fn).call(this, headerRegion, x2, pageLocalY)) {
86361
86486
  return headerRegion;
@@ -86780,8 +86905,9 @@ renderSelectionRects_fn = function(rects) {
86780
86905
  return;
86781
86906
  }
86782
86907
  const pageHeight = __privateMethod$1(this, _PresentationEditor_instances, getBodyPageHeight_fn).call(this);
86908
+ const pageGap = __privateGet$1(this, _layoutState).layout?.pageGap ?? 0;
86783
86909
  rects.forEach((rect, _index) => {
86784
- const pageLocalY = rect.y - rect.pageIndex * pageHeight;
86910
+ const pageLocalY = rect.y - rect.pageIndex * (pageHeight + pageGap);
86785
86911
  const coords = __privateMethod$1(this, _PresentationEditor_instances, convertPageLocalToOverlayCoords_fn).call(this, rect.pageIndex, rect.x, pageLocalY);
86786
86912
  if (!coords) {
86787
86913
  return;
@@ -87039,9 +87165,10 @@ convertPageLocalToOverlayCoords_fn = function(pageIndex, pageLocalX, pageLocalY)
87039
87165
  return null;
87040
87166
  }
87041
87167
  const pageHeight = __privateGet$1(this, _layoutOptions).pageSize?.h ?? DEFAULT_PAGE_SIZE.h;
87168
+ const pageGap = __privateGet$1(this, _layoutState).layout?.pageGap ?? 0;
87042
87169
  return {
87043
87170
  x: pageLocalX,
87044
- y: pageIndex * pageHeight + pageLocalY
87171
+ y: pageIndex * (pageHeight + pageGap) + pageLocalY
87045
87172
  };
87046
87173
  };
87047
87174
  normalizeClientPoint_fn = function(clientX, clientY) {
@@ -90336,7 +90463,7 @@ const cleanupEmptyRunsPlugin = new Plugin({
90336
90463
  return tr.docChanged ? tr : null;
90337
90464
  }
90338
90465
  });
90339
- const mergeRanges$1 = (ranges, docSize) => {
90466
+ const mergeRanges$2 = (ranges, docSize) => {
90340
90467
  if (!ranges.length) return [];
90341
90468
  const sorted = ranges.map(({ from: from2, to }) => ({
90342
90469
  from: Math.max(0, from2),
@@ -90365,7 +90492,7 @@ const collectChangedRanges = (trs, docSize) => {
90365
90492
  });
90366
90493
  });
90367
90494
  });
90368
- return mergeRanges$1(ranges, docSize);
90495
+ return mergeRanges$2(ranges, docSize);
90369
90496
  };
90370
90497
  const mapRangesThroughTransactions = (ranges, transactions, docSize) => {
90371
90498
  let mapped = ranges;
@@ -90377,7 +90504,7 @@ const mapRangesThroughTransactions = (ranges, transactions, docSize) => {
90377
90504
  return { from: mappedFrom, to: mappedTo };
90378
90505
  }).filter(Boolean);
90379
90506
  });
90380
- return mergeRanges$1(mapped, docSize);
90507
+ return mergeRanges$2(mapped, docSize);
90381
90508
  };
90382
90509
  const buildWrapTransaction = (state2, ranges, runType) => {
90383
90510
  if (!ranges.length) return null;
@@ -90436,7 +90563,7 @@ const wrapTextInRunsPlugin = () => {
90436
90563
  if (!runType) return null;
90437
90564
  pendingRanges = mapRangesThroughTransactions(pendingRanges, transactions, docSize);
90438
90565
  const changedRanges = collectChangedRanges(transactions, docSize);
90439
- pendingRanges = mergeRanges$1([...pendingRanges, ...changedRanges], docSize);
90566
+ pendingRanges = mergeRanges$2([...pendingRanges, ...changedRanges], docSize);
90440
90567
  if (view?.composing) {
90441
90568
  return null;
90442
90569
  }
@@ -90446,6 +90573,204 @@ const wrapTextInRunsPlugin = () => {
90446
90573
  }
90447
90574
  });
90448
90575
  };
90576
+ const splitRunsAfterMarkPlugin = new Plugin({
90577
+ appendTransaction(transactions, _old, newState) {
90578
+ const markRanges = [];
90579
+ let mappingToFinal = new Mapping();
90580
+ for (let ti = transactions.length - 1; ti >= 0; ti--) {
90581
+ const tr2 = transactions[ti];
90582
+ tr2.steps.forEach((step) => {
90583
+ if (!(step instanceof AddMarkStep || step instanceof RemoveMarkStep)) return;
90584
+ const fromAfterTr = tr2.mapping.map(step.from, 1);
90585
+ const toAfterTr = tr2.mapping.map(step.to, -1);
90586
+ markRanges.push({
90587
+ from: mappingToFinal.map(fromAfterTr, 1),
90588
+ to: mappingToFinal.map(toAfterTr, -1)
90589
+ });
90590
+ });
90591
+ const composed = new Mapping();
90592
+ composed.appendMapping(tr2.mapping);
90593
+ composed.appendMapping(mappingToFinal);
90594
+ mappingToFinal = composed;
90595
+ }
90596
+ if (!markRanges.length) return null;
90597
+ const runType = newState.schema.nodes["run"];
90598
+ if (!runType) return null;
90599
+ const runPositions = /* @__PURE__ */ new Set();
90600
+ markRanges.forEach(({ from: from2, to }) => {
90601
+ newState.doc.nodesBetween(from2, to, (node, pos) => {
90602
+ if (node.type === runType) runPositions.add(pos);
90603
+ });
90604
+ });
90605
+ if (!runPositions.size) return null;
90606
+ const tr = newState.tr;
90607
+ const originalSelection = newState.selection;
90608
+ const isTextSelection2 = originalSelection instanceof TextSelection$1;
90609
+ let preservedAnchor = isTextSelection2 ? originalSelection.anchor : null;
90610
+ let preservedHead = isTextSelection2 ? originalSelection.head : null;
90611
+ const anchorAssoc = preservedAnchor != null && preservedHead != null && preservedAnchor <= preservedHead ? -1 : 1;
90612
+ const headAssoc = preservedAnchor != null && preservedHead != null && preservedHead >= preservedAnchor ? 1 : -1;
90613
+ const mapOffsetThroughReplacement = (startPos, replacement, offset2) => {
90614
+ let currentPos = startPos;
90615
+ let remaining = offset2;
90616
+ let mapped = null;
90617
+ replacement.forEach((node) => {
90618
+ if (mapped != null) return;
90619
+ const contentSize = node.content.size;
90620
+ if (remaining <= contentSize) {
90621
+ mapped = currentPos + 1 + remaining;
90622
+ return;
90623
+ }
90624
+ remaining -= contentSize;
90625
+ currentPos += node.nodeSize;
90626
+ });
90627
+ return mapped ?? currentPos;
90628
+ };
90629
+ Array.from(runPositions).sort((a, b2) => b2 - a).forEach((pos) => {
90630
+ const mappedPos = tr.mapping.map(pos);
90631
+ const runNode = tr.doc.nodeAt(mappedPos);
90632
+ if (!runNode) return;
90633
+ const groups = [];
90634
+ let current = [];
90635
+ let currentMarks = null;
90636
+ runNode.forEach((child) => {
90637
+ if (child.isText) {
90638
+ if (currentMarks && Mark$1.sameSet(currentMarks, child.marks)) {
90639
+ current.push(child);
90640
+ } else {
90641
+ if (current.length) groups.push(Fragment.from(current));
90642
+ current = [child];
90643
+ currentMarks = child.marks;
90644
+ }
90645
+ } else {
90646
+ if (current.length) groups.push(Fragment.from(current));
90647
+ groups.push(Fragment.from(child));
90648
+ current = [];
90649
+ currentMarks = null;
90650
+ }
90651
+ });
90652
+ if (current.length) groups.push(Fragment.from(current));
90653
+ if (groups.length <= 1) return;
90654
+ const replacement = Fragment.from(
90655
+ groups.map((content) => runType.create(runNode.attrs, content, runNode.marks))
90656
+ );
90657
+ tr.replaceWith(mappedPos, mappedPos + runNode.nodeSize, replacement);
90658
+ const stepMap = tr.mapping.maps[tr.mapping.maps.length - 1];
90659
+ const mapSelectionPos = (pos2, assoc) => {
90660
+ if (pos2 == null) return null;
90661
+ if (pos2 < mappedPos || pos2 > mappedPos + runNode.nodeSize) {
90662
+ return stepMap.map(pos2, assoc);
90663
+ }
90664
+ const offsetInRun = pos2 - (mappedPos + 1);
90665
+ return mapOffsetThroughReplacement(mappedPos, replacement, offsetInRun);
90666
+ };
90667
+ preservedAnchor = mapSelectionPos(preservedAnchor, anchorAssoc);
90668
+ preservedHead = mapSelectionPos(preservedHead, headAssoc);
90669
+ });
90670
+ if (tr.docChanged && originalSelection) {
90671
+ if (originalSelection instanceof TextSelection$1 && preservedAnchor != null && preservedHead != null) {
90672
+ tr.setSelection(TextSelection$1.create(tr.doc, preservedAnchor, preservedHead));
90673
+ } else {
90674
+ tr.setSelection(originalSelection.map(tr.doc, tr.mapping));
90675
+ }
90676
+ }
90677
+ return tr.docChanged ? tr : null;
90678
+ }
90679
+ });
90680
+ const calculateInlineRunPropertiesPlugin = (editor) => new Plugin({
90681
+ appendTransaction(transactions, _oldState, newState) {
90682
+ const tr = newState.tr;
90683
+ if (!transactions.some((t) => t.docChanged)) return null;
90684
+ if (!transactions.some(
90685
+ (tr2) => tr2.steps.some((step) => step instanceof AddMarkStep || step instanceof RemoveMarkStep)
90686
+ )) {
90687
+ return null;
90688
+ }
90689
+ const runType = newState.schema.nodes.run;
90690
+ if (!runType) return null;
90691
+ const changedRanges = [];
90692
+ transactions.forEach((tr2) => {
90693
+ tr2.steps.forEach((step) => {
90694
+ const from2 = tr2.mapping.map(step.from, 1);
90695
+ const to = tr2.mapping.map(step.to, -1);
90696
+ changedRanges.push({ from: from2, to });
90697
+ });
90698
+ });
90699
+ const runPositions = /* @__PURE__ */ new Set();
90700
+ mergeRanges$1(changedRanges, newState.doc.content.size).forEach(({ from: from2, to }) => {
90701
+ newState.doc.nodesBetween(from2, to, (node, pos) => {
90702
+ if (node.type === runType) runPositions.add(pos);
90703
+ });
90704
+ });
90705
+ if (!runPositions.size) return null;
90706
+ runPositions.forEach((pos) => {
90707
+ const runNode = tr.doc.nodeAt(pos);
90708
+ if (!runNode) return;
90709
+ const $pos = tr.doc.resolve(pos);
90710
+ let paragraphNode = null;
90711
+ for (let depth = $pos.depth; depth >= 0; depth--) {
90712
+ const node = $pos.node(depth);
90713
+ if (node.type.name === "paragraph") {
90714
+ paragraphNode = node;
90715
+ break;
90716
+ }
90717
+ }
90718
+ if (!paragraphNode) return;
90719
+ const marks = getMarksFromRun(runNode);
90720
+ const runPropertiesFromMarks = decodeRPrFromMarks(marks);
90721
+ const paragraphProperties = getResolvedParagraphProperties(paragraphNode) || calculateResolvedParagraphProperties(editor, paragraphNode, $pos);
90722
+ const runPropertiesFromStyles = resolveRunProperties(
90723
+ { docx: editor.converter?.convertedXml ?? {}, numbering: editor.converter?.numbering ?? {} },
90724
+ {},
90725
+ paragraphProperties,
90726
+ false,
90727
+ Boolean(paragraphNode.attrs.paragraphProperties?.numberingProperties)
90728
+ );
90729
+ const inlineRunProperties = getInlineRunProperties(runPropertiesFromMarks, runPropertiesFromStyles);
90730
+ const runProperties = Object.keys(inlineRunProperties).length ? inlineRunProperties : null;
90731
+ if (JSON.stringify(runProperties) === JSON.stringify(runNode.attrs.runProperties)) return;
90732
+ tr.setNodeMarkup(pos, runNode.type, { ...runNode.attrs, runProperties }, runNode.marks);
90733
+ });
90734
+ return tr.docChanged ? tr : null;
90735
+ }
90736
+ });
90737
+ function getMarksFromRun(runNode) {
90738
+ let marks = [];
90739
+ runNode.forEach((child) => {
90740
+ if (!marks.length && child.isText) {
90741
+ marks = child.marks;
90742
+ }
90743
+ });
90744
+ return marks;
90745
+ }
90746
+ function getInlineRunProperties(runPropertiesFromMarks, runPropertiesFromStyles) {
90747
+ const inlineRunProperties = {};
90748
+ for (const key2 in runPropertiesFromMarks) {
90749
+ const valueFromMarks = runPropertiesFromMarks[key2];
90750
+ const valueFromStyles = runPropertiesFromStyles[key2];
90751
+ if (JSON.stringify(valueFromMarks) !== JSON.stringify(valueFromStyles)) {
90752
+ inlineRunProperties[key2] = valueFromMarks;
90753
+ }
90754
+ }
90755
+ return inlineRunProperties;
90756
+ }
90757
+ function mergeRanges$1(ranges, docSize) {
90758
+ if (!ranges.length) return [];
90759
+ const sorted = ranges.map(({ from: from2, to }) => ({
90760
+ from: Math.max(0, from2),
90761
+ to: Math.min(docSize, to)
90762
+ })).filter(({ from: from2, to }) => from2 < to).sort((a, b2) => a.from - b2.from);
90763
+ const merged = [];
90764
+ for (const range2 of sorted) {
90765
+ const last = merged[merged.length - 1];
90766
+ if (last && range2.from <= last.to) {
90767
+ last.to = Math.max(last.to, range2.to);
90768
+ } else {
90769
+ merged.push({ ...range2 });
90770
+ }
90771
+ }
90772
+ return merged;
90773
+ }
90449
90774
  const Run = OxmlNode.create({
90450
90775
  name: "run",
90451
90776
  oXmlName: "w:r",
@@ -90500,7 +90825,12 @@ const Run = OxmlNode.create({
90500
90825
  return ["span", base2, 0];
90501
90826
  },
90502
90827
  addPmPlugins() {
90503
- return [wrapTextInRunsPlugin(), cleanupEmptyRunsPlugin];
90828
+ return [
90829
+ wrapTextInRunsPlugin(),
90830
+ splitRunsAfterMarkPlugin,
90831
+ calculateInlineRunPropertiesPlugin(this.editor),
90832
+ cleanupEmptyRunsPlugin
90833
+ ];
90504
90834
  }
90505
90835
  });
90506
90836
  const restartNumbering = ({ editor, tr, state: state2, dispatch }) => {
@@ -95327,7 +95657,9 @@ const TableCell = Node$1.create({
95327
95657
  const style2 = sides.map((side) => {
95328
95658
  const border = borders?.[side];
95329
95659
  if (border && border.val === "none") return `border-${side}: ${border.val};`;
95330
- if (border) return `border-${side}: ${Math.ceil(border.size)}px solid ${border.color || "black"};`;
95660
+ let color = border?.color || "black";
95661
+ if (color === "auto") color = "black";
95662
+ if (border) return `border-${side}: ${Math.ceil(border.size)}px solid ${color};`;
95331
95663
  return "";
95332
95664
  }).join(" ");
95333
95665
  return { style: style2 };
@@ -100487,6 +100819,8 @@ const PassthroughInline = Node$1.create({
100487
100819
  name: "passthroughInline",
100488
100820
  group: "inline",
100489
100821
  inline: true,
100822
+ // IMPORTANT: This node is registered in pm-adapter/src/constants.ts ATOMIC_INLINE_TYPES
100823
+ // If you change atom to false, you MUST remove it from that set to avoid positioning bugs
100490
100824
  atom: true,
100491
100825
  draggable: false,
100492
100826
  selectable: false,