superdoc 2.28.0-next.5 → 2.28.0-next.6

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.
package/dist/superdoc.cjs CHANGED
@@ -260,7 +260,7 @@ var v_click_outside_default = {
260
260
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
261
261
  function getSuperdocVersion() {
262
262
  try {
263
- return "2.28.0-next.5";
263
+ return "2.28.0-next.6";
264
264
  } catch {
265
265
  return "unknown";
266
266
  }
@@ -5464,7 +5464,8 @@ function resolveWebsocketFamily(family, candidate) {
5464
5464
  roomMode,
5465
5465
  serverUrl,
5466
5466
  ...params ? { params } : {},
5467
- ...token ? { token } : {}
5467
+ ...token ? { token } : {},
5468
+ ...family === "hocuspocus" && candidate.retry !== void 0 ? { retry: candidate.retry } : {}
5468
5469
  }
5469
5470
  };
5470
5471
  }
@@ -9021,6 +9022,8 @@ var useCommentsStore = defineStore("comments", () => {
9021
9022
  rejected: true,
9022
9023
  comment: comment.getValues(),
9023
9024
  reason: outcome?.reason ?? "v2-delete-failed",
9025
+ ...outcome?.code !== void 0 ? { code: outcome.code } : {},
9026
+ ...outcome?.detail !== void 0 ? { detail: outcome.detail } : {},
9024
9027
  ...outcome?.committed ? { committed: true } : {}
9025
9028
  });
9026
9029
  return outcome;
@@ -13338,97 +13341,107 @@ var _hoisted_2$19 = {
13338
13341
  class: "existing-internal-input"
13339
13342
  };
13340
13343
  var _hoisted_3$16 = { class: "new-comment-input-wrapper" };
