superdoc 2.4.0-next.8 → 2.4.0

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 (77) hide show
  1. package/dist/chunks/{FindReplaceSurface-9VkPw_-X.cjs → FindReplaceSurface-0p7EtMZh.cjs} +4 -3
  2. package/dist/chunks/{FindReplaceSurface-BuvaIrQ5.es.js → FindReplaceSurface-40AnrqWk.es.js} +4 -2
  3. package/dist/chunks/{PasswordPromptSurface-Bu5xHm91.cjs → PasswordPromptSurface-31lYPcCK.cjs} +4 -3
  4. package/dist/chunks/{PasswordPromptSurface-Bz9_sKhX.es.js → PasswordPromptSurface-CwYeO3iQ.es.js} +4 -2
  5. package/dist/chunks/{PdfViewer-CdVGB6Fe.es.js → PdfViewer-D8h7LRZy.es.js} +103 -19
  6. package/dist/chunks/{PdfViewer-D4eD2dV1.cjs → PdfViewer-Dug6yDRC.cjs} +105 -20
  7. package/dist/chunks/_plugin-vue_export-helper-BOaGB7Aw.es.js +8 -0
  8. package/dist/chunks/_plugin-vue_export-helper-SDR04tiH.cjs +13 -0
  9. package/dist/chunks/{blank-docx-DP8RUPW-.cjs → blank-docx-BuFAbRjs.cjs} +2 -0
  10. package/dist/chunks/{blank-docx-XRX6Ker2.es.js → blank-docx-DzQccOlW.es.js} +2 -0
  11. package/dist/chunks/constants-B6VBlmKp.es.js +4 -0
  12. package/dist/chunks/constants-DpXuDx_g.cjs +9 -0
  13. package/dist/chunks/{create-super-doc-ui-BquF8bnZ.es.js → create-super-doc-ui-CmOSA_lN.es.js} +2050 -1090
  14. package/dist/chunks/{create-super-doc-ui-sMXbYzhs.cjs → create-super-doc-ui-CqGmoMMA.cjs} +1861 -1141
  15. package/dist/chunks/{eventemitter3-DqY4aSMf.cjs → eventemitter3-C_TAnXOl.cjs} +125 -16
  16. package/dist/chunks/{eventemitter3-Bt2s0X0a.es.js → eventemitter3-DEIiXiH2.es.js} +124 -16
  17. package/dist/chunks/jszip-BzJ3CyxR.es.js +4717 -0
  18. package/dist/chunks/jszip-D8mAFF-r.cjs +4758 -0
  19. package/dist/chunks/{rolldown-runtime-D7PMmH3s.es.js → rolldown-runtime-0pSA04fp.es.js} +12 -3
  20. package/dist/chunks/{rolldown-runtime-1Y-nnZJ3.cjs → rolldown-runtime-74VwNCz7.cjs} +11 -2
  21. package/dist/chunks/{uuid-CFp0WGVU.cjs → uuid-BhG0ngwk.cjs} +10 -6
  22. package/dist/chunks/{uuid-B2Sqk-3p.es.js → uuid-H0Xcmmhy.es.js} +8 -3
  23. package/dist/collaboration-upgrade-engine.cjs +34 -9
  24. package/dist/collaboration-upgrade-engine.es.js +30 -5
  25. package/dist/document-api/src/citations/citations.types.d.ts +9 -0
  26. package/dist/document-api/src/comments/comments.types.d.ts +7 -0
  27. package/dist/document-api/src/types/receipt.d.ts +9 -5
  28. package/dist/layout-engine/contracts/src/incremental-dependency.d.ts +22 -2
  29. package/dist/layout-engine/contracts/src/index.d.ts +74 -2
  30. package/dist/layout-engine/contracts/src/inline-box.d.ts +19 -0
  31. package/dist/layout-engine/contracts/src/paragraph-visible-text.d.ts +19 -0
  32. package/dist/layout-engine/layout-bridge/src/incrementalLayout.d.ts +4 -1
  33. package/dist/layout-engine/layout-bridge/src/index.d.ts +1 -0
  34. package/dist/layout-engine/layout-bridge/src/inline-box-key.d.ts +3 -0
  35. package/dist/layout-engine/layout-bridge/src/layoutHeaderFooter.d.ts +5 -1
  36. package/dist/layout-engine/layout-bridge/src/run-visual-marks.d.ts +2 -0
  37. package/dist/layout-engine/layout-bridge/src/text-measurement.d.ts +0 -12
  38. package/dist/layout-engine/painters/dom/src/runs/inline-box.d.ts +8 -0
  39. package/dist/public/ui-react.cjs +66 -2
  40. package/dist/public/ui-react.es.js +66 -1
  41. package/dist/public/ui.cjs +1 -1
  42. package/dist/public/ui.es.js +1 -1
  43. package/dist/style.css +134 -98
  44. package/dist/style.layered.css +134 -98
  45. package/dist/superdoc/src/components/CommentsLayer/CommentDialog.vue.d.ts +2 -0
  46. package/dist/superdoc/src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue.d.ts +16 -0
  47. package/dist/superdoc/src/components/CommentsLayer/commentsList/commentsList.vue.d.ts +3 -1
  48. package/dist/superdoc/src/components/CommentsLayer/commentsList/super-comments-list.d.ts +12 -0
  49. package/dist/superdoc/src/core/SuperDoc.d.ts +10 -7
  50. package/dist/superdoc/src/core/extensions/index.d.ts +1 -1
  51. package/dist/superdoc/src/core/extensions/types.d.ts +63 -5
  52. package/dist/superdoc/src/core/types/index.d.ts +399 -37
  53. package/dist/superdoc/src/core/v2-integration/v2-integration.d.ts +3 -3
  54. package/dist/superdoc/src/helpers/comment-small-screen.d.ts +10 -0
  55. package/dist/superdoc/src/helpers/v2-review-mutation-impact.d.ts +3 -5
  56. package/dist/superdoc/src/internal/toolbar/built-in/ToolbarButton.vue.d.ts +4 -4
  57. package/dist/superdoc/src/internal/toolbar/built-in-toolbar.d.ts +11 -0
  58. package/dist/superdoc/src/internal/toolbar/compatibility-catalog.d.ts +1 -1
  59. package/dist/superdoc/src/public/index.d.cts +20 -0
  60. package/dist/superdoc/src/public/index.d.ts +10 -0
  61. package/dist/superdoc/src/public/ui/types.d.ts +30 -6
  62. package/dist/superdoc/src/stores/comments-store.d.ts +81 -78
  63. package/dist/superdoc/src/stores/superdoc-store.d.ts +243 -234
  64. package/dist/superdoc.cjs +6667 -2090
  65. package/dist/superdoc.es.js +6540 -1963
  66. package/dist-cdn/style.layered.css +1 -1
  67. package/dist-cdn/superdoc.min.css +1 -1
  68. package/dist-cdn/superdoc.min.js +37 -37
  69. package/package.json +14 -14
  70. package/dist/chunks/_plugin-vue_export-helper-CZ1Nl59K.cjs +0 -11
  71. package/dist/chunks/_plugin-vue_export-helper-DSMAhhwD.es.js +0 -6
  72. package/dist/chunks/constants-BfH0br5u.es.js +0 -3
  73. package/dist/chunks/constants-D7TNtyJd.cjs +0 -14
  74. package/dist/chunks/jszip-C8srOKAO.es.js +0 -4650
  75. package/dist/chunks/jszip-Cs9JBLlJ.cjs +0 -4691
  76. package/dist/superdoc/src/helpers/v2-remote-review-hydration.d.ts +0 -12
  77. package/dist/superdoc/src/helpers/v2-review-mutation-reconciler.d.ts +0 -19
