superdoc 2.27.0-next.1 → 2.27.0-next.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (53) hide show
  1. package/dist/chunks/{create-super-doc-ui-BCQ5RHxy.es.js → create-super-doc-ui-B29zw5qD.es.js} +192 -13
  2. package/dist/chunks/{create-super-doc-ui-DK14sCrT.cjs → create-super-doc-ui-D1eOhAjv.cjs} +197 -12
  3. package/dist/collaboration-upgrade-engine.cjs +1 -1
  4. package/dist/collaboration-upgrade-engine.es.js +1 -1
  5. package/dist/document-api/src/contract/operation-definitions.d.ts +2 -2
  6. package/dist/document-api/src/history/history.types.d.ts +0 -6
  7. package/dist/document-api/src/index.d.ts +4 -4
  8. package/dist/document-api/src/lists/lists.types.d.ts +3 -0
  9. package/dist/document-api/src/styles/apply.d.ts +26 -2
  10. package/dist/document-api/src/styles/index.d.ts +3 -3
  11. package/dist/document-api/src/styles/schema.d.ts +3 -1
  12. package/dist/document-api/src/styles/validation.d.ts +10 -9
  13. package/dist/document-api/src/types/receipt.d.ts +2 -1
  14. package/dist/document-api/src/types/temporary-mutation.d.ts +39 -4
  15. package/dist/layout-engine/contracts/src/direction-context.d.ts +1 -2
  16. package/dist/layout-engine/contracts/src/resolved-layout.d.ts +0 -34
  17. package/dist/layout-engine/layout-bridge/src/neutral-hit.d.ts +0 -7
  18. package/dist/layout-engine/layout-engine/src/index.d.ts +0 -1
  19. package/dist/layout-engine/painters/dom/src/features/inline-direction/run-direction.d.ts +0 -3
  20. package/dist/public/ui-react.cjs +1 -1
  21. package/dist/public/ui-react.es.js +1 -1
  22. package/dist/public/ui-vue.cjs +1 -1
  23. package/dist/public/ui-vue.es.js +1 -1
  24. package/dist/public/ui.cjs +1 -1
  25. package/dist/public/ui.es.js +1 -1
  26. package/dist/style.css +1 -1
  27. package/dist/style.layered.css +1 -1
  28. package/dist/superdoc/src/core/types/index.d.ts +3 -60
  29. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +2 -5
  30. package/dist/superdoc/src/helpers/tracked-change-comment-lane.d.ts +1 -0
  31. package/dist/superdoc/src/helpers/v2-review-mutation-impact.d.ts +0 -6
  32. package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +3 -1
  33. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +1 -0
  34. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +1 -0
  35. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +7 -0
  36. package/dist/superdoc/src/public/ui/types.d.ts +5 -1
  37. package/dist/superdoc/src/public/ui-react.d.ts +0 -5
  38. package/dist/superdoc/src/public/ui-vue.d.ts +0 -5
  39. package/dist/superdoc/src/public/ui.d.cts +18 -0
  40. package/dist/superdoc/src/public/ui.d.ts +1 -10
  41. package/dist/superdoc.cjs +117 -85
  42. package/dist/superdoc.es.js +110 -80
  43. package/dist-cdn/style.layered.css +1 -1
  44. package/dist-cdn/superdoc.min.css +1 -1
  45. package/dist-cdn/superdoc.min.js +38 -38
  46. package/package.json +2 -5
  47. package/dist/superdoc/src/components/CommentsLayer/comment-schemas.d.ts +0 -18
  48. package/dist/superdoc/src/components/CommentsLayer/types.d.ts +0 -3
  49. package/dist/superdoc/src/components/CommentsLayer/use-conversation.d.ts +0 -22
  50. package/dist/superdoc/src/components/CommentsLayer/use-floating-comment.d.ts +0 -11
  51. package/dist/superdoc/src/core/collaboration/room-overwrite.d.ts +0 -22
  52. package/dist/superdoc/src/core/index.d.ts +0 -1
  53. package/dist/superdoc/src/stores/hrbr-fields-store.d.ts +0 -43
package/dist/superdoc.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("./chunks/rolldown-runtime-74VwNCz7.cjs");
3
3
  const require_blank_docx = require("./chunks/blank-docx-BuFAbRjs.cjs");
4
- const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-DK14sCrT.cjs");
4
+ const require_create_super_doc_ui = require("./chunks/create-super-doc-ui-D1eOhAjv.cjs");
5
5
  const require_eventemitter3 = require("./chunks/eventemitter3-C_TAnXOl.cjs");
6
6
  const require_uuid = require("./chunks/uuid-BhG0ngwk.cjs");
7
7
  const require__plugin_vue_export_helper = require("./chunks/_plugin-vue_export-helper-BUdjGKyl.cjs");
@@ -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.27.0-next.1";
263
+ return "2.27.0-next.11";
264
264
  } catch {
265
265
  return "unknown";
266
266
  }
@@ -7087,19 +7087,8 @@ async function loadDefaultV2IntegrationOrFallback() {
7087
7087
  console.error("[SuperDoc] DOCX Engine failed to load; using the stub.", error);
7088
7088
  }
7089
7089
  }
7090
- var V2_SYNTHETIC_TRACKED_CHANGE_COMMENT_ID_PREFIX = "tc-comment:";
7091
7090
  var V2_BODY_TRACKED_CHANGE_ANCHOR_PREFIX = "tc::body::";
7092
7091
  /**
7093
- * @param {unknown} item
7094
- * @returns {boolean}
7095
- */
7096
- function isSyntheticTrackedChangeCommentLaneItem(item) {
7097
- if (!item || typeof item !== "object") return false;
7098
- const id = item.id ?? item.commentId;
7099
- if (typeof id !== "string") return false;
7100
- return id.startsWith(V2_SYNTHETIC_TRACKED_CHANGE_COMMENT_ID_PREFIX);
7101
- }
7102
- /**
7103
7092
  * @param {{ trackedChange?: unknown, trackedChangeAnchorKey?: unknown } | null | undefined} row
7104
7093
  * @returns {boolean}
7105
7094
  */