13341
- var _hoisted_4$11 = { class: "reply-actions" };
13342
- var _hoisted_5$8 = ["disabled"];
13343
- var _hoisted_6$6 = {
13344
+ var _hoisted_4$11 = {
13345
+ key: 1,
13346
+ class: "tracked-change-decision-alert",
13347
+ role: "alert"
13348
+ };
13349
+ var _hoisted_5$8 = { class: "reply-actions" };
13350
+ var _hoisted_6$6 = ["disabled"];
13351
+ var _hoisted_7$4 = {
13344
13352
  key: 0,
13345
13353
  class: "resolved-badge"
13346
13354
  };
13347
- var _hoisted_7$4 = ["innerHTML"];
13348
- var _hoisted_8$4 = {
13355
+ var _hoisted_8$4 = ["innerHTML"];
13356
+ var _hoisted_9$3 = {
13349
13357
  key: 1,
13350
13358
  class: "existing-internal-input"
13351
13359
  };
13352
- var _hoisted_9$3 = {
13360
+ var _hoisted_10$3 = {
13361
+ key: 2,
13362
+ class: "tracked-change-decision-alert",
13363
+ role: "alert"
13364
+ };
13365
+ var _hoisted_11$3 = {
13353
13366
  key: 0,
13354
13367
  class: "card-section comment-body"
13355
13368
  };
13356
- var _hoisted_10$3 = ["data-track-change-semantic-color-key"];
13357
- var _hoisted_11$3 = { key: 0 };
13358
- var _hoisted_12$2 = { class: "change-type tracked-change-label" };
13359
- var _hoisted_13$2 = {
13369
+ var _hoisted_12$2 = ["data-track-change-semantic-color-key"];
13370
+ var _hoisted_13$2 = { key: 0 };
13371
+ var _hoisted_14$2 = { class: "change-type tracked-change-label" };
13372
+ var _hoisted_15$2 = {
13360
13373
  key: 0,
13361
13374
  class: "tracked-change-detail-lines"
13362
13375
  };
13363
- var _hoisted_14$2 = {
13376
+ var _hoisted_16$2 = {
13364
13377
  key: 0,
13365
13378
  class: "tracked-change-text"
13366
13379
  };
13367
- var _hoisted_15$2 = {
13380
+ var _hoisted_17$2 = {
13368
13381
  key: 1,
13369
13382
  class: "change-type"
13370
13383
  };
13371
- var _hoisted_16$2 = { class: "change-type" };
13372
- var _hoisted_17$2 = { key: 1 };
13373
- var _hoisted_18$2 = { class: "tracked-change-text is-inserted" };
13374
- var _hoisted_19$1 = { key: 2 };
13384
+ var _hoisted_18$2 = { class: "change-type" };
13385
+ var _hoisted_19$1 = { key: 1 };
13375
13386
  var _hoisted_20$1 = { class: "tracked-change-text is-inserted" };
13376
- var _hoisted_21$1 = { key: 3 };
13377
- var _hoisted_22$1 = { key: 4 };
13378
- var _hoisted_23$1 = { key: 5 };
13379
- var _hoisted_24 = { key: 6 };
13380
- var _hoisted_25 = { class: "tracked-change-text" };
13381
- var _hoisted_26 = { key: 7 };
13382
- var _hoisted_27 = { class: "tracked-change-text is-deleted" };
13383
- var _hoisted_28 = { class: "tracked-change-text is-inserted" };
13384
- var _hoisted_29 = { key: 8 };
13385
- var _hoisted_30 = { key: 9 };
13386
- var _hoisted_31 = { key: 10 };
13387
- var _hoisted_32 = { class: "tracked-change-text is-deleted" };
13388
- var _hoisted_33 = { key: 11 };
13389
- var _hoisted_34 = { class: "tracked-change-text is-inserted" };
13390
- var _hoisted_35 = ["data-track-change-image-preview-role"];
13391
- var _hoisted_36 = ["src", "alt"];
13392
- var _hoisted_37 = {
13387
+ var _hoisted_21$1 = { key: 2 };
13388
+ var _hoisted_22$1 = { class: "tracked-change-text is-inserted" };
13389
+ var _hoisted_23$1 = { key: 3 };
13390
+ var _hoisted_24 = { key: 4 };
13391
+ var _hoisted_25 = { key: 5 };
13392
+ var _hoisted_26 = { key: 6 };
13393
+ var _hoisted_27 = { class: "tracked-change-text" };
13394
+ var _hoisted_28 = { key: 7 };
13395
+ var _hoisted_29 = { class: "tracked-change-text is-deleted" };
13396
+ var _hoisted_30 = { class: "tracked-change-text is-inserted" };
13397
+ var _hoisted_31 = { key: 8 };
13398
+ var _hoisted_32 = { key: 9 };
13399
+ var _hoisted_33 = { key: 10 };
13400
+ var _hoisted_34 = { class: "tracked-change-text is-deleted" };
13401
+ var _hoisted_35 = { key: 11 };
13402
+ var _hoisted_36 = { class: "tracked-change-text is-inserted" };
13403
+ var _hoisted_37 = ["data-track-change-image-preview-role"];
13404
+ var _hoisted_38 = ["src", "alt"];
13405
+ var _hoisted_39 = {
13393
13406
  key: 1,
13394
13407
  class: "card-section comment-body"
13395
13408
  };
13396
- var _hoisted_38 = ["innerHTML"];
13397
- var _hoisted_39 = {
13409
+ var _hoisted_40 = ["innerHTML"];
13410
+ var _hoisted_41 = {
13398
13411
  key: 1,
13399
13412
  class: "comment"
13400
13413
  };
13401
- var _hoisted_40 = {
13414
+ var _hoisted_42 = {
13402
13415
  key: 2,
13403
13416
  class: "reply-expanded"
13404
13417
  };
13405
- var _hoisted_41 = { class: "reply-input-wrapper" };
13406
- var _hoisted_42 = { class: "reply-actions" };
13407
- var _hoisted_43 = ["onClick"];
13408
- var _hoisted_44 = [
13418
+ var _hoisted_43 = { class: "reply-input-wrapper" };
13419
+ var _hoisted_44 = { class: "reply-actions" };
13420
+ var _hoisted_45 = ["onClick"];
13421
+ var _hoisted_46 = [
13409
13422
  "onClick",
13410
13423
  "disabled",
13411
13424
  "data-disabled-reason"
13412
13425
  ];
13413
- var _hoisted_45 = { class: "collapsed-avatars" };
13414
- var _hoisted_46 = {
13426
+ var _hoisted_47 = { class: "collapsed-avatars" };
13427
+ var _hoisted_48 = {
13415
13428
  key: 3,
13416
13429
  class: "comment-separator"
13417
13430
  };
13418
- var _hoisted_47 = {
13419
- key: 2,
13431
+ var _hoisted_49 = {
13432
+ key: 3,
13420
13433
  class: "tracked-change-decision-alert",
13421
13434
  role: "alert"
13422
13435
  };
13423
- var _hoisted_48 = { class: "tracked-change-decision-alert__message" };
13424
- var _hoisted_49 = ["disabled", "data-disabled-reason"];
13425
- var _hoisted_50 = {
13436
+ var _hoisted_50 = { class: "tracked-change-decision-alert__message" };
13437
+ var _hoisted_51 = ["disabled", "data-disabled-reason"];
13438
+ var _hoisted_52 = {
13426
13439
  key: 1,
13427
13440
  class: "reply-expanded"
13428
13441
  };
13429
- var _hoisted_51 = { class: "reply-input-wrapper" };
13430
- var _hoisted_52 = { class: "reply-actions" };
13431
- var _hoisted_53 = ["disabled", "data-disabled-reason"];
13442
+ var _hoisted_53 = { class: "reply-input-wrapper" };
13443
+ var _hoisted_54 = { class: "reply-actions" };
13444
+ var _hoisted_55 = ["disabled", "data-disabled-reason"];
13432
13445
  var commentEditSessions = /* @__PURE__ */ new WeakMap();
13433
13446
  var _sfc_main$33 = {
13434
13447
  __name: "CommentDialog",
@@ -13681,12 +13694,17 @@ var _sfc_main$33 = {
13681
13694
  const isReplying = require__plugin_vue_export_helper.ref(false);
13682
13695
  const isSubmittingReply = require__plugin_vue_export_helper.ref(false);
13683
13696
  const isSubmittingNewComment = require__plugin_vue_export_helper.ref(false);
13697
+ const commentSaveFailure = require__plugin_vue_export_helper.ref("");
13698
+ const commentSaveFailureMessage = (outcome, hasDraft = true) => {
13699
+ return `Your comment could not be saved${outcome?.detail === "document-mode-read-only" ? " because the document or connection is read-only" : outcome?.code === "PERMISSION_DENIED" ? " because you do not have permission" : ""}.${hasDraft ? " Your draft is still here. Try again or cancel." : " Try again."}`;
13700
+ };
13684
13701
  const startReply = () => {
13685
13702
  if (commentsAreReadOnly()) return readOnlyMutationOutcome();
13686
13703
  if (isV2WriteDisabled.value) return {
13687
13704
  ok: false,
13688
13705
  reason: v2WriteCapability.value?.reason ?? "v2-write-unavailable"
13689
13706
  };
13707
+ commentSaveFailure.value = "";
13690
13708
  isReplying.value = true;
13691
13709
  require__plugin_vue_export_helper.nextTick(() => {
13692
13710
  commentInput.value?.focus?.();
@@ -13936,6 +13954,7 @@ var _sfc_main$33 = {
13936
13954
  reason: "reply-submit-in-flight"
13937
13955
  };
13938
13956
  isSubmittingReply.value = true;
13957
+ commentSaveFailure.value = "";
13939
13958
  try {
13940
13959
  const parentCommentId = getV2ExistingReplyParentId(props.comment);
13941
13960
  const trackedChangeTarget = getV2TrackedChangeCommentTarget(props.comment);
@@ -13947,6 +13966,7 @@ var _sfc_main$33 = {
13947
13966
  ...trackedChangeTarget ? { trackedChangeTarget } : {}
13948
13967
  });
13949
13968
  if (!outcome?.ok) {
13969
+ commentSaveFailure.value = commentSaveFailureMessage(outcome);
13950
13970
  require__plugin_vue_export_helper.nextTick(() => emit("resize"));
13951
13971
  return outcome;
13952
13972
  }
@@ -13965,6 +13985,7 @@ var _sfc_main$33 = {
13965
13985
  reason: "comment-submit-in-flight"
13966
13986
  };
13967
13987
  isSubmittingNewComment.value = true;
13988
+ commentSaveFailure.value = "";
13968
13989
  }
13969
13990
  const options = {
13970
13991
  documentId: props.comment.fileId,
@@ -13980,7 +14001,10 @@ var _sfc_main$33 = {
13980
14001
  Promise.resolve().then(() => addComment({
13981
14002
  superdoc: proxy.$superdoc,
13982
14003
  comment
13983
- })).catch((err) => {
14004
+ })).then((outcome) => {
14005
+ if (isPendingNewComment.value && outcome?.ok === false) commentSaveFailure.value = commentSaveFailureMessage(outcome);
14006
+ }).catch((err) => {
14007
+ commentSaveFailure.value = commentSaveFailureMessage();
13984
14008
  console.error("[SuperDoc] addComment failed", err);
13985
14009
  }).finally(() => {
13986
14010
  isSubmittingNewComment.value = false;
@@ -14205,10 +14229,15 @@ var _sfc_main$33 = {
14205
14229
  });
14206
14230
  v1TrackedChangeDecisionApplied = Boolean(outcome?.ok) && outcome.success !== false;
14207
14231
  } else if (isV2Mode.value && v2CommentsAdapter.value) {
14208
- if (!(await commentsStore.resolveCommentV2({
14232
+ const outcome = await commentsStore.resolveCommentV2({
14209
14233
  superdoc: proxy.$superdoc,
14210
14234
  commentId: props.comment.commentId
14211
- }))?.ok) return;
14235
+ });
14236
+ if (!outcome?.ok) {
14237
+ commentSaveFailure.value = commentSaveFailureMessage(outcome, false);
14238
+ return outcome;
14239
+ }
14240
+ commentSaveFailure.value = "";
14212
14241
  } else props.comment.resolveComment({
14213
14242
  id: superdocStore.user.id,
14214
14243
  email: superdocStore.user.email,
@@ -14237,17 +14266,22 @@ var _sfc_main$33 = {
14237
14266
  reason: "resolve-disabled"
14238
14267
  };
14239
14268
  if (!isV2Mode.value || !v2CommentsAdapter.value) return;
14240
- if (!(await commentsStore.reopenCommentV2({
14269
+ const outcome = await commentsStore.reopenCommentV2({
14241
14270
  superdoc: proxy.$superdoc,
14242
14271
  commentId: props.comment.commentId
14243
- }))?.ok) return;
14272
+ });
14273
+ if (!outcome?.ok) {
14274
+ commentSaveFailure.value = commentSaveFailureMessage(outcome, false);
14275
+ return outcome;
14276
+ }
14277
+ commentSaveFailure.value = "";
14244
14278
  require__plugin_vue_export_helper.nextTick(() => {
14245
14279
  commentsStore.lastUpdate = /* @__PURE__ */ new Date();
14246
14280
  commentsStore.setActiveComment(proxy.$superdoc, activeComment.value);
14247
14281
  proxy.$superdoc.focus?.();
14248
14282
  });
14249
14283
  };
14250
- const handleOverflowSelect = (value, comment) => {
14284
+ const handleOverflowSelect = async (value, comment) => {
14251
14285
  if (commentsAreReadOnly()) return readOnlyMutationOutcome();
14252
14286
  switch (value) {
14253
14287
  case "edit":
@@ -14266,10 +14300,13 @@ var _sfc_main$33 = {
14266
14300
  });
14267
14301
  break;
14268
14302
  case "delete":
14269
- deleteComment({
14270
- superdoc: proxy.$superdoc,
14271
- commentId: comment.commentId
14272
- });
14303
+ {
14304
+ const outcome = await deleteComment({
14305
+ superdoc: proxy.$superdoc,
14306
+ commentId: comment.commentId
14307
+ });
14308
+ commentSaveFailure.value = outcome?.ok ? "" : commentSaveFailureMessage(outcome, false);
14309
+ }
14273
14310
  break;
14274
14311
  }
14275
14312
  };
@@ -14290,8 +14327,12 @@ var _sfc_main$33 = {
14290
14327
  commentId: comment.commentId,
14291
14328
  text: draft
14292
14329
  });
14293
- if (!outcome?.ok) return outcome;
14294
14330
  if (session?.owner !== editSessionOwner || commentEditSessions.get(commentsStore) !== session || session.submission !== submission || proxy.$superdoc.activeEditor !== editor || editor.v2Comments !== adapter || adapter.documentId !== documentId || editor.doc !== document || props.comment !== thread || editingCommentId.value !== comment.commentId || currentCommentText.value !== draft) return outcome;
14331
+ if (!outcome?.ok) {
14332
+ commentSaveFailure.value = commentSaveFailureMessage(outcome);
14333
+ return outcome;
14334
+ }
14335
+ commentSaveFailure.value = "";
14295
14336
  retireOwnEditSession();
14296
14337
  editingCommentId.value = null;
14297
14338
  removePendingComment(proxy.$superdoc);
@@ -14323,6 +14364,7 @@ var _sfc_main$33 = {
14323
14364
  return typeof timestamp === "string" ? new Date(timestamp).getTime() : timestamp;
14324
14365
  };
14325
14366
  const handleCancel = (comment) => {
14367
+ commentSaveFailure.value = "";
14326
14368
  retireOwnEditSession();
14327
14369
  editingCommentId.value = null;
14328
14370
  isReplying.value = false;
@@ -14422,26 +14464,28 @@ var _sfc_main$33 = {
14422
14464
  "config",
14423
14465
  "comment"
14424
14466
  ])]),
14425
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$11, [require__plugin_vue_export_helper.createElementVNode("button", {
14467
+ commentSaveFailure.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("p", _hoisted_4$11, require__plugin_vue_export_helper.toDisplayString(commentSaveFailure.value), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true),
14468
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_5$8, [require__plugin_vue_export_helper.createElementVNode("button", {
14426
14469
  class: "sd-button reply-btn-cancel",
14427
14470
  onClick: require__plugin_vue_export_helper.withModifiers(handleCancel, ["stop", "prevent"])
14428
14471
  }, "Cancel"), require__plugin_vue_export_helper.createElementVNode("button", {
14429
14472
  class: require__plugin_vue_export_helper.normalizeClass(["sd-button primary reply-btn-primary", { "sd-is-disabled": !hasTextContent.value || isSubmittingNewComment.value }]),
14430
14473
  onClick: require__plugin_vue_export_helper.withModifiers(handleAddComment, ["stop", "prevent"]),
14431
14474
  disabled: !hasTextContent.value || isSubmittingNewComment.value
14432
- }, " Comment ", 10, _hoisted_5$8)])
14475
+ }, " Comment ", 10, _hoisted_6$6)])
14433
14476
  ], 64)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 1 }, [
14434
- resolvedBadgeLabel.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_6$6, [require__plugin_vue_export_helper.createElementVNode("span", {
14477
+ resolvedBadgeLabel.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_7$4, [require__plugin_vue_export_helper.createElementVNode("span", {
14435
14478
  class: "resolved-badge__icon",
14436
14479
  innerHTML: require__plugin_vue_export_helper.unref(superdocIcons).markDone
14437
- }, null, 8, _hoisted_7$4), require__plugin_vue_export_helper.createTextVNode(" " + require__plugin_vue_export_helper.toDisplayString(resolvedBadgeLabel.value), 1)])) : require__plugin_vue_export_helper.createCommentVNode("", true),
14438
- shouldShowInternalExternal.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_8$4, [require__plugin_vue_export_helper.createVNode(InternalDropdown_default, {
14480
+ }, null, 8, _hoisted_8$4), require__plugin_vue_export_helper.createTextVNode(" " + require__plugin_vue_export_helper.toDisplayString(resolvedBadgeLabel.value), 1)])) : require__plugin_vue_export_helper.createCommentVNode("", true),
14481
+ shouldShowInternalExternal.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_9$3, [require__plugin_vue_export_helper.createVNode(InternalDropdown_default, {
14439
14482
  onClick: _cache[1] || (_cache[1] = require__plugin_vue_export_helper.withModifiers(() => {}, ["stop", "prevent"])),
14440
14483
  class: "sd-internal-dropdown",
14441
14484
  "is-disabled": isInternalDropdownDisabled.value,
14442
14485
  state: __props.comment.isInternal ? "internal" : "external",
14443
14486
  onSelect: handleInternalExternalSelect
14444
14487
  }, null, 8, ["is-disabled", "state"])])) : require__plugin_vue_export_helper.createCommentVNode("", true),
14488
+ commentSaveFailure.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("p", _hoisted_10$3, require__plugin_vue_export_helper.toDisplayString(commentSaveFailure.value), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true),
14445
14489
  (require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, null, require__plugin_vue_export_helper.renderList(visibleComments.value, (comment, index) => {
14446
14490
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14447
14491
  key: comment.commentId,
@@ -14473,27 +14517,27 @@ var _sfc_main$33 = {
14473
14517
  "write-disabled-reason",
14474
14518
  "onOverflowSelect"
14475
14519
  ]),
14476
- comment.trackedChange ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_9$3, [
14520
+ comment.trackedChange ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_11$3, [
14477
14521
  require__plugin_vue_export_helper.createElementVNode("div", {
14478
14522
  class: require__plugin_vue_export_helper.normalizeClass(["tracked-change", index === 0 ? bodyOverflowClass.value : void 0]),
14479
14523
  "data-track-change-semantic-color-key": comment.semanticColorKey ?? void 0,
14480
14524
  ref_for: true,
14481
14525
  ref: index === 0 ? setParentBodyRef : void 0
14482
- }, [comment.trackedChangeLabel ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_11$3, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_12$2, require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeLabel), 1), comment.trackedChangeDetailLines && comment.trackedChangeDetailLines.length ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_13$2, [(require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, null, require__plugin_vue_export_helper.renderList(comment.trackedChangeDetailLines, (line, lineIndex) => {
14526
+ }, [comment.trackedChangeLabel ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_13$2, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_14$2, require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeLabel), 1), comment.trackedChangeDetailLines && comment.trackedChangeDetailLines.length ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_15$2, [(require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, null, require__plugin_vue_export_helper.renderList(comment.trackedChangeDetailLines, (line, lineIndex) => {
14483
14527
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14484
14528
  key: lineIndex,
14485
14529
  class: "tracked-change-detail-line"
14486
14530
  }, [
14487
- line.excerpt ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_14$2, "\"" + require__plugin_vue_export_helper.toDisplayString(line.excerpt) + "\"", 1)) : require__plugin_vue_export_helper.createCommentVNode("", true),
14488
- line.excerpt ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_15$2, " — ")) : require__plugin_vue_export_helper.createCommentVNode("", true),
14489
- require__plugin_vue_export_helper.createElementVNode("span", _hoisted_16$2, require__plugin_vue_export_helper.toDisplayString(line.label), 1)
14531
+ line.excerpt ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_16$2, "\"" + require__plugin_vue_export_helper.toDisplayString(line.excerpt) + "\"", 1)) : require__plugin_vue_export_helper.createCommentVNode("", true),
14532
+ line.excerpt ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_17$2, " — ")) : require__plugin_vue_export_helper.createCommentVNode("", true),
14533
+ require__plugin_vue_export_helper.createElementVNode("span", _hoisted_18$2, require__plugin_vue_export_helper.toDisplayString(line.label), 1)
14490
14534
  ]);
14491
- }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true)])) : comment.trackedChangeDisplayType === "hyperlinkAdded" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_17$2, [_cache[2] || (_cache[2] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added hyperlink ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_18$2, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : comment.trackedChangeDisplayType === "hyperlinkModified" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_19$1, [_cache[3] || (_cache[3] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Changed hyperlink to ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_20$1, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : comment.trackedChangeDisplayType === "paragraphSplit" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_21$1, [..._cache[4] || (_cache[4] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added new line", -1)])])) : comment.trackedChangeDisplayType === "tableInsert" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_22$1, [..._cache[5] || (_cache[5] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added table", -1)])])) : comment.trackedChangeDisplayType === "tableDelete" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_23$1, [..._cache[6] || (_cache[6] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted table", -1)])])) : comment.trackedChangeType === "trackFormat" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_24, [_cache[7] || (_cache[7] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Format: ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_25, require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText), 1)])) : comment.trackedChangeType === "both" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_26, [
14535
+ }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true)])) : comment.trackedChangeDisplayType === "hyperlinkAdded" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_19$1, [_cache[2] || (_cache[2] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added hyperlink ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_20$1, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : comment.trackedChangeDisplayType === "hyperlinkModified" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_21$1, [_cache[3] || (_cache[3] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Changed hyperlink to ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_22$1, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : comment.trackedChangeDisplayType === "paragraphSplit" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_23$1, [..._cache[4] || (_cache[4] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added new line", -1)])])) : comment.trackedChangeDisplayType === "tableInsert" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_24, [..._cache[5] || (_cache[5] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added table", -1)])])) : comment.trackedChangeDisplayType === "tableDelete" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_25, [..._cache[6] || (_cache[6] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted table", -1)])])) : comment.trackedChangeType === "trackFormat" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_26, [_cache[7] || (_cache[7] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Format: ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_27, require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText), 1)])) : comment.trackedChangeType === "both" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_28, [
14492
14536
  _cache[8] || (_cache[8] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Replaced ", -1)),
14493
- require__plugin_vue_export_helper.createElementVNode("span", _hoisted_27, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.deletedText) + "\"", 1),
14537
+ require__plugin_vue_export_helper.createElementVNode("span", _hoisted_29, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.deletedText) + "\"", 1),
14494
14538
  _cache[9] || (_cache[9] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, " with ", -1)),
14495
- require__plugin_vue_export_helper.createElementVNode("span", _hoisted_28, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)
14496
- ])) : comment.deletedText && comment.deletedText === "\n" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_29, [..._cache[10] || (_cache[10] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted line break", -1)])])) : comment.trackedChangeText && comment.trackedChangeText === "\n" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_30, [..._cache[11] || (_cache[11] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added line break", -1)])])) : comment.deletedText ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_31, [_cache[12] || (_cache[12] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_32, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.deletedText) + "\"", 1)])) : comment.trackedChangeText ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_33, [_cache[13] || (_cache[13] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_34, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : require__plugin_vue_export_helper.createCommentVNode("", true), comment.trackedChangeImagePreview?.src ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14539
+ require__plugin_vue_export_helper.createElementVNode("span", _hoisted_30, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)
14540
+ ])) : comment.deletedText && comment.deletedText === "\n" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_31, [..._cache[10] || (_cache[10] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted line break", -1)])])) : comment.trackedChangeText && comment.trackedChangeText === "\n" ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_32, [..._cache[11] || (_cache[11] = [require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added line break", -1)])])) : comment.deletedText ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_33, [_cache[12] || (_cache[12] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Deleted ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_34, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.deletedText) + "\"", 1)])) : comment.trackedChangeText ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_35, [_cache[13] || (_cache[13] = require__plugin_vue_export_helper.createElementVNode("span", { class: "change-type" }, "Added ", -1)), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_36, "\"" + require__plugin_vue_export_helper.toDisplayString(comment.trackedChangeText) + "\"", 1)])) : require__plugin_vue_export_helper.createCommentVNode("", true), comment.trackedChangeImagePreview?.src ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14497
14541
  key: 12,
