dsh-git-changes 0.0.0-stage → 0.1.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 (139) hide show
  1. package/LICENSE +21 -0
  2. package/README.en.md +105 -0
  3. package/README.md +122 -2
  4. package/THIRD_PARTY_NOTICES.md +12 -0
  5. package/assets/vendor/monaco/LICENSE +21 -0
  6. package/assets/vendor/monaco/ThirdPartyNotices.txt +448 -0
  7. package/assets/vendor/monaco/vs/base/browser/ui/codicons/codicon/codicon.ttf +0 -0
  8. package/assets/vendor/monaco/vs/base/common/worker/simpleWorker.nls.js +7 -0
  9. package/assets/vendor/monaco/vs/base/common/worker/simpleWorker.nls.zh-cn.js +7 -0
  10. package/assets/vendor/monaco/vs/base/worker/workerMain.js +26 -0
  11. package/assets/vendor/monaco/vs/basic-languages/abap/abap.js +10 -0
  12. package/assets/vendor/monaco/vs/basic-languages/apex/apex.js +10 -0
  13. package/assets/vendor/monaco/vs/basic-languages/azcli/azcli.js +10 -0
  14. package/assets/vendor/monaco/vs/basic-languages/bat/bat.js +10 -0
  15. package/assets/vendor/monaco/vs/basic-languages/bicep/bicep.js +11 -0
  16. package/assets/vendor/monaco/vs/basic-languages/cameligo/cameligo.js +10 -0
  17. package/assets/vendor/monaco/vs/basic-languages/clojure/clojure.js +10 -0
  18. package/assets/vendor/monaco/vs/basic-languages/coffee/coffee.js +10 -0
  19. package/assets/vendor/monaco/vs/basic-languages/cpp/cpp.js +10 -0
  20. package/assets/vendor/monaco/vs/basic-languages/csharp/csharp.js +10 -0
  21. package/assets/vendor/monaco/vs/basic-languages/csp/csp.js +10 -0
  22. package/assets/vendor/monaco/vs/basic-languages/css/css.js +12 -0
  23. package/assets/vendor/monaco/vs/basic-languages/cypher/cypher.js +10 -0
  24. package/assets/vendor/monaco/vs/basic-languages/dart/dart.js +10 -0
  25. package/assets/vendor/monaco/vs/basic-languages/dockerfile/dockerfile.js +10 -0
  26. package/assets/vendor/monaco/vs/basic-languages/ecl/ecl.js +10 -0
  27. package/assets/vendor/monaco/vs/basic-languages/elixir/elixir.js +10 -0
  28. package/assets/vendor/monaco/vs/basic-languages/flow9/flow9.js +10 -0
  29. package/assets/vendor/monaco/vs/basic-languages/freemarker2/freemarker2.js +12 -0
  30. package/assets/vendor/monaco/vs/basic-languages/fsharp/fsharp.js +10 -0
  31. package/assets/vendor/monaco/vs/basic-languages/go/go.js +10 -0
  32. package/assets/vendor/monaco/vs/basic-languages/graphql/graphql.js +10 -0
  33. package/assets/vendor/monaco/vs/basic-languages/handlebars/handlebars.js +10 -0
  34. package/assets/vendor/monaco/vs/basic-languages/hcl/hcl.js +10 -0
  35. package/assets/vendor/monaco/vs/basic-languages/html/html.js +10 -0
  36. package/assets/vendor/monaco/vs/basic-languages/ini/ini.js +10 -0
  37. package/assets/vendor/monaco/vs/basic-languages/java/java.js +10 -0
  38. package/assets/vendor/monaco/vs/basic-languages/javascript/javascript.js +10 -0
  39. package/assets/vendor/monaco/vs/basic-languages/julia/julia.js +10 -0
  40. package/assets/vendor/monaco/vs/basic-languages/kotlin/kotlin.js +10 -0
  41. package/assets/vendor/monaco/vs/basic-languages/less/less.js +11 -0
  42. package/assets/vendor/monaco/vs/basic-languages/lexon/lexon.js +10 -0
  43. package/assets/vendor/monaco/vs/basic-languages/liquid/liquid.js +10 -0
  44. package/assets/vendor/monaco/vs/basic-languages/lua/lua.js +10 -0
  45. package/assets/vendor/monaco/vs/basic-languages/m3/m3.js +10 -0
  46. package/assets/vendor/monaco/vs/basic-languages/markdown/markdown.js +10 -0
  47. package/assets/vendor/monaco/vs/basic-languages/mdx/mdx.js +10 -0
  48. package/assets/vendor/monaco/vs/basic-languages/mips/mips.js +10 -0
  49. package/assets/vendor/monaco/vs/basic-languages/msdax/msdax.js +10 -0
  50. package/assets/vendor/monaco/vs/basic-languages/mysql/mysql.js +10 -0
  51. package/assets/vendor/monaco/vs/basic-languages/objective-c/objective-c.js +10 -0
  52. package/assets/vendor/monaco/vs/basic-languages/pascal/pascal.js +10 -0
  53. package/assets/vendor/monaco/vs/basic-languages/pascaligo/pascaligo.js +10 -0
  54. package/assets/vendor/monaco/vs/basic-languages/perl/perl.js +10 -0
  55. package/assets/vendor/monaco/vs/basic-languages/pgsql/pgsql.js +10 -0
  56. package/assets/vendor/monaco/vs/basic-languages/php/php.js +10 -0
  57. package/assets/vendor/monaco/vs/basic-languages/pla/pla.js +10 -0
  58. package/assets/vendor/monaco/vs/basic-languages/postiats/postiats.js +10 -0
  59. package/assets/vendor/monaco/vs/basic-languages/powerquery/powerquery.js +10 -0
  60. package/assets/vendor/monaco/vs/basic-languages/powershell/powershell.js +10 -0
  61. package/assets/vendor/monaco/vs/basic-languages/protobuf/protobuf.js +11 -0
  62. package/assets/vendor/monaco/vs/basic-languages/pug/pug.js +10 -0
  63. package/assets/vendor/monaco/vs/basic-languages/python/python.js +10 -0
  64. package/assets/vendor/monaco/vs/basic-languages/qsharp/qsharp.js +10 -0
  65. package/assets/vendor/monaco/vs/basic-languages/r/r.js +10 -0
  66. package/assets/vendor/monaco/vs/basic-languages/razor/razor.js +10 -0
  67. package/assets/vendor/monaco/vs/basic-languages/redis/redis.js +10 -0
  68. package/assets/vendor/monaco/vs/basic-languages/redshift/redshift.js +10 -0
  69. package/assets/vendor/monaco/vs/basic-languages/restructuredtext/restructuredtext.js +10 -0
  70. package/assets/vendor/monaco/vs/basic-languages/ruby/ruby.js +10 -0
  71. package/assets/vendor/monaco/vs/basic-languages/rust/rust.js +10 -0
  72. package/assets/vendor/monaco/vs/basic-languages/sb/sb.js +10 -0
  73. package/assets/vendor/monaco/vs/basic-languages/scala/scala.js +10 -0
  74. package/assets/vendor/monaco/vs/basic-languages/scheme/scheme.js +10 -0
  75. package/assets/vendor/monaco/vs/basic-languages/scss/scss.js +12 -0
  76. package/assets/vendor/monaco/vs/basic-languages/shell/shell.js +10 -0
  77. package/assets/vendor/monaco/vs/basic-languages/solidity/solidity.js +10 -0
  78. package/assets/vendor/monaco/vs/basic-languages/sophia/sophia.js +10 -0
  79. package/assets/vendor/monaco/vs/basic-languages/sparql/sparql.js +10 -0
  80. package/assets/vendor/monaco/vs/basic-languages/sql/sql.js +10 -0
  81. package/assets/vendor/monaco/vs/basic-languages/st/st.js +10 -0
  82. package/assets/vendor/monaco/vs/basic-languages/swift/swift.js +13 -0
  83. package/assets/vendor/monaco/vs/basic-languages/systemverilog/systemverilog.js +10 -0
  84. package/assets/vendor/monaco/vs/basic-languages/tcl/tcl.js +10 -0
  85. package/assets/vendor/monaco/vs/basic-languages/twig/twig.js +10 -0
  86. package/assets/vendor/monaco/vs/basic-languages/typescript/typescript.js +10 -0
  87. package/assets/vendor/monaco/vs/basic-languages/vb/vb.js +10 -0
  88. package/assets/vendor/monaco/vs/basic-languages/wgsl/wgsl.js +307 -0
  89. package/assets/vendor/monaco/vs/basic-languages/xml/xml.js +10 -0
  90. package/assets/vendor/monaco/vs/basic-languages/yaml/yaml.js +10 -0
  91. package/assets/vendor/monaco/vs/editor/editor.main.css +6 -0
  92. package/assets/vendor/monaco/vs/editor/editor.main.js +744 -0
  93. package/assets/vendor/monaco/vs/editor/editor.main.nls.js +28 -0
  94. package/assets/vendor/monaco/vs/editor/editor.main.nls.zh-cn.js +30 -0
  95. package/assets/vendor/monaco/vs/language/css/cssMode.js +13 -0
  96. package/assets/vendor/monaco/vs/language/css/cssWorker.js +81 -0
  97. package/assets/vendor/monaco/vs/language/html/htmlMode.js +13 -0
  98. package/assets/vendor/monaco/vs/language/html/htmlWorker.js +453 -0
  99. package/assets/vendor/monaco/vs/language/json/jsonMode.js +15 -0
  100. package/assets/vendor/monaco/vs/language/json/jsonWorker.js +36 -0
  101. package/assets/vendor/monaco/vs/language/typescript/tsMode.js +20 -0
  102. package/assets/vendor/monaco/vs/language/typescript/tsWorker.js +37016 -0
  103. package/assets/vendor/monaco/vs/loader.js +10 -0
  104. package/cordis.patch.yml +3 -0
  105. package/docs/images/git-changes-diff.png +0 -0
  106. package/icon.svg +10 -0
  107. package/lib/client.js +9418 -0
  108. package/lib/host/assets.js +161 -0
  109. package/lib/host/commit-message.js +158 -0
  110. package/lib/host/files-index.js +206 -0
  111. package/lib/host/git-write.js +194 -0
  112. package/lib/host/git.js +1147 -0
  113. package/lib/host/lsp.js +842 -0
  114. package/lib/host/routes.js +976 -0
  115. package/lib/host/session.js +84 -0
  116. package/lib/host/util.js +107 -0
  117. package/lib/index.js +33 -0
  118. package/licenses/dsh-vscode-mode-LICENSE +21 -0
  119. package/licenses/vscode-theme-seti-LICENSE +21 -0
  120. package/licenses/vscode-theme-seti-ThirdPartyNotices.txt +32 -0
  121. package/locale/en.json +6 -0
  122. package/locale/zh.json +6 -0
  123. package/package.json +63 -3
  124. package/src/client/00-const.js +79 -0
  125. package/src/client/05-utils.js +277 -0
  126. package/src/client/10-i18n.js +548 -0
  127. package/src/client/12-vscode-icons.js +460 -0
  128. package/src/client/15-theme.js +509 -0
  129. package/src/client/20-monaco.js +1404 -0
  130. package/src/client/22-lsp.js +592 -0
  131. package/src/client/25-tree.js +563 -0
  132. package/src/client/28-changes.js +1163 -0
  133. package/src/client/30-page.js +2259 -0
  134. package/src/client/35-pill.js +185 -0
  135. package/src/client/40-commands.js +248 -0
  136. package/src/client/45-css.js +357 -0
  137. package/src/client/47-pickers.js +457 -0
  138. package/src/client/50-apply.js +207 -0
  139. package/src/client/99-footer.js +62 -0
