dsh-github-flow 0.5.0 → 0.6.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 (44) hide show
  1. package/README.en.md +16 -4
  2. package/README.md +16 -4
  3. package/docs/UPGRADE-NOTES.md +8 -8
  4. package/docs/architecture.md +33 -17
  5. package/docs/images/1.png +0 -0
  6. package/lib/api/routes-actions.js +139 -8
  7. package/lib/api/routes-overview.js +147 -29
  8. package/lib/cache.d.ts +77 -4
  9. package/lib/cache.js +114 -7
  10. package/lib/client.d.ts +7 -3
  11. package/lib/client.js +3309 -314
  12. package/lib/executor/error-classifier.d.ts +55 -0
  13. package/lib/executor/error-classifier.js +199 -0
  14. package/lib/executor/git-parser.d.ts +124 -0
  15. package/lib/executor/git-parser.js +397 -0
  16. package/lib/executor.d.ts +122 -4
  17. package/lib/executor.js +685 -80
  18. package/lib/tools/help.js +22 -7
  19. package/lib/tools/image-utils.d.ts +27 -0
  20. package/lib/tools/image-utils.js +73 -3
  21. package/lib/types.d.ts +331 -0
  22. package/lib/ui/help-modal.d.ts +6 -0
  23. package/lib/ui/help-modal.js +113 -15
  24. package/lib/ui/issue-modal.d.ts +14 -0
  25. package/lib/ui/issue-modal.js +366 -0
  26. package/lib/ui/markdown-lite.d.ts +66 -0
  27. package/lib/ui/markdown-lite.js +312 -0
  28. package/lib/ui/network-banner.d.ts +12 -0
  29. package/lib/ui/network-banner.js +35 -0
  30. package/lib/ui/pr-modal.d.ts +17 -0
  31. package/lib/ui/pr-modal.js +516 -0
  32. package/lib/ui/repo-badges.d.ts +43 -0
  33. package/lib/ui/repo-badges.js +82 -0
  34. package/lib/ui/repo-selector.d.ts +14 -0
  35. package/lib/ui/repo-selector.js +112 -0
  36. package/lib/ui/storage.d.ts +47 -0
  37. package/lib/ui/storage.js +139 -0
  38. package/lib/ui/styles.d.ts +1 -1
  39. package/lib/ui/styles.js +960 -0
  40. package/lib/ui/utils.js +13 -1
  41. package/lib/ui/workspace-panel.js +169 -27
  42. package/lib/version.d.ts +1 -1
  43. package/lib/version.js +1 -1
  44. package/package.json +1 -1