@@ -7165,7 +7154,7 @@ function createStubV2Integration() {
7165
7154
  RulerComponent: null,
7166
7155
  createGeometryPublisher: createStubGeometryPublisher,
7167
7156
  createReviewWindowController: createStubReviewWindowController,
7168
- isSyntheticTrackedChangeCommentLaneItem,
7157
+ isSyntheticTrackedChangeCommentLaneItem: require_create_super_doc_ui.isSyntheticTrackedChangeCommentLaneItem,
7169
7158
  isV2SyntheticTrackedChangeRow
7170
7159
  };
7171
7160
  }
@@ -9352,7 +9341,7 @@ var useCommentsStore = defineStore("comments", () => {
9352
9341
  }
9353
9342
  const documentId = superdoc?.activeEditor?.documentId ?? superdoc?.activeEditor?.options?.documentId ?? commentsAdapter.documentId ?? trackedChangesAdapter.documentId ?? null;
9354
9343
  const document = documentId != null ? superdocStore.getDocument(String(documentId)) : null;
9355
- const mappedCommentInputs = commentItems.filter((item) => !isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => commentsAdapter.mapV2CommentToUseCommentInput(item, {
9344
+ const mappedCommentInputs = commentItems.filter((item) => !require_create_super_doc_ui.isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => commentsAdapter.mapV2CommentToUseCommentInput(item, {
9356
9345
  fileId: documentId,
9357
9346
  fileType: document?.type ?? null
9358
9347
  })).filter(Boolean);
@@ -9885,7 +9874,7 @@ var useCommentsStore = defineStore("comments", () => {
9885
9874
  ...input.selection,
9886
9875
  documentId: normalizedDocumentId
9887
9876
  }
9888
- })) : effectiveCommentItems.filter((item) => !isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => commentsAdapter.mapV2CommentToUseCommentInput(item, {
9877
+ })) : effectiveCommentItems.filter((item) => !require_create_super_doc_ui.isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => commentsAdapter.mapV2CommentToUseCommentInput(item, {
9889
9878
  fileId: normalizedDocumentId,
9890
9879
  fileType
9891
9880
  })).filter(Boolean);
@@ -9990,7 +9979,7 @@ var useCommentsStore = defineStore("comments", () => {
9990
9979
  const incomingByCommentId = /* @__PURE__ */ new Map();
9991
9980
  const trackedChangeSidecarParentByCommentId = /* @__PURE__ */ new Map();
9992
9981
  const mappedInputs = [];
9993
- const candidateInputs = Array.isArray(preparedInputs) ? preparedInputs : items.filter((item) => !isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => adapter.mapV2CommentToUseCommentInput(item, {
9982
+ const candidateInputs = Array.isArray(preparedInputs) ? preparedInputs : items.filter((item) => !require_create_super_doc_ui.isSyntheticTrackedChangeCommentLaneItem(item)).map((item) => adapter.mapV2CommentToUseCommentInput(item, {
9994
9983
  fileId: effectiveDocumentId,
9995
9984
  fileType
9996
9985
  })).filter(Boolean);
@@ -12266,11 +12255,11 @@ function useUiFontFamily() {
12266
12255
  //#region src/components/CommentsLayer/CommentsDropdown.vue
12267
12256
  var _hoisted_1$31 = { class: "comments-dropdown" };
12268
12257
  var _hoisted_2$24 = ["onClick"];
12269
- var _hoisted_3$20 = {
12258
+ var _hoisted_3$21 = {
12270
12259
  key: 0,
12271
12260
  class: "comments-dropdown__option-icon"
12272
12261
  };
12273
- var _hoisted_4$14 = ["innerHTML"];
12262
+ var _hoisted_4$15 = ["innerHTML"];
12274
12263
  var _hoisted_5$11 = { class: "comments-dropdown__option-label" };
12275
12264
  var _sfc_main$38 = {
12276
12265
  __name: "CommentsDropdown",
@@ -12411,10 +12400,10 @@ var _sfc_main$38 = {
12411
12400
  key: option.key,
12412
12401
  class: require__plugin_vue_export_helper.normalizeClass(["comments-dropdown__option", { "sd-disabled": option.disabled }]),
12413
12402
  onClick: ($event) => onOptionClick(option)
12414
- }, [hasIcon(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$20, [option.iconString ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", {
12403
+ }, [hasIcon(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$21, [option.iconString ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", {
12415
12404
  key: 0,
12416
12405
  innerHTML: option.iconString
12417
- }, null, 8, _hoisted_4$14)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(require__plugin_vue_export_helper.unref(OptionIcon), {
12406
+ }, null, 8, _hoisted_4$15)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(require__plugin_vue_export_helper.unref(OptionIcon), {
12418
12407
  key: 1,
12419
12408
  option
12420
12409
  }, null, 8, ["option"]))])) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_5$11, require__plugin_vue_export_helper.toDisplayString(option.label), 1)], 10, _hoisted_2$24);
@@ -12427,8 +12416,8 @@ var CommentsDropdown_default = /*#__PURE__*/ require__plugin_vue_export_helper._
12427
12416
  //#region src/components/CommentsLayer/InternalDropdown.vue
12428
12417
  var _hoisted_1$30 = { class: "sd-comment-option" };
12429
12418
  var _hoisted_2$23 = ["innerHTML"];
12430
- var _hoisted_3$19 = { class: "sd-option-state" };
12431
- var _hoisted_4$13 = ["innerHTML"];
12419
+ var _hoisted_3$20 = { class: "sd-option-state" };
12420
+ var _hoisted_4$14 = ["innerHTML"];
12432
12421
  var _sfc_main$37 = {
12433
12422
  __name: "InternalDropdown",
12434
12423
  props: {
@@ -12501,11 +12490,11 @@ var _sfc_main$37 = {
12501
12490
  class: "sd-active-icon",
12502
12491
  innerHTML: activeIcon.value
12503
12492
  }, null, 8, _hoisted_2$23),
12504
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$19, require__plugin_vue_export_helper.toDisplayString(getState.value), 1),
12493
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$20, require__plugin_vue_export_helper.toDisplayString(getState.value), 1),
12505
12494
  require__plugin_vue_export_helper.createElementVNode("div", {
12506
12495
  class: "sd-dropdown-caret",
12507
12496
  innerHTML: require__plugin_vue_export_helper.unref(superdocIcons).caretDown
12508
- }, null, 8, _hoisted_4$13)
12497
+ }, null, 8, _hoisted_4$14)
12509
12498
  ])]),
