superdoc 2.22.0-next.7 → 2.22.0-next.9

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.22.0-next.7",
22
+ superdocVersion: "2.22.0-next.9",
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.22.0-next.7",
21
+ superdocVersion: "2.22.0-next.9",
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
@@ -2340,34 +2340,34 @@ img[data-v-c95b2073] {
2340
2340
  pointer-events: auto;
2341
2341
  }
2342
2342
 
2343
- .superdoc[data-v-b22dc061] {
2343
+ .superdoc[data-v-99399849] {
2344
2344
  display: flex;
2345
2345
  position: relative;
2346
2346
  }
2347
- .right-sidebar[data-v-b22dc061] {
2347
+ .right-sidebar[data-v-99399849] {
2348
2348
  min-width: 320px;
2349
2349
  height: 100%;
2350
2350
  }
2351
- .floating-comments[data-v-b22dc061] {
2351
+ .floating-comments[data-v-99399849] {
2352
2352
  min-width: 300px;
2353
2353
  width: 300px;
2354
2354
  height: 100%;
2355
2355
  overflow: visible;
2356
2356
  }
2357
- .superdoc__layers[data-v-b22dc061] {
2357
+ .superdoc__layers[data-v-99399849] {
2358
2358
  height: 100%;
2359
2359
  position: relative;
2360
2360
  box-sizing: border-box;
2361
2361
  }
2362
- .superdoc__document[data-v-b22dc061] {
2362
+ .superdoc__document[data-v-99399849] {
2363
2363
  width: 100%;
2364
2364
  position: relative;
2365
2365
  }
2366
- .superdoc__sub-document[data-v-b22dc061] {
2366
+ .superdoc__sub-document[data-v-99399849] {
2367
2367
  width: 100%;
2368
2368
  position: relative;
2369
2369
  }
2370
- .superdoc__selection-layer[data-v-b22dc061] {
2370
+ .superdoc__selection-layer[data-v-99399849] {
2371
2371
  position: absolute;
2372
2372
  min-width: 100%;
2373
2373
  min-height: 100%;
@@ -2378,13 +2378,13 @@ img[data-v-c95b2073] {
2378
2378
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
2379
2379
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
2380
2380
  clickable, and below the selection layer (z-index 10). */
2381
- .superdoc__whiteboard-layer[data-v-b22dc061] {
2381
+ .superdoc__whiteboard-layer[data-v-99399849] {
2382
2382
  z-index: 4;
2383
2383
  }
2384
- .superdoc__temp-selection[data-v-b22dc061] {
2384
+ .superdoc__temp-selection[data-v-99399849] {
2385
2385
  position: absolute;
2386
2386
  }
2387
- .superdoc__right-sidebar[data-v-b22dc061] {
2387
+ .superdoc__right-sidebar[data-v-99399849] {
2388
2388
  width: 320px;
2389
2389
  min-width: 320px;
2390
2390
  padding: 0 10px;
@@ -2392,7 +2392,7 @@ img[data-v-c95b2073] {
2392
2392
  position: relative;
2393
2393
  z-index: 2;
2394
2394
  }
2395
- .superdoc__compact-comment-popover[data-v-b22dc061] {
2395
+ .superdoc__compact-comment-popover[data-v-99399849] {
2396
2396
  position: absolute;
2397
2397
  top: 12px;
2398
2398
  right: 12px;
@@ -2401,14 +2401,14 @@ img[data-v-c95b2073] {
2401
2401
  }
2402
2402
 
2403
2403
  /* Tools styles */
2404
- .tools[data-v-b22dc061] {
2404
+ .tools[data-v-99399849] {
2405
2405
  position: absolute;
2406
2406
  z-index: 3;
2407
2407
  display: flex;
2408
2408
  flex-direction: column;
2409
2409
  gap: var(--sd-ui-tools-gap, 6px);
2410
2410
  }
2411
- .tools-item[data-v-b22dc061] {
2411
+ .tools-item[data-v-99399849] {
2412
2412
  display: flex;
2413
2413
  align-items: center;
2414
2414
  justify-content: center;
@@ -2419,10 +2419,10 @@ img[data-v-c95b2073] {
2419
2419
  cursor: pointer;
2420
2420
  position: relative;
2421
2421
  }
2422
- .tools-item i[data-v-b22dc061] {
2422
+ .tools-item i[data-v-99399849] {
2423
2423
  cursor: pointer;
2424
2424
  }
2425
- .superdoc__tools-icon[data-v-b22dc061] {
2425
+ .superdoc__tools-icon[data-v-99399849] {
2426
2426
  width: var(--sd-ui-tools-icon-size, 20px);
2427
2427
  height: var(--sd-ui-tools-icon-size, 20px);
2428
2428
  flex-shrink: 0;
@@ -2437,22 +2437,22 @@ img[data-v-c95b2073] {
2437
2437
 
2438
2438
  /* 834px is iPad screen size in portrait orientation */
2439
2439
  @media (max-width: 834px) {
2440
- .superdoc .superdoc__layers[data-v-b22dc061] {
2440
+ .superdoc .superdoc__layers[data-v-99399849] {
2441
2441
  margin: 0;
2442
2442
  border: 0 !important;
2443
2443
  box-shadow: none;
2444
2444
  }
2445
- .superdoc__sub-document[data-v-b22dc061] {
2445
+ .superdoc__sub-document[data-v-99399849] {
2446
2446
  max-width: 100%;
2447
2447
  }
2448
- .superdoc__right-sidebar[data-v-b22dc061] {
2448
+ .superdoc__right-sidebar[data-v-99399849] {
2449
2449
  padding: 10px;
2450
2450
  position: relative;
2451
2451
  }
2452
2452
  }
2453
2453
 
2454
2454
  /* AI Writer styles */
2455
- .ai-writer-container[data-v-b22dc061] {
2455
+ .ai-writer-container[data-v-99399849] {
2456
2456
  position: fixed;
2457
2457
  z-index: 1000;
2458
2458
  background: white;
@@ -2468,10 +2468,10 @@ img[data-v-c95b2073] {
2468
2468
  transform: translateY(-50%);
2469
2469
  z-index: 50;
2470
2470
  } */
2471
- .ai-tool > svg[data-v-b22dc061] {
2471
+ .ai-tool > svg[data-v-99399849] {
2472
2472
  fill: transparent;
2473
2473
  }
2474
- .ai-tool[data-v-b22dc061]::before {
2474
+ .ai-tool[data-v-99399849]::before {
2475
2475
  content: '';
2476
2476
  position: absolute;
2477
2477
  width: 20px;
@@ -2492,7 +2492,7 @@ img[data-v-c95b2073] {
2492
2492
  filter: brightness(1.2);
2493
2493
  transition: filter 0.2s ease;
2494
2494
  }
2495
- .ai-tool[data-v-b22dc061]:hover::before {
2495
+ .ai-tool[data-v-99399849]:hover::before {
2496
2496
  filter: brightness(1.3);
2497
2497
  }
2498
2498
 
@@ -2340,34 +2340,34 @@ img[data-v-c95b2073] {
2340
2340
  pointer-events: auto;
2341
2341
  }
2342
2342
 
2343
- .superdoc[data-v-b22dc061] {
2343
+ .superdoc[data-v-99399849] {
2344
2344
  display: flex;
2345
2345
  position: relative;
2346
2346
  }
2347
- .right-sidebar[data-v-b22dc061] {
2347
+ .right-sidebar[data-v-99399849] {
2348
2348
  min-width: 320px;
2349
2349
  height: 100%;
2350
2350
  }
2351
- .floating-comments[data-v-b22dc061] {
2351
+ .floating-comments[data-v-99399849] {
2352
2352
  min-width: 300px;
2353
2353
  width: 300px;
2354
2354
  height: 100%;
2355
2355
  overflow: visible;
2356
2356
  }
2357
- .superdoc__layers[data-v-b22dc061] {
2357
+ .superdoc__layers[data-v-99399849] {
2358
2358
  height: 100%;
2359
2359
  position: relative;
2360
2360
  box-sizing: border-box;
2361
2361
  }
2362
- .superdoc__document[data-v-b22dc061] {
2362
+ .superdoc__document[data-v-99399849] {
2363
2363
  width: 100%;
2364
2364
  position: relative;
2365
2365
  }
2366
- .superdoc__sub-document[data-v-b22dc061] {
2366
+ .superdoc__sub-document[data-v-99399849] {
2367
2367
  width: 100%;
2368
2368
  position: relative;
2369
2369
  }
2370
- .superdoc__selection-layer[data-v-b22dc061] {
2370
+ .superdoc__selection-layer[data-v-99399849] {
2371
2371
  position: absolute;
2372
2372
  min-width: 100%;
2373
2373
  min-height: 100%;
@@ -2378,13 +2378,13 @@ img[data-v-c95b2073] {
2378
2378
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
2379
2379
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
2380
2380
  clickable, and below the selection layer (z-index 10). */
2381
- .superdoc__whiteboard-layer[data-v-b22dc061] {
2381
+ .superdoc__whiteboard-layer[data-v-99399849] {
2382
2382
  z-index: 4;
2383
2383
  }
2384
- .superdoc__temp-selection[data-v-b22dc061] {
2384
+ .superdoc__temp-selection[data-v-99399849] {
2385
2385
  position: absolute;
2386
2386
  }
2387
- .superdoc__right-sidebar[data-v-b22dc061] {
2387
+ .superdoc__right-sidebar[data-v-99399849] {
2388
2388
  width: 320px;
2389
2389
  min-width: 320px;
2390
2390
  padding: 0 10px;
@@ -2392,7 +2392,7 @@ img[data-v-c95b2073] {
2392
2392
  position: relative;
2393
2393
  z-index: 2;
2394
2394
  }
2395
- .superdoc__compact-comment-popover[data-v-b22dc061] {
2395
+ .superdoc__compact-comment-popover[data-v-99399849] {
2396
2396
  position: absolute;
2397
2397
  top: 12px;
2398
2398
  right: 12px;
@@ -2401,14 +2401,14 @@ img[data-v-c95b2073] {
2401
2401
  }
2402
2402
 
2403
2403
  /* Tools styles */
2404
- .tools[data-v-b22dc061] {
2404
+ .tools[data-v-99399849] {
2405
2405
  position: absolute;
2406
2406
  z-index: 3;
2407
2407
  display: flex;
2408
2408
  flex-direction: column;
2409
2409
  gap: var(--sd-ui-tools-gap, 6px);
2410
2410
  }
2411
- .tools-item[data-v-b22dc061] {
2411
+ .tools-item[data-v-99399849] {
2412
2412
  display: flex;
2413
2413
  align-items: center;
2414
2414
  justify-content: center;
@@ -2419,10 +2419,10 @@ img[data-v-c95b2073] {
2419
2419
  cursor: pointer;
2420
2420
  position: relative;
2421
2421
  }
2422
- .tools-item i[data-v-b22dc061] {
2422
+ .tools-item i[data-v-99399849] {
2423
2423
  cursor: pointer;
2424
2424
  }
2425
- .superdoc__tools-icon[data-v-b22dc061] {
2425
+ .superdoc__tools-icon[data-v-99399849] {
2426
2426
  width: var(--sd-ui-tools-icon-size, 20px);
2427
2427
  height: var(--sd-ui-tools-icon-size, 20px);
2428
2428
  flex-shrink: 0;
@@ -2437,22 +2437,22 @@ img[data-v-c95b2073] {
2437
2437
 
2438
2438
  /* 834px is iPad screen size in portrait orientation */
2439
2439
  @media (max-width: 834px) {
2440
- .superdoc .superdoc__layers[data-v-b22dc061] {
2440
+ .superdoc .superdoc__layers[data-v-99399849] {
2441
2441
  margin: 0;
2442
2442
  border: 0 !important;
2443
2443
  box-shadow: none;
2444
2444
  }
2445
- .superdoc__sub-document[data-v-b22dc061] {
2445
+ .superdoc__sub-document[data-v-99399849] {
2446
2446
  max-width: 100%;
2447
2447
  }
2448
- .superdoc__right-sidebar[data-v-b22dc061] {
2448
+ .superdoc__right-sidebar[data-v-99399849] {
2449
2449
  padding: 10px;
2450
2450
  position: relative;
2451
2451
  }
2452
2452
  }
2453
2453
 
2454
2454
  /* AI Writer styles */
2455
- .ai-writer-container[data-v-b22dc061] {
2455
+ .ai-writer-container[data-v-99399849] {
2456
2456
  position: fixed;
2457
2457
  z-index: 1000;
2458
2458
  background: white;
@@ -2468,10 +2468,10 @@ img[data-v-c95b2073] {
2468
2468
  transform: translateY(-50%);
2469
2469
  z-index: 50;
2470
2470
  } */
2471
- .ai-tool > svg[data-v-b22dc061] {
2471
+ .ai-tool > svg[data-v-99399849] {
2472
2472
  fill: transparent;
2473
2473
  }
2474
- .ai-tool[data-v-b22dc061]::before {
2474
+ .ai-tool[data-v-99399849]::before {
2475
2475
  content: '';
2476
2476
  position: absolute;
2477
2477
  width: 20px;
@@ -2492,7 +2492,7 @@ img[data-v-c95b2073] {
2492
2492
  filter: brightness(1.2);
2493
2493
  transition: filter 0.2s ease;
2494
2494
  }
2495
- .ai-tool[data-v-b22dc061]:hover::before {
2495
+ .ai-tool[data-v-99399849]:hover::before {
2496
2496
  filter: brightness(1.3);
2497
2497
  }
2498
2498
 
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.22.0-next.7";
319
+ return "2.22.0-next.9";
320
320
  } catch {
321
321
  return "unknown";
322
322
  }
@@ -21106,8 +21106,10 @@ function translateRenderReadinessDiagnostic(diag, ctx = {}) {
21106
21106
  const { code, reason, severity } = diag;
21107
21107
  if (severity !== "error" && severity !== "warn") return null;
21108
21108
  if (code === "render.exact-content-hydration-failed") return null;
21109
+ const unusableFurniture = code === "render.header-footer.ref-unusable" || code === "render.header-footer.part-unusable";
21109
21110
  let diagnosticCode;
21110
- if (code.includes("page-geometry.failed") || code.includes("section-metadata.failed") || code.includes("page-furniture.failed") || code === "render.provider-error") diagnosticCode = "RENDER_ERROR";
21111
+ if (unusableFurniture) diagnosticCode = "PARSE_ERROR";
21112
+ else if (code.includes("page-geometry.failed") || code.includes("section-metadata.failed") || code.includes("page-furniture.failed") || code === "render.provider-error") diagnosticCode = "RENDER_ERROR";
21111
21113
  else if (code.includes("unsupported")) diagnosticCode = "UNSUPPORTED_FEATURE";
21112
21114
  else if (code.includes("degraded")) diagnosticCode = typeof reason === "string" && (reason.includes("retained ") || reason.includes("localized resolve ")) ? "RENDER_ERROR" : "PERFORMANCE_ERROR";
21113
21115
  else if (severity === "error") diagnosticCode = "RENDER_ERROR";
@@ -21116,7 +21118,7 @@ function translateRenderReadinessDiagnostic(diag, ctx = {}) {
21116
21118
  return {
21117
21119
  error: new Error(message),
21118
21120
  diagnosticCode,
21119
- diagnosticStage: "render",
21121
+ diagnosticStage: unusableFurniture ? "parse" : "render",
21120
21122
  severity,
21121
21123
  internalCode: code,
21122
21124
  documentId: ctx.documentId ?? null,
@@ -23312,6 +23314,16 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23312
23314
  const reason = typeof payload?.reason === "string" && payload.reason.length > 0 ? payload.reason : "open-failed";
23313
23315
  const detail = normalizeV2EditorFailureDetail(payload?.detail);
23314
23316
  const documentId = typeof payload?.documentId === "string" && payload.documentId.length > 0 ? payload.documentId : null;
23317
+ if (reason === "worker-transport-failed") {
23318
+ proxy.$superdoc.emit("exception", {
23319
+ error: /* @__PURE__ */ new Error("Worker transport failed."),
23320
+ code: reason,
23321
+ ...documentId ? { documentId } : {},
23322
+ editor: null,
23323
+ ...payload?.workerFailure ? { workerFailure: payload.workerFailure } : {}
23324
+ });
23325
+ return;
23326
+ }
23315
23327
  const collaborationException = createCollaborationException(reason, documentId);
23316
23328
  const message = collaborationException?.error.message ?? getV2EditorFailureMessage(reason);
23317
23329
  const workerFailure = payload?.workerFailure && typeof payload.workerFailure === "object" ? payload.workerFailure : null;
@@ -24553,7 +24565,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24553
24565
  ], 38);
24554
24566
  };
24555
24567
  }
24556
- }, [["__scopeId", "data-v-b22dc061"]]);
24568
+ }, [["__scopeId", "data-v-99399849"]]);
24557
24569
  //#endregion
24558
24570
  //#region src/core/create-app.js
24559
24571
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -46370,7 +46382,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46370
46382
  this.config.colors = shuffleArray(this.config.colors);
46371
46383
  this.userColorMap = /* @__PURE__ */ new Map();
46372
46384
  this.colorIndex = 0;
46373
- this.version = "2.22.0-next.7";
46385
+ this.version = "2.22.0-next.9";
46374
46386
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46375
46387
  this.superdocId = config.superdocId || require_uuid.v4();
46376
46388
  this.colors = this.config.colors ?? [];
@@ -314,7 +314,7 @@ var shuffleArray = (array) => {
314
314
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
315
315
  function getSuperdocVersion() {
316
316
  try {
317
- return "2.22.0-next.7";
317
+ return "2.22.0-next.9";
318
318
  } catch {
319
319
  return "unknown";
320
320
  }
@@ -21073,8 +21073,10 @@ function translateRenderReadinessDiagnostic(diag, ctx = {}) {
21073
21073
  const { code, reason, severity } = diag;
21074
21074
  if (severity !== "error" && severity !== "warn") return null;
21075
21075
  if (code === "render.exact-content-hydration-failed") return null;
21076
+ const unusableFurniture = code === "render.header-footer.ref-unusable" || code === "render.header-footer.part-unusable";
21076
21077
  let diagnosticCode;
21077
- if (code.includes("page-geometry.failed") || code.includes("section-metadata.failed") || code.includes("page-furniture.failed") || code === "render.provider-error") diagnosticCode = "RENDER_ERROR";
21078
+ if (unusableFurniture) diagnosticCode = "PARSE_ERROR";
21079
+ else if (code.includes("page-geometry.failed") || code.includes("section-metadata.failed") || code.includes("page-furniture.failed") || code === "render.provider-error") diagnosticCode = "RENDER_ERROR";
21078
21080
  else if (code.includes("unsupported")) diagnosticCode = "UNSUPPORTED_FEATURE";
21079
21081
  else if (code.includes("degraded")) diagnosticCode = typeof reason === "string" && (reason.includes("retained ") || reason.includes("localized resolve ")) ? "RENDER_ERROR" : "PERFORMANCE_ERROR";
21080
21082
  else if (severity === "error") diagnosticCode = "RENDER_ERROR";
@@ -21083,7 +21085,7 @@ function translateRenderReadinessDiagnostic(diag, ctx = {}) {
21083
21085
  return {
21084
21086
  error: new Error(message),
21085
21087
  diagnosticCode,
21086
- diagnosticStage: "render",
21088
+ diagnosticStage: unusableFurniture ? "parse" : "render",
21087
21089
  severity,
21088
21090
  internalCode: code,
21089
21091
  documentId: ctx.documentId ?? null,
@@ -23271,6 +23273,16 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
23271
23273
  const reason = typeof payload?.reason === "string" && payload.reason.length > 0 ? payload.reason : "open-failed";
23272
23274
  const detail = normalizeV2EditorFailureDetail(payload?.detail);
23273
23275
  const documentId = typeof payload?.documentId === "string" && payload.documentId.length > 0 ? payload.documentId : null;
23276
+ if (reason === "worker-transport-failed") {
23277
+ proxy.$superdoc.emit("exception", {
23278
+ error: /* @__PURE__ */ new Error("Worker transport failed."),
23279
+ code: reason,
23280
+ ...documentId ? { documentId } : {},
23281
+ editor: null,
23282
+ ...payload?.workerFailure ? { workerFailure: payload.workerFailure } : {}
23283
+ });
23284
+ return;
23285
+ }
23274
23286
  const collaborationException = createCollaborationException(reason, documentId);
23275
23287
  const message = collaborationException?.error.message ?? getV2EditorFailureMessage(reason);
23276
23288
  const workerFailure = payload?.workerFailure && typeof payload.workerFailure === "object" ? payload.workerFailure : null;
@@ -24512,7 +24524,7 @@ var SuperDoc_default = /*#__PURE__*/ _plugin_vue_export_helper_default({
24512
24524
  ], 38);
24513
24525
  };
24514
24526
  }
24515
- }, [["__scopeId", "data-v-b22dc061"]]);
24527
+ }, [["__scopeId", "data-v-99399849"]]);
24516
24528
  //#endregion
24517
24529
  //#region src/core/create-app.js
24518
24530
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -46299,7 +46311,7 @@ var SuperDoc = class extends import_eventemitter3.default {
46299
46311
  this.config.colors = shuffleArray(this.config.colors);
46300
46312
  this.userColorMap = /* @__PURE__ */ new Map();
46301
46313
  this.colorIndex = 0;
46302
- this.version = "2.22.0-next.7";
46314
+ this.version = "2.22.0-next.9";
46303
46315
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46304
46316
  this.superdocId = config.superdocId || v4();
46305
46317
  this.colors = this.config.colors ?? [];