superdoc 2.27.0 → 2.28.0-next.2

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 (118) hide show
  1. package/dist/chunks/{create-super-doc-ui-cHUUipYM.es.js → create-super-doc-ui-B29zw5qD.es.js} +155 -2
  2. package/dist/chunks/{create-super-doc-ui-DpVh2nQH.cjs → create-super-doc-ui-D1eOhAjv.cjs} +155 -2
  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/index.d.ts +3 -3
  7. package/dist/document-api/src/styles/apply.d.ts +26 -2
  8. package/dist/document-api/src/styles/index.d.ts +3 -3
  9. package/dist/document-api/src/styles/schema.d.ts +3 -1
  10. package/dist/document-api/src/styles/validation.d.ts +10 -9
  11. package/dist/document-api/src/types/mutation-plan.types.d.ts +11 -4
  12. package/dist/document-api/src/types/temporary-mutation.d.ts +5 -1
  13. package/dist/layout-engine/contracts/src/index.d.ts +1 -1
  14. package/dist/layout-engine/contracts/src/run-helpers.d.ts +7 -0
  15. package/dist/layout-engine/painters/dom/src/page-content.d.ts +1 -0
  16. package/dist/layout-engine/painters/dom/src/review-markers.d.ts +3 -0
  17. package/dist/layout-engine/painters/dom/src/table/renderTableCell.d.ts +1 -0
  18. package/dist/public/ui-react.cjs +1 -1
  19. package/dist/public/ui-react.es.js +1 -1
  20. package/dist/public/ui-vue.cjs +1 -1
  21. package/dist/public/ui-vue.es.js +1 -1
  22. package/dist/public/ui.cjs +1 -1
  23. package/dist/public/ui.es.js +1 -1
  24. package/dist/style.css +1 -1
  25. package/dist/style.layered.css +1 -1
  26. package/dist/superdoc/src/internal/toolbar/built-in/LinkedStyle.vue.d.ts +3 -1
  27. package/dist/superdoc/src/internal/toolbar/built-in/toolbarTexts.d.ts +1 -0
  28. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +1 -0
  29. package/dist/superdoc/src/public/ui/style-match-patch.d.ts +7 -0
  30. package/dist/superdoc/src/public/ui/types.d.ts +5 -1
  31. package/dist/superdoc/src/public/ui.d.cts +4 -0
  32. package/dist/superdoc/src/public/ui.d.ts +1 -1
  33. package/dist/superdoc.cjs +120 -71
  34. package/dist/superdoc.es.js +117 -70
  35. package/dist-cdn/style.layered.css +1 -1
  36. package/dist-cdn/superdoc.min.css +1 -1
  37. package/dist-cdn/superdoc.min.js +38 -38
  38. package/package.json +2 -2
  39. package/dist/footnote-table-order.docx +0 -0
  40. package/dist/images/altText_add.svg +0 -3
  41. package/dist/images/altText_disclaimer.svg +0 -3
  42. package/dist/images/altText_done.svg +0 -3
  43. package/dist/images/altText_spinner.svg +0 -30
  44. package/dist/images/altText_warning.svg +0 -3
  45. package/dist/images/annotation-check.svg +0 -11
  46. package/dist/images/annotation-comment.svg +0 -16
  47. package/dist/images/annotation-help.svg +0 -26
  48. package/dist/images/annotation-insert.svg +0 -10
  49. package/dist/images/annotation-key.svg +0 -11
  50. package/dist/images/annotation-newparagraph.svg +0 -11
  51. package/dist/images/annotation-noicon.svg +0 -7
  52. package/dist/images/annotation-note.svg +0 -42
  53. package/dist/images/annotation-paperclip.svg +0 -6
  54. package/dist/images/annotation-paragraph.svg +0 -16
  55. package/dist/images/annotation-pushpin.svg +0 -7
  56. package/dist/images/checkmark.svg +0 -5
  57. package/dist/images/comment-actionsButton.svg +0 -3
  58. package/dist/images/comment-closeButton.svg +0 -3
  59. package/dist/images/comment-editButton.svg +0 -8
  60. package/dist/images/comment-popup-editButton.svg +0 -5
  61. package/dist/images/cursor-editorFreeHighlight.svg +0 -6
  62. package/dist/images/cursor-editorFreeText.svg +0 -3
  63. package/dist/images/cursor-editorInk.svg +0 -4
  64. package/dist/images/cursor-editorTextHighlight.svg +0 -8
  65. package/dist/images/editor-toolbar-delete.svg +0 -5
  66. package/dist/images/editor-toolbar-edit.svg +0 -3
  67. package/dist/images/findbarButton-next.svg +0 -3
  68. package/dist/images/findbarButton-previous.svg +0 -3
  69. package/dist/images/gv-toolbarButton-download.svg +0 -3
  70. package/dist/images/loading-icon.gif +0 -0
  71. package/dist/images/loading.svg +0 -1
  72. package/dist/images/messageBar_closingButton.svg +0 -3
  73. package/dist/images/messageBar_info.svg +0 -3
  74. package/dist/images/messageBar_warning.svg +0 -3
  75. package/dist/images/pages_closeButton.svg +0 -3
  76. package/dist/images/pages_selected.svg +0 -7
  77. package/dist/images/pages_viewArrow.svg +0 -3
  78. package/dist/images/pages_viewButton.svg +0 -3
  79. package/dist/images/secondaryToolbarButton-documentProperties.svg +0 -3
  80. package/dist/images/secondaryToolbarButton-firstPage.svg +0 -3
  81. package/dist/images/secondaryToolbarButton-handTool.svg +0 -3
  82. package/dist/images/secondaryToolbarButton-lastPage.svg +0 -3
  83. package/dist/images/secondaryToolbarButton-rotateCcw.svg +0 -3
  84. package/dist/images/secondaryToolbarButton-rotateCw.svg +0 -3
  85. package/dist/images/secondaryToolbarButton-scrollHorizontal.svg +0 -3
  86. package/dist/images/secondaryToolbarButton-scrollPage.svg +0 -3
  87. package/dist/images/secondaryToolbarButton-scrollVertical.svg +0 -3
  88. package/dist/images/secondaryToolbarButton-scrollWrapped.svg +0 -3
  89. package/dist/images/secondaryToolbarButton-selectTool.svg +0 -3
  90. package/dist/images/secondaryToolbarButton-spreadEven.svg +0 -3
  91. package/dist/images/secondaryToolbarButton-spreadNone.svg +0 -3
  92. package/dist/images/secondaryToolbarButton-spreadOdd.svg +0 -3
  93. package/dist/images/toolbarButton-bookmark.svg +0 -3
  94. package/dist/images/toolbarButton-currentOutlineItem.svg +0 -3
  95. package/dist/images/toolbarButton-download.svg +0 -4
  96. package/dist/images/toolbarButton-editorFreeText.svg +0 -5
  97. package/dist/images/toolbarButton-editorHighlight.svg +0 -6
  98. package/dist/images/toolbarButton-editorInk.svg +0 -4
  99. package/dist/images/toolbarButton-editorSignature.svg +0 -6
  100. package/dist/images/toolbarButton-editorStamp.svg +0 -8
  101. package/dist/images/toolbarButton-menuArrow.svg +0 -3
  102. package/dist/images/toolbarButton-openFile.svg +0 -3
  103. package/dist/images/toolbarButton-pageDown.svg +0 -3
  104. package/dist/images/toolbarButton-pageUp.svg +0 -3
  105. package/dist/images/toolbarButton-presentationMode.svg +0 -3
  106. package/dist/images/toolbarButton-print.svg +0 -3
  107. package/dist/images/toolbarButton-search.svg +0 -3
  108. package/dist/images/toolbarButton-secondaryToolbarToggle.svg +0 -3
  109. package/dist/images/toolbarButton-viewAttachments.svg +0 -3
  110. package/dist/images/toolbarButton-viewLayers.svg +0 -3
  111. package/dist/images/toolbarButton-viewOutline.svg +0 -3
  112. package/dist/images/toolbarButton-viewThumbnail.svg +0 -3
  113. package/dist/images/toolbarButton-viewsManagerToggle.svg +0 -3
  114. package/dist/images/toolbarButton-zoomIn.svg +0 -3
  115. package/dist/images/toolbarButton-zoomOut.svg +0 -3
  116. package/dist/images/treeitem-collapsed.svg +0 -1
  117. package/dist/images/treeitem-expanded.svg +0 -1
  118. package/dist-cdn/footnote-table-order.docx +0 -0