12510
12499
  _: 1
12511
12500
  }, 8, ["disabled", "content-style"])], 4);
@@ -12664,7 +12653,7 @@ var isAllowed = (permission, role, isInternal, context = {}) => {
12664
12653
  //#region src/components/general/Avatar.vue
12665
12654
  var _hoisted_1$29 = { class: "user-container" };
12666
12655
  var _hoisted_2$22 = ["src"];
12667
- var _hoisted_3$18 = {
12656
+ var _hoisted_3$19 = {
12668
12657
  key: 1,
12669
12658
  class: "user-bg"
12670
12659
  };
@@ -12689,7 +12678,7 @@ var _sfc_main$36 = {
12689
12678
  key: 0,
12690
12679
  class: "user-bg",
12691
12680
  src: __props.user.image.startsWith("http") ? __props.user.image : `data:image/png;base64,${__props.user.image}`
12692
- }, null, 8, _hoisted_2$22)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$18, require__plugin_vue_export_helper.toDisplayString(getInitials(__props.user.name, __props.user.email)), 1))]);
12681
+ }, null, 8, _hoisted_2$22)) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$19, require__plugin_vue_export_helper.toDisplayString(getInitials(__props.user.name, __props.user.email)), 1))]);
12693
12682
  };
12694
12683
  }
12695
12684
  };
@@ -12698,8 +12687,8 @@ var Avatar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue
12698
12687
  //#region src/components/CommentsLayer/CommentHeader.vue
12699
12688
  var _hoisted_1$28 = { class: "card-section comment-header" };
12700
12689
  var _hoisted_2$21 = { class: "comment-header-left" };
12701
- var _hoisted_3$17 = { class: "user-info" };
12702
- var _hoisted_4$12 = { class: "user-name" };
12690
+ var _hoisted_3$18 = { class: "user-info" };
12691
+ var _hoisted_4$13 = { class: "user-name" };
12703
12692
  var _hoisted_5$10 = {
12704
12693
  key: 0,
12705
12694
  class: "imported-tag"
@@ -12959,7 +12948,7 @@ var _sfc_main$35 = {
12959
12948
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_1$28, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_2$21, [require__plugin_vue_export_helper.createVNode(Avatar_default, {
12960
12949
  user: getCurrentUser.value,
12961
12950
  class: "avatar"
12962
- }, null, 8, ["user"]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$17, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$12, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(getCurrentUser.value.name), 1), isImported.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_5$10, "IMPORTED")) : require__plugin_vue_export_helper.createCommentVNode("", true)]), props.comment.createdTime ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_6$8, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(formatDate)(props.comment.createdTime)), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)])]), require__plugin_vue_export_helper.createElementVNode("div", { class: require__plugin_vue_export_helper.normalizeClass(["overflow-menu", { "is-visible": props.isActive }]) }, [
12951
+ }, null, 8, ["user"]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$18, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$13, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(getCurrentUser.value.name), 1), isImported.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_5$10, "IMPORTED")) : require__plugin_vue_export_helper.createCommentVNode("", true)]), props.comment.createdTime ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_6$8, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(formatDate)(props.comment.createdTime)), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)])]), require__plugin_vue_export_helper.createElementVNode("div", { class: require__plugin_vue_export_helper.normalizeClass(["overflow-menu", { "is-visible": props.isActive }]) }, [
12963
12952
  allowResolve.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
12964
12953
  key: 0,
12965
12954
  class: require__plugin_vue_export_helper.normalizeClass(["overflow-menu__icon", { "sd-is-disabled": Boolean(__props.resolveDisabledReason) }]),
@@ -13005,17 +12994,17 @@ var _sfc_main$35 = {
13005
12994
  };
13006
12995
  }
13007
12996
  };
13008
- var CommentHeader_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$35, [["__scopeId", "data-v-f2f11c96"]]);
12997
+ var CommentHeader_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$35, [["__scopeId", "data-v-b2a33943"]]);
13009
12998
  //#endregion
13010
12999
  //#region src/components/CommentsLayer/CommentInput.vue
13011
13000
  var _hoisted_1$27 = { class: "input-section" };
13012
13001
  var _hoisted_2$20 = { class: "comment-composer" };
13013
- var _hoisted_3$16 = [
13002
+ var _hoisted_3$17 = [
13014
13003
  "aria-expanded",
13015
13004
  "aria-controls",
13016
13005
  "aria-activedescendant"
13017
13006
  ];
13018
- var _hoisted_4$11 = [
13007
+ var _hoisted_4$12 = [
13019
13008
  "id",
13020
13009
  "aria-selected",
13021
13010
  "data-sd-comment-mention-option",
@@ -13205,7 +13194,7 @@ var _sfc_main$34 = {
13205
13194
  onKeydown,
13206
13195
  onFocus: _cache[1] || (_cache[1] = ($event) => handleFocusChange(true)),
13207
13196
  onBlur: _cache[2] || (_cache[2] = ($event) => handleFocusChange(false))
13208
- }, null, 40, _hoisted_3$16), [[require__plugin_vue_export_helper.vModelText, commentDraft.value]]), mentionListOpen.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
13197
+ }, null, 40, _hoisted_3$17), [[require__plugin_vue_export_helper.vModelText, commentDraft.value]]), mentionListOpen.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
13209
13198
  key: 0,
13210
13199
  id: mentionListId,
13211
13200
  class: "comment-mention-list",