14498
14542
  class: "tracked-change-image-preview",
14499
14543
  "data-track-change-image-preview-role": comment.trackedChangeImagePreview.role ?? void 0
@@ -14504,7 +14548,7 @@ var _sfc_main$33 = {
14504
14548
  style: require__plugin_vue_export_helper.normalizeStyle(trackedChangeImagePreviewStyle(comment.trackedChangeImagePreview)),
14505
14549
  loading: "lazy",
14506
14550
  decoding: "async"
14507
- }, null, 12, _hoisted_36)], 8, _hoisted_35)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 10, _hoisted_10$3),
14551
+ }, null, 12, _hoisted_38)], 8, _hoisted_37)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 10, _hoisted_12$2),
14508
14552
  shouldTruncate.value && isTextOverflowing.value && index === 0 ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14509
14553
  key: 0,
14510
14554
  class: "show-more-toggle",
@@ -14516,29 +14560,29 @@ var _sfc_main$33 = {
14516
14560
  onClick: require__plugin_vue_export_helper.withModifiers(toggleTruncation, ["stop", "prevent"])
14517
14561
  }, " Show less ")) : require__plugin_vue_export_helper.createCommentVNode("", true)
14518
14562
  ])) : require__plugin_vue_export_helper.createCommentVNode("", true),