package/dist/style.css CHANGED
@@ -366,6 +366,7 @@
366
366
  *
367
367
  * These aliases will be removed in the next major version.
368
368
  */
369
+
369
370
  :root {
370
371
  /* Old semantic names that map to primitives (no new-token equivalent) */
371
372
  --sd-surface-canvas: var(--sd-color-gray-50);
@@ -437,6 +438,7 @@
437
438
  --sd-ui-surface-shadow: 0 1px 3px rgba(60, 64, 67, 0.3), 0 4px 8px 3px rgba(60, 64, 67, 0.15);
438
439
  --sd-ui-dialog-backdrop: rgba(0, 0, 0, 0.32);
439
440
  }
441
+
440
442
  /* Preset theme: Microsoft Word-like */
441
443
  .sd-theme-word {
442
444
  /* UI base */
@@ -497,6 +499,7 @@
497
499
  --sd-ui-surface-shadow: 0 2px 6px rgba(0, 0, 0, 0.14), 0 8px 24px rgba(0, 0, 0, 0.1);
498
500
  --sd-ui-dialog-backdrop: rgba(0, 0, 0, 0.4);
499
501
  }
502
+
500
503
  /* Preset theme: Blueprint */
501
504
  .sd-theme-blueprint {
502
505
  /* UI base */
@@ -567,12 +570,14 @@
567
570
  .superdoc-toolbar ::after {
568
571
  box-sizing: border-box;
569
572
  }
573
+
570
574
  .superdoc .sd-disabled,
571
575
  .superdoc-toolbar .sd-disabled {
572
576
  opacity: 0.5;
573
577
  cursor: not-allowed;
574
578
  pointer-events: none;
575
579
  }
580
+
576
581
  .sd-button {
577
582
  border-radius: 8px;
578
583
  background-color: white;
@@ -584,20 +589,25 @@
584
589
  cursor: pointer;
585
590
  transition: all 250ms ease;
586
591
  }
592
+
587
593
  .sd-button:hover {
588
594
  background-color: #dbdbdb;
589
595
  }
596
+
590
597
  .sd-button.primary {
591
598
  background-color: #1355ff;
592
599
  border: none;
593
600
  color: white;
594
601
  }
602
+
595
603
  .sd-button.primary:hover {
596
604
  background-color: #0d3fcc;
597
605
  }
606
+
598
607
  .sd-comment-box {
599
608
  width: 300px;
600
609
  }
610
+
601
611
  .superdoc-field {
602
612
  border-radius: 8px;
603
613
  padding: 12px;
@@ -605,15 +615,18 @@
605
615
  border: 1px solid #dbdbdb;
606
616
  width: 100%;
607
617
  }
618
+
608
619
  .superdoc-field:focus,
609
620
  .superdoc-field:active {
610
621
  border: 1px solid #1355ff;
611
622
  }
623
+
612
624
  .superdoc-field .ProseMirror {
613
625
  border: 0;
614
626
  outline: 0;
615
627
  margin: 0;
616
628
  }
629
+
617
630
  .sd-editor-placeholder::before {
618
631
  content: attr(data-placeholder);
619
632
  color: #aaa;
@@ -627,6 +640,7 @@
627
640
  display: block;
628
641
  fill: currentColor;
629
642
  }
643
+
630
644
  .superdoc-toolbar svg {
631
645
  width: 100%;
632
646
  height: 100%;
@@ -634,9 +648,11 @@
634
648
  fill: currentColor;
635
649
  pointer-events: none;
636
650
  }
651
+
637
652
  .superdoc-toolbar svg path {
638
653
  stroke: currentColor;
639
654
  }
655
+
640
656
  /* Web Layout Mode (OOXML ST_View 'web') - content reflows to container width */
641
657
  .superdoc--web-layout,
642
658
  .superdoc--web-layout .superdoc__layers,
@@ -644,7 +660,9 @@
644
660
  .superdoc--web-layout .superdoc__sub-document {
645
661
  width: 100%;
646
662
  }
663
+
647
664
  /* --- Upgrade transition (upgradeToCollaboration) --- */
665
+
648
666
  .sd-upgrade-overlay {
649
667
  position: absolute;
650
668
  inset: 0;
@@ -652,15 +670,19 @@
652
670
  pointer-events: none;
653
671
  overflow: hidden;
654
672
  }
673
+
655
674
  .sd-upgrade-overlay [contenteditable] {
656
675
  pointer-events: none;
657
676
  user-select: none;
658
677
  }
678
+
659
679
  /* visibility: hidden (not display: none) so layout engine can still measure */
660
680
  .sd-upgrade-hidden {
661
681
  visibility: hidden !important;
662
682
  }
683
+
663
684
  /* --- Search highlights (transient, used in both editor and presentation mode) --- */
685
+
664
686
  /* AIDEV-NOTE: SD-3045. The DomPainter writes `style.backgroundColor = run.highlight`
665
687
  * inline on the same span the search DecorationBridge tags. Inline styles win over
666
688
  * class selectors, so on every run whose source rPr carries a highlight mark
@@ -673,15 +695,19 @@
673
695
  .superdoc .ProseMirror-search-match:not([data-sd-search-exact-highlight]) {
674
696
  background: var(--sd-ui-search-match-bg) !important;
675
697
  }
698
+
676
699
  .superdoc .ProseMirror-active-search-match:not([data-sd-search-exact-highlight]) {
677
700
  background: var(--sd-ui-search-match-active-bg) !important;
678
701
  }
702
+
679
703
  ::highlight(superdoc-search-match) {
680
704
  background: var(--sd-ui-search-match-bg);
681
705
  }
706
+
682
707
  ::highlight(superdoc-search-active-match) {
683
708
  background: var(--sd-ui-search-match-active-bg);
684
709
  }
710
+
685
711
  /* Proofing underlines are render-only v1/v2 UI state. They must not alter DOCX
686
712
  * bytes or layout identity; the runtime owns adding/removing these classes. */
687
713
  .superdoc .sd-proofing-spelling,
@@ -692,15 +718,19 @@
692
718
  text-decoration-thickness: var(--sd-proofing-underline-thickness, 1.5px);
693
719
  text-underline-offset: var(--sd-proofing-underline-offset, 2px);
694
720
  }