@@ -18,5 +18,5 @@ export { createSuperDocUI } from './ui/create-super-doc-ui.js';
18
18
  export { getDocumentApiRejectionReason } from './ui/rejection-reasons.js';
19
19
  export { shallowEqual } from './ui/equality.js';
20
20
  export { BUILT_IN_COMMAND_IDS } from './ui/commands.js';
21
- export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, TablesHandle, TableContextInfo, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportGetRectTarget, ViewportGetRectsInput, ViewportGetRectsResult, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, DocumentStoryLocator, } from './ui/types.js';
21
+ export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, TablesHandle, TableContextInfo, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, StylesUpdateToMatchSelectionInput, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportGetRectTarget, ViewportGetRectsInput, ViewportGetRectsResult, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, DocumentApiRejectionReason, DocumentApiRejectionDetails, TextRangeRejectionReason, ContentControlCreationRejectionReason, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, TemporaryMutationOperation, TemporaryOperationResultTarget, TemporaryOperationEffects, TemporaryMutationInput, TemporaryMutationReplaceInput, TemporaryMutationHandleInput, TemporaryMutationReceipt, DocumentStoryLocator, } from './ui/types.js';
22
22
  export type { PageMetricsHandle, PageMetricsSnapshot, PageMetricsPage, PageBodyTarget } from './ui/page-metrics.js';
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-DpVh2nQH.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";
263
+ return "2.28.0-next.2";
264
264
  } catch {
265
265
  return "unknown";
266
266
  }