14519
- !comment.trackedChange ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_37, [
14563
+ !comment.trackedChange ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_39, [
14520
14564
  !require__plugin_vue_export_helper.unref(isDebugging) && !isEditingThisComment.value(comment) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14521
14565
  key: 0,
14522
14566
  class: require__plugin_vue_export_helper.normalizeClass(["comment", index === 0 ? bodyOverflowClass.value : void 0]),
14523
14567
  ref_for: true,
14524
14568
  ref: index === 0 ? setParentBodyRef : void 0,
14525
14569
  innerHTML: renderedCommentTexts.value.get(comment.commentId)
14526
- }, null, 10, _hoisted_38)) : require__plugin_vue_export_helper.unref(isDebugging) && !isEditingThisComment.value(comment) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_39, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(editorCommentPositions)[comment.importedId !== void 0 ? comment.importedId : comment.commentId]?.bounds), 1)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_40, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_41, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14570
+ }, null, 10, _hoisted_40)) : require__plugin_vue_export_helper.unref(isDebugging) && !isEditingThisComment.value(comment) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_41, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(editorCommentPositions)[comment.importedId !== void 0 ? comment.importedId : comment.commentId]?.bounds), 1)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_42, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_43, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14527
14571
  ref_for: true,
14528
14572
  ref: setEditCommentInputRef(comment.commentId),
