superdoc 2.22.0 → 2.22.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1493,7 +1493,7 @@ img[data-v-c95b2073] {
1493
1493
  font-size: 11px;
1494
1494
  }
1495
1495
 
1496
- .comments-dialog[data-v-eefd4750] {
1496
+ .comments-dialog[data-v-21ad0f69] {
1497
1497
  display: flex;
1498
1498
  flex-direction: column;
1499
1499
  padding: var(--sd-ui-comments-card-padding, 16px);
@@ -1512,74 +1512,74 @@ img[data-v-c95b2073] {
1512
1512
  overflow-wrap: break-word;
1513
1513
  word-break: break-word;
1514
1514
  }
1515
- .comments-dialog[data-v-eefd4750]:not(.is-active) {
1515
+ .comments-dialog[data-v-21ad0f69]:not(.is-active) {
1516
1516
  cursor: pointer;
1517
1517
  }
1518
- .comments-dialog[data-v-eefd4750]:not(.is-active):not(.is-resolved):hover {
1518
+ .comments-dialog[data-v-21ad0f69]:not(.is-active):not(.is-resolved):hover {
1519
1519
  background-color: var(--sd-ui-comments-card-hover-bg, #f3f6fd);
1520
1520
  }
1521
- .comments-dialog[data-v-eefd4750]:not(.is-resolved):hover .overflow-menu {
1521
+ .comments-dialog[data-v-21ad0f69]:not(.is-resolved):hover .overflow-menu {
1522
1522
  opacity: 1;
1523
1523
  pointer-events: auto;
1524
1524
  }
1525
- .comments-dialog.is-active[data-v-eefd4750] {
1525
+ .comments-dialog.is-active[data-v-21ad0f69] {
1526
1526
  background-color: var(--sd-ui-comments-card-active-bg, #ffffff);
1527
1527
  border-color: var(--sd-ui-comments-card-active-border, #e0e0e0);
1528
1528
  box-shadow: var(--sd-ui-comments-card-shadow, 0px 4px 12px 0px rgba(50, 50, 50, 0.15));
1529
1529
  z-index: 10;
1530
1530
  }
1531
- .comments-dialog.is-resolved[data-v-eefd4750] {
1531
+ .comments-dialog.is-resolved[data-v-21ad0f69] {
1532
1532
  background-color: var(--sd-ui-comments-card-resolved-bg, #f0f0f0);
1533
1533
  }
1534
- .comment-separator[data-v-eefd4750] {
1534
+ .comment-separator[data-v-21ad0f69] {
1535
1535
  background-color: var(--sd-ui-comments-separator, #e0e0e0);
1536
1536
  height: 1px;
1537
1537
  width: 100%;
1538
1538
  margin: 10px 0;
1539
1539
  }
1540
- .comment[data-v-eefd4750] {
1540
+ .comment[data-v-21ad0f69] {
1541
1541
  font-size: var(--sd-ui-comments-body-size, 14px);
1542
1542
  line-height: 1.5;
1543
1543
  color: var(--sd-ui-comments-body-text, #212121);
1544
1544
  margin: 4px 0 0 0;
1545
1545
  }
1546
- .comment[data-v-eefd4750] p {
1546
+ .comment[data-v-21ad0f69] p {
1547
1547
  margin: 0;
1548
1548
  }
1549
- .tracked-change[data-v-eefd4750] {
1549
+ .tracked-change[data-v-21ad0f69] {
1550
1550
  font-size: var(--sd-ui-comments-body-size, 14px);
1551
1551
  line-height: 1.5;
1552
1552
  color: var(--sd-ui-comments-body-text, #212121);
1553
1553
  margin: 4px 0 0 0;
1554
1554
  }
1555
- .change-type[data-v-eefd4750] {
1555
+ .change-type[data-v-21ad0f69] {
1556
1556
  color: var(--sd-ui-comments-body-text, #212121);
1557
1557
  }
1558
- .tracked-change-text[data-v-eefd4750] {
1558
+ .tracked-change-text[data-v-21ad0f69] {
1559
1559
  color: var(--sd-ui-comments-body-text, #212121);
1560
1560
  white-space: pre-wrap;
1561
1561
  }
1562
- .tracked-change-text.is-deleted[data-v-eefd4750] {
1562
+ .tracked-change-text.is-deleted[data-v-21ad0f69] {
1563
1563
  color: var(--sd-ui-comments-delete-text, #cb0e47);
1564
1564
  }
1565
- .tracked-change-text.is-inserted[data-v-eefd4750] {
1565
+ .tracked-change-text.is-inserted[data-v-21ad0f69] {
1566
1566
  color: var(--sd-ui-comments-insert-text, #1f6feb);
1567
1567
  font-weight: 500;
1568
1568
  }
1569
- .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-eefd4750] {
1569
+ .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-21ad0f69] {
1570
1570
  color: var(--sd-ui-comments-move-from-text, #00853d);
1571
1571
  }
1572
- .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-eefd4750] {
1572
+ .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-21ad0f69] {
1573
1573
  color: var(--sd-ui-comments-move-to-text, #00853d);
1574
1574
  }
1575
- .tracked-change-detail-lines[data-v-eefd4750] {
1575
+ .tracked-change-detail-lines[data-v-21ad0f69] {
1576
1576
  margin-top: 4px;
1577
1577
  }
1578
- .tracked-change-detail-line[data-v-eefd4750] {
1578
+ .tracked-change-detail-line[data-v-21ad0f69] {
1579
1579
  font-size: 12px;
1580
1580
  line-height: 1.4;
1581
1581
  }
1582
- .tracked-change-image-preview[data-v-eefd4750] {
1582
+ .tracked-change-image-preview[data-v-21ad0f69] {
1583
1583
  display: inline-flex;
1584
1584
  align-items: center;
1585
1585
  justify-content: center;
@@ -1590,7 +1590,7 @@ img[data-v-c95b2073] {
1590
1590
  max-width: 96px;
1591
1591
  max-height: 96px;
1592
1592
  }
1593
- .tracked-change-image-preview__image[data-v-eefd4750] {
1593
+ .tracked-change-image-preview__image[data-v-21ad0f69] {
1594
1594
  display: block;
1595
1595
  width: auto;
1596
1596
  height: auto;
@@ -1600,7 +1600,7 @@ img[data-v-c95b2073] {
1600
1600
  }
1601
1601
 
1602
1602
  /* ── Failed tracked-change decision alert (SD-3772 §6) ── */
1603
- .tracked-change-decision-alert[data-v-eefd4750] {
1603
+ .tracked-change-decision-alert[data-v-21ad0f69] {
1604
1604
  display: flex;
1605
1605
  align-items: center;
1606
1606
  justify-content: space-between;
@@ -1614,12 +1614,12 @@ img[data-v-c95b2073] {
1614
1614
  font-size: var(--sd-ui-comments-body-size, 14px);
1615
1615
  line-height: 1.4;
1616
1616
  }
1617
- .tracked-change-decision-alert__retry[data-v-eefd4750] {
1617
+ .tracked-change-decision-alert__retry[data-v-21ad0f69] {
1618
1618
  flex-shrink: 0;
1619
1619
  }
1620
1620
 
1621
1621
  /* ── Resolved badge ── */
1622
- .resolved-badge[data-v-eefd4750] {
1622
+ .resolved-badge[data-v-21ad0f69] {
1623
1623
  display: inline-flex;
1624
1624
  align-items: center;
1625
1625
  gap: 4px;
@@ -1628,33 +1628,33 @@ img[data-v-c95b2073] {
1628
1628
  color: var(--sd-ui-comments-resolved-text, #00853d);
1629
1629
  margin-bottom: 4px;
1630
1630
  }
1631
- .resolved-badge__icon[data-v-eefd4750] {
1631
+ .resolved-badge__icon[data-v-21ad0f69] {
1632
1632
  display: inline-flex;
1633
1633
  width: 12px;
1634
1634
  height: 12px;
1635
1635
  }
1636
- .resolved-badge__icon[data-v-eefd4750] svg {
1636
+ .resolved-badge__icon[data-v-21ad0f69] svg {
1637
1637
  width: 100%;
1638
1638
  height: 100%;
1639
1639
  fill: currentColor;
1640
1640
  }
1641
1641
 
1642
1642
  /* ── Text truncation ── */
1643
- .comment.is-truncated[data-v-eefd4750],
1644
- .tracked-change.is-truncated[data-v-eefd4750] {
1643
+ .comment.is-truncated[data-v-21ad0f69],
1644
+ .tracked-change.is-truncated[data-v-21ad0f69] {
1645
1645
  display: -webkit-box;
1646
1646
  -webkit-line-clamp: 3;
1647
1647
  -webkit-box-orient: vertical;
1648
1648
  max-height: 4.5em;
1649
1649
  overflow: hidden;
1650
1650
  }
1651
- .comment.is-scrollable[data-v-eefd4750],
1652
- .tracked-change.is-scrollable[data-v-eefd4750] {
1651
+ .comment.is-scrollable[data-v-21ad0f69],
1652
+ .tracked-change.is-scrollable[data-v-21ad0f69] {
1653
1653
  max-height: 220px;
1654
1654
  overflow-y: auto;
1655
1655
  padding-right: 4px;
1656
1656
  }
1657
- .show-more-toggle[data-v-eefd4750] {
1657
+ .show-more-toggle[data-v-21ad0f69] {
1658
1658
  font-size: 12px;
1659
1659
  color: var(--sd-ui-action, #1355ff);
1660
1660
  cursor: pointer;
@@ -1662,12 +1662,12 @@ img[data-v-c95b2073] {
1662
1662
  margin-top: 4px;
1663
1663
  user-select: none;
1664
1664
  }
1665
- .show-more-toggle[data-v-eefd4750]:hover {
1665
+ .show-more-toggle[data-v-21ad0f69]:hover {
1666
1666
  text-decoration: underline;
1667
1667
  }
1668
1668
 
1669
1669
  /* ── Thread collapse ── */
1670
- .collapsed-replies[data-v-eefd4750] {
1670
+ .collapsed-replies[data-v-21ad0f69] {
1671
1671
  display: flex;
1672
1672
  align-items: center;
1673
1673
  gap: 6px;
@@ -1678,24 +1678,24 @@ img[data-v-c95b2073] {
1678
1678
  cursor: pointer;
1679
1679
  user-select: none;
1680
1680
  }
1681
- .collapsed-replies[data-v-eefd4750]:hover {
1681
+ .collapsed-replies[data-v-21ad0f69]:hover {
1682
1682
  text-decoration: underline;
1683
1683
  }
1684
- .collapsed-avatars[data-v-eefd4750] {
1684
+ .collapsed-avatars[data-v-21ad0f69] {
1685
1685
  display: flex;
1686
1686
  }
1687
- .collapsed-avatars .mini-avatar[data-v-eefd4750] {
1687
+ .collapsed-avatars .mini-avatar[data-v-21ad0f69] {
1688
1688
  --sd-comment-avatar-size: 20px;
1689
1689
  --sd-comment-avatar-font-size: 8px;
1690
1690
  margin-left: -4px;
1691
1691
  border: 2px solid var(--sd-ui-comments-card-active-bg, #ffffff);
1692
1692
  }
1693
- .collapsed-avatars .mini-avatar[data-v-eefd4750]:first-child {
1693
+ .collapsed-avatars .mini-avatar[data-v-21ad0f69]:first-child {
1694
1694
  margin-left: 0;
1695
1695
  }
1696
1696
 
1697
1697
  /* ── New comment input ── */
1698
- .new-comment-input-wrapper[data-v-eefd4750] {
1698
+ .new-comment-input-wrapper[data-v-21ad0f69] {
1699
1699
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1700
1700
  border-radius: 12px;
1701
1701
  padding: 8.5px 10.5px;
@@ -1704,17 +1704,17 @@ img[data-v-c95b2073] {
1704
1704
  max-height: 150px;
1705
1705
  overflow: visible;
1706
1706
  }
1707
- .new-comment-input-wrapper[data-v-eefd4750]:focus-within {
1707
+ .new-comment-input-wrapper[data-v-21ad0f69]:focus-within {
1708
1708
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1709
1709
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1710
1710
  }
1711
- .new-comment-input-wrapper[data-v-eefd4750] .comment-entry {
1711
+ .new-comment-input-wrapper[data-v-21ad0f69] .comment-entry {
1712
1712
  border-radius: 0;
1713
1713
  }
1714
- .new-comment-input-wrapper[data-v-eefd4750] .input-section {
1714
+ .new-comment-input-wrapper[data-v-21ad0f69] .input-section {
1715
1715
  margin: 0;
1716
1716
  }
1717
- .new-comment-input-wrapper[data-v-eefd4750] .superdoc-field {
1717
+ .new-comment-input-wrapper[data-v-21ad0f69] .superdoc-field {
1718
1718
  font-size: 14px;
1719
1719
  line-height: 20px;
1720
1720
  border: none;
@@ -1725,18 +1725,18 @@ img[data-v-c95b2073] {
1725
1725
  max-height: 132px;
1726
1726
  resize: none;
1727
1727
  }
1728
- .new-comment-input-wrapper[data-v-eefd4750] .superdoc-field:focus,
1729
- .new-comment-input-wrapper[data-v-eefd4750] .superdoc-field:active {
1728
+ .new-comment-input-wrapper[data-v-21ad0f69] .superdoc-field:focus,
1729
+ .new-comment-input-wrapper[data-v-21ad0f69] .superdoc-field:active {
1730
1730
  border: none;
1731
1731
  box-shadow: none;
1732
1732
  outline: none;
1733
1733
  }
1734
- .new-comment-input-wrapper[data-v-eefd4750] .sd-editor-placeholder::before {
1734
+ .new-comment-input-wrapper[data-v-21ad0f69] .sd-editor-placeholder::before {
1735
1735
  content: 'Comment or add others with @';
1736
1736
  }
1737
1737
 
1738
1738
  /* ── Reply pill & expanded input ── */
1739
- .reply-pill[data-v-eefd4750] {
1739
+ .reply-pill[data-v-21ad0f69] {
1740
1740
  width: 100%;
1741
1741
  padding: 8.5px 10.5px;
1742
1742
  border: 1.5px solid transparent;
@@ -1750,16 +1750,16 @@ img[data-v-c95b2073] {
1750
1750
  cursor: text;
1751
1751
  transition: background 150ms ease;
1752
1752
  }
1753
- .reply-pill[data-v-eefd4750]:hover {
1753
+ .reply-pill[data-v-21ad0f69]:hover {
1754
1754
  background: var(--sd-color-gray-200, #f2f2f2);
1755
1755
  }
1756
- .reply-pill[data-v-eefd4750]:disabled {
1756
+ .reply-pill[data-v-21ad0f69]:disabled {
1757
1757
  cursor: not-allowed;
1758
1758
  }
1759
- .reply-expanded[data-v-eefd4750] {
1759
+ .reply-expanded[data-v-21ad0f69] {
1760
1760
  margin-top: 10px;
1761
1761
  }
1762
- .reply-input-wrapper[data-v-eefd4750] {
1762
+ .reply-input-wrapper[data-v-21ad0f69] {
1763
1763
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1764
1764
  border-radius: 12px;
1765
1765
  padding: 8.5px 10.5px;
@@ -1767,17 +1767,17 @@ img[data-v-c95b2073] {
1767
1767
  max-height: 150px;
1768
1768
  overflow: visible;
1769
1769
  }
1770
- .reply-input-wrapper[data-v-eefd4750]:focus-within {
1770
+ .reply-input-wrapper[data-v-21ad0f69]:focus-within {
1771
1771
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1772
1772
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1773
1773
  }
1774
- .reply-input-wrapper[data-v-eefd4750] .comment-entry {
1774
+ .reply-input-wrapper[data-v-21ad0f69] .comment-entry {
1775
1775
  border-radius: 0;
1776
1776
  }
1777
- .reply-input-wrapper[data-v-eefd4750] .input-section {
1777
+ .reply-input-wrapper[data-v-21ad0f69] .input-section {
1778
1778
  margin: 0;
1779
1779
  }
1780
- .reply-input-wrapper[data-v-eefd4750] .superdoc-field {
1780
+ .reply-input-wrapper[data-v-21ad0f69] .superdoc-field {
1781
1781
  font-size: 14px;
1782
1782
  line-height: 20px;
1783
1783
  border: none;
@@ -1788,23 +1788,23 @@ img[data-v-c95b2073] {
1788
1788
  max-height: 132px;
1789
1789
  resize: none;
1790
1790
  }
1791
- .reply-input-wrapper[data-v-eefd4750] .superdoc-field:focus,
1792
- .reply-input-wrapper[data-v-eefd4750] .superdoc-field:active {
1791
+ .reply-input-wrapper[data-v-21ad0f69] .superdoc-field:focus,
1792
+ .reply-input-wrapper[data-v-21ad0f69] .superdoc-field:active {
1793
1793
  border: none;
1794
1794
  box-shadow: none;
1795
1795
  outline: none;
1796
1796
  }
1797
- .reply-input-wrapper[data-v-eefd4750] .sd-editor-placeholder::before {
1797
+ .reply-input-wrapper[data-v-21ad0f69] .sd-editor-placeholder::before {
1798
1798
  content: 'Reply or add others with @';
1799
1799
  }
1800
- .reply-actions[data-v-eefd4750] {
1800
+ .reply-actions[data-v-21ad0f69] {
1801
1801
  display: flex;
1802
1802
  justify-content: flex-end;
1803
1803
  align-items: center;
1804
1804
  gap: 16px;
1805
1805
  margin-top: 8px;
1806
1806
  }
1807
- .reply-btn-cancel[data-v-eefd4750] {
1807
+ .reply-btn-cancel[data-v-21ad0f69] {
1808
1808
  background: none;
1809
1809
  border: none;
1810
1810
  font-size: 13px;
@@ -1815,10 +1815,10 @@ img[data-v-c95b2073] {
1815
1815
  font-family: inherit;
1816
1816
  transition: color 150ms;
1817
1817
  }
1818
- .reply-btn-cancel[data-v-eefd4750]:hover {
1818
+ .reply-btn-cancel[data-v-21ad0f69]:hover {
1819
1819
  color: var(--sd-ui-text, #212121);
1820
1820
  }
1821
- .reply-btn-primary[data-v-eefd4750] {
1821
+ .reply-btn-primary[data-v-21ad0f69] {
1822
1822
  background: var(--sd-ui-action, #1355ff);
1823
1823
  border: none;
1824
1824
  font-size: 13px;
@@ -1830,19 +1830,19 @@ img[data-v-c95b2073] {
1830
1830
  font-family: inherit;
1831
1831
  transition: background 150ms;
1832
1832
  }
1833
- .reply-btn-primary[data-v-eefd4750]:hover {
1833
+ .reply-btn-primary[data-v-21ad0f69]:hover {
1834
1834
  background: var(--sd-ui-action-hover, #0f44cc);
1835
1835
  }
1836
- .reply-btn-primary.sd-is-disabled[data-v-eefd4750] {
1836
+ .reply-btn-primary.sd-is-disabled[data-v-21ad0f69] {
1837
1837
  background: var(--sd-color-gray-400, #dbdbdb);
1838
1838
  color: var(--sd-color-gray-600, #888888);
1839
1839
  cursor: default;
1840
1840
  pointer-events: none;
1841
1841
  }
1842
- .existing-internal-input[data-v-eefd4750] {
1842
+ .existing-internal-input[data-v-21ad0f69] {
1843
1843
  margin-bottom: 10px;
1844
1844
  }
1845
- .sd-internal-dropdown[data-v-eefd4750] {
1845
+ .sd-internal-dropdown[data-v-21ad0f69] {
1846
1846
  display: inline-block;
1847
1847
  }
1848
1848
 
@@ -1891,28 +1891,28 @@ img[data-v-c95b2073] {
1891
1891
  background-color: #1355ff7f;
1892
1892
  }
1893
1893
 
1894
- .comment-placeholder[data-v-8262096d] {
1894
+ .comment-placeholder[data-v-15b59a51] {
1895
1895
  position: absolute;
1896
1896
  width: 300px;
1897
1897
  transition: top 0.3s ease;
1898
1898
  }
1899
- .comment-placeholder.is-direct-decision-continuity-target[data-v-8262096d] .overflow-menu {
1899
+ .comment-placeholder.is-direct-decision-continuity-target[data-v-15b59a51] .overflow-menu {
1900
1900
  opacity: 1;
1901
1901
  pointer-events: auto;
1902
1902
  }
1903
- .floating-comment[data-v-8262096d] {
1903
+ .floating-comment[data-v-15b59a51] {
1904
1904
  position: relative;
1905
1905
  display: block;
1906
1906
  min-width: 300px;
1907
1907
  }
1908
- .sidebar-container[data-v-8262096d] {
1908
+ .sidebar-container[data-v-15b59a51] {
1909
1909
  position: absolute;
1910
1910
  width: 300px;
1911
1911
  min-height: 300px;
1912
1912
  transition: transform 0.3s ease;
1913
1913
  will-change: transform;
1914
1914
  }
1915
- .section-wrapper[data-v-8262096d] {
1915
+ .section-wrapper[data-v-15b59a51] {
1916
1916
  position: relative;
1917
1917
  min-height: 100%;
1918
1918
  width: 300px;
@@ -1,15 +1,12 @@
1
- export function isPersistentReviewSidebarItem(comment: any): boolean;
2
1
  export function normalizeFloatingAnchorTop(top: any): any;
3
2
  export function isAnchorOutsideFloatingViewport(anchorTop: any, viewportTop: any, viewportBottom: any, anchorBottom?: any): boolean;
4
- export function shouldKeepPersistentReviewCardAtAnchor({ comment, anchorTop, anchorBottom, viewportTop, viewportBottom, }: {
5
- comment: any;
3
+ export function shouldKeepFloatingCardAtAnchor({ anchorTop, anchorBottom, viewportTop, viewportBottom }: {
6
4
  anchorTop: any;
7
5
  anchorBottom: any;
8
6
  viewportTop: any;
9
7
  viewportBottom: any;
10
8
  }): boolean;
11
- export function resolvePersistentReviewCardTop({ comment, anchorTop, anchorBottom, cardHeight, viewportTop, viewportBottom, }: {
12
- comment: any;
9
+ export function resolveOffscreenFloatingCardTop({ anchorTop, anchorBottom, cardHeight, viewportTop, viewportBottom, }: {
13
10
  anchorTop: any;
14
11
  anchorBottom: any;
15
12
  cardHeight: any;
package/dist/superdoc.cjs CHANGED
@@ -316,7 +316,7 @@ var shuffleArray = (array) => {
316
316
  var DEFAULT_ENDPOINT = "https://ingest.superdoc.dev/v1/collect";
317
317
  function getSuperdocVersion() {
318
318
  try {
319
- return "2.22.0";
319
+ return "2.22.1-next.2";
320
320
  } catch {
321
321
  return "unknown";
322
322
  }
@@ -13630,7 +13630,6 @@ var _sfc_main$34 = {
13630
13630
  const isTrackedChange = Boolean(props.comment?.trackedChange);
13631
13631
  const targetClientY = getPreferredCommentFocusTargetClientY();
13632
13632
  const isInstanceScopedDialog = props.floatingInstanceId != null;
13633
- const currentDialogTop = commentDialogElement.value?.getBoundingClientRect?.().top;
13634
13633
  const willChangeActiveDialog = !props.comment.resolvedTime && (activeComment.value !== props.comment.commentId || isInstanceScopedDialog && currentFloatingInstanceId.value !== activeFloatingCommentInstanceId.value);
13635
13634
  let instantAlignmentTargetY = targetClientY;
13636
13635
  if (v2Adapter) {
@@ -13649,8 +13648,13 @@ var _sfc_main$34 = {
13649
13648
  if (props.floatingInstanceId) setActiveFloatingCommentInstance(props.floatingInstanceId);
13650
13649
  }
13651
13650
  if (willChangeActiveDialog && !isInstanceScopedDialog) requestInstantSidebarAlignment(targetClientY, props.comment.commentId, props.floatingInstanceId ?? null);
13652
- else if (willChangeActiveDialog && Number.isFinite(currentDialogTop)) requestInstantSidebarAlignment(currentDialogTop, props.comment.commentId, props.floatingInstanceId);
13653
- else clearInstantSidebarAlignment();
13651
+ else if (isInstanceScopedDialog && !props.comment.resolvedTime) {
13652
+ await require__plugin_vue_export_helper.nextTick();
13653
+ const { entry } = resolveCommentPositionEntry(props.comment);
13654
+ const anchorClientY = getVisibleThreadAnchorClientY(props.parent, props.floatingPositionEntry ?? entry);
13655
+ if (Number.isFinite(anchorClientY)) requestInstantSidebarAlignment(anchorClientY, props.comment.commentId, props.floatingInstanceId);
13656
+ else clearInstantSidebarAlignment();
13657
+ } else clearInstantSidebarAlignment();
13654
13658
  return result;
13655
13659
  }
13656
13660
  if (editor) {
@@ -14343,7 +14347,7 @@ var _sfc_main$34 = {
14343
14347
  };
14344
14348
  }
14345
14349
  };
14346
- var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$34, [["__scopeId", "data-v-eefd4750"]]);
14350
+ var CommentDialog_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$34, [["__scopeId", "data-v-21ad0f69"]]);
14347
14351
  //#endregion
14348
14352
  //#region src/components/CommentsLayer/commentsList/ReviewDirectoryListItem.vue
14349
14353
  var _hoisted_1$26 = [
@@ -15069,9 +15073,6 @@ var composeAuthorColorResolver = (config) => {
15069
15073
  };
15070
15074
  //#endregion
15071
15075
  //#region src/components/CommentsLayer/floating-comment-positioning.js
15072
- var isPersistentReviewSidebarItem = (comment) => {
15073
- return Boolean(comment?.trackedChange);
15074
- };
15075
15076
  var normalizeFloatingAnchorTop = (top) => {
15076
15077
  return top;
15077
15078
  };
@@ -15079,12 +15080,11 @@ var isAnchorOutsideFloatingViewport = (anchorTop, viewportTop, viewportBottom, a
15079
15080
  if (!Number.isFinite(anchorTop) || !Number.isFinite(viewportTop) || !Number.isFinite(viewportBottom)) return false;
15080
15081
  return (Number.isFinite(anchorBottom) ? anchorBottom : anchorTop) < viewportTop || anchorTop > viewportBottom;
15081
15082
  };
15082
- var shouldKeepPersistentReviewCardAtAnchor = ({ comment, anchorTop, anchorBottom, viewportTop, viewportBottom }) => {
15083
- return isPersistentReviewSidebarItem(comment) && isAnchorOutsideFloatingViewport(anchorTop, viewportTop, viewportBottom, anchorBottom);
15083
+ var shouldKeepFloatingCardAtAnchor = ({ anchorTop, anchorBottom, viewportTop, viewportBottom }) => {
15084
+ return isAnchorOutsideFloatingViewport(anchorTop, viewportTop, viewportBottom, anchorBottom);
15084
15085
  };
15085
- var resolvePersistentReviewCardTop = ({ comment, anchorTop, anchorBottom, cardHeight, viewportTop, viewportBottom }) => {
15086
- if (!shouldKeepPersistentReviewCardAtAnchor({
15087
- comment,
15086
+ var resolveOffscreenFloatingCardTop = ({ anchorTop, anchorBottom, cardHeight, viewportTop, viewportBottom }) => {
15087
+ if (!shouldKeepFloatingCardAtAnchor({
15088
15088
  anchorTop,
15089
15089
  anchorBottom,
15090
15090
  viewportTop,
@@ -15169,11 +15169,6 @@ var _sfc_main$31 = {
15169
15169
  positions[i].top = Math.min(positions[i].anchorTop, bottomEdge);
15170
15170
  cursor = positions[i].top - gap;
15171
15171
  }
15172
- const minTop = Math.min(...positions.map((p) => p.top));
15173
- if (minTop < 0) {
15174
- const shift = Math.abs(minTop);
15175
- for (const p of positions) p.top += shift;
15176
- }
15177
15172
  } else for (let i = 1; i < positions.length; i++) {
15178
15173
  const prev = positions[i - 1];
15179
15174
  const minTop = prev.top + prev.height + gap;
@@ -15431,8 +15426,7 @@ var _sfc_main$31 = {
15431
15426
  positions.sort((a, b) => a.anchorTop - b.anchorTop);
15432
15427
  const collisionPositions = [];
15433
15428
  for (const position of positions) {
15434
- const offscreenTop = position.hasAnchorGeometry ? resolvePersistentReviewCardTop({
15435
- comment: position.commentRef,
15429
+ const offscreenTop = position.hasAnchorGeometry ? resolveOffscreenFloatingCardTop({
15436
15430
  anchorTop: position.anchorTop,
15437
15431
  anchorBottom: position.anchorBottom,
15438
15432
  cardHeight: position.height,
@@ -15643,6 +15637,9 @@ var _sfc_main$31 = {
15643
15637
  releaseDecisionContinuityForOwnerScroll();
15644
15638
  refreshViewportWindow();
15645
15639
  };
15640
+ const handleDocumentScroll = (event) => {
15641
+ if (event.target instanceof Element && event.target.matches(".superdoc__sub-document")) handleOwnerScroll();
15642
+ };
15646
15643
  const registerOwnerScrollListeners = () => {
15647
15644
  const addTarget = (target) => {
15648
15645
  if (!target?.addEventListener || ownerScrollTargets.has(target)) return;
@@ -15650,10 +15647,15 @@ var _sfc_main$31 = {
15650
15647
  ownerScrollTargets.add(target);
15651
15648
  };
15652
15649
  addTarget(props.parent);
15650
+ props.parent?.addEventListener?.("scroll", handleDocumentScroll, {
15651
+ passive: true,
15652
+ capture: true
15653
+ });
15653
15654
  for (let ancestor = floatingCommentsContainer.value?.parentElement; ancestor; ancestor = ancestor.parentElement) if (SCROLL_OWNER_OVERFLOW_VALUES.has(window.getComputedStyle(ancestor).overflowY)) addTarget(ancestor);
15654
15655
  addTarget(window);
15655
15656
  };
15656
15657
  const unregisterOwnerScrollListeners = () => {
15658
+ props.parent?.removeEventListener?.("scroll", handleDocumentScroll, true);
15657
15659
  for (const target of ownerScrollTargets) target.removeEventListener?.("scroll", handleOwnerScroll);
15658
15660
  ownerScrollTargets.clear();
15659
15661
  };
@@ -15816,14 +15818,16 @@ var _sfc_main$31 = {
15816
15818
  }
15817
15819
  });
15818
15820
  let prevPositionIds = /* @__PURE__ */ new Set();
15821
+ let prevActiveInstanceId = null;
15819
15822
  let prevActiveAnchorTop = null;
15820
15823
  let prevActiveLayoutTop = null;
15821
15824
  require__plugin_vue_export_helper.watch(allPositions, (positions) => {
15822
15825
  const activePosition = activeCommentInstanceId.value ? positions.find((position) => position.id === activeCommentInstanceId.value) : null;
15823
15826
  const activeAnchorTop = typeof activePosition?.anchorTop === "number" && Number.isFinite(activePosition.anchorTop) ? activePosition.anchorTop : null;
15824
- const activeAnchorMoved = activeAnchorTop != null && prevActiveAnchorTop != null && Math.abs(activeAnchorTop - prevActiveAnchorTop) > 1;
15827
+ const sameActiveInstance = activeCommentInstanceId.value === prevActiveInstanceId;
15828
+ const activeAnchorMoved = sameActiveInstance && activeAnchorTop != null && prevActiveAnchorTop != null && Math.abs(activeAnchorTop - prevActiveAnchorTop) > 1;
15825
15829
  const activeLayoutTop = typeof activePosition?.top === "number" && Number.isFinite(activePosition.top) ? activePosition.top : null;
15826
- const activeLayoutMoved = activeLayoutTop != null && prevActiveLayoutTop != null && Math.abs(activeLayoutTop - prevActiveLayoutTop) > 1;
15830
+ const activeLayoutMoved = sameActiveInstance && activeLayoutTop != null && prevActiveLayoutTop != null && Math.abs(activeLayoutTop - prevActiveLayoutTop) > 1;
15827
15831
  if (activeAnchorMoved && sidebarOffsetY.value !== 0 && !Number.isFinite(instantSidebarAlignmentTargetY.value)) {
15828
15832
  sidebarOffsetY.value = 0;
15829
15833
  setInstantLayoutTransitionsDisabled(false);
@@ -15836,6 +15840,7 @@ var _sfc_main$31 = {
15836
15840
  if (!sidebarContinuityAnchor && !Number.isFinite(instantSidebarAlignmentTargetY.value)) setInstantLayoutTransitionsDisabled(false);
15837
15841
  });
15838
15842
  }
15843
+ prevActiveInstanceId = activeCommentInstanceId.value;
15839
15844
  prevActiveAnchorTop = activeAnchorTop;
15840
15845
  prevActiveLayoutTop = activeLayoutTop;
15841
15846
  const positionOrder = positions.map((position) => position.id);
@@ -15996,7 +16001,7 @@ var _sfc_main$31 = {
15996
16001
  };
15997
16002
  }
15998
16003
  };
15999
- var FloatingComments_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$31, [["__scopeId", "data-v-8262096d"]]);
16004
+ var FloatingComments_default = /*#__PURE__*/ require__plugin_vue_export_helper._plugin_vue_export_helper_default(_sfc_main$31, [["__scopeId", "data-v-15b59a51"]]);
16000
16005
  //#endregion
16001
16006
  //#region src/components/CommentsLayer/PdfCommentsLayer.vue
16002
16007
  var _hoisted_1$23 = {
@@ -46382,7 +46387,7 @@ var SuperDoc = class extends require_eventemitter3.import_eventemitter3.default
46382
46387
  this.config.colors = shuffleArray(this.config.colors);
46383
46388
  this.userColorMap = /* @__PURE__ */ new Map();
46384
46389
  this.colorIndex = 0;
46385
- this.version = "2.22.0";
46390
+ this.version = "2.22.1-next.2";
46386
46391
  this.#log("🦋 [superdoc] Using SuperDoc version:", this.version);
46387
46392
  this.superdocId = config.superdocId || require_uuid.v4();
46388
46393
  this.colors = this.config.colors ?? [];