superdoc 2.0.0-next.27 → 2.0.0-next.28

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 (32) hide show
  1. package/dist/chunks/{create-super-doc-ui-Dvl3EZsv.es.js → create-super-doc-ui-BlnUCtrx.es.js} +171 -51
  2. package/dist/chunks/{create-super-doc-ui-pYMthdDn.cjs → create-super-doc-ui-CZBUMdjl.cjs} +171 -51
  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 +1 -1
  6. package/dist/document-api/src/track-changes/track-changes.d.ts +6 -2
  7. package/dist/document-api/src/types/clipboard.d.ts +5 -1
  8. package/dist/document-api/src/types/table-operations.types.d.ts +6 -4
  9. package/dist/document-api/src/types/track-changes.types.d.ts +15 -0
  10. package/dist/layout-engine/contracts/src/incremental-dependency.d.ts +10 -0
  11. package/dist/layout-engine/contracts/src/index.d.ts +38 -0
  12. package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +23 -1
  13. package/dist/layout-engine/layout-engine/src/index.d.ts +17 -0
  14. package/dist/layout-engine/layout-engine/src/paginator.d.ts +16 -0
  15. package/dist/layout-engine/layout-engine/src/paragraph-layout-eligibility.d.ts +1 -4
  16. package/dist/public/ui-react.cjs +1 -1
  17. package/dist/public/ui-react.es.js +1 -1
  18. package/dist/public/ui.cjs +1 -1
  19. package/dist/public/ui.es.js +1 -1
  20. package/dist/style.css +82 -63
  21. package/dist/style.layered.css +82 -63
  22. package/dist/superdoc/src/core/types/index.d.ts +7 -0
  23. package/dist/superdoc/src/public/ui/reasons.d.ts +8 -0
  24. package/dist/superdoc/src/stores/comments-store.d.ts +9 -9
  25. package/dist/superdoc/src/stores/helpers/floating-comment-instances.d.ts +2 -10
  26. package/dist/superdoc/src/stores/superdoc-store.d.ts +27 -27
  27. package/dist/superdoc.cjs +137 -29
  28. package/dist/superdoc.es.js +137 -29
  29. package/dist-cdn/style.layered.css +1 -1
  30. package/dist-cdn/superdoc.min.css +1 -1
  31. package/dist-cdn/superdoc.min.js +37 -37
  32. package/package.json +1 -1
@@ -960,7 +960,7 @@ img[data-v-c95b2073] {
960
960
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
961
961
  }
962
962
 
