@vibe-forge/client 0.10.1 → 0.11.1

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 (133) hide show
  1. package/dist/assets/{arc-C1rWFTer.js → arc-CSepokz3.js} +1 -1
  2. package/dist/assets/{blockDiagram-c4efeb88-DlZ9x70F.js → blockDiagram-c4efeb88-D0ARcoNf.js} +1 -1
  3. package/dist/assets/{c4Diagram-c83219d4-BKKxi__y.js → c4Diagram-c83219d4-BysYF9kP.js} +1 -1
  4. package/dist/assets/channel-CeKPk6Nd.js +1 -0
  5. package/dist/assets/{classDiagram-beda092f-CVGPySZq.js → classDiagram-beda092f-BG1GhIOL.js} +1 -1
  6. package/dist/assets/{classDiagram-v2-2358418a-7kp8GVVj.js → classDiagram-v2-2358418a-Dd08uGSH.js} +1 -1
  7. package/dist/assets/clone-CrkD2PuD.js +1 -0
  8. package/dist/assets/{createText-1719965b-Dykv8kT9.js → createText-1719965b-CigPEIEn.js} +1 -1
  9. package/dist/assets/{cssMode-B59COYVW.js → cssMode-MjflyEfm.js} +1 -1
  10. package/dist/assets/{edges-96097737-CkZ1ZBro.js → edges-96097737-DuTBJJRv.js} +1 -1
  11. package/dist/assets/{erDiagram-0228fc6a-281ADcRp.js → erDiagram-0228fc6a-Cp1bL7Y7.js} +1 -1
  12. package/dist/assets/{flowDb-c6c81e3f-BQjX_flP.js → flowDb-c6c81e3f-BfKbhiq5.js} +1 -1
  13. package/dist/assets/{flowDiagram-50d868cf-DMHZTjES.js → flowDiagram-50d868cf-m7gGc3PK.js} +1 -1
  14. package/dist/assets/flowDiagram-v2-4f6560a1-4ZU4bdp1.js +1 -0
  15. package/dist/assets/{flowchart-elk-definition-6af322e1-CI3yz4z8.js → flowchart-elk-definition-6af322e1-EVeTDRRK.js} +1 -1
  16. package/dist/assets/{freemarker2-DWnWjibn.js → freemarker2-Bb3-QAIN.js} +1 -1
  17. package/dist/assets/{ganttDiagram-a2739b55-B3IING9L.js → ganttDiagram-a2739b55-DslB2U0R.js} +1 -1
  18. package/dist/assets/{gitGraphDiagram-82fe8481-CnArIr_T.js → gitGraphDiagram-82fe8481-C-KFWMXL.js} +1 -1
  19. package/dist/assets/{graph-BZ1F0Yve.js → graph-CukaUc0o.js} +1 -1
  20. package/dist/assets/{handlebars-C1QH9qTz.js → handlebars-C4le-2Y6.js} +1 -1
  21. package/dist/assets/{html-D1NkqHjC.js → html-CjNiRs5S.js} +1 -1
  22. package/dist/assets/{htmlMode-DAZCE_rA.js → htmlMode-B73_3-We.js} +1 -1
  23. package/dist/assets/{index-5325376f-Da9zSHjA.js → index-5325376f-CVISZFPw.js} +1 -1
  24. package/dist/assets/{index-C0vjF3D0.js → index-BZosmb5_.js} +336 -336
  25. package/dist/assets/index-C1oh0w9H.css +32 -0
  26. package/dist/assets/{infoDiagram-8eee0895-DYbFvRM7.js → infoDiagram-8eee0895-DoirLE1K.js} +1 -1
  27. package/dist/assets/{javascript-CoMjGRHa.js → javascript-BDjnqJFP.js} +1 -1
  28. package/dist/assets/{journeyDiagram-c64418c1-Boebox0b.js → journeyDiagram-c64418c1-Ckn-p2CM.js} +1 -1
  29. package/dist/assets/{jsonMode-D__gAvuz.js → jsonMode-C-ftOc5j.js} +1 -1
  30. package/dist/assets/{layout-CTcHNbHp.js → layout-Z7yUG7hB.js} +1 -1
  31. package/dist/assets/{line-4AwinCz2.js → line-DPG_cfAy.js} +1 -1
  32. package/dist/assets/{linear-CeSMLzJW.js → linear--GSeVfMi.js} +1 -1
  33. package/dist/assets/{liquid-DZF6egdE.js → liquid-COiLZ9py.js} +1 -1
  34. package/dist/assets/{lspLanguageFeatures-6K4lv5S2.js → lspLanguageFeatures-DGmhryFq.js} +1 -1
  35. package/dist/assets/{mdx-Cnt4ka6w.js → mdx-BpL87Gej.js} +1 -1
  36. package/dist/assets/{mermaid.core-B0yG5s4D.js → mermaid.core-Cg1CCDo6.js} +4 -4
  37. package/dist/assets/{mindmap-definition-8da855dc-KJEvXMKj.js → mindmap-definition-8da855dc-CKDof1lD.js} +1 -1
  38. package/dist/assets/{pieDiagram-a8764435-17nFAXPJ.js → pieDiagram-a8764435-DwvCaZVE.js} +1 -1
  39. package/dist/assets/{python-DA3TtjDv.js → python-63dBmWV_.js} +1 -1
  40. package/dist/assets/{quadrantDiagram-1e28029f-Dt4vubi-.js → quadrantDiagram-1e28029f-CkzYBQpy.js} +1 -1
  41. package/dist/assets/{razor-CWDJgvX_.js → razor-C50tBqEZ.js} +1 -1
  42. package/dist/assets/{requirementDiagram-08caed73-H6aDyDK-.js → requirementDiagram-08caed73-Brgdjqf4.js} +1 -1
  43. package/dist/assets/{sankeyDiagram-a04cb91d-DxsVtbjI.js → sankeyDiagram-a04cb91d-CGkYexrs.js} +1 -1
  44. package/dist/assets/{sequenceDiagram-c5b8d532-BHa148XJ.js → sequenceDiagram-c5b8d532-D0wE-_J8.js} +1 -1
  45. package/dist/assets/{stateDiagram-1ecb1508-DgwBm8LO.js → stateDiagram-1ecb1508-BYb3NCXZ.js} +1 -1
  46. package/dist/assets/{stateDiagram-v2-c2b004d7-BK7IQLVc.js → stateDiagram-v2-c2b004d7-DrPqi4Pt.js} +1 -1
  47. package/dist/assets/{styles-b4e223ce-DzW27Bc-.js → styles-b4e223ce-DD66TIO4.js} +1 -1
  48. package/dist/assets/{styles-ca3715f6-Dex2GiLT.js → styles-ca3715f6-iy02LHIV.js} +1 -1
  49. package/dist/assets/{styles-d45a18b0-B6fGtDKS.js → styles-d45a18b0-BgqAgJyW.js} +1 -1
  50. package/dist/assets/{svgDrawCommon-b86b1483-B4HYgfV5.js → svgDrawCommon-b86b1483-CDq7ugnw.js} +1 -1
  51. package/dist/assets/{timeline-definition-faaaa080--QSbWb25.js → timeline-definition-faaaa080-DzcLLjK0.js} +1 -1
  52. package/dist/assets/{tsMode-ZM7ocZCH.js → tsMode-BFRFI4ct.js} +1 -1
  53. package/dist/assets/{typescript-CKWDmBCc.js → typescript-CBZQRAPv.js} +1 -1
  54. package/dist/assets/{xml-DuEUAzPi.js → xml-BpWm6upt.js} +1 -1
  55. package/dist/assets/{xychartDiagram-f5964ef8-D09Zkv2K.js → xychartDiagram-f5964ef8-zBN8FmLQ.js} +1 -1
  56. package/dist/assets/{yaml-DL7QPRYk.js → yaml-CqbJPiIP.js} +1 -1
  57. package/dist/index.html +2 -2
  58. package/package.json +10 -10
  59. package/src/api/git.ts +78 -0
  60. package/src/api.ts +24 -0
  61. package/src/components/chat/ChatHeader.tsx +4 -0
  62. package/src/components/chat/ChatHistoryView.tsx +22 -13
  63. package/src/components/chat/git-controls/BranchSwitcherDropdown.tsx +157 -0
  64. package/src/components/chat/git-controls/ChatGitControls.scss +616 -0
  65. package/src/components/chat/git-controls/ChatGitControls.tsx +151 -0
  66. package/src/components/chat/git-controls/GitCommitModal.tsx +199 -0
  67. package/src/components/chat/git-controls/GitCommitModalParts.tsx +151 -0
  68. package/src/components/chat/git-controls/GitOperationsDropdown.tsx +123 -0
  69. package/src/components/chat/git-controls/GitPushModal.tsx +106 -0
  70. package/src/components/chat/git-controls/GitWorktreeDropdown.tsx +68 -0
  71. package/src/components/chat/git-controls/git-branch-utils.ts +88 -0
  72. package/src/components/chat/git-controls/git-commit-utils.ts +79 -0
  73. package/src/components/chat/git-controls/git-mutation-utils.ts +69 -0
  74. package/src/components/chat/git-controls/git-operation-utils.ts +98 -0
  75. package/src/components/chat/git-controls/git-worktree-utils.ts +49 -0
  76. package/src/components/chat/git-controls/use-chat-git-commit.ts +185 -0
  77. package/src/components/chat/git-controls/use-chat-git-controls.ts +200 -0
  78. package/src/components/chat/git-controls/use-chat-git-push-state.ts +19 -0
  79. package/src/components/chat/git-controls/use-chat-git-worktrees.ts +39 -0
  80. package/src/components/chat/messages/MessageStatusNotice.scss +163 -0
  81. package/src/components/chat/messages/MessageStatusNotice.tsx +48 -0
  82. package/src/components/chat/messages/build-chat-history-status-notices.ts +138 -0
  83. package/src/components/chat/sender/@components/sender-body/SenderBody.tsx +0 -24
  84. package/src/components/chat/sender/@core/build-sender-controller-result.ts +0 -6
  85. package/src/components/chat/sender/@hooks/use-sender-controller.ts +0 -2
  86. package/src/components/chat/sender/@types/sender-props.ts +0 -3
  87. package/src/components/chat/sender/Sender.scss +0 -58
  88. package/src/components/chat/sender/Sender.tsx +0 -2
  89. package/src/components/chat/tools/DefaultTool.tsx +84 -208
  90. package/src/components/chat/tools/adapter-claude/ClaudeEditDiff.tsx +30 -0
  91. package/src/components/chat/tools/adapter-claude/GenericClaudeTool.scss +128 -0
  92. package/src/components/chat/tools/adapter-claude/GenericClaudeTool.tsx +119 -0
  93. package/src/components/chat/tools/adapter-claude/claude-tool-edit-builders.ts +109 -0
  94. package/src/components/chat/tools/adapter-claude/claude-tool-field-sections.tsx +83 -0
  95. package/src/components/chat/tools/adapter-claude/claude-tool-operation-builders.ts +135 -0
  96. package/src/components/chat/tools/adapter-claude/claude-tool-presentation.ts +61 -0
  97. package/src/components/chat/tools/adapter-claude/claude-tool-shared.ts +185 -0
  98. package/src/components/chat/tools/adapter-claude/claude-tool-summary.ts +76 -0
  99. package/src/components/chat/tools/adapter-claude/claude-tool-system-builders.ts +125 -0
  100. package/src/components/chat/tools/adapter-claude/claude-tool-task-builders.ts +148 -0
  101. package/src/components/chat/tools/adapter-claude/index.ts +24 -15
  102. package/src/components/chat/tools/core/ToolCallBox.scss +362 -36
  103. package/src/components/chat/tools/core/ToolCallBox.tsx +35 -13
  104. package/src/components/chat/tools/core/ToolDiffViewer.scss +138 -0
  105. package/src/components/chat/tools/core/ToolDiffViewer.tsx +180 -0
  106. package/src/components/chat/tools/core/ToolGroup.scss +52 -74
  107. package/src/components/chat/tools/core/ToolGroup.tsx +25 -40
  108. package/src/components/chat/tools/core/ToolRenderer.tsx +3 -3
  109. package/src/components/chat/tools/core/ToolResultContent.tsx +66 -0
  110. package/src/components/chat/tools/core/ToolSummaryHeader.tsx +67 -0
  111. package/src/components/chat/tools/core/generic-tool-presentation.ts +661 -0
  112. package/src/components/chat/tools/core/tool-content-presence.ts +57 -0
  113. package/src/components/chat/tools/core/tool-display.ts +203 -0
  114. package/src/components/chat/tools/core/tool-field-sections.tsx +132 -0
  115. package/src/components/chat/tools/core/tool-result-content-utils.ts +171 -0
  116. package/src/components/chat/tools/core/tool-summary.ts +206 -0
  117. package/src/components/chat/tools/plugin-chrome-devtools/ChromeDevtoolsTool.tsx +59 -53
  118. package/src/components/chat/tools/task/GetTaskInfoTool.tsx +26 -9
  119. package/src/components/chat/tools/task/ListTasksTool.tsx +22 -9
  120. package/src/components/chat/tools/task/StartTasksTool.tsx +22 -9
  121. package/src/hooks/chat/interaction-state.ts +29 -9
  122. package/src/hooks/chat/session-view-cache.ts +80 -0
  123. package/src/hooks/chat/use-chat-scroll.ts +2 -2
  124. package/src/hooks/chat/use-chat-session-messages.ts +139 -39
  125. package/src/hooks/chat/use-chat-session.ts +2 -2
  126. package/src/resources/locales/en.json +149 -0
  127. package/src/resources/locales/zh.json +149 -0
  128. package/src/routes/ChatRoute.tsx +24 -27
  129. package/src/utils/strip-ansi.ts +26 -0
  130. package/dist/assets/channel-F1aqMANO.js +0 -1
  131. package/dist/assets/clone-B-GCuXNo.js +0 -1
  132. package/dist/assets/flowDiagram-v2-4f6560a1-C5FzdVl1.js +0 -1
  133. package/dist/assets/index-vzEbM21t.css +0 -32