@@ -13221,7 +13210,7 @@ var _sfc_main$34 = {
13221
13210
  "aria-selected": index === highlightedMentionIndex.value,
13222
13211
  "data-sd-comment-mention-option": userKey(user),
13223
13212
  onMousedown: require__plugin_vue_export_helper.withModifiers(($event) => selectMention(user), ["prevent"])
13224
- }, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_5$9, require__plugin_vue_export_helper.toDisplayString(displayName(user)), 1), user.email ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_6$7, require__plugin_vue_export_helper.toDisplayString(user.email), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 42, _hoisted_4$11);
13213
+ }, [require__plugin_vue_export_helper.createElementVNode("span", _hoisted_5$9, require__plugin_vue_export_helper.toDisplayString(displayName(user)), 1), user.email ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_6$7, require__plugin_vue_export_helper.toDisplayString(user.email), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 42, _hoisted_4$12);
13225
13214
  }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true)])], 2)]);
13226
13215
  };
13227
13216
  }
@@ -13348,8 +13337,8 @@ var _hoisted_2$19 = {
13348
13337
  key: 0,
13349
13338
  class: "existing-internal-input"
13350
13339
  };
13351
- var _hoisted_3$15 = { class: "new-comment-input-wrapper" };
13352
- var _hoisted_4$10 = { class: "reply-actions" };
13340
+ var _hoisted_3$16 = { class: "new-comment-input-wrapper" };
13341
+ var _hoisted_4$11 = { class: "reply-actions" };
13353
13342
  var _hoisted_5$8 = ["disabled"];
13354
13343
  var _hoisted_6$6 = {
13355
13344
  key: 0,
@@ -14428,7 +14417,7 @@ var _sfc_main$33 = {
14428
14417
  comment: props.comment,
14429
14418
  "is-pending-input": true
14430
14419
  }, null, 8, ["config", "comment"]),
14431
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$15, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14420
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$16, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14432
14421
  ref_key: "commentInput",
14433
14422
  ref: commentInput,
14434
14423
  users: usersFiltered.value,
@@ -14440,7 +14429,7 @@ var _sfc_main$33 = {
14440
14429
  "config",
14441
14430
  "comment"
14442
14431
  ])]),
