superdoc 2.24.0-next.1 → 2.24.0-next.11

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 (68) hide show
  1. package/dist/chunks/{create-super-doc-ui-DFNXiKvQ.es.js → create-super-doc-ui-8UTu16Lw.es.js} +229 -82
  2. package/dist/chunks/{create-super-doc-ui-D_FbXpOQ.cjs → create-super-doc-ui-bTFGKVRb.cjs} +229 -82
  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/authorities/authorities.types.d.ts +2 -0
  6. package/dist/document-api/src/bookmarks/bookmarks.types.d.ts +1 -0
  7. package/dist/document-api/src/capabilities/html-markdown-support.d.ts +2 -4
  8. package/dist/document-api/src/captions/captions.types.d.ts +1 -0
  9. package/dist/document-api/src/citations/citations.types.d.ts +2 -0
  10. package/dist/document-api/src/content-controls/content-controls.types.d.ts +1 -0
  11. package/dist/document-api/src/contract/command-catalog.d.ts +1 -1
  12. package/dist/document-api/src/contract/operation-definitions.d.ts +34 -6
  13. package/dist/document-api/src/cross-refs/cross-refs.types.d.ts +1 -0
  14. package/dist/document-api/src/fields/fields.types.d.ts +1 -0
  15. package/dist/document-api/src/footnotes/footnotes.types.d.ts +2 -0
  16. package/dist/document-api/src/get/get.d.ts +2 -1
  17. package/dist/document-api/src/hyperlinks/hyperlinks.types.d.ts +1 -0
  18. package/dist/document-api/src/images/images.types.d.ts +2 -0
  19. package/dist/document-api/src/index/index.types.d.ts +2 -0
  20. package/dist/document-api/src/index.d.ts +15 -12
  21. package/dist/document-api/src/inline-semantics/token-sets.d.ts +11 -0
  22. package/dist/document-api/src/insert/insert.d.ts +7 -1
  23. package/dist/document-api/src/lists/lists.types.d.ts +10 -0
  24. package/dist/document-api/src/paragraphs/paragraphs.types.d.ts +3 -0
  25. package/dist/document-api/src/receipt-bridge.d.ts +1 -0
  26. package/dist/document-api/src/replace/replace.d.ts +31 -4
  27. package/dist/document-api/src/sections/sections.types.d.ts +4 -1
  28. package/dist/document-api/src/selection/selection.d.ts +9 -2
  29. package/dist/document-api/src/selection/selection.types.d.ts +57 -8
  30. package/dist/document-api/src/styles/apply.d.ts +5 -0
  31. package/dist/document-api/src/styles/catalog.d.ts +40 -19
  32. package/dist/document-api/src/styles/create.d.ts +160 -0
  33. package/dist/document-api/src/styles/index.d.ts +8 -4
  34. package/dist/document-api/src/styles/registry.d.ts +34 -2
  35. package/dist/document-api/src/styles/schema.d.ts +24 -5
  36. package/dist/document-api/src/styles/theme.d.ts +32 -0
  37. package/dist/document-api/src/styles/validation.d.ts +11 -2
  38. package/dist/document-api/src/templates/apply.d.ts +13 -15
  39. package/dist/document-api/src/toc/toc.types.d.ts +3 -0
  40. package/dist/document-api/src/types/blocks.types.d.ts +6 -1
  41. package/dist/document-api/src/types/create.types.d.ts +3 -1
  42. package/dist/document-api/src/types/fragment.d.ts +3 -0
  43. package/dist/document-api/src/types/mutation-plan.types.d.ts +4 -0
  44. package/dist/document-api/src/types/query-match.types.d.ts +43 -5
  45. package/dist/document-api/src/types/receipt.d.ts +8 -0
  46. package/dist/document-api/src/types/sd-contract.d.ts +2 -0
  47. package/dist/document-api/src/types/sd-props.d.ts +54 -14
  48. package/dist/document-api/src/types/sd-styles.d.ts +58 -3
  49. package/dist/document-api/src/types/table-operations.types.d.ts +2 -0
  50. package/dist/document-api/src/write/write.d.ts +4 -2
  51. package/dist/public/ui-react.cjs +1 -1
  52. package/dist/public/ui-react.es.js +1 -1
  53. package/dist/public/ui-vue.cjs +1 -1
  54. package/dist/public/ui-vue.es.js +1 -1
  55. package/dist/public/ui.cjs +1 -1
  56. package/dist/public/ui.es.js +1 -1
  57. package/dist/style.css +87 -87
  58. package/dist/style.layered.css +87 -87
  59. package/dist/superdoc/src/core/editor-runtime/v2/v2-session-shortcut-routes.d.ts +2 -0
  60. package/dist/superdoc/src/public/ui/types.d.ts +22 -0
  61. package/dist/superdoc/src/public/ui.d.cts +4 -0
  62. package/dist/superdoc/src/public/ui.d.ts +1 -1
  63. package/dist/superdoc.cjs +110 -49
  64. package/dist/superdoc.es.js +110 -49
  65. package/dist-cdn/style.layered.css +1 -1
  66. package/dist-cdn/superdoc.min.css +1 -1
  67. package/dist-cdn/superdoc.min.js +42 -42
  68. package/package.json +2 -2