14529
14573
  users: [],
14530
14574
  config: require__plugin_vue_export_helper.unref(getConfig),
14531
14575
  "include-header": false,
14532
14576
  comment
14533
- }, null, 8, ["config", "comment"])]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_42, [require__plugin_vue_export_helper.createElementVNode("button", {
14577
+ }, null, 8, ["config", "comment"])]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_44, [require__plugin_vue_export_helper.createElementVNode("button", {
14534
14578
  class: "sd-button reply-btn-cancel",
14535
14579
  onClick: require__plugin_vue_export_helper.withModifiers(($event) => handleCancel(comment), ["stop", "prevent"])
14536
- }, "Cancel", 8, _hoisted_43), require__plugin_vue_export_helper.createElementVNode("button", {
14580
+ }, "Cancel", 8, _hoisted_45), require__plugin_vue_export_helper.createElementVNode("button", {
14537
14581
  class: require__plugin_vue_export_helper.normalizeClass(["sd-button primary reply-btn-primary", { "sd-is-disabled": !hasTextContent.value || isV2WriteDisabled.value }]),
14538
14582
  onClick: require__plugin_vue_export_helper.withModifiers(($event) => handleCommentUpdate(comment), ["stop", "prevent"]),
14539
14583
  disabled: !hasTextContent.value || isV2WriteDisabled.value,
14540
14584
  "data-disabled-reason": isV2WriteDisabled.value ? v2WriteCapability.value?.reason ?? null : null
14541
- }, " Update ", 10, _hoisted_44)])])),
14585
+ }, " Update ", 10, _hoisted_46)])])),
14542
14586
  shouldTruncate.value && isTextOverflowing.value && index === 0 && !isEditingThisComment.value(comment) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
