superdoc 2.12.1-next.2 → 2.13.0-next.1

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.
@@ -19,7 +19,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
19
19
  var PRIVATE_ENGINE_INFO = (0, _superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
20
20
  var ENGINE_INFO = Object.freeze({
21
21
  ...PRIVATE_ENGINE_INFO,
22
- superdocVersion: "2.12.1-next.2",
22
+ superdocVersion: "2.13.0-next.1",
23
23
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
24
24
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
25
25
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -18,7 +18,7 @@ var COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
18
18
  var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
19
19
  var ENGINE_INFO = Object.freeze({
20
20
  ...PRIVATE_ENGINE_INFO,
21
- superdocVersion: "2.12.1-next.2",
21
+ superdocVersion: "2.13.0-next.1",
22
22
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
23
23
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
24
24
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -77,6 +77,7 @@ type CoupledFootnoteRetainedState = {
77
77
  readonly notePageIndexes: readonly number[];
78
78
  readonly refs: readonly FootnoteReference[];
79
79
  readonly referencePlaneIdentity: FootnotesLayoutInput['refs'];
80
+ readonly noteBlocksPlaneIdentity: FootnotesLayoutInput['blocksById'];
80
81
  readonly referenceTopologyRevision: string | undefined;
81
82
  readonly refIndexesByBlock: ReadonlyMap<string, readonly number[]>;
82
83
  readonly refIndexById: ReadonlyMap<string, number>;
package/dist/style.css CHANGED
@@ -1818,11 +1818,11 @@ img[data-v-c95b2073] {
1818
1818
  pointer-events: auto;
1819
1819
  }
1820
1820
 
1821
- .superdoc[data-v-770204b4] {
1821
+ .superdoc[data-v-0d27f262] {
1822
1822
  display: flex;
1823
1823
  position: relative;
1824
1824
  }
1825
- .sd-visually-hidden[data-v-770204b4] {
1825
+ .sd-visually-hidden[data-v-0d27f262] {
1826
1826
  position: absolute;
1827
1827
  width: 1px;
1828
1828
  height: 1px;
@@ -1833,14 +1833,14 @@ img[data-v-c95b2073] {
1833
1833
  white-space: nowrap;
1834
1834
  border: 0;
1835
1835
  }
1836
- .superdoc__mutation-status[data-v-770204b4] {
1836
+ .superdoc__mutation-status[data-v-0d27f262] {
1837
1837
  position: sticky;
1838
1838
  z-index: 10;
1839
1839
  top: 12px;
1840
1840
  height: 0;
1841
1841
  pointer-events: none;
1842
1842
  }
1843
- .superdoc__edit-rejected-status[data-v-770204b4] {
1843
+ .superdoc__edit-rejected-status[data-v-0d27f262] {
1844
1844
  position: absolute;
1845
1845
  top: 0;
1846
1846
  left: 50%;
@@ -1858,30 +1858,30 @@ img[data-v-c95b2073] {
1858
1858
  line-height: 20px;
1859
1859
  pointer-events: none;
1860
1860
  }
1861
- .right-sidebar[data-v-770204b4] {
1861
+ .right-sidebar[data-v-0d27f262] {
1862
1862
  min-width: 320px;
1863
1863
  height: 100%;
1864
1864
  }
1865
- .floating-comments[data-v-770204b4] {
1865
+ .floating-comments[data-v-0d27f262] {
1866
1866
  min-width: 300px;
1867
1867
  width: 300px;
1868
1868
  height: 100%;
1869
1869
  overflow: visible;
1870
1870
  }
1871
- .superdoc__layers[data-v-770204b4] {
1871
+ .superdoc__layers[data-v-0d27f262] {
1872
1872
  height: 100%;
1873
1873
  position: relative;
1874
1874
  box-sizing: border-box;
1875
1875
  }
1876
- .superdoc__document[data-v-770204b4] {
1876
+ .superdoc__document[data-v-0d27f262] {
1877
1877
  width: 100%;
1878
1878
  position: relative;
1879
1879
  }
1880
- .superdoc__sub-document[data-v-770204b4] {
1880
+ .superdoc__sub-document[data-v-0d27f262] {
1881
1881
  width: 100%;
1882
1882
  position: relative;
1883
1883
  }
1884
- .superdoc__selection-layer[data-v-770204b4] {
1884
+ .superdoc__selection-layer[data-v-0d27f262] {
1885
1885
  position: absolute;
1886
1886
  min-width: 100%;
1887
1887
  min-height: 100%;
@@ -1892,13 +1892,13 @@ img[data-v-c95b2073] {
1892
1892
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1893
1893
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1894
1894
  clickable, and below the selection layer (z-index 10). */
1895
- .superdoc__whiteboard-layer[data-v-770204b4] {
1895
+ .superdoc__whiteboard-layer[data-v-0d27f262] {
1896
1896
  z-index: 4;
1897
1897
  }
1898
- .superdoc__temp-selection[data-v-770204b4] {
1898
+ .superdoc__temp-selection[data-v-0d27f262] {
1899
1899
  position: absolute;
1900
1900
  }
1901
- .superdoc__right-sidebar[data-v-770204b4] {
1901
+ .superdoc__right-sidebar[data-v-0d27f262] {
1902
1902
  width: 320px;
1903
1903
  min-width: 320px;
1904
1904
  padding: 0 10px;
@@ -1906,7 +1906,7 @@ img[data-v-c95b2073] {
1906
1906
  position: relative;
1907
1907
  z-index: 2;
1908
1908
  }
1909
- .superdoc__compact-comment-popover[data-v-770204b4] {
1909
+ .superdoc__compact-comment-popover[data-v-0d27f262] {
1910
1910
  position: absolute;
1911
1911
  top: 12px;
1912
1912
  right: 12px;
@@ -1915,14 +1915,14 @@ img[data-v-c95b2073] {
1915
1915
  }
1916
1916
 
1917
1917
  /* Tools styles */
1918
- .tools[data-v-770204b4] {
1918
+ .tools[data-v-0d27f262] {
1919
1919
  position: absolute;
1920
1920
  z-index: 3;
1921
1921
  display: flex;
1922
1922
  flex-direction: column;
1923
1923
  gap: var(--sd-ui-tools-gap, 6px);
1924
1924
  }
1925
- .tools-item[data-v-770204b4] {
1925
+ .tools-item[data-v-0d27f262] {
1926
1926
  display: flex;
1927
1927
  align-items: center;
1928
1928
  justify-content: center;
@@ -1933,10 +1933,10 @@ img[data-v-c95b2073] {
1933
1933
  cursor: pointer;
1934
1934
  position: relative;
1935
1935
  }
1936
- .tools-item i[data-v-770204b4] {
1936
+ .tools-item i[data-v-0d27f262] {
1937
1937
  cursor: pointer;
1938
1938
  }
1939
- .superdoc__tools-icon[data-v-770204b4] {
1939
+ .superdoc__tools-icon[data-v-0d27f262] {
1940
1940
  width: var(--sd-ui-tools-icon-size, 20px);
1941
1941
  height: var(--sd-ui-tools-icon-size, 20px);
1942
1942
  flex-shrink: 0;
@@ -1951,22 +1951,22 @@ img[data-v-c95b2073] {
1951
1951
 
1952
1952
  /* 834px is iPad screen size in portrait orientation */
1953
1953
  @media (max-width: 834px) {
1954
- .superdoc .superdoc__layers[data-v-770204b4] {
1954
+ .superdoc .superdoc__layers[data-v-0d27f262] {
1955
1955
  margin: 0;
1956
1956
  border: 0 !important;
1957
1957
  box-shadow: none;
1958
1958
  }
1959
- .superdoc__sub-document[data-v-770204b4] {
1959
+ .superdoc__sub-document[data-v-0d27f262] {
1960
1960
  max-width: 100%;
1961
1961
  }
1962
- .superdoc__right-sidebar[data-v-770204b4] {
1962
+ .superdoc__right-sidebar[data-v-0d27f262] {
1963
1963
  padding: 10px;
1964
1964
  position: relative;
1965
1965
  }
1966
1966
  }
1967
1967
 
1968
1968
  /* AI Writer styles */
1969
- .ai-writer-container[data-v-770204b4] {
1969
+ .ai-writer-container[data-v-0d27f262] {
1970
1970
  position: fixed;
1971
1971
  z-index: 1000;
1972
1972
  background: white;
@@ -1982,10 +1982,10 @@ img[data-v-c95b2073] {
1982
1982
  transform: translateY(-50%);
1983
1983
  z-index: 50;
1984
1984
  } */
1985
- .ai-tool > svg[data-v-770204b4] {
1985
+ .ai-tool > svg[data-v-0d27f262] {
1986
1986
  fill: transparent;
1987
1987
  }
1988
- .ai-tool[data-v-770204b4]::before {
1988
+ .ai-tool[data-v-0d27f262]::before {
1989
1989
  content: '';
1990
1990
  position: absolute;
1991
1991
  width: 20px;
@@ -2006,7 +2006,7 @@ img[data-v-c95b2073] {
2006
2006
  filter: brightness(1.2);
2007
2007
  transition: filter 0.2s ease;
2008
2008
  }
2009
- .ai-tool[data-v-770204b4]:hover::before {
2009
+ .ai-tool[data-v-0d27f262]:hover::before {
2010
2010
  filter: brightness(1.3);
2011
2011
  }
2012
2012
 
@@ -1818,11 +1818,11 @@ img[data-v-c95b2073] {
1818
1818
  pointer-events: auto;
1819
1819
  }
1820
1820
 
1821
- .superdoc[data-v-770204b4] {
1821
+ .superdoc[data-v-0d27f262] {
1822
1822
  display: flex;
1823
1823
  position: relative;
1824
1824
  }
1825
- .sd-visually-hidden[data-v-770204b4] {
1825
+ .sd-visually-hidden[data-v-0d27f262] {
1826
1826
  position: absolute;
1827
1827
  width: 1px;
1828
1828
  height: 1px;
@@ -1833,14 +1833,14 @@ img[data-v-c95b2073] {
1833
1833
  white-space: nowrap;
1834
1834
  border: 0;
1835
1835
  }
1836
- .superdoc__mutation-status[data-v-770204b4] {
1836
+ .superdoc__mutation-status[data-v-0d27f262] {
1837
1837
  position: sticky;
1838
1838
  z-index: 10;
1839
1839
  top: 12px;
1840
1840
  height: 0;
1841
1841
  pointer-events: none;
1842
1842
  }
1843
- .superdoc__edit-rejected-status[data-v-770204b4] {
1843
+ .superdoc__edit-rejected-status[data-v-0d27f262] {
1844
1844
  position: absolute;
1845
1845
  top: 0;
1846
1846
  left: 50%;
@@ -1858,30 +1858,30 @@ img[data-v-c95b2073] {
1858
1858
  line-height: 20px;
1859
1859
  pointer-events: none;
1860
1860
  }
1861
- .right-sidebar[data-v-770204b4] {
1861
+ .right-sidebar[data-v-0d27f262] {
1862
1862
  min-width: 320px;
1863
1863
  height: 100%;
1864
1864
  }
1865
- .floating-comments[data-v-770204b4] {
1865
+ .floating-comments[data-v-0d27f262] {
1866
1866
  min-width: 300px;
1867
1867
  width: 300px;
1868
1868
  height: 100%;
1869
1869
  overflow: visible;
1870
1870
  }
1871
- .superdoc__layers[data-v-770204b4] {
1871
+ .superdoc__layers[data-v-0d27f262] {
1872
1872
  height: 100%;
1873
1873
  position: relative;
1874
1874
  box-sizing: border-box;
1875
1875
  }
1876
- .superdoc__document[data-v-770204b4] {
1876
+ .superdoc__document[data-v-0d27f262] {
1877
1877
  width: 100%;
1878
1878
  position: relative;
1879
1879
  }
1880
- .superdoc__sub-document[data-v-770204b4] {
1880
+ .superdoc__sub-document[data-v-0d27f262] {
1881
1881
  width: 100%;
1882
1882
  position: relative;
1883
1883
  }
1884
- .superdoc__selection-layer[data-v-770204b4] {
1884
+ .superdoc__selection-layer[data-v-0d27f262] {
1885
1885
  position: absolute;
1886
1886
  min-width: 100%;
1887
1887
  min-height: 100%;
@@ -1892,13 +1892,13 @@ img[data-v-c95b2073] {
1892
1892
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1893
1893
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1894
1894
  clickable, and below the selection layer (z-index 10). */
1895
- .superdoc__whiteboard-layer[data-v-770204b4] {
1895
+ .superdoc__whiteboard-layer[data-v-0d27f262] {
1896
1896
  z-index: 4;
1897
1897
  }
1898
- .superdoc__temp-selection[data-v-770204b4] {
1898
+ .superdoc__temp-selection[data-v-0d27f262] {
1899
1899
  position: absolute;
1900
1900
  }
1901
- .superdoc__right-sidebar[data-v-770204b4] {
1901
+ .superdoc__right-sidebar[data-v-0d27f262] {
1902
1902
  width: 320px;
1903
1903
  min-width: 320px;
1904
1904
  padding: 0 10px;
@@ -1906,7 +1906,7 @@ img[data-v-c95b2073] {
1906
1906
  position: relative;
1907
1907
  z-index: 2;
1908
1908
  }
1909
- .superdoc__compact-comment-popover[data-v-770204b4] {
1909
+ .superdoc__compact-comment-popover[data-v-0d27f262] {
1910
1910
  position: absolute;
1911
1911
  top: 12px;
1912
1912
  right: 12px;
@@ -1915,14 +1915,14 @@ img[data-v-c95b2073] {
1915
1915
  }
1916
1916
 
1917
1917
  /* Tools styles */
1918
- .tools[data-v-770204b4] {
1918
+ .tools[data-v-0d27f262] {
1919
1919
  position: absolute;
1920
1920
  z-index: 3;
1921
1921
  display: flex;
1922
1922
  flex-direction: column;
1923
1923
  gap: var(--sd-ui-tools-gap, 6px);
1924
1924
  }
1925
- .tools-item[data-v-770204b4] {
1925
+ .tools-item[data-v-0d27f262] {
1926
1926
  display: flex;
1927
1927
  align-items: center;
1928
1928
  justify-content: center;
@@ -1933,10 +1933,10 @@ img[data-v-c95b2073] {
1933
1933
  cursor: pointer;
1934
1934
  position: relative;
1935
1935
  }
1936
- .tools-item i[data-v-770204b4] {
1936
+ .tools-item i[data-v-0d27f262] {
1937
1937
  cursor: pointer;
1938
1938
  }
1939
- .superdoc__tools-icon[data-v-770204b4] {
1939
+ .superdoc__tools-icon[data-v-0d27f262] {
1940
1940
  width: var(--sd-ui-tools-icon-size, 20px);
1941
1941
  height: var(--sd-ui-tools-icon-size, 20px);
1942
1942
  flex-shrink: 0;
@@ -1951,22 +1951,22 @@ img[data-v-c95b2073] {
1951
1951
 
1952
1952
  /* 834px is iPad screen size in portrait orientation */
1953
1953
  @media (max-width: 834px) {
1954
- .superdoc .superdoc__layers[data-v-770204b4] {
1954
+ .superdoc .superdoc__layers[data-v-0d27f262] {
1955
1955
  margin: 0;
1956
1956
  border: 0 !important;
1957
1957
  box-shadow: none;
1958
1958
  }
1959
- .superdoc__sub-document[data-v-770204b4] {
1959
+ .superdoc__sub-document[data-v-0d27f262] {
1960
1960
  max-width: 100%;
1961
1961
  }
1962
- .superdoc__right-sidebar[data-v-770204b4] {
1962
+ .superdoc__right-sidebar[data-v-0d27f262] {
1963
1963
  padding: 10px;
1964
1964
  position: relative;
1965
1965
  }
1966
1966
  }
1967
1967
 
1968
1968
  /* AI Writer styles */
1969
- .ai-writer-container[data-v-770204b4] {
1969
+ .ai-writer-container[data-v-0d27f262] {
1970
1970
  position: fixed;
1971
1971
  z-index: 1000;
1972
1972
  background: white;
@@ -1982,10 +1982,10 @@ img[data-v-c95b2073] {
1982
1982
  transform: translateY(-50%);
1983
1983
  z-index: 50;
1984
1984
  } */
1985
- .ai-tool > svg[data-v-770204b4] {
1985
+ .ai-tool > svg[data-v-0d27f262] {
1986
1986
  fill: transparent;
1987
1987
  }
1988
- .ai-tool[data-v-770204b4]::before {
1988
+ .ai-tool[data-v-0d27f262]::before {
1989
1989
  content: '';
1990
1990
  position: absolute;
1991
1991
  width: 20px;
@@ -2006,7 +2006,7 @@ img[data-v-c95b2073] {
2006
2006
  filter: brightness(1.2);
2007
2007
  transition: filter 0.2s ease;
2008
2008
  }
2009
- .ai-tool[data-v-770204b4]:hover::before {
2009
+ .ai-tool[data-v-0d27f262]:hover::before {
2010
2010
  filter: brightness(1.3);
2011
2011
  }
2012
2012
 
package/dist/superdoc.cjs CHANGED
@@ -316,7 +316,7 @@ var shuffleArray = (array) => {
316
316
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
317
317
  function getSuperdocVersion() {
318
318
  try {
319
- return "2.12.1-next.2";
319
+ return "2.13.0-next.1";
320
320
  } catch {
321
321
  return "unknown";
322
322
  }
@@ -23758,6 +23758,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23758
23758
  return Boolean(editor.pageMetrics && editor.pageLayout);
23759
23759
  };
23760
23760
  const v2RulerHostStyle = (0, vue.ref)({});
23761
+ const v2RulerPageRect = (0, vue.ref)(null);
23761
23762
  let v2RulerEditorObserver = null;
23762
23763
  let v2RulerContainerObserver = null;
23763
23764
  let v2RulerActivePageIndex = 0;
@@ -23788,16 +23789,19 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23788
23789
  const syncV2RulerOffset = () => {
23789
23790
  if (!isV2Mode.value) {
23790
23791
  v2RulerHostStyle.value = {};
23792
+ v2RulerPageRect.value = null;
23791
23793
  return;
23792
23794
  }
23793
23795
  const alignmentContainer = resolveV2RulerAlignmentContainer();
23794
23796
  if (!alignmentContainer) {
23795
23797
  v2RulerHostStyle.value = {};
23798
+ v2RulerPageRect.value = null;
23796
23799
  return;
23797
23800
  }
23798
23801
  const pageRect = getV2ActivePageRect();
23799
23802
  if (!pageRect) {
23800
23803
  v2RulerHostStyle.value = {};
23804
+ v2RulerPageRect.value = null;
23801
23805
  return;
23802
23806
  }
23803
23807
  const containerRect = alignmentContainer.getBoundingClientRect();
@@ -23807,6 +23811,12 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23807
23811
  paddingLeft: `${paddingLeft}px`,
23808
23812
  paddingRight: `${paddingRight}px`
23809
23813
  };
23814
+ v2RulerPageRect.value = {
23815
+ left: pageRect.left,
23816
+ top: pageRect.top,
23817
+ width: pageRect.width,
23818
+ height: pageRect.height
23819
+ };
23810
23820
  };
23811
23821
  const cleanupV2RulerContextSubscription = () => {
23812
23822
  const unsubscribe = unsubscribeV2RulerContext;
@@ -23853,6 +23863,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23853
23863
  });
23854
23864
  };
23855
23865
  const cleanupV2RulerObservers = () => {
23866
+ if (typeof window !== "undefined") window.removeEventListener("scroll", syncV2RulerOffset, true);
23856
23867
  try {
23857
23868
  v2RulerEditorObserver?.disconnect();
23858
23869
  } catch {}
@@ -23864,6 +23875,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23864
23875
  };
23865
23876
  const setupV2RulerObservers = () => {
23866
23877
  cleanupV2RulerObservers();
23878
+ if (typeof window !== "undefined") window.addEventListener("scroll", syncV2RulerOffset, true);
23867
23879
  if (typeof ResizeObserver === "undefined") return;
23868
23880
  const layersEl = layers.value;
23869
23881
  const alignmentContainer = resolveV2RulerAlignmentContainer();
@@ -24043,10 +24055,12 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24043
24055
  }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
24044
24056
  "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
24045
24057
  "measurement-unit": (0, vue.unref)(measurementUnit),
24058
+ "active-page-rect": v2RulerPageRect.value,
24046
24059
  onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
24047
24060
  }, null, 8, [
24048
24061
  "page-layout",
24049
24062
  "measurement-unit",
24063
+ "active-page-rect",
24050
24064
  "onPageMarginsChange"
24051
24065
  ])], 4)], 8, ["to"])) : ((0, vue.openBlock)(), (0, vue.createElementBlock)("div", {
24052
24066
  key: 1,
@@ -24055,10 +24069,12 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24055
24069
  }, [(0, vue.createVNode)((0, vue.unref)(V2Ruler), {
24056
24070
  "page-layout": (0, vue.unref)(proxy).$superdoc.activeEditor.pageLayout,
24057
24071
  "measurement-unit": (0, vue.unref)(measurementUnit),
24072
+ "active-page-rect": v2RulerPageRect.value,
24058
24073
  onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
24059
24074
  }, null, 8, [
24060
24075
  "page-layout",
24061
24076
  "measurement-unit",
24077
+ "active-page-rect",
24062
24078
  "onPageMarginsChange"
24063
24079
  ])], 4))], 64)) : (0, vue.createCommentVNode)("", true),
24064
24080
  doc.type === (0, vue.unref)("application/vnd.openxmlformats-officedocument.wordprocessingml.document") ? ((0, vue.openBlock)(), (0, vue.createBlock)((0, vue.unref)(V2DocumentEditor), {
@@ -24144,7 +24160,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24144
24160
  ], 38);
24145
24161
  };
24146
24162
  }
24147
- }, [["__scopeId", "data-v-770204b4"]]);
24163
+ }, [["__scopeId", "data-v-0d27f262"]]);
24148
24164
  //#endregion
24149
24165
  //#region src/core/create-app.js
24150
24166
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -45340,7 +45356,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
45340
45356
  this.config.colors = shuffleArray(this.config.colors);
45341
45357
  this.userColorMap = /* @__PURE__ */ new Map();
45342
45358
  this.colorIndex = 0;
45343
- this.version = "2.12.1-next.2";
45359
+ this.version = "2.13.0-next.1";
45344
45360
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
45345
45361
  this.superdocId = config.superdocId || require_uuid.v4();
45346
45362
  this.colors = this.config.colors ?? [];
@@ -315,7 +315,7 @@ var shuffleArray = (array) => {
315
315
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
316
316
  function getSuperdocVersion() {
317
317
  try {
318
- return "2.12.1-next.2";
318
+ return "2.13.0-next.1";
319
319
  } catch {
320
320
  return "unknown";
321
321
  }
@@ -23718,6 +23718,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23718
23718
  return Boolean(editor.pageMetrics && editor.pageLayout);
23719
23719
  };
23720
23720
  const v2RulerHostStyle = ref({});
23721
+ const v2RulerPageRect = ref(null);
23721
23722
  let v2RulerEditorObserver = null;
23722
23723
  let v2RulerContainerObserver = null;
23723
23724
  let v2RulerActivePageIndex = 0;
@@ -23748,16 +23749,19 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23748
23749
  const syncV2RulerOffset = () => {
23749
23750
  if (!isV2Mode.value) {
23750
23751
  v2RulerHostStyle.value = {};
23752
+ v2RulerPageRect.value = null;
23751
23753
  return;
23752
23754
  }
23753
23755
  const alignmentContainer = resolveV2RulerAlignmentContainer();
23754
23756
  if (!alignmentContainer) {
23755
23757
  v2RulerHostStyle.value = {};
23758
+ v2RulerPageRect.value = null;
23756
23759
  return;
23757
23760
  }
23758
23761
  const pageRect = getV2ActivePageRect();
23759
23762
  if (!pageRect) {
23760
23763
  v2RulerHostStyle.value = {};
23764
+ v2RulerPageRect.value = null;
23761
23765
  return;
23762
23766
  }
23763
23767
  const containerRect = alignmentContainer.getBoundingClientRect();
@@ -23767,6 +23771,12 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23767
23771
  paddingLeft: `${paddingLeft}px`,
23768
23772
  paddingRight: `${paddingRight}px`
23769
23773
  };
23774
+ v2RulerPageRect.value = {
23775
+ left: pageRect.left,
23776
+ top: pageRect.top,
23777
+ width: pageRect.width,
23778
+ height: pageRect.height
23779
+ };
23770
23780
  };
23771
23781
  const cleanupV2RulerContextSubscription = () => {
23772
23782
  const unsubscribe = unsubscribeV2RulerContext;
@@ -23813,6 +23823,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23813
23823
  });
23814
23824
  };
23815
23825
  const cleanupV2RulerObservers = () => {
23826
+ if (typeof window !== "undefined") window.removeEventListener("scroll", syncV2RulerOffset, true);
23816
23827
  try {
23817
23828
  v2RulerEditorObserver?.disconnect();
23818
23829
  } catch {}
@@ -23824,6 +23835,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23824
23835
  };
23825
23836
  const setupV2RulerObservers = () => {
23826
23837
  cleanupV2RulerObservers();
23838
+ if (typeof window !== "undefined") window.addEventListener("scroll", syncV2RulerOffset, true);
23827
23839
  if (typeof ResizeObserver === "undefined") return;
23828
23840
  const layersEl = layers.value;
23829
23841
  const alignmentContainer = resolveV2RulerAlignmentContainer();
@@ -24003,10 +24015,12 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
24003
24015
  }, [createVNode(unref(V2Ruler), {
24004
24016
  "page-layout": unref(proxy).$superdoc.activeEditor.pageLayout,
24005
24017
  "measurement-unit": unref(measurementUnit),
24018
+ "active-page-rect": v2RulerPageRect.value,
24006
24019
  onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
24007
24020
  }, null, 8, [
24008
24021
  "page-layout",
24009
24022
  "measurement-unit",
24023
+ "active-page-rect",
24010
24024
  "onPageMarginsChange"
24011
24025
  ])], 4)], 8, ["to"])) : (openBlock(), createElementBlock("div", {
24012
24026
  key: 1,
@@ -24015,10 +24029,12 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
24015
24029
  }, [createVNode(unref(V2Ruler), {
24016
24030
  "page-layout": unref(proxy).$superdoc.activeEditor.pageLayout,
24017
24031
  "measurement-unit": unref(measurementUnit),
24032
+ "active-page-rect": v2RulerPageRect.value,
24018
24033
  onPageMarginsChange: (event) => handleV2PageMarginsChange(doc, event)
24019
24034
  }, null, 8, [
24020
24035
  "page-layout",
24021
24036
  "measurement-unit",
24037
+ "active-page-rect",
24022
24038
  "onPageMarginsChange"
24023
24039
  ])], 4))], 64)) : createCommentVNode("", true),
24024
24040
  doc.type === unref("application/vnd.openxmlformats-officedocument.wordprocessingml.document") ? (openBlock(), createBlock(unref(V2DocumentEditor), {
@@ -24104,7 +24120,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
24104
24120
  ], 38);
24105
24121
  };
24106
24122
  }
24107
- }, [["__scopeId", "data-v-770204b4"]]);
24123
+ }, [["__scopeId", "data-v-0d27f262"]]);
24108
24124
  //#endregion
24109
24125
  //#region src/core/create-app.js
24110
24126
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -45271,7 +45287,7 @@ var SuperDoc = class extends import_eventemitter3.default {
45271
45287
  this.config.colors = shuffleArray(this.config.colors);
45272
45288
  this.userColorMap = /* @__PURE__ */ new Map();
45273
45289
  this.colorIndex = 0;
45274
- this.version = "2.12.1-next.2";
45290
+ this.version = "2.13.0-next.1";
45275
45291
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
45276
45292
  this.superdocId = config.superdocId || v4();
45277
45293
  this.colors = this.config.colors ?? [];