@siact/sime-x-vue 0.0.9 → 0.0.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/style.css CHANGED
@@ -1,853 +1,429 @@
1
- @charset "UTF-8";/* --- Design Tokens --- */
2
- /* --- Main Container --- */
3
- .voice-status-wrapper[data-v-c9fa6caf] {
1
+ @charset "UTF-8";.ai-chat[data-v-958fd919] {
2
+ --chat-bg: #ffffff;
3
+ --chat-text: #1a1a1a;
4
+ --chat-text-secondary: #6b7280;
5
+ --chat-border: #e5e7eb;
6
+ --chat-user-bg: #f3f4f6;
7
+ --chat-assistant-bg: transparent;
8
+ --chat-input-bg: #f9fafb;
9
+ --chat-input-border: #d1d5db;
10
+ --chat-input-focus: #3b82f6;
11
+ --chat-btn-bg: #3b82f6;
12
+ --chat-btn-text: #ffffff;
13
+ --chat-suggestion-bg: #f3f4f6;
14
+ --chat-suggestion-hover: #e5e7eb;
15
+ --chat-tool-accent: #6366f1;
16
+ --chat-tool-success: #10b981;
17
+ --chat-tool-error: #ef4444;
18
+ --chat-code-bg: #f3f4f6;
19
+ --chat-scroll-btn-bg: #ffffff;
4
20
  display: flex;
5
- align-items: flex-start;
6
- gap: 20px;
7
- padding: 24px;
8
- background: rgba(15, 23, 42, 0.85);
9
- backdrop-filter: blur(16px);
10
- -webkit-backdrop-filter: blur(16px);
11
- border: 1px solid rgba(255, 255, 255, 0.1);
12
- border-radius: 24px;
13
- box-shadow: 0 10px 40px -10px rgba(0, 0, 0, 0.5), inset 0 1px 0 rgba(255, 255, 255, 0.1);
14
- transition: all 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
15
- max-width: 480px;
16
- width: 100%;
17
- }
18
-
19
- /* --- Indicator Section --- */
20
- .indicator-container[data-v-c9fa6caf] {
21
+ flex-direction: column;
22
+ height: 100%;
23
+ min-width: 0;
24
+ overflow: hidden;
25
+ background: var(--chat-bg);
26
+ color: var(--chat-text);
27
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
28
+ font-size: 14px;
29
+ line-height: 1.6;
21
30
  position: relative;
22
- width: 64px;
23
- height: 64px;
24
- display: flex;
25
- align-items: center;
26
- justify-content: center;
27
- flex-shrink: 0;
28
31
  }
29
- .ambient-glow[data-v-c9fa6caf] {
30
- position: absolute;
31
- inset: -20px;
32
- border-radius: 50%;
33
- opacity: 0;
34
- filter: blur(20px);
35
- transition: all 0.5s ease;
36
- }
37
- .icon-core[data-v-c9fa6caf] {
38
- position: relative;
39
- width: 52px;
40
- height: 52px;
41
- border-radius: 50%;
42
- background: rgba(255, 255, 255, 0.05);
32
+ .ai-chat__welcome[data-v-958fd919] {
43
33
  display: flex;
34
+ flex-direction: column;
44
35
  align-items: center;
45
36
  justify-content: center;
46
- border: 1px solid rgba(255, 255, 255, 0.1);
47
- z-index: 10;
48
- transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
49
- overflow: hidden;
50
- }
51
- .icon-core .mic-icon[data-v-c9fa6caf] {
52
- width: 24px;
53
- height: 24px;
54
- color: rgba(255, 255, 255, 0.9);
55
- transition: all 0.3s ease;
56
- }
57
- .icon-core .mic-icon .mic-capsule[data-v-c9fa6caf] {
58
- transition: transform 0.2s ease;
59
- transform-origin: center center;
60
- }
61
-
62
- /* --- Ripple Effects --- */
63
- .ripple-layer[data-v-c9fa6caf] {
64
- position: absolute;
65
- inset: 0;
66
- pointer-events: none;
67
- }
68
- .ripple[data-v-c9fa6caf] {
69
- position: absolute;
70
- inset: 0;
71
- border-radius: 50%;
72
- border: 2px solid transparent;
73
- opacity: 0;
74
- }
75
-
76
- /* --- Content Section --- */
77
- .content-container[data-v-c9fa6caf] {
78
37
  flex: 1;
79
- display: flex;
80
- flex-direction: column;
81
- min-width: 0; /* Prevent flex text overflow */
82
- padding-top: 4px;
83
- }
84
- .status-header[data-v-c9fa6caf] {
85
- display: flex;
86
- align-items: center;
87
- gap: 8px;
88
- margin-bottom: 8px;
89
- }
90
- .status-dot[data-v-c9fa6caf] {
91
- width: 6px;
92
- height: 6px;
93
- border-radius: 50%;
94
- background: currentColor;
95
- box-shadow: 0 0 8px currentColor;
96
- transition: color 0.3s ease;
38
+ padding: 24px;
39
+ overflow-y: auto;
97
40
  }
98
- .status-text[data-v-c9fa6caf] {
99
- font-size: 13px;
100
- font-weight: 600;
101
- text-transform: uppercase;
102
- letter-spacing: 0.05em;
103
- color: rgba(255, 255, 255, 0.6);
41
+ .ai-chat__welcome-header[data-v-958fd919] {
42
+ text-align: center;
43
+ margin-bottom: 32px;
104
44
  }
105
- .text-window[data-v-c9fa6caf] {
106
- min-height: 24px;
107
- position: relative;
45
+ .ai-chat__welcome-title[data-v-958fd919] {
46
+ font-size: 24px;
47
+ font-weight: 700;
48
+ margin: 0 0 8px;
108
49
  }
109
- .transcription-content[data-v-c9fa6caf] {
110
- font-size: 16px;
111
- line-height: 1.5;
112
- color: #fff;
113
- font-weight: 500;
50
+ .ai-chat__welcome-desc[data-v-958fd919] {
51
+ color: var(--chat-text-secondary);
114
52
  margin: 0;
115
- text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5);
116
- }
117
- .placeholder-text[data-v-c9fa6caf] {
118
- font-size: 16px;
119
- color: rgba(255, 255, 255, 0.3);
120
- font-style: italic;
121
- margin: 0;
122
- }
123
-
124
- /* --- State: Wake --- */
125
- .mode-wake[data-v-c9fa6caf] {
126
- border-color: rgba(16, 185, 129, 0.3);
127
- }
128
- .mode-wake .ambient-glow[data-v-c9fa6caf] {
129
- background: #10b981;
130
- opacity: 0.2;
131
- }
132
- .mode-wake .icon-core[data-v-c9fa6caf] {
133
- background: linear-gradient(135deg, rgba(16, 185, 129, 0.2), rgba(16, 185, 129, 0.1));
134
- border-color: rgba(16, 185, 129, 0.4);
135
- box-shadow: 0 0 15px rgba(16, 185, 129, 0.2);
53
+ max-width: 480px;
136
54
  }
137
- .mode-wake .icon-core .mic-icon[data-v-c9fa6caf] {
138
- color: rgb(20.0597014925, 231.9402985075, 161.7313432836);
55
+ .ai-chat__messages[data-v-958fd919] {
56
+ flex: 1;
57
+ overflow-y: auto;
58
+ scroll-behavior: smooth;
139
59
  }
140
- .mode-wake .status-dot[data-v-c9fa6caf] {
141
- color: #10b981;
142
- animation: pulse-dot-c9fa6caf 2s infinite;
60
+ .ai-chat__messages[data-v-958fd919]::-webkit-scrollbar {
61
+ width: 6px;
143
62
  }
144
- .mode-wake .ripple[data-v-c9fa6caf] {
145
- border-color: #10b981;
146
- animation: ripple-out-c9fa6caf 3s infinite;
63
+ .ai-chat__messages[data-v-958fd919]::-webkit-scrollbar-thumb {
64
+ background: rgba(0, 0, 0, 0.15);
65
+ border-radius: 3px;
147
66
  }
148
- .mode-wake .ripple.delay-1[data-v-c9fa6caf] {
149
- animation-delay: 0s;
67
+ .ai-chat__messages-inner[data-v-958fd919] {
68
+ max-width: 768px;
69
+ margin: 0 auto;
70
+ padding: 16px 16px 8px;
150
71
  }
151
- .mode-wake .ripple.delay-2[data-v-c9fa6caf] {
152
- animation-delay: 1s;
72
+ .ai-chat--full-width .ai-chat__messages-inner[data-v-958fd919] {
73
+ max-width: 100%;
74
+ padding: 16px 48px 8px;
153
75
  }
154
- .mode-wake .ripple.delay-3[data-v-c9fa6caf] {
155
- animation-delay: 2s;
76
+ .ai-chat__message-group[data-v-958fd919] {
77
+ margin-bottom: 16px;
156
78
  }
157
-
158
- /* --- State: Transcribing --- */
159
- .mode-transcribing[data-v-c9fa6caf] {
160
- border-color: rgba(59, 130, 246, 0.3);
161
- }
162
- .mode-transcribing .ambient-glow[data-v-c9fa6caf] {
163
- background: #3b82f6;
164
- opacity: 0.3;
165
- animation: glow-breathe-c9fa6caf 1.5s ease-in-out infinite alternate;
166
- }
167
- .mode-transcribing .icon-core[data-v-c9fa6caf] {
168
- background: linear-gradient(135deg, rgba(59, 130, 246, 0.3), rgba(59, 130, 246, 0.1));
169
- border-color: rgba(59, 130, 246, 0.5);
170
- box-shadow: 0 0 20px rgba(59, 130, 246, 0.3);
171
- transform: scale(1.1);
172
- }
173
- .mode-transcribing .icon-core .mic-icon[data-v-c9fa6caf] {
174
- color: #fff;
79
+ .ai-chat__message[data-v-958fd919] {
80
+ display: flex;
81
+ margin-bottom: 4px;
175
82
  }
176
- .mode-transcribing .icon-core .mic-icon .mic-capsule[data-v-c9fa6caf] {
177
- animation: mic-bounce-c9fa6caf 0.6s ease-in-out infinite alternate;
83
+ .ai-chat__message--user[data-v-958fd919] {
84
+ justify-content: flex-end;
178
85
  }
179
- .mode-transcribing .status-dot[data-v-c9fa6caf] {
180
- color: #3b82f6;
86
+ .ai-chat__message--user .ai-chat__message-content[data-v-958fd919] {
87
+ background: var(--chat-user-bg);
88
+ border-radius: 16px 16px 4px 16px;
89
+ max-width: 85%;
181
90
  }
182
- .mode-transcribing .ripple[data-v-c9fa6caf] {
183
- border-color: #3b82f6;
184
- animation: ripple-rapid-c9fa6caf 1.5s infinite;
91
+ .ai-chat__message--assistant[data-v-958fd919] {
92
+ justify-content: flex-start;
185
93
  }
186
- .mode-transcribing .ripple.delay-1[data-v-c9fa6caf] {
187
- animation-delay: 0s;
94
+ .ai-chat__message--assistant .ai-chat__message-content[data-v-958fd919] {
95
+ background: var(--chat-assistant-bg);
96
+ max-width: 100%;
188
97
  }
189
- .mode-transcribing .ripple.delay-2[data-v-c9fa6caf] {
190
- animation-delay: 0.3s;
98
+ .ai-chat__message-content[data-v-958fd919] {
99
+ padding: 10px 14px;
100
+ border-radius: 16px;
101
+ word-break: break-word;
191
102
  }
192
- .mode-transcribing .ripple.delay-3[data-v-c9fa6caf] {
193
- animation-delay: 0.6s;
103
+ .ai-chat__message-text[data-v-958fd919] code {
104
+ background: var(--chat-code-bg);
105
+ padding: 1px 4px;
106
+ border-radius: 3px;
107
+ font-size: 13px;
108
+ font-family: "SF Mono", Monaco, Consolas, monospace;
194
109
  }
195
-
196
- /* --- Animations --- */
197
- @keyframes ripple-out-c9fa6caf {
198
- 0% {
199
- transform: scale(0.8);
200
- opacity: 0;
201
- border-width: 2px;
110
+ .ai-chat__message-text[data-v-958fd919] pre {
111
+ background: var(--chat-code-bg);
112
+ padding: 12px;
113
+ border-radius: 8px;
114
+ overflow-x: auto;
115
+ margin: 8px 0;
202
116
  }
203
- 20% {
204
- opacity: 0.5;
117
+ .ai-chat__message-text[data-v-958fd919] pre code {
118
+ background: transparent;
119
+ padding: 0;
205
120
  }
206
- 100% {
207
- transform: scale(2.2);
208
- opacity: 0;
209
- border-width: 0px;
121
+ .ai-chat__message-text[data-v-958fd919] strong {
122
+ font-weight: 600;
210
123
  }
124
+ .ai-chat__reasoning[data-v-958fd919] {
125
+ margin: 4px 0;
211
126
  }
212
- @keyframes ripple-rapid-c9fa6caf {
213
- 0% {
214
- transform: scale(0.9);
215
- opacity: 0;
127
+ .ai-chat__reasoning-trigger[data-v-958fd919] {
128
+ display: inline-flex;
129
+ align-items: center;
130
+ gap: 6px;
131
+ background: none;
132
+ border: none;
133
+ color: var(--chat-text-secondary);
134
+ font-size: 12px;
135
+ cursor: pointer;
136
+ padding: 4px 8px;
137
+ border-radius: 6px;
138
+ transition: background 0.15s;
216
139
  }
217
- 50% {
218
- opacity: 0.4;
140
+ .ai-chat__reasoning-trigger[data-v-958fd919]:hover {
141
+ background: var(--chat-suggestion-bg);
219
142
  }
220
- 100% {
221
- transform: scale(1.6);
222
- opacity: 0;
143
+ .ai-chat__reasoning-icon[data-v-958fd919] {
144
+ transition: transform 0.2s;
223
145
  }
146
+ .ai-chat__reasoning-icon--open[data-v-958fd919] {
147
+ transform: rotate(90deg);
224
148
  }
225
- @keyframes pulse-dot-c9fa6caf {
226
- 0%, 100% {
227
- opacity: 1;
228
- transform: scale(1);
149
+ .ai-chat__reasoning-streaming[data-v-958fd919] {
150
+ width: 6px;
151
+ height: 6px;
152
+ border-radius: 50%;
153
+ background: var(--chat-tool-accent);
154
+ animation: pulse-958fd919 1s infinite;
155
+ }
156
+ .ai-chat__reasoning-content[data-v-958fd919] {
157
+ margin: 4px 0 4px 20px;
158
+ padding: 8px 12px;
159
+ border-left: 2px solid var(--chat-border);
160
+ color: var(--chat-text-secondary);
161
+ font-size: 13px;
162
+ white-space: pre-wrap;
163
+ word-break: break-word;
229
164
  }
230
- 50% {
231
- opacity: 0.5;
232
- transform: scale(0.8);
165
+ .ai-chat__tool[data-v-958fd919] {
166
+ margin: 2px 0;
233
167
  }
168
+ .ai-chat__tool-step[data-v-958fd919] {
169
+ display: inline-flex;
170
+ align-items: center;
171
+ gap: 6px;
172
+ padding: 4px 10px;
173
+ border-radius: 8px;
174
+ font-size: 12px;
175
+ font-weight: 500;
176
+ animation: slide-in-958fd919 0.25s ease;
234
177
  }
235
- @keyframes glow-breathe-c9fa6caf {
236
- 0% {
237
- opacity: 0.2;
238
- transform: scale(0.9);
178
+ .ai-chat__tool-step--loading .ai-chat__tool-icon[data-v-958fd919] {
179
+ color: var(--chat-tool-accent);
239
180
  }
240
- 100% {
241
- opacity: 0.4;
242
- transform: scale(1.1);
181
+ .ai-chat__tool-step--loading .ai-chat__tool-name[data-v-958fd919] {
182
+ color: var(--chat-text-secondary);
243
183
  }
184
+ .ai-chat__tool-step--done .ai-chat__tool-icon[data-v-958fd919] {
185
+ color: var(--chat-tool-success);
244
186
  }
245
- @keyframes mic-bounce-c9fa6caf {
246
- 0% {
247
- transform: scaleY(1);
187
+ .ai-chat__tool-step--done .ai-chat__tool-name[data-v-958fd919] {
188
+ color: var(--chat-text-secondary);
189
+ opacity: 0.7;
248
190
  }
249
- 100% {
250
- transform: scaleY(0.7);
191
+ .ai-chat__tool-step--error .ai-chat__tool-icon[data-v-958fd919] {
192
+ color: var(--chat-tool-error);
251
193
  }
194
+ .ai-chat__tool-step--error .ai-chat__tool-name[data-v-958fd919] {
195
+ color: var(--chat-tool-error);
252
196
  }
253
- /* --- Vue Transitions --- */
254
- .voice-panel-enter-active[data-v-c9fa6caf],
255
- .voice-panel-leave-active[data-v-c9fa6caf] {
256
- transition: all 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
197
+ .ai-chat__tool-icon[data-v-958fd919] {
198
+ display: flex;
199
+ align-items: center;
200
+ justify-content: center;
201
+ width: 18px;
202
+ height: 18px;
203
+ flex-shrink: 0;
257
204
  }
258
- .voice-panel-enter-from[data-v-c9fa6caf],
259
- .voice-panel-leave-to[data-v-c9fa6caf] {
260
- opacity: 0;
261
- transform: translateY(20px) scale(0.95);
205
+ .ai-chat__tool-spinner[data-v-958fd919] {
206
+ animation: spin-958fd919 0.8s linear infinite;
262
207
  }
263
- .fade-slide-enter-active[data-v-c9fa6caf],
264
- .fade-slide-leave-active[data-v-c9fa6caf] {
265
- transition: all 0.3s ease;
208
+ .ai-chat__tool-name[data-v-958fd919] {
209
+ white-space: nowrap;
266
210
  }
267
- .fade-slide-enter-from[data-v-c9fa6caf] {
211
+ .ai-chat__message-actions[data-v-958fd919] {
212
+ display: flex;
213
+ gap: 4px;
214
+ margin-top: 4px;
268
215
  opacity: 0;
269
- transform: translateY(10px);
216
+ transition: opacity 0.2s;
270
217
  }
271
- .fade-slide-leave-to[data-v-c9fa6caf] {
272
- opacity: 0;
273
- transform: translateY(-10px);
218
+ .ai-chat__message-group:hover .ai-chat__message-actions[data-v-958fd919] {
219
+ opacity: 1;
274
220
  }
275
- .execution-bubble[data-v-8244ff0d] {
221
+ .ai-chat__action-btn[data-v-958fd919] {
276
222
  display: flex;
277
223
  align-items: center;
278
224
  justify-content: center;
279
- padding: 12px 20px;
280
- background: rgba(15, 23, 42, 0.9);
281
- backdrop-filter: blur(16px);
282
- -webkit-backdrop-filter: blur(16px);
283
- border: 1px solid rgba(168, 85, 247, 0.35);
284
- border-radius: 20px;
285
- box-shadow: 0 4px 20px rgba(0, 0, 0, 0.3), 0 0 20px -5px rgba(168, 85, 247, 0.3), inset 0 1px 0 rgba(255, 255, 255, 0.08);
225
+ width: 28px;
226
+ height: 28px;
227
+ border-radius: 6px;
228
+ border: 1px solid var(--chat-border);
229
+ background: var(--chat-bg);
230
+ color: var(--chat-text-secondary);
231
+ cursor: pointer;
232
+ transition: all 0.15s;
286
233
  }
287
-
288
- /* 文本样式 */
289
- .exec-text[data-v-8244ff0d] {
290
- font-size: 14px;
291
- font-weight: 500;
292
- color: rgba(255, 255, 255, 0.9);
293
- white-space: nowrap;
294
- overflow: hidden;
295
- text-overflow: ellipsis;
296
- max-width: 300px;
234
+ .ai-chat__action-btn[data-v-958fd919]:hover {
235
+ background: var(--chat-suggestion-bg);
236
+ color: var(--chat-text);
297
237
  }
298
-
299
- /* 三点加载动画 */
300
- .loading-dots[data-v-8244ff0d] {
301
- display: flex;
238
+ .ai-chat__thinking[data-v-958fd919] {
239
+ padding: 8px 0;
240
+ }
241
+ .ai-chat__thinking-dots[data-v-958fd919] {
242
+ display: inline-flex;
302
243
  align-items: center;
303
- gap: 5px;
304
- margin-left: 10px;
244
+ gap: 4px;
305
245
  }
306
- .dot[data-v-8244ff0d] {
246
+ .ai-chat__thinking-dots span[data-v-958fd919] {
307
247
  width: 6px;
308
248
  height: 6px;
309
249
  border-radius: 50%;
310
- background: #c084fc;
311
- animation: dot-bounce-8244ff0d 1.4s ease-in-out infinite;
312
- }
313
- .dot[data-v-8244ff0d]:nth-child(1) {
314
- animation-delay: 0s;
315
- }
316
- .dot[data-v-8244ff0d]:nth-child(2) {
317
- animation-delay: 0.2s;
318
- }
319
- .dot[data-v-8244ff0d]:nth-child(3) {
320
- animation-delay: 0.4s;
321
- }
322
- @keyframes dot-bounce-8244ff0d {
323
- 0%, 80%, 100% {
324
- transform: scale(0.6);
325
- opacity: 0.4;
326
- }
327
- 40% {
328
- transform: scale(1);
329
- opacity: 1;
330
- box-shadow: 0 0 8px rgba(192, 132, 252, 0.6);
331
- }
332
- }
333
- /* Vue 过渡动画 */
334
- .exec-bubble-enter-active[data-v-8244ff0d] {
335
- transition: all 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
336
- }
337
- .exec-bubble-leave-active[data-v-8244ff0d] {
338
- transition: all 0.2s cubic-bezier(0.25, 0.8, 0.25, 1);
339
- }
340
- .exec-bubble-enter-from[data-v-8244ff0d] {
341
- opacity: 0;
342
- transform: scale(0.8);
343
- }
344
- .exec-bubble-leave-to[data-v-8244ff0d] {
345
- opacity: 0;
346
- transform: scale(0.8);
347
- }
348
- .sime-x[data-v-91f104d1] {
349
- --bg-primary: #ffffff;
350
- --bg-secondary: #f8fafc;
351
- --bg-header: #0f172a;
352
- --text-primary: #0f172a;
353
- --text-secondary: #64748b;
354
- --text-header: #ffffff;
355
- --border-color: #e2e8f0;
356
- --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.1);
357
- --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.1);
358
- --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.15);
359
- --accent-color: #3b82f6;
360
- --hover-bg: rgba(0, 0, 0, 0.05);
361
- }
362
- .sime-x[data-theme=dark][data-v-91f104d1] {
363
- --bg-primary: #1e293b;
364
- --bg-secondary: #0f172a;
365
- --bg-header: #0f172a;
366
- --text-primary: #f1f5f9;
367
- --text-secondary: #94a3b8;
368
- --text-header: #f1f5f9;
369
- --border-color: #334155;
370
- --shadow-sm: 0 1px 3px rgba(0, 0, 0, 0.3);
371
- --shadow-md: 0 4px 12px rgba(0, 0, 0, 0.4);
372
- --shadow-lg: 0 12px 32px rgba(0, 0, 0, 0.5);
373
- --accent-color: #60a5fa;
374
- --hover-bg: rgba(255, 255, 255, 0.1);
375
- }
376
- .is-hidden[data-v-91f104d1] {
377
- height: 0;
378
- opacity: 0 !important;
379
- pointer-events: none !important;
380
- visibility: hidden !important;
381
- }
382
- .assistant-fab[data-v-91f104d1] {
383
- position: relative;
384
- cursor: pointer;
385
- overflow: visible;
386
- filter: drop-shadow(var(--shadow-md));
387
- opacity: 1;
388
- pointer-events: auto;
389
- transition: all 0.3s ease;
390
- }
391
- .assistant-fab[data-v-91f104d1]:hover {
392
- transform: scale(1.05);
393
- }
394
- .assistant-fab[data-v-91f104d1]:active {
395
- transform: scale(0.95);
250
+ background: var(--chat-text-secondary);
251
+ animation: thinking-bounce-958fd919 1s infinite ease-in-out;
396
252
  }
397
- .assistant-fab .voice-status[data-v-91f104d1] {
398
- position: absolute;
399
- right: 100%;
400
- margin-right: 20px;
253
+ .ai-chat__thinking-dots span[data-v-958fd919]:nth-child(2) {
254
+ animation-delay: 0.15s;
401
255
  }
402
- .assistant-fab img[data-v-91f104d1] {
403
- display: block;
404
- position: relative;
405
- object-fit: contain;
256
+ .ai-chat__thinking-dots span[data-v-958fd919]:nth-child(3) {
257
+ animation-delay: 0.3s;
406
258
  }
407
- .assistant-fab .fab-pulse[data-v-91f104d1] {
259
+ .ai-chat__scroll-btn[data-v-958fd919] {
408
260
  position: absolute;
409
- inset: -4px;
261
+ bottom: 80px;
262
+ left: 50%;
263
+ transform: translateX(-50%);
264
+ width: 36px;
265
+ height: 36px;
410
266
  border-radius: 50%;
411
- border: 2px solid var(--accent-color);
412
- opacity: 0;
413
- }
414
- @keyframes pulse-91f104d1 {
415
- 0%, 100% {
416
- opacity: 0;
417
- transform: scale(1);
418
- }
419
- 50% {
420
- opacity: 0.5;
421
- transform: scale(1.1);
422
- }
423
- }
424
- .x-dialog-container[data-v-91f104d1] {
425
- position: fixed;
426
- top: 0;
427
- left: 0;
428
- transform: translate(var(--dialog-x), var(--dialog-y));
429
- border-radius: 16px;
267
+ border: 1px solid var(--chat-border);
268
+ background: var(--chat-scroll-btn-bg);
269
+ color: var(--chat-text-secondary);
270
+ cursor: pointer;
430
271
  display: flex;
431
- flex-direction: column;
432
- cursor: grab;
433
- overflow: hidden;
434
- z-index: 1100;
435
- opacity: 0;
436
- pointer-events: none;
272
+ align-items: center;
273
+ justify-content: center;
274
+ box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
275
+ transition: all 0.15s;
276
+ z-index: 10;
437
277
  }
438
- .x-dialog-container.position-ready[data-v-91f104d1] {
439
- opacity: 1;
440
- pointer-events: auto;
278
+ .ai-chat__scroll-btn[data-v-958fd919]:hover {
279
+ background: var(--chat-suggestion-bg);
280
+ color: var(--chat-text);
441
281
  }
442
- .x-dialog-container[data-v-91f104d1]:active {
443
- cursor: grabbing;
282
+ .ai-chat__input-area[data-v-958fd919] {
283
+ width: 100%;
284
+ max-width: 768px;
285
+ margin: 0 auto;
286
+ padding: 0 16px;
444
287
  }
445
- .x-dialog-container.collapsed .x-dialog-header[data-v-91f104d1] {
446
- border-radius: 16px;
288
+ .ai-chat--full-width .ai-chat__input-area[data-v-958fd919] {
289
+ max-width: 100%;
290
+ padding: 0 48px;
447
291
  }
448
- .x-dialog-container .x-dialog-header[data-v-91f104d1] {
449
- position: relative;
450
- display: flex;
451
- justify-content: space-between;
452
- align-items: center;
453
- background: var(--bg-header);
454
- padding: 12px 16px;
455
- cursor: move;
456
- user-select: none;
457
- border-bottom: 1px solid var(--border-color);
292
+ .ai-chat__input-area--bottom[data-v-958fd919] {
293
+ padding-bottom: 16px;
294
+ flex-shrink: 0;
458
295
  }
459
- .x-dialog-container .x-dialog-header .header-left[data-v-91f104d1] {
460
- display: flex;
461
- align-items: center;
462
- gap: 10px;
296
+ .ai-chat__form[data-v-958fd919] {
297
+ width: 100%;
463
298
  }
464
- .x-dialog-container .x-dialog-header .header-left .logo-icon[data-v-91f104d1] {
299
+ .ai-chat__input-wrapper[data-v-958fd919] {
465
300
  display: flex;
466
- align-items: center;
467
- justify-content: center;
468
- width: 36px;
469
- height: 36px;
470
- transition: transform 0.2s ease;
301
+ align-items: flex-end;
302
+ gap: 8px;
303
+ border: 1px solid var(--chat-input-border);
304
+ border-radius: 12px;
305
+ padding: 8px 12px;
306
+ background: var(--chat-input-bg);
307
+ transition: border-color 0.2s, box-shadow 0.2s;
471
308
  }
472
- .x-dialog-container .x-dialog-header .header-left .logo-icon .logo[data-v-91f104d1] {
473
- width: 100%;
474
- height: 100%;
475
- object-fit: contain;
309
+ .ai-chat__input-wrapper[data-v-958fd919]:focus-within {
310
+ border-color: var(--chat-input-focus);
311
+ box-shadow: 0 0 0 2px rgba(59, 130, 246, 0.15);
476
312
  }
477
- .x-dialog-container .x-dialog-header .header-left .title[data-v-91f104d1] {
478
- font-weight: 600;
479
- font-size: 15px;
480
- color: var(--text-header);
481
- letter-spacing: -0.01em;
313
+ .ai-chat__textarea[data-v-958fd919] {
314
+ flex: 1;
315
+ border: none;
316
+ outline: none;
317
+ resize: none;
318
+ background: transparent;
319
+ color: var(--chat-text);
320
+ font-size: 14px;
321
+ line-height: 1.5;
322
+ font-family: inherit;
323
+ min-height: 24px;
324
+ max-height: 200px;
482
325
  }
483
- .x-dialog-container .x-dialog-header .actions[data-v-91f104d1] {
484
- display: flex;
485
- align-items: center;
486
- gap: 4px;
326
+ .ai-chat__textarea[data-v-958fd919]::placeholder {
327
+ color: var(--chat-text-secondary);
487
328
  }
488
- .x-dialog-container .x-dialog-header .actions .action-btn[data-v-91f104d1] {
329
+ .ai-chat__send-btn[data-v-958fd919],
330
+ .ai-chat__stop-btn[data-v-958fd919] {
489
331
  display: flex;
490
332
  align-items: center;
491
333
  justify-content: center;
492
334
  width: 32px;
493
335
  height: 32px;
336
+ border-radius: 8px;
494
337
  border: none;
495
- background: transparent;
496
338
  cursor: pointer;
497
- color: var(--text-secondary);
498
- transition: all 0.2s ease;
499
- border-radius: 8px;
339
+ flex-shrink: 0;
340
+ transition: all 0.15s;
500
341
  }
501
- .x-dialog-container .x-dialog-header .actions .action-btn[data-v-91f104d1]:hover {
502
- color: var(--text-header);
503
- background: var(--hover-bg);
504
- transform: translateY(-1px);
342
+ .ai-chat__send-btn[data-v-958fd919] {
343
+ background: var(--chat-btn-bg);
344
+ color: var(--chat-btn-text);
505
345
  }
506
- .x-dialog-container .x-dialog-header .actions .action-btn[data-v-91f104d1]:active {
507
- transform: translateY(0);
346
+ .ai-chat__send-btn[data-v-958fd919]:hover:not(:disabled) {
347
+ opacity: 0.9;
508
348
  }
509
- .x-dialog-container .x-dialog-header .actions .action-btn svg[data-v-91f104d1] {
510
- transition: transform 0.2s ease;
349
+ .ai-chat__send-btn[data-v-958fd919]:disabled {
350
+ opacity: 0.4;
351
+ cursor: not-allowed;
511
352
  }
512
- .x-dialog-container .x-dialog-header .actions .action-btn.collapse-btn:hover svg[data-v-91f104d1] {
513
- transform: scale(1.1);
353
+ .ai-chat__stop-btn[data-v-958fd919] {
354
+ background: var(--chat-tool-error);
355
+ color: white;
514
356
  }
515
- .x-dialog-container .voice-container[data-v-91f104d1] {
516
- width: 100%;
517
- opacity: 1;
518
- pointer-events: auto;
357
+ .ai-chat__stop-btn[data-v-958fd919]:hover {
358
+ opacity: 0.9;
519
359
  }
520
- .x-dialog-container .x-dialog-content[data-v-91f104d1] {
521
- flex: 1;
360
+ .ai-chat__suggestions[data-v-958fd919] {
522
361
  display: flex;
523
- overflow: hidden;
524
- background: var(--bg-secondary);
525
- opacity: 1;
526
- pointer-events: auto;
527
- }
528
- .x-dialog-container .x-iframe[data-v-91f104d1] {
529
- flex: 1;
530
- width: 100%;
531
- height: 100%;
532
- border: none;
533
- }
534
- .x-dialog-container .resize-handle[data-v-91f104d1] {
535
- position: absolute;
536
- bottom: 0;
537
- right: 0;
538
- width: 40px;
539
- height: 40px;
540
- cursor: nwse-resize;
541
- display: flex;
542
- align-items: center;
543
- justify-content: center;
544
- color: var(--text-secondary);
545
- transition: all 0.2s ease;
546
- background: linear-gradient(135deg, transparent 50%, var(--bg-primary) 50%);
547
- border-bottom-right-radius: 16px;
548
- z-index: 10;
549
- }
550
- .x-dialog-container .resize-handle[data-v-91f104d1]:hover {
551
- color: var(--accent-color);
552
- background: linear-gradient(135deg, transparent 50%, var(--hover-bg) 50%);
553
- }
554
- .x-dialog-container .resize-handle svg[data-v-91f104d1] {
555
- width: 16px;
556
- height: 16px;
557
- transform: rotate(0deg);
558
- transition: transform 0.2s ease;
559
- }
560
- .x-dialog-container .resize-handle:hover svg[data-v-91f104d1] {
561
- transform: scale(1.2);
562
- }
563
-
564
- /* 语音按钮状态样式 */
565
- .action-btn.theme-btn[data-v-91f104d1] {
566
- position: relative;
567
- transition: all 0.3s ease;
568
- }
569
- .action-btn.theme-btn.active[data-v-91f104d1] {
570
- background: rgba(59, 130, 246, 0.1);
571
- color: #3b82f6;
572
- }
573
- .action-btn.theme-btn.listening[data-v-91f104d1] {
574
- animation: pulse-listening-91f104d1 2s ease-in-out infinite;
575
- }
576
- .action-btn.theme-btn.woke[data-v-91f104d1] {
577
- background: rgba(34, 197, 94, 0.2);
578
- color: #22c55e;
579
- animation: pulse-wake-91f104d1 0.6s ease-in-out;
580
- }
581
- @keyframes pulse-listening-91f104d1 {
582
- 0%, 100% {
583
- box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
584
- }
585
- 50% {
586
- box-shadow: 0 0 0 8px rgba(59, 130, 246, 0);
587
- }
588
- }
589
- @keyframes pulse-wake-91f104d1 {
590
- 0%, 100% {
591
- transform: scale(1);
592
- }
593
- 50% {
594
- transform: scale(1.1);
362
+ flex-wrap: wrap;
363
+ gap: 8px;
364
+ margin-top: 12px;
365
+ }
366
+ .ai-chat__suggestion[data-v-958fd919] {
367
+ padding: 8px 14px;
368
+ border-radius: 12px;
369
+ border: 1px solid var(--chat-border);
370
+ background: var(--chat-suggestion-bg);
371
+ color: var(--chat-text);
372
+ font-size: 13px;
373
+ cursor: pointer;
374
+ transition: all 0.15s;
375
+ text-align: left;
376
+ line-height: 1.4;
595
377
  }
378
+ .ai-chat__suggestion[data-v-958fd919]:hover {
379
+ background: var(--chat-suggestion-hover);
380
+ border-color: var(--chat-input-border);
596
381
  }
597
- /* 语音指示器 */
598
- .voice-indicator[data-v-91f104d1] {
599
- position: absolute;
600
- top: 4px;
601
- right: 4px;
602
- width: 6px;
603
- height: 6px;
604
- border-radius: 50%;
605
- background: #3b82f6;
382
+ @keyframes spin-958fd919 {
383
+ from {
384
+ transform: rotate(0deg);
606
385
  }
607
- .action-btn.theme-btn.listening .voice-indicator[data-v-91f104d1] {
608
- animation: blink-91f104d1 1.5s ease-in-out infinite;
386
+ to {
387
+ transform: rotate(360deg);
609
388
  }
610
- .action-btn.theme-btn.woke .voice-indicator[data-v-91f104d1] {
611
- background: #22c55e;
612
- animation: none;
613
389
  }
614
- @keyframes blink-91f104d1 {
390
+ @keyframes pulse-958fd919 {
615
391
  0%, 100% {
616
392
  opacity: 1;
617
393
  }
618
394
  50% {
619
- opacity: 0.3;
620
- }
621
- }
622
- /* 麦克风唤醒动画 */
623
- .listening-badge.wake-active[data-v-91f104d1] {
624
- background-color: rgba(34, 197, 94, 0.85);
625
- animation: wake-badge-pop-91f104d1 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
626
- }
627
- .listening-badge.wake-active .listening-icon[data-v-91f104d1] {
628
- animation: wake-icon-flash-91f104d1 1.5s ease-in-out;
629
- }
630
- .listening-badge.wake-active[data-v-91f104d1]::after {
631
- content: "";
632
- position: absolute;
633
- inset: -3px;
634
- border-radius: 50%;
635
- border: 2px solid #22c55e;
636
- animation: wake-mic-ring-91f104d1 1.2s ease-out forwards;
637
- pointer-events: none;
638
- }
639
- @keyframes wake-badge-pop-91f104d1 {
640
- 0% {
641
- transform: scale(1);
642
- }
643
- 50% {
644
- transform: scale(1.4);
645
- }
646
- 100% {
647
- transform: scale(1);
648
- }
649
- }
650
- @keyframes wake-icon-flash-91f104d1 {
651
- 0%, 100% {
652
- color: #ffffff;
653
- }
654
- 25% {
655
- color: #bbf7d0;
656
- }
657
- 50% {
658
- color: #ffffff;
659
- }
660
- 75% {
661
- color: #bbf7d0;
662
- }
663
- }
664
- @keyframes wake-mic-ring-91f104d1 {
665
- 0% {
666
- transform: scale(1);
667
- opacity: 0.8;
668
- }
669
- 100% {
670
- transform: scale(2.2);
671
- opacity: 0;
672
- }
673
- }
674
- /* FAB 头像容器 */
675
- .fab-avatar-wrapper[data-v-91f104d1] {
676
- position: relative;
677
- display: flex; /* 改用 flex 可以消除图片底部的行高间隙 */
678
- align-items: center;
679
- justify-content: center;
680
- width: fit-content; /* 宽度随内容自适应 */
681
- margin: 0 auto;
682
- }
683
-
684
- /* 2. 修正图片样式 */
685
- .fab-avatar-wrapper img[data-v-91f104d1] {
686
- display: block;
687
- max-width: 100%;
688
- height: auto;
689
- /* 移除原本 style 里的 width/height 可能造成的拉伸,保持比例 */
690
- }
691
-
692
- /* 3. 优化徽章定位 */
693
- .listening-badge[data-v-91f104d1] {
694
- position: absolute;
695
- /* 强制定位到容器边缘 */
696
- top: 0;
697
- right: 0;
698
- /* 使用 transform 偏移,让徽章中心点落在图片的右上角顶点上 */
699
- transform: translate(30%, -30%);
700
- width: 32px;
701
- height: 32px;
702
- border-radius: 50%;
703
- background-color: rgba(0, 0, 0, 0.75); /* 稍微加深一点 */
704
- display: flex;
705
- align-items: center;
706
- justify-content: center;
707
- z-index: 10;
708
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.3);
709
- /* 继承你原有的动画 */
710
- animation: badge-float-91f104d1 5s ease-in-out infinite;
711
- pointer-events: none; /* 防止遮挡头像点击 */
712
- }
713
-
714
- /* 4. 调整声波扩散的基准 */
715
- .wave[data-v-91f104d1] {
716
- position: absolute;
717
- /* 确保声波从徽章中心扩散,而不是从容器左上角 */
718
- inset: -2px;
719
- border-radius: 50%;
720
- border: 2px solid rgba(59, 130, 246, 0.6); /* 声波颜色建议跟主题色一致 */
721
- animation: wave-expand-91f104d1 3s ease-out infinite;
395
+ opacity: 0.4;
722
396
  }
723
-
724
- /* 优化后的监听状态徽章 */
725
- .listening-badge[data-v-91f104d1] {
726
- position: absolute;
727
- top: -8px;
728
- right: -8px;
729
- width: 32px;
730
- height: 32px;
731
- border-radius: 50%;
732
- background-color: rgba(0, 0, 0, 0.651);
733
- display: flex;
734
- align-items: center;
735
- justify-content: center;
736
- z-index: 10;
737
- animation: badge-float-91f104d1 5s ease-in-out infinite;
738
397
  }
739
-
740
- /* 徽章浮动动画 */
741
- @keyframes badge-float-91f104d1 {
398
+ @keyframes thinking-bounce-958fd919 {
742
399
  0%, 100% {
743
- transform: translateY(0) scale(1);
400
+ transform: translateY(0);
401
+ opacity: 0.3;
744
402
  }
745
403
  50% {
746
- transform: translateY(-2px) scale(1.05);
747
- }
748
- }
749
- /* 声波容器 */
750
- .listening-waves[data-v-91f104d1] {
751
- position: absolute;
752
- inset: 0;
753
- display: flex;
754
- align-items: center;
755
- justify-content: center;
756
- }
757
-
758
- /* 声波动画 */
759
- .wave[data-v-91f104d1] {
760
- position: absolute;
761
- width: 100%;
762
- height: 100%;
763
- border-radius: 50%;
764
- border: 2px solid rgba(255, 255, 255, 0.6);
765
- animation: wave-expand-91f104d1 3s ease-out infinite;
766
- }
767
- .wave-1[data-v-91f104d1] {
768
- animation-delay: 0s;
769
- }
770
- .wave-2[data-v-91f104d1] {
771
- animation-delay: 0.6s;
772
- }
773
- .wave-3[data-v-91f104d1] {
774
- animation-delay: 1.2s;
404
+ transform: translateY(-3px);
405
+ opacity: 1;
775
406
  }
776
- @keyframes wave-expand-91f104d1 {
777
- 0% {
778
- transform: scale(0.8);
779
- opacity: 0.8;
780
407
  }
781
- 100% {
782
- transform: scale(1.2);
408
+ @keyframes slide-in-958fd919 {
409
+ from {
783
410
  opacity: 0;
411
+ transform: translateX(-6px);
784
412
  }
413
+ to {
414
+ opacity: 1;
415
+ transform: translateX(0);
785
416
  }
786
- /* 麦克风图标 */
787
- .listening-icon[data-v-91f104d1] {
788
- position: relative;
789
- width: 24px;
790
- height: 24px;
791
- display: flex;
792
- align-items: center;
793
- justify-content: center;
794
- color: #ffffff;
795
- z-index: 1;
796
- animation: icon-pulse-91f104d1 2.5s ease-in-out infinite;
797
- }
798
- @keyframes icon-pulse-91f104d1 {
799
- 0%, 100% {
800
- transform: scale(1);
801
- }
802
- 50% {
803
- transform: scale(1.1);
804
- }
805
- }
806
- /* 徽章淡入淡出动画 */
807
- .indicator-fade-enter-active[data-v-91f104d1] {
808
- transition: all 1s cubic-bezier(0.34, 1.56, 0.64, 1);
809
- }
810
- .indicator-fade-leave-active[data-v-91f104d1] {
811
- transition: all 1s ease;
812
417
  }
813
- .indicator-fade-enter-from[data-v-91f104d1] {
814
- opacity: 0;
815
- transform: scale(0.3) rotate(-180deg);
418
+ .fade-enter-active[data-v-958fd919],
419
+ .fade-leave-active[data-v-958fd919] {
420
+ transition: opacity 0.2s;
816
421
  }
817
- .indicator-fade-leave-to[data-v-91f104d1] {
422
+ .fade-enter-from[data-v-958fd919],
423
+ .fade-leave-to[data-v-958fd919] {
818
424
  opacity: 0;
819
- transform: scale(0.5) rotate(180deg);
820
- }
821
-
822
- /* FAB 脉冲效果 */
823
- .fab-pulse[data-v-91f104d1] {
824
- position: absolute;
825
- top: 0;
826
- left: 0;
827
- right: 0;
828
- bottom: 0;
829
- border-radius: 50%;
830
- pointer-events: none;
831
- }
832
- .fab-pulse.active[data-v-91f104d1] {
833
- animation: fab-pulse-91f104d1 2s ease-in-out infinite;
834
- }
835
- @keyframes fab-pulse-91f104d1 {
836
- 0%, 100% {
837
- box-shadow: 0 0 0 0 rgba(59, 130, 246, 0.4);
838
- }
839
- 50% {
840
- box-shadow: 0 0 0 20px rgba(59, 130, 246, 0);
841
- }
842
- }
843
- /* 深色模式适配 */
844
- [data-theme=dark] .action-btn.theme-btn.active[data-v-91f104d1] {
845
- background: rgba(59, 130, 246, 0.2);
846
- }
847
- [data-theme=dark] .action-btn.theme-btn.woke[data-v-91f104d1] {
848
- background: rgba(34, 197, 94, 0.3);
849
425
  }
850
- .voice-assistant[data-v-d81f42d8] {
426
+ .voice-assistant[data-v-fda883a9] {
851
427
  --text-primary: #e6edf7;
852
428
  --text-secondary: #95a8c8;
853
429
  --glass-bg: rgba(8, 16, 32, 0.72);
@@ -864,16 +440,16 @@
864
440
  }
865
441
 
866
442
  /* ── FAB 按钮 ── */
867
- .assistant-fab[data-v-d81f42d8] {
443
+ .assistant-fab[data-v-fda883a9] {
868
444
  position: relative;
869
445
  cursor: pointer;
870
446
  transition: transform 0.2s ease, filter 0.2s ease;
871
447
  }
872
- .assistant-fab[data-v-d81f42d8]:hover {
448
+ .assistant-fab[data-v-fda883a9]:hover {
873
449
  transform: translateY(-1px) scale(1.03);
874
450
  filter: brightness(1.06);
875
451
  }
876
- .status-pill[data-v-d81f42d8] {
452
+ .status-pill[data-v-fda883a9] {
877
453
  position: absolute;
878
454
  right: calc(100% + 12px);
879
455
  top: 50%;
@@ -892,13 +468,13 @@
892
468
  text-overflow: ellipsis;
893
469
  box-shadow: 0 10px 20px rgba(2, 8, 24, 0.38);
894
470
  }
895
- .fab-avatar-wrapper[data-v-d81f42d8] {
471
+ .fab-avatar-wrapper[data-v-fda883a9] {
896
472
  position: relative;
897
473
  display: flex;
898
474
  align-items: center;
899
475
  justify-content: center;
900
476
  }
901
- .fab-avatar-wrapper img[data-v-d81f42d8] {
477
+ .fab-avatar-wrapper img[data-v-fda883a9] {
902
478
  display: block;
903
479
  height: auto;
904
480
  object-fit: contain;
@@ -906,7 +482,7 @@
906
482
  }
907
483
 
908
484
  /* ── 气泡容器 ── */
909
- .bubble-stack[data-v-d81f42d8] {
485
+ .bubble-stack[data-v-fda883a9] {
910
486
  position: absolute;
911
487
  right: 0;
912
488
  bottom: calc(100% + 16px);
@@ -914,16 +490,16 @@
914
490
  max-height: min(58vh, 520px);
915
491
  overflow: auto;
916
492
  }
917
- .bubble-stack[data-v-d81f42d8]::-webkit-scrollbar {
493
+ .bubble-stack[data-v-fda883a9]::-webkit-scrollbar {
918
494
  width: 4px;
919
495
  }
920
- .bubble-stack[data-v-d81f42d8]::-webkit-scrollbar-thumb {
496
+ .bubble-stack[data-v-fda883a9]::-webkit-scrollbar-thumb {
921
497
  background: rgba(126, 155, 204, 0.3);
922
498
  border-radius: 999px;
923
499
  }
924
500
 
925
501
  /* ── 统一 agent 气泡 ── */
926
- .agent-bubble[data-v-d81f42d8] {
502
+ .agent-bubble[data-v-fda883a9] {
927
503
  border-radius: 16px;
928
504
  padding: 12px 14px;
929
505
  background: radial-gradient(circle at 12% 10%, rgba(80, 122, 255, 0.14), transparent 50%), linear-gradient(155deg, rgba(24, 42, 72, 0.96), rgba(14, 24, 46, 0.97));
@@ -933,9 +509,9 @@
933
509
  display: flex;
934
510
  flex-direction: column;
935
511
  gap: 0;
936
- animation: bubble-appear-d81f42d8 0.3s cubic-bezier(0.16, 1, 0.3, 1);
512
+ animation: bubble-appear-fda883a9 0.3s cubic-bezier(0.16, 1, 0.3, 1);
937
513
  }
938
- @keyframes bubble-appear-d81f42d8 {
514
+ @keyframes bubble-appear-fda883a9 {
939
515
  from {
940
516
  opacity: 0;
941
517
  transform: translateY(8px) scale(0.97);
@@ -946,7 +522,7 @@ to {
946
522
  }
947
523
  }
948
524
  /* ── 工具执行步骤(内联紧凑) ── */
949
- .tool-steps[data-v-d81f42d8] {
525
+ .tool-steps[data-v-fda883a9] {
950
526
  display: flex;
951
527
  flex-direction: column;
952
528
  gap: 2px;
@@ -954,40 +530,40 @@ to {
954
530
  padding-bottom: 8px;
955
531
  border-bottom: 1px solid rgba(125, 160, 220, 0.1);
956
532
  }
957
- .tool-step[data-v-d81f42d8] {
533
+ .tool-step[data-v-fda883a9] {
958
534
  display: flex;
959
535
  align-items: center;
960
536
  gap: 7px;
961
537
  padding: 4px 6px;
962
538
  border-radius: 8px;
963
539
  transition: background 0.2s ease;
964
- animation: step-in-d81f42d8 0.25s cubic-bezier(0.16, 1, 0.3, 1);
540
+ animation: step-in-fda883a9 0.25s cubic-bezier(0.16, 1, 0.3, 1);
965
541
  }
966
- .tool-step--loading .tool-step__icon[data-v-d81f42d8] {
542
+ .tool-step--loading .tool-step__icon[data-v-fda883a9] {
967
543
  color: var(--color-accent);
968
544
  }
969
- .tool-step--loading .tool-step__name[data-v-d81f42d8] {
545
+ .tool-step--loading .tool-step__name[data-v-fda883a9] {
970
546
  color: rgba(200, 215, 240, 0.85);
971
547
  }
972
- .tool-step--done .tool-step__icon[data-v-d81f42d8] {
548
+ .tool-step--done .tool-step__icon[data-v-fda883a9] {
973
549
  color: var(--color-success);
974
550
  }
975
- .tool-step--done .tool-step__name[data-v-d81f42d8] {
551
+ .tool-step--done .tool-step__name[data-v-fda883a9] {
976
552
  color: rgba(200, 215, 240, 0.55);
977
553
  }
978
- .tool-step--error .tool-step__icon[data-v-d81f42d8] {
554
+ .tool-step--error .tool-step__icon[data-v-fda883a9] {
979
555
  color: var(--color-error);
980
556
  }
981
- .tool-step--error .tool-step__name[data-v-d81f42d8] {
557
+ .tool-step--error .tool-step__name[data-v-fda883a9] {
982
558
  color: rgba(248, 113, 113, 0.8);
983
559
  }
984
- .tool-step--executing[data-v-d81f42d8] {
560
+ .tool-step--executing[data-v-fda883a9] {
985
561
  background: rgba(129, 140, 248, 0.06);
986
562
  }
987
- .tool-step--executing .tool-step__icon[data-v-d81f42d8] {
563
+ .tool-step--executing .tool-step__icon[data-v-fda883a9] {
988
564
  color: var(--color-accent);
989
565
  }
990
- @keyframes step-in-d81f42d8 {
566
+ @keyframes step-in-fda883a9 {
991
567
  from {
992
568
  opacity: 0;
993
569
  transform: translateX(-6px);
@@ -997,7 +573,7 @@ to {
997
573
  transform: translateX(0);
998
574
  }
999
575
  }
1000
- .tool-step__icon[data-v-d81f42d8] {
576
+ .tool-step__icon[data-v-fda883a9] {
1001
577
  display: flex;
1002
578
  align-items: center;
1003
579
  justify-content: center;
@@ -1005,10 +581,10 @@ to {
1005
581
  height: 18px;
1006
582
  flex-shrink: 0;
1007
583
  }
1008
- .tool-step__spinner[data-v-d81f42d8] {
1009
- animation: tool-spin-d81f42d8 0.8s linear infinite;
584
+ .tool-step__spinner[data-v-fda883a9] {
585
+ animation: tool-spin-fda883a9 0.8s linear infinite;
1010
586
  }
1011
- @keyframes tool-spin-d81f42d8 {
587
+ @keyframes tool-spin-fda883a9 {
1012
588
  from {
1013
589
  transform: rotate(0deg);
1014
590
  }
@@ -1016,7 +592,7 @@ to {
1016
592
  transform: rotate(360deg);
1017
593
  }
1018
594
  }
1019
- .tool-step__name[data-v-d81f42d8] {
595
+ .tool-step__name[data-v-fda883a9] {
1020
596
  font-size: 12px;
1021
597
  font-weight: 500;
1022
598
  white-space: nowrap;
@@ -1024,7 +600,7 @@ to {
1024
600
  text-overflow: ellipsis;
1025
601
  transition: color 0.2s ease;
1026
602
  }
1027
- .tool-step__tag[data-v-d81f42d8] {
603
+ .tool-step__tag[data-v-fda883a9] {
1028
604
  font-size: 10px;
1029
605
  font-weight: 500;
1030
606
  padding: 1px 6px;
@@ -1032,32 +608,32 @@ to {
1032
608
  white-space: nowrap;
1033
609
  flex-shrink: 0;
1034
610
  }
1035
- .tool-step__tag--exec[data-v-d81f42d8] {
611
+ .tool-step__tag--exec[data-v-fda883a9] {
1036
612
  background: rgba(129, 140, 248, 0.12);
1037
613
  color: var(--color-accent);
1038
614
  }
1039
615
 
1040
616
  /* ── 思考中动画 ── */
1041
- .thinking-dots[data-v-d81f42d8] {
617
+ .thinking-dots[data-v-fda883a9] {
1042
618
  display: inline-flex;
1043
619
  align-items: center;
1044
620
  gap: 5px;
1045
621
  padding: 2px 0;
1046
622
  }
1047
- .thinking-dots span[data-v-d81f42d8] {
623
+ .thinking-dots span[data-v-fda883a9] {
1048
624
  width: 5px;
1049
625
  height: 5px;
1050
626
  border-radius: 50%;
1051
627
  background: var(--text-secondary);
1052
- animation: thinking-bounce-d81f42d8 1s infinite ease-in-out;
628
+ animation: thinking-bounce-fda883a9 1s infinite ease-in-out;
1053
629
  }
1054
- .thinking-dots span[data-v-d81f42d8]:nth-child(2) {
630
+ .thinking-dots span[data-v-fda883a9]:nth-child(2) {
1055
631
  animation-delay: 0.15s;
1056
632
  }
1057
- .thinking-dots span[data-v-d81f42d8]:nth-child(3) {
633
+ .thinking-dots span[data-v-fda883a9]:nth-child(3) {
1058
634
  animation-delay: 0.3s;
1059
635
  }
1060
- @keyframes thinking-bounce-d81f42d8 {
636
+ @keyframes thinking-bounce-fda883a9 {
1061
637
  0%, 100% {
1062
638
  transform: translateY(0);
1063
639
  opacity: 0.3;
@@ -1068,7 +644,7 @@ to {
1068
644
  }
1069
645
  }
1070
646
  /* ── 文本内容 ── */
1071
- .agent-text[data-v-d81f42d8] {
647
+ .agent-text[data-v-fda883a9] {
1072
648
  font-size: 14px;
1073
649
  line-height: 1.55;
1074
650
  color: var(--text-primary);
@@ -1077,23 +653,23 @@ to {
1077
653
  }
1078
654
 
1079
655
  /* ── 气泡淡入淡出过渡 ── */
1080
- .bubble-fade-enter-active[data-v-d81f42d8] {
656
+ .bubble-fade-enter-active[data-v-fda883a9] {
1081
657
  transition: all 0.35s cubic-bezier(0.16, 1, 0.3, 1);
1082
658
  }
1083
- .bubble-fade-leave-active[data-v-d81f42d8] {
659
+ .bubble-fade-leave-active[data-v-fda883a9] {
1084
660
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
1085
661
  }
1086
- .bubble-fade-enter-from[data-v-d81f42d8] {
662
+ .bubble-fade-enter-from[data-v-fda883a9] {
1087
663
  opacity: 0;
1088
664
  transform: translateY(12px) scale(0.95);
1089
665
  }
1090
- .bubble-fade-leave-to[data-v-d81f42d8] {
666
+ .bubble-fade-leave-to[data-v-fda883a9] {
1091
667
  opacity: 0;
1092
668
  transform: translateY(8px) scale(0.97);
1093
669
  }
1094
670
 
1095
671
  /* ── 监听状态指示器 ── */
1096
- .listening-badge[data-v-d81f42d8] {
672
+ .listening-badge[data-v-fda883a9] {
1097
673
  position: absolute;
1098
674
  top: -8px;
1099
675
  right: -8px;
@@ -1105,57 +681,57 @@ to {
1105
681
  align-items: center;
1106
682
  justify-content: center;
1107
683
  }
1108
- .listening-waves[data-v-d81f42d8] {
684
+ .listening-waves[data-v-fda883a9] {
1109
685
  position: absolute;
1110
686
  inset: 0;
1111
687
  display: flex;
1112
688
  align-items: center;
1113
689
  justify-content: center;
1114
690
  }
1115
- .wave[data-v-d81f42d8] {
691
+ .wave[data-v-fda883a9] {
1116
692
  position: absolute;
1117
693
  width: 100%;
1118
694
  height: 100%;
1119
695
  border-radius: 50%;
1120
696
  border: 2px solid rgba(255, 255, 255, 0.65);
1121
- animation: wave-expand-d81f42d8 3s ease-out infinite;
697
+ animation: wave-expand-fda883a9 3s ease-out infinite;
1122
698
  }
1123
- .wave-1[data-v-d81f42d8] {
699
+ .wave-1[data-v-fda883a9] {
1124
700
  animation-delay: 0s;
1125
701
  }
1126
- .wave-2[data-v-d81f42d8] {
702
+ .wave-2[data-v-fda883a9] {
1127
703
  animation-delay: 0.6s;
1128
704
  }
1129
- .wave-3[data-v-d81f42d8] {
705
+ .wave-3[data-v-fda883a9] {
1130
706
  animation-delay: 1.2s;
1131
707
  }
1132
- .listening-icon[data-v-d81f42d8] {
708
+ .listening-icon[data-v-fda883a9] {
1133
709
  position: relative;
1134
710
  color: #fff;
1135
711
  }
1136
- .listening-badge.wake-active[data-v-d81f42d8] {
712
+ .listening-badge.wake-active[data-v-fda883a9] {
1137
713
  background-color: rgba(34, 197, 94, 0.9);
1138
- animation: wake-badge-pop-d81f42d8 0.35s ease;
714
+ animation: wake-badge-pop-fda883a9 0.35s ease;
1139
715
  }
1140
- .indicator-fade-enter-active[data-v-d81f42d8],
1141
- .indicator-fade-leave-active[data-v-d81f42d8] {
716
+ .indicator-fade-enter-active[data-v-fda883a9],
717
+ .indicator-fade-leave-active[data-v-fda883a9] {
1142
718
  transition: all 0.2s ease;
1143
719
  }
1144
- .indicator-fade-enter-from[data-v-d81f42d8],
1145
- .indicator-fade-leave-to[data-v-d81f42d8] {
720
+ .indicator-fade-enter-from[data-v-fda883a9],
721
+ .indicator-fade-leave-to[data-v-fda883a9] {
1146
722
  opacity: 0;
1147
723
  transform: translateY(6px);
1148
724
  }
1149
725
  @media (max-width: 768px) {
1150
- .bubble-stack[data-v-d81f42d8] {
726
+ .bubble-stack[data-v-fda883a9] {
1151
727
  width: min(320px, 88vw);
1152
728
  max-height: min(54vh, 420px);
1153
729
  }
1154
- .status-pill[data-v-d81f42d8] {
730
+ .status-pill[data-v-fda883a9] {
1155
731
  max-width: 220px;
1156
732
  }
1157
733
  }
1158
- @keyframes wave-expand-d81f42d8 {
734
+ @keyframes wave-expand-fda883a9 {
1159
735
  0% {
1160
736
  transform: scale(0.8);
1161
737
  opacity: 0.8;
@@ -1165,7 +741,7 @@ to {
1165
741
  opacity: 0;
1166
742
  }
1167
743
  }
1168
- @keyframes wake-badge-pop-d81f42d8 {
744
+ @keyframes wake-badge-pop-fda883a9 {
1169
745
  0% {
1170
746
  transform: scale(1);
1171
747
  }