14443
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$10, [require__plugin_vue_export_helper.createElementVNode("button", {
14432
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$11, [require__plugin_vue_export_helper.createElementVNode("button", {
14444
14433
  class: "sd-button reply-btn-cancel",
14445
14434
  onClick: require__plugin_vue_export_helper.withModifiers(handleCancel, ["stop", "prevent"])
14446
14435
  }, "Cancel"), require__plugin_vue_export_helper.createElementVNode("button", {
@@ -14617,7 +14606,7 @@ var _sfc_main$33 = {
14617
14606
  };
14618
14607
  }
14619
14608
  };
14620
- var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-b16fc5d0"]]);
14609
+ var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-f5016db4"]]);
14621
14610
  //#endregion
14622
14611
  //#region src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue
14623
14612
  var _hoisted_1$25 = [
@@ -14767,7 +14756,7 @@ var ReviewDirectoryListItem_default = /*#__PURE__*/ require__plugin_vue_export_h
14767
14756
  //#region src/components/CommentsLayer/commentsList/commentsList.vue
14768
14757
  var _hoisted_1$24 = ["aria-busy"];
14769
14758
  var _hoisted_2$18 = { key: 0 };
14770
- var _hoisted_3$14 = { key: 1 };
14759
+ var _hoisted_3$15 = { key: 1 };
14771
14760
  var REPEATED_HEADER_FOOTER_STORY_TYPE = "headerFooterPart";
14772
14761
  var _sfc_main$31 = {
14773
14762
  __name: "commentsList",
@@ -14911,7 +14900,7 @@ var _sfc_main$31 = {
14911
14900
  "total",
14912
14901
  "tab-index"
14913
14902
  ]);
14914
- }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true), shouldShowResolvedComments.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_3$14, [_cache[2] || (_cache[2] = require__plugin_vue_export_helper.createElementVNode("div", { class: "comment-title" }, "Resolved", -1)), (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(resolvedCommentDisplayItems.value, (item, index) => {
14903
+ }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true), shouldShowResolvedComments.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_3$15, [_cache[2] || (_cache[2] = require__plugin_vue_export_helper.createElementVNode("div", { class: "comment-title" }, "Resolved", -1)), (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(resolvedCommentDisplayItems.value, (item, index) => {
14915
14904
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(ReviewDirectoryListItem_default, {
14916
14905
  key: item.id,
14917
14906
  item,
@@ -19037,11 +19026,11 @@ var _hoisted_2$16 = {
19037
19026
  key: 1,
19038
19027
  class: "link-title"
19039
19028
  };
19040
- var _hoisted_3$13 = {
19029
+ var _hoisted_3$14 = {
19041
19030
  key: 2,
19042
19031
  class: "link-title"
19043
19032
  };
19044
- var _hoisted_4$9 = {
19033
+ var _hoisted_4$10 = {
19045
19034
  key: 3,
19046
19035
  class: "link-title"
19047
19036
  };
@@ -19300,7 +19289,7 @@ var _sfc_main$26 = {
19300
19289
  };
19301
19290
  return (_ctx, _cache) => {
19302
19291
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", { class: require__plugin_vue_export_helper.normalizeClass(["link-input-ctn", { "high-contrast": require__plugin_vue_export_helper.unref(isHighContrastMode) }]) }, [
19303
- isAnchor.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_1$20, "Page anchor")) : isViewingMode.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_2$16, "Link details")) : isEditing.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_3$13, "Edit link")) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_4$9, "Add link")),
19292
+ isAnchor.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_1$20, "Page anchor")) : isViewingMode.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_2$16, "Link details")) : isEditing.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_3$14, "Edit link")) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_4$10, "Add link")),
19304
19293
  __props.showInput && !isAnchor.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_5$7, [
19305
19294
  require__plugin_vue_export_helper.createElementVNode("div", _hoisted_6$5, [_cache[5] || (_cache[5] = require__plugin_vue_export_helper.createElementVNode("div", { class: "input-icon text-input-icon" }, "T", -1)), require__plugin_vue_export_helper.withDirectives(require__plugin_vue_export_helper.createElementVNode("input", {
19306
19295
  type: "text",
@@ -21401,7 +21390,7 @@ var FOCUSABLE_SELECTOR = [
21401
21390
  //#region src/components/surfaces/SurfaceDialog.vue
21402
21391
  var _hoisted_1$19 = ["aria-labelledby", "aria-label"];
21403
21392
  var _hoisted_2$15 = ["id"];
21404
- var _hoisted_3$12 = { class: "sd-surface-dialog__content" };
21393
+ var _hoisted_3$13 = { class: "sd-surface-dialog__content" };
21405
21394
  var _sfc_main$24 = {
21406
21395
  __name: "SurfaceDialog",
21407
21396
  props: {
@@ -21533,7 +21522,7 @@ var _sfc_main$24 = {
21533
21522
  key: 0,
21534
21523
  id: titleId.value,
21535
21524
  class: "sd-surface-dialog__title"
21536
- }, require__plugin_vue_export_helper.toDisplayString(__props.surface.request.title), 9, _hoisted_2$15)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$12, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21525
+ }, require__plugin_vue_export_helper.toDisplayString(__props.surface.request.title), 9, _hoisted_2$15)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$13, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21537
21526
  key: 0,
21538
21527
  "surface-id": __props.surface.id,
21539
21528
  mode: "dialog",
@@ -21556,7 +21545,7 @@ var SurfaceDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plu
21556
21545
  //#region src/components/surfaces/SurfaceFloating.vue
21557
21546
  var _hoisted_1$18 = ["aria-labelledby", "aria-label"];
21558
21547
  var _hoisted_2$14 = ["id"];
21559
- var _hoisted_3$11 = { class: "sd-surface-floating__content" };
21548
+ var _hoisted_3$12 = { class: "sd-surface-floating__content" };
21560
21549
  var _sfc_main$23 = {
21561
21550
  __name: "SurfaceFloating",
21562
21551
  props: { surface: {
@@ -21688,7 +21677,7 @@ var _sfc_main$23 = {
21688
21677
  key: 0,
21689
21678
  id: titleId.value,
21690
21679
  class: "sd-surface-floating__title"
21691
- }, require__plugin_vue_export_helper.toDisplayString(__props.surface.request.title), 9, _hoisted_2$14)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$11, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21680
+ }, require__plugin_vue_export_helper.toDisplayString(__props.surface.request.title), 9, _hoisted_2$14)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$12, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21692
21681
  key: 0,
21693
21682
  "surface-id": __props.surface.id,
21694
21683
  mode: "floating",
@@ -21936,8 +21925,8 @@ var SurfaceHost_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugi
21936
21925
  //#region src/SuperDoc.vue
21937
21926
  var _hoisted_1$17 = ["data-superdoc-ui-owner"];
21938
21927
  var _hoisted_2$13 = ["innerHTML"];
21939
- var _hoisted_3$10 = { class: "superdoc__document document" };
21940
- var _hoisted_4$8 = { class: "floating-comments" };
21928
+ var _hoisted_3$11 = { class: "superdoc__document document" };
21929
+ var _hoisted_4$9 = { class: "floating-comments" };
21941
21930
  var TRACKED_CHANGE_CARRIERS_RESTAMPED_EVENT = "superdoc:v2-tracked-change-carriers-restamped";
21942
21931
  var UNAVAILABLE_COMMAND_RESULT = false;
21943
21932
  var V2_SELECTION_TOOLBAR_SYNC_RETRY_FRAMES = 3;
@@ -24416,7 +24405,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24416
24405
  }, [require__plugin_vue_export_helper.createElementVNode("div", {
24417
24406
  class: "superdoc__tools-icon",
24418
24407
  innerHTML: require__plugin_vue_export_helper.unref(superdocIcons).comment
24419
- }, null, 8, _hoisted_2$13)], 32)], 4)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$10, [
24408
+ }, null, 8, _hoisted_2$13)], 32)], 4)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$11, [
24420
24409
  isCommentsEnabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
24421
24410
  key: 0,
24422
24411
  class: "superdoc__selection-layer selection-layer",
@@ -24544,7 +24533,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24544
24533
  ref_key: "rightSidebarRef",
24545
24534
  ref: rightSidebarRef,
24546
24535
  class: "superdoc__right-sidebar right-sidebar"
24547
- }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$8, [require__plugin_vue_export_helper.unref(hasInitializedLocations) && (floatingComments.value.length > 0 || require__plugin_vue_export_helper.unref(pendingComment)) ? (require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 0 }, require__plugin_vue_export_helper.renderList(require__plugin_vue_export_helper.unref(documentsWithConverations), (doc) => {
24536
+ }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$9, [require__plugin_vue_export_helper.unref(hasInitializedLocations) && (floatingComments.value.length > 0 || require__plugin_vue_export_helper.unref(pendingComment)) ? (require__plugin_vue_export_helper.openBlock(true), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 0 }, require__plugin_vue_export_helper.renderList(require__plugin_vue_export_helper.unref(documentsWithConverations), (doc) => {
24548
24537
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(FloatingComments_default, {
24549
24538
  parent: layers.value,
24550
24539
  "current-document": doc
@@ -37951,13 +37940,6 @@ var TOOLBAR_ITEM_ALIASES = Object.freeze({
37951
37940
  * `superdoc.ui`.
37952
37941
  * - `ui: { ... }` opts in per surface. An omitted key keeps that surface's
37953
37942
  * historical default rather than inheriting from its siblings.
37954
- *
37955
- * AIDEV-NOTE: legacy-public - the `modules.*` built-in UI spellings shipped in
37956
- * stable 2.3.0 and stay supported for all of v2, so these branches are load
37957
- * bearing rather than scaffolding. Every built-in surface now has a canonical
37958
- * path: use `ui.*`, `interaction.*`, `surfaces.*`, or `hyperlinks.*`, with
37959
- * comment policy on `interaction.comments` and hyperlink activation on
37960
- * `hyperlinks.onActivate`. Earliest removal: v3.0.
37961
37943
  */
37962
37944
  var isUnknownArray = (value) => Array.isArray(value);
37963
37945
  var isOptionsBag = (value) => require_create_super_doc_ui.isPlainObject(value);
@@ -39056,8 +39038,8 @@ var _hoisted_1$15 = [
39056
39038
  "aria-disabled"
39057
39039
  ];
39058
39040
  var _hoisted_2$11 = ["data-item"];
39059
- var _hoisted_3$9 = ["data-item"];
39060
- var _hoisted_4$7 = {
39041
+ var _hoisted_3$10 = ["data-item"];
39042
+ var _hoisted_4$8 = {
39061
39043
  key: 1,
39062
39044
  class: "sd-button-label"
39063
39045
  };
@@ -39278,7 +39260,7 @@ var _sfc_main$19 = {
39278
39260
  "color",
39279
39261
  "icon",
39280
39262
  "name"
39281
- ])) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.unref(label) && !require__plugin_vue_export_helper.unref(hideLabel) && !require__plugin_vue_export_helper.unref(inlineTextInputVisible) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_4$7, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(label)), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 8, _hoisted_3$9)) : require__plugin_vue_export_helper.createCommentVNode("", true),
39263
+ ])) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.unref(label) && !require__plugin_vue_export_helper.unref(hideLabel) && !require__plugin_vue_export_helper.unref(inlineTextInputVisible) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_4$8, require__plugin_vue_export_helper.toDisplayString(require__plugin_vue_export_helper.unref(label)), 1)) : require__plugin_vue_export_helper.createCommentVNode("", true)], 8, _hoisted_3$10)) : require__plugin_vue_export_helper.createCommentVNode("", true),
39282
39264
  isSplit.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