14543
14587
  key: 3,
14544
14588
  class: "show-more-toggle",
@@ -14553,29 +14597,29 @@ var _sfc_main$33 = {
14553
14597
  shouldCollapseThread.value && index === 0 ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 2 }, [_cache[14] || (_cache[14] = require__plugin_vue_export_helper.createElementVNode("div", { class: "comment-separator" }, null, -1)), require__plugin_vue_export_helper.createElementVNode("div", {
14554
14598
  class: "collapsed-replies",
14555
14599
  onClick: require__plugin_vue_export_helper.withModifiers(expandThread, ["stop", "prevent"])
14556
- }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_45, [(require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, null, require__plugin_vue_export_helper.renderList(collapsedReplyAuthors.value, (author) => {
14600
+ }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_47, [(require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, null, require__plugin_vue_export_helper.renderList(collapsedReplyAuthors.value, (author) => {
14557
14601
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(Avatar_default, {
14558
14602
  key: author.email || author.name,
14559
14603
  user: author,
14560
14604
  class: "mini-avatar"
14561
14605
  }, null, 8, ["user"]);
14562
14606
  }), 128))]), require__plugin_vue_export_helper.createElementVNode("span", null, require__plugin_vue_export_helper.toDisplayString(collapsedReplyCount.value) + " more " + require__plugin_vue_export_helper.toDisplayString(collapsedReplyCount.value === 1 ? "reply" : "replies"), 1)])], 64)) : require__plugin_vue_export_helper.createCommentVNode("", true),