@@ -12255,11 +12255,11 @@ function useUiFontFamily() {
12255
12255
  //#region src/components/CommentsLayer/CommentsDropdown.vue
12256
12256
  var _hoisted_1$31 = { class: "comments-dropdown" };
12257
12257
  var _hoisted_2$24 = ["onClick"];
12258
- var _hoisted_3$20 = {
12258
+ var _hoisted_3$21 = {
12259
12259
  key: 0,
12260
12260
  class: "comments-dropdown__option-icon"
12261
12261
  };
12262
- var _hoisted_4$14 = ["innerHTML"];
12262
+ var _hoisted_4$15 = ["innerHTML"];
12263
12263
  var _hoisted_5$11 = { class: "comments-dropdown__option-label" };
12264
12264
  var _sfc_main$38 = {
12265
12265
  __name: "CommentsDropdown",
@@ -12400,10 +12400,10 @@ var _sfc_main$38 = {
12400
12400
  key: option.key,
12401
12401
  class: require__plugin_vue_export_helper.normalizeClass(["comments-dropdown__option", { "sd-disabled": option.disabled }]),
12402
12402
  onClick: ($event) => onOptionClick(option)
12403
- }, [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", {
12404
12404
  key: 0,
12405
12405
  innerHTML: option.iconString
12406
- }, 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), {
12407
12407
  key: 1,
12408
12408
  option
12409
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);
@@ -12416,8 +12416,8 @@ var CommentsDropdown_default = /*#__PURE__*/ require__plugin_vue_export_helper._
12416
12416
  //#region src/components/CommentsLayer/InternalDropdown.vue
12417
12417
  var _hoisted_1$30 = { class: "sd-comment-option" };
12418
12418
  var _hoisted_2$23 = ["innerHTML"];
12419
- var _hoisted_3$19 = { class: "sd-option-state" };
12420
- var _hoisted_4$13 = ["innerHTML"];
12419
+ var _hoisted_3$20 = { class: "sd-option-state" };
12420
+ var _hoisted_4$14 = ["innerHTML"];
12421
12421
  var _sfc_main$37 = {
12422
12422
  __name: "InternalDropdown",
12423
12423
  props: {
@@ -12490,11 +12490,11 @@ var _sfc_main$37 = {
12490
12490
  class: "sd-active-icon",
12491
12491
  innerHTML: activeIcon.value
12492
12492
  }, null, 8, _hoisted_2$23),
12493
- 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),
12494
12494
  require__plugin_vue_export_helper.createElementVNode("div", {
12495
12495
  class: "sd-dropdown-caret",
12496
12496
  innerHTML: require__plugin_vue_export_helper.unref(superdocIcons).caretDown
12497
- }, null, 8, _hoisted_4$13)
12497
+ }, null, 8, _hoisted_4$14)
12498
12498
  ])]),
12499
12499
  _: 1
12500
12500
  }, 8, ["disabled", "content-style"])], 4);
@@ -12653,7 +12653,7 @@ var isAllowed = (permission, role, isInternal, context = {}) => {
12653
12653
  //#region src/components/general/Avatar.vue
12654
12654
  var _hoisted_1$29 = { class: "user-container" };
12655
12655
  var _hoisted_2$22 = ["src"];
12656
- var _hoisted_3$18 = {
12656
+ var _hoisted_3$19 = {
12657
12657
  key: 1,
12658
12658
  class: "user-bg"
12659
12659
  };
@@ -12678,7 +12678,7 @@ var _sfc_main$36 = {
12678
12678
  key: 0,
12679
12679
  class: "user-bg",
12680
12680
  src: __props.user.image.startsWith("http") ? __props.user.image : `data:image/png;base64,${__props.user.image}`
12681
- }, 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))]);
12682
12682
  };
12683
12683
  }
12684
12684
  };
@@ -12687,8 +12687,8 @@ var Avatar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue
12687
12687
  //#region src/components/CommentsLayer/CommentHeader.vue
12688
12688
  var _hoisted_1$28 = { class: "card-section comment-header" };
12689
12689
  var _hoisted_2$21 = { class: "comment-header-left" };
12690
- var _hoisted_3$17 = { class: "user-info" };
12691
- var _hoisted_4$12 = { class: "user-name" };
12690
+ var _hoisted_3$18 = { class: "user-info" };
12691
+ var _hoisted_4$13 = { class: "user-name" };
12692
12692
  var _hoisted_5$10 = {
12693
12693
  key: 0,
12694
12694
  class: "imported-tag"
@@ -12948,7 +12948,7 @@ var _sfc_main$35 = {
12948
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, {
12949
12949
  user: getCurrentUser.value,
12950
12950
  class: "avatar"
12951
- }, 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 }]) }, [
12952
12952
  allowResolve.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
12953
12953
  key: 0,
12954
12954
  class: require__plugin_vue_export_helper.normalizeClass(["overflow-menu__icon", { "sd-is-disabled": Boolean(__props.resolveDisabledReason) }]),
@@ -12999,12 +12999,12 @@ var CommentHeader_default = /*#__PURE__*/ require__plugin_vue_export_helper._plu
12999
12999
  //#region src/components/CommentsLayer/CommentInput.vue
13000
13000
  var _hoisted_1$27 = { class: "input-section" };
13001
13001
  var _hoisted_2$20 = { class: "comment-composer" };
13002
- var _hoisted_3$16 = [
13002
+ var _hoisted_3$17 = [
13003
13003
  "aria-expanded",
13004
13004
  "aria-controls",
13005
13005
  "aria-activedescendant"
13006
13006
  ];
13007
- var _hoisted_4$11 = [
13007
+ var _hoisted_4$12 = [
13008
13008
  "id",
13009
13009
  "aria-selected",
13010
13010
  "data-sd-comment-mention-option",
@@ -13194,7 +13194,7 @@ var _sfc_main$34 = {
13194
13194
  onKeydown,
13195
13195
  onFocus: _cache[1] || (_cache[1] = ($event) => handleFocusChange(true)),
13196
13196
  onBlur: _cache[2] || (_cache[2] = ($event) => handleFocusChange(false))
13197
- }, 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", {
13198
13198
  key: 0,
13199
13199
  id: mentionListId,
13200
13200
  class: "comment-mention-list",
@@ -13210,7 +13210,7 @@ var _sfc_main$34 = {
13210
13210
  "aria-selected": index === highlightedMentionIndex.value,
13211
13211
  "data-sd-comment-mention-option": userKey(user),
13212
13212
  onMousedown: require__plugin_vue_export_helper.withModifiers(($event) => selectMention(user), ["prevent"])
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$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);
13214
13214
  }), 128))])) : require__plugin_vue_export_helper.createCommentVNode("", true)])], 2)]);