39283
39265
  key: 1,
39284
39266
  class: "sd-toolbar-button__caret",
@@ -39382,8 +39364,8 @@ var ToolbarSeparator_default = /*#__PURE__*/ require__plugin_vue_export_helper._
39382
39364
  //#region src/internal/toolbar/built-in/ToolbarDropdown.vue
39383
39365
  var _hoisted_1$13 = { class: "toolbar-dropdown" };
39384
39366
  var _hoisted_2$10 = ["data-superdoc-ui-owner"];
39385
- var _hoisted_3$8 = ["onClick"];
39386
- var _hoisted_4$6 = {
39367
+ var _hoisted_3$9 = ["onClick"];
39368
+ var _hoisted_4$7 = {
39387
39369
  key: 0,
39388
39370
  class: "toolbar-dropdown-option__icon"
39389
39371
  };
@@ -39772,7 +39754,7 @@ var _sfc_main$17 = {
39772
39754
  }), [isRenderOption(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(require__plugin_vue_export_helper.unref(RenderOption), {
39773
39755
  key: 0,
39774
39756
  option
39775
- }, null, 8, ["option"])) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 1 }, [hasIcon(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_4$6, [require__plugin_vue_export_helper.createVNode(require__plugin_vue_export_helper.unref(OptionIcon), { option }, null, 8, ["option"])])) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_5$5, require__plugin_vue_export_helper.toDisplayString(option.label), 1)], 64))], 16, _hoisted_3$8);
39757
+ }, null, 8, ["option"])) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock(require__plugin_vue_export_helper.Fragment, { key: 1 }, [hasIcon(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_4$7, [require__plugin_vue_export_helper.createVNode(require__plugin_vue_export_helper.unref(OptionIcon), { option }, null, 8, ["option"])])) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("span", _hoisted_5$5, require__plugin_vue_export_helper.toDisplayString(option.label), 1)], 64))], 16, _hoisted_3$9);
39776
39758
  }), 128))], 16, _hoisted_2$10)) : require__plugin_vue_export_helper.createCommentVNode("", true)]),
39777
39759
  _: 3
39778
39760
  })], 8, ["to"]))]);
@@ -40015,12 +39997,12 @@ var _hoisted_2$9 = [
40015
39997
  "aria-activedescendant",
40016
39998
  "data-item"
40017
39999
  ];