14563
- showSeparator.value(index) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_46)) : require__plugin_vue_export_helper.createCommentVNode("", true)
14607
+ showSeparator.value(index) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_48)) : require__plugin_vue_export_helper.createCommentVNode("", true)
14564
14608
  ]);
14565
14609
  }), 128)),
14566
- trackedChangeDecisionFailure.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_47, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_48, require__plugin_vue_export_helper.toDisplayString(trackedChangeDecisionFailureMessage.value), 1), require__plugin_vue_export_helper.createElementVNode("button", {
14610
+ trackedChangeDecisionFailure.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_49, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_50, require__plugin_vue_export_helper.toDisplayString(trackedChangeDecisionFailureMessage.value), 1), require__plugin_vue_export_helper.createElementVNode("button", {
14567
14611
  type: "button",
14568
14612
  class: "sd-button tracked-change-decision-alert__retry",
14569
14613
  onClick: require__plugin_vue_export_helper.withModifiers(retryTrackedChangeDecision, ["stop", "prevent"])
14570
14614
  }, " Retry ")])) : require__plugin_vue_export_helper.createCommentVNode("", true),
14571
- showInputSection.value && !require__plugin_vue_export_helper.unref(getConfig).readOnly ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 3 }, [!isReplying.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("button", {
14615
+ showInputSection.value && !require__plugin_vue_export_helper.unref(getConfig).readOnly ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 4 }, [!isReplying.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("button", {
14572
14616
  key: 0,
14573
14617
  type: "button",
14574
14618
  class: require__plugin_vue_export_helper.normalizeClass(["reply-pill", { "sd-is-disabled": isV2WriteDisabled.value }]),
14575
14619
  onClick: require__plugin_vue_export_helper.withModifiers(startReply, ["stop", "prevent"]),
14576
14620
  disabled: isV2WriteDisabled.value,
14577
14621
  "data-disabled-reason": isV2WriteDisabled.value ? v2WriteCapability.value?.reason ?? null : null
14578
- }, " Reply or add others with @ ", 10, _hoisted_49)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_50, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_51, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14622
+ }, " Reply or add others with @ ", 10, _hoisted_51)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_52, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_53, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14579
14623
  ref_key: "commentInput",
14580
14624
  ref: commentInput,
14581
14625
  users: usersFiltered.value,
@@ -14586,7 +14630,7 @@ var _sfc_main$33 = {
14586
14630
  "users",
14587
14631
  "config",
14588
14632
  "comment"
14589
- ])]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_52, [require__plugin_vue_export_helper.createElementVNode("button", {
14633
+ ])]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_54, [require__plugin_vue_export_helper.createElementVNode("button", {
14590
14634
  class: "sd-button reply-btn-cancel",
14591
14635
  onClick: require__plugin_vue_export_helper.withModifiers(handleCancel, ["stop", "prevent"])
14592
14636
  }, "Cancel"), require__plugin_vue_export_helper.createElementVNode("button", {
@@ -14594,12 +14638,12 @@ var _sfc_main$33 = {
14594
14638
  onClick: require__plugin_vue_export_helper.withModifiers(handleAddComment, ["stop", "prevent"]),
14595
14639
  disabled: !hasTextContent.value || isV2WriteDisabled.value || isSubmittingReply.value,
14596
14640
  "data-disabled-reason": v2ReplyDisabledReason.value
14597
- }, " Reply ", 10, _hoisted_53)])]))], 64)) : require__plugin_vue_export_helper.createCommentVNode("", true)
14641
+ }, " Reply ", 10, _hoisted_55)])]))], 64)) : require__plugin_vue_export_helper.createCommentVNode("", true)
14598
14642
  ], 64))], 14, _hoisted_1$26)), [[_directive_click_outside, handleClickOutside]]);
