@co0ontty/wand 1.30.0 → 1.31.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.
- package/README.md +39 -2
- package/dist/claude-sdk-runner.d.ts +31 -0
- package/dist/claude-sdk-runner.js +142 -0
- package/dist/cli.js +104 -0
- package/dist/git-quick-commit.js +18 -26
- package/dist/process-manager.d.ts +7 -0
- package/dist/process-manager.js +26 -2
- package/dist/prompt-optimizer.js +17 -26
- package/dist/server-session-routes.js +27 -1
- package/dist/server.js +1 -0
- package/dist/structured-session-manager.d.ts +2 -0
- package/dist/structured-session-manager.js +76 -8
- package/dist/tui/attach.js +7 -8
- package/dist/tui/commands.d.ts +24 -7
- package/dist/tui/commands.js +200 -86
- package/dist/tui/index.js +8 -8
- package/dist/tui/service-panel.js +3 -4
- package/dist/types.d.ts +2 -0
- package/dist/web-ui/content/scripts.js +687 -222
- package/dist/web-ui/content/styles.css +445 -106
- package/package.json +1 -1
|
@@ -515,7 +515,30 @@
|
|
|
515
515
|
transition: width 0.3s var(--ease-out-expo), transform 0.35s var(--ease-out-expo), box-shadow 0.35s ease, opacity 0.25s ease;
|
|
516
516
|
}
|
|
517
517
|
|
|
518
|
-
|
|
518
|
+
/* 多塞一层 .sidebar-header-actions 把 specificity 抬到 0,4,0,
|
|
519
|
+
压过文件后段 .sidebar-header-actions .btn-ghost.btn-sm
|
|
520
|
+
与 .drawer-close-btn 的 display: inline-flex 重置规则。 */
|
|
521
|
+
.sidebar.pinned .sidebar-header-actions .sidebar-close {
|
|
522
|
+
display: none;
|
|
523
|
+
}
|
|
524
|
+
|
|
525
|
+
/* 窄条(collapsed)状态:明确不显示 X 关闭按钮。
|
|
526
|
+
虽然 collapsed 当前必然蕴含 pinned(见 isSidebarNarrow),
|
|
527
|
+
上一条 .sidebar.pinned 规则已经能把它藏住,但单独写一条更直观,
|
|
528
|
+
也防止以后允许 drawer 模式下 collapse 时漏掉。
|
|
529
|
+
展开(drawer 模式)下才显示关闭按钮供用户收起侧栏。 */
|
|
530
|
+
.sidebar.collapsed .sidebar-header-actions .sidebar-close {
|
|
531
|
+
display: none;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
/* 与上方对称:drawer 模式(未 pin)下,X 关闭按钮已能把侧栏关掉,
|
|
535
|
+
再放一个「收起为窄条」按钮会和 X 视觉上重复,且它的行为
|
|
536
|
+
(自动 pin + collapse)也容易让人误以为是关闭。
|
|
537
|
+
只在 pinned 模式保留这颗,drawer 模式下隐藏。
|
|
538
|
+
注意:必须用 .sidebar-header-actions 多嵌一层把 specificity 提到 0,4,0,
|
|
539
|
+
否则会和文件后段 .sidebar-header-actions .btn-ghost.btn-sm (0,3,0) 打平
|
|
540
|
+
而因后定义胜出,导致 drawer 模式下窄条按钮和 X 同时显示。 */
|
|
541
|
+
.sidebar:not(.pinned) .sidebar-header-actions .sidebar-collapse-toggle {
|
|
519
542
|
display: none;
|
|
520
543
|
}
|
|
521
544
|
|
|
@@ -677,15 +700,6 @@
|
|
|
677
700
|
.sidebar-collapse-toggle.collapsed {
|
|
678
701
|
color: var(--primary);
|
|
679
702
|
}
|
|
680
|
-
/* 完全关闭侧栏 — 仅在 pinned 展开态可见(drawer 自带 X;窄条态保持极简) */
|
|
681
|
-
.sidebar .sidebar-header-actions .btn.sidebar-close-fully {
|
|
682
|
-
display: none;
|
|
683
|
-
flex-shrink: 0;
|
|
684
|
-
}
|
|
685
|
-
.sidebar.pinned:not(.collapsed) .sidebar-header-actions .btn.sidebar-close-fully {
|
|
686
|
-
display: inline-flex;
|
|
687
|
-
}
|
|
688
|
-
|
|
689
703
|
/* ===== 图钉按钮 ===== */
|
|
690
704
|
.sidebar-pin-toggle {
|
|
691
705
|
flex-shrink: 0;
|
|
@@ -3892,12 +3906,16 @@
|
|
|
3892
3906
|
}
|
|
3893
3907
|
|
|
3894
3908
|
/* ===== 聊天消息基础样式 ===== */
|
|
3909
|
+
/* 消息整体宽度跟随屏幕(容器)宽度——长文本自然换行;
|
|
3910
|
+
内部卡片(tool-use-card / inline-tool / terminal-tool / diff-tool / tool-group)
|
|
3911
|
+
通过 --chat-card-max-width 单独约束,避免在宽屏下被拉成横向大条。 */
|
|
3895
3912
|
.chat-message {
|
|
3896
3913
|
display: flex;
|
|
3897
3914
|
flex-direction: column;
|
|
3898
|
-
max-width:
|
|
3915
|
+
max-width: 100%;
|
|
3899
3916
|
margin: 4px 0;
|
|
3900
3917
|
transition: opacity 0.2s ease, transform 0.2s var(--ease-out-expo);
|
|
3918
|
+
--chat-card-max-width: 720px;
|
|
3901
3919
|
}
|
|
3902
3920
|
|
|
3903
3921
|
.chat-message:hover {
|
|
@@ -3922,12 +3940,13 @@
|
|
|
3922
3940
|
|
|
3923
3941
|
.chat-message.assistant {
|
|
3924
3942
|
align-self: flex-start;
|
|
3925
|
-
max-width:
|
|
3943
|
+
max-width: 100%;
|
|
3944
|
+
width: 100%;
|
|
3926
3945
|
}
|
|
3927
3946
|
|
|
3928
3947
|
.chat-message.system-info {
|
|
3929
3948
|
align-self: center;
|
|
3930
|
-
max-width:
|
|
3949
|
+
max-width: 100%;
|
|
3931
3950
|
width: 100%;
|
|
3932
3951
|
margin: 10px 0;
|
|
3933
3952
|
animation: messageFloat 3s ease-in-out infinite;
|
|
@@ -4066,8 +4085,10 @@
|
|
|
4066
4085
|
box-shadow: 0 4px 16px rgba(197, 101, 61, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.15);
|
|
4067
4086
|
}
|
|
4068
4087
|
|
|
4088
|
+
/* 用户消息默认更紧凑(贴右气泡),上限放宽到 100% 让长 prompt 不再水平
|
|
4089
|
+
挤压;实际宽度由气泡内容 + word-break 决定。 */
|
|
4069
4090
|
.chat-message.user {
|
|
4070
|
-
max-width:
|
|
4091
|
+
max-width: 100%;
|
|
4071
4092
|
}
|
|
4072
4093
|
|
|
4073
4094
|
/* 助手消息气泡 */
|
|
@@ -4115,14 +4136,21 @@
|
|
|
4115
4136
|
display: flex;
|
|
4116
4137
|
flex-direction: column;
|
|
4117
4138
|
gap: 6px;
|
|
4118
|
-
max-width:
|
|
4139
|
+
max-width: 100%;
|
|
4140
|
+
}
|
|
4141
|
+
/* user turn 默认 align-self: flex-end(右对齐);多段渲染时强制
|
|
4142
|
+
容器内左对齐,否则 subagent 段会被推到右边,border-left 色条断裂。 */
|
|
4143
|
+
.chat-message.user.multi-agent {
|
|
4144
|
+
align-self: flex-start;
|
|
4145
|
+
align-items: flex-start;
|
|
4119
4146
|
}
|
|
4120
4147
|
.chat-message.multi-agent .chat-message-segment {
|
|
4121
4148
|
display: flex;
|
|
4122
4149
|
flex-direction: column;
|
|
4150
|
+
align-self: flex-start;
|
|
4123
4151
|
}
|
|
4124
4152
|
.chat-message.multi-agent .chat-message-segment.subagent {
|
|
4125
|
-
padding-left:
|
|
4153
|
+
padding-left: 10px;
|
|
4126
4154
|
margin-left: 6px;
|
|
4127
4155
|
border-left: 2px solid var(--agent-color, var(--border-subtle));
|
|
4128
4156
|
border-radius: 0 4px 4px 0;
|
|
@@ -4165,6 +4193,59 @@
|
|
|
4165
4193
|
font-style: italic;
|
|
4166
4194
|
}
|
|
4167
4195
|
|
|
4196
|
+
/* subagent 回复气泡(群聊角色完成任务后的发言) */
|
|
4197
|
+
.subagent-reply {
|
|
4198
|
+
background: color-mix(in srgb, var(--agent-color, var(--accent)) 6%, var(--bg-surface));
|
|
4199
|
+
border: 1px solid color-mix(in srgb, var(--agent-color, var(--accent)) 20%, transparent);
|
|
4200
|
+
border-radius: 10px;
|
|
4201
|
+
padding: 10px 14px;
|
|
4202
|
+
margin: 4px 0;
|
|
4203
|
+
line-height: 1.55;
|
|
4204
|
+
font-size: 0.875rem;
|
|
4205
|
+
color: var(--text-primary);
|
|
4206
|
+
word-break: break-word;
|
|
4207
|
+
}
|
|
4208
|
+
|
|
4209
|
+
.subagent-reply > :first-child { margin-top: 0; }
|
|
4210
|
+
.subagent-reply > :last-child { margin-bottom: 0; }
|
|
4211
|
+
|
|
4212
|
+
.subagent-reply.error {
|
|
4213
|
+
background: color-mix(in srgb, var(--danger, #e2574c) 8%, var(--bg-surface));
|
|
4214
|
+
border-color: color-mix(in srgb, var(--danger, #e2574c) 35%, transparent);
|
|
4215
|
+
}
|
|
4216
|
+
|
|
4217
|
+
.subagent-reply.pending {
|
|
4218
|
+
opacity: 0.7;
|
|
4219
|
+
padding: 14px 16px;
|
|
4220
|
+
}
|
|
4221
|
+
|
|
4222
|
+
.subagent-reply-icon {
|
|
4223
|
+
display: inline-block;
|
|
4224
|
+
color: var(--danger, #e2574c);
|
|
4225
|
+
margin-right: 6px;
|
|
4226
|
+
font-weight: 700;
|
|
4227
|
+
}
|
|
4228
|
+
|
|
4229
|
+
.subagent-reply-body {
|
|
4230
|
+
display: inline;
|
|
4231
|
+
}
|
|
4232
|
+
|
|
4233
|
+
.subagent-reply pre,
|
|
4234
|
+
.subagent-reply code {
|
|
4235
|
+
font-size: 0.82rem;
|
|
4236
|
+
}
|
|
4237
|
+
|
|
4238
|
+
.subagent-reply pre {
|
|
4239
|
+
background: rgba(0, 0, 0, 0.04);
|
|
4240
|
+
padding: 10px 12px;
|
|
4241
|
+
border-radius: 6px;
|
|
4242
|
+
overflow-x: hidden;
|
|
4243
|
+
white-space: pre-wrap;
|
|
4244
|
+
word-break: break-word;
|
|
4245
|
+
overflow-wrap: anywhere;
|
|
4246
|
+
margin: 8px 0;
|
|
4247
|
+
}
|
|
4248
|
+
|
|
4168
4249
|
/* ===== 消息使用量信息 ===== */
|
|
4169
4250
|
.message-usage {
|
|
4170
4251
|
margin-top: 8px;
|
|
@@ -4274,7 +4355,7 @@
|
|
|
4274
4355
|
/* Thinking Card (Deep Thought) */
|
|
4275
4356
|
.chat-message.thinking {
|
|
4276
4357
|
align-self: flex-start;
|
|
4277
|
-
max-width:
|
|
4358
|
+
max-width: 100%;
|
|
4278
4359
|
margin: 4px 0;
|
|
4279
4360
|
}
|
|
4280
4361
|
|
|
@@ -4313,7 +4394,7 @@
|
|
|
4313
4394
|
/* Prompt Suggestion Card (Pulsing) */
|
|
4314
4395
|
.chat-message.prompt {
|
|
4315
4396
|
align-self: center;
|
|
4316
|
-
max-width:
|
|
4397
|
+
max-width: 100%;
|
|
4317
4398
|
margin: 4px 0;
|
|
4318
4399
|
}
|
|
4319
4400
|
|
|
@@ -4396,6 +4477,7 @@
|
|
|
4396
4477
|
border-radius: var(--radius-sm);
|
|
4397
4478
|
overflow: hidden;
|
|
4398
4479
|
width: 100%;
|
|
4480
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
4399
4481
|
box-sizing: border-box;
|
|
4400
4482
|
background: linear-gradient(180deg, rgba(255, 251, 245, 0.88) 0%, rgba(255, 246, 234, 0.72) 100%);
|
|
4401
4483
|
box-shadow: 0 1px 2px rgba(89, 58, 32, 0.04);
|
|
@@ -4803,6 +4885,9 @@
|
|
|
4803
4885
|
align-items: baseline;
|
|
4804
4886
|
gap: 5px;
|
|
4805
4887
|
margin: 2px 0;
|
|
4888
|
+
width: 100%;
|
|
4889
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
4890
|
+
box-sizing: border-box;
|
|
4806
4891
|
padding: 3px 8px;
|
|
4807
4892
|
border-radius: 6px;
|
|
4808
4893
|
background: rgba(138, 108, 178, 0.04);
|
|
@@ -4910,6 +4995,9 @@
|
|
|
4910
4995
|
────────────────────────────────────────────────────────────── */
|
|
4911
4996
|
.tool-group {
|
|
4912
4997
|
margin: 4px 0;
|
|
4998
|
+
width: 100%;
|
|
4999
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
5000
|
+
box-sizing: border-box;
|
|
4913
5001
|
border-radius: var(--radius-sm);
|
|
4914
5002
|
border: 1px solid var(--border-subtle);
|
|
4915
5003
|
background: linear-gradient(180deg, rgba(255, 251, 245, 0.85) 0%, rgba(255, 248, 238, 0.7) 100%);
|
|
@@ -5035,10 +5123,17 @@
|
|
|
5035
5123
|
display: flex;
|
|
5036
5124
|
flex-direction: column;
|
|
5037
5125
|
margin: 1px 0;
|
|
5126
|
+
width: 100%;
|
|
5127
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
5128
|
+
box-sizing: border-box;
|
|
5038
5129
|
border-radius: var(--radius-xs);
|
|
5039
5130
|
cursor: pointer;
|
|
5040
5131
|
transition: background 0.16s ease;
|
|
5041
5132
|
}
|
|
5133
|
+
/* 嵌套在 tool-group-body 里的 inline-tool 撑满父容器即可(父已经限宽) */
|
|
5134
|
+
.tool-group-body > .inline-tool {
|
|
5135
|
+
max-width: 100%;
|
|
5136
|
+
}
|
|
5042
5137
|
.inline-tool-row {
|
|
5043
5138
|
display: flex;
|
|
5044
5139
|
align-items: center;
|
|
@@ -5222,6 +5317,9 @@
|
|
|
5222
5317
|
────────────────────────────────────────────────────────────── */
|
|
5223
5318
|
.inline-terminal {
|
|
5224
5319
|
margin: 4px 0;
|
|
5320
|
+
width: 100%;
|
|
5321
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
5322
|
+
box-sizing: border-box;
|
|
5225
5323
|
border: 1px solid rgba(15, 12, 9, 0.6);
|
|
5226
5324
|
border-radius: var(--radius-sm);
|
|
5227
5325
|
background: #1f1b17;
|
|
@@ -5382,6 +5480,9 @@
|
|
|
5382
5480
|
────────────────────────────────────────────────────────────── */
|
|
5383
5481
|
.inline-diff {
|
|
5384
5482
|
margin: 4px 0;
|
|
5483
|
+
width: 100%;
|
|
5484
|
+
max-width: var(--chat-card-max-width, 720px);
|
|
5485
|
+
box-sizing: border-box;
|
|
5385
5486
|
border: 1px solid var(--border-subtle);
|
|
5386
5487
|
border-radius: var(--radius-sm);
|
|
5387
5488
|
overflow: hidden;
|
|
@@ -5607,7 +5708,12 @@
|
|
|
5607
5708
|
|
|
5608
5709
|
/* Markdown Content */
|
|
5609
5710
|
.markdown-content { color: inherit; white-space: normal; overflow-x: hidden; }
|
|
5610
|
-
.markdown-content .code-block pre {
|
|
5711
|
+
.markdown-content .code-block pre {
|
|
5712
|
+
overflow-x: hidden;
|
|
5713
|
+
white-space: pre-wrap;
|
|
5714
|
+
word-break: break-word;
|
|
5715
|
+
overflow-wrap: anywhere;
|
|
5716
|
+
}
|
|
5611
5717
|
.markdown-content p { margin: 0 0 8px 0; }
|
|
5612
5718
|
.markdown-content p:last-child { margin-bottom: 0; }
|
|
5613
5719
|
.markdown-content strong { font-weight: 600; }
|
|
@@ -5719,7 +5825,10 @@
|
|
|
5719
5825
|
.markdown-content pre {
|
|
5720
5826
|
margin: 0;
|
|
5721
5827
|
padding: 12px;
|
|
5722
|
-
overflow-x:
|
|
5828
|
+
overflow-x: hidden;
|
|
5829
|
+
white-space: pre-wrap;
|
|
5830
|
+
word-break: break-word;
|
|
5831
|
+
overflow-wrap: anywhere;
|
|
5723
5832
|
}
|
|
5724
5833
|
.markdown-content pre code {
|
|
5725
5834
|
font-family: var(--font-mono);
|
|
@@ -5771,14 +5880,42 @@
|
|
|
5771
5880
|
align-items: center;
|
|
5772
5881
|
justify-content: space-between;
|
|
5773
5882
|
padding: 2px 4px 3px 6px;
|
|
5774
|
-
gap:
|
|
5883
|
+
gap: 3px;
|
|
5775
5884
|
}
|
|
5776
5885
|
.input-composer-left {
|
|
5777
5886
|
display: flex;
|
|
5778
5887
|
align-items: center;
|
|
5779
|
-
gap:
|
|
5888
|
+
gap: 3px;
|
|
5780
5889
|
flex-wrap: nowrap;
|
|
5781
5890
|
flex-shrink: 0;
|
|
5891
|
+
min-width: 0;
|
|
5892
|
+
}
|
|
5893
|
+
/* 会话设置三件套 (mode / model / thinking) 的容器 —— 用极轻的内描边视觉地
|
|
5894
|
+
把三颗"新会话/会话级配置 pill"框成一个 segmented control,与右侧
|
|
5895
|
+
开关型 chip (自动批准 / 终端交互) 在认知上分层。 */
|
|
5896
|
+
.composer-pill-group {
|
|
5897
|
+
display: inline-flex;
|
|
5898
|
+
align-items: center;
|
|
5899
|
+
gap: 2px;
|
|
5900
|
+
padding: 1px;
|
|
5901
|
+
border-radius: 11px;
|
|
5902
|
+
background: rgba(197, 101, 61, 0.05);
|
|
5903
|
+
box-shadow: inset 0 0 0 1px rgba(197, 101, 61, 0.08);
|
|
5904
|
+
min-width: 0;
|
|
5905
|
+
}
|
|
5906
|
+
.composer-pill-group .composer-pill {
|
|
5907
|
+
border-color: transparent;
|
|
5908
|
+
background: transparent;
|
|
5909
|
+
}
|
|
5910
|
+
.composer-pill-group .composer-pill:hover {
|
|
5911
|
+
border-color: var(--accent);
|
|
5912
|
+
background-color: rgba(255, 255, 255, 0.75);
|
|
5913
|
+
}
|
|
5914
|
+
.composer-pill-group .composer-pill:focus,
|
|
5915
|
+
.composer-pill-group .composer-pill:focus-visible,
|
|
5916
|
+
.composer-pill-group .composer-pill:focus-within {
|
|
5917
|
+
border-color: var(--accent);
|
|
5918
|
+
background-color: rgba(255, 255, 255, 0.9);
|
|
5782
5919
|
}
|
|
5783
5920
|
|
|
5784
5921
|
/* Permission actions inline in composer bar */
|
|
@@ -5842,28 +5979,16 @@
|
|
|
5842
5979
|
to { opacity: 1; transform: translateX(0); }
|
|
5843
5980
|
}
|
|
5844
5981
|
|
|
5845
|
-
/*
|
|
5846
|
-
|
|
5847
|
-
display: inline-flex;
|
|
5848
|
-
align-items: center;
|
|
5849
|
-
gap: 2px;
|
|
5850
|
-
font-size: 0.65rem;
|
|
5851
|
-
color: var(--muted);
|
|
5852
|
-
cursor: pointer;
|
|
5853
|
-
padding: 1px 4px;
|
|
5854
|
-
border-radius: 4px;
|
|
5855
|
-
transition: color 0.15s, background 0.15s;
|
|
5856
|
-
user-select: none;
|
|
5857
|
-
white-space: nowrap;
|
|
5858
|
-
}
|
|
5859
|
-
.auto-approve-indicator:hover {
|
|
5860
|
-
background: rgba(255, 255, 255, 0.06);
|
|
5861
|
-
}
|
|
5982
|
+
/* 自动批准 chip —— 套用 .composer-pill .composer-pill-chip 的基础外观,
|
|
5983
|
+
这里只覆盖 active 态的绿色(语义色)。 */
|
|
5862
5984
|
.auto-approve-indicator.active {
|
|
5863
5985
|
color: #22c55e;
|
|
5986
|
+
border-color: rgba(34, 197, 94, 0.5);
|
|
5987
|
+
background: rgba(34, 197, 94, 0.12);
|
|
5864
5988
|
}
|
|
5865
5989
|
.auto-approve-indicator.active:hover {
|
|
5866
|
-
background: rgba(34, 197, 94, 0.
|
|
5990
|
+
background: rgba(34, 197, 94, 0.2);
|
|
5991
|
+
border-color: #22c55e;
|
|
5867
5992
|
}
|
|
5868
5993
|
|
|
5869
5994
|
/* Approval stats badge */
|
|
@@ -5876,24 +6001,27 @@
|
|
|
5876
6001
|
display: none;
|
|
5877
6002
|
}
|
|
5878
6003
|
.approval-stats-divider {
|
|
5879
|
-
|
|
6004
|
+
/* 同行已经全部用 .composer-pill 的统一 gap (3px) 分隔,再加一条 1px 实线分隔
|
|
6005
|
+
反而显得拥挤。仅保留极细的 spacer 让 stats badge 与左侧 chip 不黏连。 */
|
|
6006
|
+
width: 0;
|
|
5880
6007
|
height: 16px;
|
|
5881
|
-
|
|
5882
|
-
margin: 0 4px 0 2px;
|
|
6008
|
+
margin: 0 1px;
|
|
5883
6009
|
}
|
|
5884
6010
|
.approval-stats-badge {
|
|
5885
6011
|
display: inline-flex;
|
|
5886
6012
|
align-items: center;
|
|
5887
6013
|
gap: 3px;
|
|
5888
|
-
|
|
6014
|
+
min-height: 22px;
|
|
6015
|
+
padding: 1px 8px;
|
|
5889
6016
|
border-radius: 10px;
|
|
5890
6017
|
background: rgba(34, 197, 94, 0.1);
|
|
5891
6018
|
color: #22c55e;
|
|
5892
|
-
font-size: 0.
|
|
6019
|
+
font-size: 0.625rem;
|
|
5893
6020
|
font-weight: 600;
|
|
5894
6021
|
cursor: default;
|
|
5895
6022
|
transition: background 0.15s;
|
|
5896
|
-
line-height: 1
|
|
6023
|
+
line-height: 1;
|
|
6024
|
+
box-sizing: border-box;
|
|
5897
6025
|
}
|
|
5898
6026
|
.approval-stats-badge:hover {
|
|
5899
6027
|
background: rgba(34, 197, 94, 0.18);
|
|
@@ -5974,31 +6102,11 @@
|
|
|
5974
6102
|
color: #22c55e;
|
|
5975
6103
|
}
|
|
5976
6104
|
|
|
6105
|
+
/* 终端交互切换按钮 —— 现在套用 .composer-pill .composer-pill-chip 的统一外观,
|
|
6106
|
+
这里仅保留图标专属的微调(字体大小 / 收紧 padding 让 ⌨ 居中)。 */
|
|
5977
6107
|
.composer-interactive-toggle {
|
|
5978
|
-
display: inline-flex;
|
|
5979
|
-
align-items: center;
|
|
5980
|
-
justify-content: center;
|
|
5981
|
-
width: 22px;
|
|
5982
|
-
height: 22px;
|
|
5983
|
-
border: 1px solid var(--border-subtle);
|
|
5984
|
-
border-radius: 4px;
|
|
5985
|
-
background: transparent;
|
|
5986
|
-
color: var(--text-muted);
|
|
5987
6108
|
font-size: 0.75rem;
|
|
5988
|
-
|
|
5989
|
-
transition: all var(--transition-fast);
|
|
5990
|
-
flex-shrink: 0;
|
|
5991
|
-
padding: 0;
|
|
5992
|
-
}
|
|
5993
|
-
.composer-interactive-toggle:hover {
|
|
5994
|
-
background: rgba(197, 101, 61, 0.08);
|
|
5995
|
-
color: var(--text-secondary);
|
|
5996
|
-
border-color: var(--accent);
|
|
5997
|
-
}
|
|
5998
|
-
.composer-interactive-toggle.active {
|
|
5999
|
-
background: rgba(197, 101, 61, 0.12);
|
|
6000
|
-
color: var(--accent);
|
|
6001
|
-
border-color: var(--accent);
|
|
6109
|
+
padding: 1px 8px;
|
|
6002
6110
|
}
|
|
6003
6111
|
.input-composer-right {
|
|
6004
6112
|
display: flex;
|
|
@@ -6008,52 +6116,79 @@
|
|
|
6008
6116
|
flex: 1;
|
|
6009
6117
|
justify-content: flex-end;
|
|
6010
6118
|
}
|
|
6119
|
+
/* 队列计数器:v1.30.3 是个 0.625rem 的小角标,挤在 input-hint 旁边没人看见。
|
|
6120
|
+
升级成 dot + label 的 pill,配色和"立即发送"按钮同源,让用户能联想到这套语义。 */
|
|
6011
6121
|
.queue-counter {
|
|
6012
|
-
|
|
6122
|
+
display: inline-flex;
|
|
6123
|
+
align-items: center;
|
|
6124
|
+
gap: 5px;
|
|
6125
|
+
font-size: 0.6875rem;
|
|
6013
6126
|
color: var(--accent);
|
|
6014
|
-
background:
|
|
6015
|
-
padding:
|
|
6016
|
-
border-radius:
|
|
6127
|
+
background: linear-gradient(180deg, rgba(197, 101, 61, 0.18) 0%, rgba(197, 101, 61, 0.10) 100%);
|
|
6128
|
+
padding: 3px 9px;
|
|
6129
|
+
border-radius: 999px;
|
|
6017
6130
|
white-space: nowrap;
|
|
6018
6131
|
font-weight: 600;
|
|
6132
|
+
letter-spacing: 0.02em;
|
|
6133
|
+
box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.25) inset;
|
|
6019
6134
|
animation: queuePulse 1.5s ease-in-out infinite;
|
|
6020
6135
|
}
|
|
6021
6136
|
.queue-counter.hidden { display: none; }
|
|
6137
|
+
.queue-counter-dot {
|
|
6138
|
+
width: 6px;
|
|
6139
|
+
height: 6px;
|
|
6140
|
+
border-radius: 50%;
|
|
6141
|
+
background: var(--accent);
|
|
6142
|
+
flex-shrink: 0;
|
|
6143
|
+
animation: queueDotPulse 1.0s ease-in-out infinite;
|
|
6144
|
+
}
|
|
6145
|
+
.queue-counter-text { line-height: 1; }
|
|
6022
6146
|
@keyframes queuePulse {
|
|
6023
6147
|
0%, 100% { opacity: 1; }
|
|
6024
|
-
50%
|
|
6148
|
+
50% { opacity: 0.78; }
|
|
6149
|
+
}
|
|
6150
|
+
@keyframes queueDotPulse {
|
|
6151
|
+
0%, 100% { transform: scale(1); opacity: 1; }
|
|
6152
|
+
50% { transform: scale(0.7); opacity: 0.55; }
|
|
6025
6153
|
}
|
|
6026
6154
|
|
|
6027
|
-
/* Queued message in chat view
|
|
6155
|
+
/* Queued message in chat view:用户最容易"觉得排队没生效"是因为旧版徽章太小。
|
|
6156
|
+
把气泡本身做出明显的"半成稿"质感(虚线边框 + 错位阴影),徽章放大到正常字号,
|
|
6157
|
+
让排队这件事在视觉上和"已发出"清楚拉开。 */
|
|
6028
6158
|
.chat-message.user.queued {
|
|
6029
|
-
opacity: 0.
|
|
6159
|
+
opacity: 0.92;
|
|
6030
6160
|
}
|
|
6031
6161
|
.chat-message.user.queued .chat-message-bubble,
|
|
6032
6162
|
.chat-message.user.queued .chat-message-content {
|
|
6033
|
-
|
|
6034
|
-
|
|
6163
|
+
box-shadow: 0 0 0 1.5px rgba(197, 101, 61, 0.55) inset,
|
|
6164
|
+
0 1px 0 rgba(197, 101, 61, 0.10);
|
|
6165
|
+
background: linear-gradient(180deg, rgba(255, 245, 235, 0.85) 0%, rgba(255, 235, 220, 0.65) 100%);
|
|
6166
|
+
border-radius: 14px;
|
|
6167
|
+
position: relative;
|
|
6035
6168
|
}
|
|
6036
6169
|
.queued-badge {
|
|
6037
6170
|
display: inline-flex;
|
|
6038
6171
|
align-items: center;
|
|
6039
|
-
gap:
|
|
6040
|
-
font-size: 0.
|
|
6041
|
-
color:
|
|
6042
|
-
background: var(--accent
|
|
6043
|
-
padding:
|
|
6172
|
+
gap: 5px;
|
|
6173
|
+
font-size: 0.75rem;
|
|
6174
|
+
color: #fff;
|
|
6175
|
+
background: linear-gradient(180deg, var(--accent) 0%, #a8522f 100%);
|
|
6176
|
+
padding: 3px 10px 3px 9px;
|
|
6044
6177
|
border-radius: 999px;
|
|
6045
6178
|
font-weight: 600;
|
|
6046
6179
|
margin-top: 6px;
|
|
6047
6180
|
letter-spacing: 0.04em;
|
|
6181
|
+
box-shadow: 0 2px 6px rgba(197, 101, 61, 0.30);
|
|
6048
6182
|
animation: queuePulse 1.5s ease-in-out infinite;
|
|
6049
6183
|
}
|
|
6050
6184
|
.queued-badge::before {
|
|
6051
6185
|
content: '';
|
|
6052
|
-
width:
|
|
6053
|
-
height:
|
|
6186
|
+
width: 7px;
|
|
6187
|
+
height: 7px;
|
|
6054
6188
|
border-radius: 50%;
|
|
6055
|
-
background:
|
|
6056
|
-
|
|
6189
|
+
background: #fff;
|
|
6190
|
+
box-shadow: 0 0 0 2px rgba(255, 255, 255, 0.45);
|
|
6191
|
+
animation: queueDotPulse 1.0s ease-in-out infinite;
|
|
6057
6192
|
}
|
|
6058
6193
|
|
|
6059
6194
|
.input-hint {
|
|
@@ -6760,36 +6895,125 @@
|
|
|
6760
6895
|
.input-inline-controls {
|
|
6761
6896
|
}
|
|
6762
6897
|
|
|
6763
|
-
/*
|
|
6764
|
-
|
|
6898
|
+
/* ========================================================================
|
|
6899
|
+
输入框统一 pill 系统 —— 模式 / 模型 / 思考 / 自动批准 / 终端交互
|
|
6900
|
+
全部用同一套尺寸 / 字号 / 边框 / hover / focus 表现,避免视觉混乱。
|
|
6901
|
+
变体:
|
|
6902
|
+
.composer-pill-select → 原生 <select> 形态(右侧 chevron)
|
|
6903
|
+
.composer-pill-chip → 按钮 / 切换状态的 chip(支持 .active 亮态)
|
|
6904
|
+
现有 .chat-mode-select / .auto-approve-indicator / .composer-interactive-toggle
|
|
6905
|
+
仍保留作为特定色彩或最大宽度等微调入口。
|
|
6906
|
+
====================================================================== */
|
|
6907
|
+
.composer-pill {
|
|
6765
6908
|
font-family: var(--font-sans);
|
|
6766
6909
|
font-size: 0.625rem;
|
|
6767
6910
|
font-weight: 500;
|
|
6768
|
-
|
|
6911
|
+
line-height: 1;
|
|
6912
|
+
min-height: 22px;
|
|
6913
|
+
padding: 1px 8px;
|
|
6769
6914
|
border-radius: 10px;
|
|
6770
6915
|
border: 1px solid var(--border-subtle);
|
|
6771
6916
|
background: rgba(246, 241, 232, 0.7);
|
|
6772
6917
|
color: var(--text-secondary);
|
|
6773
6918
|
cursor: pointer;
|
|
6774
6919
|
transition: all var(--transition-fast);
|
|
6775
|
-
|
|
6776
|
-
|
|
6920
|
+
display: inline-flex;
|
|
6921
|
+
align-items: center;
|
|
6922
|
+
justify-content: center;
|
|
6923
|
+
gap: 4px;
|
|
6924
|
+
white-space: nowrap;
|
|
6925
|
+
box-sizing: border-box;
|
|
6926
|
+
user-select: none;
|
|
6927
|
+
}
|
|
6928
|
+
.composer-pill:hover {
|
|
6929
|
+
border-color: var(--accent);
|
|
6930
|
+
background-color: rgba(246, 241, 232, 1);
|
|
6931
|
+
}
|
|
6932
|
+
.composer-pill:focus,
|
|
6933
|
+
.composer-pill:focus-visible {
|
|
6934
|
+
border-color: var(--accent);
|
|
6935
|
+
box-shadow: 0 0 0 2px var(--accent-muted);
|
|
6936
|
+
outline: none;
|
|
6937
|
+
}
|
|
6938
|
+
.composer-pill.disabled,
|
|
6939
|
+
.composer-pill[disabled] {
|
|
6940
|
+
opacity: 0.55;
|
|
6941
|
+
cursor: not-allowed;
|
|
6942
|
+
}
|
|
6943
|
+
|
|
6944
|
+
/* select 变体:保留 chevron 背景图与文本截断 */
|
|
6945
|
+
.composer-pill-select {
|
|
6946
|
+
padding: 1px 16px 1px 6px;
|
|
6947
|
+
max-width: 110px;
|
|
6777
6948
|
overflow: hidden;
|
|
6778
6949
|
text-overflow: ellipsis;
|
|
6779
|
-
white-space: nowrap;
|
|
6780
6950
|
appearance: none;
|
|
6781
6951
|
-webkit-appearance: none;
|
|
6782
6952
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='5' fill='none'%3E%3Cpath d='M1 1l3 3 3-3' stroke='%239a8e82' stroke-width='1.2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
|
|
6783
6953
|
background-repeat: no-repeat;
|
|
6784
6954
|
background-position: right 4px center;
|
|
6955
|
+
/* 让 native <select> 在 inline-flex 下表现稳定 */
|
|
6956
|
+
display: inline-block;
|
|
6957
|
+
text-align: left;
|
|
6785
6958
|
}
|
|
6786
|
-
|
|
6787
|
-
|
|
6788
|
-
|
|
6959
|
+
|
|
6960
|
+
/* chip 变体:开关型按钮 / span,无 chevron,可亮态。
|
|
6961
|
+
字号与 select pill 对齐 (0.625rem),避免同行字号微差。 */
|
|
6962
|
+
.composer-pill-chip {
|
|
6963
|
+
padding: 1px 8px;
|
|
6964
|
+
font-size: 0.625rem;
|
|
6789
6965
|
}
|
|
6790
|
-
.
|
|
6966
|
+
.composer-pill-chip.active {
|
|
6967
|
+
background: var(--accent-muted, rgba(197, 101, 61, 0.12));
|
|
6968
|
+
color: var(--accent);
|
|
6791
6969
|
border-color: var(--accent);
|
|
6792
|
-
|
|
6970
|
+
}
|
|
6971
|
+
.composer-pill-chip.active:hover {
|
|
6972
|
+
background: rgba(197, 101, 61, 0.18);
|
|
6973
|
+
}
|
|
6974
|
+
|
|
6975
|
+
/* 兼容旧类:保留为 alias,仅用于细节微调(如最大宽度) */
|
|
6976
|
+
.chat-mode-select {
|
|
6977
|
+
/* 旧标识,沿用 .composer-pill / .composer-pill-select 的基础风格 */
|
|
6978
|
+
max-width: 78px;
|
|
6979
|
+
}
|
|
6980
|
+
.chat-model-select {
|
|
6981
|
+
max-width: 96px;
|
|
6982
|
+
}
|
|
6983
|
+
.chat-thinking-select {
|
|
6984
|
+
max-width: 86px;
|
|
6985
|
+
}
|
|
6986
|
+
|
|
6987
|
+
/* 思考深度 trigger —— 与 mode / model 同形 pill:相同 border / chevron / 字号。
|
|
6988
|
+
内部 .chat-thinking-label 显示当前档位,原生 <select> 透明叠层负责交互,
|
|
6989
|
+
移动端能调起系统滚轮选择,桌面端点击则展开原生菜单。 */
|
|
6990
|
+
.chat-thinking-trigger {
|
|
6991
|
+
position: relative;
|
|
6992
|
+
max-width: 86px;
|
|
6993
|
+
padding-left: 6px;
|
|
6994
|
+
}
|
|
6995
|
+
.chat-thinking-label {
|
|
6996
|
+
overflow: hidden;
|
|
6997
|
+
text-overflow: ellipsis;
|
|
6998
|
+
letter-spacing: 0.01em;
|
|
6999
|
+
}
|
|
7000
|
+
.chat-thinking-hidden-select {
|
|
7001
|
+
position: absolute;
|
|
7002
|
+
inset: 0;
|
|
7003
|
+
width: 100%;
|
|
7004
|
+
height: 100%;
|
|
7005
|
+
margin: 0;
|
|
7006
|
+
padding: 0;
|
|
7007
|
+
border: 0;
|
|
7008
|
+
background: transparent;
|
|
7009
|
+
color: transparent;
|
|
7010
|
+
font: inherit;
|
|
7011
|
+
opacity: 0;
|
|
7012
|
+
cursor: pointer;
|
|
7013
|
+
appearance: none;
|
|
7014
|
+
-webkit-appearance: none;
|
|
7015
|
+
}
|
|
7016
|
+
.chat-thinking-hidden-select:focus {
|
|
6793
7017
|
outline: none;
|
|
6794
7018
|
}
|
|
6795
7019
|
|
|
@@ -6845,6 +7069,79 @@
|
|
|
6845
7069
|
transform: scale(0.95);
|
|
6846
7070
|
}
|
|
6847
7071
|
|
|
7072
|
+
/* "立即发送":结构化会话流式输出时显示,按下会中断当前回复立即处理新输入。
|
|
7073
|
+
v1.30.3 把它做成 28px 圆形 + dashed 边框,结果用户根本注意不到这颗按钮、
|
|
7074
|
+
误以为"立即发送没效果"。现在升级成 pill(图标 + "立即"文字 + 实色高对比 + 脉动),
|
|
7075
|
+
和 send 按钮形成"加急/默认"的视觉对位。 */
|
|
7076
|
+
.btn-pill {
|
|
7077
|
+
display: inline-flex;
|
|
7078
|
+
align-items: center;
|
|
7079
|
+
gap: 4px;
|
|
7080
|
+
height: 28px;
|
|
7081
|
+
padding: 0 10px 0 8px;
|
|
7082
|
+
border-radius: 999px;
|
|
7083
|
+
border: none;
|
|
7084
|
+
cursor: pointer;
|
|
7085
|
+
transition: all var(--transition-fast);
|
|
7086
|
+
flex-shrink: 0;
|
|
7087
|
+
font-size: 0.6875rem;
|
|
7088
|
+
font-weight: 600;
|
|
7089
|
+
letter-spacing: 0.02em;
|
|
7090
|
+
white-space: nowrap;
|
|
7091
|
+
}
|
|
7092
|
+
.btn-pill-icon {
|
|
7093
|
+
display: block;
|
|
7094
|
+
flex-shrink: 0;
|
|
7095
|
+
}
|
|
7096
|
+
.btn-pill-label {
|
|
7097
|
+
display: inline;
|
|
7098
|
+
}
|
|
7099
|
+
.btn-pill-interrupt {
|
|
7100
|
+
background: linear-gradient(180deg, rgba(197, 101, 61, 0.18) 0%, rgba(197, 101, 61, 0.10) 100%);
|
|
7101
|
+
color: var(--accent);
|
|
7102
|
+
margin-right: 4px;
|
|
7103
|
+
box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.30) inset;
|
|
7104
|
+
animation: interruptPulse 1.8s ease-in-out infinite;
|
|
7105
|
+
}
|
|
7106
|
+
.btn-pill-interrupt:hover {
|
|
7107
|
+
background: linear-gradient(180deg, var(--accent) 0%, #a8522f 100%);
|
|
7108
|
+
color: #fff;
|
|
7109
|
+
box-shadow: 0 3px 10px rgba(197, 101, 61, 0.35);
|
|
7110
|
+
transform: translateY(-1px);
|
|
7111
|
+
animation: none;
|
|
7112
|
+
}
|
|
7113
|
+
.btn-pill-interrupt:active {
|
|
7114
|
+
transform: translateY(0) scale(0.97);
|
|
7115
|
+
}
|
|
7116
|
+
.btn-pill-interrupt.hidden {
|
|
7117
|
+
display: none;
|
|
7118
|
+
}
|
|
7119
|
+
@keyframes interruptPulse {
|
|
7120
|
+
0%, 100% { box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.30) inset, 0 0 0 0 rgba(197, 101, 61, 0.0); }
|
|
7121
|
+
50% { box-shadow: 0 0 0 1px rgba(197, 101, 61, 0.45) inset, 0 0 0 4px rgba(197, 101, 61, 0.12); }
|
|
7122
|
+
}
|
|
7123
|
+
/* 屏宽 < 480 时把"立即"文字藏掉,只剩 » 图标,避免和 send 一起把行挤爆。
|
|
7124
|
+
hover/focus 期间临时回显,让长按移动端用户也能确认按钮含义。 */
|
|
7125
|
+
@media (max-width: 480px) {
|
|
7126
|
+
.btn-pill-interrupt {
|
|
7127
|
+
padding: 0 8px;
|
|
7128
|
+
}
|
|
7129
|
+
.btn-pill-interrupt .btn-pill-label {
|
|
7130
|
+
display: none;
|
|
7131
|
+
}
|
|
7132
|
+
}
|
|
7133
|
+
|
|
7134
|
+
/* send 按钮在「排队模式」下退到次要色,让相邻的"立即发送"成为视觉重点。
|
|
7135
|
+
不动尺寸 / 圆形,避免 layout shift。 */
|
|
7136
|
+
.btn-circle-send.queue-mode {
|
|
7137
|
+
background: linear-gradient(180deg, rgba(197, 101, 61, 0.55) 0%, rgba(168, 82, 47, 0.55) 100%);
|
|
7138
|
+
box-shadow: 0 1px 4px rgba(197, 101, 61, 0.15);
|
|
7139
|
+
}
|
|
7140
|
+
.btn-circle-send.queue-mode:hover {
|
|
7141
|
+
background: linear-gradient(180deg, var(--accent) 0%, #a8522f 100%);
|
|
7142
|
+
box-shadow: 0 3px 10px rgba(197, 101, 61, 0.35);
|
|
7143
|
+
}
|
|
7144
|
+
|
|
6848
7145
|
/* Prompt optimize button — top-right of the input composer */
|
|
6849
7146
|
.prompt-optimize-btn {
|
|
6850
7147
|
position: absolute;
|
|
@@ -9013,7 +9310,7 @@
|
|
|
9013
9310
|
.view-toggle { height: 36px; }
|
|
9014
9311
|
.view-toggle-btn { padding: 0 12px; font-size: 0.75rem; height: 30px; min-height: 30px; }
|
|
9015
9312
|
.chat-container { padding: 0 12px 12px; }
|
|
9016
|
-
.chat-message { max-width:
|
|
9313
|
+
.chat-message { max-width: 100%; }
|
|
9017
9314
|
.thinking-card { padding: 10px 14px; }
|
|
9018
9315
|
.thinking-content { font-size: 0.8125rem; }
|
|
9019
9316
|
.tool-picker { grid-template-columns: 1fr; }
|
|
@@ -9073,9 +9370,34 @@
|
|
|
9073
9370
|
.floating-sidebar-toggle .hamburger-icon { width: 13px; height: 9px; }
|
|
9074
9371
|
|
|
9075
9372
|
.sidebar { top: 0; }
|
|
9076
|
-
.sidebar-header { padding: 10px 12px; min-height: 48px; }
|
|
9077
|
-
|
|
9078
|
-
.sidebar-
|
|
9373
|
+
.sidebar-header { padding: 10px 12px; min-height: 48px; gap: 8px; }
|
|
9374
|
+
/* 收紧 actions 内按钮间距,给主区(logo/标题/计数)腾空间 */
|
|
9375
|
+
.sidebar-header-actions { gap: 4px; }
|
|
9376
|
+
/* 5 个底栏按钮在 2 列布局下最后一颗会单独占满第三行,看着很挤。
|
|
9377
|
+
手机端统一切到 4 列、隐藏文字、保留图标,更紧凑也对齐统一。 */
|
|
9378
|
+
.sidebar-footer-actions {
|
|
9379
|
+
grid-template-columns: repeat(4, 1fr);
|
|
9380
|
+
gap: 4px;
|
|
9381
|
+
}
|
|
9382
|
+
.sidebar-footer-actions .btn {
|
|
9383
|
+
min-height: 40px;
|
|
9384
|
+
padding: 6px 4px;
|
|
9385
|
+
}
|
|
9386
|
+
.sidebar-footer-actions .btn span { display: none; }
|
|
9387
|
+
.sidebar-footer-actions .btn svg { width: 18px; height: 18px; }
|
|
9388
|
+
|
|
9389
|
+
/* "更多操作"下拉:默认锚在更多按钮右沿向左展开 150px。手机端:
|
|
9390
|
+
· 加大 min-width 让中文项不会两行;
|
|
9391
|
+
· max-width 限制在可见区,防止极窄手机被裁;
|
|
9392
|
+
· 按钮在侧栏靠右,下拉自然贴侧栏右沿;用 right: 0 原值即可。 */
|
|
9393
|
+
.sidebar-header-overflow {
|
|
9394
|
+
min-width: 180px;
|
|
9395
|
+
max-width: calc(100vw - 24px);
|
|
9396
|
+
}
|
|
9397
|
+
.sidebar-header-overflow .overflow-item {
|
|
9398
|
+
padding: 11px 14px;
|
|
9399
|
+
font-size: 0.875rem;
|
|
9400
|
+
}
|
|
9079
9401
|
|
|
9080
9402
|
/* 移动端终端顶栏 - 紧凑 */
|
|
9081
9403
|
.terminal-header { padding: 5px 8px; min-height: 32px; }
|
|
@@ -9225,11 +9547,27 @@
|
|
|
9225
9547
|
|
|
9226
9548
|
.input-composer-bar {
|
|
9227
9549
|
padding: 1px 3px 2px 5px;
|
|
9228
|
-
gap:
|
|
9550
|
+
gap: 2px;
|
|
9229
9551
|
}
|
|
9230
9552
|
|
|
9231
|
-
.input-composer-left { gap:
|
|
9553
|
+
.input-composer-left { gap: 2px; }
|
|
9232
9554
|
.input-composer-right { gap: 3px; }
|
|
9555
|
+
/* 移动端窄屏:进一步收紧 group 内边距,让 mode/model/thinking 三件套不占额外 padding */
|
|
9556
|
+
.input-composer-left .composer-pill-group {
|
|
9557
|
+
padding: 0;
|
|
9558
|
+
gap: 1px;
|
|
9559
|
+
background: transparent;
|
|
9560
|
+
box-shadow: none;
|
|
9561
|
+
}
|
|
9562
|
+
/* 移动端 chip 字号微缩,与新 desktop chip 0.625rem 对齐基础上再小一点 */
|
|
9563
|
+
.input-composer-left .composer-pill-chip {
|
|
9564
|
+
font-size: 0.6rem;
|
|
9565
|
+
padding: 1px 6px;
|
|
9566
|
+
}
|
|
9567
|
+
/* 移动端三件套 select 最大宽度同步收紧 */
|
|
9568
|
+
.input-composer-left .chat-mode-select { max-width: 64px; }
|
|
9569
|
+
.input-composer-left .chat-model-select { max-width: 78px; }
|
|
9570
|
+
.input-composer-left .chat-thinking-trigger { max-width: 72px; }
|
|
9233
9571
|
|
|
9234
9572
|
/* 移动端会话信息栏 */
|
|
9235
9573
|
.input-session-info-bar {
|
|
@@ -10013,12 +10351,13 @@
|
|
|
10013
10351
|
align-items: center;
|
|
10014
10352
|
gap: 6px;
|
|
10015
10353
|
}
|
|
10354
|
+
/* 此处历史遗留的 .chat-mode-select 全局规则会覆盖上面 .composer-pill 的统一字号 / 边框,
|
|
10355
|
+
已上移到 .composer-pill / .composer-pill-select 体系;这里只保留 outline / cursor 的兜底,
|
|
10356
|
+
不再设置 font-size / max-width,避免和 6938 行的统一样式打架。 */
|
|
10016
10357
|
.chat-mode-select {
|
|
10017
|
-
font-size: 0.6875rem;
|
|
10018
10358
|
font-family: inherit;
|
|
10019
10359
|
cursor: pointer;
|
|
10020
10360
|
outline: none;
|
|
10021
|
-
max-width: 96px;
|
|
10022
10361
|
}
|
|
10023
10362
|
.chat-mode-select:focus {
|
|
10024
10363
|
border-color: var(--accent);
|