@@ -0,0 +1,357 @@
1
+ /* dsh-git-changes client half — stylesheet (injected as one <style> element). */
2
+
3
+ /** All plugin styles; tokens are DSH `--dsw-alias-*` with literal fallbacks. Never redefine `--dsw-*`. */
4
+ const STYLE_TEXT = [
5
+ '[data-dsh-git-changes-page]{display:flex;flex:1 1 auto;min-height:0;min-width:0;height:100%;position:relative;color:var(--dsw-alias-label-primary,#e6e6e6);background:var(--dsw-alias-bg-base,#111);font-size:13px;}',
6
+ '[data-dsh-git-changes-page],[data-dsh-git-changes-page] *{box-sizing:border-box;}',
7
+ '.drp-main{display:flex;flex-direction:column;flex:1 1 auto;min-width:0;min-height:0;position:relative;}',
8
+ '.drp-toolbar{display:flex;flex-direction:column;gap:4px;padding:6px 8px 5px;border-bottom:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.22));flex:0 0 auto;}',
9
+ '.drp-toolbar-row{display:flex;align-items:center;gap:4px;min-width:0;}',
10
+ '.drp-spacer{flex:1 1 auto;min-width:0;}',
11
+ '.drp-path{flex:1 1 auto;font-family:var(--dsh-code-font-family,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);font-size:11.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0;}',
12
+ '.drp-icon-btn{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:24px;height:24px;padding:0;border:1px solid transparent;border-radius:6px;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:13px;line-height:1;cursor:pointer;user-select:none;}',
13
+ '.drp-icon-btn:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.07));color:var(--dsw-alias-label-primary,#eee);}',
14
+ '.drp-icon-btn:disabled{opacity:.38;cursor:default;}',
15
+ '.drp-icon-btn-on{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.07));color:var(--dsw-alias-brand-primary,#4f8cff);}',
16
+ '.drp-change-nav{display:inline-flex;align-items:center;flex:0 0 auto;}',
17
+ '.drp-change-nav-count{min-width:28px;text-align:center;font-size:10.5px;color:var(--dsw-alias-label-tertiary,#8b949e);font-variant-numeric:tabular-nums;user-select:none;}',
18
+ '.drp-seg{display:inline-flex;align-items:center;flex:0 0 auto;max-width:100%;padding:2px;gap:2px;border:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.28));border-radius:8px;background:var(--dsw-alias-bg-layer-1,rgba(255,255,255,.03));overflow:hidden;}',
19
+ '.drp-seg-btn{flex:0 1 auto;min-width:0;padding:2px 8px;border:0;border-radius:6px;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:11.5px;line-height:18px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;}',
20
+ '.drp-seg-btn:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));color:var(--dsw-alias-label-primary,#eee);}',
21
+ '.drp-seg-btn-on{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.1));color:var(--dsw-alias-label-primary,#fff);box-shadow:inset 0 0 0 1px var(--dsw-alias-border-l2,rgba(128,128,128,.36));}',
22
+ '.drp-seg-btn-disabled{opacity:.38;cursor:default;}',
23
+ '.drp-hunk-meta{flex:0 0 auto;font-size:11px;color:var(--dsw-alias-label-secondary,#9aa4b2);white-space:nowrap;padding:0 2px;max-width:110px;overflow:hidden;text-overflow:ellipsis;}',
24
+ '.drp-tabs{display:flex;align-items:center;gap:2px;flex:0 0 auto;height:29px;padding:2px 6px 0;overflow-x:auto;overflow-y:hidden;border-bottom:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.22)));background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-1,rgba(255,255,255,.02)));scrollbar-width:thin;}',
25
+ '.drp-tab{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;height:25px;max-width:180px;padding:0 4px 0 9px;border:0;border-radius:6px 6px 0 0;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:11.5px;cursor:pointer;white-space:nowrap;}',
26
+ '.drp-tab:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));color:var(--dsw-alias-label-primary,#eee);}',
27
+ '.drp-tab-active{background:var(--dsw-alias-bg-base,#111);color:var(--dsw-alias-label-primary,#fff);box-shadow:inset 0 -2px 0 var(--dsw-alias-brand-primary,#4f8cff);}',
28
+ '.drp-tab-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
29
+ '.drp-tab-close{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:16px;height:16px;border:0;border-radius:4px;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:10px;line-height:1;cursor:pointer;}',
30
+ '.drp-tab-close:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.12));color:var(--dsw-alias-label-primary,#fff);}',
31
+ '.drp-body{position:relative;flex:1 1 auto;min-height:0;min-width:0;overflow:hidden;}',
32
+ '.drp-monaco-host{position:absolute;inset:0;min-width:0;min-height:0;overflow:hidden;background:var(--dsw-alias-bg-base,#171b21);}',
33
+ '.drp-monaco-host > div{position:absolute;inset:0;min-width:0;min-height:0;}',
34
+ '.drp-loading{display:flex;align-items:center;justify-content:center;gap:8px;height:100%;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:12px;}',
35
+ '.drp-spinner{width:14px;height:14px;border:2px solid var(--dsw-alias-border-l2,rgba(128,128,128,.4));border-top-color:var(--dsw-alias-brand-primary,#4f8cff);border-radius:50%;animation:drp-spin .8s linear infinite;display:inline-block;}',
36
+ '@keyframes drp-spin{to{transform:rotate(360deg)}}',
37
+ '.drp-empty,.drp-handoff{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;height:100%;padding:20px;text-align:center;color:var(--dsw-alias-label-secondary,#9aa4b2);}',
38
+ '.drp-empty-icon{font-size:22px;opacity:.7;}',
39
+ '.drp-empty-title{font-size:13px;font-weight:600;color:var(--dsw-alias-label-primary,#eee);}',
40
+ '.drp-empty-body{font-size:11.5px;line-height:1.55;max-width:380px;}',
41
+ '.drp-empty-hint{font-size:11px;color:var(--dsw-alias-brand-primary,#4f8cff);}',
42
+ '.drp-handoff{justify-content:flex-start;padding-top:28px;}',
43
+ '.drp-handoff-icon{font-size:24px;opacity:.8;}',
44
+ '.drp-handoff-title{font-size:13px;font-weight:600;color:var(--dsw-alias-label-primary,#eee);}',
45
+ '.drp-handoff-path{font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:11px;max-width:100%;overflow-wrap:anywhere;}',
46
+ '.drp-handoff-body{font-size:11.5px;line-height:1.55;max-width:420px;}',
47
+ '.drp-handoff-actions{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:4px;}',
48
+ '.drp-handoff-note{font-size:10.5px;opacity:.75;max-width:420px;line-height:1.5;}',
49
+ '.drp-btn{display:inline-flex;align-items:center;gap:4px;height:26px;padding:0 10px;border:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.3));border-radius:6px;background:var(--dsw-alias-bg-layer-1,rgba(255,255,255,.03));color:var(--dsw-alias-label-primary,#eee);font-size:11.5px;cursor:pointer;}',
50
+ '.drp-btn:hover:not(:disabled){background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.08));}',
51
+ '.drp-btn:disabled{opacity:.4;cursor:default;}',
52
+ '.drp-btn-primary{border-color:var(--dsw-alias-brand-primary,#4f8cff);background:color-mix(in srgb,var(--dsw-alias-brand-primary,#4f8cff) 16%,transparent);}',
53
+ '.drp-status{display:flex;align-items:center;gap:8px;flex:0 0 auto;height:23px;padding:0 8px;border-top:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.22)));font-size:10.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;white-space:nowrap;background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-1,rgba(255,255,255,.02)));}',
54
+ '.drp-status > span{overflow:hidden;text-overflow:ellipsis;}',
55
+ '.drp-status-text{flex:1 1 auto;min-width:0;text-align:left;}',
56
+ '.drp-tree-panel{flex:0 0 auto;display:flex;flex-direction:column;min-height:0;border-left:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.24)));background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-1,rgba(255,255,255,.02)));overflow:hidden;}',
57
+ '.drp-tree-resizer{flex:0 0 auto;width:4px;cursor:col-resize;background:transparent;}',
58
+ '.drp-tree-resizer:hover{background:var(--dsw-alias-brand-primary,#4f8cff);opacity:.5;}',
59
+ '.drp-tree{display:flex;flex-direction:column;min-height:0;height:100%;min-width:0;}',
60
+ '.drp-tree-head{display:flex;align-items:center;gap:2px;flex:0 0 auto;padding:3px 4px 3px 8px;border-bottom:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.18));}',
61
+ '.drp-tree-title{flex:1 1 auto;min-width:0;font-size:10.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
62
+ '.drp-tree-body{flex:1 1 auto;min-height:0;overflow:auto;padding:2px 0 12px;scrollbar-width:thin;}',
63
+ '.drp-tree-row{display:flex;align-items:center;gap:3px;height:22px;padding-right:6px;font-size:12px;line-height:22px;cursor:pointer;white-space:nowrap;color:var(--dsw-alias-label-secondary,#b6bec9);user-select:none;}',
64
+ '.drp-tree-row:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));color:var(--dsw-alias-label-primary,#eee);}',
65
+ '.drp-tree-active{background:color-mix(in srgb,var(--dsw-alias-brand-primary,#4f8cff) 16%,transparent);color:var(--dsw-alias-label-primary,#fff);}',
66
+ '.drp-tree-twist{flex:0 0 8px;width:8px;opacity:.55;font-size:9px;}',
67
+ '.drp-tree-icon{flex:0 0 15px;width:15px;text-align:center;font-size:9.5px;opacity:.75;font-family:var(--dsh-code-font-family,monospace);}',
68
+ '.drp-tree-icon-dir{font-size:9px;}',
69
+ '.drp-tree-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;}',
70
+ '.drp-tree-note{flex:0 0 auto;font-size:9.5px;opacity:.6;padding-left:6px;}',
71
+ '.drp-tree-error{color:var(--dsw-alias-state-error-primary,#ff6b6b);opacity:1;}',
72
+ '.drp-tree-empty{padding:10px 12px;font-size:11px;color:var(--dsw-alias-label-secondary,#9aa4b2);}',
73
+ '.drp-badge{display:inline-flex;align-items:center;gap:4px;flex:0 0 auto;margin-left:auto;padding-left:6px;font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:10px;}',
74
+ '.drp-badge-add{color:var(--dsw-alias-state-success-primary,#3fb950);}',
75
+ '.drp-badge-del{color:var(--dsw-alias-state-error-primary,#f85149);}',
76
+ '.drp-badge-muted{color:var(--dsw-alias-label-secondary,#9aa4b2);opacity:.8;}',
77
+ '.drp-lsp-toast{position:absolute;right:10px;bottom:32px;z-index:75;width:min(360px,calc(100% - 20px));display:flex;flex-direction:column;gap:6px;padding:8px 10px;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l2,rgba(128,128,128,.4)));border-radius:10px;background:var(--drp-panel-bg,var(--dsw-alias-bg-overlay,#fff));font-size:10.5px;color:var(--dsw-alias-label-secondary,#c8d1da);}',
78
+ '.drp-lsp-toast-head{display:flex;align-items:center;justify-content:space-between;gap:6px;}',
79
+ '.drp-lsp-toast-title{flex:1 1 auto;min-width:0;font-size:11.5px;font-weight:600;color:var(--drp-panel-text,var(--dsw-alias-label-primary,#eee));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
80
+ '.drp-lsp-toast-body{line-height:1.5;}',
81
+ '.drp-lsp-toast-cmd{padding:2px 5px;border-radius:4px;border:1px solid var(--drp-panel-border,rgba(128,128,128,.3));background:var(--drp-panel-bg-2,#f3f4f6);font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:10px;color:var(--drp-panel-text,#1f2328);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
82
+ '.drp-lsp-toast-actions{display:flex;gap:6px;justify-content:flex-end;}',
83
+ '.drp-git-badge{flex:0 0 auto;margin-left:auto;min-width:16px;padding:0 2px;text-align:center;font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:11px;font-weight:700;line-height:16px;letter-spacing:.2px;}',
84
+ '.drp-git-M{color:var(--drp-git-M,#e3b341);}',
85
+ '.drp-git-A{color:var(--drp-git-A,#56d364);}',
86
+ '.drp-git-D{color:var(--drp-git-D,#ff7b72);}',
87
+ '.drp-git-R,.drp-git-C{color:var(--drp-git-R,#79c0ff);}',
88
+ '.drp-git-other{color:var(--drp-git-U,#79c0ff);}',
89
+ '.drp-drawer-overlay{position:absolute;inset:0;z-index:20;background:rgba(0,0,0,.28);display:flex;justify-content:flex-end;}',
90
+ '.drp-drawer{height:100%;max-width:88%;display:flex;min-height:0;background:var(--dsw-alias-bg-layer-1,#171b21);border-left:1px solid var(--dsw-alias-border-l2,rgba(128,128,128,.4));box-shadow:-8px 0 24px rgba(0,0,0,.28);}',
91
+ '.drp-dropdown{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;}',
92
+ '.drp-ctx-menu{position:fixed;z-index:80;min-width:184px;padding:4px;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.3)));border-radius:8px;background:var(--drp-panel-bg,var(--dsw-alias-bg-overlay,#ffffff));box-shadow:none;}',
93
+ '.drp-dropdown-menu{position:absolute;top:27px;right:0;z-index:30;min-width:172px;padding:4px;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.3)));border-radius:8px;background:var(--drp-panel-bg,var(--dsw-alias-bg-overlay,#ffffff));box-shadow:none;}',
94
+ '.drp-menu-item{display:block;width:100%;padding:5px 9px;border:0;border-radius:5px;background:transparent;color:var(--dsw-alias-label-primary,#eee);font-size:11.5px;text-align:left;white-space:nowrap;cursor:pointer;}',
95
+ '.drp-menu-item:hover{background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-2,rgba(255,255,255,.08)));}',
96
+ '.drp-menu-item:disabled{opacity:.45;cursor:default;}',
97
+ '.drp-menu-item-on{color:var(--dsw-alias-brand-primary,#4f8cff);}',
98
+ '.drp-menu-label{display:block;}',
99
+ '.drp-menu-hint{display:block;padding-left:14px;font-size:10px;line-height:13px;color:var(--dsw-alias-label-tertiary,#8b949e);white-space:nowrap;}',
100
+ '.drp-menu-sep{height:1px;margin:4px 2px;background:var(--dsw-alias-border-l1,rgba(128,128,128,.24));}',
101
+ '.drp-mode-btn{display:inline-flex;align-items:center;gap:4px;height:24px;max-width:190px;padding:0 6px 0 9px;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.28)));border-radius:6px;background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-1,rgba(255,255,255,.03)));color:var(--drp-panel-text,var(--dsw-alias-label-secondary,#9aa4b2));font-size:11.5px;line-height:1;cursor:pointer;overflow:hidden;}',
102
+ '.drp-mode-btn:hover{color:var(--drp-panel-text,var(--dsw-alias-label-primary,#eee));background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-2,rgba(255,255,255,.08)));}',
103
+ '.drp-mode-btn-open{color:var(--drp-panel-text,var(--dsw-alias-label-primary,#fff));box-shadow:inset 0 0 0 1px var(--dsw-alias-brand-primary,#4f8cff);}',
104
+ '.drp-caret{flex:0 0 auto;font-size:9px;opacity:.7;}',
105
+ '.drp-picker-backdrop{position:absolute;inset:0;z-index:90;display:flex;justify-content:center;align-items:flex-start;padding-top:8%;background:rgba(0,0,0,.18);}',
106
+ '.drp-picker{display:flex;flex-direction:column;width:min(560px,calc(100% - 24px));max-height:64%;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l2,rgba(128,128,128,.4)));border-radius:10px;background:var(--drp-panel-bg,var(--dsw-alias-bg-overlay,#ffffff));overflow:hidden;}',
107
+ '.drp-picker-head{display:flex;align-items:center;justify-content:space-between;gap:6px;padding:6px 8px 4px 10px;}',
108
+ '.drp-picker-title{font-size:11.5px;font-weight:600;color:var(--dsw-alias-label-primary,#eee);}',
109
+ '.drp-picker-input{flex:0 0 auto;margin:0 8px;height:28px;padding:0 8px;border:1px solid var(--drp-panel-border,var(--dsw-alias-border-l1,rgba(128,128,128,.3)));border-radius:6px;background:var(--drp-panel-bg-2,var(--dsw-alias-bg-base,#fff));color:var(--drp-panel-text,var(--dsw-alias-label-primary,#111));font-size:12px;outline:none;}',
110
+ '.drp-picker-input:focus{border-color:var(--dsw-alias-brand-primary,#4f8cff);}',
111
+ '.drp-picker-status{flex:0 0 auto;padding:4px 10px 2px;font-size:10.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
112
+ '.drp-picker-list{flex:1 1 auto;min-height:0;overflow:auto;padding:2px 4px 6px;}',
113
+ '.drp-picker-row{display:flex;align-items:baseline;gap:8px;padding:4px 8px;border-radius:5px;cursor:pointer;min-width:0;}',
114
+ '.drp-picker-row:hover,.drp-picker-row-active{background:var(--drp-panel-bg-2,var(--dsw-alias-bg-layer-2,rgba(128,128,128,.16)));}',
115
+ '.drp-picker-primary{flex:0 1 auto;font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:11.5px;color:var(--drp-panel-text,var(--dsw-alias-label-primary,#eee));overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
116
+ '.drp-picker-secondary{flex:1 1 auto;min-width:0;font-size:10.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
117
+ '.drp-picker-empty{padding:14px 10px;font-size:11.5px;color:var(--dsw-alias-label-secondary,#9aa4b2);text-align:center;}',
118
+ '.drp-picker-foot{flex:0 0 auto;padding:4px 10px 6px;font-size:10px;color:var(--dsw-alias-label-secondary,#9aa4b2);border-top:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.2));}',
119
+ /* Git-version picker: scope toggle row, commit rows and the typed raw-revision row. */
120
+ '.drp-picker-scope{display:flex;align-items:center;gap:8px;flex:0 0 auto;min-width:0;padding:2px 8px 2px 10px;}',
121
+ '.drp-picker-scope-label{flex:1 1 auto;min-width:0;font-size:10.5px;line-height:16px;color:var(--dsw-alias-label-secondary,#9aa4b2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
122
+ '.drp-picker-row-rev .drp-picker-secondary{font-family:var(--dsh-code-font-family,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace);font-size:10px;}',
123
+ '.drp-picker-row-raw .drp-picker-primary{color:var(--dsw-alias-brand-primary,#4f8cff);font-family:inherit;}',
124
+ '.drp-git-badge{flex:0 0 auto;margin-left:auto;padding-left:6px;font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:9.5px;font-weight:600;}',
125
+ '.drp-git-M{color:var(--dsw-alias-state-warn-primary,#d29922);}',
126
+ '.drp-git-A{color:var(--dsw-alias-state-success-primary,#3fb950);}',
127
+ '.drp-git-D{color:var(--dsw-alias-state-error-primary,#f85149);}',
128
+ '.drp-git-R,.drp-git-C{color:var(--dsw-alias-state-business-primary,#4f8cff);}',
129
+ '.drp-git-other{color:var(--dsw-alias-label-secondary,#9aa4b2);}',
130
+ '.drp-view-wrap{display:flex;flex-direction:column;height:100%;min-height:0;}',
131
+ '.drp-view-hint{flex:0 0 auto;padding:6px 10px;font-size:11px;color:var(--dsw-alias-state-warn-primary,#d29922);border-bottom:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.2));}',
132
+ '.drp-pill-row{display:flex;align-items:center;justify-content:center;padding:2px 12px 6px;min-width:0;}',
133
+ '.drp-pill{display:inline-flex;align-items:center;gap:8px;max-width:100%;height:28px;padding:0 11px;border:1px solid var(--dsw-alias-border-l1,rgba(128,128,128,.3));border-radius:14px;background:var(--dsw-alias-bg-layer-1,rgba(255,255,255,.04));color:var(--dsw-alias-label-primary,#eee);font-size:11.5px;cursor:pointer;overflow:hidden;}',
134
+ '.drp-pill:hover{border-color:var(--dsw-alias-brand-primary,#4f8cff);background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.07));}',
135
+ '.drp-pill-icon{flex:0 0 auto;color:var(--dsw-alias-brand-primary,#4f8cff);font-size:12px;}',
136
+ '.drp-pill-text{display:inline-flex;align-items:center;gap:8px;min-width:0;overflow:hidden;}',
137
+ '.drp-pill-count{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
138
+ '.drp-pill-stats{display:inline-flex;align-items:center;gap:6px;font-family:var(--dsh-code-font-family,ui-monospace,monospace);font-size:10.5px;flex:0 0 auto;}',
139
+ '.drp-pill-open{flex:0 0 auto;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:10.5px;white-space:nowrap;}',
140
+ '.drp-pill-error{font-size:11px;color:var(--dsw-alias-state-warn-primary,#d29922);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
141
+ '.drp-root-narrow .drp-mode-btn{max-width:116px;}',
142
+ '.drp-root-narrow .drp-status{gap:6px;}',
143
+ '.drp-root-narrow .drp-toolbar{padding:5px 6px 4px;}',
144
+ /* Inline diff decorations (new lines: whole-line tint + gutter sign). */
145
+ '[data-dsh-git-changes-page] .drp-add-line{background:var(--drp-diff-add,#d7f0dc);box-shadow:inset 2px 0 0 var(--drp-diff-add-accent,#4ac26b);}',
146
+ '[data-dsh-git-changes-page] .drp-add-gutter{background:var(--drp-diff-add,#e6f4e8);color:var(--dsw-alias-state-success-primary,#0f9d58)!important;display:flex!important;align-items:center;justify-content:center;}',
147
+ '[data-dsh-git-changes-page] .drp-add-gutter::before{content:"+";font-weight:600;}',
148
+ /* Inline diff view zones (deleted lines: inline block with original line numbers). */
149
+ '[data-dsh-git-changes-page] .drp-del-zone,[data-dsh-git-changes-page] .drp-del-margin{background:var(--drp-diff-del,#ffd9d3);color:var(--drp-diff-fg,#1e1e1e);}',
150
+ '[data-dsh-git-changes-page] .drp-del-zone{box-shadow:inset 2px 0 0 var(--drp-diff-del-accent,#f06a6a);}',
151
+ '[data-dsh-git-changes-page] .drp-del-zone{overflow:hidden;}',
152
+ '[data-dsh-git-changes-page] .drp-del-row{white-space:pre;height:var(--drp-line-height,20px);line-height:var(--drp-line-height,20px);}',
153
+ '[data-dsh-git-changes-page] .drp-del-text{display:inline-block;white-space:pre;}',
154
+ '[data-dsh-git-changes-page] .drp-del-margin{position:relative;overflow:hidden;}',
155
+ '[data-dsh-git-changes-page] .drp-del-margin-row{position:relative;height:var(--drp-line-height,20px);line-height:var(--drp-line-height,20px);}',
156
+ '[data-dsh-git-changes-page] .drp-del-number{position:absolute;left:var(--drp-number-left,0);width:var(--drp-number-width,32px);color:var(--drp-diff-number,#8c8c8c);text-align:right;}',
157
+ '[data-dsh-git-changes-page] .drp-del-marker{position:absolute;left:var(--drp-marker-left,0);width:var(--drp-marker-width,14px);color:var(--dsw-alias-state-error-primary,#d9534f);text-align:center;}',
158
+ /* ===== VS Code 1.131 pixel reference (Dark/Light Modern, Modern UI) ===== */
159
+ /* Palette from VS Code theme-defaults dark_modern.json / light_modern.json. */
160
+ '[data-dsh-git-changes-page][data-drp-scheme="dark"]{--drp-vsc-bg:#181818;--drp-vsc-fg:#cccccc;--drp-vsc-hover:#2a2d2e;--drp-vsc-sel:#04395e;--drp-vsc-sel-fg:#ffffff;--drp-vsc-inactive-sel:#37373d;--drp-vsc-focus:#0078d4;--drp-vsc-border:#2b2b2b;--drp-vsc-tab-strip:#2b2b2b;--drp-vsc-tab-active:#1f1f1f;--drp-vsc-tab-active-fg:#cccccc;--drp-vsc-tab-inactive-fg:#9d9d9d;--drp-vsc-tab-hover:#353535;--drp-vsc-divider:#252526;--drp-vsc-editor-bg:#1f1f1f;--drp-git-M:#e2c08d;--drp-git-A:#81b88b;--drp-git-D:#c74e39;--drp-git-R:#73c991;--drp-git-U:#73c991;--drp-vsc-scroll:#79797966;--drp-vsc-scroll-hover:#646464b3;}',
161
+ '[data-dsh-git-changes-page][data-drp-scheme="light"]{--drp-vsc-bg:#f8f8f8;--drp-vsc-fg:#3b3b3b;--drp-vsc-hover:#f2f2f2;--drp-vsc-sel:#e8e8e8;--drp-vsc-sel-fg:#000000;--drp-vsc-inactive-sel:#e4e6f1;--drp-vsc-focus:#005fb8;--drp-vsc-border:#e5e5e5;--drp-vsc-tab-strip:#e5e5e5;--drp-vsc-tab-active:#ffffff;--drp-vsc-tab-active-fg:#3b3b3b;--drp-vsc-tab-inactive-fg:#616161;--drp-vsc-tab-hover:#dbdbdb;--drp-vsc-divider:#f3f3f3;--drp-vsc-editor-bg:#ffffff;--drp-git-M:#895503;--drp-git-A:#007100;--drp-git-D:#ad0707;--drp-git-R:#007100;--drp-git-U:#007100;--drp-vsc-scroll:#64646466;--drp-vsc-scroll-hover:#646464b3;}',
162
+ /* VS Code UI font stack (Windows) */
163
+ '[data-dsh-git-changes-page]{font-family:"Segoe WPC","Segoe UI","Microsoft YaHei UI",sans-serif;}',
164
+ '[data-dsh-git-changes-page] .drp-codicon{font-family:"codicon";font-style:normal;font-weight:normal;font-variant:normal;text-transform:none;line-height:1;display:inline-flex;align-items:center;justify-content:center;speak:none;-webkit-font-smoothing:antialiased;}',
165
+ '@font-face{font-family:"codicon";src:url("/dsh-git-changes/monaco/vs/base/browser/ui/codicons/codicon/codicon.ttf") format("truetype");font-weight:normal;font-style:normal;font-display:block;}',
166
+ '[data-dsh-git-changes-page] .drp-seti-icon{display:inline-flex;flex:0 0 22px;width:22px;height:22px;align-items:center;justify-content:center;padding-right:6px;font-family:"seti";font-size:19.5px;line-height:22px;font-weight:normal;font-style:normal;box-sizing:border-box;overflow:hidden;}',
167
+ /* Explorer tree */
168
+ '[data-dsh-git-changes-page] .drp-tree{background:var(--drp-vsc-bg);color:var(--drp-vsc-fg);font:400 13px/22px "Segoe WPC","Segoe UI",sans-serif;}',
169
+ '[data-dsh-git-changes-page] .drp-tree-head{display:flex;align-items:center;gap:2px;height:28px;margin:0 4px;padding:0 2px 0 2px;background:var(--drp-vsc-bg);border-radius:4px;box-shadow:inset 0 1px 0 var(--drp-vsc-border);flex:0 0 auto;}',
170
+ '[data-dsh-git-changes-page] .drp-tree-head-chevron{display:flex;align-items:center;justify-content:center;width:16px;height:16px;color:var(--drp-vsc-fg);opacity:.9;font-size:10px;}',
171
+ '[data-dsh-git-changes-page] .drp-tree-title{flex:1 1 auto;min-width:0;font-size:12px;font-weight:600;color:var(--drp-vsc-fg);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
172
+ '[data-dsh-git-changes-page] .drp-tree-action{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto;width:22px;height:22px;padding:0;border:0;border-radius:4px;background:transparent;color:var(--drp-vsc-fg);font-size:14px;cursor:pointer;}',
173
+ '[data-dsh-git-changes-page] .drp-tree-action:hover{background:var(--drp-vsc-hover);}',
174
+ '[data-dsh-git-changes-page] .drp-tree-action-on{color:var(--drp-vsc-focus);}',
175
+ '[data-dsh-git-changes-page] .drp-tree-body{flex:1 1 auto;min-height:0;overflow:auto;padding:4px 0 8px;scrollbar-width:thin;scrollbar-color:var(--drp-vsc-scroll) transparent;}',
176
+ '[data-dsh-git-changes-page] .drp-tree-body::-webkit-scrollbar{width:8px;height:8px;}',
177
+ '[data-dsh-git-changes-page] .drp-tree-body::-webkit-scrollbar-thumb{background:var(--drp-vsc-scroll);border-radius:4px;}',
178
+ '[data-dsh-git-changes-page] .drp-tree-body::-webkit-scrollbar-thumb:hover{background:var(--drp-vsc-scroll-hover);}',
179
+ '[data-dsh-git-changes-page] .drp-tree-body::-webkit-scrollbar-corner{background:transparent;}',
180
+ '[data-dsh-git-changes-page] .drp-tree-row{display:flex;align-items:center;height:22px;line-height:22px;margin:0;padding:0 8px 0 0;border-radius:4px;color:var(--drp-vsc-fg);font-size:12px;white-space:nowrap;cursor:pointer;user-select:none;}',
181
+ '[data-dsh-git-changes-page] .drp-tree-row:hover{background:var(--drp-vsc-hover);color:var(--drp-vsc-fg);}',
182
+ '[data-dsh-git-changes-page] .drp-tree-active,[data-dsh-git-changes-page] .drp-tree-active:hover{background:var(--drp-vsc-sel);color:var(--drp-vsc-sel-fg);}',
183
+ '[data-dsh-git-changes-page] .drp-tree-twisty{display:inline-flex;flex:0 0 22px;width:22px;height:22px;align-items:center;justify-content:center;padding-right:6px;box-sizing:border-box;font-size:10px;color:inherit;opacity:.95;}',
184
+ '[data-dsh-git-changes-page] .drp-tree-twisty .drp-codicon{font-size:10px;transform:translateX(3px);}',
185
+ '[data-dsh-git-changes-page] .drp-tree-file .drp-tree-twisty{flex:0 0 0;width:0;padding:0;visibility:hidden;}',
186
+ '[data-dsh-git-changes-page] .drp-tree-icon{display:inline-flex;flex:0 0 22px;width:22px;height:22px;align-items:center;justify-content:center;padding-right:6px;box-sizing:border-box;font-size:13px;color:inherit;opacity:1;}',
187
+ '[data-dsh-git-changes-page] .drp-tree-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;font-size:12px;color:inherit;}',
188
+ '[data-dsh-git-changes-page] .drp-tree-note{flex:0 0 auto;font-size:11px;opacity:.7;padding-left:6px;color:var(--drp-vsc-fg);}',
189
+ '[data-dsh-git-changes-page] .drp-tree-error{color:var(--dsw-alias-state-error-primary,#f85149);opacity:1;}',
190
+ '[data-dsh-git-changes-page] .drp-tree-empty{padding:10px 12px;font-size:12px;color:var(--drp-vsc-fg);opacity:.8;}',
191
+ '[data-dsh-git-changes-page] .drp-badge{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;margin-left:auto;padding-left:8px;font-family:"Segoe WPC","Segoe UI",sans-serif;font-size:11px;line-height:22px;}',
192
+ '[data-dsh-git-changes-page] .drp-badge-add{color:var(--drp-git-A);}',
193
+ '[data-dsh-git-changes-page] .drp-badge-del{color:var(--drp-git-D);}',
194
+ '[data-dsh-git-changes-page] .drp-badge-muted{color:var(--drp-vsc-fg);opacity:.7;}',
195
+ '[data-dsh-git-changes-page] .drp-git-badge{flex:0 0 auto;margin-left:auto;padding-left:8px;font-family:"Segoe WPC","Segoe UI",sans-serif;font-size:12px;font-weight:600;line-height:22px;}',
196
+ '[data-dsh-git-changes-page] .drp-git-M{color:var(--drp-git-M);}',
197
+ '[data-dsh-git-changes-page] .drp-git-A{color:var(--drp-git-A);}',
198
+ '[data-dsh-git-changes-page] .drp-git-D{color:var(--drp-git-D);}',
199
+ '[data-dsh-git-changes-page] .drp-git-R,[data-dsh-git-changes-page] .drp-git-C{color:var(--drp-git-R);}',
200
+ '[data-dsh-git-changes-page] .drp-git-other{color:var(--drp-git-U);}',
201
+ '[data-dsh-git-changes-page] .drp-tree-panel{background:var(--drp-vsc-bg);border-left:1px solid var(--drp-vsc-border);}',
202
+ '[data-dsh-git-changes-page] .drp-tree-resizer:hover{background:var(--drp-vsc-focus);opacity:.35;}',
203
+ /* Editor tabs — VS Code 1.131 Modern UI "connected" style. */
204
+ '[data-dsh-git-changes-page] .drp-tabs{display:flex;align-items:flex-start;flex:0 0 auto;height:29px;padding:0;gap:0;background:var(--drp-vsc-tab-strip);border-bottom:0;overflow-x:auto;overflow-y:hidden;scrollbar-width:none;font:400 13px/24px "Segoe WPC","Segoe UI",sans-serif;}',
205
+ '[data-dsh-git-changes-page] .drp-tabs::-webkit-scrollbar{display:none;}',
206
+ '[data-dsh-git-changes-page] .drp-tab{position:relative;display:inline-flex;align-items:center;flex:0 0 auto;height:28px;max-width:220px;padding:0 28px 0 6px;border:0;border-radius:0;background:transparent;color:var(--drp-vsc-tab-inactive-fg);font-size:13px;line-height:24px;cursor:pointer;white-space:nowrap;}',
207
+ '[data-dsh-git-changes-page] .drp-tab:hover{color:var(--drp-vsc-tab-inactive-fg);}',
208
+ '[data-dsh-git-changes-page] .drp-tab-fill{position:absolute;inset:2px 2px -1px 2px;border-radius:4px;background:var(--drp-vsc-tab-strip);pointer-events:none;}',
209
+ '[data-dsh-git-changes-page] .drp-tab:hover:not(.drp-tab-active) .drp-tab-fill{background:var(--drp-vsc-tab-hover);}',
210
+ '[data-dsh-git-changes-page] .drp-tab-active{color:var(--drp-vsc-tab-active-fg);}',
211
+ '[data-dsh-git-changes-page] .drp-tab-active .drp-tab-fill{inset:2px 0 -1px 0;border:1px solid var(--drp-vsc-border);border-bottom:0;border-radius:4px 4px 0 0;background:var(--drp-vsc-tab-active);}',
212
+ '[data-dsh-git-changes-page] .drp-tab .drp-tree-icon{position:relative;z-index:1;flex:0 0 22px;width:22px;height:22px;}',
213
+ '[data-dsh-git-changes-page] .drp-tab-name{position:relative;z-index:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:160px;font-size:13px;}',
214
+ '[data-dsh-git-changes-page] .drp-tab-actions{position:absolute;z-index:2;top:0;right:0;bottom:0;margin:0 2px;width:24px;display:flex;align-items:center;justify-content:center;border-radius:0 4px 4px 0;pointer-events:none;opacity:0;}',
215
+ '[data-dsh-git-changes-page] .drp-tab-active .drp-tab-actions,[data-dsh-git-changes-page] .drp-tab:hover .drp-tab-actions{pointer-events:auto;opacity:1;}',
216
+ '[data-dsh-git-changes-page] .drp-tab-close{display:flex;align-items:center;justify-content:center;width:16px;height:16px;padding:0;border:0;border-radius:4px;background:transparent;color:inherit;font-size:16px;line-height:1;cursor:pointer;}',
217
+ '[data-dsh-git-changes-page] .drp-tab-close:hover{background:rgba(90,93,94,.4);color:#fff;}',
218
+ '[data-dsh-git-changes-page] .drp-tab-divider{flex:0 0 1px;align-self:center;width:1px;height:16px;background:var(--drp-vsc-divider);}',
219
+ /* Editor body merges with the active tab surface. */
220
+ '[data-dsh-git-changes-page] .drp-body{background:var(--drp-vsc-editor-bg);}',
221
+ '[data-dsh-git-changes-page] .drp-monaco-host{background:var(--drp-vsc-editor-bg);}',
222
+ '[data-dsh-git-changes-page] .drp-loading-overlay{position:absolute;inset:0;z-index:20;height:auto;background:var(--drp-vsc-editor-bg);}',
223
+ /* Toolbar reads as the VS Code editor action row under the tabs. */
224
+ '[data-dsh-git-changes-page] .drp-toolbar{padding:4px 8px 4px 10px;gap:2px;border-bottom:1px solid var(--drp-vsc-border);background:var(--drp-vsc-editor-bg);}',
225
+ '[data-dsh-git-changes-page] .drp-path{font-family:"Segoe WPC","Segoe UI",sans-serif;font-size:12px;color:var(--drp-vsc-fg);opacity:.85;}',
226
+ /* Deleted-line view zones are plain DOM; make them selectable/copyable. */
227
+ '[data-dsh-git-changes-page] .drp-del-zone,[data-dsh-git-changes-page] .drp-del-zone *,[data-dsh-git-changes-page] .drp-del-margin,[data-dsh-git-changes-page] .drp-del-margin *{user-select:text!important;-webkit-user-select:text!important;cursor:text;}',
228
+ '[data-dsh-git-changes-page] .drp-del-zone{position:relative;}',
229
+ '[data-dsh-git-changes-page] .drp-del-copy{position:absolute;right:0;top:1px;z-index:3;display:block;width:17px;height:17px;padding:0;border:1px solid var(--drp-panel-border,rgba(128,128,128,.4));border-radius:3px;background:var(--drp-panel-bg,#fff);color:var(--drp-panel-text,#333);font-size:11px;line-height:15px;text-align:center;cursor:pointer;opacity:.75;}',
230
+ '[data-dsh-git-changes-page] .drp-del-copy:hover{opacity:1;}',
231
+ '[data-dsh-git-changes-page] .drp-del-margin{position:relative;}',
232
+ /* View zones must sit above the text layer for hit-testing (Monaco renders
233
+ * zones in the layout whitespace, but .view-lines covers the whole surface). */
234
+ '[data-dsh-git-changes-page] .monaco-editor .view-zones{z-index:2;}',
235
+ '[data-dsh-git-changes-page] .monaco-editor .view-lines{z-index:1;}',
236
+ /* Keep decorations/selection overlays out of the hit-testing path: they stay
237
+ * below the text layer (z-index auto < 1), so clicks resolve as .view-lines. */
238
+ '[data-dsh-git-changes-page] .monaco-editor .view-overlays{pointer-events:none;}',
239
+ /* ===== Selection contrast over git-changes tints (Cursor-style) =====
240
+ * Selection and whole-line diff decorations are siblings within one overlay
241
+ * wrapper; the decoration comes later in DOM order and used to paint over the
242
+ * selection. Make each wrapper a stacking context so the selection layer wins
243
+ * inside it while the whole wrapper still stays below the text layer. */
244
+ '[data-dsh-git-changes-page] .monaco-editor .view-overlays>div{z-index:0;}',
245
+ '[data-dsh-git-changes-page] .monaco-editor .view-overlays .cdr,[data-dsh-git-changes-page] .monaco-editor .view-overlays .cmdr{z-index:0;}',
246
+ '[data-dsh-git-changes-page] .monaco-editor .view-overlays .selected-text{z-index:1;}',
247
+ '[data-dsh-git-changes-page] .monaco-editor .view-overlays .selected-text{border-radius:1px;}',
248
+ '[data-dsh-git-changes-page] .drp-del-zone ::selection{background:rgba(58,112,180,.9);color:#ffffff;}',
249
+ /* ===== Larger VS Code file-type icons in the tree (user request) ===== */
250
+ '[data-dsh-git-changes-page] .drp-tree-row .drp-tree-twisty{flex:0 0 20px;width:20px;height:22px;}',
251
+ '[data-dsh-git-changes-page] .drp-tree-row .drp-tree-icon{flex:0 0 20px;width:20px;height:22px;font-size:15px;}',
252
+ '[data-dsh-git-changes-page] .drp-tree-row .drp-seti-icon{flex:0 0 20px;width:20px;height:22px;padding-right:5px;font-size:18px;line-height:22px;overflow:visible;}',
253
+ '[data-dsh-git-changes-page] .drp-tree-row .drp-badge,[data-dsh-git-changes-page] .drp-tree-row .drp-git-badge{line-height:22px;}',
254
+ '[data-dsh-git-changes-page] .drp-tab .drp-seti-icon{flex:0 0 24px;width:24px;height:24px;padding-right:6px;font-size:20px;line-height:24px;}',
255
+ /* File-type icon inside CHANGES rows, sized to the 22 px row. */
256
+ '.drp-change-file-icon{flex:0 0 14px;width:14px;height:16px;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;}',
257
+ '.drp-change-file-icon .drp-tree-icon,.drp-change-file-icon .drp-seti-icon{flex:0 0 14px;width:14px;height:16px;padding-right:0;font-size:15px;line-height:16px;}',
258
+ /* ===== Git CHANGES panel (Cursor-style) ===== */
259
+ '[data-dsh-git-changes-page] .drp-panel-switch{flex:0 0 auto;margin:6px 8px 4px;align-self:flex-start;}',
260
+ '.drp-changes-panel{display:flex;flex-direction:column;flex:1 1 auto;min-height:0;overflow:hidden;}',
261
+ '.drp-changes-branch{display:flex;align-items:center;gap:4px;padding:4px 10px 6px;flex:0 0 auto;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:11px;}',
262
+ '.drp-branch-icon{flex:0 0 auto;font-size:12px;}',
263
+ '.drp-branch-name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--dsw-alias-label-primary,#e6e6e6);}',
264
+ '.drp-branch-refresh{width:20px;height:20px;font-size:12px;}',
265
+ '.drp-commit-box{flex:0 0 auto;margin:0 8px 6px;resize:none;min-height:36px;max-height:128px;padding:7px 9px;border:1px solid var(--drp-panel-border,rgba(128,128,128,.38));border-radius:6px;background:var(--dsw-alias-bg-layer-1,rgba(255,255,255,.03));color:var(--dsw-alias-label-primary,#e6e6e6);font-family:inherit;font-size:12px;line-height:17px;outline:none;}',
266
+ '.drp-commit-box:focus{border-color:var(--dsw-alias-brand-primary,#4f8cff);}',
267
+ '.drp-commit-row{display:flex;gap:4px;padding:0 8px 8px;flex:0 0 auto;}',
268
+ '.drp-commit-main{flex:1 1 auto;height:28px;font-size:12.5px;font-weight:600;}',
269
+ '.drp-commit-split{position:relative;flex:0 0 auto;}',
270
+ '.drp-commit-caret{height:28px;padding:0 7px;font-size:11px;}',
271
+ '.drp-commit-menu{position:absolute;right:0;top:28px;z-index:40;min-width:150px;padding:4px;border:1px solid var(--drp-panel-border,rgba(128,128,128,.4));border-radius:6px;background:var(--drp-panel-bg,#1c2128);box-shadow:0 6px 20px rgba(0,0,0,.4);}',
272
+ '.drp-changes-groups{flex:1 1 auto;min-height:0;overflow:auto;}',
273
+ '.drp-changes-section{display:flex;flex-direction:column;}',
274
+ '.drp-changes-section-head{display:flex;align-items:center;gap:6px;height:26px;padding:0 8px;flex:0 0 auto;cursor:pointer;user-select:none;color:var(--dsw-alias-label-primary,#e6e6e6);font-size:12px;font-weight:600;background:transparent;border-radius:4px;}',
275
+ '.drp-changes-section-head:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.055));}',
276
+ '.drp-changes-section-title{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
277
+ '.drp-changes-count{flex:0 0 auto;min-width:19px;height:17px;padding:0 5px;border-radius:9px;background:var(--dsw-alias-bg-layer-3,rgba(255,255,255,.1));color:var(--dsw-alias-label-secondary,#c8d1dc);font-size:10.5px;line-height:17px;text-align:center;font-variant-numeric:tabular-nums;}',
278
+ '.drp-changes-bulk{display:none;width:20px;height:20px;font-size:13px;}',
279
+ '.drp-changes-section-head:hover .drp-changes-bulk{display:inline-flex;}',
280
+ '.drp-changes-tree{display:flex;flex-direction:column;}',
281
+ '.drp-changes-empty{padding:6px 16px;color:var(--dsw-alias-label-tertiary,#7d8896);font-size:11px;}',
282
+ '.drp-tree-dir{display:flex;align-items:center;gap:5px;height:22px;padding-right:8px;color:var(--dsw-alias-label-primary,#dbe4ee);font-size:12px;cursor:pointer;user-select:none;}',
283
+ '.drp-tree-dir:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));}',
284
+ '.drp-tree-caret{flex:0 0 12px;width:12px;text-align:center;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:10px;}',
285
+ '.drp-folder-icon{flex:0 0 12px;width:12px;height:12px;display:inline-flex;align-items:center;justify-content:center;color:var(--drp-folder,#d1a04a);}'
286
+ ,'.drp-folder-icon svg{display:block;overflow:visible;}',
287
+ '.drp-change-dirname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
288
+ '.drp-change-row{position:relative;display:flex;align-items:center;gap:6px;height:22px;padding-right:8px;color:var(--dsw-alias-label-primary,#dbe4ee);font-size:12px;cursor:pointer;user-select:none;overflow:hidden;}',
289
+ '.drp-change-row:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));}',
290
+ '.drp-tree-active{background:color-mix(in srgb,var(--dsw-alias-brand-primary,#4f8cff) 22%,transparent);}',
291
+ '.drp-change-name{flex:0 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;}',
292
+ '.drp-change-dir{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dsw-alias-label-tertiary,#7d8896);font-size:10.5px;opacity:.9;}',
293
+ '.drp-change-action{display:none;flex:0 0 18px;width:18px;min-width:18px;height:18px;padding:0;margin-left:2px;font-size:13px;line-height:16px;font-weight:600;align-items:center;justify-content:center;border:0;border-radius:4px;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);cursor:pointer;}',
294
+ '.drp-change-action:hover{background:var(--dsw-alias-bg-layer-3,rgba(255,255,255,.12));color:var(--dsw-alias-label-primary,#e6e6e6);}',
295
+ '.drp-change-row:hover .drp-change-action,.drp-change-row:focus-within .drp-change-action{display:inline-flex;}',
296
+ '.drp-tree-dir .drp-change-action{margin-left:auto;}',
297
+ '.drp-tree-dir:hover .drp-change-action,.drp-tree-dir:focus-within .drp-change-action{display:inline-flex;}',
298
+ '.drp-dir-dot{flex:0 0 7px;width:7px;height:7px;border-radius:50%;margin-left:auto;background:currentColor;opacity:.85;}',
299
+ '.drp-tree-dir:hover .drp-dir-dot{display:none;}',
300
+ '.drp-file-action svg,.drp-file-action svg *{display:block;overflow:visible;}',
301
+ '.drp-btn-danger{color:#fff;background:var(--dsw-alias-state-error-primary,#d9534f);border-color:transparent;}',
302
+ '.drp-confirm-overlay{position:fixed;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;background:rgba(0,0,0,.45);}',
303
+ '.drp-confirm{width:320px;max-width:calc(100vw - 32px);padding:14px 16px;border-radius:8px;border:1px solid var(--drp-panel-border,rgba(128,128,128,.4));background:var(--drp-panel-bg,#1c2128);box-shadow:0 12px 40px rgba(0,0,0,.5);}',
304
+ '.drp-confirm-title{font-size:13px;font-weight:600;color:var(--dsw-alias-label-primary,#e6e6e6);margin-bottom:6px;}',
305
+ '.drp-confirm-body{font-size:11.5px;line-height:17px;color:var(--dsw-alias-label-secondary,#9aa4b2);margin-bottom:12px;}',
306
+ '.drp-confirm-actions{display:flex;justify-content:flex-end;gap:8px;}',
307
+ '.drp-change-code{flex:0 0 14px;text-align:right;font-size:11px;font-weight:600;}',
308
+ '.drp-code-m{color:var(--drp-git-M,#d7a24a);}',
309
+ '.drp-code-a{color:var(--drp-git-A,#4ac26b);}',
310
+ '.drp-code-d{color:var(--drp-git-D,#f06a6a);}',
311
+ '.drp-code-r{color:var(--drp-git-R,#6cb6ff);}',
312
+ '.drp-code-c{color:var(--drp-git-R,#6cb6ff);}',
313
+ '.drp-code-u{color:var(--drp-git-U,#6cb6ff);}',
314
+ '.drp-code-conflict{color:var(--drp-git-D,#f06a6a);}',
315
+ '.drp-changes-error{padding:4px 10px;color:var(--drp-git-D,#f06a6a);font-size:11px;}',
316
+ '.drp-changes-loading,.drp-changes-empty-state{padding:14px 12px;color:var(--dsw-alias-label-tertiary,#7d8896);font-size:11.5px;}',
317
+ '.drp-toast{position:absolute;left:50%;bottom:20px;transform:translateX(-50%);z-index:60;padding:5px 12px;border-radius:6px;background:var(--drp-panel-bg,#1c2128);border:1px solid var(--drp-panel-border,rgba(128,128,128,.4));color:var(--dsw-alias-label-primary,#e6e6e6);font-size:11.5px;box-shadow:0 6px 20px rgba(0,0,0,.4);}',
318
+ '.drp-toast-error{border-color:var(--drp-git-D,#f06a6a);color:var(--drp-git-D,#f06a6a);}',
319
+ '.drp-tab-scope{flex:0 0 auto;font-size:9.5px;opacity:.7;}',
320
+ '.drp-diff-layout{height:22px;padding:0 6px;font-size:10.5px;line-height:20px;}',
321
+ '.drp-blame-inline{position:absolute;max-width:48%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:0 8px 0 18px;color:var(--dsw-alias-label-tertiary,#8b949e);font-style:italic;font-size:11.5px;line-height:20px;pointer-events:auto;z-index:5;background:linear-gradient(to right,transparent,var(--dsw-alias-bg-layer-1,#1e1e1e) 16px);}',
322
+ '.drp-blame-inline:hover{color:var(--dsw-alias-label-secondary,#c8d1dc);text-decoration:underline;cursor:help;}',
323
+ '.drp-blame-popover{position:absolute;z-index:60;padding:7px 9px;border:1px solid var(--dsw-alias-border-subtle,rgba(128,128,128,.35));border-radius:7px;background:var(--dsw-alias-bg-layer-2,#1f242b);box-shadow:0 8px 24px rgba(0,0,0,.4);color:var(--dsw-alias-label-primary,#e6e6e6);font-size:11.5px;line-height:16px;}',
324
+ '.drp-blame-popover-head{display:flex;align-items:baseline;gap:6px;font-weight:600;}',
325
+ '.drp-blame-popover-author{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
326
+ '.drp-blame-popover-when{color:var(--dsw-alias-label-tertiary,#8b949e);font-weight:400;font-size:10.5px;white-space:nowrap;}',
327
+ '.drp-blame-popover-subject{margin-top:3px;color:var(--dsw-alias-label-primary,#e6e6e6);font-weight:500;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}',
328
+ '.drp-blame-popover-body{margin:4px 0 0;max-height:180px;overflow:auto;color:var(--dsw-alias-label-secondary,#c8d1dc);font-family:inherit;font-size:11px;line-height:15px;white-space:pre-wrap;word-break:break-word;}',
329
+ '.drp-blame-popover-foot{display:flex;align-items:center;gap:8px;margin-top:6px;}',
330
+ '.drp-blame-popover-sha{flex:0 0 auto;color:var(--dsw-alias-label-secondary,#9aa4b2);font-family:var(--ds-font-family-code,ui-monospace,monospace);font-size:10.5px;}',
331
+ '.drp-blame-popover-copy{height:20px;padding:0 6px;font-size:10.5px;}',
332
+ '.drp-monaco-diff .monaco-diff-editor{position:absolute;inset:0;}',
333
+ '[data-dsh-git-changes-page] .drp-monaco-diff .line-insert{background-color:var(--drp-diff-add,#1f4d33)!important;}',
334
+ '[data-dsh-git-changes-page] .drp-monaco-diff .line-delete{background-color:var(--drp-diff-del,#5a2626)!important;}',
335
+ '[data-dsh-git-changes-page] .drp-monaco-diff .char-insert{background-color:var(--drp-diff-add-word,#2f8a5699)!important;}',
336
+ '[data-dsh-git-changes-page] .drp-monaco-diff .char-delete{background-color:var(--drp-diff-del-word,#c2555599)!important;}',
337
+ '[data-dsh-git-changes-page] .drp-monaco-diff .diff-hidden-lines .line-delete{background-color:var(--drp-diff-del,#5a2626)!important;}',
338
+ '.drp-commit-field{position:relative;display:flex;flex:0 0 auto;margin:0 8px 4px;}',
339
+ '.drp-commit-field .drp-commit-box{flex:1 1 auto;margin:0;padding-right:28px;}',
340
+ '.drp-commit-ai{position:absolute;right:6px;top:4px;width:20px;height:20px;padding:0;border:none;border-radius:4px;background:transparent;color:var(--dsw-alias-label-secondary,#9aa4b2);font-size:12px;line-height:18px;text-align:center;cursor:pointer;}',
341
+ '.drp-commit-ai:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.08));color:var(--dsw-alias-label-primary,#e6e6e6);}',
342
+ '.drp-commit-ai:disabled{opacity:.45;cursor:default;}',
343
+ '.drp-graph{flex:0 0 auto;border-top:1px solid var(--dsw-alias-border-subtle,rgba(128,128,128,.25));}',
344
+ '.drp-graph-head{width:100%;border:none;cursor:pointer;}',
345
+ '.drp-graph-caret{flex:0 0 12px;width:12px;text-align:center;font-size:10px;color:var(--dsw-alias-label-secondary,#9aa4b2);}',
346
+ '.drp-graph-list{max-height:220px;overflow:auto;display:flex;flex-direction:column;}',
347
+ '.drp-graph-row{display:flex;align-items:center;gap:6px;min-height:26px;padding:0 8px 0 4px;border:none;background:transparent;color:var(--dsw-alias-label-primary,#dbe4ee);text-align:left;cursor:pointer;font:inherit;}',
348
+ '.drp-graph-row:hover{background:var(--dsw-alias-bg-layer-2,rgba(255,255,255,.06));}',
349
+ '.drp-graph-svg{flex:0 0 auto;overflow:visible;}',
350
+ '.drp-graph-lane{stroke:var(--dsw-alias-border-subtle,rgba(128,128,128,.4));stroke-width:1.4;fill:none;}',
351
+ '.drp-graph-dot{fill:var(--dsw-alias-brand-primary,#4f8cff);stroke:var(--drp-panel-bg,#1c2128);stroke-width:1;border-radius:50%;}',
352
+ '.drp-graph-main{display:flex;flex-direction:column;min-width:0;flex:1 1 auto;}',
353
+ '.drp-graph-subject{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11.5px;}',
354
+ '.drp-graph-meta{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:10px;color:var(--dsw-alias-label-tertiary,#8b949e);}',
355
+ '.drp-branch-view{width:20px;height:20px;font-size:12px;line-height:18px;}',
356
+ ].join('\n')
357
+