721
+
695
722
  .superdoc .sd-proofing-spelling {
696
723
  text-decoration-color: var(--sd-proofing-spelling-color, #e53e3e);
697
724
  }
725
+
698
726
  .superdoc .sd-proofing-grammar {
699
727
  text-decoration-color: var(--sd-proofing-grammar-color, #3182ce);
700
728
  }
729
+
701
730
  .superdoc .sd-proofing-style {
702
731
  text-decoration-color: var(--sd-proofing-style-color, #805ad5);
703
732
  }
733
+
704
734
  /* CSS Custom Highlight variant: the v2 runtime paints per-word squiggles over
705
735
  * exact text ranges (no DOM mutation). Highlight names match the class names. */
706
736
  ::highlight(sd-proofing-spelling),
@@ -711,15 +741,19 @@
711
741
  text-decoration-thickness: var(--sd-proofing-underline-thickness, 1.5px);
712
742
  text-underline-offset: var(--sd-proofing-underline-offset, 2px);
713
743
  }
744
+
714
745
  ::highlight(sd-proofing-spelling) {
715
746
  text-decoration-color: var(--sd-proofing-spelling-color, #e53e3e);
716
747
  }
748
+
717
749
  ::highlight(sd-proofing-grammar) {
718
750
  text-decoration-color: var(--sd-proofing-grammar-color, #3182ce);
719
751
  }
752
+
720
753
  ::highlight(sd-proofing-style) {
721
754
  text-decoration-color: var(--sd-proofing-style-color, #805ad5);
722
755
  }
756
+
723
757
  /* Contained Mode - fixed-height container embedding with internal scrolling */
724
758
  .superdoc--contained,
725
759
  .superdoc--contained .superdoc__layers,
@@ -727,6 +761,7 @@
727
761
  .superdoc--contained .superdoc__sub-document {
728
762
  height: 100%;
729
763
  }
764
+
730
765
  /* Sub-document scroll fallback for non-document-editor content (PDF, HTML).
731
766
  * The document editor manages its own scroll container, but PDF/HTML viewers
732
767
  * don't, so they need the sub-document to scroll. */
@@ -979,7 +1014,7 @@ img[data-v-c95b2073] {
979
1014
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
980
1015
  }
981
1016
 
982
- .comments-dialog[data-v-f26decd0] {
1017
+ .comments-dialog[data-v-0277e53b] {
983
1018
  display: flex;
984
1019
  flex-direction: column;
985
1020
  padding: var(--sd-ui-comments-card-padding, 16px);
@@ -998,73 +1033,73 @@ img[data-v-c95b2073] {
998
1033
  overflow-wrap: break-word;
999
1034
  word-break: break-word;
1000
1035
  }
1001
- .comments-dialog[data-v-f26decd0]:not(.is-active) {
1036
+ .comments-dialog[data-v-0277e53b]:not(.is-active) {
1002
1037
  cursor: pointer;
1003
1038
  }
1004
- .comments-dialog[data-v-f26decd0]:not(.is-active):not(.is-resolved):hover {
1039
+ .comments-dialog[data-v-0277e53b]:not(.is-active):not(.is-resolved):hover {
1005
1040
  background-color: var(--sd-ui-comments-card-hover-bg, #f3f6fd);
1006
1041
  }
1007
- .comments-dialog[data-v-f26decd0]:not(.is-resolved):hover .overflow-menu {
1042
+ .comments-dialog[data-v-0277e53b]:not(.is-resolved):hover .overflow-menu {
1008
1043
  opacity: 1;
1009
1044
  pointer-events: auto;
1010
1045
  }
1011
- .comments-dialog.is-active[data-v-f26decd0] {
1046
+ .comments-dialog.is-active[data-v-0277e53b] {
1012
1047
  background-color: var(--sd-ui-comments-card-active-bg, #ffffff);
1013
1048
  border-color: var(--sd-ui-comments-card-active-border, #e0e0e0);
1014
1049
  box-shadow: var(--sd-ui-comments-card-shadow, 0px 4px 12px 0px rgba(50, 50, 50, 0.15));
1015
1050
  z-index: 10;
1016
1051
  }
1017
- .comments-dialog.is-resolved[data-v-f26decd0] {
1052
+ .comments-dialog.is-resolved[data-v-0277e53b] {
1018
1053
  background-color: var(--sd-ui-comments-card-resolved-bg, #f0f0f0);
1019
1054
  }
1020
- .comment-separator[data-v-f26decd0] {
1055
+ .comment-separator[data-v-0277e53b] {
1021
1056
  background-color: var(--sd-ui-comments-separator, #e0e0e0);
1022
1057
  height: 1px;
1023
1058
  width: 100%;
1024
1059
  margin: 10px 0;
1025
1060
  }
1026
- .comment[data-v-f26decd0] {
1061
+ .comment[data-v-0277e53b] {
1027
1062
  font-size: var(--sd-ui-comments-body-size, 14px);
1028
1063
  line-height: 1.5;
1029
1064
  color: var(--sd-ui-comments-body-text, #212121);
1030
1065
  margin: 4px 0 0 0;
1031
1066
  }
1032
- .comment[data-v-f26decd0] p {
1067
+ .comment[data-v-0277e53b] p {
1033
1068
  margin: 0;
1034
1069
  }
1035
- .tracked-change[data-v-f26decd0] {
1070
+ .tracked-change[data-v-0277e53b] {
1036
1071
  font-size: var(--sd-ui-comments-body-size, 14px);
1037
1072
  line-height: 1.5;
1038
1073
  color: var(--sd-ui-comments-body-text, #212121);
1039
1074
  margin: 4px 0 0 0;
1040
1075
  }
1041
- .change-type[data-v-f26decd0] {
1076
+ .change-type[data-v-0277e53b] {
1042
1077
  color: var(--sd-ui-comments-body-text, #212121);
1043
1078
  }
1044
- .tracked-change-text[data-v-f26decd0] {
1079
+ .tracked-change-text[data-v-0277e53b] {
1045
1080
  color: var(--sd-ui-comments-body-text, #212121);
1046
1081
  }
1047
- .tracked-change-text.is-deleted[data-v-f26decd0] {
1082
+ .tracked-change-text.is-deleted[data-v-0277e53b] {
1048
1083
  color: var(--sd-ui-comments-delete-text, #cb0e47);
1049
1084
  }
1050
- .tracked-change-text.is-inserted[data-v-f26decd0] {
1085
+ .tracked-change-text.is-inserted[data-v-0277e53b] {
1051
1086
  color: var(--sd-ui-comments-insert-text, #1f6feb);
1052
1087
  font-weight: 500;
1053
1088
  }
1054
- .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-f26decd0] {
1089
+ .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-0277e53b] {
1055
1090
  color: var(--sd-ui-comments-move-from-text, #00853d);
1056
1091
  }
1057
- .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-f26decd0] {
1092
+ .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-0277e53b] {
1058
1093
  color: var(--sd-ui-comments-move-to-text, #00853d);
1059
1094
  }
1060
- .tracked-change-detail-lines[data-v-f26decd0] {
1095
+ .tracked-change-detail-lines[data-v-0277e53b] {
1061
1096
  margin-top: 4px;
1062
1097
  }
1063
- .tracked-change-detail-line[data-v-f26decd0] {
1098
+ .tracked-change-detail-line[data-v-0277e53b] {
1064
1099
  font-size: 12px;
1065
1100
  line-height: 1.4;
1066
1101
  }
1067
- .tracked-change-image-preview[data-v-f26decd0] {
1102
+ .tracked-change-image-preview[data-v-0277e53b] {
1068
1103
  display: inline-flex;
1069
1104
  align-items: center;
1070
1105
  justify-content: center;
@@ -1075,7 +1110,7 @@ img[data-v-c95b2073] {
1075
1110
  max-width: 96px;
1076
1111
  max-height: 96px;
1077
1112
  }
1078
- .tracked-change-image-preview__image[data-v-f26decd0] {
1113
+ .tracked-change-image-preview__image[data-v-0277e53b] {
1079
1114
  display: block;
1080
1115
  width: auto;
1081
1116
  height: auto;
@@ -1085,7 +1120,7 @@ img[data-v-c95b2073] {
1085
1120
  }
1086
1121
 
1087
1122
  /* ── Failed tracked-change decision alert (SD-3772 §6) ── */
1088
- .tracked-change-decision-alert[data-v-f26decd0] {
1123
+ .tracked-change-decision-alert[data-v-0277e53b] {
1089
1124
  display: flex;
1090
1125
  align-items: center;
1091
1126
  justify-content: space-between;
@@ -1099,12 +1134,12 @@ img[data-v-c95b2073] {
1099
1134
  font-size: var(--sd-ui-comments-body-size, 14px);
1100
1135
  line-height: 1.4;
1101
1136
  }
1102
- .tracked-change-decision-alert__retry[data-v-f26decd0] {
1137
+ .tracked-change-decision-alert__retry[data-v-0277e53b] {
1103
1138
  flex-shrink: 0;
1104
1139
  }
1105
1140
 
1106
1141
  /* ── Resolved badge ── */
1107
- .resolved-badge[data-v-f26decd0] {
1142
+ .resolved-badge[data-v-0277e53b] {
1108
1143
  display: inline-flex;
1109
1144
  align-items: center;
1110
1145
  gap: 4px;
@@ -1113,33 +1148,33 @@ img[data-v-c95b2073] {
1113
1148
  color: var(--sd-ui-comments-resolved-text, #00853d);
1114
1149
  margin-bottom: 4px;
1115
1150
  }
1116
- .resolved-badge__icon[data-v-f26decd0] {
1151
+ .resolved-badge__icon[data-v-0277e53b] {
1117
1152
  display: inline-flex;
1118
1153
  width: 12px;
1119
1154
  height: 12px;
1120
1155
  }
1121
- .resolved-badge__icon[data-v-f26decd0] svg {
1156
+ .resolved-badge__icon[data-v-0277e53b] svg {
1122
1157
  width: 100%;
1123
1158
  height: 100%;
1124
1159
  fill: currentColor;
1125
1160
  }
1126
1161
 
1127
1162
  /* ── Text truncation ── */
1128
- .comment.is-truncated[data-v-f26decd0],
1129
- .tracked-change.is-truncated[data-v-f26decd0] {
1163
+ .comment.is-truncated[data-v-0277e53b],
1164
+ .tracked-change.is-truncated[data-v-0277e53b] {
1130
1165
  display: -webkit-box;
1131
1166
  -webkit-line-clamp: 3;
1132
1167
  -webkit-box-orient: vertical;
1133
1168
  max-height: 4.5em;
1134
1169
  overflow: hidden;
1135
1170
  }
1136
- .comment.is-scrollable[data-v-f26decd0],
1137
- .tracked-change.is-scrollable[data-v-f26decd0] {
1171
+ .comment.is-scrollable[data-v-0277e53b],
1172
+ .tracked-change.is-scrollable[data-v-0277e53b] {
1138
1173
  max-height: 220px;
1139
1174
  overflow-y: auto;
1140
1175
  padding-right: 4px;
1141
1176
  }
1142
- .show-more-toggle[data-v-f26decd0] {
1177
+ .show-more-toggle[data-v-0277e53b] {
1143
1178
  font-size: 12px;
1144
1179
  color: var(--sd-ui-action, #1355ff);
1145
1180
  cursor: pointer;
@@ -1147,12 +1182,12 @@ img[data-v-c95b2073] {
1147
1182
  margin-top: 4px;
1148
1183
  user-select: none;
1149
1184
  }
1150
- .show-more-toggle[data-v-f26decd0]:hover {
1185
+ .show-more-toggle[data-v-0277e53b]:hover {
1151
1186
  text-decoration: underline;
1152
1187
  }
1153
1188
 
1154
1189
  /* ── Thread collapse ── */
1155
- .collapsed-replies[data-v-f26decd0] {
1190
+ .collapsed-replies[data-v-0277e53b] {
1156
1191
  display: flex;
1157
1192
  align-items: center;
1158
1193
  gap: 6px;
@@ -1163,24 +1198,24 @@ img[data-v-c95b2073] {
1163
1198
  cursor: pointer;
1164
1199
  user-select: none;
1165
1200
  }
1166
- .collapsed-replies[data-v-f26decd0]:hover {
1201
+ .collapsed-replies[data-v-0277e53b]:hover {
1167
1202
  text-decoration: underline;
1168
1203
  }
1169
- .collapsed-avatars[data-v-f26decd0] {
1204
+ .collapsed-avatars[data-v-0277e53b] {
1170
1205
  display: flex;
1171
1206
  }
1172
- .collapsed-avatars .mini-avatar[data-v-f26decd0] {
1207
+ .collapsed-avatars .mini-avatar[data-v-0277e53b] {
1173
1208
  --sd-comment-avatar-size: 20px;
1174
1209
  --sd-comment-avatar-font-size: 8px;
1175
1210
  margin-left: -4px;
1176
1211
  border: 2px solid var(--sd-ui-comments-card-active-bg, #ffffff);
1177
1212
  }
1178
- .collapsed-avatars .mini-avatar[data-v-f26decd0]:first-child {
1213
+ .collapsed-avatars .mini-avatar[data-v-0277e53b]:first-child {
1179
1214
  margin-left: 0;
1180
1215
  }
1181
1216
 
1182
1217
  /* ── New comment input ── */
1183
- .new-comment-input-wrapper[data-v-f26decd0] {
1218
+ .new-comment-input-wrapper[data-v-0277e53b] {
1184
1219
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1185
1220
  border-radius: 12px;
1186
1221
  padding: 8.5px 10.5px;
@@ -1189,17 +1224,17 @@ img[data-v-c95b2073] {
1189
1224
  max-height: 150px;
1190
1225
  overflow-y: auto;
1191
1226
  }
1192
- .new-comment-input-wrapper[data-v-f26decd0]:focus-within {
1227
+ .new-comment-input-wrapper[data-v-0277e53b]:focus-within {
1193
1228
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1194
1229
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1195
1230
  }
1196
- .new-comment-input-wrapper[data-v-f26decd0] .comment-entry {
1231
+ .new-comment-input-wrapper[data-v-0277e53b] .comment-entry {
1197
1232
  border-radius: 0;
1198
1233
  }
1199
- .new-comment-input-wrapper[data-v-f26decd0] .input-section {
1234
+ .new-comment-input-wrapper[data-v-0277e53b] .input-section {
1200
1235
  margin: 0;
1201
1236
  }
1202
- .new-comment-input-wrapper[data-v-f26decd0] .superdoc-field {
1237
+ .new-comment-input-wrapper[data-v-0277e53b] .superdoc-field {
1203
1238
  font-size: 14px;
1204
1239
  line-height: 20px;
1205
1240
  border: none;
@@ -1210,18 +1245,18 @@ img[data-v-c95b2073] {
1210
1245
  max-height: 132px;
1211
1246
  resize: none;
1212
1247
  }
1213
- .new-comment-input-wrapper[data-v-f26decd0] .superdoc-field:focus,
1214
- .new-comment-input-wrapper[data-v-f26decd0] .superdoc-field:active {
1248
+ .new-comment-input-wrapper[data-v-0277e53b] .superdoc-field:focus,
1249
+ .new-comment-input-wrapper[data-v-0277e53b] .superdoc-field:active {
1215
1250
  border: none;
1216
1251
  box-shadow: none;
1217
1252
  outline: none;
1218
1253
  }
1219
- .new-comment-input-wrapper[data-v-f26decd0] .sd-editor-placeholder::before {
1254
+ .new-comment-input-wrapper[data-v-0277e53b] .sd-editor-placeholder::before {
1220
1255
  content: 'Comment or add others with @';
1221
1256
  }
1222
1257
 
1223
1258
  /* ── Reply pill & expanded input ── */
1224
- .reply-pill[data-v-f26decd0] {
1259
+ .reply-pill[data-v-0277e53b] {
1225
1260
  width: 100%;
1226
1261
  padding: 8.5px 10.5px;
1227
1262
  border: 1.5px solid transparent;
@@ -1235,16 +1270,16 @@ img[data-v-c95b2073] {
1235
1270
  cursor: text;
1236
1271
  transition: background 150ms ease;
1237
1272
  }
1238
- .reply-pill[data-v-f26decd0]:hover {
1273
+ .reply-pill[data-v-0277e53b]:hover {
1239
1274
  background: var(--sd-color-gray-200, #f2f2f2);
1240
1275
  }
1241
- .reply-pill[data-v-f26decd0]:disabled {
1276
+ .reply-pill[data-v-0277e53b]:disabled {
1242
1277
  cursor: not-allowed;
1243
1278
  }
1244
- .reply-expanded[data-v-f26decd0] {
1279
+ .reply-expanded[data-v-0277e53b] {
1245
1280
  margin-top: 10px;
1246
1281
  }
1247
- .reply-input-wrapper[data-v-f26decd0] {
1282
+ .reply-input-wrapper[data-v-0277e53b] {
1248
1283
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1249
1284
  border-radius: 12px;
1250
1285
  padding: 8.5px 10.5px;
@@ -1252,17 +1287,17 @@ img[data-v-c95b2073] {
1252
1287
  max-height: 150px;
1253
1288
  overflow-y: auto;
1254
1289
  }
1255
- .reply-input-wrapper[data-v-f26decd0]:focus-within {
1290
+ .reply-input-wrapper[data-v-0277e53b]:focus-within {
1256
1291
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1257
1292
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1258
1293
  }
1259
- .reply-input-wrapper[data-v-f26decd0] .comment-entry {
1294
+ .reply-input-wrapper[data-v-0277e53b] .comment-entry {
1260
1295
  border-radius: 0;
1261
1296
  }
1262
- .reply-input-wrapper[data-v-f26decd0] .input-section {
1297
+ .reply-input-wrapper[data-v-0277e53b] .input-section {
1263
1298
  margin: 0;
1264
1299
  }
1265
- .reply-input-wrapper[data-v-f26decd0] .superdoc-field {
1300
+ .reply-input-wrapper[data-v-0277e53b] .superdoc-field {
1266
1301
  font-size: 14px;
1267
1302
  line-height: 20px;
1268
1303
  border: none;
@@ -1273,23 +1308,23 @@ img[data-v-c95b2073] {
1273
1308
  max-height: 132px;
1274
1309
  resize: none;
1275
1310
  }
1276
- .reply-input-wrapper[data-v-f26decd0] .superdoc-field:focus,
1277
- .reply-input-wrapper[data-v-f26decd0] .superdoc-field:active {
1311
+ .reply-input-wrapper[data-v-0277e53b] .superdoc-field:focus,
1312
+ .reply-input-wrapper[data-v-0277e53b] .superdoc-field:active {
1278
1313
  border: none;
1279
1314
  box-shadow: none;
1280
1315
  outline: none;
1281
1316
  }
1282
- .reply-input-wrapper[data-v-f26decd0] .sd-editor-placeholder::before {
1317
+ .reply-input-wrapper[data-v-0277e53b] .sd-editor-placeholder::before {
1283
1318
  content: 'Reply or add others with @';
1284
1319
  }
1285
- .reply-actions[data-v-f26decd0] {
1320
+ .reply-actions[data-v-0277e53b] {
1286
1321
  display: flex;
1287
1322
  justify-content: flex-end;
1288
1323
  align-items: center;
1289
1324
  gap: 16px;
1290
1325
  margin-top: 8px;
1291
1326
  }
1292
- .reply-btn-cancel[data-v-f26decd0] {
1327
+ .reply-btn-cancel[data-v-0277e53b] {
1293
1328
  background: none;
1294
1329
  border: none;
1295
1330
  font-size: 13px;
@@ -1300,10 +1335,10 @@ img[data-v-c95b2073] {
1300
1335
  font-family: inherit;
1301
1336
  transition: color 150ms;
1302
1337
  }
1303
- .reply-btn-cancel[data-v-f26decd0]:hover {
1338
+ .reply-btn-cancel[data-v-0277e53b]:hover {
1304
1339
  color: var(--sd-ui-text, #212121);
1305
1340
  }
1306
- .reply-btn-primary[data-v-f26decd0] {
1341
+ .reply-btn-primary[data-v-0277e53b] {
1307
1342
  background: var(--sd-ui-action, #1355ff);
1308
1343
  border: none;
1309
1344
  font-size: 13px;
@@ -1315,32 +1350,33 @@ img[data-v-c95b2073] {
1315
1350
  font-family: inherit;
1316
1351
  transition: background 150ms;
1317
1352
  }
1318
- .reply-btn-primary[data-v-f26decd0]:hover {
1353
+ .reply-btn-primary[data-v-0277e53b]:hover {
1319
1354
  background: var(--sd-ui-action-hover, #0f44cc);
1320
1355
  }
1321
- .reply-btn-primary.sd-is-disabled[data-v-f26decd0] {
1356
+ .reply-btn-primary.sd-is-disabled[data-v-0277e53b] {
1322
1357
  background: var(--sd-color-gray-400, #dbdbdb);
1323
1358
  color: var(--sd-color-gray-600, #888888);
1324
1359
  cursor: default;
1325
1360
  pointer-events: none;
1326
1361
  }
1327
- .existing-internal-input[data-v-f26decd0] {
1362
+ .existing-internal-input[data-v-0277e53b] {
1328
1363
  margin-bottom: 10px;
1329
1364
  }
1330
- .sd-internal-dropdown[data-v-f26decd0] {
1365
+ .sd-internal-dropdown[data-v-0277e53b] {
1331
1366
  display: inline-block;
1332
1367
  }
1333
1368
 
1334
- .comments-list[data-v-e89dbc33] {
1369
+ .comment-item[data-v-29650a06] {
1370
+ margin-bottom: 10px;
1371
+ }
1372
+
1373
+ .comments-list[data-v-89244745] {
1335
1374
  display: flex;
1336
1375
  flex-direction: column;
1337
1376
  height: 100%;
1338
1377
  max-width: 400px;
1339
1378
  }
1340
- .comment-item[data-v-e89dbc33] {
1341
- margin-bottom: 10px;
1342
- }
1343
- .comment-title[data-v-e89dbc33] {
1379
+ .comment-title[data-v-89244745] {
1344
1380
  font-size: 16px;
1345
1381
  font-weight: 600;
1346
1382
  margin-bottom: 5px;
@@ -1375,28 +1411,28 @@ img[data-v-c95b2073] {
1375
1411
  background-color: #1355ff7f;
1376
1412
  }
1377
1413
 
1378
- .comment-placeholder[data-v-a0a841ce] {
1414
+ .comment-placeholder[data-v-d8d03209] {
1379
1415
  position: absolute;
1380
1416
  width: 300px;
1381
1417
  transition: top 0.3s ease;
1382
1418
  }
1383
- .comment-placeholder.is-direct-decision-continuity-target[data-v-a0a841ce] .overflow-menu {
1419
+ .comment-placeholder.is-direct-decision-continuity-target[data-v-d8d03209] .overflow-menu {
1384
1420
  opacity: 1;
1385
1421
  pointer-events: auto;
1386
1422
  }
1387
- .floating-comment[data-v-a0a841ce] {
1423
+ .floating-comment[data-v-d8d03209] {
1388
1424
  position: relative;
1389
1425
  display: block;
1390
1426
  min-width: 300px;
1391
1427
  }
1392
- .sidebar-container[data-v-a0a841ce] {
1428
+ .sidebar-container[data-v-d8d03209] {
1393
1429
  position: absolute;
1394
1430
  width: 300px;
1395
1431
  min-height: 300px;
1396
1432
  transition: transform 0.3s ease;
1397
1433
  will-change: transform;
1398
1434
  }
1399
- .section-wrapper[data-v-a0a841ce] {
1435
+ .section-wrapper[data-v-d8d03209] {
1400
1436
  position: relative;
1401
1437
  min-height: 100%;
1402
1438
  width: 300px;
@@ -1734,11 +1770,11 @@ img[data-v-c95b2073] {
1734
1770
  pointer-events: auto;
1735
1771
  }
1736
1772
 
1737
- .superdoc[data-v-62293b70] {
1773
+ .superdoc[data-v-7770edae] {
1738
1774
  display: flex;
1739
1775
  position: relative;
1740
1776
  }
1741
- .sd-visually-hidden[data-v-62293b70] {
1777
+ .sd-visually-hidden[data-v-7770edae] {
1742
1778
  position: absolute;
1743
1779
  width: 1px;
1744
1780
  height: 1px;
@@ -1749,30 +1785,30 @@ img[data-v-c95b2073] {
1749
1785
  white-space: nowrap;
1750
1786
  border: 0;
1751
1787
  }
1752
- .right-sidebar[data-v-62293b70] {
1788
+ .right-sidebar[data-v-7770edae] {
1753
1789
  min-width: 320px;
1754
1790
  height: 100%;
1755
1791
  }
1756
- .floating-comments[data-v-62293b70] {
1792
+ .floating-comments[data-v-7770edae] {
1757
1793
  min-width: 300px;
1758
1794
  width: 300px;
1759
1795
  height: 100%;
1760
1796
  overflow: visible;
1761
1797
  }
1762
- .superdoc__layers[data-v-62293b70] {
1798
+ .superdoc__layers[data-v-7770edae] {
1763
1799
  height: 100%;
1764
1800
  position: relative;
1765
1801
  box-sizing: border-box;
1766
1802
  }
1767
- .superdoc__document[data-v-62293b70] {
1803
+ .superdoc__document[data-v-7770edae] {
1768
1804
  width: 100%;
1769
1805
  position: relative;
1770
1806
  }
1771
- .superdoc__sub-document[data-v-62293b70] {
1807
+ .superdoc__sub-document[data-v-7770edae] {
1772
1808
  width: 100%;
1773
1809
  position: relative;
1774
1810
  }
1775
- .superdoc__selection-layer[data-v-62293b70] {
1811
+ .superdoc__selection-layer[data-v-7770edae] {
1776
1812
  position: absolute;
1777
1813
  min-width: 100%;
1778
1814
  min-height: 100%;
@@ -1783,13 +1819,13 @@ img[data-v-c95b2073] {
1783
1819
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
1784
1820
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
1785
1821
  clickable, and below the selection layer (z-index 10). */
1786
- .superdoc__whiteboard-layer[data-v-62293b70] {
1822
+ .superdoc__whiteboard-layer[data-v-7770edae] {
1787
1823
  z-index: 4;
1788
1824
  }
1789
- .superdoc__temp-selection[data-v-62293b70] {
1825
+ .superdoc__temp-selection[data-v-7770edae] {
1790
1826
  position: absolute;
1791
1827
  }
1792
- .superdoc__right-sidebar[data-v-62293b70] {
1828
+ .superdoc__right-sidebar[data-v-7770edae] {
1793
1829
  width: 320px;
1794
1830
  min-width: 320px;
1795
1831
  padding: 0 10px;
@@ -1797,7 +1833,7 @@ img[data-v-c95b2073] {
1797
1833
  position: relative;
1798
1834
  z-index: 2;
1799
1835
  }
1800
- .superdoc__compact-comment-popover[data-v-62293b70] {
1836
+ .superdoc__compact-comment-popover[data-v-7770edae] {
1801
1837
  position: absolute;
1802
1838
  top: 12px;
1803
1839
  right: 12px;
@@ -1806,14 +1842,14 @@ img[data-v-c95b2073] {
1806
1842
  }
1807
1843
 
1808
1844
  /* Tools styles */
1809
- .tools[data-v-62293b70] {
1845
+ .tools[data-v-7770edae] {
1810
1846
  position: absolute;
1811
1847
  z-index: 3;
1812
1848
  display: flex;
1813
1849
  flex-direction: column;
1814
1850
  gap: var(--sd-ui-tools-gap, 6px);
1815
1851
  }
1816
- .tools-item[data-v-62293b70] {
1852
+ .tools-item[data-v-7770edae] {
1817
1853
  display: flex;
1818
1854
  align-items: center;
1819
1855
  justify-content: center;
@@ -1824,10 +1860,10 @@ img[data-v-c95b2073] {
1824
1860
  cursor: pointer;
1825
1861
  position: relative;
1826
1862
  }
1827
- .tools-item i[data-v-62293b70] {
1863
+ .tools-item i[data-v-7770edae] {
1828
1864
  cursor: pointer;
1829
1865
  }
1830
- .superdoc__tools-icon[data-v-62293b70] {
1866
+ .superdoc__tools-icon[data-v-7770edae] {
1831
1867
  width: var(--sd-ui-tools-icon-size, 20px);
1832
1868
  height: var(--sd-ui-tools-icon-size, 20px);
1833
1869
  flex-shrink: 0;
@@ -1842,22 +1878,22 @@ img[data-v-c95b2073] {
1842
1878
 
1843
1879
  /* 834px is iPad screen size in portrait orientation */
1844
1880
  @media (max-width: 834px) {
1845
- .superdoc .superdoc__layers[data-v-62293b70] {
1881
+ .superdoc .superdoc__layers[data-v-7770edae] {
1846
1882
  margin: 0;
1847
1883
  border: 0 !important;
1848
1884
  box-shadow: none;
1849
1885
  }
1850
- .superdoc__sub-document[data-v-62293b70] {
1886
+ .superdoc__sub-document[data-v-7770edae] {
1851
1887
  max-width: 100%;
1852
1888
  }
1853
- .superdoc__right-sidebar[data-v-62293b70] {
1889
+ .superdoc__right-sidebar[data-v-7770edae] {
1854
1890
  padding: 10px;
1855
1891
  position: relative;
1856
1892
  }
1857
1893
  }
1858
1894
 
1859
1895
  /* AI Writer styles */
1860
- .ai-writer-container[data-v-62293b70] {
1896
+ .ai-writer-container[data-v-7770edae] {
1861
1897
  position: fixed;
1862
1898
  z-index: 1000;
1863
1899
  background: white;
@@ -1873,10 +1909,10 @@ img[data-v-c95b2073] {
1873
1909
  transform: translateY(-50%);
1874
1910
  z-index: 50;
1875
1911
  } */
1876
- .ai-tool > svg[data-v-62293b70] {
1912
+ .ai-tool > svg[data-v-7770edae] {
1877
1913
  fill: transparent;
1878
1914
  }
1879
- .ai-tool[data-v-62293b70]::before {
1915
+ .ai-tool[data-v-7770edae]::before {
1880
1916
  content: '';
1881
1917
  position: absolute;
1882
1918
  width: 20px;
@@ -1897,7 +1933,7 @@ img[data-v-c95b2073] {
1897
1933
  filter: brightness(1.2);
1898
1934
  transition: filter 0.2s ease;
1899
1935
  }
1900
- .ai-tool[data-v-62293b70]:hover::before {
1936
+ .ai-tool[data-v-7770edae]:hover::before {
1901
1937
  filter: brightness(1.3);
1902
1938
  }
1903
1939
 
@@ -2434,7 +2470,7 @@ img[data-v-c95b2073] {
2434
2470
  transform: scale(1);
2435
2471
  }
2436
2472
 
2437
- .button-group[data-v-590293ab] {
2473
+ .button-group[data-v-2bc00f65] {
2438
2474
  display: flex;
2439
2475
  }
2440
2476