@@ -0,0 +1,616 @@
1
+ .chat-header-git {
2
+ display: flex;
3
+ align-items: center;
4
+ gap: 4px;
5
+ }
6
+
7
+ .chat-header-git__split {
8
+ min-width: 0;
9
+ display: inline-flex;
10
+ align-items: center;
11
+ }
12
+
13
+ .chat-header-git__split-main.ant-btn.ant-btn-text,
14
+ .chat-header-git__split-toggle.ant-btn.ant-btn-text,
15
+ .chat-header-git__trigger.ant-btn.ant-btn-text {
16
+ height: 24px;
17
+ margin: 0;
18
+ border: 0;
19
+ border-radius: 6px;
20
+ background: transparent;
21
+ color: var(--sub-text-color, #6b7280);
22
+ box-shadow: none;
23
+ transition: background-color .2s ease, color .2s ease;
24
+
25
+ .material-symbols-rounded {
26
+ font-size: 14px;
27
+ line-height: 1;
28
+ }
29
+
30
+ &:hover {
31
+ background-color: var(--nav-hover-bg, #f3f4f6);
32
+ color: var(--text-color, #111827);
33
+ }
34
+
35
+ &:disabled {
36
+ background: transparent;
37
+ color: var(--sub-text-color, #6b7280);
38
+ }
39
+ }
40
+
41
+ .chat-header-git__split-main.ant-btn.ant-btn-text,
42
+ .chat-header-git__trigger.ant-btn.ant-btn-text {
43
+ min-width: 0;
44
+ padding: 0 8px;
45
+ display: inline-flex;
46
+ align-items: center;
47
+ }
48
+
49
+ .chat-header-git__split-main.ant-btn.ant-btn-text {
50
+ gap: 6px;
51
+ border-top-right-radius: 0;
52
+ border-bottom-right-radius: 0;
53
+ }
54
+
55
+ .chat-header-git__split-toggle.ant-btn.ant-btn-text {
56
+ width: 24px;
57
+ padding: 0;
58
+ justify-content: center;
59
+ border-top-left-radius: 0;
60
+ border-bottom-left-radius: 0;
61
+ }
62
+
63
+ .chat-header-git__split.is-open {
64
+ .chat-header-git__split-main.ant-btn.ant-btn-text,
65
+ .chat-header-git__split-toggle.ant-btn.ant-btn-text {
66
+ background-color: var(--nav-active-bg, #eff6ff);
67
+ color: var(--nav-active-text, #2563eb);
68
+ }
69
+ }
70
+
71
+ .chat-header-git__split-divider {
72
+ width: 1px;
73
+ height: 12px;
74
+ background: var(--border-color);
75
+ flex-shrink: 0;
76
+ }
77
+
78
+ .chat-header-git__trigger.ant-btn.ant-btn-text {
79
+ gap: 8px;
80
+ padding-right: 6px;
81
+ justify-content: space-between;
82
+
83
+ &.is-open {
84
+ background-color: var(--nav-active-bg, #eff6ff);
85
+ color: var(--nav-active-text, #2563eb);
86
+ }
87
+
88
+ &.is-disabled {
89
+ opacity: .7;
90
+ }
91
+ }
92
+
93
+ .chat-header-git__trigger-main {
94
+ min-width: 0;
95
+ display: inline-flex;
96
+ align-items: center;
97
+ gap: 6px;
98
+ }
99
+
100
+ .chat-header-git__trigger-chevron.material-symbols-rounded {
101
+ font-size: 16px;
102
+ flex-shrink: 0;
103
+ }
104
+
105
+ .chat-header-git__trigger-label {
106
+ min-width: 0;
107
+ max-width: 132px;
108
+ overflow: hidden;
109
+ text-overflow: ellipsis;
110
+ white-space: nowrap;
111
+ font-size: 11px;
112
+ font-weight: 500;
113
+ }
114
+
115
+ .chat-header-git__separator {
116
+ width: 1px;
117
+ height: 12px;
118
+ margin-inline: 8px;
119
+ background: var(--border-color);
120
+ flex-shrink: 0;
121
+ }
122
+
123
+ .chat-header-git__dirty-dot {
124
+ width: 5px;
125
+ height: 5px;
126
+ border-radius: 999px;
127
+ background: #d97706;
128
+ flex-shrink: 0;
129
+ }
130
+
131
+ .chat-header-git__overlay {
132
+ width: 244px;
133
+ padding: 5px;
134
+ border: 1px solid var(--border-color);
135
+ border-radius: 12px;
136
+ background: var(--bg-color);
137
+ box-shadow: 0 18px 44px rgba(15, 23, 42, .18);
138
+ display: flex;
139
+ flex-direction: column;
140
+ gap: 3px;
141
+ }
142
+
143
+ .chat-header-git__overlay--operations {
144
+ width: 208px;
145
+ }
146
+
147
+ .chat-header-git__overlay--branches {
148
+ width: 236px;
149
+ }
150
+
151
+ .chat-header-git__overlay--worktrees {
152
+ width: 228px;
153
+ }
154
+
155
+ .chat-header-git__overlay-meta {
156
+ font-size: 10px;
157
+ line-height: 1.45;
158
+ color: var(--sub-text-color);
159
+ }
160
+
161
+ .chat-header-git__search.ant-input-affix-wrapper {
162
+ min-height: 30px;
163
+ border-radius: 9px;
164
+ padding-inline: 8px;
165
+
166
+ .ant-input {
167
+ font-size: 10px;
168
+ }
169
+ }
170
+
171
+ .chat-header-git__sections {
172
+ display: flex;
173
+ flex-direction: column;
174
+ gap: 5px;
175
+ max-height: 260px;
176
+ overflow-y: auto;
177
+ scrollbar-gutter: stable;
178
+ }
179
+
180
+ .chat-header-git__section {
181
+ display: flex;
182
+ flex-direction: column;
183
+ gap: 2px;
184
+ }
185
+
186
+ .chat-header-git__section + .chat-header-git__section {
187
+ padding-top: 5px;
188
+ border-top: 1px solid
189
+ color-mix(in srgb, var(--border-color) 72%, transparent);
190
+ }
191
+
192
+ .chat-header-git__section-label {
193
+ font-size: 9px;
194
+ font-weight: 700;
195
+ letter-spacing: .08em;
196
+ text-transform: uppercase;
197
+ color: var(--sub-text-color);
198
+ }
199
+
200
+ .chat-header-git__branch-row,
201
+ .chat-header-git__operation-row,
202
+ .chat-header-git__create-row {
203
+ width: 100%;
204
+ border: 0;
205
+ border-radius: 8px;
206
+ background: transparent;
207
+ padding: 5px 8px;
208
+ display: flex;
209
+ align-items: center;
210
+ justify-content: space-between;
211
+ gap: 7px;
212
+ cursor: pointer;
213
+ text-align: left;
214
+ color: var(--text-color);
215
+ transition: background-color .2s ease, color .2s ease;
216
+
217
+ &:hover:not(:disabled) {
218
+ background: var(--sub-bg-color, rgba(15, 23, 42, .05));
219
+ }
220
+
221
+ &:disabled {
222
+ cursor: not-allowed;
223
+ opacity: .55;
224
+ }
225
+ }
226
+
227
+ .chat-header-git__worktree-list {
228
+ display: flex;
229
+ flex-direction: column;
230
+ gap: 2px;
231
+ }
232
+
233
+ .chat-header-git__worktree-row {
234
+ width: 100%;
235
+ padding: 5px 8px;
236
+ border-radius: 8px;
237
+ display: flex;
238
+ align-items: center;
239
+ justify-content: space-between;
240
+ gap: 7px;
241
+ color: var(--text-color);
242
+ }
243
+
244
+ .chat-header-git__branch-row-main,
245
+ .chat-header-git__operation-row-main,
246
+ .chat-header-git__worktree-row-main {
247
+ min-width: 0;
248
+ display: flex;
249
+ align-items: center;
250
+ gap: 5px;
251
+ }
252
+
253
+ .chat-header-git__row-copy {
254
+ min-width: 0;
255
+ display: flex;
256
+ flex-direction: column;
257
+ gap: 2px;
258
+ }
259
+
260
+ .chat-header-git__row-title {
261
+ min-width: 0;
262
+ font-size: 10px;
263
+ font-weight: 600;
264
+ overflow: hidden;
265
+ text-overflow: ellipsis;
266
+ white-space: nowrap;
267
+ }
268
+
269
+ .chat-header-git__row-subtitle {
270
+ min-width: 0;
271
+ font-size: 9px;
272
+ line-height: 1.35;
273
+ color: var(--sub-text-color);
274
+ overflow: hidden;
275
+ text-overflow: ellipsis;
276
+ white-space: nowrap;
277
+ }
278
+
279
+ .chat-header-git__row-icon.material-symbols-rounded,
280
+ .chat-header-git__row-state.material-symbols-rounded {
281
+ font-size: 15px;
282
+ flex-shrink: 0;
283
+ }
284
+
285
+ .chat-header-git__row-state.material-symbols-rounded {
286
+ color: var(--primary-color, #2563eb);
287
+ }
288
+
289
+ .chat-header-git__create-row {
290
+ border: 1px dashed
291
+ color-mix(
292
+ in srgb,
293
+ var(--primary-color, #2563eb) 28%,
294
+ var(--border-color)
295
+ );
296
+ background: color-mix(
297
+ in srgb,
298
+ var(--primary-color, #2563eb) 6%,
299
+ var(--bg-color)
300
+ );
301
+ }
302
+
303
+ .chat-header-git__empty {
304
+ padding: 8px 0 2px;
305
+ }
306
+
307
+ .chat-header-git__loading {
308
+ padding: 8px 0;
309
+ display: flex;
310
+ justify-content: center;
311
+ }
312
+
313
+ .chat-header-git__divider {
314
+ height: 1px;
315
+ background: var(--border-color);
316
+ }
317
+
318
+ .chat-header-git__commit-modal {
319
+ .ant-modal-content {
320
+ padding: 14px;
321
+ border-radius: 20px;
322
+ background:
323
+ radial-gradient(
324
+ circle at top right,
325
+ rgba(255, 255, 255, .03),
326
+ transparent 34%
327
+ ),
328
+ var(--bg-color);
329
+ border: 1px solid color-mix(in srgb, var(--border-color) 78%, transparent);
330
+ }
331
+
332
+ .ant-modal-close {
333
+ inset-inline-end: 10px;
334
+ top: 10px;
335
+ color: var(--sub-text-color);
336
+
337
+ &:hover {
338
+ color: var(--text-color);
339
+ }
340
+ }
341
+ }
342
+
343
+ .chat-header-git__commit-sheet {
344
+ display: flex;
345
+ flex-direction: column;
346
+ gap: 12px;
347
+ }
348
+
349
+ .chat-header-git__commit-icon {
350
+ width: 34px;
351
+ height: 34px;
352
+ border-radius: 11px;
353
+ display: inline-flex;
354
+ align-items: center;
355
+ justify-content: center;
356
+ background: color-mix(
357
+ in srgb,
358
+ var(--sub-bg-color, rgba(15, 23, 42, .08)) 92%,
359
+ transparent
360
+ );
361
+
362
+ .material-symbols-rounded {
363
+ font-size: 18px;
364
+ }
365
+ }
366
+
367
+ .chat-header-git__commit-title {
368
+ margin-top: -4px;
369
+ font-size: 17px;
370
+ font-weight: 700;
371
+ color: var(--text-color);
372
+ }
373
+
374
+ .chat-header-git__commit-summary-grid {
375
+ display: grid;
376
+ grid-template-columns: 60px minmax(0, 1fr);
377
+ gap: 8px 14px;
378
+ }
379
+
380
+ .chat-header-git__commit-summary-label {
381
+ font-size: 11px;
382
+ font-weight: 600;
383
+ color: var(--sub-text-color);
384
+ }
385
+
386
+ .chat-header-git__commit-summary-value {
387
+ min-width: 0;
388
+ display: flex;
389
+ align-items: center;
390
+ gap: 6px;
391
+ font-size: 12px;
392
+ font-weight: 600;
393
+ color: var(--text-color);
394
+ }
395
+
396
+ .chat-header-git__commit-summary-value--branch {
397
+ .material-symbols-rounded {
398
+ font-size: 14px;
399
+ }
400
+
401
+ span:last-child {
402
+ min-width: 0;
403
+ overflow: hidden;
404
+ text-overflow: ellipsis;
405
+ white-space: nowrap;
406
+ }
407
+ }
408
+
409
+ .chat-header-git__commit-summary-value--stats {
410
+ gap: 8px;
411
+ flex-wrap: wrap;
412
+ color: var(--sub-text-color);
413
+ }
414
+
415
+ .chat-header-git__commit-summary-delta {
416
+ font-weight: 700;
417
+
418
+ &.is-positive {
419
+ color: #22c55e;
420
+ }
421
+
422
+ &.is-negative {
423
+ color: #ef4444;
424
+ }
425
+ }
426
+
427
+ .chat-header-git__commit-toggles {
428
+ display: flex;
429
+ flex-direction: column;
430
+ gap: 8px;
431
+ }
432
+
433
+ .chat-header-git__commit-sub-options {
434
+ display: flex;
435
+ flex-direction: column;
436
+ gap: 6px;
437
+ }
438
+
439
+ .chat-header-git__commit-toggle-row {
440
+ display: grid;
441
+ grid-template-columns: 60px minmax(0, 1fr);
442
+ align-items: flex-start;
443
+ column-gap: 14px;
444
+ padding: 0;
445
+
446
+ &.is-disabled {
447
+ opacity: .6;
448
+ }
449
+ }
450
+
451
+ .chat-header-git__commit-toggle-checkbox {
452
+ width: 14px;
453
+ height: 14px;
454
+ margin: 2px 0 0;
455
+ justify-self: start;
456
+ accent-color: var(--primary-color, #2563eb);
457
+ }
458
+
459
+ .chat-header-git__commit-toggle-copy {
460
+ min-width: 0;
461
+ display: flex;
462
+ flex-direction: column;
463
+ gap: 1px;
464
+ }
465
+
466
+ .chat-header-git__commit-toggle-title,
467
+ .chat-header-git__commit-section-header {
468
+ font-size: 12px;
469
+ font-weight: 600;
470
+ color: var(--text-color);
471
+ }
472
+
473
+ .chat-header-git__commit-toggle-description {
474
+ font-size: 10px;
475
+ line-height: 1.35;
476
+ color: var(--sub-text-color);
477
+ display: -webkit-box;
478
+ overflow: hidden;
479
+ -webkit-box-orient: vertical;
480
+ -webkit-line-clamp: 2;
481
+ }
482
+
483
+ .chat-header-git__commit-section-header {
484
+ display: flex;
485
+ align-items: center;
486
+ justify-content: space-between;
487
+ gap: 8px;
488
+ }
489
+
490
+ .chat-header-git__commit-input.ant-input {
491
+ border-radius: 14px;
492
+ padding: 10px 12px;
493
+ font-size: 12px;
494
+ line-height: 1.5;
495
+ resize: none;
496
+ }
497
+
498
+ .chat-header-git__commit-error {
499
+ margin-top: -6px;
500
+ font-size: 10px;
501
+ color: var(--error-text-color, #ef4444);
502
+ }
503
+
504
+ .chat-header-git__commit-next-steps {
505
+ display: flex;
506
+ flex-direction: column;
507
+ gap: 0;
508
+ border: 1px solid color-mix(in srgb, var(--border-color) 74%, transparent);
509
+ border-radius: 14px;
510
+ overflow: hidden;
511
+ background: transparent;
512
+ }
513
+
514
+ .chat-header-git__commit-next-step {
515
+ width: 100%;
516
+ border: 0;
517
+ border-bottom: 1px solid
518
+ color-mix(in srgb, var(--border-color) 72%, transparent);
519
+ background: transparent;
520
+ padding: 9px 12px;
521
+ display: flex;
522
+ align-items: center;
523
+ justify-content: space-between;
524
+ gap: 10px;
525
+ color: var(--text-color);
526
+ cursor: pointer;
527
+ text-align: left;
528
+ transition: background-color .2s ease, color .2s ease;
529
+
530
+ &:last-child {
531
+ border-bottom: 0;
532
+ }
533
+
534
+ &:hover:not(:disabled) {
535
+ background: color-mix(
536
+ in srgb,
537
+ var(--text-color) 5%,
538
+ transparent
539
+ );
540
+ }
541
+
542
+ &:disabled {
543
+ cursor: not-allowed;
544
+ opacity: .48;
545
+ }
546
+
547
+ &.is-selected {
548
+ background: color-mix(
549
+ in srgb,
550
+ var(--text-color) 8%,
551
+ transparent
552
+ );
553
+ box-shadow: inset 0 0 0 1px
554
+ color-mix(in srgb, var(--text-color) 8%, transparent);
555
+ }
556
+ }
557
+
558
+ .chat-header-git__commit-next-step-main {
559
+ min-width: 0;
560
+ display: inline-flex;
561
+ align-items: center;
562
+ gap: 7px;
563
+ font-size: 12px;
564
+ font-weight: 600;
565
+ }
566
+
567
+ .chat-header-git__commit-footer {
568
+ display: flex;
569
+ justify-content: flex-end;
570
+ }
571
+
572
+ .chat-header-git__commit-submit.ant-btn.ant-btn-primary {
573
+ min-width: 180px;
574
+ height: 36px;
575
+ border-radius: 999px;
576
+ font-size: 13px;
577
+ font-weight: 600;
578
+ box-shadow: none;
579
+ border: 0;
580
+ background: var(--text-color);
581
+ color: var(--bg-color);
582
+
583
+ &:hover:not(:disabled),
584
+ &:focus-visible:not(:disabled) {
585
+ background: color-mix(in srgb, var(--text-color) 90%, transparent);
586
+ color: var(--bg-color);
587
+ }
588
+
589
+ &:disabled {
590
+ background: color-mix(in srgb, var(--text-color) 16%, transparent);
591
+ color: color-mix(in srgb, var(--bg-color) 72%, transparent);
592
+ }
593
+ }
594
+
595
+ html.dark {
596
+ .chat-header-git {
597
+ --nav-hover-bg: #1a1a1a;
598
+ --nav-active-bg: #111b26;
599
+ --nav-active-text: #3b82f6;
600
+ }
601
+
602
+ .chat-header-git__split,
603
+ .chat-header-git__trigger.ant-btn.ant-btn-text {
604
+ color: var(--sub-text-color);
605
+ }
606
+
607
+ .chat-header-git__overlay {
608
+ box-shadow: 0 20px 44px rgba(0, 0, 0, .42);
609
+ }
610
+
611
+ .chat-header-git__commit-modal {
612
+ .ant-modal-content {
613
+ box-shadow: 0 24px 60px rgba(0, 0, 0, .5);
614
+ }
615
+ }
616
+ }