superdoc 2.4.0-next.28 → 2.4.0-next.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { i as __toESM, t as __commonJSMin } from "./rolldown-runtime-0pSA04fp.es.js";
1
+ import { i as __toESM, t as __commonJSMin } from "./rolldown-runtime-B5TtN50X.es.js";
2
2
  //#endregion
3
3
  //#region ../../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.mjs
4
4
  var import_eventemitter3 = /* @__PURE__ */ __toESM((/* @__PURE__ */ __commonJSMin(((exports, module) => {
@@ -1,4 +1,4 @@
1
- const require_rolldown_runtime = require("./rolldown-runtime-74VwNCz7.cjs");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-DtsSbkrh.cjs");
2
2
  //#region ../../node_modules/.pnpm/eventemitter3@5.0.4/node_modules/eventemitter3/index.js
3
3
  var require_eventemitter3 = /* @__PURE__ */ require_rolldown_runtime.__commonJSMin(((exports, module) => {
4
4
  var has = Object.prototype.hasOwnProperty;
@@ -1,4 +1,4 @@
1
- const require_rolldown_runtime = require("./rolldown-runtime-74VwNCz7.cjs");
1
+ const require_rolldown_runtime = require("./rolldown-runtime-DtsSbkrh.cjs");
2
2
  //#region ../../node_modules/.pnpm/vite-plugin-node-polyfills@0.28.0_rollup@4.60.2_vite@7.3.1_@types+node@25.6.0_jiti@2.7._79de22fafa9a94a397e22a8c8322f563/node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js
3
3
  function getLens(b64) {
4
4
  var len = b64.length;
@@ -1,4 +1,4 @@
1
- import { n as __esmMin, r as __require, t as __commonJSMin } from "./rolldown-runtime-0pSA04fp.es.js";
1
+ import { n as __esmMin, r as __require, t as __commonJSMin } from "./rolldown-runtime-B5TtN50X.es.js";
2
2
  //#region ../../node_modules/.pnpm/vite-plugin-node-polyfills@0.28.0_rollup@4.60.2_vite@7.3.1_@types+node@25.6.0_jiti@2.7._79de22fafa9a94a397e22a8c8322f563/node_modules/vite-plugin-node-polyfills/shims/buffer/dist/index.js
3
3
  function getLens(b64) {
4
4
  var len = b64.length;
@@ -24,7 +24,7 @@ var __copyProps = (to, from, except, desc) => {
24
24
  }
25
25
  return to;
26
26
  };
27
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
28
28
  value: mod,
29
29
  enumerable: true
30
30
  }) : target, mod));
@@ -24,7 +24,7 @@ var __copyProps = (to, from, except, desc) => {
24
24
  }
25
25
  return to;
26
26
  };
27
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
27
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule || !__hasOwnProp.call(mod, "default") ? __defProp(target, "default", {
28
28
  value: mod,
29
29
  enumerable: true
30
30
  }) : target, mod));
@@ -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.4.0-next.28",
22
+ superdocVersion: "2.4.0-next.29",
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.4.0-next.28",
21
+ superdocVersion: "2.4.0-next.29",
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
package/dist/style.css CHANGED
@@ -1770,11 +1770,11 @@ img[data-v-c95b2073] {
1770
1770
  pointer-events: auto;
1771
1771
  }
1772
1772
 
1773
- .superdoc[data-v-7770edae] {
1773
+ .superdoc[data-v-d39f5239] {
1774
1774
  display: flex;
1775
1775
  position: relative;
1776
1776
  }
1777
- .sd-visually-hidden[data-v-7770edae] {
1777
+ .sd-visually-hidden[data-v-d39f5239] {
1778
1778
  position: absolute;
1779
1779
  width: 1px;
1780
1780
  height: 1px;
@@ -1785,30 +1785,30 @@ img[data-v-c95b2073] {
1785
1785
  white-space: nowrap;
1786
1786
  border: 0;
1787
1787
  }
1788
- .right-sidebar[data-v-7770edae] {
1788
+ .right-sidebar[data-v-d39f5239] {
1789
1789
  min-width: 320px;
1790
1790
  height: 100%;
1791
1791
  }
1792
- .floating-comments[data-v-7770edae] {
1792
+ .floating-comments[data-v-d39f5239] {
1793
1793
  min-width: 300px;
1794
1794
  width: 300px;
1795
1795
  height: 100%;
1796
1796
  overflow: visible;
1797
1797
  }
1798
- .superdoc__layers[data-v-7770edae] {
1798
+ .superdoc__layers[data-v-d39f5239] {
1799
1799
  height: 100%;
1800
1800
  position: relative;
1801
1801
  box-sizing: border-box;
1802
1802
  }
1803
- .superdoc__document[data-v-7770edae] {
1803
+ .superdoc__document[data-v-d39f5239] {
1804
1804
  width: 100%;
1805
1805
  position: relative;
1806
1806
  }
1807
- .superdoc__sub-document[data-v-7770edae] {
1807
+ .superdoc__sub-document[data-v-d39f5239] {
1808
1808
  width: 100%;
1809
1809
  position: relative;
1810
1810
  }
1811
- .superdoc__selection-layer[data-v-7770edae] {
1811
+ .superdoc__selection-layer[data-v-d39f5239] {
1812
1812
  position: absolute;
1813
1813
  min-width: 100%;
1814
1814
  min-height: 100%;
@@ -1819,13 +1819,13 @@ img[data-v-c95b2073] {
1819
1819
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1820
1820
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1821
1821
  clickable, and below the selection layer (z-index 10). */
1822
- .superdoc__whiteboard-layer[data-v-7770edae] {
1822
+ .superdoc__whiteboard-layer[data-v-d39f5239] {
1823
1823
  z-index: 4;
1824
1824
  }
1825
- .superdoc__temp-selection[data-v-7770edae] {
1825
+ .superdoc__temp-selection[data-v-d39f5239] {
1826
1826
  position: absolute;
1827
1827
  }
1828
- .superdoc__right-sidebar[data-v-7770edae] {
1828
+ .superdoc__right-sidebar[data-v-d39f5239] {
1829
1829
  width: 320px;
1830
1830
  min-width: 320px;
1831
1831
  padding: 0 10px;
@@ -1833,7 +1833,7 @@ img[data-v-c95b2073] {
1833
1833
  position: relative;
1834
1834
  z-index: 2;
1835
1835
  }
1836
- .superdoc__compact-comment-popover[data-v-7770edae] {
1836
+ .superdoc__compact-comment-popover[data-v-d39f5239] {
1837
1837
  position: absolute;
1838
1838
  top: 12px;
1839
1839
  right: 12px;
@@ -1842,14 +1842,14 @@ img[data-v-c95b2073] {
1842
1842
  }
1843
1843
 
1844
1844
  /* Tools styles */
1845
- .tools[data-v-7770edae] {
1845
+ .tools[data-v-d39f5239] {
1846
1846
  position: absolute;
1847
1847
  z-index: 3;
1848
1848
  display: flex;
1849
1849
  flex-direction: column;
1850
1850
  gap: var(--sd-ui-tools-gap, 6px);
1851
1851
  }
1852
- .tools-item[data-v-7770edae] {
1852
+ .tools-item[data-v-d39f5239] {
1853
1853
  display: flex;
1854
1854
  align-items: center;
1855
1855
  justify-content: center;
@@ -1860,10 +1860,10 @@ img[data-v-c95b2073] {
1860
1860
  cursor: pointer;
1861
1861
  position: relative;
1862
1862
  }
1863
- .tools-item i[data-v-7770edae] {
1863
+ .tools-item i[data-v-d39f5239] {
1864
1864
  cursor: pointer;
1865
1865
  }
1866
- .superdoc__tools-icon[data-v-7770edae] {
1866
+ .superdoc__tools-icon[data-v-d39f5239] {
1867
1867
  width: var(--sd-ui-tools-icon-size, 20px);
1868
1868
  height: var(--sd-ui-tools-icon-size, 20px);
1869
1869
  flex-shrink: 0;
@@ -1878,22 +1878,22 @@ img[data-v-c95b2073] {
1878
1878
 
1879
1879
  /* 834px is iPad screen size in portrait orientation */
1880
1880
  @media (max-width: 834px) {
1881
- .superdoc .superdoc__layers[data-v-7770edae] {
1881
+ .superdoc .superdoc__layers[data-v-d39f5239] {
1882
1882
  margin: 0;
1883
1883
  border: 0 !important;
1884
1884
  box-shadow: none;
1885
1885
  }
1886
- .superdoc__sub-document[data-v-7770edae] {
1886
+ .superdoc__sub-document[data-v-d39f5239] {
1887
1887
  max-width: 100%;
1888
1888
  }
1889
- .superdoc__right-sidebar[data-v-7770edae] {
1889
+ .superdoc__right-sidebar[data-v-d39f5239] {
1890
1890
  padding: 10px;
1891
1891
  position: relative;
1892
1892
  }
1893
1893
  }
1894
1894
 
1895
1895
  /* AI Writer styles */
1896
- .ai-writer-container[data-v-7770edae] {
1896
+ .ai-writer-container[data-v-d39f5239] {
1897
1897
  position: fixed;
1898
1898
  z-index: 1000;
1899
1899
  background: white;
@@ -1909,10 +1909,10 @@ img[data-v-c95b2073] {
1909
1909
  transform: translateY(-50%);
1910
1910
  z-index: 50;
1911
1911
  } */
1912
- .ai-tool > svg[data-v-7770edae] {
1912
+ .ai-tool > svg[data-v-d39f5239] {
1913
1913
  fill: transparent;
1914
1914
  }
1915
- .ai-tool[data-v-7770edae]::before {
1915
+ .ai-tool[data-v-d39f5239]::before {
1916
1916
  content: '';
1917
1917
  position: absolute;
1918
1918
  width: 20px;
@@ -1933,7 +1933,7 @@ img[data-v-c95b2073] {
1933
1933
  filter: brightness(1.2);
1934
1934
  transition: filter 0.2s ease;
1935
1935
  }
1936
- .ai-tool[data-v-7770edae]:hover::before {
1936
+ .ai-tool[data-v-d39f5239]:hover::before {
1937
1937
  filter: brightness(1.3);
1938
1938
  }
1939
1939
 
@@ -1770,11 +1770,11 @@ img[data-v-c95b2073] {
1770
1770
  pointer-events: auto;
1771
1771
  }
1772
1772
 
1773
- .superdoc[data-v-7770edae] {
1773
+ .superdoc[data-v-d39f5239] {
1774
1774
  display: flex;
1775
1775
  position: relative;
1776
1776
  }
1777
- .sd-visually-hidden[data-v-7770edae] {
1777
+ .sd-visually-hidden[data-v-d39f5239] {
1778
1778
  position: absolute;
1779
1779
  width: 1px;
1780
1780
  height: 1px;
@@ -1785,30 +1785,30 @@ img[data-v-c95b2073] {
1785
1785
  white-space: nowrap;
1786
1786
  border: 0;
1787
1787
  }
1788
- .right-sidebar[data-v-7770edae] {
1788
+ .right-sidebar[data-v-d39f5239] {
1789
1789
  min-width: 320px;
1790
1790
  height: 100%;
1791
1791
  }
1792
- .floating-comments[data-v-7770edae] {
1792
+ .floating-comments[data-v-d39f5239] {
1793
1793
  min-width: 300px;
1794
1794
  width: 300px;
1795
1795
  height: 100%;
1796
1796
  overflow: visible;
1797
1797
  }
1798
- .superdoc__layers[data-v-7770edae] {
1798
+ .superdoc__layers[data-v-d39f5239] {
1799
1799
  height: 100%;
1800
1800
  position: relative;
1801
1801
  box-sizing: border-box;
1802
1802
  }
1803
- .superdoc__document[data-v-7770edae] {
1803
+ .superdoc__document[data-v-d39f5239] {
1804
1804
  width: 100%;
1805
1805
  position: relative;
1806
1806
  }
1807
- .superdoc__sub-document[data-v-7770edae] {
1807
+ .superdoc__sub-document[data-v-d39f5239] {
1808
1808
  width: 100%;
1809
1809
  position: relative;
1810
1810
  }
1811
- .superdoc__selection-layer[data-v-7770edae] {
1811
+ .superdoc__selection-layer[data-v-d39f5239] {
1812
1812
  position: absolute;
1813
1813
  min-width: 100%;
1814
1814
  min-height: 100%;
@@ -1819,13 +1819,13 @@ img[data-v-c95b2073] {
1819
1819
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1820
1820
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1821
1821
  clickable, and below the selection layer (z-index 10). */
1822
- .superdoc__whiteboard-layer[data-v-7770edae] {
1822
+ .superdoc__whiteboard-layer[data-v-d39f5239] {
1823
1823
  z-index: 4;
1824
1824
  }
1825
- .superdoc__temp-selection[data-v-7770edae] {
1825
+ .superdoc__temp-selection[data-v-d39f5239] {
1826
1826
  position: absolute;
1827
1827
  }
1828
- .superdoc__right-sidebar[data-v-7770edae] {
1828
+ .superdoc__right-sidebar[data-v-d39f5239] {
1829
1829
  width: 320px;
1830
1830
  min-width: 320px;
1831
1831
  padding: 0 10px;
@@ -1833,7 +1833,7 @@ img[data-v-c95b2073] {
1833
1833
  position: relative;
1834
1834
  z-index: 2;
1835
1835
  }
1836
- .superdoc__compact-comment-popover[data-v-7770edae] {
1836
+ .superdoc__compact-comment-popover[data-v-d39f5239] {
1837
1837
  position: absolute;
1838
1838
  top: 12px;
1839
1839
  right: 12px;
@@ -1842,14 +1842,14 @@ img[data-v-c95b2073] {
1842
1842
  }
1843
1843
 
1844
1844
  /* Tools styles */
1845
- .tools[data-v-7770edae] {
1845
+ .tools[data-v-d39f5239] {
1846
1846
  position: absolute;
1847
1847
  z-index: 3;
1848
1848
  display: flex;
1849
1849
  flex-direction: column;
1850
1850
  gap: var(--sd-ui-tools-gap, 6px);
1851
1851
  }
1852
- .tools-item[data-v-7770edae] {
1852
+ .tools-item[data-v-d39f5239] {
1853
1853
  display: flex;
1854
1854
  align-items: center;
1855
1855
  justify-content: center;
@@ -1860,10 +1860,10 @@ img[data-v-c95b2073] {
1860
1860
  cursor: pointer;
1861
1861
  position: relative;
1862
1862
  }
1863
- .tools-item i[data-v-7770edae] {
1863
+ .tools-item i[data-v-d39f5239] {
1864
1864
  cursor: pointer;
1865
1865
  }
1866
- .superdoc__tools-icon[data-v-7770edae] {
1866
+ .superdoc__tools-icon[data-v-d39f5239] {
1867
1867
  width: var(--sd-ui-tools-icon-size, 20px);
1868
1868
  height: var(--sd-ui-tools-icon-size, 20px);
1869
1869
  flex-shrink: 0;
@@ -1878,22 +1878,22 @@ img[data-v-c95b2073] {
1878
1878
 
1879
1879
  /* 834px is iPad screen size in portrait orientation */
1880
1880
  @media (max-width: 834px) {
1881
- .superdoc .superdoc__layers[data-v-7770edae] {
1881
+ .superdoc .superdoc__layers[data-v-d39f5239] {
1882
1882
  margin: 0;
1883
1883
  border: 0 !important;
1884
1884
  box-shadow: none;
1885
1885
  }
1886
- .superdoc__sub-document[data-v-7770edae] {
1886
+ .superdoc__sub-document[data-v-d39f5239] {
1887
1887
  max-width: 100%;
1888
1888
  }
1889
- .superdoc__right-sidebar[data-v-7770edae] {
1889
+ .superdoc__right-sidebar[data-v-d39f5239] {
1890
1890
  padding: 10px;
1891
1891
  position: relative;
1892
1892
  }
1893
1893
  }
1894
1894
 
1895
1895
  /* AI Writer styles */
1896
- .ai-writer-container[data-v-7770edae] {
1896
+ .ai-writer-container[data-v-d39f5239] {
1897
1897
  position: fixed;
1898
1898
  z-index: 1000;
1899
1899
  background: white;
@@ -1909,10 +1909,10 @@ img[data-v-c95b2073] {
1909
1909
  transform: translateY(-50%);
1910
1910
  z-index: 50;
1911
1911
  } */
1912
- .ai-tool > svg[data-v-7770edae] {
1912
+ .ai-tool > svg[data-v-d39f5239] {
1913
1913
  fill: transparent;
1914
1914
  }
1915
- .ai-tool[data-v-7770edae]::before {
1915
+ .ai-tool[data-v-d39f5239]::before {
1916
1916
  content: '';
1917
1917
  position: absolute;
1918
1918
  width: 20px;
@@ -1933,7 +1933,7 @@ img[data-v-c95b2073] {
1933
1933
  filter: brightness(1.2);
1934
1934
  transition: filter 0.2s ease;
1935
1935
  }
1936
- .ai-tool[data-v-7770edae]:hover::before {
1936
+ .ai-tool[data-v-d39f5239]:hover::before {
1937
1937
  filter: brightness(1.3);
1938
1938
  }
1939
1939
 
@@ -3580,6 +3580,17 @@ export interface Config {
3580
3580
  * Omitted entries keep SuperDoc's bundled worker URLs.
3581
3581
  */
3582
3582
  workerUrls?: V2WorkerUrlsConfig;
3583
+ /**
3584
+ * Budget for the document worker to start up, in milliseconds
3585
+ * (default: 30000). Measured from worker spawn, so it covers script
3586
+ * download, parsing, evaluation, and the worker's first response to
3587
+ * SuperDoc. Raise it when a large worker chunk is served
3588
+ * over a slow connection or a cold dev-server cache; lower it to fail faster.
3589
+ * Worker load errors are reported immediately and do not wait for this
3590
+ * budget. Must be a finite positive number no greater than 2147483647, the
3591
+ * platform timer ceiling above which a delay would fire immediately.
3592
+ */
3593
+ workerStartupTimeoutMs?: number;
3583
3594
  /**
3584
3595
  * Opt-in toggle for the layout engine. Auto-disabled when web layout is
3585
3596
  * requested without `layoutEngineOptions.flowMode === 'semantic'`; the
package/dist/superdoc.cjs CHANGED
@@ -1,9 +1,9 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_rolldown_runtime = require("./chunks/rolldown-runtime-74VwNCz7.cjs");
2
+ const require_rolldown_runtime = require("./chunks/rolldown-runtime-DtsSbkrh.cjs");
3
3
  const require_blank_docx = require("./chunks/blank-docx-BuFAbRjs.cjs");
4
- const require_eventemitter3 = require("./chunks/eventemitter3-C_TAnXOl.cjs");
4
+ const require_eventemitter3 = require("./chunks/eventemitter3-D38u8ta_.cjs");
5
5
  const require_uuid = require("./chunks/uuid-BhG0ngwk.cjs");
6
- const require_jszip = require("./chunks/jszip-D8mAFF-r.cjs");
6
+ const require_jszip = require("./chunks/jszip-RC64TPzL.cjs");
7
7
  const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-CqGmoMMA.cjs");
8
8
  const require__plugin_vue_export_helper = require("./chunks/_plugin-vue_export-helper-SDR04tiH.cjs");
9
9
  const require_constants = require("./chunks/constants-DpXuDx_g.cjs");
@@ -3752,9 +3752,7 @@ var getDeep = (object, path) => {
3752
3752
  case "key":
3753
3753
  object = keyOfRow;
3754
3754
  break;
3755
- case "value":
3756
- object = object.get(keyOfRow);
3757
- break;
3755
+ case "value": object = object.get(keyOfRow);
3758
3756
  }
3759
3757
  } else object = object[key];
3760
3758
  }
@@ -3782,9 +3780,7 @@ var setDeep = (object, path, mapper) => {
3782
3780
  case "key":
3783
3781
  parent = keyOfRow;
3784
3782
  break;
3785
- case "value":
3786
- parent = parent.get(keyOfRow);
3787
- break;
3783
+ case "value": parent = parent.get(keyOfRow);
3788
3784
  }
3789
3785
  }
3790
3786
  }
@@ -3809,9 +3805,7 @@ var setDeep = (object, path, mapper) => {
3809
3805
  if (newKey !== keyToRow) parent.delete(keyToRow);
3810
3806
  break;
3811
3807
  }
3812
- case "value":
3813
- parent.set(keyToRow, mapper(parent.get(keyToRow)));
3814
- break;
3808
+ case "value": parent.set(keyToRow, mapper(parent.get(keyToRow)));
3815
3809
  }
3816
3810
  }
3817
3811
  return object;
@@ -5602,9 +5596,7 @@ var syncCommentsToClients = (superdoc, event) => {
5602
5596
  case "resolved":
5603
5597
  updateYComment(yArray, superdoc.ydoc, event, user);
5604
5598
  break;
5605
- case "deleted":
5606
- deleteYComment(yArray, superdoc.ydoc, event, user);
5607
- break;
5599
+ case "deleted": deleteYComment(yArray, superdoc.ydoc, event, user);
5608
5600
  }
5609
5601
  };
5610
5602
  //#endregion
@@ -12498,7 +12490,7 @@ var _sfc_main$33 = {
12498
12490
  if (!shouldCollapseThread.value) return comments.value;
12499
12491
  return [comments.value[0], childComments.value[childComments.value.length - 1]].filter(Boolean);
12500
12492
  });
12501
- (0, vue.watch)((0, vue.computed)(() => {
12493
+ const overflowMeasurementKey = (0, vue.computed)(() => {
12502
12494
  const comment = visibleComments.value[0];
12503
12495
  if (!comment) return "";
12504
12496
  return JSON.stringify({
@@ -12511,7 +12503,8 @@ var _sfc_main$33 = {
12511
12503
  trackedChangeDisplayType: comment.trackedChangeDisplayType,
12512
12504
  trackedChangeDetailLines: comment.trackedChangeDetailLines
12513
12505
  });
12514
- }), () => {
12506
+ });
12507
+ (0, vue.watch)(overflowMeasurementKey, () => {
12515
12508
  (0, vue.nextTick)(checkOverflow);
12516
12509
  });
12517
12510
  const collapsedReplyCount = (0, vue.computed)(() => {
@@ -12935,12 +12928,10 @@ var _sfc_main$33 = {
12935
12928
  focusEditInput(comment.commentId);
12936
12929
  });
12937
12930
  break;
12938
- case "delete":
12939
- deleteComment({
12940
- superdoc: proxy.$superdoc,
12941
- commentId: comment.commentId
12942
- });
12943
- break;
12931
+ case "delete": deleteComment({
12932
+ superdoc: proxy.$superdoc,
12933
+ commentId: comment.commentId
12934
+ });
12944
12935
  }
12945
12936
  };
12946
12937
  const handleCommentUpdate = async (comment) => {
@@ -21769,6 +21760,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
21769
21760
  },
21770
21761
  fontAssets: proxy.$superdoc.config.fonts,
21771
21762
  workerUrls: proxy.$superdoc.config.workerUrls,
21763
+ workerStartupTimeoutMs: proxy.$superdoc.config.workerStartupTimeoutMs,
21772
21764
  proofing: resolvedProofingConfig.value,
21773
21765
  isNewFile,
21774
21766
  password: getDocumentLoadPassword(doc),
@@ -22764,7 +22756,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
22764
22756
  ], 38);
22765
22757
  };
22766
22758
  }
22767
- }, [["__scopeId", "data-v-7770edae"]]);
22759
+ }, [["__scopeId", "data-v-d39f5239"]]);
22768
22760
  //#endregion
22769
22761
  //#region src/core/create-app.js
22770
22762
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -26842,9 +26834,7 @@ function parseCSSFilters(cssFilter) {
26842
26834
  const KonvaFilters = Konva$2.Filters;
26843
26835
  if (KonvaFilters && KonvaFilters.Invert) KonvaFilters.Invert.call(this, imageData);
26844
26836
  };
26845
- default:
26846
- Util.warn(`CSS filter "${filterName}" is not supported in fallback mode. Consider using function filters for better compatibility.`);
26847
- break;
26837
+ default: Util.warn(`CSS filter "${filterName}" is not supported in fallback mode. Consider using function filters for better compatibility.`);
26848
26838
  }
26849
26839
  }
26850
26840
  return () => {};
@@ -31264,7 +31254,6 @@ var Path = class Path extends Shape {
31264
31254
  case "z":
31265
31255
  isClosed = true;
31266
31256
  context.closePath();
31267
- break;
31268
31257
  }
31269
31258
  }
31270
31259
  if (!isClosed && !this.hasFill()) context.strokeShape(this);
@@ -31734,7 +31723,6 @@ var Path = class Path extends Shape {
31734
31723
  cpy += p.shift();
31735
31724
  cmd = "A";
31736
31725
  points = this.convertEndpointToCenterParameterization(x1, y1, cpx, cpy, fa, fs, rx, ry, psi);
31737
- break;
31738
31726
  }
31739
31727
  ca.push({
31740
31728
  command: cmd || c,
@@ -32192,7 +32180,6 @@ var Label = class extends Group {
32192
32180
  case LEFT$1:
32193
32181
  x = -1 * pointerWidth;
32194
32182
  y = height / 2;
32195
- break;
32196
32183
  }
32197
32184
  tag.setAttrs({
32198
32185
  x: -1 * x,
@@ -35275,11 +35262,14 @@ function backgroundMask(idata, threshold) {
35275
35262
  rgbv_so
35276
35263
  ]);
35277
35264
  const mask = [];
35278
- for (let i = 0; i < idata.width * idata.height; i++) mask[i] = rgbDistance(mean, [
35279
- idata.data[i * 4],
35280
- idata.data[i * 4 + 1],
35281
- idata.data[i * 4 + 2]
35282
- ]) < thres ? 0 : 255;
35265
+ for (let i = 0; i < idata.width * idata.height; i++) {
35266
+ const d = rgbDistance(mean, [
35267
+ idata.data[i * 4],
35268
+ idata.data[i * 4 + 1],
35269
+ idata.data[i * 4 + 2]
35270
+ ]);
35271
+ mask[i] = d < thres ? 0 : 255;
35272
+ }
35283
35273
  return mask;
35284
35274
  }
35285
35275
  }
@@ -38243,8 +38233,6 @@ var _sfc_main$14 = {
38243
38233
  event.preventDefault();
38244
38234
  resetToApplied();
38245
38235
  (0, vue.nextTick)(() => inputRef.value?.focus());
38246
- break;
38247
- default: break;
38248
38236
  }
38249
38237
  };
38250
38238
  const onCaretMousedown = (event) => {
@@ -38301,8 +38289,6 @@ var _sfc_main$14 = {
38301
38289
  shiftKey: event.shiftKey,
38302
38290
  target: inputRef.value
38303
38291
  });
38304
- break;
38305
- default: break;
38306
38292
  }
38307
38293
  };
38308
38294
  const handleDocumentPointerDown = (event) => {
@@ -39043,11 +39029,8 @@ var _sfc_main$10 = {
39043
39029
  closeDropdowns();
39044
39030
  moveToPreviousButton(e);
39045
39031
  break;
39046
- case "Tab":
39047
- if (e.shiftKey) moveToPreviousButtonGroup(e);
39048
- else moveToNextButtonGroup(e);
39049
- break;
39050
- default: break;
39032
+ case "Tab": if (e.shiftKey) moveToPreviousButtonGroup(e);
39033
+ else moveToNextButtonGroup(e);
39051
39034
  }
39052
39035
  };
39053
39036
  const handleFocus = (e) => {
@@ -39835,10 +39818,7 @@ var AlignmentButtons_default = /*#__PURE__*/ require__plugin_vue_export_helper._
39835
39818
  case "ArrowRight":
39836
39819
  moveToNextButton(index);
39837
39820
  break;
39838
- case "Enter":
39839
- select(alignmentButtons[index].key);
39840
- break;
39841
- default: break;
39821
+ case "Enter": select(alignmentButtons[index].key);
39842
39822
  }
39843
39823
  };
39844
39824
  (0, vue.onMounted)(() => {
@@ -39928,10 +39908,7 @@ var _sfc_main$7 = {
39928
39908
  case "ArrowRight":
39929
39909
  moveToNextButton(index);
39930
39910
  break;
39931
- case "Enter":
39932
- select(props.buttons[index].key);
39933
- break;
39934
- default: break;
39911
+ case "Enter": select(props.buttons[index].key);
39935
39912
  }
39936
39913
  };
39937
39914
  (0, vue.onMounted)(() => {
@@ -40066,10 +40043,7 @@ var _sfc_main$6 = {
40066
40043
  case "ArrowUp":
40067
40044
  moveToPreviousOption(index);
40068
40045
  break;
40069
- case "Enter":
40070
- handleClick(props.options[index]);
40071
- break;
40072
- default: break;
40046
+ case "Enter": handleClick(props.options[index]);
40073
40047
  }
40074
40048
  };
40075
40049
  (0, vue.onMounted)(() => {
@@ -40162,8 +40136,6 @@ var _sfc_main$5 = {
40162
40136
  case "Enter":
40163
40137
  event.preventDefault();
40164
40138
  select(style);
40165
- break;
40166
- default: break;
40167
40139
  }
40168
40140
  };
40169
40141
  const styleLabel = (style) => style?.name ?? style?.id ?? "";
@@ -40465,10 +40437,7 @@ var _sfc_main$3 = {
40465
40437
  case "Enter":
40466
40438
  handleClick(option);
40467
40439
  break;
40468
- case "Escape":
40469
- emit("clickoutside");
40470
- break;
40471
- default: break;
40440
+ case "Escape": emit("clickoutside");
40472
40441
  }
40473
40442
  };
40474
40443
  return (_ctx, _cache) => {
@@ -40753,13 +40722,10 @@ var TableGrid_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_
40753
40722
  selectGridItems(tableGridItems.value, cols, rows - 1);
40754
40723
  break;
40755
40724
  }
40756
- case "Enter":
40757
- handleClick({
40758
- cols,
40759
- rows
40760
- });
40761
- break;
40762
- default: break;
40725
+ case "Enter": handleClick({
40726
+ cols,
40727
+ rows
40728
+ });
40763
40729
  }
40764
40730
  };
40765
40731
  (0, vue.onMounted)(() => {
@@ -41709,8 +41675,9 @@ var makeDefaultItems = ({ superToolbar, toolbarIcons, toolbarTexts, toolbarFonts
41709
41675
  }
41710
41676
  ];
41711
41677
  function renderDocumentMode(renderDocumentButton) {
41678
+ const optionsAfterRole = getDocumentOptionsAfterRole(role, documentOptions);
41712
41679
  return (0, vue.h)(DocumentMode_default, {
41713
- options: getDocumentOptionsAfterRole(role, documentOptions),
41680
+ options: optionsAfterRole,
41714
41681
  onSelect: (item) => {
41715
41682
  const selectedEditor = superToolbar.superdoc?.activeEditor ?? superToolbar.activeEditor;
41716
41683
  closeDropdown(renderDocumentButton);
@@ -43268,7 +43235,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
43268
43235
  this.config.colors = shuffleArray(this.config.colors);
43269
43236
  this.userColorMap = /* @__PURE__ */ new Map();
43270
43237
  this.colorIndex = 0;
43271
- this.version = "2.4.0-next.28";
43238
+ this.version = "2.4.0-next.29";
43272
43239
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
43273
43240
  this.superdocId = config.superdocId || require_uuid.v4();
43274
43241
  this.colors = this.config.colors ?? [];