13215
13215
  };
13216
13216
  }
@@ -13337,8 +13337,8 @@ var _hoisted_2$19 = {
13337
13337
  key: 0,
13338
13338
  class: "existing-internal-input"
13339
13339
  };
13340
- var _hoisted_3$15 = { class: "new-comment-input-wrapper" };
13341
- 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" };
13342
13342
  var _hoisted_5$8 = ["disabled"];
13343
13343
  var _hoisted_6$6 = {
13344
13344
  key: 0,
@@ -14018,15 +14018,8 @@ var _sfc_main$33 = {
14018
14018
  const v2WriteCapability = require__plugin_vue_export_helper.computed(() => {
14019
14019
  v2CapabilityRevision.value;
14020
14020
  if (!v2CommentsAdapter.value) return null;
14021
- const documentMode = commentsStore.viewingVisibility.documentMode;
14022
14021
  const command = isPendingNewComment.value ? "comments.createFromSelection" : null;
14023
- const capability = v2CommentsAdapter.value.getCapabilityState?.(command) ?? null;
14024
- if (documentMode === "viewing" && !isPendingNewComment.value) return {
14025
- ...capability ?? {},
14026
- canWrite: false,
14027
- reason: "review-surface-read-only"
14028
- };
14029
- return capability;
14022
+ return v2CommentsAdapter.value.getCapabilityState?.(command) ?? null;
14030
14023
  });
14031
14024
  const isV2WriteDisabled = require__plugin_vue_export_helper.computed(() => {
14032
14025
  if (!isV2Mode.value) return false;
@@ -14417,7 +14410,7 @@ var _sfc_main$33 = {
14417
14410
  comment: props.comment,
14418
14411
  "is-pending-input": true
14419
14412
  }, null, 8, ["config", "comment"]),
14420
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$15, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14413
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$16, [require__plugin_vue_export_helper.createVNode(CommentInput_default, {
14421
14414
  ref_key: "commentInput",
14422
14415
  ref: commentInput,
14423
14416
  users: usersFiltered.value,
@@ -14429,7 +14422,7 @@ var _sfc_main$33 = {
14429
14422
  "config",
14430
14423
  "comment"
14431
14424
  ])]),
14432
- require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$10, [require__plugin_vue_export_helper.createElementVNode("button", {
14425
+ require__plugin_vue_export_helper.createElementVNode("div", _hoisted_4$11, [require__plugin_vue_export_helper.createElementVNode("button", {
14433
14426
  class: "sd-button reply-btn-cancel",
14434
14427
  onClick: require__plugin_vue_export_helper.withModifiers(handleCancel, ["stop", "prevent"])
14435
14428
  }, "Cancel"), require__plugin_vue_export_helper.createElementVNode("button", {
@@ -14606,7 +14599,7 @@ var _sfc_main$33 = {
14606
14599
  };
14607
14600
  }
14608
14601
  };
14609
- var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-f5016db4"]]);
14602
+ var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$33, [["__scopeId", "data-v-939045c1"]]);
14610
14603
  //#endregion
14611
14604
  //#region src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue
14612
14605
  var _hoisted_1$25 = [
@@ -14756,7 +14749,7 @@ var ReviewDirectoryListItem_default = /*#__PURE__*/ require__plugin_vue_export_h
14756
14749
  //#region src/components/CommentsLayer/commentsList/commentsList.vue
14757
14750
  var _hoisted_1$24 = ["aria-busy"];
14758
14751
  var _hoisted_2$18 = { key: 0 };
14759
- var _hoisted_3$14 = { key: 1 };
14752
+ var _hoisted_3$15 = { key: 1 };
14760
14753
  var REPEATED_HEADER_FOOTER_STORY_TYPE = "headerFooterPart";
14761
14754
  var _sfc_main$31 = {
14762
14755
  __name: "commentsList",
@@ -14900,7 +14893,7 @@ var _sfc_main$31 = {
14900
14893
  "total",
14901
14894
  "tab-index"
14902
14895
  ]);
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$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) => {
14896
+ }), 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) => {
14904
14897
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(ReviewDirectoryListItem_default, {
14905
14898
  key: item.id,
14906
14899
  item,
@@ -19026,11 +19019,11 @@ var _hoisted_2$16 = {
19026
19019
  key: 1,
19027
19020
  class: "link-title"
19028
19021
  };
19029
- var _hoisted_3$13 = {
19022
+ var _hoisted_3$14 = {
19030
19023
  key: 2,
19031
19024
  class: "link-title"
19032
19025
  };
19033
- var _hoisted_4$9 = {
19026
+ var _hoisted_4$10 = {
19034
19027
  key: 3,
19035
19028
  class: "link-title"
19036
19029
  };
@@ -19289,7 +19282,7 @@ var _sfc_main$26 = {
19289
19282
  };
19290
19283
  return (_ctx, _cache) => {
19291
19284
  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) }]) }, [
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$13, "Edit link")) : (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_4$9, "Add link")),
19285
+ 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")),
19293
19286
  __props.showInput && !isAnchor.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", _hoisted_5$7, [
19294
19287
  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", {
19295
19288
  type: "text",
@@ -21390,7 +21383,7 @@ var FOCUSABLE_SELECTOR = [
21390
21383
  //#region src/components/surfaces/SurfaceDialog.vue
21391
21384
  var _hoisted_1$19 = ["aria-labelledby", "aria-label"];
21392
21385
  var _hoisted_2$15 = ["id"];
21393
- var _hoisted_3$12 = { class: "sd-surface-dialog__content" };
21386
+ var _hoisted_3$13 = { class: "sd-surface-dialog__content" };
21394
21387
  var _sfc_main$24 = {
21395
21388
  __name: "SurfaceDialog",
21396
21389
  props: {
@@ -21522,7 +21515,7 @@ var _sfc_main$24 = {
21522
21515
  key: 0,
21523
21516
  id: titleId.value,
21524
21517
  class: "sd-surface-dialog__title"
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$12, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21518
+ }, 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, {
21526
21519
  key: 0,
21527
21520
  "surface-id": __props.surface.id,
21528
21521
  mode: "dialog",
@@ -21545,7 +21538,7 @@ var SurfaceDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plu
21545
21538
  //#region src/components/surfaces/SurfaceFloating.vue
21546
21539
  var _hoisted_1$18 = ["aria-labelledby", "aria-label"];
21547
21540
  var _hoisted_2$14 = ["id"];
21548
- var _hoisted_3$11 = { class: "sd-surface-floating__content" };
21541
+ var _hoisted_3$12 = { class: "sd-surface-floating__content" };
21549
21542
  var _sfc_main$23 = {
21550
21543
  __name: "SurfaceFloating",
21551
21544
  props: { surface: {
@@ -21677,7 +21670,7 @@ var _sfc_main$23 = {
21677
21670
  key: 0,
21678
21671
  id: titleId.value,
21679
21672
  class: "sd-surface-floating__title"
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$11, [__props.surface.render ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(SurfaceExternalMount_default, {
21673
+ }, 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, {
21681
21674
  key: 0,
21682
21675
  "surface-id": __props.surface.id,
21683
21676
  mode: "floating",
@@ -21925,8 +21918,8 @@ var SurfaceHost_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugi
21925
21918
  //#region src/SuperDoc.vue
21926
21919
  var _hoisted_1$17 = ["data-superdoc-ui-owner"];
21927
21920
  var _hoisted_2$13 = ["innerHTML"];
21928
- var _hoisted_3$10 = { class: "superdoc__document document" };
21929
- var _hoisted_4$8 = { class: "floating-comments" };
21921
+ var _hoisted_3$11 = { class: "superdoc__document document" };
21922
+ var _hoisted_4$9 = { class: "floating-comments" };
21930
21923
  var TRACKED_CHANGE_CARRIERS_RESTAMPED_EVENT = "superdoc:v2-tracked-change-carriers-restamped";
21931
21924
  var UNAVAILABLE_COMMAND_RESULT = false;
21932
21925
  var V2_SELECTION_TOOLBAR_SYNC_RETRY_FRAMES = 3;
@@ -24405,7 +24398,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24405
24398
  }, [require__plugin_vue_export_helper.createElementVNode("div", {
24406
24399
  class: "superdoc__tools-icon",
24407
24400
  innerHTML: require__plugin_vue_export_helper.unref(superdocIcons).comment
24408
- }, null, 8, _hoisted_2$13)], 32)], 4)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$10, [
24401
+ }, null, 8, _hoisted_2$13)], 32)], 4)) : require__plugin_vue_export_helper.createCommentVNode("", true), require__plugin_vue_export_helper.createElementVNode("div", _hoisted_3$11, [
24409
24402
  isCommentsEnabled.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
24410
24403
  key: 0,
24411
24404
  class: "superdoc__selection-layer selection-layer",
@@ -24533,7 +24526,7 @@ var SuperDoc_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_v
24533
24526
  ref_key: "rightSidebarRef",
24534
24527
  ref: rightSidebarRef,
24535
24528
  class: "superdoc__right-sidebar right-sidebar"
24536
- }, [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) => {
24529
+ }, [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) => {
24537
24530
  return require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(FloatingComments_default, {
24538
24531
  parent: layers.value,
24539
24532
  "current-document": doc
@@ -39038,8 +39031,8 @@ var _hoisted_1$15 = [
39038
39031
  "aria-disabled"
39039
39032
  ];
39040
39033
  var _hoisted_2$11 = ["data-item"];
39041
- var _hoisted_3$9 = ["data-item"];
39042
- var _hoisted_4$7 = {
39034
+ var _hoisted_3$10 = ["data-item"];
39035
+ var _hoisted_4$8 = {
39043
39036
  key: 1,
39044
39037
  class: "sd-button-label"
39045
39038
  };
@@ -39260,7 +39253,7 @@ var _sfc_main$19 = {
39260
39253
  "color",
39261
39254
  "icon",
39262
39255
  "name"
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$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),
39256
+ ])) : 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),
39264
39257
  isSplit.value ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createElementBlock("div", {
39265
39258
  key: 1,
39266
39259
  class: "sd-toolbar-button__caret",
@@ -39364,8 +39357,8 @@ var ToolbarSeparator_default = /*#__PURE__*/ require__plugin_vue_export_helper._
39364
39357
  //#region src/internal/toolbar/built-in/ToolbarDropdown.vue
39365
39358
  var _hoisted_1$13 = { class: "toolbar-dropdown" };
39366
39359
  var _hoisted_2$10 = ["data-superdoc-ui-owner"];
39367
- var _hoisted_3$8 = ["onClick"];
39368
- var _hoisted_4$6 = {
39360
+ var _hoisted_3$9 = ["onClick"];
39361
+ var _hoisted_4$7 = {
39369
39362
  key: 0,
39370
39363
  class: "toolbar-dropdown-option__icon"
39371
39364
  };
@@ -39754,7 +39747,7 @@ var _sfc_main$17 = {
39754
39747
  }), [isRenderOption(option) ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(require__plugin_vue_export_helper.unref(RenderOption), {
39755
39748
  key: 0,
39756
39749
  option
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$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);
39750
+ }, 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);
39758
39751
  }), 128))], 16, _hoisted_2$10)) : require__plugin_vue_export_helper.createCommentVNode("", true)]),