14599
14643
  };
14600
14644
  }
14601
14645
  };
14602
- var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-939045c1"]]);
14646
+ var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-05d27982"]]);
14603
14647
  //#endregion
14604
14648
  //#region src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue
14605
14649
  var _hoisted_1$25 = [
@@ -23300,7 +23344,8 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23300
23344
  return;
23301
23345
  }
23302
23346
  const collaborationException = createCollaborationException(reason, documentId);
23303
- const message = collaborationException?.error.message ?? getV2EditorFailureMessage(reason);
23347
+ const baseMessage = collaborationException?.error.message ?? getV2EditorFailureMessage(reason);
23348
+ const message = reason === "collaboration-config-invalid" && detail ? `${baseMessage} ${detail}` : baseMessage;
23304
23349
  const workerFailure = payload?.workerFailure && typeof payload.workerFailure === "object" ? payload.workerFailure : null;
23305
23350
  setV2EditorFailure(documentId, {
23306
23351
  reason,
@@ -23316,7 +23361,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
23316
23361
  };
23317
23362
  if (reason === "collaboration-v1-config-unsupported" || reason === "collaboration-room-format-unsupported" || reason === "collaboration-room-format-conflict" || reason === "collaboration-room-corrupt" || reason === "collaboration-v2-room-missing" || reason === "collaboration-v2-room-already-exists" || reason === "collaboration-v2-room-initializing" || reason === "collaboration-v2-room-bootstrap-stalled" || reason === "collaboration-open-intent-invalid" || reason === "collaboration-config-invalid") console.warn(`[SuperDoc] ${message}`, logContext);
23318
23363
  else console.error(`[SuperDoc] ${message}`, logContext);
23319
- proxy.$superdoc.emit("exception", collaborationException ?? {
23364
+ proxy.$superdoc.emit("exception", collaborationException && reason !== "collaboration-config-invalid" ? collaborationException : {
23320
23365
  error: new Error(message),
23321
23366
  code: reason,
23322
23367
  ...documentId ? { documentId } : {},
@@ -24544,7 +24589,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24544
24589
  ], 46, _hoisted_1$17);
24545
24590
  };
24546
24591
  }
24547
- }, [["__scopeId", "data-v-143de6c8"]]);
24592
+ }, [["__scopeId", "data-v-2fc1721f"]]);
24548
24593
  //#endregion
24549
24594
  //#region src/core/create-app.js
24550
24595
  var PINIA_DEVTOOLS_SETUP_EVENT = "devtools-plugin:setup";
@@ -46273,7 +46318,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46273
46318
  }
46274
46319
  this.userColorMap = /* @__PURE__ */ new Map();
46275
46320
  this.colorIndex = 0;
46276
- this.version = "2.28.0-next.5";
46321
+ this.version = "2.28.0-next.6";
46277
46322
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46278
46323
  this.superdocId = config.superdocId || require_uuid.v4();
46279
46324
  this.colors = this.config.colors ?? [];
@@ -46989,7 +47034,8 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46989
47034
  ...syncTimeoutOption,
46990
47035
  ...target.serverUrl ? { serverUrl: target.serverUrl } : {},
46991
47036
  ...target.params ? { params: target.params } : {},
46992
- ...target.token ? { token: target.token } : {}
47037
+ ...target.token ? { token: target.token } : {},
47038
+ ...target.retry !== void 0 ? { retry: target.retry } : {}
46993
47039
  };
46994
47040
  return {
46995
47041
  providerType: "y-websocket",