40018
- var _hoisted_3$7 = [
40000
+ var _hoisted_3$8 = [
40019
40001
  "data-item",
40020
40002
  "aria-label",
40021
40003
  "disabled"
40022
40004
  ];
40023
- var _hoisted_4$5 = ["innerHTML"];
40005
+ var _hoisted_4$6 = ["innerHTML"];
40024
40006
  var _hoisted_5$4 = [
40025
40007
  "data-superdoc-ui-owner",
40026
40008
  "id",
@@ -40488,7 +40470,7 @@ var _sfc_main$15 = {
40488
40470
  }, [require__plugin_vue_export_helper.createElementVNode("span", {
40489
40471
  class: "sd-dropdown-caret",
40490
40472
  innerHTML: caretIcon.value
40491
- }, null, 8, _hoisted_4$5)], 40, _hoisted_3$7),
40473
+ }, null, 8, _hoisted_4$6)], 40, _hoisted_3$8),
40492
40474
  (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(require__plugin_vue_export_helper.Teleport, { to: "body" }, [isOpen.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
40493
40475
  key: 0,
40494
40476
  ref_key: "popupRef",
@@ -40835,8 +40817,8 @@ var _hoisted_1$11 = [
40835
40817
  "data-item-id"
40836
40818
  ];
40837
40819
  var _hoisted_2$8 = { key: 0 };
40838
- var _hoisted_3$6 = { key: 0 };
40839
- var _hoisted_4$4 = { key: 0 };
40820
+ var _hoisted_3$7 = { key: 0 };
40821
+ var _hoisted_4$5 = { key: 0 };
40840
40822
  var _hoisted_5$3 = { key: 0 };
40841
40823
  var _hoisted_6$2 = { key: 0 };
40842
40824
  var _sfc_main$11 = {
@@ -41240,7 +41222,7 @@ var _sfc_main$11 = {
41240
41222
  onTabOut: _cache[1] || (_cache[1] = ($event) => handleFontSizeTabOut($event)),
41241
41223
  onEditorHandoff: handleEditorHandoff
41242
41224
  }, null, 8, ["item", "ui-font-family"])]),
41243
- default: require__plugin_vue_export_helper.withCtx(() => [require__plugin_vue_export_helper.createElementVNode("div", null, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$6, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41225
+ default: require__plugin_vue_export_helper.withCtx(() => [require__plugin_vue_export_helper.createElementVNode("div", null, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_3$7, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41244
41226
  _: 2
41245
41227
  }, 1032, ["disabled", "content-style"])) : isDropdown(item) && item.nestedOptions?.value?.length ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(ToolbarDropdown_default, {
41246
41228
  key: 3,
@@ -41277,7 +41259,7 @@ var _sfc_main$11 = {
41277
41259
  "onTextSubmit",
41278
41260
  "onMainClick"
41279
41261
  ])]),
41280
- default: require__plugin_vue_export_helper.withCtx(() => [require__plugin_vue_export_helper.createElementVNode("div", null, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_4$4, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41262
+ default: require__plugin_vue_export_helper.withCtx(() => [require__plugin_vue_export_helper.createElementVNode("div", null, [require__plugin_vue_export_helper.createTextVNode(require__plugin_vue_export_helper.toDisplayString(item.tooltip) + " ", 1), item.disabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("span", _hoisted_4$5, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41281
41263
  _: 2
41282
41264
  }, 1032, ["disabled", "content-style"])]),
41283
41265
  _: 2
@@ -41330,7 +41312,7 @@ var _sfc_main$11 = {
41330
41312
  };
41331
41313
  }
41332
41314
  };
41333
- var ButtonGroup_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$11, [["__scopeId", "data-v-8d7a9de1"]]);
41315
+ var ButtonGroup_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$11, [["__scopeId", "data-v-fb216897"]]);
41334
41316
  var TOOLBAR_FONTS = [
41335
41317
  ["Arial", "sans-serif"],
41336
41318
  ["Arial Black", "sans-serif"],
@@ -42151,8 +42133,8 @@ var numberedStyleButtons = [
42151
42133
  //#region src/internal/toolbar/built-in/DocumentMode.vue
42152
42134
  var _hoisted_1$7 = ["onClick", "onKeydown"];
42153
42135
  var _hoisted_2$7 = { class: "document-mode-column icon-column" };
42154
- var _hoisted_3$5 = ["innerHTML"];
42155
- var _hoisted_4$3 = { class: "document-mode-column text-column" };
42136
+ var _hoisted_3$6 = ["innerHTML"];
42137
+ var _hoisted_4$4 = { class: "document-mode-column text-column" };
42156
42138
  var _hoisted_5$2 = { class: "document-mode-type" };
42157
42139
  var _hoisted_6$1 = { class: "document-mode-description" };
42158
42140
  var _sfc_main$7 = {
@@ -42215,7 +42197,7 @@ var _sfc_main$7 = {
42215
42197
  }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_2$7, [require__plugin_vue_export_helper.createElementVNode("div", {
42216
42198
  class: "icon-column__icon",
42217
42199
  innerHTML: option.icon
42218
- }, null, 8, _hoisted_3$5)]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$3, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_5$2, require__plugin_vue_export_helper.toDisplayString(option.label), 1), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_6$1, require__plugin_vue_export_helper.toDisplayString(option.description), 1)])], 42, _hoisted_1$7);
42200
+ }, null, 8, _hoisted_3$6)]), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$4, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_5$2, require__plugin_vue_export_helper.toDisplayString(option.label), 1), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_6$1, require__plugin_vue_export_helper.toDisplayString(option.description), 1)])], 42, _hoisted_1$7);
42219
42201
  }), 256))], 2);
42220
42202
  };
42221
42203
  }
@@ -42232,6 +42214,12 @@ var _hoisted_2$6 = [
42232
42214
  "onKeydown",
42233
42215
  "aria-label"
42234
42216
  ];