package/lib/ui/styles.js CHANGED
@@ -217,6 +217,31 @@ body[data-ds-dark-theme] .dsh-github-card-subtext {
217
217
  color: var(--dsw-alias-label-tertiary, #888);
218
218
  }
219
219
 
220
+ /* fork 血缘行:说明「这是谁的上游」,上游名可点击 */
221
+ .dsh-github-fork-line {
222
+ font-size: 12px;
223
+ margin-top: 4px;
224
+ color: var(--dsw-alias-label-secondary, #656d76);
225
+ display: flex;
226
+ align-items: center;
227
+ gap: 4px;
228
+ flex-wrap: wrap;
229
+ }
230
+ body[data-ds-dark-theme] .dsh-github-fork-line {
231
+ color: var(--dsw-alias-label-secondary, #bbb);
232
+ }
233
+ .dsh-github-fork-line a {
234
+ color: var(--dsw-alias-link, #0969da);
235
+ text-decoration: none;
236
+ font-weight: 600;
237
+ }
238
+ .dsh-github-fork-line a:hover {
239
+ text-decoration: underline;
240
+ }
241
+ body[data-ds-dark-theme] .dsh-github-fork-line a {
242
+ color: #58a6ff;
243
+ }
244
+
220
245
  /* 7. 徽章(Badges) */
221
246
  .dsh-github-badge {
222
247
  display: inline-flex;
@@ -242,6 +267,22 @@ body[data-ds-dark-theme] .dsh-github-card-subtext {
242
267
  color: #9a6700;
243
268
  border: 1px solid rgba(154, 103, 0, 0.2);
244
269
  }
270
+
271
+ /*
272
+ * 只读徽章:与 yellow 同色系但描边更明显,因为「你改不了」是需要被看见的约束。
273
+ * 独立类而非复用 yellow,是为了将来调整只读语义的视觉强度时不牵动其他黄色徽章。
274
+ */
275
+ .dsh-badge-readonly {
276
+ background: rgba(154, 103, 0, 0.12);
277
+ color: #9a6700;
278
+ border: 1px solid rgba(154, 103, 0, 0.35);
279
+ font-weight: 600;
280
+ }
281
+ body[data-ds-dark-theme] .dsh-badge-readonly {
282
+ background: rgba(210, 153, 34, 0.18);
283
+ color: #d29922;
284
+ border-color: rgba(210, 153, 34, 0.4);
285
+ }
245
286
  .dsh-badge-blue {
246
287
  background: rgba(9, 105, 218, 0.12);
247
288
  color: #0969da;
@@ -1528,6 +1569,925 @@ body[data-ds-dark-theme] .dsh-github-btn-sm.active {
1528
1569
  color: #f0b72f !important;
1529
1570
  border-color: #d29922 !important;
1530
1571
  }
1572
+
1573
+ /* 19. 关联仓库切换器 (RepoSelectorDropdown) */
1574
+ .dsh-github-repo-switch-trigger {
1575
+ display: inline-flex;
1576
+ align-items: center;
1577
+ gap: 3px;
1578
+ padding: 1px 7px;
1579
+ font-size: 11px;
1580
+ font-weight: 500;
1581
+ border-radius: 12px;
1582
+ border: 1px solid rgba(130, 80, 223, 0.35);
1583
+ background: rgba(130, 80, 223, 0.1);
1584
+ color: #8250df;
1585
+ cursor: pointer;
1586
+ transition: all 0.15s ease;
1587
+ user-select: none;
1588
+ line-height: 16px;
1589
+ }
1590
+ .dsh-github-repo-switch-trigger:hover {
1591
+ background: rgba(130, 80, 223, 0.2);
1592
+ border-color: rgba(130, 80, 223, 0.6);
1593
+ }
1594
+ body[data-ds-dark-theme] .dsh-github-repo-switch-trigger {
1595
+ border-color: rgba(163, 113, 247, 0.4);
1596
+ background: rgba(163, 113, 247, 0.15);
1597
+ color: #a371f7;
1598
+ }
1599
+ body[data-ds-dark-theme] .dsh-github-repo-switch-trigger:hover {
1600
+ background: rgba(163, 113, 247, 0.25);
1601
+ border-color: #a371f7;
1602
+ }
1603
+
1604
+ .dsh-github-repo-dropdown {
1605
+ position: absolute;
1606
+ top: 100%;
1607
+ left: 0;
1608
+ margin-top: 5px;
1609
+ width: 320px;
1610
+ max-height: 380px;
1611
+ background: var(--dsw-alias-bg-base, #ffffff);
1612
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1613
+ border-radius: 8px;
1614
+ box-shadow: 0 8px 24px rgba(0, 0, 0, 0.16);
1615
+ z-index: 1000;
1616
+ display: flex;
1617
+ flex-direction: column;
1618
+ overflow: hidden;
1619
+ }
1620
+ body[data-ds-dark-theme] .dsh-github-repo-dropdown {
1621
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
1622
+ border-color: var(--dsw-alias-border-l1, #30363d);
1623
+ box-shadow: 0 8px 28px rgba(0, 0, 0, 0.5);
1624
+ }
1625
+
1626
+ .dsh-github-repo-dropdown-header {
1627
+ display: flex;
1628
+ justify-content: space-between;
1629
+ align-items: center;
1630
+ padding: 8px 12px;
1631
+ font-size: 11px;
1632
+ font-weight: 600;
1633
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
1634
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1635
+ color: var(--dsw-alias-label-secondary, #57606a);
1636
+ }
1637
+ body[data-ds-dark-theme] .dsh-github-repo-dropdown-header {
1638
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1639
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
1640
+ color: var(--dsw-alias-label-secondary, #8b949e);
1641
+ }
1642
+
1643
+ .dsh-github-repo-dropdown-list {
1644
+ overflow-y: auto;
1645
+ max-height: 260px;
1646
+ padding: 4px 0;
1647
+ }
1648
+
1649
+ .dsh-github-repo-item {
1650
+ padding: 7px 12px;
1651
+ font-size: 12px;
1652
+ cursor: pointer;
1653
+ transition: background 0.12s ease;
1654
+ color: var(--dsw-alias-label-primary, #1f2328);
1655
+ }
1656
+ .dsh-github-repo-item:hover {
1657
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.05));
1658
+ }
1659
+ body[data-ds-dark-theme] .dsh-github-repo-item {
1660
+ color: var(--dsw-alias-label-primary, #f0f6fc);
1661
+ }
1662
+ body[data-ds-dark-theme] .dsh-github-repo-item:hover {
1663
+ background: var(--dsw-alias-interactive-bg-hover, rgba(255, 255, 255, 0.06));
1664
+ }
1665
+ .dsh-github-repo-item.selected {
1666
+ background: rgba(9, 105, 218, 0.08);
1667
+ }
1668
+ body[data-ds-dark-theme] .dsh-github-repo-item.selected {
1669
+ background: rgba(56, 139, 253, 0.15);
1670
+ }
1671
+
1672
+ .dsh-github-repo-dropdown-footer {
1673
+ padding: 6px 10px;
1674
+ font-size: 10px;
1675
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
1676
+ border-top: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1677
+ color: var(--dsw-alias-label-tertiary, #656d76);
1678
+ line-height: 1.4;
1679
+ }
1680
+ body[data-ds-dark-theme] .dsh-github-repo-dropdown-footer {
1681
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1682
+ border-top-color: var(--dsw-alias-border-l1, #30363d);
1683
+ color: var(--dsw-alias-label-tertiary, #8b949e);
1684
+ }
1685
+
1686
+ .dsh-github-switch-quicklink {
1687
+ font-size: 11px;
1688
+ cursor: pointer;
1689
+ color: var(--dsw-alias-link, #0969da);
1690
+ text-decoration: none;
1691
+ font-weight: 500;
1692
+ display: inline-flex;
1693
+ align-items: center;
1694
+ gap: 3px;
1695
+ margin-left: 6px;
1696
+ padding: 1px 6px;
1697
+ border-radius: 4px;
1698
+ background: rgba(9, 105, 218, 0.08);
1699
+ border: 1px solid rgba(9, 105, 218, 0.2);
1700
+ }
1701
+ .dsh-github-switch-quicklink:hover {
1702
+ text-decoration: none;
1703
+ background: rgba(9, 105, 218, 0.16);
1704
+ border-color: rgba(9, 105, 218, 0.4);
1705
+ }
1706
+ body[data-ds-dark-theme] .dsh-github-switch-quicklink {
1707
+ color: #58a6ff;
1708
+ background: rgba(56, 139, 253, 0.15);
1709
+ border-color: rgba(56, 139, 253, 0.3);
1710
+ }
1711
+ body[data-ds-dark-theme] .dsh-github-switch-quicklink:hover {
1712
+ background: rgba(56, 139, 253, 0.25);
1713
+ border-color: rgba(56, 139, 253, 0.5);
1714
+ }
1715
+
1716
+ /* 20. PR 在线详情与代码审阅工作台 (PrDetailModal) */
1717
+ .dsh-github-pr-modal-dialog {
1718
+ width: 95% !important;
1719
+ max-width: 1040px !important;
1720
+ height: 88vh !important;
1721
+ max-height: 88vh !important;
1722
+ display: flex !important;
1723
+ flex-direction: column !important;
1724
+ overflow: hidden !important;
1725
+ padding: 0 !important;
1726
+ }
1727
+
1728
+ .dsh-github-pr-modal-header {
1729
+ padding: 12px 16px !important;
1730
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1731
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
1732
+ flex-shrink: 0;
1733
+ }
1734
+ body[data-ds-dark-theme] .dsh-github-pr-modal-header {
1735
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
1736
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1737
+ }
1738
+
1739
+ .dsh-github-pr-modal-tabs {
1740
+ display: flex;
1741
+ align-items: center;
1742
+ gap: 4px;
1743
+ padding: 6px 16px;
1744
+ background: var(--dsw-alias-bg-base, #ffffff);
1745
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1746
+ flex-shrink: 0;
1747
+ }
1748
+ body[data-ds-dark-theme] .dsh-github-pr-modal-tabs {
1749
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
1750
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
1751
+ }
1752
+
1753
+ .dsh-github-pr-tab-btn {
1754
+ padding: 5px 12px;
1755
+ font-size: 12px;
1756
+ font-weight: 500;
1757
+ border-radius: 6px;
1758
+ border: 1px solid transparent;
1759
+ background: transparent;
1760
+ color: var(--dsw-alias-label-secondary, #656d76);
1761
+ cursor: pointer;
1762
+ transition: all 0.15s ease;
1763
+ }
1764
+ .dsh-github-pr-tab-btn:hover {
1765
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.05));
1766
+ color: var(--dsw-alias-label-primary, #1f2328);
1767
+ }
1768
+ .dsh-github-pr-tab-btn.active {
1769
+ background: var(--dsw-alias-interactive-bg-active, rgba(9, 105, 218, 0.1));
1770
+ color: var(--dsw-alias-link, #0969da);
1771
+ font-weight: 600;
1772
+ border-color: rgba(9, 105, 218, 0.25);
1773
+ }
1774
+ body[data-ds-dark-theme] .dsh-github-pr-tab-btn {
1775
+ color: var(--dsw-alias-label-secondary, #8b949e);
1776
+ }
1777
+ body[data-ds-dark-theme] .dsh-github-pr-tab-btn:hover {
1778
+ background: rgba(255, 255, 255, 0.06);
1779
+ color: #f0f6fc;
1780
+ }
1781
+ body[data-ds-dark-theme] .dsh-github-pr-tab-btn.active {
1782
+ background: rgba(56, 139, 253, 0.15);
1783
+ color: #58a6ff;
1784
+ border-color: rgba(56, 139, 253, 0.4);
1785
+ }
1786
+
1787
+ .dsh-github-pr-conversation-pane {
1788
+ padding: 16px !important;
1789
+ overflow-y: auto !important;
1790
+ flex: 1;
1791
+ min-height: 0;
1792
+ display: flex;
1793
+ flex-direction: column;
1794
+ gap: 12px;
1795
+ /* 滚到边界时不把滚动传给弹窗外层,避免整页跟着滚 */
1796
+ overscroll-behavior: contain;
1797
+ }
1798
+
1799
+ .dsh-github-pr-checks-bar {
1800
+ display: flex;
1801
+ align-items: center;
1802
+ justify-content: space-between;
1803
+ padding: 8px 12px;
1804
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
1805
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1806
+ border-radius: 6px;
1807
+ font-size: 11px;
1808
+ }
1809
+ body[data-ds-dark-theme] .dsh-github-pr-checks-bar {
1810
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1811
+ border-color: var(--dsw-alias-border-l1, #30363d);
1812
+ }
1813
+
1814
+ .dsh-github-pr-body-card {
1815
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1816
+ border-radius: 6px;
1817
+ background: var(--dsw-alias-bg-base, #ffffff);
1818
+ overflow: hidden;
1819
+ /*
1820
+ * flex: 0 0 auto 是滚动能否工作的关键。
1821
+ * 父容器 .dsh-github-pr-conversation-pane 是 flex-direction: column,
1822
+ * flex 子项默认 flex-shrink: 1 —— 内容变长时会被「压缩」而不是撑开父容器,
1823
+ * 父容器的 overflow-y: auto 于是永远不触发,长内容被直接裁掉。
1824
+ * 禁止收缩后卡片高度由内容决定,父容器才能真正滚动。
1825
+ */
1826
+ flex: 0 0 auto;
1827
+ }
1828
+ body[data-ds-dark-theme] .dsh-github-pr-body-card {
1829
+ border-color: var(--dsw-alias-border-l1, #30363d);
1830
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
1831
+ }
1832
+
1833
+ .dsh-github-pr-comment-card {
1834
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1835
+ border-radius: 6px;
1836
+ background: var(--dsw-alias-bg-base, #ffffff);
1837
+ overflow: hidden;
1838
+ margin-bottom: 10px;
1839
+ /* 同 body-card:禁止收缩,否则父容器滚不动(见上方注释) */
1840
+ flex: 0 0 auto;
1841
+ }
1842
+ body[data-ds-dark-theme] .dsh-github-pr-comment-card {
1843
+ border-color: var(--dsw-alias-border-l1, #30363d);
1844
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
1845
+ }
1846
+
1847
+ .dsh-github-pr-comment-header {
1848
+ display: flex;
1849
+ justify-content: space-between;
1850
+ align-items: center;
1851
+ padding: 6px 12px;
1852
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
1853
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1854
+ font-size: 11px;
1855
+ }
1856
+ body[data-ds-dark-theme] .dsh-github-pr-comment-header {
1857
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1858
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
1859
+ }
1860
+
1861
+ .dsh-github-pr-files-pane {
1862
+ display: flex;
1863
+ flex: 1;
1864
+ min-height: 0;
1865
+ overflow: hidden;
1866
+ }
1867
+
1868
+ .dsh-github-pr-file-list {
1869
+ width: 280px;
1870
+ flex-shrink: 0;
1871
+ border-right: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
1872
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
1873
+ overflow-y: auto;
1874
+ padding: 6px 0;
1875
+ }
1876
+ body[data-ds-dark-theme] .dsh-github-pr-file-list {
1877
+ border-right-color: var(--dsw-alias-border-l1, #30363d);
1878
+ background: var(--dsw-alias-bg-layer-1, #16161a);
1879
+ }
1880
+
1881
+ /*
1882
+ * 拖拽分隔条。宽度 6px 而非常见的 1px:细条几乎点不中,
1883
+ * 是分栏拖拽最常见的可用性缺陷。
1884
+ */
1885
+ .dsh-github-pr-splitter {
1886
+ position: relative;
1887
+ flex-shrink: 0;
1888
+ width: 6px;
1889
+ cursor: col-resize;
1890
+ background: var(--dsw-alias-border-l2, #e1e4e8);
1891
+ transition: background 0.15s ease;
1892
+ display: flex;
1893
+ align-items: center;
1894
+ justify-content: center;
1895
+ }
1896
+ .dsh-github-pr-splitter:hover {
1897
+ background: var(--dsw-alias-link, #0969da);
1898
+ }
1899
+ body[data-ds-dark-theme] .dsh-github-pr-splitter {
1900
+ background: var(--dsw-alias-border-l1, #30363d);
1901
+ }
1902
+ body[data-ds-dark-theme] .dsh-github-pr-splitter:hover {
1903
+ background: #58a6ff;
1904
+ }
1905
+
1906
+ /* 折叠按钮贴在分隔条中部,始终可见——折叠后这是唯一的视觉恢复提示 */
1907
+ .dsh-github-pr-splitter-toggle {
1908
+ position: absolute;
1909
+ top: 50%;
1910
+ transform: translateY(-50%);
1911
+ width: 16px;
1912
+ height: 32px;
1913
+ padding: 0;
1914
+ border: 1px solid var(--dsw-alias-border-l2, #d0d7de);
1915
+ border-radius: 3px;
1916
+ background: var(--dsw-alias-bg-base, #ffffff);
1917
+ color: var(--dsw-alias-label-secondary, #656d76);
1918
+ font-size: 8px;
1919
+ line-height: 1;
1920
+ cursor: pointer;
1921
+ display: flex;
1922
+ align-items: center;
1923
+ justify-content: center;
1924
+ z-index: 2;
1925
+ }
1926
+ .dsh-github-pr-splitter-toggle:hover {
1927
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.06));
1928
+ color: var(--dsw-alias-label-primary, #1f2328);
1929
+ }
1930
+ body[data-ds-dark-theme] .dsh-github-pr-splitter-toggle {
1931
+ border-color: var(--dsw-alias-border-l1, #30363d);
1932
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
1933
+ color: var(--dsw-alias-label-secondary, #8b949e);
1934
+ }
1935
+ body[data-ds-dark-theme] .dsh-github-pr-splitter-toggle:hover {
1936
+ background: rgba(255, 255, 255, 0.08);
1937
+ color: #f0f6fc;
1938
+ }
1939
+
1940
+ /*
1941
+ * PR 卡片标题行:标题在左、跳转按钮钉在最右,且严格保持同一行。
1942
+ *
1943
+ * 为什么需要这个容器:.dsh-github-item 本身是 flex-direction: column,
1944
+ * 若把按钮直接放进去,它会独占一整行、只剩一个孤零零的 ↗ 字符,
1945
+ * 既丑也让用户看不出这是可点的入口。包进横向 flex 行即可解决。
1946
+ */
1947
+ .dsh-github-pr-title-row {
1948
+ display: flex;
1949
+ align-items: center; /* 标题已强制单行,居中对齐即「同一行」 */
1950
+ gap: 10px;
1951
+ width: 100%;
1952
+ min-width: 0;
1953
+ }
1954
+ .dsh-github-pr-title-row .dsh-github-item-title {
1955
+ /*
1956
+ * flex: 0 1 auto —— 标题按自身内容宽度占据,可收缩(shrink 1)但不撑满(grow 0)。
1957
+ *
1958
+ * 为什么不是 flex: 1 1 0%:
1959
+ * 标题行里现在还有状态徽章(MERGED/CLOSED)跟在标题右侧。
1960
+ * 若标题 grow 撑满全部剩余空间,徽章会被顶到最右边紧贴「GitHub ↗」按钮,
1961
+ * 看起来像两个右边控件挤在一起,而不是「标题 → 状态 → 按钮」的阅读顺序。
1962
+ * 改成不撑满后,徽章自然紧跟在标题文字之后;
1963
+ * 「按钮贴最右」由按钮自身的 margin-left: auto 保证,与此处无关。
1964
+ */
1965
+ flex: 0 1 auto;
1966
+ /*
1967
+ * min-width: 0 是关键。flex 子项默认 min-width: auto,
1968
+ * PR 标题经常很长,会撑破容器把右侧徽章与按钮顶出可视区——
1969
+ * 没有这一行,text-overflow: ellipsis 根本不会生效。
1970
+ */
1971
+ min-width: 0;
1972
+ /*
1973
+ * white-space: nowrap + ellipsis:标题只占一行。
1974
+ * 若允许换行,标题变成两三行后徽章与按钮会浮在首行右侧,
1975
+ * 视觉上与文字末行错位——用户看到的就是「按钮跑到上面去了」。
1976
+ * 完整标题通过 title 属性悬浮查看,这也是 GitHub 自身的做法。
1977
+ */
1978
+ white-space: nowrap;
1979
+ overflow: hidden;
1980
+ text-overflow: ellipsis;
1981
+ /* 标题与按钮之间靠 flex 分配留白,不额外加 margin */
1982
+ text-decoration: none;
1983
+ }
1984
+
1985
+ /*
1986
+ * 「GitHub ↗」跳转按钮。
1987
+ *
1988
+ * 视觉规格按截图反馈重做:原先是 font-size 11px / padding 2px 8px,
1989
+ * 在深色背景上又矮又小、与 13px 标题不匹配,看起来像贴在文字上的标签。
1990
+ * 现在放大到与标题同一视觉量级,并给出明确的悬浮反馈。
1991
+ */
1992
+ .dsh-github-pr-gh-btn {
1993
+ flex-shrink: 0; /* 永不压缩,宁可让标题省略 */
1994
+ /*
1995
+ * margin-left: auto 是双保险:即使标题因某种原因没吃满 flex 空间
1996
+ * (如父容器宽度异常、flex-basis 被覆盖),按钮仍会被推到最右侧,
1997
+ * 而不是紧贴在标题文字屁股后面。
1998
+ */
1999
+ margin-left: auto;
2000
+ display: inline-flex;
2001
+ align-items: center;
2002
+ justify-content: center;
2003
+ gap: 4px;
2004
+ font-size: 12px;
2005
+ font-weight: 500;
2006
+ line-height: 18px;
2007
+ padding: 3px 10px;
2008
+ border-radius: 6px;
2009
+ border: 1px solid var(--dsw-alias-border-l2, #d0d7de);
2010
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
2011
+ color: var(--dsw-alias-label-secondary, #57606a);
2012
+ text-decoration: none;
2013
+ white-space: nowrap;
2014
+ transition: all 0.15s ease;
2015
+ }
2016
+ .dsh-github-pr-gh-btn:hover {
2017
+ color: var(--dsw-alias-link, #0969da);
2018
+ border-color: var(--dsw-alias-link, #0969da);
2019
+ background: var(--dsw-alias-interactive-bg-hover, #eaeef2);
2020
+ }
2021
+ body[data-ds-dark-theme] .dsh-github-pr-gh-btn {
2022
+ border-color: var(--dsw-alias-border-l1, #30363d);
2023
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2024
+ color: var(--dsw-alias-label-secondary, #8b949e);
2025
+ }
2026
+ body[data-ds-dark-theme] .dsh-github-pr-gh-btn:hover {
2027
+ color: #58a6ff;
2028
+ border-color: #58a6ff;
2029
+ background: rgba(56, 139, 253, 0.15);
2030
+ }
2031
+
2032
+ .dsh-github-pr-file-item {
2033
+ display: flex;
2034
+ align-items: center;
2035
+ justify-content: space-between;
2036
+ gap: 8px;
2037
+ padding: 6px 12px;
2038
+ font-size: 11px;
2039
+ font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;
2040
+ cursor: pointer;
2041
+ color: var(--dsw-alias-label-primary, #1f2328);
2042
+ transition: background 0.12s ease;
2043
+ }
2044
+ .dsh-github-pr-file-item:hover {
2045
+ background: var(--dsw-alias-interactive-bg-hover, rgba(0, 0, 0, 0.05));
2046
+ }
2047
+ .dsh-github-pr-file-item.selected {
2048
+ background: rgba(9, 105, 218, 0.1);
2049
+ color: var(--dsw-alias-link, #0969da);
2050
+ font-weight: 600;
2051
+ }
2052
+ body[data-ds-dark-theme] .dsh-github-pr-file-item {
2053
+ color: var(--dsw-alias-label-primary, #f0f6fc);
2054
+ }
2055
+ body[data-ds-dark-theme] .dsh-github-pr-file-item:hover {
2056
+ background: rgba(255, 255, 255, 0.06);
2057
+ }
2058
+ body[data-ds-dark-theme] .dsh-github-pr-file-item.selected {
2059
+ background: rgba(56, 139, 253, 0.18);
2060
+ color: #58a6ff;
2061
+ }
2062
+
2063
+ .dsh-github-pr-diff-viewer {
2064
+ flex: 1;
2065
+ min-width: 0;
2066
+ display: flex;
2067
+ flex-direction: column;
2068
+ overflow: hidden;
2069
+ background: var(--dsw-alias-bg-base, #ffffff);
2070
+ }
2071
+ body[data-ds-dark-theme] .dsh-github-pr-diff-viewer {
2072
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2073
+ }
2074
+
2075
+ .dsh-github-pr-diff-toolbar {
2076
+ display: flex;
2077
+ align-items: center;
2078
+ justify-content: space-between;
2079
+ padding: 6px 12px;
2080
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2081
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
2082
+ flex-shrink: 0;
2083
+ }
2084
+ body[data-ds-dark-theme] .dsh-github-pr-diff-toolbar {
2085
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
2086
+ background: var(--dsw-alias-bg-layer-1, #16161a);
2087
+ }
2088
+
2089
+ /* 行级审查评论:与对话区评论视觉区分(左侧紫色描边,暗示「挂在代码上」) */
2090
+ .dsh-github-pr-line-comments {
2091
+ border-top: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2092
+ padding: 10px 12px 14px;
2093
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
2094
+ }
2095
+ body[data-ds-dark-theme] .dsh-github-pr-line-comments {
2096
+ border-top-color: var(--dsw-alias-border-l1, #30363d);
2097
+ background: var(--dsw-alias-bg-layer-1, #16161a);
2098
+ }
2099
+ .dsh-github-pr-line-comments-title {
2100
+ font-size: 11px;
2101
+ font-weight: 600;
2102
+ margin-bottom: 8px;
2103
+ color: var(--dsw-alias-label-secondary, #656d76);
2104
+ }
2105
+ body[data-ds-dark-theme] .dsh-github-pr-line-comments-title {
2106
+ color: var(--dsw-alias-label-secondary, #8b949e);
2107
+ }
2108
+ .dsh-github-pr-line-comment-item {
2109
+ border-left: 3px solid rgba(130, 80, 223, 0.5);
2110
+ border-radius: 4px;
2111
+ background: var(--dsw-alias-bg-base, #ffffff);
2112
+ padding: 8px 10px;
2113
+ margin-bottom: 8px;
2114
+ }
2115
+ body[data-ds-dark-theme] .dsh-github-pr-line-comment-item {
2116
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2117
+ border-left-color: rgba(163, 113, 247, 0.6);
2118
+ }
2119
+ .dsh-github-pr-line-comment-head {
2120
+ display: flex;
2121
+ align-items: center;
2122
+ gap: 8px;
2123
+ flex-wrap: wrap;
2124
+ font-size: 11px;
2125
+ margin-bottom: 5px;
2126
+ }
2127
+ .dsh-github-pr-line-comment-body {
2128
+ font-size: 12px;
2129
+ line-height: 1.6;
2130
+ white-space: pre-wrap;
2131
+ word-break: break-word;
2132
+ color: var(--dsw-alias-label-primary, #1f2328);
2133
+ }
2134
+ body[data-ds-dark-theme] .dsh-github-pr-line-comment-body {
2135
+ color: var(--dsw-alias-label-primary, #f0f6fc);
2136
+ }
2137
+
2138
+ /* 21. PR 弹窗内的 Markdown 排版 (markdown-lite) */
2139
+ .dsh-github-md-body {
2140
+ padding: 12px;
2141
+ font-size: 12px;
2142
+ line-height: 1.7;
2143
+ word-break: break-word;
2144
+ color: var(--dsw-alias-label-primary, #1f2328);
2145
+ }
2146
+ body[data-ds-dark-theme] .dsh-github-md-body {
2147
+ color: var(--dsw-alias-label-primary, #f0f6fc);
2148
+ }
2149
+
2150
+ /* 标题:GitHub 的层级差距比浏览器默认小,避免 h3 过大撑破卡片 */
2151
+ .dsh-github-md-body .dsh-github-md-heading {
2152
+ margin: 14px 0 8px 0;
2153
+ font-weight: 600;
2154
+ line-height: 1.4;
2155
+ }
2156
+ .dsh-github-md-body h1.dsh-github-md-heading { font-size: 17px; }
2157
+ .dsh-github-md-body h2.dsh-github-md-heading { font-size: 15px; }
2158
+ .dsh-github-md-body h3.dsh-github-md-heading { font-size: 14px; }
2159
+ .dsh-github-md-body h4.dsh-github-md-heading { font-size: 13px; }
2160
+ .dsh-github-md-body h5.dsh-github-md-heading,
2161
+ .dsh-github-md-body h6.dsh-github-md-heading { font-size: 12px; opacity: 0.9; }
2162
+ .dsh-github-md-body > .dsh-github-md-heading:first-child {
2163
+ margin-top: 0;
2164
+ }
2165
+
2166
+ .dsh-github-md-body .dsh-github-md-p {
2167
+ margin: 0 0 10px 0;
2168
+ }
2169
+ .dsh-github-md-body .dsh-github-md-p:last-child {
2170
+ margin-bottom: 0;
2171
+ }
2172
+
2173
+ /* 行内代码:用边框 + 底色与正文区分,比单纯改字体更易辨识 */
2174
+ .dsh-github-md-body .dsh-github-md-inline-code {
2175
+ font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;
2176
+ font-size: 0.92em;
2177
+ padding: 1px 5px;
2178
+ border-radius: 4px;
2179
+ background: var(--dsw-alias-bg-subtle, rgba(0, 0, 0, 0.06));
2180
+ border: 1px solid var(--dsw-alias-border-subtle, rgba(0, 0, 0, 0.08));
2181
+ word-break: break-all;
2182
+ }
2183
+ body[data-ds-dark-theme] .dsh-github-md-body .dsh-github-md-inline-code {
2184
+ background: rgba(255, 255, 255, 0.1);
2185
+ border-color: rgba(255, 255, 255, 0.12);
2186
+ }
2187
+
2188
+ /* 围栏代码块:横向可滚,绝不换行——换行会毁掉缩进语义 */
2189
+ .dsh-github-md-body .dsh-github-md-pre {
2190
+ margin: 10px 0;
2191
+ padding: 10px 12px;
2192
+ border-radius: 6px;
2193
+ overflow-x: auto;
2194
+ max-height: 420px;
2195
+ background: var(--dsw-alias-bg-subtle, rgba(0, 0, 0, 0.04));
2196
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2197
+ }
2198
+ body[data-ds-dark-theme] .dsh-github-md-body .dsh-github-md-pre {
2199
+ background: rgba(0, 0, 0, 0.3);
2200
+ border-color: var(--dsw-alias-border-l1, #30363d);
2201
+ }
2202
+ .dsh-github-md-body .dsh-github-md-pre code {
2203
+ font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;
2204
+ font-size: 11px;
2205
+ line-height: 1.55;
2206
+ white-space: pre;
2207
+ display: block;
2208
+ }
2209
+
2210
+ .dsh-github-md-body .dsh-github-md-list {
2211
+ margin: 8px 0;
2212
+ padding-left: 22px;
2213
+ }
2214
+ .dsh-github-md-body .dsh-github-md-list li {
2215
+ margin: 4px 0;
2216
+ }
2217
+ .dsh-github-md-body .dsh-github-md-task {
2218
+ list-style: none;
2219
+ margin-left: -18px;
2220
+ display: flex;
2221
+ align-items: flex-start;
2222
+ gap: 6px;
2223
+ }
2224
+ .dsh-github-md-body .dsh-github-md-checkbox {
2225
+ flex-shrink: 0;
2226
+ opacity: 0.8;
2227
+ }
2228
+
2229
+ .dsh-github-md-body .dsh-github-md-quote {
2230
+ margin: 10px 0;
2231
+ padding: 6px 12px;
2232
+ border-left: 3px solid var(--dsw-alias-border-l3, #d0d7de);
2233
+ color: var(--dsw-alias-label-secondary, #656d76);
2234
+ background: var(--dsw-alias-bg-subtle, rgba(0, 0, 0, 0.02));
2235
+ border-radius: 0 4px 4px 0;
2236
+ }
2237
+
2238
+ .dsh-github-md-body .dsh-github-md-hr {
2239
+ margin: 14px 0;
2240
+ border: none;
2241
+ border-top: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2242
+ }
2243
+ body[data-ds-dark-theme] .dsh-github-md-body .dsh-github-md-hr {
2244
+ border-top-color: var(--dsw-alias-border-l1, #30363d);
2245
+ }
2246
+
2247
+ .dsh-github-md-body .dsh-github-md-link {
2248
+ color: var(--dsw-alias-link, #0969da);
2249
+ text-decoration: none;
2250
+ }
2251
+ .dsh-github-md-body .dsh-github-md-link:hover {
2252
+ text-decoration: underline;
2253
+ }
2254
+ body[data-ds-dark-theme] .dsh-github-md-body .dsh-github-md-link {
2255
+ color: #58a6ff;
2256
+ }
2257
+
2258
+ /* 折叠/展开按钮:低调的文本按钮,不抢正文视觉 */
2259
+ .dsh-github-md-expand-btn {
2260
+ display: inline-flex;
2261
+ align-items: center;
2262
+ gap: 4px;
2263
+ margin: 0 0 4px 12px;
2264
+ padding: 3px 8px;
2265
+ font-size: 11px;
2266
+ font-weight: 500;
2267
+ border-radius: 5px;
2268
+ border: 1px solid var(--dsw-alias-border-l2, #d0d7de);
2269
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
2270
+ color: var(--dsw-alias-label-secondary, #57606a);
2271
+ cursor: pointer;
2272
+ transition: all 0.15s ease;
2273
+ }
2274
+ .dsh-github-md-expand-btn:hover {
2275
+ color: var(--dsw-alias-link, #0969da);
2276
+ border-color: var(--dsw-alias-link, #0969da);
2277
+ }
2278
+ body[data-ds-dark-theme] .dsh-github-md-expand-btn {
2279
+ border-color: var(--dsw-alias-border-l1, #30363d);
2280
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2281
+ color: var(--dsw-alias-label-secondary, #8b949e);
2282
+ }
2283
+ body[data-ds-dark-theme] .dsh-github-md-expand-btn:hover {
2284
+ color: #58a6ff;
2285
+ border-color: #58a6ff;
2286
+ }
2287
+
2288
+ /* 22. Issue 在线查看弹窗 (IssueDetailModal)
2289
+ *
2290
+ * 为什么是单列而不是 PR 那样的双栏:Issue 没有 diff 载荷,没有需要并排
2291
+ * 对照的第二个信息源。把宽度全部让给 Markdown 正文,行宽更接近 80 字符的
2292
+ * 可读区间,长讨论读起来比挤在左半边舒服得多。
2293
+ */
2294
+ .dsh-github-issue-modal-dialog {
2295
+ width: 92% !important;
2296
+ max-width: 880px !important;
2297
+ height: 84vh !important;
2298
+ max-height: 84vh !important;
2299
+ display: flex !important;
2300
+ flex-direction: column !important;
2301
+ overflow: hidden !important;
2302
+ padding: 0 !important;
2303
+ }
2304
+
2305
+ .dsh-github-issue-modal-header {
2306
+ padding: 12px 16px !important;
2307
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2308
+ background: var(--dsw-alias-bg-layer-1, #f6f8fa);
2309
+ flex-shrink: 0;
2310
+ }
2311
+ body[data-ds-dark-theme] .dsh-github-issue-modal-header {
2312
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
2313
+ background: var(--dsw-alias-bg-layer-1, #16161a);
2314
+ }
2315
+
2316
+ .dsh-github-issue-conversation-pane {
2317
+ padding: 16px !important;
2318
+ overflow-y: auto !important;
2319
+ flex: 1;
2320
+ min-height: 0;
2321
+ display: flex;
2322
+ flex-direction: column;
2323
+ gap: 12px;
2324
+ /* 滚到边界不把滚动传给弹窗外层,避免整页跟着滚 */
2325
+ overscroll-behavior: contain;
2326
+ }
2327
+
2328
+ /* 元数据条:标签/指派人/里程碑/关联 PR 全部以胶囊呈现,一行不够自然换行 */
2329
+ .dsh-github-issue-meta {
2330
+ display: flex;
2331
+ flex-wrap: wrap;
2332
+ align-items: center;
2333
+ gap: 6px;
2334
+ flex: 0 0 auto;
2335
+ }
2336
+ .dsh-github-issue-chip {
2337
+ display: inline-flex;
2338
+ align-items: center;
2339
+ gap: 5px;
2340
+ padding: 2px 8px;
2341
+ border-radius: 999px;
2342
+ border: 1px solid var(--dsw-alias-border-l2, #d0d7de);
2343
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
2344
+ color: var(--dsw-alias-label-secondary, #57606a);
2345
+ font-size: 11px;
2346
+ line-height: 18px;
2347
+ white-space: nowrap;
2348
+ max-width: 100%;
2349
+ overflow: hidden;
2350
+ text-overflow: ellipsis;
2351
+ }
2352
+ /* 标签胶囊自身带 label 色(行内 background/borderColor 覆盖),
2353
+ * 这里的类只用于色点与文字对其,不设背景以免行内样式失效时变成灰块 */
2354
+ .dsh-github-issue-label-chip {
2355
+ color: var(--dsw-alias-label-primary, #1f2328);
2356
+ }
2357
+ /* 逾期里程碑:用错误色描边提示「这条已经过期了」,否则和正常 milestone 长得一样 */
2358
+ .dsh-github-issue-chip-overdue {
2359
+ border-color: rgba(207, 34, 46, 0.5);
2360
+ color: var(--dsw-alias-state-error-primary, #cf222e);
2361
+ }
2362
+ body[data-ds-dark-theme] .dsh-github-issue-chip-overdue {
2363
+ border-color: rgba(248, 81, 73, 0.5);
2364
+ color: #f85149;
2365
+ }
2366
+ .dsh-github-issue-label-dot {
2367
+ width: 7px;
2368
+ height: 7px;
2369
+ border-radius: 50%;
2370
+ flex-shrink: 0;
2371
+ }
2372
+ /* 可点击的胶囊(图片清单开关、关联 PR 外链)必须有 hover 反馈,否则看不出可点 */
2373
+ .dsh-github-issue-chip-btn,
2374
+ .dsh-github-issue-chip-link {
2375
+ cursor: pointer;
2376
+ text-decoration: none;
2377
+ font-family: inherit;
2378
+ transition: border-color 0.15s ease, color 0.15s ease;
2379
+ }
2380
+ .dsh-github-issue-chip-btn:hover,
2381
+ .dsh-github-issue-chip-link:hover {
2382
+ color: var(--dsw-alias-link, #0969da);
2383
+ border-color: var(--dsw-alias-link, #0969da);
2384
+ }
2385
+ body[data-ds-dark-theme] .dsh-github-issue-chip {
2386
+ border-color: var(--dsw-alias-border-l1, #30363d);
2387
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2388
+ color: var(--dsw-alias-label-secondary, #8b949e);
2389
+ }
2390
+ body[data-ds-dark-theme] .dsh-github-issue-label-chip {
2391
+ color: var(--dsw-alias-label-primary, #f0f6fc);
2392
+ }
2393
+ body[data-ds-dark-theme] .dsh-github-issue-chip-btn:hover,
2394
+ body[data-ds-dark-theme] .dsh-github-issue-chip-link:hover {
2395
+ color: #58a6ff;
2396
+ border-color: #58a6ff;
2397
+ }
2398
+
2399
+ /* 图片清单:展开后逐行列出外链,不与正文混排 */
2400
+ .dsh-github-issue-image-badge {
2401
+ display: inline-flex;
2402
+ flex-direction: column;
2403
+ gap: 6px;
2404
+ max-width: 100%;
2405
+ }
2406
+ .dsh-github-issue-image-links {
2407
+ display: flex;
2408
+ flex-direction: column;
2409
+ gap: 3px;
2410
+ padding: 6px 8px;
2411
+ border-radius: 6px;
2412
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2413
+ background: var(--dsw-alias-bg-base, #ffffff);
2414
+ }
2415
+ body[data-ds-dark-theme] .dsh-github-issue-image-links {
2416
+ border-color: var(--dsw-alias-border-l1, #30363d);
2417
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2418
+ }
2419
+ .dsh-github-issue-image-link {
2420
+ font-size: 11px;
2421
+ font-family: ui-monospace, SFMono-Regular, SF Mono, Menlo, Consolas, monospace;
2422
+ color: var(--dsw-alias-link, #0969da);
2423
+ text-decoration: none;
2424
+ overflow: hidden;
2425
+ text-overflow: ellipsis;
2426
+ white-space: nowrap;
2427
+ }
2428
+ .dsh-github-issue-image-link:hover {
2429
+ text-decoration: underline;
2430
+ }
2431
+
2432
+ /* 正文与评论卡片:同 PR 弹窗,flex: 0 0 auto 是滚动能否工作的前提 */
2433
+ .dsh-github-issue-body-card,
2434
+ .dsh-github-issue-comment-card {
2435
+ border: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2436
+ border-radius: 6px;
2437
+ background: var(--dsw-alias-bg-base, #ffffff);
2438
+ overflow: hidden;
2439
+ /* 禁止收缩:父容器是 column flex,默认 flex-shrink:1 会压缩卡片
2440
+ * 而不是撑开父容器,导致 overflow-y:auto 永不触发(长 Issue 滚不动) */
2441
+ flex: 0 0 auto;
2442
+ }
2443
+ .dsh-github-issue-comment-card {
2444
+ margin-bottom: 10px;
2445
+ }
2446
+ body[data-ds-dark-theme] .dsh-github-issue-body-card,
2447
+ body[data-ds-dark-theme] .dsh-github-issue-comment-card {
2448
+ border-color: var(--dsw-alias-border-l1, #30363d);
2449
+ background: var(--dsw-alias-bg-layer-2, #1e1e22);
2450
+ }
2451
+
2452
+ .dsh-github-issue-comment-header {
2453
+ display: flex;
2454
+ justify-content: space-between;
2455
+ align-items: center;
2456
+ gap: 8px;
2457
+ padding: 6px 12px;
2458
+ background: var(--dsw-alias-bg-module-platform, #f6f8fa);
2459
+ border-bottom: 1px solid var(--dsw-alias-border-l2, #e1e4e8);
2460
+ font-size: 11px;
2461
+ }
2462
+ body[data-ds-dark-theme] .dsh-github-issue-comment-header {
2463
+ background: var(--dsw-alias-bg-layer-1, #16161a);
2464
+ border-bottom-color: var(--dsw-alias-border-l1, #30363d);
2465
+ }
2466
+
2467
+ /* 正文容器不加 padding:CollapsibleBody 内部的 .dsh-github-md-body 已有 12px,
2468
+ * 双层叠加会让正文比评论缩进更深,视觉上误读成引用块 */
2469
+ .dsh-github-issue-body-content {
2470
+ padding: 0;
2471
+ }
2472
+
2473
+ .dsh-github-issue-timeline-title {
2474
+ margin: 4px 0 0 0;
2475
+ font-size: 13px;
2476
+ font-weight: 600;
2477
+ color: var(--dsw-alias-label-primary, #1f2328);
2478
+ flex: 0 0 auto;
2479
+ }
2480
+ body[data-ds-dark-theme] .dsh-github-issue-timeline-title {
2481
+ color: var(--dsw-alias-label-primary, #f0f6fc);
2482
+ }
2483
+
2484
+ .dsh-github-issue-empty-timeline {
2485
+ padding: 16px 0;
2486
+ text-align: center;
2487
+ font-size: 12px;
2488
+ opacity: 0.6;
2489
+ flex: 0 0 auto;
2490
+ }
1531
2491
  `;
1532
2492
  export function injectStyles() {
1533
2493
  var styleId = "dsh-plugin-github-styles";