963
- .comments-dialog[data-v-67a03ee2] {
963
+ .comments-dialog[data-v-35236c9c] {
964
964
  display: flex;
965
965
  flex-direction: column;
966
966
  padding: var(--sd-ui-comments-card-padding, 16px);
@@ -979,73 +979,73 @@ img[data-v-c95b2073] {
979
979
  overflow-wrap: break-word;
980
980
  word-break: break-word;
981
981
  }
982
- .comments-dialog[data-v-67a03ee2]:not(.is-active) {
982
+ .comments-dialog[data-v-35236c9c]:not(.is-active) {
983
983
  cursor: pointer;
984
984
  }
985
- .comments-dialog[data-v-67a03ee2]:not(.is-active):not(.is-resolved):hover {
985
+ .comments-dialog[data-v-35236c9c]:not(.is-active):not(.is-resolved):hover {
986
986
  background-color: var(--sd-ui-comments-card-hover-bg, #f3f6fd);
987
987
  }
988
- .comments-dialog[data-v-67a03ee2]:not(.is-resolved):hover .overflow-menu {
988
+ .comments-dialog[data-v-35236c9c]:not(.is-resolved):hover .overflow-menu {
989
989
  opacity: 1;
990
990
  pointer-events: auto;
991
991
  }
992
- .comments-dialog.is-active[data-v-67a03ee2] {
992
+ .comments-dialog.is-active[data-v-35236c9c] {
993
993
  background-color: var(--sd-ui-comments-card-active-bg, #ffffff);
994
994
  border-color: var(--sd-ui-comments-card-active-border, #e0e0e0);
995
995
  box-shadow: var(--sd-ui-comments-card-shadow, 0px 4px 12px 0px rgba(50, 50, 50, 0.15));
996
996
  z-index: 10;
997
997
  }
998
- .comments-dialog.is-resolved[data-v-67a03ee2] {
998
+ .comments-dialog.is-resolved[data-v-35236c9c] {
999
999
  background-color: var(--sd-ui-comments-card-resolved-bg, #f0f0f0);
1000
1000
  }
1001
- .comment-separator[data-v-67a03ee2] {
1001
+ .comment-separator[data-v-35236c9c] {
1002
1002
  background-color: var(--sd-ui-comments-separator, #e0e0e0);
1003
1003
  height: 1px;
1004
1004
  width: 100%;
1005
1005
  margin: 10px 0;
1006
1006
  }
1007
- .comment[data-v-67a03ee2] {
1007
+ .comment[data-v-35236c9c] {
1008
1008
  font-size: var(--sd-ui-comments-body-size, 14px);
1009
1009
  line-height: 1.5;
1010
1010
  color: var(--sd-ui-comments-body-text, #212121);
1011
1011
  margin: 4px 0 0 0;
1012
1012
  }
1013
- .comment[data-v-67a03ee2] p {
1013
+ .comment[data-v-35236c9c] p {
1014
1014
  margin: 0;
1015
1015
  }
1016
- .tracked-change[data-v-67a03ee2] {
1016
+ .tracked-change[data-v-35236c9c] {
1017
1017
  font-size: var(--sd-ui-comments-body-size, 14px);
1018
1018
  line-height: 1.5;
1019
1019
  color: var(--sd-ui-comments-body-text, #212121);
1020
1020
  margin: 4px 0 0 0;
1021
1021
  }
1022
- .change-type[data-v-67a03ee2] {
1022
+ .change-type[data-v-35236c9c] {
1023
1023
  color: var(--sd-ui-comments-body-text, #212121);
1024
1024
  }
1025
- .tracked-change-text[data-v-67a03ee2] {
1025
+ .tracked-change-text[data-v-35236c9c] {
1026
1026
  color: var(--sd-ui-comments-body-text, #212121);
1027
1027
  }
1028
- .tracked-change-text.is-deleted[data-v-67a03ee2] {
1028
+ .tracked-change-text.is-deleted[data-v-35236c9c] {
1029
1029
  color: var(--sd-ui-comments-delete-text, #cb0e47);
1030
1030
  }
1031
- .tracked-change-text.is-inserted[data-v-67a03ee2] {
1031
+ .tracked-change-text.is-inserted[data-v-35236c9c] {
1032
1032
  color: var(--sd-ui-comments-insert-text, #1f6feb);
1033
1033
  font-weight: 500;
1034
1034
  }
1035
- .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-67a03ee2] {
1035
+ .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-35236c9c] {
1036
1036
  color: var(--sd-ui-comments-move-from-text, #00853d);
1037
1037
  }
1038
- .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-67a03ee2] {
1038
+ .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-35236c9c] {
1039
1039
  color: var(--sd-ui-comments-move-to-text, #00853d);
1040
1040
  }
1041
- .tracked-change-detail-lines[data-v-67a03ee2] {
1041
+ .tracked-change-detail-lines[data-v-35236c9c] {
1042
1042
  margin-top: 4px;
1043
1043
  }
1044
- .tracked-change-detail-line[data-v-67a03ee2] {
1044
+ .tracked-change-detail-line[data-v-35236c9c] {
1045
1045
  font-size: 12px;
1046
1046
  line-height: 1.4;
1047
1047
  }
1048
- .tracked-change-image-preview[data-v-67a03ee2] {
1048
+ .tracked-change-image-preview[data-v-35236c9c] {
1049
1049
  display: inline-flex;
1050
1050
  align-items: center;
1051
1051
  justify-content: center;
@@ -1056,7 +1056,7 @@ img[data-v-c95b2073] {
1056
1056
  max-width: 96px;
1057
1057
  max-height: 96px;
1058
1058
  }
1059
- .tracked-change-image-preview__image[data-v-67a03ee2] {
1059
+ .tracked-change-image-preview__image[data-v-35236c9c] {
1060
1060
  display: block;
1061
1061
  width: auto;
1062
1062
  height: auto;
@@ -1065,8 +1065,27 @@ img[data-v-c95b2073] {
1065
1065
  object-fit: contain;
1066
1066
  }
1067
1067
 
1068
+ /* ── Failed tracked-change decision alert (SD-3772 §6) ── */
1069
+ .tracked-change-decision-alert[data-v-35236c9c] {
1070
+ display: flex;
1071
+ align-items: center;
1072
+ justify-content: space-between;
1073
+ gap: 8px;
1074
+ margin-top: 8px;
1075
+ padding: 8px 10px;
1076
+ border-radius: 8px;
1077
+ border: 1px solid var(--sd-ui-comments-alert-border, #f0b4b4);
1078
+ background-color: var(--sd-ui-comments-alert-bg, #fdf3f3);
1079
+ color: var(--sd-ui-comments-alert-text, #a4262c);
1080
+ font-size: var(--sd-ui-comments-body-size, 14px);
1081
+ line-height: 1.4;
1082
+ }
1083
+ .tracked-change-decision-alert__retry[data-v-35236c9c] {
1084
+ flex-shrink: 0;
1085
+ }
1086
+
1068
1087
  /* ── Resolved badge ── */
1069
- .resolved-badge[data-v-67a03ee2] {
1088
+ .resolved-badge[data-v-35236c9c] {
1070
1089
  display: inline-flex;
1071
1090
  align-items: center;
1072
1091
  gap: 4px;
@@ -1075,26 +1094,26 @@ img[data-v-c95b2073] {
1075
1094
  color: var(--sd-ui-comments-resolved-text, #00853d);
1076
1095
  margin-bottom: 4px;
1077
1096
  }
1078
- .resolved-badge__icon[data-v-67a03ee2] {
1097
+ .resolved-badge__icon[data-v-35236c9c] {
1079
1098
  display: inline-flex;
1080
1099
  width: 12px;
1081
1100
  height: 12px;
1082
1101
  }
1083
- .resolved-badge__icon[data-v-67a03ee2] svg {
1102
+ .resolved-badge__icon[data-v-35236c9c] svg {
1084
1103
  width: 100%;
1085
1104
  height: 100%;
1086
1105
  fill: currentColor;
1087
1106
  }
1088
1107
 
1089
1108
  /* ── Text truncation ── */
1090
- .comment.is-truncated[data-v-67a03ee2],
1091
- .tracked-change.is-truncated[data-v-67a03ee2] {
1109
+ .comment.is-truncated[data-v-35236c9c],
1110
+ .tracked-change.is-truncated[data-v-35236c9c] {
1092
1111
  display: -webkit-box;
1093
1112
  -webkit-line-clamp: 3;
1094
1113
  -webkit-box-orient: vertical;
1095
1114
  overflow: hidden;
1096
1115
  }
1097
- .show-more-toggle[data-v-67a03ee2] {
1116
+ .show-more-toggle[data-v-35236c9c] {
1098
1117
  font-size: 12px;
1099
1118
  color: var(--sd-ui-action, #1355ff);
1100
1119
  cursor: pointer;
@@ -1102,12 +1121,12 @@ img[data-v-c95b2073] {
1102
1121
  margin-top: 4px;
1103
1122
  user-select: none;
1104
1123
  }
1105
- .show-more-toggle[data-v-67a03ee2]:hover {
1124
+ .show-more-toggle[data-v-35236c9c]:hover {
1106
1125
  text-decoration: underline;
1107
1126
  }
1108
1127
 
1109
1128
  /* ── Thread collapse ── */
1110
- .collapsed-replies[data-v-67a03ee2] {
1129
+ .collapsed-replies[data-v-35236c9c] {
1111
1130
  display: flex;
1112
1131
  align-items: center;
1113
1132
  gap: 6px;
@@ -1118,24 +1137,24 @@ img[data-v-c95b2073] {
1118
1137
  cursor: pointer;
1119
1138
  user-select: none;
1120
1139
  }
1121
- .collapsed-replies[data-v-67a03ee2]:hover {
1140
+ .collapsed-replies[data-v-35236c9c]:hover {
1122
1141
  text-decoration: underline;
1123
1142
  }
1124
- .collapsed-avatars[data-v-67a03ee2] {
1143
+ .collapsed-avatars[data-v-35236c9c] {
1125
1144
  display: flex;
1126
1145
  }
1127
- .collapsed-avatars .mini-avatar[data-v-67a03ee2] {
1146
+ .collapsed-avatars .mini-avatar[data-v-35236c9c] {
1128
1147
  --sd-comment-avatar-size: 20px;
1129
1148
  --sd-comment-avatar-font-size: 8px;
1130
1149
  margin-left: -4px;
1131
1150
  border: 2px solid var(--sd-ui-comments-card-active-bg, #ffffff);
1132
1151
  }
1133
- .collapsed-avatars .mini-avatar[data-v-67a03ee2]:first-child {
1152
+ .collapsed-avatars .mini-avatar[data-v-35236c9c]:first-child {
1134
1153
  margin-left: 0;
1135
1154
  }
1136
1155
 
1137
1156
  /* ── New comment input ── */
1138
- .new-comment-input-wrapper[data-v-67a03ee2] {
1157
+ .new-comment-input-wrapper[data-v-35236c9c] {
1139
1158
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1140
1159
  border-radius: 12px;
1141
1160
  padding: 8.5px 10.5px;
@@ -1144,17 +1163,17 @@ img[data-v-c95b2073] {
1144
1163
  max-height: 150px;
1145
1164
  overflow-y: auto;
1146
1165
  }
1147
- .new-comment-input-wrapper[data-v-67a03ee2]:focus-within {
1166
+ .new-comment-input-wrapper[data-v-35236c9c]:focus-within {
1148
1167
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1149
1168
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1150
1169
  }
1151
- .new-comment-input-wrapper[data-v-67a03ee2] .comment-entry {
1170
+ .new-comment-input-wrapper[data-v-35236c9c] .comment-entry {
1152
1171
  border-radius: 0;
1153
1172
  }
1154
- .new-comment-input-wrapper[data-v-67a03ee2] .input-section {
1173
+ .new-comment-input-wrapper[data-v-35236c9c] .input-section {
1155
1174
  margin: 0;
1156
1175
  }
1157
- .new-comment-input-wrapper[data-v-67a03ee2] .superdoc-field {
1176
+ .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field {
1158
1177
  font-size: 14px;
1159
1178
  line-height: 20px;
1160
1179
  border: none;
@@ -1165,18 +1184,18 @@ img[data-v-c95b2073] {
1165
1184
  max-height: 132px;
1166
1185
  resize: none;
1167
1186
  }
1168
- .new-comment-input-wrapper[data-v-67a03ee2] .superdoc-field:focus,
1169
- .new-comment-input-wrapper[data-v-67a03ee2] .superdoc-field:active {
1187
+ .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field:focus,
1188
+ .new-comment-input-wrapper[data-v-35236c9c] .superdoc-field:active {
1170
1189
  border: none;
1171
1190
  box-shadow: none;
1172
1191
  outline: none;
1173
1192
  }
1174
- .new-comment-input-wrapper[data-v-67a03ee2] .sd-editor-placeholder::before {
1193
+ .new-comment-input-wrapper[data-v-35236c9c] .sd-editor-placeholder::before {
1175
1194
  content: 'Comment or add others with @';
1176
1195
  }
1177
1196
 
1178
1197
  /* ── Reply pill & expanded input ── */
1179
- .reply-pill[data-v-67a03ee2] {
1198
+ .reply-pill[data-v-35236c9c] {
1180
1199
  padding: 8.5px 10.5px;
1181
1200
  border: 1.5px solid transparent;
1182
1201
  border-radius: 9999px;
@@ -1187,13 +1206,13 @@ img[data-v-c95b2073] {
1187
1206
  cursor: text;
1188
1207
  transition: background 150ms ease;
1189
1208
  }
1190
- .reply-pill[data-v-67a03ee2]:hover {
1209
+ .reply-pill[data-v-35236c9c]:hover {
1191
1210
  background: var(--sd-color-gray-200, #f2f2f2);
1192
1211
  }
1193
- .reply-expanded[data-v-67a03ee2] {
1212
+ .reply-expanded[data-v-35236c9c] {
1194
1213
  margin-top: 10px;
1195
1214
  }
1196
- .reply-input-wrapper[data-v-67a03ee2] {
1215
+ .reply-input-wrapper[data-v-35236c9c] {
1197
1216
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1198
1217
  border-radius: 12px;
1199
1218
  padding: 8.5px 10.5px;
@@ -1201,17 +1220,17 @@ img[data-v-c95b2073] {
1201
1220
  max-height: 150px;
1202
1221
  overflow-y: auto;
1203
1222
  }
1204
- .reply-input-wrapper[data-v-67a03ee2]:focus-within {
1223
+ .reply-input-wrapper[data-v-35236c9c]:focus-within {
1205
1224
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1206
1225
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1207
1226
  }
1208
- .reply-input-wrapper[data-v-67a03ee2] .comment-entry {
1227
+ .reply-input-wrapper[data-v-35236c9c] .comment-entry {
1209
1228
  border-radius: 0;
1210
1229
  }
1211
- .reply-input-wrapper[data-v-67a03ee2] .input-section {
1230
+ .reply-input-wrapper[data-v-35236c9c] .input-section {
1212
1231
  margin: 0;
1213
1232
  }
1214
- .reply-input-wrapper[data-v-67a03ee2] .superdoc-field {
1233
+ .reply-input-wrapper[data-v-35236c9c] .superdoc-field {
1215
1234
  font-size: 14px;
1216
1235
  line-height: 20px;
1217
1236
  border: none;
@@ -1222,23 +1241,23 @@ img[data-v-c95b2073] {
1222
1241
  max-height: 132px;
1223
1242
  resize: none;
1224
1243
  }
1225
- .reply-input-wrapper[data-v-67a03ee2] .superdoc-field:focus,
1226
- .reply-input-wrapper[data-v-67a03ee2] .superdoc-field:active {
1244
+ .reply-input-wrapper[data-v-35236c9c] .superdoc-field:focus,
1245
+ .reply-input-wrapper[data-v-35236c9c] .superdoc-field:active {
1227
1246
  border: none;
1228
1247
  box-shadow: none;
1229
1248
  outline: none;
1230
1249
  }
1231
- .reply-input-wrapper[data-v-67a03ee2] .sd-editor-placeholder::before {
1250
+ .reply-input-wrapper[data-v-35236c9c] .sd-editor-placeholder::before {
1232
1251
  content: 'Reply or add others with @';
1233
1252
  }
1234
- .reply-actions[data-v-67a03ee2] {
1253
+ .reply-actions[data-v-35236c9c] {
1235
1254
  display: flex;
1236
1255
  justify-content: flex-end;
1237
1256
  align-items: center;
1238
1257
  gap: 16px;
1239
1258
  margin-top: 8px;
1240
1259
  }
1241
- .reply-btn-cancel[data-v-67a03ee2] {
1260
+ .reply-btn-cancel[data-v-35236c9c] {
1242
1261
  background: none;
1243
1262
  border: none;
1244
1263
  font-size: 13px;
@@ -1249,10 +1268,10 @@ img[data-v-c95b2073] {
1249
1268
  font-family: inherit;
1250
1269
  transition: color 150ms;
1251
1270
  }
1252
- .reply-btn-cancel[data-v-67a03ee2]:hover {
1271
+ .reply-btn-cancel[data-v-35236c9c]:hover {
1253
1272
  color: var(--sd-ui-text, #212121);
1254
1273
  }
1255
- .reply-btn-primary[data-v-67a03ee2] {
1274
+ .reply-btn-primary[data-v-35236c9c] {
1256
1275
  background: var(--sd-ui-action, #1355ff);
1257
1276
  border: none;
1258
1277
  font-size: 13px;
@@ -1264,19 +1283,19 @@ img[data-v-c95b2073] {
1264
1283
  font-family: inherit;
1265
1284
  transition: background 150ms;
1266
1285
  }
1267
- .reply-btn-primary[data-v-67a03ee2]:hover {
1286
+ .reply-btn-primary[data-v-35236c9c]:hover {
1268
1287
  background: var(--sd-ui-action-hover, #0f44cc);
1269
1288
  }
1270
- .reply-btn-primary.sd-is-disabled[data-v-67a03ee2] {
1289
+ .reply-btn-primary.sd-is-disabled[data-v-35236c9c] {
1271
1290
  background: var(--sd-color-gray-400, #dbdbdb);
1272
1291
  color: var(--sd-color-gray-600, #888888);
1273
1292
  cursor: default;
1274
1293
  pointer-events: none;
1275
1294
  }
1276
- .existing-internal-input[data-v-67a03ee2] {
1295
+ .existing-internal-input[data-v-35236c9c] {
1277
1296
  margin-bottom: 10px;
1278
1297
  }
1279
- .sd-internal-dropdown[data-v-67a03ee2] {
1298
+ .sd-internal-dropdown[data-v-35236c9c] {
1280
1299
  display: inline-block;
1281
1300
  }
1282
1301
 
@@ -1324,24 +1343,24 @@ img[data-v-c95b2073] {
1324
1343
  background-color: #1355ff7f;
1325
1344
  }
1326
1345
 
1327
- .comment-placeholder[data-v-7bf85652] {
1346
+ .comment-placeholder[data-v-3672b976] {
1328
1347
  position: absolute;
1329
1348
  width: 300px;
1330
1349
  transition: top 0.3s ease;
1331
1350
  }
1332
- .floating-comment[data-v-7bf85652] {
1351
+ .floating-comment[data-v-3672b976] {
1333
1352
  position: relative;
1334
1353
  display: block;
1335
1354
  min-width: 300px;
1336
1355
  }
1337
- .sidebar-container[data-v-7bf85652] {
1356
+ .sidebar-container[data-v-3672b976] {
1338
1357
  position: absolute;
1339
1358
  width: 300px;
1340
1359
  min-height: 300px;
1341
1360
  transition: transform 0.3s ease;
1342
1361
  will-change: transform;
1343
1362
  }
1344
- .section-wrapper[data-v-7bf85652] {
1363
+ .section-wrapper[data-v-3672b976] {
1345
1364
  position: relative;
1346
1365
  min-height: 100%;
1347
1366
  width: 300px;
@@ -2409,6 +2409,13 @@ export interface Config {
2409
2409
  experimental?: {
2410
2410
  unifiedHistory?: boolean;
2411
2411
  v2Host?: boolean;
2412
+ /**
2413
+ * Derived-invalidation deferral for direct single-paragraph edits (v2
2414
+ * engine only). Field display text settles off the keystroke path under
2415
+ * the engine's settlement contract. DEFAULT TRUE — this is the engine's
2416
+ * standard behavior; set `false` only as an emergency kill switch.
2417
+ */
2418
+ deferDerivedInvalidations?: boolean;
2412
2419
  };
2413
2420
  /** Callback before an editor is created. Receives a wrapper carrying the editor. */
2414
2421
  onEditorBeforeCreate?: (params: SuperDocEditorPayload) => void;
@@ -82,6 +82,14 @@ export declare const SUPERDOC_UI_REASONS: {
82
82
  * explicit product posture, not a missing-capability accident.
83
83
  */
84
84
  readonly replaceUnsupported: "replace-unsupported";
85
+ /**
86
+ * The selection overlaps a content control (SDT) whose lock mode
87
+ * (`contentLocked` / `sdtContentLocked`) forbids styling its content — Word
88
+ * parity (SD-3274): the toolbar must not leave styling controls clickable
89
+ * when the style change cannot apply. Alignment / paragraph-level commands
90
+ * are never gated by this reason.
91
+ */
92
+ readonly contentControlLocked: "content-control-locked";
85
93
  };
86
94
  /**
87
95
  * Union of stable public reason strings. Surfaced on {@link CommandState} and
@@ -55,15 +55,15 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
55
55
  resolvedComments: any[];
56
56
  }>;
57
57
  getFloatingComments: import('vue').ComputedRef<any[]>;
58
- getFloatingCommentInstances: import('vue').ComputedRef<({
59
- id: string;
58
+ getFloatingCommentInstances: import('vue').ComputedRef<{
59
+ id: any;
60
60
  threadId: any;
61
61
  comment: any;
62
62
  positionKey: any;
63
63
  pageIndex: any;
64
64
  isPrimary: boolean;
65
65
  positionEntry: any;
66
- } | null)[]>;
66
+ }[]>;
67
67
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
68
68
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
69
69
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -278,15 +278,15 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
278
278
  resolvedComments: any[];
279
279
  }>;
280
280
  getFloatingComments: import('vue').ComputedRef<any[]>;
281
- getFloatingCommentInstances: import('vue').ComputedRef<({
282
- id: string;
281
+ getFloatingCommentInstances: import('vue').ComputedRef<{
282
+ id: any;
283
283
  threadId: any;
284
284
  comment: any;
285
285
  positionKey: any;
286
286
  pageIndex: any;
287
287
  isPrimary: boolean;
288
288
  positionEntry: any;
289
- } | null)[]>;
289
+ }[]>;
290
290
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
291
291
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
292
292
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -501,15 +501,15 @@ export const useCommentsStore: import('pinia').StoreDefinition<"comments", Pick<
501
501
  resolvedComments: any[];
502
502
  }>;
503
503
  getFloatingComments: import('vue').ComputedRef<any[]>;
504
- getFloatingCommentInstances: import('vue').ComputedRef<({
505
- id: string;
504
+ getFloatingCommentInstances: import('vue').ComputedRef<{
505
+ id: any;
506
506
  threadId: any;
507
507
  comment: any;
508
508
  positionKey: any;
509
509
  pageIndex: any;
510
510
  isPrimary: boolean;
511
511
  positionEntry: any;
512
- } | null)[]>;
512
+ }[]>;
513
513
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
514
514
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
515
515
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -3,20 +3,12 @@ export function buildFloatingCommentInstances({ comment, positionKey, positionEn
3
3
  positionKey: any;
4
4
  positionEntry: any;
5
5
  fallbackId: any;
6
- }): ({
7
- id: string;
6
+ }): {
7
+ id: any;
8
8
  threadId: any;
9
9
  comment: any;
10
10
  positionKey: any;
11
11
  pageIndex: any;
12
12
  isPrimary: boolean;
13
13
  positionEntry: any;
14
- } | null)[] | {
15
- id: any;
16
- threadId: any;
17
- comment: any;
18
- positionKey: any;
19
- positionEntry: any;
20
- pageIndex: number | null;
21
- isPrimary: boolean;
22
14
  }[];
@@ -56,15 +56,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
56
56
  resolvedComments: any[];
57
57
  }>;
58
58
  getFloatingComments: import('vue').ComputedRef<any[]>;
59
- getFloatingCommentInstances: import('vue').ComputedRef<({
60
- id: string;
59
+ getFloatingCommentInstances: import('vue').ComputedRef<{
60
+ id: any;
61
61
  threadId: any;
62
62
  comment: any;
63
63
  positionKey: any;
64
64
  pageIndex: any;
65
65
  isPrimary: boolean;
66
66
  positionEntry: any;
67
- } | null)[]>;
67
+ }[]>;
68
68
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
69
69
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
70
70
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -279,15 +279,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
279
279
  resolvedComments: any[];
280
280
  }>;
281
281
  getFloatingComments: import('vue').ComputedRef<any[]>;
282
- getFloatingCommentInstances: import('vue').ComputedRef<({
283
- id: string;
282
+ getFloatingCommentInstances: import('vue').ComputedRef<{
283
+ id: any;
284
284
  threadId: any;
285
285
  comment: any;
286
286
  positionKey: any;
287
287
  pageIndex: any;
288
288
  isPrimary: boolean;
289
289
  positionEntry: any;
290
- } | null)[]>;
290
+ }[]>;
291
291
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
292
292
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
293
293
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -502,15 +502,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
502
502
  resolvedComments: any[];
503
503
  }>;
504
504
  getFloatingComments: import('vue').ComputedRef<any[]>;
505
- getFloatingCommentInstances: import('vue').ComputedRef<({
506
- id: string;
505
+ getFloatingCommentInstances: import('vue').ComputedRef<{
506
+ id: any;
507
507
  threadId: any;
508
508
  comment: any;
509
509
  positionKey: any;
510
510
  pageIndex: any;
511
511
  isPrimary: boolean;
512
512
  positionEntry: any;
513
- } | null)[]>;
513
+ }[]>;
514
514
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
515
515
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
516
516
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -777,15 +777,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
777
777
  resolvedComments: any[];
778
778
  }>;
779
779
  getFloatingComments: import('vue').ComputedRef<any[]>;
780
- getFloatingCommentInstances: import('vue').ComputedRef<({
781
- id: string;
780
+ getFloatingCommentInstances: import('vue').ComputedRef<{
781
+ id: any;
782
782
  threadId: any;
783
783
  comment: any;
784
784
  positionKey: any;
785
785
  pageIndex: any;
786
786
  isPrimary: boolean;
787
787
  positionEntry: any;
788
- } | null)[]>;
788
+ }[]>;
789
789
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
790
790
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
791
791
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -1000,15 +1000,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
1000
1000
  resolvedComments: any[];
1001
1001
  }>;
1002
1002
  getFloatingComments: import('vue').ComputedRef<any[]>;
1003
- getFloatingCommentInstances: import('vue').ComputedRef<({
1004
- id: string;
1003
+ getFloatingCommentInstances: import('vue').ComputedRef<{
1004
+ id: any;
1005
1005
  threadId: any;
1006
1006
  comment: any;
1007
1007
  positionKey: any;
1008
1008
  pageIndex: any;
1009
1009
  isPrimary: boolean;
1010
1010
  positionEntry: any;
1011
- } | null)[]>;
1011
+ }[]>;
1012
1012
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
1013
1013
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
1014
1014
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -1223,15 +1223,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
1223
1223
  resolvedComments: any[];
1224
1224
  }>;
1225
1225
  getFloatingComments: import('vue').ComputedRef<any[]>;
1226
- getFloatingCommentInstances: import('vue').ComputedRef<({
1227
- id: string;
1226
+ getFloatingCommentInstances: import('vue').ComputedRef<{
1227
+ id: any;
1228
1228
  threadId: any;
1229
1229
  comment: any;
1230
1230
  positionKey: any;
1231
1231
  pageIndex: any;
1232
1232
  isPrimary: boolean;
1233
1233
  positionEntry: any;
1234
- } | null)[]>;
1234
+ }[]>;
1235
1235
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
1236
1236
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
1237
1237
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -1498,15 +1498,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
1498
1498
  resolvedComments: any[];
1499
1499
  }>;
1500
1500
  getFloatingComments: import('vue').ComputedRef<any[]>;
1501
- getFloatingCommentInstances: import('vue').ComputedRef<({
1502
- id: string;
1501
+ getFloatingCommentInstances: import('vue').ComputedRef<{
1502
+ id: any;
1503
1503
  threadId: any;
1504
1504
  comment: any;
1505
1505
  positionKey: any;
1506
1506
  pageIndex: any;
1507
1507
  isPrimary: boolean;
1508
1508
  positionEntry: any;
1509
- } | null)[]>;
1509
+ }[]>;
1510
1510
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
1511
1511
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
1512
1512
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -1721,15 +1721,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
1721
1721
  resolvedComments: any[];
1722
1722
  }>;
1723
1723
  getFloatingComments: import('vue').ComputedRef<any[]>;
1724
- getFloatingCommentInstances: import('vue').ComputedRef<({
1725
- id: string;
1724
+ getFloatingCommentInstances: import('vue').ComputedRef<{
1725
+ id: any;
1726
1726
  threadId: any;
1727
1727
  comment: any;
1728
1728
  positionKey: any;
1729
1729
  pageIndex: any;
1730
1730
  isPrimary: boolean;
1731
1731
  positionEntry: any;
1732
- } | null)[]>;
1732
+ }[]>;
1733
1733
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
1734
1734
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
1735
1735
  getCommentPosition: (commentOrId: Object | string) => Object | null;
@@ -1944,15 +1944,15 @@ export const useSuperdocStore: import('pinia').StoreDefinition<"superdoc", Pick<
1944
1944
  resolvedComments: any[];
1945
1945
  }>;
1946
1946
  getFloatingComments: import('vue').ComputedRef<any[]>;
1947
- getFloatingCommentInstances: import('vue').ComputedRef<({
1948
- id: string;
1947
+ getFloatingCommentInstances: import('vue').ComputedRef<{
1948
+ id: any;
1949
1949
  threadId: any;
1950
1950
  comment: any;
1951
1951
  positionKey: any;
1952
1952
  pageIndex: any;
1953
1953
  isPrimary: boolean;
1954
1954
  positionEntry: any;
1955
- } | null)[]>;
1955
+ }[]>;
1956
1956
  getCommentAliasIds: (commentOrId: any) => (string | null)[];
1957
1957
  getCommentPositionKey: (commentOrId: Object | string | null | undefined) => string | null;
1958
1958
  getCommentPosition: (commentOrId: Object | string) => Object | null;