superdoc 2.0.0-next.28 → 2.0.0-next.29

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.28",
10
+ superdocVersion: "2.0.0-next.29",
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.28",
9
+ superdocVersion: "2.0.0-next.29",
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
@@ -1,4 +1,4 @@
1
- import { PageCheckpointDependencyClass, FlowBlock, Layout, Measure, HeaderFooterLayout, ParagraphBlock, ParagraphMeasure } from '../../contracts/src/index.js';
1
+ import { PageCheckpointDependencyClass, FlowBlock, Layout, Measure, HeaderFooterLayout, ParagraphBlock, ParagraphMeasure, ColumnLayout } from '../../contracts/src/index.js';
2
2
  import { FontMeasureContext } from '../../../shared/font-system/src/index.js';
3
3
  import { LayoutOptions, HeaderFooterConstraints } from '../../layout-engine/src/index.js';
4
4
  import { computeDirtyRegions } from './diff.js';
@@ -39,6 +39,10 @@ export type FootnoteReserveSeed = {
39
39
  fontSignature: string;
40
40
  measurementWidth: number;
41
41
  measurementHeight: number;
42
+ /** Exact note measurement width retained with unchanged section geometry. */
43
+ footnoteMeasurementWidth?: number;
44
+ /** Section-column inputs used to derive the retained note measurement width. */
45
+ sectionColumnsByIndex?: Map<number, ColumnLayout>;
42
46
  /** Exact note block objects retained by the host's authoritative note-bundle proof. */
43
47
  noteBlocksByBlockId?: Map<string, FlowBlock>;
44
48
  /** Measures paired with `noteBlocksByBlockId`; object identity is revalidated before reuse. */
@@ -246,6 +250,14 @@ export type IncrementalLayoutReuseOptions = {
246
250
  }> | null;
247
251
  /** Retained key index used for O(1) convergence candidate lookup. */
248
252
  previousPageStartKeyIndex?: ReadonlyMap<string, readonly number[]> | null;
253
+ /**
254
+ * Host-proved note-only refresh. Body ids are unchanged reference anchors;
255
+ * only the named note projections may differ from the retained note plane.
256
+ */
257
+ provedNoteOnlyRefresh?: {
258
+ noteIds: readonly string[];
259
+ bodyReferenceBlockIds: readonly string[];
260
+ };
249
261
  };
250
262
  export declare const measureCache: MeasureCache<Measure>;
251
263
  /**
@@ -291,6 +303,11 @@ export declare function incrementalLayout(previousBlocks: FlowBlock[], _previous
291
303
  footnoteReserveSeed?: FootnoteReserveSeed | null;
292
304
  /** Host proved the authoritative note projection bundle was retained exactly. */
293
305
  noteMeasurePlaneRetainedExact?: true;
306
+ /** Extra note/decorative planes paired with the retained note bundle. */
307
+ retainedFootnoteExtras?: {
308
+ blocks: FlowBlock[];
309
+ measures: Measure[];
310
+ };
294
311
  }, layoutReuse?: IncrementalLayoutReuseOptions, measureReuseProof?: IncrementalMeasureReuseProof, execution?: IncrementalLayoutExecutionControl): Promise<IncrementalLayoutResult>;