39759
39752
  _: 3
39760
39753
  })], 8, ["to"]))]);
@@ -39997,12 +39990,12 @@ var _hoisted_2$9 = [
39997
39990
  "aria-activedescendant",
39998
39991
  "data-item"
39999
39992
  ];
40000
- var _hoisted_3$7 = [
39993
+ var _hoisted_3$8 = [
40001
39994
  "data-item",
40002
39995
  "aria-label",
40003
39996
  "disabled"
40004
39997
  ];
40005
- var _hoisted_4$5 = ["innerHTML"];
39998
+ var _hoisted_4$6 = ["innerHTML"];
40006
39999
  var _hoisted_5$4 = [
40007
40000
  "data-superdoc-ui-owner",
40008
40001
  "id",
@@ -40470,7 +40463,7 @@ var _sfc_main$15 = {
40470
40463
  }, [require__plugin_vue_export_helper.createElementVNode("span", {
40471
40464
  class: "sd-dropdown-caret",
40472
40465
  innerHTML: caretIcon.value
40473
- }, null, 8, _hoisted_4$5)], 40, _hoisted_3$7),
40466
+ }, null, 8, _hoisted_4$6)], 40, _hoisted_3$8),
40474
40467
  (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", {
40475
40468
  key: 0,
40476
40469
  ref_key: "popupRef",
@@ -40817,8 +40810,8 @@ var _hoisted_1$11 = [
40817
40810
  "data-item-id"
40818
40811
  ];
40819
40812
  var _hoisted_2$8 = { key: 0 };
40820
- var _hoisted_3$6 = { key: 0 };
40821
- var _hoisted_4$4 = { key: 0 };
40813
+ var _hoisted_3$7 = { key: 0 };
40814
+ var _hoisted_4$5 = { key: 0 };
40822
40815
  var _hoisted_5$3 = { key: 0 };
40823
40816
  var _hoisted_6$2 = { key: 0 };
40824
40817
  var _sfc_main$11 = {
@@ -41222,7 +41215,7 @@ var _sfc_main$11 = {
41222
41215
  onTabOut: _cache[1] || (_cache[1] = ($event) => handleFontSizeTabOut($event)),
41223
41216
  onEditorHandoff: handleEditorHandoff
41224
41217
  }, null, 8, ["item", "ui-font-family"])]),
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$6, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41218
+ 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)])]),
41226
41219
  _: 2