@@ -1496,7 +1496,7 @@ img[data-v-c95b2073] {
1496
1496
  font-size: 11px;
1497
1497
  }
1498
1498
 
1499
- .comments-dialog[data-v-c189ab35] {
1499
+ .comments-dialog[data-v-5ace8cef] {
1500
1500
  display: flex;
1501
1501
  flex-direction: column;
1502
1502
  padding: var(--sd-ui-comments-card-padding, 16px);
@@ -1515,79 +1515,79 @@ img[data-v-c95b2073] {
1515
1515
  overflow-wrap: break-word;
1516
1516
  word-break: break-word;
1517
1517
  }
1518
- .comments-dialog[data-v-c189ab35]:not(.is-active) {
1518
+ .comments-dialog[data-v-5ace8cef]:not(.is-active) {
1519
1519
  cursor: pointer;
1520
1520
  }
1521
- .comments-dialog[data-v-c189ab35]:not(.is-active):not(.is-resolved):hover {
1521
+ .comments-dialog[data-v-5ace8cef]:not(.is-active):not(.is-resolved):hover {
1522
1522
  background-color: var(--sd-ui-comments-card-hover-bg, #f3f6fd);
1523
1523
  }
1524
- .comments-dialog[data-v-c189ab35]:not(.is-resolved):hover .overflow-menu {
1524
+ .comments-dialog[data-v-5ace8cef]:not(.is-resolved):hover .overflow-menu {
1525
1525
  opacity: 1;
1526
1526
  pointer-events: auto;
1527
1527
  }
1528
- .comments-dialog.is-active[data-v-c189ab35] {
1528
+ .comments-dialog.is-active[data-v-5ace8cef] {
1529
1529
  background-color: var(--sd-ui-comments-card-active-bg, #ffffff);
1530
1530
  border-color: var(--sd-ui-comments-card-active-border, #e0e0e0);
1531
1531
  box-shadow: var(--sd-ui-comments-card-shadow, 0px 4px 12px 0px rgba(50, 50, 50, 0.15));
1532
1532
  z-index: 10;
1533
1533
  }
1534
- .comments-dialog.is-resolved[data-v-c189ab35] {
1534
+ .comments-dialog.is-resolved[data-v-5ace8cef] {
1535
1535
  background-color: var(--sd-ui-comments-card-resolved-bg, #f0f0f0);
1536
1536
  }
1537
- .comment-separator[data-v-c189ab35] {
1537
+ .comment-separator[data-v-5ace8cef] {
1538
1538
  background-color: var(--sd-ui-comments-separator, #e0e0e0);
1539
1539
  height: 1px;
1540
1540
  width: 100%;
1541
1541
  margin: 10px 0;
1542
1542
  }
1543
- .comment[data-v-c189ab35] {
1543
+ .comment[data-v-5ace8cef] {
1544
1544
  font-size: var(--sd-ui-comments-body-size, 14px);
1545
1545
  line-height: 1.5;
1546
1546
  white-space: pre-wrap;
1547
1547
  color: var(--sd-ui-comments-body-text, #212121);
1548
1548
  margin: 4px 0 0 0;
1549
1549
  }
1550
- .comment[data-v-c189ab35] p {
1550
+ .comment[data-v-5ace8cef] p {
1551
1551
  margin: 0;
1552
1552
  }
1553
- .comment[data-v-c189ab35] a {
1553
+ .comment[data-v-5ace8cef] a {
1554
1554
  color: var(--sd-ui-action, #1354ff);
1555
1555
  text-decoration: underline;
1556
1556
  }
1557
- .tracked-change[data-v-c189ab35] {
1557
+ .tracked-change[data-v-5ace8cef] {
1558
1558
  font-size: var(--sd-ui-comments-body-size, 14px);
1559
1559
  line-height: 1.5;
1560
1560
  color: var(--sd-ui-comments-body-text, #212121);
1561
1561
  margin: 4px 0 0 0;
1562
1562
  }
1563
- .change-type[data-v-c189ab35] {
1563
+ .change-type[data-v-5ace8cef] {
1564
1564
  color: var(--sd-ui-comments-body-text, #212121);
1565
1565
  }
1566
- .tracked-change-text[data-v-c189ab35] {
1566
+ .tracked-change-text[data-v-5ace8cef] {
1567
1567
  color: var(--sd-ui-comments-body-text, #212121);
1568
1568
  white-space: pre-wrap;
1569
1569
  }
1570
- .tracked-change-text.is-deleted[data-v-c189ab35] {
1570
+ .tracked-change-text.is-deleted[data-v-5ace8cef] {
1571
1571
  color: var(--sd-ui-comments-delete-text, #cb0e47);
1572
1572
  }
1573
- .tracked-change-text.is-inserted[data-v-c189ab35] {
1573
+ .tracked-change-text.is-inserted[data-v-5ace8cef] {
1574
1574
  color: var(--sd-ui-comments-insert-text, #1f6feb);
1575
1575
  font-weight: 500;
1576
1576
  }
1577
- .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-c189ab35] {
1577
+ .tracked-change[data-track-change-semantic-color-key='move-from'] .tracked-change-text.is-deleted[data-v-5ace8cef] {
1578
1578
  color: var(--sd-ui-comments-move-from-text, #00853d);
1579
1579
  }
1580
- .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-c189ab35] {
1580
+ .tracked-change[data-track-change-semantic-color-key='move-to'] .tracked-change-text.is-inserted[data-v-5ace8cef] {
1581
1581
  color: var(--sd-ui-comments-move-to-text, #00853d);
1582
1582
  }
1583
- .tracked-change-detail-lines[data-v-c189ab35] {
1583
+ .tracked-change-detail-lines[data-v-5ace8cef] {
1584
1584
  margin-top: 4px;
1585
1585
  }
1586
- .tracked-change-detail-line[data-v-c189ab35] {
1586
+ .tracked-change-detail-line[data-v-5ace8cef] {
1587
1587
  font-size: 12px;
1588
1588
  line-height: 1.4;
1589
1589
  }
1590
- .tracked-change-image-preview[data-v-c189ab35] {
1590
+ .tracked-change-image-preview[data-v-5ace8cef] {
1591
1591
  display: inline-flex;
1592
1592
  align-items: center;
1593
1593
  justify-content: center;
@@ -1598,7 +1598,7 @@ img[data-v-c95b2073] {
1598
1598
  max-width: 96px;
1599
1599
  max-height: 96px;
1600
1600
  }
1601
- .tracked-change-image-preview__image[data-v-c189ab35] {
1601
+ .tracked-change-image-preview__image[data-v-5ace8cef] {
1602
1602
  display: block;
1603
1603
  width: auto;
1604
1604
  height: auto;
@@ -1608,7 +1608,7 @@ img[data-v-c95b2073] {
1608
1608
  }
1609
1609
 
1610
1610
  /* ── Failed tracked-change decision alert (SD-3772 §6) ── */
1611
- .tracked-change-decision-alert[data-v-c189ab35] {
1611
+ .tracked-change-decision-alert[data-v-5ace8cef] {
1612
1612
  display: flex;
1613
1613
  align-items: center;
1614
1614
  justify-content: space-between;
@@ -1622,12 +1622,12 @@ img[data-v-c95b2073] {
1622
1622
  font-size: var(--sd-ui-comments-body-size, 14px);
1623
1623
  line-height: 1.4;
1624
1624
  }
1625
- .tracked-change-decision-alert__retry[data-v-c189ab35] {
1625
+ .tracked-change-decision-alert__retry[data-v-5ace8cef] {
1626
1626
  flex-shrink: 0;
1627
1627
  }
1628
1628
 
1629
1629
  /* ── Resolved badge ── */
1630
- .resolved-badge[data-v-c189ab35] {
1630
+ .resolved-badge[data-v-5ace8cef] {
1631
1631
  display: inline-flex;
1632
1632
  align-items: center;
1633
1633
  gap: 4px;
@@ -1636,33 +1636,33 @@ img[data-v-c95b2073] {
1636
1636
  color: var(--sd-ui-comments-resolved-text, #00853d);
1637
1637
  margin-bottom: 4px;
1638
1638
  }
1639
- .resolved-badge__icon[data-v-c189ab35] {
1639
+ .resolved-badge__icon[data-v-5ace8cef] {
1640
1640
  display: inline-flex;
1641
1641
  width: 12px;
1642
1642
  height: 12px;
1643
1643
  }
1644
- .resolved-badge__icon[data-v-c189ab35] svg {
1644
+ .resolved-badge__icon[data-v-5ace8cef] svg {
1645
1645
  width: 100%;
1646
1646
  height: 100%;
1647
1647
  fill: currentColor;
1648
1648
  }
1649
1649
 
1650
1650
  /* ── Text truncation ── */
1651
- .comment.is-truncated[data-v-c189ab35],
1652
- .tracked-change.is-truncated[data-v-c189ab35] {
1651
+ .comment.is-truncated[data-v-5ace8cef],
1652
+ .tracked-change.is-truncated[data-v-5ace8cef] {
1653
1653
  display: -webkit-box;
1654
1654
  -webkit-line-clamp: 3;
1655
1655
  -webkit-box-orient: vertical;
1656
1656
  max-height: 4.5em;
1657
1657
  overflow: hidden;
1658
1658
  }
1659
- .comment.is-scrollable[data-v-c189ab35],
1660
- .tracked-change.is-scrollable[data-v-c189ab35] {
1659
+ .comment.is-scrollable[data-v-5ace8cef],
1660
+ .tracked-change.is-scrollable[data-v-5ace8cef] {
1661
1661
  max-height: 220px;
1662
1662
  overflow-y: auto;
1663
1663
  padding-right: 4px;
1664
1664
  }
1665
- .show-more-toggle[data-v-c189ab35] {
1665
+ .show-more-toggle[data-v-5ace8cef] {
1666
1666
  font-size: 12px;
1667
1667
  color: var(--sd-ui-action, #1355ff);
1668
1668
  cursor: pointer;
@@ -1670,12 +1670,12 @@ img[data-v-c95b2073] {
1670
1670
  margin-top: 4px;
1671
1671
  user-select: none;
1672
1672
  }
1673
- .show-more-toggle[data-v-c189ab35]:hover {
1673
+ .show-more-toggle[data-v-5ace8cef]:hover {
1674
1674
  text-decoration: underline;
1675
1675
  }
1676
1676
 
1677
1677
  /* ── Thread collapse ── */
1678
- .collapsed-replies[data-v-c189ab35] {
1678
+ .collapsed-replies[data-v-5ace8cef] {
1679
1679
  display: flex;
1680
1680
  align-items: center;
1681
1681
  gap: 6px;
@@ -1686,24 +1686,24 @@ img[data-v-c95b2073] {
1686
1686
  cursor: pointer;
1687
1687
  user-select: none;
1688
1688
  }
1689
- .collapsed-replies[data-v-c189ab35]:hover {
1689
+ .collapsed-replies[data-v-5ace8cef]:hover {
1690
1690
  text-decoration: underline;
1691
1691
  }
1692
- .collapsed-avatars[data-v-c189ab35] {
1692
+ .collapsed-avatars[data-v-5ace8cef] {
1693
1693
  display: flex;
1694
1694
  }
1695
- .collapsed-avatars .mini-avatar[data-v-c189ab35] {
1695
+ .collapsed-avatars .mini-avatar[data-v-5ace8cef] {
1696
1696
  --sd-comment-avatar-size: 20px;
1697
1697
  --sd-comment-avatar-font-size: 8px;
1698
1698
  margin-left: -4px;
1699
1699
  border: 2px solid var(--sd-ui-comments-card-active-bg, #ffffff);
1700
1700
  }
1701
- .collapsed-avatars .mini-avatar[data-v-c189ab35]:first-child {
1701
+ .collapsed-avatars .mini-avatar[data-v-5ace8cef]:first-child {
1702
1702
  margin-left: 0;
1703
1703
  }
1704
1704
 
1705
1705
  /* ── New comment input ── */
1706
- .new-comment-input-wrapper[data-v-c189ab35] {
1706
+ .new-comment-input-wrapper[data-v-5ace8cef] {
1707
1707
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1708
1708
  border-radius: 12px;
1709
1709
  padding: 8.5px 10.5px;
@@ -1712,17 +1712,17 @@ img[data-v-c95b2073] {
1712
1712
  max-height: 150px;
1713
1713
  overflow: visible;
1714
1714
  }
1715
- .new-comment-input-wrapper[data-v-c189ab35]:focus-within {
1715
+ .new-comment-input-wrapper[data-v-5ace8cef]:focus-within {
1716
1716
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1717
1717
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1718
1718
  }
1719
- .new-comment-input-wrapper[data-v-c189ab35] .comment-entry {
1719
+ .new-comment-input-wrapper[data-v-5ace8cef] .comment-entry {
1720
1720
  border-radius: 0;
1721
1721
  }
1722
- .new-comment-input-wrapper[data-v-c189ab35] .input-section {
1722
+ .new-comment-input-wrapper[data-v-5ace8cef] .input-section {
1723
1723
  margin: 0;
1724
1724
  }
1725
- .new-comment-input-wrapper[data-v-c189ab35] .superdoc-field {
1725
+ .new-comment-input-wrapper[data-v-5ace8cef] .superdoc-field {
1726
1726
  font-size: 14px;
1727
1727
  line-height: 20px;
1728
1728
  border: none;
@@ -1733,18 +1733,18 @@ img[data-v-c95b2073] {
1733
1733
  max-height: 132px;
1734
1734
  resize: none;
1735
1735
  }
1736
- .new-comment-input-wrapper[data-v-c189ab35] .superdoc-field:focus,
1737
- .new-comment-input-wrapper[data-v-c189ab35] .superdoc-field:active {
1736
+ .new-comment-input-wrapper[data-v-5ace8cef] .superdoc-field:focus,
1737
+ .new-comment-input-wrapper[data-v-5ace8cef] .superdoc-field:active {
1738
1738
  border: none;
1739
1739
  box-shadow: none;
1740
1740
  outline: none;
1741
1741
  }
1742
- .new-comment-input-wrapper[data-v-c189ab35] .sd-editor-placeholder::before {
1742
+ .new-comment-input-wrapper[data-v-5ace8cef] .sd-editor-placeholder::before {
1743
1743
  content: 'Comment or add others with @';
1744
1744
  }
1745
1745
 
1746
1746
  /* ── Reply pill & expanded input ── */
1747
- .reply-pill[data-v-c189ab35] {
1747
+ .reply-pill[data-v-5ace8cef] {
1748
1748
  width: 100%;
1749
1749
  padding: 8.5px 10.5px;
1750
1750
  border: 1.5px solid transparent;
@@ -1758,16 +1758,16 @@ img[data-v-c95b2073] {
1758
1758
  cursor: text;
1759
1759
  transition: background 150ms ease;
1760
1760
  }
1761
- .reply-pill[data-v-c189ab35]:hover {
1761
+ .reply-pill[data-v-5ace8cef]:hover {
1762
1762
  background: var(--sd-color-gray-200, #f2f2f2);
1763
1763
  }
1764
- .reply-pill[data-v-c189ab35]:disabled {
1764
+ .reply-pill[data-v-5ace8cef]:disabled {
1765
1765
  cursor: not-allowed;
1766
1766
  }
1767
- .reply-expanded[data-v-c189ab35] {
1767
+ .reply-expanded[data-v-5ace8cef] {
1768
1768
  margin-top: 10px;
1769
1769
  }
1770
- .reply-input-wrapper[data-v-c189ab35] {
1770
+ .reply-input-wrapper[data-v-5ace8cef] {
1771
1771
  border: 1.5px solid var(--sd-ui-comments-input-border, #dbdbdb);
1772
1772
  border-radius: 12px;
1773
1773
  padding: 8.5px 10.5px;
@@ -1775,17 +1775,17 @@ img[data-v-c95b2073] {
1775
1775
  max-height: 150px;
1776
1776
  overflow: visible;
1777
1777
  }
1778
- .reply-input-wrapper[data-v-c189ab35]:focus-within {
1778
+ .reply-input-wrapper[data-v-5ace8cef]:focus-within {
1779
1779
  border-color: var(--sd-ui-comments-input-focus-border, #4f7cff);
1780
1780
  box-shadow: 0 0 0 2px rgba(79, 124, 255, 0.16);
1781
1781
  }
1782
- .reply-input-wrapper[data-v-c189ab35] .comment-entry {
1782
+ .reply-input-wrapper[data-v-5ace8cef] .comment-entry {
1783
1783
  border-radius: 0;
1784
1784
  }
1785
- .reply-input-wrapper[data-v-c189ab35] .input-section {
1785
+ .reply-input-wrapper[data-v-5ace8cef] .input-section {
1786
1786
  margin: 0;
1787
1787
  }
1788
- .reply-input-wrapper[data-v-c189ab35] .superdoc-field {
1788
+ .reply-input-wrapper[data-v-5ace8cef] .superdoc-field {
1789
1789
  font-size: 14px;
1790
1790
  line-height: 20px;
1791
1791
  border: none;
@@ -1796,23 +1796,23 @@ img[data-v-c95b2073] {
1796
1796
  max-height: 132px;
1797
1797
  resize: none;
1798
1798
  }
1799
- .reply-input-wrapper[data-v-c189ab35] .superdoc-field:focus,
1800
- .reply-input-wrapper[data-v-c189ab35] .superdoc-field:active {
1799
+ .reply-input-wrapper[data-v-5ace8cef] .superdoc-field:focus,
1800
+ .reply-input-wrapper[data-v-5ace8cef] .superdoc-field:active {
1801
1801
  border: none;
1802
1802
  box-shadow: none;
1803
1803
  outline: none;
1804
1804
  }
1805
- .reply-input-wrapper[data-v-c189ab35] .sd-editor-placeholder::before {
1805
+ .reply-input-wrapper[data-v-5ace8cef] .sd-editor-placeholder::before {
1806
1806
  content: 'Reply or add others with @';
1807
1807
  }
1808
- .reply-actions[data-v-c189ab35] {
1808
+ .reply-actions[data-v-5ace8cef] {
1809
1809
  display: flex;
1810
1810
  justify-content: flex-end;
1811
1811
  align-items: center;
1812
1812
  gap: 16px;
1813
1813
  margin-top: 8px;
1814
1814
  }
1815
- .reply-btn-cancel[data-v-c189ab35] {
1815
+ .reply-btn-cancel[data-v-5ace8cef] {
1816
1816
  background: none;
1817
1817
  border: none;
1818
1818
  font-size: 13px;
@@ -1823,10 +1823,10 @@ img[data-v-c95b2073] {
1823
1823
  font-family: inherit;
1824
1824
  transition: color 150ms;
1825
1825
  }
1826
- .reply-btn-cancel[data-v-c189ab35]:hover {
1826
+ .reply-btn-cancel[data-v-5ace8cef]:hover {
1827
1827
  color: var(--sd-ui-text, #212121);
1828
1828
  }
1829
- .reply-btn-primary[data-v-c189ab35] {
1829
+ .reply-btn-primary[data-v-5ace8cef] {
1830
1830
  background: var(--sd-ui-action, #1355ff);
1831
1831
  border: none;
1832
1832
  font-size: 13px;
@@ -1838,19 +1838,19 @@ img[data-v-c95b2073] {
1838
1838
  font-family: inherit;
1839
1839
  transition: background 150ms;
1840
1840
  }
1841
- .reply-btn-primary[data-v-c189ab35]:hover {
1841
+ .reply-btn-primary[data-v-5ace8cef]:hover {
1842
1842
  background: var(--sd-ui-action-hover, #0f44cc);
1843
1843
  }
1844
- .reply-btn-primary.sd-is-disabled[data-v-c189ab35] {
1844
+ .reply-btn-primary.sd-is-disabled[data-v-5ace8cef] {
1845
1845
  background: var(--sd-color-gray-400, #dbdbdb);
1846
1846
  color: var(--sd-color-gray-600, #888888);
1847
1847
  cursor: default;
1848
1848
  pointer-events: none;
1849
1849
  }
1850
- .existing-internal-input[data-v-c189ab35] {
1850
+ .existing-internal-input[data-v-5ace8cef] {
1851
1851
  margin-bottom: 10px;
1852
1852
  }
1853
- .sd-internal-dropdown[data-v-c189ab35] {
1853
+ .sd-internal-dropdown[data-v-5ace8cef] {
1854
1854
  display: inline-block;
1855
1855
  }
1856
1856
 
@@ -2348,34 +2348,34 @@ img[data-v-c95b2073] {
2348
2348
  pointer-events: auto;
2349
2349
  }
2350
2350
 
2351
- .superdoc[data-v-f53aafe0] {
2351
+ .superdoc[data-v-38ecd481] {
2352
2352
  display: flex;
2353
2353
  position: relative;
2354
2354
  }
2355
- .right-sidebar[data-v-f53aafe0] {
2355
+ .right-sidebar[data-v-38ecd481] {
2356
2356
  min-width: 320px;
2357
2357
  height: 100%;
2358
2358
  }
2359
- .floating-comments[data-v-f53aafe0] {
2359
+ .floating-comments[data-v-38ecd481] {
2360
2360
  min-width: 300px;
2361
2361
  width: 300px;
2362
2362
  height: 100%;
2363
2363
  overflow: visible;
2364
2364
  }
2365
- .superdoc__layers[data-v-f53aafe0] {
2365
+ .superdoc__layers[data-v-38ecd481] {
2366
2366
  height: 100%;
2367
2367
  position: relative;
2368
2368
  box-sizing: border-box;
2369
2369
  }
2370
- .superdoc__document[data-v-f53aafe0] {
2370
+ .superdoc__document[data-v-38ecd481] {
2371
2371
  width: 100%;
2372
2372
  position: relative;
2373
2373
  }
2374
- .superdoc__sub-document[data-v-f53aafe0] {
2374
+ .superdoc__sub-document[data-v-38ecd481] {
2375
2375
  width: 100%;
2376
2376
  position: relative;
2377
2377
  }
2378
- .superdoc__selection-layer[data-v-f53aafe0] {
2378
+ .superdoc__selection-layer[data-v-38ecd481] {
2379
2379
  position: absolute;
2380
2380
  min-width: 100%;
2381
2381
  min-height: 100%;
@@ -2386,13 +2386,13 @@ img[data-v-c95b2073] {
2386
2386
  /* SD-3497: PDF whiteboard overlay sits above the rendered PDF canvas but below
2387
2387
  the PDF comment anchors (z-index 6 in PdfCommentsLayer) so anchors stay
2388
2388
  clickable, and below the selection layer (z-index 10). */
2389
- .superdoc__whiteboard-layer[data-v-f53aafe0] {
2389
+ .superdoc__whiteboard-layer[data-v-38ecd481] {
2390
2390
  z-index: 4;
2391
2391
  }
2392
- .superdoc__temp-selection[data-v-f53aafe0] {
2392
+ .superdoc__temp-selection[data-v-38ecd481] {
2393
2393
  position: absolute;
2394
2394
  }
2395
- .superdoc__right-sidebar[data-v-f53aafe0] {
2395
+ .superdoc__right-sidebar[data-v-38ecd481] {
2396
2396
  width: 320px;
2397
2397
  min-width: 320px;
2398
2398
  padding: 0 10px;
@@ -2400,7 +2400,7 @@ img[data-v-c95b2073] {
2400
2400
  position: relative;
2401
2401
  z-index: 2;
2402
2402
  }
2403
- .superdoc__compact-comment-popover[data-v-f53aafe0] {
2403
+ .superdoc__compact-comment-popover[data-v-38ecd481] {
2404
2404
  position: absolute;
2405
2405
  top: 12px;
2406
2406
  right: 12px;
@@ -2409,14 +2409,14 @@ img[data-v-c95b2073] {
2409
2409
  }
2410
2410
 
2411
2411
  /* Tools styles */
2412
- .tools[data-v-f53aafe0] {
2412
+ .tools[data-v-38ecd481] {
2413
2413
  position: absolute;
2414
2414
  z-index: 3;
2415
2415
  display: flex;
2416
2416
  flex-direction: column;
2417
2417
  gap: var(--sd-ui-tools-gap, 6px);
2418
2418
  }
2419
- .tools-item[data-v-f53aafe0] {
2419
+ .tools-item[data-v-38ecd481] {
2420
2420
  display: flex;
2421
2421
  align-items: center;
2422
2422
  justify-content: center;
@@ -2427,10 +2427,10 @@ img[data-v-c95b2073] {
2427
2427
  cursor: pointer;
2428
2428
  position: relative;
2429
2429
  }
2430
- .tools-item i[data-v-f53aafe0] {
2430
+ .tools-item i[data-v-38ecd481] {
2431
2431
  cursor: pointer;
2432
2432
  }
2433
- .superdoc__tools-icon[data-v-f53aafe0] {
2433
+ .superdoc__tools-icon[data-v-38ecd481] {
2434
2434
  width: var(--sd-ui-tools-icon-size, 20px);
2435
2435
  height: var(--sd-ui-tools-icon-size, 20px);
2436
2436
  flex-shrink: 0;
@@ -2445,22 +2445,22 @@ img[data-v-c95b2073] {
2445
2445
 
2446
2446
  /* 834px is iPad screen size in portrait orientation */
2447
2447
  @media (max-width: 834px) {
2448
- .superdoc .superdoc__layers[data-v-f53aafe0] {
2448
+ .superdoc .superdoc__layers[data-v-38ecd481] {
2449
2449
  margin: 0;
2450
2450
  border: 0 !important;
2451
2451
  box-shadow: none;
2452
2452
  }
2453
- .superdoc__sub-document[data-v-f53aafe0] {
2453
+ .superdoc__sub-document[data-v-38ecd481] {
2454
2454
  max-width: 100%;
2455
2455
  }
2456
- .superdoc__right-sidebar[data-v-f53aafe0] {
2456
+ .superdoc__right-sidebar[data-v-38ecd481] {
2457
2457
  padding: 10px;
2458
2458
  position: relative;
2459
2459
  }
2460
2460
  }
2461
2461
 
2462
2462
  /* AI Writer styles */
2463
- .ai-writer-container[data-v-f53aafe0] {
2463
+ .ai-writer-container[data-v-38ecd481] {
2464
2464
  position: fixed;
2465
2465
  z-index: 1000;
2466
2466
  background: white;
@@ -2476,10 +2476,10 @@ img[data-v-c95b2073] {
2476
2476
  transform: translateY(-50%);
2477
2477
  z-index: 50;
2478
2478
  } */
2479
- .ai-tool > svg[data-v-f53aafe0] {
2479
+ .ai-tool > svg[data-v-38ecd481] {
2480
2480
  fill: transparent;
2481
2481
  }
2482
- .ai-tool[data-v-f53aafe0]::before {
2482
+ .ai-tool[data-v-38ecd481]::before {
2483
2483
  content: '';
2484
2484
  position: absolute;
2485
2485
  width: 20px;
@@ -2500,7 +2500,7 @@ img[data-v-c95b2073] {
2500
2500
  filter: brightness(1.2);
2501
2501
  transition: filter 0.2s ease;
2502
2502
  }
2503
- .ai-tool[data-v-f53aafe0]:hover::before {
2503
+ .ai-tool[data-v-38ecd481]:hover::before {
2504
2504
  filter: brightness(1.3);
2505
2505
  }
2506
2506
 
@@ -45,6 +45,8 @@ export interface CreateV2SessionShortcutRoutesDeps {
45
45
  resolveToolbarElement: () => HTMLElement | null | undefined;
46
46
  /** Resolve the live public Document API facade, or null when unavailable. */
47
47
  getDocumentApi: () => ReferenceDocumentApi | null | undefined;
48
+ /** Scope each first-party mutation after its asynchronous list has resolved. */
49
+ runReferenceMutation?: (memberPath: 'toc.update' | 'fields.rebuild' | 'index.rebuild', input: unknown) => unknown;
48
50
  /**
49
51
  * The built-in page-number command. When present, the PAGE shortcut runs it,
50
52
  * so the shortcut and the toolbar control insert and place the caret the same way.
@@ -551,6 +551,12 @@ export interface SelectionSlice {
551
551
  empty: boolean;
552
552
  /** Resolved text target for the selection, when available. */
553
553
  target: TextTarget | null;
554
+ /** Deletion-inclusive multi-block coverage for range review decisions, when available. */
555
+ trackedTarget?: TextTarget | null;
556
+ /** Whether this exact text range supports tracked-change decisions; excludes permissions. */
557
+ trackedChangeRangeDecisionSupported?: boolean;
558
+ /** Whether the selection covers every tracked-text fragment of each active change. */
559
+ trackedChangesWhollySelected?: boolean;
554
560
  /** Explicit start/end selection target, when available. */
555
561
  selectionTarget: SelectionTarget | null;
556
562
  /** Table/cell identities from the settled public selection read, when supported. */
@@ -1270,6 +1276,20 @@ export interface MetadataHandle {
1270
1276
  * through; custom UIs read it to enable / label their own table controls.
1271
1277
  */
1272
1278
  export interface TableContextInfo {
1279
+ /** Runtime always supplies status; stale/pending snapshots carry no previous cell IDs. */
1280
+ status?: SliceStatus;
1281
+ /** Inclusive logical bounding geometry; use tableSelection for exact membership. */
1282
+ cellRange?: {
1283
+ start: {
1284
+ rowIndex: number;
1285
+ columnIndex: number;
1286
+ };
1287
+ end: {
1288
+ rowIndex: number;
1289
+ columnIndex: number;
1290
+ };
1291
+ } | null;
1292
+ tableSelection?: SelectionInfo['tableSelection'];
1273
1293
  /** Whether the current selection is inside a table. */
1274
1294
  inTable: boolean;
1275
1295
  /** Stable node id of the enclosing table, when resolved. */
@@ -1289,6 +1309,8 @@ export interface TableContextInfo {
1289
1309
  export interface TablesHandle {
1290
1310
  /** Read the current table context snapshot. */
1291
1311
  getContext(): TableContextInfo;
1312
+ /** Resolve fresh, bounded table context for immediate context-menu callbacks. */
1313
+ getContextAsync(): Promise<TableContextInfo>;
1292
1314
  /** Convenience: whether the current selection is inside a table. */
1293
1315
  isInTable(): boolean;
1294
1316
  }
@@ -89,6 +89,8 @@ import type { SuperDocUIOptions as __Cjs_SuperDocUIOptions } from './ui.js' with
89
89
  import type { SuperDocUIReason as __Cjs_SuperDocUIReason } from './ui.js' with { "resolution-mode": "import" };
90
90
  import type { SuperDocUIScope as __Cjs_SuperDocUIScope } from './ui.js' with { "resolution-mode": "import" };
91
91
  import type { SuperDocUIState as __Cjs_SuperDocUIState } from './ui.js' with { "resolution-mode": "import" };
92
+ import type { TableContextInfo as __Cjs_TableContextInfo } from './ui.js' with { "resolution-mode": "import" };
93
+ import type { TablesHandle as __Cjs_TablesHandle } from './ui.js' with { "resolution-mode": "import" };
92
94
  import type { TextAddress as __Cjs_TextAddress } from './ui.js' with { "resolution-mode": "import" };
93
95
  import type { TextTarget as __Cjs_TextTarget } from './ui.js' with { "resolution-mode": "import" };
94
96
  import type { TextWatermark as __Cjs_TextWatermark } from './ui.js' with { "resolution-mode": "import" };
@@ -214,6 +216,8 @@ export type { __Cjs_SuperDocUIOptions as SuperDocUIOptions };
214
216
  export type { __Cjs_SuperDocUIReason as SuperDocUIReason };
215
217
  export type { __Cjs_SuperDocUIScope as SuperDocUIScope };
216
218
  export type { __Cjs_SuperDocUIState as SuperDocUIState };
219
+ export type { __Cjs_TableContextInfo as TableContextInfo };
220
+ export type { __Cjs_TablesHandle as TablesHandle };
217
221
  export type { __Cjs_TextAddress as TextAddress };
218
222
  export type { __Cjs_TextTarget as TextTarget };
219
223
  export type { __Cjs_TextWatermark as TextWatermark };
@@ -26,4 +26,4 @@
26
26
  export { createSuperDocUI } from './ui/create-super-doc-ui.js';
27
27
  export { shallowEqual } from './ui/equality.js';
28
28
  export { BUILT_IN_COMMAND_IDS } from './ui/commands.js';
29
- export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, } from './ui/types.js';
29
+ export type { EqualityFn, SelectorFn, Subscribable, SuperDocUI, BorrowedSuperDocUI, SuperDocUIOptions, SuperDocUIState, SuperDocUIScope, SuperDocLike, SuperDocEditorLike, CommandHandle, CommandState, CommandExecutionResult, WorkflowReceipt, WorkflowActionResult, WorkflowScrollResult, SelectionRestoreResult, SuperDocUIReason, CommandId, CommandsHandle, ContextMenuItem, ContextMenuHandle, WatermarkHandle, SearchController, SearchHandle, SearchQueryOptions, CustomCommandContext, CustomCommandHandle, CustomCommandHandleState, CustomCommandRegistration, CustomCommandRegistrationResult, MetadataHandle, SelectionHandle, TablesHandle, TableContextInfo, ToolbarHandle, BuiltInCommandId, ToolbarCommandId, CommentsHandle, TrackChangesHandle, ContentControlsHandle, BookmarksHandle, BookmarkAddress, ContentControlFocusResult, ContentControlHighlightResult, FontsHandle, ZoomHandle, DocumentHandle, DocumentReplacementResult, ViewportHandle, StylesHandle, ActiveParagraphStyle, SliceStatus, SelectionSlice, SelectionCapture, CommentAnchorCapture, ToolbarSnapshotSlice, CommentsSlice, TrackChangesSlice, ContentControlsSlice, FontsSlice, ZoomSlice, DocumentSlice, StylesSlice, SearchSnapshot, SearchSlice, StyleCatalogView, StyleCatalogItemType, StyleCatalogFilterType, StyleProvenance, StyleCatalogItemVisibility, StyleCatalogItemUsage, StyleCatalogItemPreview, StyleCatalogItem, StyleCatalogDefaults, StyleCatalogDiagnostic, StyleCatalogSourceStatus, StylesGetCatalogInput, StylesGetCatalogResult, CommentInfo, CommentsListQuery, TrackChangeInfo, TrackChangePointHit, TrackChangesItem, FontFamilyOption, FontSizeOption, CommentAddress, TrackedChangeAddress, ContentControlViewportAddress, ViewportEntityAddress, ViewportEntityHit, ViewportContext, ViewportRect, ViewportGetRectInput, ViewportRectResult, BrowserDocumentApi, PartialBrowserDocumentApi, DocumentApi, Receipt, SelectionInfo, SelectionTarget, SelectionPoint, TextTarget, TextAddress, ScrollIntoViewInput, ScrollIntoViewOutput, EntityAddress, CommentsListResult, TrackChangesListResult, ContentControlsListResult, ContentControlInfo, ContentControlTarget, RichContentInsertInput, OperationCapabilityResolveResult, SDHtmlMarkdownSupportCheckResult, PictureWatermarkInput, RetainedPictureWatermarkInput, TextWatermark, WatermarkInfo, WatermarkTarget, WatermarksApplyInput, WatermarksApplyResult, WatermarksApplySuccess, WatermarksApplyTarget, } from './ui/types.js';