295
312
  /**
296
313
  * Normalizes a margin value, using a fallback for undefined or non-finite values.
@@ -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-CZBUMdjl.cjs");
3
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-BXehf3i3.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-BlnUCtrx.es.js";
1
+ import { t as createSuperDocUI } from "../chunks/create-super-doc-ui-BKVf2uCM.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-CZBUMdjl.cjs");
2
+ const require_create_super_doc_ui = require("../chunks/create-super-doc-ui-BXehf3i3.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-BlnUCtrx.es.js";
1
+ import { n as BUILT_IN_COMMAND_IDS, r as shallowEqual, t as createSuperDocUI } from "../chunks/create-super-doc-ui-BKVf2uCM.es.js";
2
2
  export { BUILT_IN_COMMAND_IDS, createSuperDocUI, shallowEqual };
package/dist/style.css CHANGED
@@ -701,6 +701,25 @@
701
701
  .superdoc .sd-proofing-style {
702
702
  text-decoration-color: var(--sd-proofing-style-color, #805ad5);
703
703
  }
704
+ /* CSS Custom Highlight variant: the v2 runtime paints per-word squiggles over
705
+ * exact text ranges (no DOM mutation). Highlight names match the class names. */
706
+ ::highlight(sd-proofing-spelling),
707
+ ::highlight(sd-proofing-grammar),
708
+ ::highlight(sd-proofing-style) {
709
+ text-decoration-line: underline;
710
+ text-decoration-style: wavy;
711
+ text-decoration-thickness: var(--sd-proofing-underline-thickness, 1.5px);
712
+ text-underline-offset: var(--sd-proofing-underline-offset, 2px);
713
+ }
714
+ ::highlight(sd-proofing-spelling) {
715
+ text-decoration-color: var(--sd-proofing-spelling-color, #e53e3e);
716
+ }
717
+ ::highlight(sd-proofing-grammar) {
718
+ text-decoration-color: var(--sd-proofing-grammar-color, #3182ce);
719
+ }
720
+ ::highlight(sd-proofing-style) {
721
+ text-decoration-color: var(--sd-proofing-style-color, #805ad5);
722
+ }
704
723
  /* Contained Mode - fixed-height container embedding with internal scrolling */
705
724
  .superdoc--contained,
706
725
  .superdoc--contained .superdoc__layers,
@@ -960,7 +979,7 @@ img[data-v-c95b2073] {
960
979
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
961
980
  }
962
981
 
963
- .comments-dialog[data-v-35236c9c] {
982
+ .comments-dialog[data-v-74340036] {
964
983
  display: flex;
965
984
  flex-direction: column;
966
985
  padding: var(--sd-ui-comments-card-padding, 16px);
@@ -979,73 +998,73 @@ img[data-v-c95b2073] {
979
998
  overflow-wrap: break-word;
980
999
  word-break: break-word;
981
1000
  }
982
- .comments-dialog[data-v-35236c9c]:not(.is-active) {
1001
+ .comments-dialog[data-v-74340036]:not(.is-active) {
983
1002
  cursor: pointer;
984
1003
  }
985
- .comments-dialog[data-v-35236c9c]:not(.is-active):not(.is-resolved):hover {
1004
+ .comments-dialog[data-v-74340036]:not(.is-active):not(.is-resolved):hover {
986
1005
  background-color: var(--sd-ui-comments-card-hover-bg, #f3f6fd);
987
1006
  }
988
- .comments-dialog[data-v-35236c9c]:not(.is-resolved):hover .overflow-menu {
1007
+ .comments-dialog[data-v-74340036]:not(.is-resolved):hover .overflow-menu {
989
1008
  opacity: 1;
990
1009
  pointer-events: auto;
991
1010
  }
992
- .comments-dialog.is-active[data-v-35236c9c] {
1011
+ .comments-dialog.is-active[data-v-74340036] {
993
1012
  background-color: var(--sd-ui-comments-card-active-bg, #ffffff);
994
1013
  border-color: var(--sd-ui-comments-card-active-border, #e0e0e0);
995
1014
  box-shadow: var(--sd-ui-comments-card-shadow, 0px 4px 12px 0px rgba(50, 50, 50, 0.15));
996
1015
  z-index: 10;
997
1016
  }
998
- .comments-dialog.is-resolved[data-v-35236c9c] {
1017
+ .comments-dialog.is-resolved[data-v-74340036] {
999
1018
  background-color: var(--sd-ui-comments-card-resolved-bg, #f0f0f0);
1000
1019
  }
1001
- .comment-separator[data-v-35236c9c] {
1020
+ .comment-separator[data-v-74340036] {
1002
1021
  background-color: var(--sd-ui-comments-separator, #e0e0e0);
1003
1022
  height: 1px;
1004
1023
  width: 100%;
1005
1024
  margin: 10px 0;
1006
1025
  }
1007
- .comment[data-v-35236c9c] {
1026
+ .comment[data-v-74340036] {
1008
1027
  font-size: var(--sd-ui-comments-body-size, 14px);
1009
1028
  line-height: 1.5;
1010
1029
  color: var(--sd-ui-comments-body-text, #212121);
1011
1030
  margin: 4px 0 0 0;
1012
1031
  }
1013
- .comment[data-v-35236c9c] p {
1032
+ .comment[data-v-74340036] p {
1014
1033
  margin: 0;
1015
1034
  }
1016
- .tracked-change[data-v-35236c9c] {
1035
+ .tracked-change[data-v-74340036] {
1017
1036
  font-size: var(--sd-ui-comments-body-size, 14px);
1018
1037
  line-height: 1.5;
1019
1038
  color: var(--sd-ui-comments-body-text, #212121);
1020
1039
  margin: 4px 0 0 0;
1021
1040
  }
1022
- .change-type[data-v-35236c9c] {
1041
+ .change-type[data-v-74340036] {
1023
1042
  color: var(--sd-ui-comments-body-text, #212121);
1024
1043
  }
1025
- .tracked-change-text[data-v-35236c9c] {
1044
+ .tracked-change-text[data-v-74340036] {
1026
1045
  color: var(--sd-ui-comments-body-text, #212121);
1027
1046
  }
1028
- .tracked-change-text.is-deleted[data-v-35236c9c] {
1047
+ .tracked-change-text.is-deleted[data-v-74340036] {
1029
1048
  color: var(--sd-ui-comments-delete-text, #cb0e47);
1030
1049
  }
1031
- .tracked-change-text.is-inserted[data-v-35236c9c] {
1050
+ .tracked-change-text.is-inserted[data-v-74340036] {
1032
1051
  color: var(--sd-ui-comments-insert-text, #1f6feb);
1033
1052
  font-weight: 500;
1034
1053
  }
1035
- .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-35236c9c] {
1054
+ .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-74340036] {
1036
1055
  color: var(--sd-ui-comments-move-from-text, #00853d);
1037
1056
  }
1038
- .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-35236c9c] {
1057
+ .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-74340036] {
1039
1058
  color: var(--sd-ui-comments-move-to-text, #00853d);
1040
1059
  }
1041
- .tracked-change-detail-lines[data-v-35236c9c] {
1060
+ .tracked-change-detail-lines[data-v-74340036] {
1042
1061
  margin-top: 4px;
1043
1062
  }
1044
- .tracked-change-detail-line[data-v-35236c9c] {
1063
+ .tracked-change-detail-line[data-v-74340036] {
1045
1064
  font-size: 12px;
1046
1065
  line-height: 1.4;
1047
1066
  }
1048
- .tracked-change-image-preview[data-v-35236c9c] {
1067
+ .tracked-change-image-preview[data-v-74340036] {
1049
1068
  display: inline-flex;
1050
1069
  align-items: center;
1051
1070
  justify-content: center;
@@ -1056,7 +1075,7 @@ img[data-v-c95b2073] {
1056
1075
  max-width: 96px;
1057
1076
  max-height: 96px;
1058
1077
  }
1059
- .tracked-change-image-preview__image[data-v-35236c9c] {
1078
+ .tracked-change-image-preview__image[data-v-74340036] {
1060
1079
  display: block;
1061
1080
  width: auto;
1062
1081
  height: auto;
@@ -1066,7 +1085,7 @@ img[data-v-c95b2073] {
1066
1085
  }
1067
1086
 
1068
1087
  /* ── Failed tracked-change decision alert (SD-3772 §6) ── */
1069
- .tracked-change-decision-alert[data-v-35236c9c] {
1088
+ .tracked-change-decision-alert[data-v-74340036] {
1070
1089
  display: flex;
1071
1090
  align-items: center;
1072
1091
  justify-content: space-between;
@@ -1080,12 +1099,12 @@ img[data-v-c95b2073] {
1080
1099
  font-size: var(--sd-ui-comments-body-size, 14px);
1081
1100
  line-height: 1.4;
1082
1101
  }
1083
- .tracked-change-decision-alert__retry[data-v-35236c9c] {
1102
+ .tracked-change-decision-alert__retry[data-v-74340036] {
1084
1103
  flex-shrink: 0;
1085
1104
  }
1086
1105
 
1087
1106
  /* ── Resolved badge ── */
1088
- .resolved-badge[data-v-35236c9c] {
1107
+ .resolved-badge[data-v-74340036] {
1089
1108
  display: inline-flex;
1090
1109
  align-items: center;
1091
1110
  gap: 4px;
@@ -1094,26 +1113,26 @@ img[data-v-c95b2073] {
1094
1113
  color: var(--sd-ui-comments-resolved-text, #00853d);
1095
1114
  margin-bottom: 4px;
1096
1115
  }
1097
- .resolved-badge__icon[data-v-35236c9c] {
1116
+ .resolved-badge__icon[data-v-74340036] {
1098
1117
  display: inline-flex;
1099
1118
  width: 12px;
1100
1119
  height: 12px;
1101
1120
  }
1102
- .resolved-badge__icon[data-v-35236c9c] svg {
1121
+ .resolved-badge__icon[data-v-74340036] svg {
1103
1122
  width: 100%;
1104
1123
  height: 100%;
1105
1124
  fill: currentColor;
1106
1125
  }
1107
1126
 
1108
1127
  /* ── Text truncation ── */
1109
- .comment.is-truncated[data-v-35236c9c],
1110
- .tracked-change.is-truncated[data-v-35236c9c] {
1128
+ .comment.is-truncated[data-v-74340036],
1129
+ .tracked-change.is-truncated[data-v-74340036] {
1111
1130
  display: -webkit-box;
1112
1131
  -webkit-line-clamp: 3;
1113
1132
  -webkit-box-orient: vertical;
1114
1133
  overflow: hidden;
1115
1134
  }
1116
- .show-more-toggle[data-v-35236c9c] {
1135
+ .show-more-toggle[data-v-74340036] {
1117
1136
  font-size: 12px;
1118
1137
  color: var(--sd-ui-action, #1355ff);
1119
1138
  cursor: pointer;
@@ -1121,12 +1140,12 @@ img[data-v-c95b2073] {
1121
1140
  margin-top: 4px;
1122
1141
  user-select: none;
1123
1142
  }
1124
- .show-more-toggle[data-v-35236c9c]:hover {
1143
+ .show-more-toggle[data-v-74340036]:hover {
1125
1144
  text-decoration: underline;
1126
1145
  }
1127
1146
 
1128
1147
  /* ── Thread collapse ── */
1129
- .collapsed-replies[data-v-35236c9c] {
1148
+ .collapsed-replies[data-v-74340036] {
1130
1149
  display: flex;
1131
1150
  align-items: center;
1132
1151
  gap: 6px;
@@ -1137,24 +1156,24 @@ img[data-v-c95b2073] {
1137
1156
  cursor: pointer;
1138
1157
  user-select: none;
1139
1158
  }
1140
- .collapsed-replies[data-v-35236c9c]:hover {
1159
+ .collapsed-replies[data-v-74340036]:hover {
1141
1160
  text-decoration: underline;
1142
1161
  }
1143
- .collapsed-avatars[data-v-35236c9c] {
1162
+ .collapsed-avatars[data-v-74340036] {
1144
1163
  display: flex;
1145
1164
  }
1146
- .collapsed-avatars .mini-avatar[data-v-35236c9c] {
1165
+ .collapsed-avatars .mini-avatar[data-v-74340036] {
1147
1166
  --sd-comment-avatar-size: 20px;
1148
1167
  --sd-comment-avatar-font-size: 8px;
1149
1168
  margin-left: -4px;
1150
1169
  border: 2px solid var(--sd-ui-comments-card-active-bg, #ffffff);
1151
1170
  }
1152
- .collapsed-avatars .mini-avatar[data-v-35236c9c]:first-child {
1171
+ .collapsed-avatars .mini-avatar[data-v-74340036]:first-child {
1153
1172
  margin-left: 0;
1154
1173
  }
1155
1174
 
1156
1175
  /* ── New comment input ── */
1157
- .new-comment-input-wrapper[data-v-35236c9c] {
1176
+ .new-comment-input-wrapper[data-v-74340036] {
1158
1177
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1159
1178
  border-radius: 12px;
1160
1179
  padding: 8.5px 10.5px;
@@ -1163,17 +1182,17 @@ img[data-v-c95b2073] {
1163
1182
  max-height: 150px;
1164
1183
  overflow-y: auto;
1165
1184
  }
1166
- .new-comment-input-wrapper[data-v-35236c9c]:focus-within {
1185
+ .new-comment-input-wrapper[data-v-74340036]:focus-within {
1167
1186
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1168
1187
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1169
1188
  }
1170
- .new-comment-input-wrapper[data-v-35236c9c] .comment-entry {
1189
+ .new-comment-input-wrapper[data-v-74340036] .comment-entry {
1171
1190
  border-radius: 0;
1172
1191
  }
1173
- .new-comment-input-wrapper[data-v-35236c9c] .input-section {
1192
+ .new-comment-input-wrapper[data-v-74340036] .input-section {
1174
1193
  margin: 0;
1175
1194
  }
1176
- .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field {
1195
+ .new-comment-input-wrapper[data-v-74340036] .superdoc-field {
1177
1196
  font-size: 14px;
1178
1197
  line-height: 20px;
1179
1198
  border: none;
@@ -1184,35 +1203,41 @@ img[data-v-c95b2073] {
1184
1203
  max-height: 132px;
1185
1204
  resize: none;
1186
1205
  }
1187
- .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field:focus,
1188
- .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field:active {
1206
+ .new-comment-input-wrapper[data-v-74340036] .superdoc-field:focus,
1207
+ .new-comment-input-wrapper[data-v-74340036] .superdoc-field:active {
1189
1208
  border: none;
1190
1209
  box-shadow: none;
1191
1210
  outline: none;
1192
1211
  }
1193
- .new-comment-input-wrapper[data-v-35236c9c] .sd-editor-placeholder::before {
1212
+ .new-comment-input-wrapper[data-v-74340036] .sd-editor-placeholder::before {
1194
1213
  content: 'Comment or add others with @';
1195
1214
  }
1196
1215
 
1197
1216
  /* ── Reply pill & expanded input ── */
1198
- .reply-pill[data-v-35236c9c] {
1217
+ .reply-pill[data-v-74340036] {
1218
+ width: 100%;
1199
1219
  padding: 8.5px 10.5px;
1200
1220
  border: 1.5px solid transparent;
1201
1221
  border-radius: 9999px;
1222
+ font-family: inherit;
1202
1223
  font-size: 14px;
1224
+ text-align: left;
1203
1225
  color: var(--sd-color-gray-500, #ababab);
1204
1226
  background: var(--sd-color-gray-100, #f5f5f5);
1205
1227
  margin-top: 10px;
1206
1228
  cursor: text;
1207
1229
  transition: background 150ms ease;
1208
1230
  }
1209
- .reply-pill[data-v-35236c9c]:hover {
1231
+ .reply-pill[data-v-74340036]:hover {
1210
1232
  background: var(--sd-color-gray-200, #f2f2f2);
1211
1233
  }
1212
- .reply-expanded[data-v-35236c9c] {
1234
+ .reply-pill[data-v-74340036]:disabled {
1235
+ cursor: not-allowed;
1236
+ }
1237
+ .reply-expanded[data-v-74340036] {
1213
1238
  margin-top: 10px;
1214
1239
  }
1215
- .reply-input-wrapper[data-v-35236c9c] {
1240
+ .reply-input-wrapper[data-v-74340036] {
1216
1241
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1217
1242
  border-radius: 12px;
1218
1243
  padding: 8.5px 10.5px;
@@ -1220,17 +1245,17 @@ img[data-v-c95b2073] {
1220
1245
  max-height: 150px;
1221
1246
  overflow-y: auto;
1222
1247
  }
1223
- .reply-input-wrapper[data-v-35236c9c]:focus-within {
1248
+ .reply-input-wrapper[data-v-74340036]:focus-within {
1224
1249
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1225
1250
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1226
1251
  }
1227
- .reply-input-wrapper[data-v-35236c9c] .comment-entry {
1252
+ .reply-input-wrapper[data-v-74340036] .comment-entry {
1228
1253
  border-radius: 0;
1229
1254
  }
1230
- .reply-input-wrapper[data-v-35236c9c] .input-section {
1255
+ .reply-input-wrapper[data-v-74340036] .input-section {
1231
1256
  margin: 0;
1232
1257
  }
1233
- .reply-input-wrapper[data-v-35236c9c] .superdoc-field {
1258
+ .reply-input-wrapper[data-v-74340036] .superdoc-field {
1234
1259
  font-size: 14px;
1235
1260
  line-height: 20px;
1236
1261
  border: none;
@@ -1241,23 +1266,23 @@ img[data-v-c95b2073] {
1241
1266
  max-height: 132px;
1242
1267
  resize: none;
1243
1268
  }
1244
- .reply-input-wrapper[data-v-35236c9c] .superdoc-field:focus,
1245
- .reply-input-wrapper[data-v-35236c9c] .superdoc-field:active {
1269
+ .reply-input-wrapper[data-v-74340036] .superdoc-field:focus,
1270
+ .reply-input-wrapper[data-v-74340036] .superdoc-field:active {
1246
1271
  border: none;
1247
1272
  box-shadow: none;
1248
1273
  outline: none;
1249
1274
  }
1250
- .reply-input-wrapper[data-v-35236c9c] .sd-editor-placeholder::before {
1275
+ .reply-input-wrapper[data-v-74340036] .sd-editor-placeholder::before {
1251
1276
  content: 'Reply or add others with @';
1252
1277
  }
1253
- .reply-actions[data-v-35236c9c] {
1278
+ .reply-actions[data-v-74340036] {
1254
1279
  display: flex;
1255
1280
  justify-content: flex-end;
1256
1281
  align-items: center;
1257
1282
  gap: 16px;
1258
1283
  margin-top: 8px;
1259
1284
  }
1260
- .reply-btn-cancel[data-v-35236c9c] {
1285
+ .reply-btn-cancel[data-v-74340036] {
1261
1286
  background: none;
1262
1287
  border: none;
1263
1288
  font-size: 13px;
@@ -1268,10 +1293,10 @@ img[data-v-c95b2073] {
1268
1293
  font-family: inherit;
1269
1294
  transition: color 150ms;
1270
1295
  }
1271
- .reply-btn-cancel[data-v-35236c9c]:hover {
1296
+ .reply-btn-cancel[data-v-74340036]:hover {
1272
1297
  color: var(--sd-ui-text, #212121);
1273
1298
  }
1274
- .reply-btn-primary[data-v-35236c9c] {
1299
+ .reply-btn-primary[data-v-74340036] {
1275
1300
  background: var(--sd-ui-action, #1355ff);
1276
1301
  border: none;
1277
1302
  font-size: 13px;
@@ -1283,19 +1308,19 @@ img[data-v-c95b2073] {
1283
1308
  font-family: inherit;
1284
1309
  transition: background 150ms;
1285
1310
  }
1286
- .reply-btn-primary[data-v-35236c9c]:hover {
1311
+ .reply-btn-primary[data-v-74340036]:hover {
1287
1312
  background: var(--sd-ui-action-hover, #0f44cc);
1288
1313
  }
1289
- .reply-btn-primary.sd-is-disabled[data-v-35236c9c] {
1314
+ .reply-btn-primary.sd-is-disabled[data-v-74340036] {
1290
1315
  background: var(--sd-color-gray-400, #dbdbdb);
1291
1316
  color: var(--sd-color-gray-600, #888888);
1292
1317
  cursor: default;
1293
1318
  pointer-events: none;
1294
1319
  }
1295
- .existing-internal-input[data-v-35236c9c] {
1320
+ .existing-internal-input[data-v-74340036] {
1296
1321
  margin-bottom: 10px;
1297
1322
  }
1298
- .sd-internal-dropdown[data-v-35236c9c] {
1323
+ .sd-internal-dropdown[data-v-74340036] {
1299
1324
  display: inline-block;
1300
1325
  }
1301
1326
 
@@ -1343,24 +1368,24 @@ img[data-v-c95b2073] {
1343
1368
  background-color: #1355ff7f;
1344
1369
  }
1345
1370
 
1346
- .comment-placeholder[data-v-3672b976] {
1371
+ .comment-placeholder[data-v-e699ceb8] {
1347
1372
  position: absolute;
1348
1373
  width: 300px;
1349
1374
  transition: top 0.3s ease;
1350
1375
  }
1351
- .floating-comment[data-v-3672b976] {
1376
+ .floating-comment[data-v-e699ceb8] {
1352
1377
  position: relative;
1353
1378
  display: block;
1354
1379
  min-width: 300px;
1355
1380
  }
1356
- .sidebar-container[data-v-3672b976] {
1381
+ .sidebar-container[data-v-e699ceb8] {
1357
1382
  position: absolute;
1358
1383
  width: 300px;
1359
1384
  min-height: 300px;
1360
1385
  transition: transform 0.3s ease;
1361
1386
  will-change: transform;
1362
1387
  }
1363
- .section-wrapper[data-v-3672b976] {
1388
+ .section-wrapper[data-v-e699ceb8] {
1364
1389
  position: relative;
1365
1390
  min-height: 100%;
1366
1391
  width: 300px;
@@ -1698,11 +1723,11 @@ img[data-v-c95b2073] {
1698
1723
  pointer-events: auto;
1699
1724
  }
1700
1725
 
1701
- .superdoc[data-v-c4ab995e] {
1726
+ .superdoc[data-v-4084bf1b] {
1702
1727
  display: flex;
1703
1728
  position: relative;
1704
1729
  }
1705
- .sd-visually-hidden[data-v-c4ab995e] {
1730
+ .sd-visually-hidden[data-v-4084bf1b] {
1706
1731
  position: absolute;
1707
1732
  width: 1px;
1708
1733
  height: 1px;
@@ -1713,30 +1738,30 @@ img[data-v-c95b2073] {
1713
1738
  white-space: nowrap;
1714
1739
  border: 0;
1715
1740
  }
1716
- .right-sidebar[data-v-c4ab995e] {
1741
+ .right-sidebar[data-v-4084bf1b] {
1717
1742
  min-width: 320px;
1718
1743
  height: 100%;
1719
1744
  }
1720
- .floating-comments[data-v-c4ab995e] {
1745
+ .floating-comments[data-v-4084bf1b] {
1721
1746
  min-width: 300px;
1722
1747
  width: 300px;
1723
1748
  height: 100%;
1724
1749
  overflow: visible;
1725
1750
  }
1726
- .superdoc__layers[data-v-c4ab995e] {
1751
+ .superdoc__layers[data-v-4084bf1b] {
1727
1752
  height: 100%;
1728
1753
  position: relative;
1729
1754
  box-sizing: border-box;
1730
1755
  }
1731
- .superdoc__document[data-v-c4ab995e] {
1756
+ .superdoc__document[data-v-4084bf1b] {
1732
1757
  width: 100%;
1733
1758
  position: relative;
1734
1759
  }
1735
- .superdoc__sub-document[data-v-c4ab995e] {
1760
+ .superdoc__sub-document[data-v-4084bf1b] {
1736
1761
  width: 100%;
1737
1762
  position: relative;
1738
1763
  }
1739
- .superdoc__selection-layer[data-v-c4ab995e] {
1764
+ .superdoc__selection-layer[data-v-4084bf1b] {
1740
1765
  position: absolute;
1741
1766
  min-width: 100%;
1742
1767
  min-height: 100%;
@@ -1747,13 +1772,13 @@ img[data-v-c95b2073] {
1747
1772
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1748
1773
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1749
1774
  clickable, and below the selection layer (z-index 10). */
1750
- .superdoc__whiteboard-layer[data-v-c4ab995e] {
1775
+ .superdoc__whiteboard-layer[data-v-4084bf1b] {
1751
1776
  z-index: 4;
1752
1777
  }
1753
- .superdoc__temp-selection[data-v-c4ab995e] {
1778
+ .superdoc__temp-selection[data-v-4084bf1b] {
1754
1779
  position: absolute;
1755
1780
  }
1756
- .superdoc__right-sidebar[data-v-c4ab995e] {
1781
+ .superdoc__right-sidebar[data-v-4084bf1b] {
1757
1782
  width: 320px;
1758
1783
  min-width: 320px;
1759
1784
  padding: 0 10px;
@@ -1761,7 +1786,7 @@ img[data-v-c95b2073] {
1761
1786
  position: relative;
1762
1787
  z-index: 2;
1763
1788
  }
1764
- .superdoc__compact-comment-popover[data-v-c4ab995e] {
1789
+ .superdoc__compact-comment-popover[data-v-4084bf1b] {
1765
1790
  position: absolute;
1766
1791
  top: 12px;
1767
1792
  right: 12px;
@@ -1770,14 +1795,14 @@ img[data-v-c95b2073] {
1770
1795
  }
1771
1796
 
1772
1797
  /* Tools styles */
1773
- .tools[data-v-c4ab995e] {
1798
+ .tools[data-v-4084bf1b] {
1774
1799
  position: absolute;
1775
1800
  z-index: 3;
1776
1801
  display: flex;
1777
1802
  flex-direction: column;
1778
1803
  gap: var(--sd-ui-tools-gap, 6px);
1779
1804
  }
1780
- .tools-item[data-v-c4ab995e] {
1805
+ .tools-item[data-v-4084bf1b] {
1781
1806
  display: flex;
1782
1807
  align-items: center;
1783
1808
  justify-content: center;
@@ -1788,10 +1813,10 @@ img[data-v-c95b2073] {
1788
1813
  cursor: pointer;
1789
1814
  position: relative;
1790
1815
  }
1791
- .tools-item i[data-v-c4ab995e] {
1816
+ .tools-item i[data-v-4084bf1b] {
1792
1817
  cursor: pointer;
1793
1818
  }
1794
- .superdoc__tools-icon[data-v-c4ab995e] {
1819
+ .superdoc__tools-icon[data-v-4084bf1b] {
1795
1820
  width: var(--sd-ui-tools-icon-size, 20px);
1796
1821
  height: var(--sd-ui-tools-icon-size, 20px);
1797
1822
  flex-shrink: 0;
@@ -1806,22 +1831,22 @@ img[data-v-c95b2073] {
1806
1831
 
1807
1832
  /* 834px is iPad screen size in portrait orientation */
1808
1833
  @media (max-width: 834px) {
1809
- .superdoc .superdoc__layers[data-v-c4ab995e] {
1834
+ .superdoc .superdoc__layers[data-v-4084bf1b] {
1810
1835
  margin: 0;
1811
1836
  border: 0 !important;
1812
1837
  box-shadow: none;
1813
1838
  }
1814
- .superdoc__sub-document[data-v-c4ab995e] {
1839
+ .superdoc__sub-document[data-v-4084bf1b] {
1815
1840
  max-width: 100%;
1816
1841
  }
1817
- .superdoc__right-sidebar[data-v-c4ab995e] {
1842
+ .superdoc__right-sidebar[data-v-4084bf1b] {
1818
1843
  padding: 10px;
1819
1844
  position: relative;
1820
1845
  }
1821
1846
  }
1822
1847
 
1823
1848
  /* AI Writer styles */
1824
- .ai-writer-container[data-v-c4ab995e] {
1849
+ .ai-writer-container[data-v-4084bf1b] {
1825
1850
  position: fixed;
1826
1851
  z-index: 1000;
1827
1852
  background: white;
@@ -1837,10 +1862,10 @@ img[data-v-c95b2073] {
1837
1862
  transform: translateY(-50%);
1838
1863
  z-index: 50;
1839
1864
  } */
1840
- .ai-tool > svg[data-v-c4ab995e] {
1865
+ .ai-tool > svg[data-v-4084bf1b] {
1841
1866
  fill: transparent;
1842
1867
  }
1843
- .ai-tool[data-v-c4ab995e]::before {
1868
+ .ai-tool[data-v-4084bf1b]::before {
1844
1869
  content: '';
1845
1870
  position: absolute;
1846
1871
  width: 20px;
@@ -1861,7 +1886,7 @@ img[data-v-c95b2073] {
1861
1886
  filter: brightness(1.2);
1862
1887
  transition: filter 0.2s ease;
1863
1888
  }
1864
- .ai-tool[data-v-c4ab995e]:hover::before {
1889
+ .ai-tool[data-v-4084bf1b]:hover::before {
1865
1890
  filter: brightness(1.3);
1866
1891
  }
1867
1892