42217
+ var _hoisted_3$5 = [
42218
+ "title",
42219
+ "aria-label",
42220
+ "onClick"
42221
+ ];
42222
+ var _hoisted_4$3 = ["innerHTML"];
42235
42223
  /**
42236
42224
  * Built-in linked-styles (quick format) dropdown list.
42237
42225
  *
@@ -42239,7 +42227,9 @@ var _hoisted_2$6 = [
42239
42227
  * (`StyleCatalogItem`: `id`, `name`, optional `preview.css`, visibility), passed
42240
42228
  * in via the `styles` array. Selecting a style emits the catalogue item; the
42241
42229
  * toolbar controller normalizes it to a style id and routes the apply through
42242
- * the shared `linked-style` command (`styles.paragraph.setStyle`). The rendered
42230
+ * the shared `linked-style` command (`styles.paragraph.setStyle`). Each row also
42231
+ * carries an "Update to match selection" action that emits `update` with the
42232
+ * item; the toolbar routes it through `ui.styles.updateToMatchSelection`. The rendered
42243
42233
  * control stays faithful to the legacy DOM contract
42244
42234
  * (`data-item="btn-linkedStyles-option"`, keyboard navigation) and makes no
42245
42235
  * v1-only shape assumptions.
@@ -42254,9 +42244,13 @@ var _sfc_main$6 = {
42254
42244
  selectedOption: {
42255
42245
  type: String,
42256
42246
  default: null
42247
+ },
42248
+ updateLabel: {
42249
+ type: String,
42250
+ default: "Update to match selection"
42257
42251
  }
42258
42252
  },
42259
- emits: ["select"],
42253
+ emits: ["select", "update"],
42260
42254
  setup(__props, { emit: __emit }) {
42261
42255
  const emit = __emit;
42262
42256
  const styleRefs = require__plugin_vue_export_helper.ref([]);
@@ -42264,6 +42258,9 @@ var _sfc_main$6 = {
42264
42258
  const select = (style) => {
42265
42259
  emit("select", style);
42266
42260
  };
42261
+ const update = (style) => {
42262
+ emit("update", style);
42263
+ };
42267
42264
  const moveToNextStyle = (index) => {
42268
42265
  if (index === styleRefs.value.length - 1) return;
42269
42266
  const nextItem = styleRefs.value[index + 1];
@@ -42323,12 +42320,23 @@ var _sfc_main$6 = {
42323
42320
  class: "style-name",
42324
42321
  "data-item": "btn-linkedStyles-option",
42325
42322
  style: require__plugin_vue_export_helper.normalizeStyle(previewStyle(style))
42326
- }, require__plugin_vue_export_helper.toDisplayString(styleLabel(style)), 5)], 42, _hoisted_2$6);
42323
+ }, require__plugin_vue_export_helper.toDisplayString(styleLabel(style)), 5), require__plugin_vue_export_helper.createElementVNode("button", {
42324
+ type: "button",
42325
+ class: "style-update",
42326
+ "data-item": "btn-linkedStyles-update",
42327
+ title: props.updateLabel,
42328
+ "aria-label": `${props.updateLabel}: ${styleLabel(style)}`,
42329
+ onClick: require__plugin_vue_export_helper.withModifiers(($event) => update(style), ["stop"]),
42330
+ onKeydown: _cache[0] || (_cache[0] = require__plugin_vue_export_helper.withModifiers(() => {}, ["stop"]))
42331
+ }, [require__plugin_vue_export_helper.createElementVNode("span", {
42332
+ class: "style-update-icon",
42333
+ innerHTML: require__plugin_vue_export_helper.unref(toolbarIcons).paintbrush
42334
+ }, null, 8, _hoisted_4$3)], 40, _hoisted_3$5)], 42, _hoisted_2$6);
42327
42335
  }), 128))]);
42328
42336
  };
42329
42337
  }
42330
42338
  };
42331
- var LinkedStyle_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$6, [["__scopeId", "data-v-74c8924b"]]);
42339
+ var LinkedStyle_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$6, [["__scopeId", "data-v-b5a32523"]]);
42332
42340
  //#endregion
42333
42341
  //#region src/internal/toolbar/built-in/AIWriter.vue
42334
42342
  var _hoisted_1$5 = ["placeholder"];
@@ -44534,10 +44542,18 @@ var makeDefaultItems = ({ superToolbar, toolbarIcons, toolbarTexts, toolbarFonts
44534
44542
  argument: styleId
44535
44543
  });
44536
44544
  };
44545
+ const handleUpdate = (style) => {
44546
+ closeDropdown(linkedStyles);
44547
+ const styleId = typeof style === "string" ? style : style?.id ?? null;
44548
+ if (!styleId) return;
44549
+ superToolbar.updateLinkedStyleToMatchSelection?.(styleId);
44550
+ };
44537
44551
  const activeStyleId = superToolbar.getActiveLinkedStyleId?.() ?? null;
44538
44552
  return require__plugin_vue_export_helper.h("div", {}, [require__plugin_vue_export_helper.h(LinkedStyle_default, {
44539
44553
  styles: superToolbar.getLinkedStyleOptions?.() ?? [],
44540
44554
  onSelect: handleSelect,
44555
+ onUpdate: handleUpdate,
44556
+ updateLabel: toolbarTexts.updateLinkedStyle,
44541
44557
  selectedOption: activeStyleId
44542
44558
  })]);
44543
44559
  }
@@ -44796,7 +44812,8 @@ var toolbarTexts = {
44796
44812
  documentEditingModeDescription: "Edit document directly",
44797
44813
  documentSuggestingModeDescription: "Edits become suggestions",
44798
44814
  documentViewingModeDescription: "View clean version of document only",
44799
- linkedStyles: "Linked styles"
44815
+ linkedStyles: "Linked styles",
44816
+ updateLinkedStyle: "Update to match selection"
44800
44817
  };
44801
44818
  //#endregion
44802
44819
  //#region src/internal/toolbar/built-in/general.js
@@ -45288,12 +45305,16 @@ var BuiltInToolbar = class extends require_eventemitter3.import_eventemitter3.de
45288
45305
  return this._linkedStyleOptions.value;
45289
45306
  }
45290
45307
  #refreshLinkedStyleOptions() {
45291
- this.ui?.styles?.getCatalog?.({ includePreview: true });
45308
+ const allStyles = this.ui?.styles?.getCatalog?.({ includePreview: true });
45292
45309
  const options = (this.ui?.styles?.getCatalog?.({
45293
45310
  view: "quickGallery",
45294
45311
  includePreview: true
45295
45312
  }))?.items ?? this.ui?.styles?.getQuickGallery?.() ?? [];
45296
- if (options !== this._linkedStyleOptions.value) this._linkedStyleOptions.value = options;
45313
+ const activeStyleId = this.ui?.styles?.getActiveParagraphStyle?.()?.styleId;
45314
+ const activeStyle = activeStyleId && !options.some((style) => style.id === activeStyleId) ? allStyles?.styles?.find((style) => style.id === activeStyleId && (style.type === "paragraph" || style.type === "linked")) : null;
45315
+ const nextOptions = activeStyle ? [activeStyle, ...options] : options;
45316
+ const previousOptions = this._linkedStyleOptions.value;
45317
+ if (nextOptions.length !== previousOptions.length || nextOptions.some((style, index) => style !== previousOptions[index])) this._linkedStyleOptions.value = nextOptions;
45297
45318
  }
45298
45319
  /**
45299
45320
  * The stable style id active across the current selection's paragraph(s), or
@@ -45303,6 +45324,17 @@ var BuiltInToolbar = class extends require_eventemitter3.import_eventemitter3.de
45303
45324
  getActiveLinkedStyleId() {
45304
45325
  return this.ui?.styles?.getActiveParagraphStyle?.()?.styleId ?? null;
45305
45326
  }
45327
+ async updateLinkedStyleToMatchSelection(styleId) {
45328
+ if (!styleId || typeof this.ui?.styles?.updateToMatchSelection !== "function") return null;
45329
+ try {
45330
+ return await this.ui.styles.updateToMatchSelection({ styleId });
45331
+ } catch (error) {
45332
+ this.#emitCommandException(error, "linkedStyles");
45333
+ return null;
45334
+ } finally {
45335
+ this.updateToolbarState();
45336
+ }
45337
+ }
45306
45338
  /**
45307
45339
  * Compatibility hook: `SuperDoc` calls this when the active editor changes.
45308
45340
  * The shared controller already tracks selection/transaction state, so this
@@ -46242,7 +46274,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46242
46274
  }
46243
46275
  this.userColorMap = /* @__PURE__ */ new Map();
46244
46276
  this.colorIndex = 0;
46245
- this.version = "2.27.0-next.1";
46277
+ this.version = "2.27.0-next.11";
46246
46278
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46247
46279
  this.superdocId = config.superdocId || require_uuid.v4();
46248
46280
  this.colors = this.config.colors ?? [];