superdoc 2.0.0-next.26 → 2.0.0-next.27

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.
@@ -7,7 +7,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
7
7
  var PRIVATE_ENGINE_INFO = (0, __superdoc_docx_engine_collaboration_upgrade_engine.getCollaborationUpgradeEngineInfo)();
8
8
  var ENGINE_INFO = Object.freeze({
9
9
  ...PRIVATE_ENGINE_INFO,
10
- superdocVersion: "2.0.0-next.26",
10
+ superdocVersion: "2.0.0-next.27",
11
11
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
12
12
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
13
13
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -6,7 +6,7 @@ const COLLABORATION_UPGRADE_ENGINE_MINIMUM_NODE_MAJOR = 20;
6
6
  var PRIVATE_ENGINE_INFO = getCollaborationUpgradeEngineInfo$1();
7
7
  var ENGINE_INFO = Object.freeze({
8
8
  ...PRIVATE_ENGINE_INFO,
9
- superdocVersion: "2.0.0-next.26",
9
+ superdocVersion: "2.0.0-next.27",
10
10
  roomSchemaVersion: Object.freeze({ ...PRIVATE_ENGINE_INFO.roomSchemaVersion }),
11
11
  supportedBundleVersions: SUPPORTED_COLLABORATION_UPGRADE_BUNDLE_VERSIONS,
12
12
  supportedV1ReaderContractVersions: SUPPORTED_V1_READER_CONTRACT_VERSIONS
@@ -86,6 +86,13 @@ export interface CommentInfo {
86
86
  * surviving anchor no longer maps wholly to one revision side.
87
87
  */
88
88
  trackedChangeParentId?: string;
89
+ /**
90
+ * Logical tracked-change id whose SuperDoc review conversation this
91
+ * comment explicitly belongs to. Unlike {@link trackedChangeParentId},
92
+ * this is persisted conversation provenance and is never inferred from
93
+ * anchor overlap.
94
+ */
95
+ trackedChangeThreadParentId?: string;
89
96
  /** Which side of the tracked change the anchor sits on. */
90
97
  trackedChangeSide?: CommentTrackedChangeSide;
91
98
  /**
@@ -177,6 +184,8 @@ export interface CommentDomain {
177
184
  rawOoxmlOccurrenceIndex?: number;
178
185
  /** See {@link CommentInfo.trackedChangeParentId}. */
179
186
  trackedChangeParentId?: string;
187
+ /** See {@link CommentInfo.trackedChangeThreadParentId}. */
188
+ trackedChangeThreadParentId?: string;
180
189
  /** See {@link CommentInfo.trackedChangeSide}. */
181
190
  trackedChangeSide?: CommentTrackedChangeSide;
182
191
  /** See {@link CommentInfo.trackedChangeLink}. */
@@ -1,4 +1,4 @@
1
- import { NodeKind } from '../types/base.js';
1
+ import { BlockNodeAddress, NodeKind } from '../types/base.js';
2
2
  import { SelectionTarget } from '../types/address.js';
3
3
  import { SDFragment } from '../types/fragment.js';
4
4
  import { ReceiptFailure, ReceiptInsert } from '../types/receipt.js';
@@ -119,6 +119,18 @@ export type ContentControlMoveDestination = ContentControlTarget | {
119
119
  } | {
120
120
  kind: 'after';
121
121
  target: ContentControlTarget;
122
+ }
123
+ /**
124
+ * Drop the control at an arbitrary caret inside a paragraph (SD-3779). `target`
125
+ * addresses the destination paragraph and `offset` is a text-character offset
126
+ * within it (0 = paragraph start). Mirrors `ImageCreateLocation`'s `inParagraph`
127
+ * variant so drag-and-drop can land a content control anywhere in the body, not
128
+ * just relative to another SDT. Direct-mode only.
129
+ */
130
+ | {
131
+ kind: 'inParagraph';
132
+ target: BlockNodeAddress;
133
+ offset?: number;
122
134
  };
123
135
  /**
124
136
  * Canonical content control info returned by all read/list operations.
@@ -2161,7 +2161,7 @@ export declare const OPERATION_DEFINITIONS: {
2161
2161
  };
2162
2162
  readonly 'contentControls.move': {
2163
2163
  readonly memberPath: "contentControls.move";
2164
- readonly description: "Move a content control to a new position. Direct moves preserve the original ID; tracked-mode authoring supports safe top-level block SDTs and remaps the destination SDT ID to avoid duplicate live anchors.";
2164
+ readonly description: "Move a content control to a new position: before or after another SDT, to the document start or end, or to an arbitrary caret inside a paragraph (the inParagraph destination) for drag-and-drop. Direct moves preserve the original ID; tracked-mode authoring supports safe top-level block SDTs (SDT-to-SDT destinations only) and remaps the destination SDT ID to avoid duplicate live anchors.";
2165
2165
  readonly expectedResult: "Returns a ContentControlMutationResult with the updated target position. Tracked-mode results include `trackedChangeRefs` pointing at the paired move review entity.";
2166
2166
  readonly requiresDocumentContext: true;
2167
2167
  readonly metadata: CommandStaticMetadata;
@@ -345,6 +345,7 @@ export type TextRun = RunMarks & {
345
345
  importedId?: string;
346
346
  internal?: boolean;
347
347
  trackedChange?: boolean;
348
+ trackedChangeThreadParentId?: string;
348
349
  }>;
349
350
  /**
350
351
  * Custom data attributes propagated from ProseMirror marks (keys must be data-*).
@@ -30,6 +30,7 @@ export interface TextRunStyleAttrs {
30
30
  vanish?: boolean;
31
31
  specVanish?: boolean;
32
32
  noProof?: boolean;
33
+ bidi?: NonNullable<TextRun['bidi']>;
33
34
  }
34
35
  /** Re-export so v2 adapter can consume one paragraph attrs type. */
35
36
  export type { ParagraphAttrs };
@@ -1,6 +1,6 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
2
  const require_rolldown_runtime = require("../chunks/rolldown-runtime-_dR15c8t.cjs");
3
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CHZKlLiH.cjs");
3
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-pYMthdDn.cjs");
4
4
  let react = require("react");
5
5
  var SuperDocUIContext = (0, react.createContext)(null);
6
6
  function SuperDocUIProvider(props) {
@@ -1,4 +1,4 @@
1
- import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-CBs8xQUw.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-Dvl3EZsv.es.js";
2
2
  import { createContext, createElement, useCallback, useContext, useEffect, useRef, useState } from "react";
3
3
  var SuperDocUIContext = createContext(null);
4
4
  function SuperDocUIProvider(props) {
@@ -1,5 +1,5 @@
1
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
- const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-CHZKlLiH.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-pYMthdDn.cjs");
3
3
  exports.BUILT_IN_COMMAND_IDS = require_create_super_doc_ui.BUILT_IN_COMMAND_IDS;
4
4
  exports.createSuperDocUI = require_create_super_doc_ui.createSuperDocUI;
5
5
  exports.shallowEqual = require_create_super_doc_ui.shallowEqual;
@@ -1,2 +1,2 @@
1
- import { n as BUILT_IN_COMMAND_IDS, r as shallowEqual, t as createSuperDocUI } from "../chunks/create-super-doc-ui-CBs8xQUw.es.js";
1
+ import { n as BUILT_IN_COMMAND_IDS, r as shallowEqual, t as createSuperDocUI } from "../chunks/create-super-doc-ui-Dvl3EZsv.es.js";
2
2
  export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
package/dist/style.css CHANGED
@@ -838,28 +838,28 @@ img[data-v-c95b2073] {
838
838
  background-color: transparent;
839
839
  }
840
840
 
841
- .comment-header[data-v-359c13bb] {
841
+ .comment-header[data-v-ca6050aa] {
842
842
  display: flex;
843
843
  align-items: center;
844
844
  justify-content: space-between;
845
845
  margin-bottom: 6px;
846
846
  }
847
- .comment-header-left[data-v-359c13bb] {
847
+ .comment-header-left[data-v-ca6050aa] {
848
848
  display: flex;
849
849
  align-items: center;
850
850
  gap: 8px;
851
851
  }
852
- .user-info[data-v-359c13bb] {
852
+ .user-info[data-v-ca6050aa] {
853
853
  display: flex;
854
854
  flex-direction: column;
855
855
  }
856
- .user-name[data-v-359c13bb] {
856
+ .user-name[data-v-ca6050aa] {
857
857
  font-size: var(--sd-ui-comments-author-size, 14px);
858
858
  font-weight: var(--sd-ui-comments-author-weight, 600);
859
859
  color: var(--sd-ui-comments-author-text, #212121);
860
860
  line-height: 1.2em;
861
861
  }
862
- .imported-tag[data-v-359c13bb] {
862
+ .imported-tag[data-v-ca6050aa] {
863
863
  display: inline-block;
864
864
  font-size: 9px;
865
865
  font-weight: 600;
@@ -873,12 +873,12 @@ img[data-v-c95b2073] {
873
873
  vertical-align: middle;
874
874
  line-height: 1.4;
875
875
  }
876
- .user-timestamp[data-v-359c13bb] {
876
+ .user-timestamp[data-v-ca6050aa] {
877
877
  line-height: 1.2em;
878
878
  font-size: var(--sd-ui-comments-timestamp-size, 12px);
879
879
  color: var(--sd-ui-comments-timestamp-text, #888888);
880
880
  }
881
- .overflow-menu[data-v-359c13bb] {
881
+ .overflow-menu[data-v-ca6050aa] {
882
882
  flex-shrink: 1;
883
883
  display: flex;
884
884
  gap: 6px;
@@ -886,11 +886,11 @@ img[data-v-c95b2073] {
886
886
  pointer-events: none;
887
887
  transition: opacity 150ms ease;
888
888
  }
889
- .overflow-menu.is-visible[data-v-359c13bb] {
889
+ .overflow-menu.is-visible[data-v-ca6050aa] {
890
890
  opacity: 1;
891
891
  pointer-events: auto;
892
892
  }
893
- .overflow-menu__icon[data-v-359c13bb] {
893
+ .overflow-menu__icon[data-v-ca6050aa] {
894
894
  display: flex;
895
895
  box-sizing: content-box;
896
896
  justify-content: center;
@@ -904,24 +904,24 @@ img[data-v-c95b2073] {
904
904
  cursor: pointer;
905
905
  transition: all 250ms ease;
906
906
  }
907
- .overflow-menu__icon[data-v-359c13bb]:hover {
907
+ .overflow-menu__icon[data-v-ca6050aa]:hover {
908
908
  background-color: var(--sd-ui-comments-separator, #dbdbdb);
909
909
  }
910
- .overflow-menu__icon.sd-is-disabled[data-v-359c13bb] {
910
+ .overflow-menu__icon.sd-is-disabled[data-v-ca6050aa] {
911
911
  opacity: 0.4;
912
912
  cursor: not-allowed;
913
913
  pointer-events: auto;
914
914
  }
915
- .overflow-menu__icon.sd-is-disabled[data-v-359c13bb]:hover {
915
+ .overflow-menu__icon.sd-is-disabled[data-v-ca6050aa]:hover {
916
916
  background-color: transparent;
917
917
  }
918
- .overflow-menu__icon[data-v-359c13bb] svg {
918
+ .overflow-menu__icon[data-v-ca6050aa] svg {
919
919
  width: 100%;
920
920
  height: 100%;
921
921
  display: block;
922
922
  fill: currentColor;
923
923
  }
924
- .overflow-icon[data-v-359c13bb] {
924
+ .overflow-icon[data-v-ca6050aa] {
925
925
  display: inline-flex;
926
926
  justify-content: center;
927
927
  align-items: center;
@@ -1679,11 +1679,11 @@ img[data-v-c95b2073] {
1679
1679
  pointer-events: auto;
1680
1680
  }
1681
1681
 
1682
- .superdoc[data-v-8d8777e2] {
1682
+ .superdoc[data-v-c4ab995e] {
1683
1683
  display: flex;
1684
1684
  position: relative;
1685
1685
  }
1686
- .sd-visually-hidden[data-v-8d8777e2] {
1686
+ .sd-visually-hidden[data-v-c4ab995e] {
1687
1687
  position: absolute;
1688
1688
  width: 1px;
1689
1689
  height: 1px;
@@ -1694,30 +1694,30 @@ img[data-v-c95b2073] {
1694
1694
  white-space: nowrap;
1695
1695
  border: 0;
1696
1696
  }
1697
- .right-sidebar[data-v-8d8777e2] {
1697
+ .right-sidebar[data-v-c4ab995e] {
1698
1698
  min-width: 320px;
1699
1699
  height: 100%;
1700
1700
  }
1701
- .floating-comments[data-v-8d8777e2] {
1701
+ .floating-comments[data-v-c4ab995e] {
1702
1702
  min-width: 300px;
1703
1703
  width: 300px;
1704
1704
  height: 100%;
1705
1705
  overflow: visible;
1706
1706
  }
1707
- .superdoc__layers[data-v-8d8777e2] {
1707
+ .superdoc__layers[data-v-c4ab995e] {
1708
1708
  height: 100%;
1709
1709
  position: relative;
1710
1710
  box-sizing: border-box;
1711
1711
  }
1712
- .superdoc__document[data-v-8d8777e2] {
1712
+ .superdoc__document[data-v-c4ab995e] {
1713
1713
  width: 100%;
1714
1714
  position: relative;
1715
1715
  }
1716
- .superdoc__sub-document[data-v-8d8777e2] {
1716
+ .superdoc__sub-document[data-v-c4ab995e] {
1717
1717
  width: 100%;
1718
1718
  position: relative;
1719
1719
  }
1720
- .superdoc__selection-layer[data-v-8d8777e2] {
1720
+ .superdoc__selection-layer[data-v-c4ab995e] {
1721
1721
  position: absolute;
1722
1722
  min-width: 100%;
1723
1723
  min-height: 100%;
@@ -1728,13 +1728,13 @@ img[data-v-c95b2073] {
1728
1728
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1729
1729
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1730
1730
  clickable, and below the selection layer (z-index 10). */
1731
- .superdoc__whiteboard-layer[data-v-8d8777e2] {
1731
+ .superdoc__whiteboard-layer[data-v-c4ab995e] {
1732
1732
  z-index: 4;
1733
1733
  }
1734
- .superdoc__temp-selection[data-v-8d8777e2] {
1734
+ .superdoc__temp-selection[data-v-c4ab995e] {
1735
1735
  position: absolute;
1736
1736
  }
1737
- .superdoc__right-sidebar[data-v-8d8777e2] {
1737
+ .superdoc__right-sidebar[data-v-c4ab995e] {
1738
1738
  width: 320px;
1739
1739
  min-width: 320px;
1740
1740
  padding: 0 10px;
@@ -1742,7 +1742,7 @@ img[data-v-c95b2073] {
1742
1742
  position: relative;
1743
1743
  z-index: 2;
1744
1744
  }
1745
- .superdoc__compact-comment-popover[data-v-8d8777e2] {
1745
+ .superdoc__compact-comment-popover[data-v-c4ab995e] {
1746
1746
  position: absolute;
1747
1747
  top: 12px;
1748
1748
  right: 12px;
@@ -1751,14 +1751,14 @@ img[data-v-c95b2073] {
1751
1751
  }
1752
1752
 
1753
1753
  /* Tools styles */
1754
- .tools[data-v-8d8777e2] {
1754
+ .tools[data-v-c4ab995e] {
1755
1755
  position: absolute;
1756
1756
  z-index: 3;
1757
1757
  display: flex;
1758
1758
  flex-direction: column;
1759
1759
  gap: var(--sd-ui-tools-gap, 6px);
1760
1760
  }
1761
- .tools-item[data-v-8d8777e2] {
1761
+ .tools-item[data-v-c4ab995e] {
1762
1762
  display: flex;
1763
1763
  align-items: center;
1764
1764
  justify-content: center;
@@ -1769,10 +1769,10 @@ img[data-v-c95b2073] {
1769
1769
  cursor: pointer;
1770
1770
  position: relative;
1771
1771
  }
1772
- .tools-item i[data-v-8d8777e2] {
1772
+ .tools-item i[data-v-c4ab995e] {
1773
1773
  cursor: pointer;
1774
1774
  }
1775
- .superdoc__tools-icon[data-v-8d8777e2] {
1775
+ .superdoc__tools-icon[data-v-c4ab995e] {
1776
1776
  width: var(--sd-ui-tools-icon-size, 20px);
1777
1777
  height: var(--sd-ui-tools-icon-size, 20px);
1778
1778
  flex-shrink: 0;
@@ -1787,22 +1787,22 @@ img[data-v-c95b2073] {
1787
1787
 
1788
1788
  /* 834px is iPad screen size in portrait orientation */
1789
1789
  @media (max-width: 834px) {
1790
- .superdoc .superdoc__layers[data-v-8d8777e2] {
1790
+ .superdoc .superdoc__layers[data-v-c4ab995e] {
1791
1791
  margin: 0;
1792
1792
  border: 0 !important;
1793
1793
  box-shadow: none;
1794
1794
  }
1795
- .superdoc__sub-document[data-v-8d8777e2] {
1795
+ .superdoc__sub-document[data-v-c4ab995e] {
1796
1796
  max-width: 100%;
1797
1797
  }
1798
- .superdoc__right-sidebar[data-v-8d8777e2] {
1798
+ .superdoc__right-sidebar[data-v-c4ab995e] {
1799
1799
  padding: 10px;
1800
1800
  position: relative;
1801
1801
  }
1802
1802
  }
1803
1803
 
1804
1804
  /* AI Writer styles */
1805
- .ai-writer-container[data-v-8d8777e2] {
1805
+ .ai-writer-container[data-v-c4ab995e] {
1806
1806
  position: fixed;
1807
1807
  z-index: 1000;
1808
1808
  background: white;
@@ -1818,10 +1818,10 @@ img[data-v-c95b2073] {
1818
1818
  transform: translateY(-50%);
1819
1819
  z-index: 50;
1820
1820
  } */
1821
- .ai-tool > svg[data-v-8d8777e2] {
1821
+ .ai-tool > svg[data-v-c4ab995e] {
1822
1822
  fill: transparent;
1823
1823
  }
1824
- .ai-tool[data-v-8d8777e2]::before {
1824
+ .ai-tool[data-v-c4ab995e]::before {
1825
1825
  content: '';
1826
1826
  position: absolute;
1827
1827
  width: 20px;
@@ -1842,7 +1842,7 @@ img[data-v-c95b2073] {
1842
1842
  filter: brightness(1.2);
1843
1843
  transition: filter 0.2s ease;
1844
1844
  }
1845
- .ai-tool[data-v-8d8777e2]:hover::before {
1845
+ .ai-tool[data-v-c4ab995e]:hover::before {
1846
1846
  filter: brightness(1.3);
1847
1847
  }
1848
1848
 
@@ -838,28 +838,28 @@ img[data-v-c95b2073] {
838
838
  background-color: transparent;
839
839
  }
840
840
 
841
- .comment-header[data-v-359c13bb] {
841
+ .comment-header[data-v-ca6050aa] {
842
842
  display: flex;
843
843
  align-items: center;
844
844
  justify-content: space-between;
845
845
  margin-bottom: 6px;
846
846
  }
847
- .comment-header-left[data-v-359c13bb] {
847
+ .comment-header-left[data-v-ca6050aa] {
848
848
  display: flex;
849
849
  align-items: center;
850
850
  gap: 8px;
851
851
  }
852
- .user-info[data-v-359c13bb] {
852
+ .user-info[data-v-ca6050aa] {
853
853
  display: flex;
854
854
  flex-direction: column;
855
855
  }
856
- .user-name[data-v-359c13bb] {
856
+ .user-name[data-v-ca6050aa] {
857
857
  font-size: var(--sd-ui-comments-author-size, 14px);
858
858
  font-weight: var(--sd-ui-comments-author-weight, 600);
859
859
  color: var(--sd-ui-comments-author-text, #212121);
860
860
  line-height: 1.2em;
861
861
  }
862
- .imported-tag[data-v-359c13bb] {
862
+ .imported-tag[data-v-ca6050aa] {
863
863
  display: inline-block;
864
864
  font-size: 9px;
865
865
  font-weight: 600;
@@ -873,12 +873,12 @@ img[data-v-c95b2073] {
873
873
  vertical-align: middle;
874
874
  line-height: 1.4;
875
875
  }
876
- .user-timestamp[data-v-359c13bb] {
876
+ .user-timestamp[data-v-ca6050aa] {
877
877
  line-height: 1.2em;
878
878
  font-size: var(--sd-ui-comments-timestamp-size, 12px);
879
879
  color: var(--sd-ui-comments-timestamp-text, #888888);
880
880
  }
881
- .overflow-menu[data-v-359c13bb] {
881
+ .overflow-menu[data-v-ca6050aa] {
882
882
  flex-shrink: 1;
883
883
  display: flex;
884
884
  gap: 6px;
@@ -886,11 +886,11 @@ img[data-v-c95b2073] {
886
886
  pointer-events: none;
887
887
  transition: opacity 150ms ease;
888
888
  }
889
- .overflow-menu.is-visible[data-v-359c13bb] {
889
+ .overflow-menu.is-visible[data-v-ca6050aa] {
890
890
  opacity: 1;
891
891
  pointer-events: auto;
892
892
  }
893
- .overflow-menu__icon[data-v-359c13bb] {
893
+ .overflow-menu__icon[data-v-ca6050aa] {
894
894
  display: flex;
895
895
  box-sizing: content-box;
896
896
  justify-content: center;
@@ -904,24 +904,24 @@ img[data-v-c95b2073] {
904
904
  cursor: pointer;
905
905
  transition: all 250ms ease;
906
906
  }
907
- .overflow-menu__icon[data-v-359c13bb]:hover {
907
+ .overflow-menu__icon[data-v-ca6050aa]:hover {
908
908
  background-color: var(--sd-ui-comments-separator, #dbdbdb);
909
909
  }
910
- .overflow-menu__icon.sd-is-disabled[data-v-359c13bb] {
910
+ .overflow-menu__icon.sd-is-disabled[data-v-ca6050aa] {
911
911
  opacity: 0.4;
912
912
  cursor: not-allowed;
913
913
  pointer-events: auto;
914
914
  }
915
- .overflow-menu__icon.sd-is-disabled[data-v-359c13bb]:hover {
915
+ .overflow-menu__icon.sd-is-disabled[data-v-ca6050aa]:hover {
916
916
  background-color: transparent;
917
917
  }
918
- .overflow-menu__icon[data-v-359c13bb] svg {
918
+ .overflow-menu__icon[data-v-ca6050aa] svg {
919
919
  width: 100%;
920
920
  height: 100%;
921
921
  display: block;
922
922
  fill: currentColor;
923
923
  }
924
- .overflow-icon[data-v-359c13bb] {
924
+ .overflow-icon[data-v-ca6050aa] {
925
925
  display: inline-flex;
926
926
  justify-content: center;
927
927
  align-items: center;
@@ -1679,11 +1679,11 @@ img[data-v-c95b2073] {
1679
1679
  pointer-events: auto;
1680
1680
  }
1681
1681
 
1682
- .superdoc[data-v-8d8777e2] {
1682
+ .superdoc[data-v-c4ab995e] {
1683
1683
  display: flex;
1684
1684
  position: relative;
1685
1685
  }
1686
- .sd-visually-hidden[data-v-8d8777e2] {
1686
+ .sd-visually-hidden[data-v-c4ab995e] {
1687
1687
  position: absolute;
1688
1688
  width: 1px;
1689
1689
  height: 1px;
@@ -1694,30 +1694,30 @@ img[data-v-c95b2073] {
1694
1694
  white-space: nowrap;
1695
1695
  border: 0;
1696
1696
  }
1697
- .right-sidebar[data-v-8d8777e2] {
1697
+ .right-sidebar[data-v-c4ab995e] {
1698
1698
  min-width: 320px;
1699
1699
  height: 100%;
1700
1700
  }
1701
- .floating-comments[data-v-8d8777e2] {
1701
+ .floating-comments[data-v-c4ab995e] {
1702
1702
  min-width: 300px;
1703
1703
  width: 300px;
1704
1704
  height: 100%;
1705
1705
  overflow: visible;
1706
1706
  }
1707
- .superdoc__layers[data-v-8d8777e2] {
1707
+ .superdoc__layers[data-v-c4ab995e] {
1708
1708
  height: 100%;
1709
1709
  position: relative;
1710
1710
  box-sizing: border-box;
1711
1711
  }
1712
- .superdoc__document[data-v-8d8777e2] {
1712
+ .superdoc__document[data-v-c4ab995e] {
1713
1713
  width: 100%;
1714
1714
  position: relative;
1715
1715
  }
1716
- .superdoc__sub-document[data-v-8d8777e2] {
1716
+ .superdoc__sub-document[data-v-c4ab995e] {
1717
1717
  width: 100%;
1718
1718
  position: relative;
1719
1719
  }
1720
- .superdoc__selection-layer[data-v-8d8777e2] {
1720
+ .superdoc__selection-layer[data-v-c4ab995e] {
1721
1721
  position: absolute;
1722
1722
  min-width: 100%;
1723
1723
  min-height: 100%;
@@ -1728,13 +1728,13 @@ img[data-v-c95b2073] {
1728
1728
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1729
1729
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1730
1730
  clickable, and below the selection layer (z-index 10). */
1731
- .superdoc__whiteboard-layer[data-v-8d8777e2] {
1731
+ .superdoc__whiteboard-layer[data-v-c4ab995e] {
1732
1732
  z-index: 4;
1733
1733
  }
1734
- .superdoc__temp-selection[data-v-8d8777e2] {
1734
+ .superdoc__temp-selection[data-v-c4ab995e] {
1735
1735
  position: absolute;
1736
1736
  }
1737
- .superdoc__right-sidebar[data-v-8d8777e2] {
1737
+ .superdoc__right-sidebar[data-v-c4ab995e] {
1738
1738
  width: 320px;
1739
1739
  min-width: 320px;
1740
1740
  padding: 0 10px;
@@ -1742,7 +1742,7 @@ img[data-v-c95b2073] {
1742
1742
  position: relative;
1743
1743
  z-index: 2;
1744
1744
  }
1745
- .superdoc__compact-comment-popover[data-v-8d8777e2] {
1745
+ .superdoc__compact-comment-popover[data-v-c4ab995e] {
1746
1746
  position: absolute;
1747
1747
  top: 12px;
1748
1748
  right: 12px;
@@ -1751,14 +1751,14 @@ img[data-v-c95b2073] {
1751
1751
  }
1752
1752
 
1753
1753
  /* Tools styles */
1754
- .tools[data-v-8d8777e2] {
1754
+ .tools[data-v-c4ab995e] {
1755
1755
  position: absolute;
1756
1756
  z-index: 3;
1757
1757
  display: flex;
1758
1758
  flex-direction: column;
1759
1759
  gap: var(--sd-ui-tools-gap, 6px);
1760
1760
  }
1761
- .tools-item[data-v-8d8777e2] {
1761
+ .tools-item[data-v-c4ab995e] {
1762
1762
  display: flex;
1763
1763
  align-items: center;
1764
1764
  justify-content: center;
@@ -1769,10 +1769,10 @@ img[data-v-c95b2073] {
1769
1769
  cursor: pointer;
1770
1770
  position: relative;
1771
1771
  }
1772
- .tools-item i[data-v-8d8777e2] {
1772
+ .tools-item i[data-v-c4ab995e] {
1773
1773
  cursor: pointer;
1774
1774
  }
1775
- .superdoc__tools-icon[data-v-8d8777e2] {
1775
+ .superdoc__tools-icon[data-v-c4ab995e] {
1776
1776
  width: var(--sd-ui-tools-icon-size, 20px);
1777
1777
  height: var(--sd-ui-tools-icon-size, 20px);
1778
1778
  flex-shrink: 0;
@@ -1787,22 +1787,22 @@ img[data-v-c95b2073] {
1787
1787
 
1788
1788
  /* 834px is iPad screen size in portrait orientation */
1789
1789
  @media (max-width: 834px) {
1790
- .superdoc .superdoc__layers[data-v-8d8777e2] {
1790
+ .superdoc .superdoc__layers[data-v-c4ab995e] {
1791
1791
  margin: 0;
1792
1792
  border: 0 !important;
1793
1793
  box-shadow: none;
1794
1794
  }
1795
- .superdoc__sub-document[data-v-8d8777e2] {
1795
+ .superdoc__sub-document[data-v-c4ab995e] {
1796
1796
  max-width: 100%;
1797
1797
  }
1798
- .superdoc__right-sidebar[data-v-8d8777e2] {
1798
+ .superdoc__right-sidebar[data-v-c4ab995e] {
1799
1799
  padding: 10px;
1800
1800
  position: relative;
1801
1801
  }
1802
1802
  }
1803
1803
 
1804
1804
  /* AI Writer styles */
1805
- .ai-writer-container[data-v-8d8777e2] {
1805
+ .ai-writer-container[data-v-c4ab995e] {
1806
1806
  position: fixed;
1807
1807
  z-index: 1000;
1808
1808
  background: white;
@@ -1818,10 +1818,10 @@ img[data-v-c95b2073] {
1818
1818
  transform: translateY(-50%);
1819
1819
  z-index: 50;
1820
1820
  } */
1821
- .ai-tool > svg[data-v-8d8777e2] {
1821
+ .ai-tool > svg[data-v-c4ab995e] {
1822
1822
  fill: transparent;
1823
1823
  }
1824
- .ai-tool[data-v-8d8777e2]::before {
1824
+ .ai-tool[data-v-c4ab995e]::before {
1825
1825
  content: '';
1826
1826
  position: absolute;
1827
1827
  width: 20px;
@@ -1842,7 +1842,7 @@ img[data-v-c95b2073] {
1842
1842
  filter: brightness(1.2);
1843
1843
  transition: filter 0.2s ease;
1844
1844
  }
1845
- .ai-tool[data-v-8d8777e2]:hover::before {
1845
+ .ai-tool[data-v-c4ab995e]:hover::before {
1846
1846
  filter: brightness(1.3);
1847
1847
  }
1848
1848
 
@@ -0,0 +1 @@
1
+ export function collectRemovedCommentIds(comments: ReadonlyArray<Record<string, any>>, targetIds: ReadonlyArray<string>, isInScope?: (comment: Record<string, any>) => boolean): Set<string>;
@@ -2,5 +2,5 @@ export function collectTrackedChangeThread<Comment extends {
2
2
  commentId: string;
3
3
  parentCommentId?: string | null;
4
4
  threadingParentCommentId?: string | null;
5
- trackedChangeParentId?: string | null;
5
+ trackedChangeThreadParentId?: string | null;
6
6
  }>(parentComment: Comment, allComments: ReadonlyArray<Comment>): Array<Comment>;
@@ -0,0 +1,2 @@
1
+ export function hasLegacyTrackedChangeThreadSignal(comment: Record<string, any> | null | undefined): boolean;
2
+ export function trackedChangeThreadParentIdForComment(comment: Record<string, any> | null | undefined): string | number | null;
@@ -0,0 +1,12 @@
1
+ export function createV2RemoteReviewHydrationScheduler({ hydrate, getActiveDocumentId, debounceMs, ceilingMs, now, setTimer, clearTimer, }: {
2
+ hydrate: any;
3
+ getActiveDocumentId: any;
4
+ debounceMs?: number | undefined;
5
+ ceilingMs?: number | undefined;
6
+ now?: (() => number) | undefined;
7
+ setTimer?: ((callback: any, delay: any) => NodeJS.Timeout) | undefined;
8
+ clearTimer?: ((timer: any) => void) | undefined;
9
+ }): {
10
+ schedule: (documentId: any) => boolean;
11
+ clear: () => void;
12
+ };