41227
41220
  }, 1032, ["disabled", "content-style"])) : isDropdown(item) && item.nestedOptions?.value?.length ? (require__plugin_vue_export_helper.openBlock(), require__plugin_vue_export_helper.createBlock(ToolbarDropdown_default, {
41228
41221
  key: 3,
@@ -41259,7 +41252,7 @@ var _sfc_main$11 = {
41259
41252
  "onTextSubmit",
41260
41253
  "onMainClick"
41261
41254
  ])]),
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$4, "(disabled)")) : require__plugin_vue_export_helper.createCommentVNode("", true)])]),
41255
+ 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)])]),
41263
41256
  _: 2
41264
41257
  }, 1032, ["disabled", "content-style"])]),
41265
41258
  _: 2
@@ -41627,7 +41620,13 @@ var Toolbar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vu
41627
41620
  proxy.$toolbar.pendingSelectionCapture = pendingSelectionCapture;
41628
41621
  };
41629
41622
  const handleCommand = ({ item, argument, option }) => {
41630
- restoreSelection();
41623
+ const commandId = resolveToolbarCommandId(item?.name?.value);
41624
+ if (!(item?.type === "button" && !item.isCustomToolbarItem && [
41625
+ "bold",
41626
+ "italic",
41627
+ "underline",
41628
+ "strikethrough"
41629
+ ].includes(commandId) && proxy.$toolbar.snapshot?.commands?.[commandId]?.source === "builtin")) restoreSelection();
41631
41630
  proxy.$toolbar.emitCommand({
41632
41631
  item,
41633
41632
  argument,
@@ -41705,7 +41704,7 @@ var Toolbar_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vu
41705
41704
  ], 40, _hoisted_1$10);
41706
41705
  };
41707
41706
  }
41708
- }, [["__scopeId", "data-v-19ce2dae"]]);
41707
+ }, [["__scopeId", "data-v-9554df11"]]);
41709
41708
  //#endregion
41710
41709
  //#region src/internal/toolbar/built-in/font-options.js
41711
41710
  /**
@@ -42133,8 +42132,8 @@ var numberedStyleButtons = [
42133
42132
  //#region src/internal/toolbar/built-in/DocumentMode.vue
42134
42133
  var _hoisted_1$7 = ["onClick", "onKeydown"];
42135
42134
  var _hoisted_2$7 = { class: "document-mode-column icon-column" };
42136
- var _hoisted_3$5 = ["innerHTML"];
42137
- var _hoisted_4$3 = { class: "document-mode-column text-column" };
42135
+ var _hoisted_3$6 = ["innerHTML"];
42136
+ var _hoisted_4$4 = { class: "document-mode-column text-column" };
42138
42137
  var _hoisted_5$2 = { class: "document-mode-type" };
42139
42138
  var _hoisted_6$1 = { class: "document-mode-description" };
42140
42139
  var _sfc_main$7 = {
@@ -42197,7 +42196,7 @@ var _sfc_main$7 = {
42197
42196
  }, [require__plugin_vue_export_helper.createElementVNode("div", _hoisted_2$7, [require__plugin_vue_export_helper.createElementVNode("div", {
42198
42197
  class: "icon-column__icon",
42199
42198
  innerHTML: option.icon
42200
- }, 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);
42199
+ }, 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);
42201
42200
  }), 256))], 2);
42202
42201
  };
42203
42202
  }
@@ -42214,6 +42213,12 @@ var _hoisted_2$6 = [
42214
42213
  "onKeydown",
42215
42214
  "aria-label"
42216
42215
  ];
42216
+ var _hoisted_3$5 = [
42217
+ "title",
42218
+ "aria-label",
42219
+ "onClick"
42220
+ ];
42221
+ var _hoisted_4$3 = ["innerHTML"];
42217
42222
  /**
42218
42223
  * Built-in linked-styles (quick format) dropdown list.
42219
42224
  *
@@ -42221,7 +42226,9 @@ var _hoisted_2$6 = [
42221
42226
  * (`StyleCatalogItem`: `id`, `name`, optional `preview.css`, visibility), passed
42222
42227
  * in via the `styles` array. Selecting a style emits the catalogue item; the
42223
42228
  * toolbar controller normalizes it to a style id and routes the apply through
42224
- * the shared `linked-style` command (`styles.paragraph.setStyle`). The rendered
42229
+ * the shared `linked-style` command (`styles.paragraph.setStyle`). Each row also
42230
+ * carries an "Update to match selection" action that emits `update` with the
42231
+ * item; the toolbar routes it through `ui.styles.updateToMatchSelection`. The rendered
42225
42232
  * control stays faithful to the legacy DOM contract
42226
42233
  * (`data-item="btn-linkedStyles-option"`, keyboard navigation) and makes no
42227
42234
  * v1-only shape assumptions.
@@ -42236,9 +42243,13 @@ var _sfc_main$6 = {
42236
42243
  selectedOption: {
42237
42244
  type: String,
42238
42245
  default: null
42246
+ },
42247
+ updateLabel: {
42248
+ type: String,
42249
+ default: "Update to match selection"
42239
42250
  }
42240
42251
  },
42241
- emits: ["select"],
42252
+ emits: ["select", "update"],
42242
42253
  setup(__props, { emit: __emit }) {
42243
42254
  const emit = __emit;
42244
42255
  const styleRefs = require__plugin_vue_export_helper.ref([]);
@@ -42246,6 +42257,9 @@ var _sfc_main$6 = {
42246
42257
  const select = (style) => {
42247
42258
  emit("select", style);
42248
42259
  };
42260
+ const update = (style) => {
42261
+ emit("update", style);
42262
+ };
42249
42263
  const moveToNextStyle = (index) => {
42250
42264
  if (index === styleRefs.value.length - 1) return;
42251
42265
  const nextItem = styleRefs.value[index + 1];
@@ -42305,12 +42319,23 @@ var _sfc_main$6 = {
42305
42319
  class: "style-name",
42306
42320
  "data-item": "btn-linkedStyles-option",
42307
42321
  style: require__plugin_vue_export_helper.normalizeStyle(previewStyle(style))
42308
- }, require__plugin_vue_export_helper.toDisplayString(styleLabel(style)), 5)], 42, _hoisted_2$6);
42322
+ }, require__plugin_vue_export_helper.toDisplayString(styleLabel(style)), 5), require__plugin_vue_export_helper.createElementVNode("button", {
42323
+ type: "button",
42324
+ class: "style-update",
42325
+ "data-item": "btn-linkedStyles-update",
42326
+ title: props.updateLabel,
42327
+ "aria-label": `${props.updateLabel}: ${styleLabel(style)}`,
42328
+ onClick: require__plugin_vue_export_helper.withModifiers(($event) => update(style), ["stop"]),
42329
+ onKeydown: _cache[0] || (_cache[0] = require__plugin_vue_export_helper.withModifiers(() => {}, ["stop"]))
42330
+ }, [require__plugin_vue_export_helper.createElementVNode("span", {
42331
+ class: "style-update-icon",
42332
+ innerHTML: require__plugin_vue_export_helper.unref(toolbarIcons).paintbrush
42333
+ }, null, 8, _hoisted_4$3)], 40, _hoisted_3$5)], 42, _hoisted_2$6);
42309
42334
  }), 128))]);
42310
42335
  };
42311
42336
  }
42312
42337
  };
42313
- var LinkedStyle_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$6, [["__scopeId", "data-v-74c8924b"]]);
42338
+ var LinkedStyle_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$6, [["__scopeId", "data-v-b5a32523"]]);
42314
42339
  //#endregion
42315
42340
  //#region src/internal/toolbar/built-in/AIWriter.vue
42316
42341
  var _hoisted_1$5 = ["placeholder"];
@@ -44516,10 +44541,18 @@ var makeDefaultItems = ({ superToolbar, toolbarIcons, toolbarTexts, toolbarFonts
44516
44541
  argument: styleId
44517
44542
  });
44518
44543
  };
44544
+ const handleUpdate = (style) => {
44545
+ closeDropdown(linkedStyles);
44546
+ const styleId = typeof style === "string" ? style : style?.id ?? null;
44547
+ if (!styleId) return;
44548
+ superToolbar.updateLinkedStyleToMatchSelection?.(styleId);
44549
+ };
44519
44550
  const activeStyleId = superToolbar.getActiveLinkedStyleId?.() ?? null;
44520
44551
  return require__plugin_vue_export_helper.h("div", {}, [require__plugin_vue_export_helper.h(LinkedStyle_default, {
44521
44552
  styles: superToolbar.getLinkedStyleOptions?.() ?? [],
44522
44553
  onSelect: handleSelect,
44554
+ onUpdate: handleUpdate,
44555
+ updateLabel: toolbarTexts.updateLinkedStyle,
44523
44556
  selectedOption: activeStyleId
44524
44557
  })]);
44525
44558
  }
@@ -44778,7 +44811,8 @@ var toolbarTexts = {
44778
44811
  documentEditingModeDescription: "Edit document directly",
44779
44812
  documentSuggestingModeDescription: "Edits become suggestions",
44780
44813
  documentViewingModeDescription: "View clean version of document only",
44781
- linkedStyles: "Linked styles"
44814
+ linkedStyles: "Linked styles",
44815
+ updateLinkedStyle: "Update to match selection"
44782
44816
  };
44783
44817
  //#endregion
44784
44818
  //#region src/internal/toolbar/built-in/general.js
@@ -45270,12 +45304,16 @@ var BuiltInToolbar = class extends require_eventemitter3.import_eventemitter3.de
45270
45304
  return this._linkedStyleOptions.value;
45271
45305
  }
45272
45306
  #refreshLinkedStyleOptions() {
45273
- this.ui?.styles?.getCatalog?.({ includePreview: true });
45307
+ const allStyles = this.ui?.styles?.getCatalog?.({ includePreview: true });
45274
45308
  const options = (this.ui?.styles?.getCatalog?.({
45275
45309
  view: "quickGallery",
45276
45310
  includePreview: true
45277
45311
  }))?.items ?? this.ui?.styles?.getQuickGallery?.() ?? [];
45278
- if (options !== this._linkedStyleOptions.value) this._linkedStyleOptions.value = options;
45312
+ const activeStyleId = this.ui?.styles?.getActiveParagraphStyle?.()?.styleId;
45313
+ const activeStyle = activeStyleId && !options.some((style) => style.id === activeStyleId) ? allStyles?.styles?.find((style) => style.id === activeStyleId && (style.type === "paragraph" || style.type === "linked")) : null;
45314
+ const nextOptions = activeStyle ? [activeStyle, ...options] : options;
45315
+ const previousOptions = this._linkedStyleOptions.value;
45316
+ if (nextOptions.length !== previousOptions.length || nextOptions.some((style, index) => style !== previousOptions[index])) this._linkedStyleOptions.value = nextOptions;
45279
45317
  }
45280
45318
  /**
45281
45319
  * The stable style id active across the current selection's paragraph(s), or
@@ -45285,6 +45323,17 @@ var BuiltInToolbar = class extends require_eventemitter3.import_eventemitter3.de
45285
45323
  getActiveLinkedStyleId() {
45286
45324
  return this.ui?.styles?.getActiveParagraphStyle?.()?.styleId ?? null;
45287
45325
  }
45326
+ async updateLinkedStyleToMatchSelection(styleId) {
45327
+ if (!styleId || typeof this.ui?.styles?.updateToMatchSelection !== "function") return null;
45328
+ try {
45329
+ return await this.ui.styles.updateToMatchSelection({ styleId });
45330
+ } catch (error) {
45331
+ this.#emitCommandException(error, "linkedStyles");
45332
+ return null;
45333
+ } finally {
45334
+ this.updateToolbarState();
45335
+ }
45336
+ }
45288
45337
  /**
45289
45338
  * Compatibility hook: `SuperDoc` calls this when the active editor changes.
45290
45339
  * The shared controller already tracks selection/transaction state, so this
@@ -46224,7 +46273,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46224
46273
  }
46225
46274
  this.userColorMap = /* @__PURE__ */ new Map();
46226
46275
  this.colorIndex = 0;
46227
- this.version = "2.27.0";
46276
+ this.version = "2.28.0-next.2";
46228
46277
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46229
46278
  this.superdocId = config.superdocId || require_uuid.v4();
46230
46279
  this.colors = this.config.colors ?? [];