vibesurf 0.1.9a6__py3-none-any.whl → 0.1.10__py3-none-any.whl

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 (41) hide show
  1. vibe_surf/_version.py +2 -2
  2. vibe_surf/agents/vibe_surf_agent.py +25 -15
  3. vibe_surf/backend/api/browser.py +66 -0
  4. vibe_surf/backend/api/task.py +2 -1
  5. vibe_surf/backend/main.py +76 -1
  6. vibe_surf/backend/shared_state.py +2 -0
  7. vibe_surf/browser/agent_browser_session.py +312 -62
  8. vibe_surf/browser/browser_manager.py +57 -92
  9. vibe_surf/browser/watchdogs/dom_watchdog.py +43 -43
  10. vibe_surf/chrome_extension/background.js +84 -0
  11. vibe_surf/chrome_extension/manifest.json +3 -1
  12. vibe_surf/chrome_extension/scripts/file-manager.js +526 -0
  13. vibe_surf/chrome_extension/scripts/history-manager.js +658 -0
  14. vibe_surf/chrome_extension/scripts/modal-manager.js +487 -0
  15. vibe_surf/chrome_extension/scripts/session-manager.js +31 -8
  16. vibe_surf/chrome_extension/scripts/settings-manager.js +1214 -0
  17. vibe_surf/chrome_extension/scripts/ui-manager.js +770 -3186
  18. vibe_surf/chrome_extension/sidepanel.html +27 -4
  19. vibe_surf/chrome_extension/styles/activity.css +574 -0
  20. vibe_surf/chrome_extension/styles/base.css +76 -0
  21. vibe_surf/chrome_extension/styles/history-modal.css +791 -0
  22. vibe_surf/chrome_extension/styles/input.css +429 -0
  23. vibe_surf/chrome_extension/styles/layout.css +186 -0
  24. vibe_surf/chrome_extension/styles/responsive.css +454 -0
  25. vibe_surf/chrome_extension/styles/settings-environment.css +165 -0
  26. vibe_surf/chrome_extension/styles/settings-forms.css +389 -0
  27. vibe_surf/chrome_extension/styles/settings-modal.css +141 -0
  28. vibe_surf/chrome_extension/styles/settings-profiles.css +244 -0
  29. vibe_surf/chrome_extension/styles/settings-responsive.css +144 -0
  30. vibe_surf/chrome_extension/styles/settings-utilities.css +25 -0
  31. vibe_surf/chrome_extension/styles/variables.css +54 -0
  32. vibe_surf/cli.py +1 -0
  33. vibe_surf/controller/vibesurf_tools.py +0 -2
  34. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/METADATA +18 -2
  35. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/RECORD +39 -23
  36. vibe_surf/chrome_extension/styles/main.css +0 -2338
  37. vibe_surf/chrome_extension/styles/settings.css +0 -1100
  38. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/WHEEL +0 -0
  39. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/entry_points.txt +0 -0
  40. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/licenses/LICENSE +0 -0
  41. {vibesurf-0.1.9a6.dist-info → vibesurf-0.1.10.dist-info}/top_level.txt +0 -0
@@ -4,10 +4,27 @@
4
4
  <meta charset="UTF-8">
5
5
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
6
  <title>VibeSurf Extension</title>
7
- <link rel="stylesheet" href="styles/main.css">
7
+ <!-- Core Styles -->
8
+ <link rel="stylesheet" href="styles/variables.css">
9
+ <link rel="stylesheet" href="styles/base.css">
10
+ <link rel="stylesheet" href="styles/layout.css">
11
+
12
+ <!-- Feature Styles -->
13
+ <link rel="stylesheet" href="styles/activity.css">
14
+ <link rel="stylesheet" href="styles/input.css">
15
+ <link rel="stylesheet" href="styles/history-modal.css">
8
16
  <link rel="stylesheet" href="styles/components.css">
9
17
  <link rel="stylesheet" href="styles/animations.css">
10
- <link rel="stylesheet" href="styles/settings.css">
18
+ <!-- Settings Styles (Modular) -->
19
+ <link rel="stylesheet" href="styles/settings-modal.css">
20
+ <link rel="stylesheet" href="styles/settings-profiles.css">
21
+ <link rel="stylesheet" href="styles/settings-forms.css">
22
+ <link rel="stylesheet" href="styles/settings-environment.css">
23
+ <link rel="stylesheet" href="styles/settings-utilities.css">
24
+ <link rel="stylesheet" href="styles/settings-responsive.css">
25
+
26
+ <!-- Responsive Styles -->
27
+ <link rel="stylesheet" href="styles/responsive.css">
11
28
  </head>
12
29
  <body>
13
30
  <div id="app" class="vibesurf-container">
@@ -93,9 +110,9 @@
93
110
  <div id="control-panel" class="control-panel hidden">
94
111
  <button id="cancel-btn" class="control-btn cancel-btn">
95
112
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
96
- <path d="M6 6L18 18M6 18L18 6" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
113
+ <path d="M6 6H4C3.45 6 3 5.55 3 5V4C3 3.45 3.45 3 4 3H6V6ZM10 6H14V3H10V6ZM18 6H20C20.55 6 21 5.55 21 5V4C21 3.45 20.55 3 20 3H18V6ZM6 8V20C6 20.55 6.45 21 7 21H17C17.55 21 18 20.55 18 20V8H6Z" stroke="currentColor" stroke-width="2" stroke-linecap="round"/>
97
114
  </svg>
98
- Cancel
115
+ Pause
99
116
  </button>
100
117
  <button id="resume-btn" class="control-btn resume-btn hidden">
101
118
  <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
@@ -341,6 +358,12 @@
341
358
  <script src="scripts/markdown-it.min.js"></script>
342
359
  <script src="scripts/api-client.js"></script>
343
360
  <script src="scripts/session-manager.js"></script>
361
+ <!-- Specialized UI Managers -->
362
+ <script src="scripts/modal-manager.js"></script>
363
+ <script src="scripts/settings-manager.js"></script>
364
+ <script src="scripts/history-manager.js"></script>
365
+ <script src="scripts/file-manager.js"></script>
366
+ <!-- Core UI Manager -->
344
367
  <script src="scripts/ui-manager.js"></script>
345
368
  <script src="scripts/main.js"></script>
346
369
  </body>
@@ -0,0 +1,574 @@
1
+ /* Activity Log Styles - VibeSurf Extension */
2
+
3
+ /* Activity Section */
4
+ .activity-section {
5
+ flex: 1;
6
+ display: flex;
7
+ flex-direction: column;
8
+ overflow: hidden;
9
+ }
10
+
11
+ .activity-log {
12
+ flex: 1;
13
+ overflow-y: auto;
14
+ padding: var(--spacing-lg);
15
+ background-color: var(--bg-primary);
16
+ min-height: 0; /* Allow proper flexbox sizing */
17
+ display: flex;
18
+ flex-direction: column;
19
+ }
20
+
21
+ .activity-log::-webkit-scrollbar {
22
+ width: 6px;
23
+ }
24
+
25
+ .activity-log::-webkit-scrollbar-track {
26
+ background: var(--bg-secondary);
27
+ }
28
+
29
+ .activity-log::-webkit-scrollbar-thumb {
30
+ background: var(--border-color);
31
+ border-radius: 3px;
32
+ }
33
+
34
+ .activity-log::-webkit-scrollbar-thumb:hover {
35
+ background: var(--border-hover);
36
+ }
37
+
38
+ /* Welcome Message */
39
+ .welcome-message {
40
+ display: flex;
41
+ flex-direction: column;
42
+ align-items: center;
43
+ justify-content: flex-start;
44
+ text-align: center;
45
+ padding: var(--spacing-lg) var(--spacing-2xl);
46
+ color: var(--text-muted);
47
+ min-height: 0; /* Allow shrinking */
48
+ max-height: none; /* Remove any height constraints */
49
+ overflow: visible; /* Ensure content is not clipped */
50
+ }
51
+
52
+ .welcome-text h4 {
53
+ font-size: var(--font-size-lg);
54
+ font-weight: var(--font-weight-medium);
55
+ color: var(--text-primary);
56
+ margin-bottom: var(--spacing-sm);
57
+ }
58
+
59
+ .welcome-text p {
60
+ font-size: var(--font-size-sm);
61
+ line-height: 1.6;
62
+ margin-bottom: var(--spacing-xl);
63
+ }
64
+
65
+ /* Quick Tasks */
66
+ .quick-tasks {
67
+ display: grid;
68
+ grid-template-columns: 1fr;
69
+ gap: var(--spacing-md);
70
+ width: 100%;
71
+ max-width: 400px;
72
+ min-height: 0; /* Ensure all items are visible */
73
+ overflow: visible; /* Ensure content is not clipped */
74
+ grid-auto-rows: auto; /* Let rows size automatically */
75
+ }
76
+
77
+ .task-suggestion {
78
+ display: flex;
79
+ align-items: flex-start;
80
+ gap: var(--spacing-md);
81
+ padding: var(--spacing-lg);
82
+ background: var(--bg-secondary);
83
+ border: 1px solid var(--border-color);
84
+ border-radius: var(--radius-lg);
85
+ cursor: pointer;
86
+ transition: all var(--transition-fast);
87
+ text-align: left;
88
+ }
89
+
90
+ .task-suggestion:hover {
91
+ border-color: var(--primary-color);
92
+ background: var(--bg-hover);
93
+ transform: translateY(-2px);
94
+ box-shadow: var(--shadow-md);
95
+ }
96
+
97
+ .task-icon {
98
+ font-size: 24px;
99
+ flex-shrink: 0;
100
+ width: 40px;
101
+ height: 40px;
102
+ display: flex;
103
+ align-items: center;
104
+ justify-content: center;
105
+ background: var(--primary-color);
106
+ border-radius: var(--radius-md);
107
+ color: white;
108
+ }
109
+
110
+ .task-content {
111
+ flex: 1;
112
+ }
113
+
114
+ .task-title {
115
+ font-weight: var(--font-weight-semibold);
116
+ color: var(--text-primary);
117
+ margin-bottom: var(--spacing-xs);
118
+ font-size: var(--font-size-base);
119
+ }
120
+
121
+ .task-description {
122
+ font-size: var(--font-size-sm);
123
+ color: var(--text-secondary);
124
+ line-height: 1.4;
125
+ }
126
+
127
+ /* Activity Log Items - Chat Style */
128
+ .activity-item {
129
+ margin-bottom: var(--spacing-lg);
130
+ width: 100%;
131
+ display: flex;
132
+ flex-direction: column;
133
+ }
134
+
135
+ .message-container {
136
+ display: flex;
137
+ flex-direction: column;
138
+ max-width: 80%;
139
+ animation: fadeIn 0.3s ease-out;
140
+ }
141
+
142
+ .user-container {
143
+ align-self: flex-end;
144
+ align-items: flex-end;
145
+ }
146
+
147
+ .agent-container {
148
+ align-self: flex-start;
149
+ align-items: flex-start;
150
+ }
151
+
152
+ .message-header {
153
+ display: flex;
154
+ align-items: center;
155
+ gap: var(--spacing-sm);
156
+ margin-bottom: var(--spacing-xs);
157
+ font-size: var(--font-size-xs);
158
+ color: var(--text-muted);
159
+ }
160
+
161
+ .user-container .message-header {
162
+ justify-content: flex-end;
163
+ }
164
+
165
+ .agent-container .message-header {
166
+ justify-content: flex-start;
167
+ }
168
+
169
+ .agent-name {
170
+ font-weight: var(--font-weight-medium);
171
+ color: var(--text-secondary);
172
+ }
173
+
174
+ .user-container .agent-name {
175
+ color: var(--primary-color);
176
+ }
177
+
178
+ .message-time {
179
+ font-size: var(--font-size-xs);
180
+ color: var(--text-muted);
181
+ }
182
+
183
+ /* Message Bubbles */
184
+ .message-bubble {
185
+ padding: var(--spacing-md);
186
+ border-radius: var(--radius-lg);
187
+ position: relative;
188
+ word-wrap: break-word;
189
+ box-shadow: var(--shadow-sm);
190
+ }
191
+
192
+ /* Copy Message Button */
193
+ .copy-message-btn {
194
+ position: absolute;
195
+ bottom: 8px;
196
+ right: 8px;
197
+ background: rgba(0, 0, 0, 0.7);
198
+ border: none;
199
+ border-radius: var(--radius-sm);
200
+ padding: 6px;
201
+ cursor: pointer;
202
+ opacity: 0;
203
+ visibility: hidden;
204
+ transition: all var(--transition-fast);
205
+ display: flex;
206
+ align-items: center;
207
+ justify-content: center;
208
+ color: white;
209
+ font-size: 12px;
210
+ z-index: 10;
211
+ backdrop-filter: blur(4px);
212
+ }
213
+
214
+ .copy-message-btn:hover {
215
+ background: rgba(0, 0, 0, 0.8);
216
+ transform: scale(1.05);
217
+ }
218
+
219
+ .copy-message-btn:active {
220
+ transform: scale(0.95);
221
+ }
222
+
223
+ .copy-message-btn svg {
224
+ width: 12px;
225
+ height: 12px;
226
+ }
227
+
228
+ /* Show copy button on message bubble hover */
229
+ .message-bubble:hover .copy-message-btn {
230
+ opacity: 1;
231
+ visibility: visible;
232
+ }
233
+
234
+ /* User bubble copy button styling */
235
+ .user-bubble .copy-message-btn {
236
+ background: rgba(255, 255, 255, 0.2);
237
+ color: white;
238
+ }
239
+
240
+ .user-bubble .copy-message-btn:hover {
241
+ background: rgba(255, 255, 255, 0.3);
242
+ }
243
+
244
+ .user-bubble {
245
+ background-color: var(--primary-color);
246
+ color: white;
247
+ border-bottom-right-radius: var(--radius-sm);
248
+ }
249
+
250
+ .agent-bubble {
251
+ background-color: var(--bg-secondary);
252
+ color: var(--text-primary);
253
+ border: 1px solid var(--border-color);
254
+ border-bottom-left-radius: var(--radius-sm);
255
+ }
256
+
257
+ .message-bubble.working {
258
+ border-left: 3px solid var(--warning-color);
259
+ background-color: rgba(255, 193, 7, 0.05);
260
+ }
261
+
262
+ .message-bubble.result,
263
+ .message-bubble.done {
264
+ border-left: 3px solid var(--accent-color);
265
+ background-color: rgba(40, 167, 69, 0.05);
266
+ }
267
+
268
+ .message-bubble.error {
269
+ border-left: 3px solid var(--danger-color);
270
+ background-color: rgba(220, 53, 69, 0.05);
271
+ }
272
+
273
+ /* Message Status */
274
+ .message-status {
275
+ display: flex;
276
+ align-items: center;
277
+ gap: var(--spacing-xs);
278
+ margin-bottom: var(--spacing-sm);
279
+ font-size: var(--font-size-xs);
280
+ font-weight: var(--font-weight-medium);
281
+ }
282
+
283
+ .user-bubble .message-status {
284
+ color: rgba(255, 255, 255, 0.9);
285
+ }
286
+
287
+ .agent-bubble .message-status {
288
+ color: var(--text-secondary);
289
+ }
290
+
291
+ .status-indicator {
292
+ font-size: 12px;
293
+ }
294
+
295
+ .status-text {
296
+ text-transform: capitalize;
297
+ }
298
+
299
+ /* Message Content */
300
+ .message-content {
301
+ line-height: 1.6;
302
+ font-size: var(--font-size-sm);
303
+ }
304
+
305
+ .user-bubble .message-content {
306
+ color: white;
307
+ }
308
+
309
+ .agent-bubble .message-content {
310
+ color: var(--text-primary);
311
+ }
312
+
313
+ /* Content formatting */
314
+ .message-content h1,
315
+ .message-content h2,
316
+ .message-content h3 {
317
+ margin: var(--spacing-sm) 0;
318
+ font-weight: var(--font-weight-semibold);
319
+ }
320
+
321
+ .message-content h1 {
322
+ font-size: var(--font-size-lg);
323
+ }
324
+
325
+ .message-content h2 {
326
+ font-size: var(--font-size-base);
327
+ }
328
+
329
+ .message-content h3 {
330
+ font-size: var(--font-size-sm);
331
+ }
332
+
333
+ .message-content ul {
334
+ margin: var(--spacing-sm) 0;
335
+ padding-left: var(--spacing-lg);
336
+ }
337
+
338
+ .message-content li {
339
+ margin-bottom: var(--spacing-xs);
340
+ }
341
+
342
+ .message-content .code-block {
343
+ background-color: var(--bg-tertiary);
344
+ padding: var(--spacing-sm);
345
+ border-radius: var(--radius-sm);
346
+ overflow-x: auto;
347
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
348
+ font-size: var(--font-size-xs);
349
+ margin: var(--spacing-sm) 0;
350
+ border: 1px solid var(--border-color);
351
+ }
352
+
353
+ .user-bubble .code-block {
354
+ background-color: rgba(255, 255, 255, 0.1);
355
+ border-color: rgba(255, 255, 255, 0.2);
356
+ }
357
+
358
+ .message-content .inline-code {
359
+ background-color: var(--bg-tertiary);
360
+ padding: 2px 4px;
361
+ border-radius: var(--radius-sm);
362
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
363
+ font-size: var(--font-size-xs);
364
+ }
365
+
366
+ .user-bubble .inline-code {
367
+ background-color: rgba(255, 255, 255, 0.2);
368
+ }
369
+
370
+ .message-content .json-content {
371
+ background-color: var(--bg-tertiary);
372
+ padding: var(--spacing-sm);
373
+ border-radius: var(--radius-sm);
374
+ overflow-x: auto;
375
+ font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;
376
+ font-size: var(--font-size-xs);
377
+ margin: var(--spacing-sm) 0;
378
+ border: 1px solid var(--border-color);
379
+ }
380
+
381
+ .user-bubble .json-content {
382
+ background-color: rgba(255, 255, 255, 0.1);
383
+ border-color: rgba(255, 255, 255, 0.2);
384
+ }
385
+
386
+ .message-content a {
387
+ color: inherit;
388
+ text-decoration: underline;
389
+ }
390
+
391
+ .user-bubble .message-content a {
392
+ color: rgba(255, 255, 255, 0.9);
393
+ }
394
+
395
+ .agent-bubble .message-content a {
396
+ color: var(--primary-color);
397
+ }
398
+
399
+ .message-content a:hover {
400
+ opacity: 0.8;
401
+ }
402
+
403
+ /* Status indicators */
404
+ .status-indicator {
405
+ display: inline-flex;
406
+ align-items: center;
407
+ gap: var(--spacing-xs);
408
+ font-size: var(--font-size-xs);
409
+ font-weight: var(--font-weight-medium);
410
+ }
411
+
412
+ .status-dot {
413
+ width: 6px;
414
+ height: 6px;
415
+ border-radius: 50%;
416
+ background-color: var(--border-color);
417
+ }
418
+
419
+ .status-dot.active {
420
+ background-color: var(--accent-color);
421
+ animation: pulse 2s infinite;
422
+ }
423
+
424
+ .status-dot.error {
425
+ background-color: var(--danger-color);
426
+ }
427
+
428
+ /* Enhanced Markdown Styles */
429
+ .message-content .task-item {
430
+ display: flex;
431
+ align-items: center;
432
+ gap: var(--spacing-sm);
433
+ margin: var(--spacing-xs) 0;
434
+ padding: var(--spacing-xs) 0;
435
+ line-height: 1.4;
436
+ }
437
+
438
+ .message-content .task-item input[type="checkbox"] {
439
+ margin: 0;
440
+ cursor: default;
441
+ accent-color: var(--primary-color);
442
+ }
443
+
444
+ .message-content .markdown-table {
445
+ border-collapse: collapse;
446
+ width: 100%;
447
+ margin: var(--spacing-md) 0;
448
+ border: 1px solid var(--border-color);
449
+ border-radius: var(--radius-md);
450
+ overflow: hidden;
451
+ font-size: var(--font-size-sm);
452
+ }
453
+
454
+ .message-content .markdown-table th,
455
+ .message-content .markdown-table td {
456
+ padding: var(--spacing-sm) var(--spacing-md);
457
+ text-align: left;
458
+ border-bottom: 1px solid var(--border-color);
459
+ }
460
+
461
+ .message-content .markdown-table th {
462
+ background-color: var(--bg-tertiary);
463
+ font-weight: var(--font-weight-semibold);
464
+ color: var(--text-primary);
465
+ }
466
+
467
+ .user-bubble .markdown-table th {
468
+ background-color: rgba(255, 255, 255, 0.1);
469
+ color: white;
470
+ }
471
+
472
+ .message-content .markdown-table tr:hover {
473
+ background-color: var(--bg-hover);
474
+ }
475
+
476
+ .user-bubble .markdown-table tr:hover {
477
+ background-color: rgba(255, 255, 255, 0.05);
478
+ }
479
+
480
+ .message-content .markdown-quote {
481
+ border-left: 4px solid var(--primary-color);
482
+ padding-left: var(--spacing-md);
483
+ margin: var(--spacing-md) 0;
484
+ color: var(--text-secondary);
485
+ font-style: italic;
486
+ background-color: var(--bg-secondary);
487
+ padding: var(--spacing-md);
488
+ border-radius: var(--radius-md);
489
+ }
490
+
491
+ .user-bubble .markdown-quote {
492
+ border-left-color: rgba(255, 255, 255, 0.8);
493
+ background-color: rgba(255, 255, 255, 0.1);
494
+ color: rgba(255, 255, 255, 0.9);
495
+ }
496
+
497
+ .message-content h1,
498
+ .message-content h2,
499
+ .message-content h3,
500
+ .message-content h4,
501
+ .message-content h5,
502
+ .message-content h6 {
503
+ margin: var(--spacing-md) 0 var(--spacing-sm) 0;
504
+ color: var(--text-primary);
505
+ line-height: 1.3;
506
+ }
507
+
508
+ .user-bubble .message-content h1,
509
+ .user-bubble .message-content h2,
510
+ .user-bubble .message-content h3,
511
+ .user-bubble .message-content h4,
512
+ .user-bubble .message-content h5,
513
+ .user-bubble .message-content h6 {
514
+ color: white;
515
+ }
516
+
517
+ .message-content h1 { font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); }
518
+ .message-content h2 { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); }
519
+ .message-content h3 { font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); }
520
+ .message-content h4 { font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); }
521
+
522
+ .message-content ul,
523
+ .message-content ol {
524
+ margin: var(--spacing-sm) 0;
525
+ padding-left: var(--spacing-xl);
526
+ }
527
+
528
+ .message-content li {
529
+ margin: var(--spacing-xs) 0;
530
+ line-height: 1.5;
531
+ }
532
+
533
+ .message-content p {
534
+ margin: var(--spacing-sm) 0;
535
+ line-height: 1.6;
536
+ }
537
+
538
+ .message-content a {
539
+ color: var(--primary-color);
540
+ text-decoration: none;
541
+ border-bottom: 1px solid transparent;
542
+ transition: border-color var(--transition-fast);
543
+ }
544
+
545
+ .message-content a:hover {
546
+ border-bottom-color: var(--primary-color);
547
+ }
548
+
549
+ .user-bubble .message-content a {
550
+ color: rgba(255, 255, 255, 0.9);
551
+ border-bottom-color: transparent;
552
+ }
553
+
554
+ .user-bubble .message-content a:hover {
555
+ border-bottom-color: rgba(255, 255, 255, 0.9);
556
+ }
557
+
558
+ .message-content hr {
559
+ border: none;
560
+ border-top: 1px solid var(--border-color);
561
+ margin: var(--spacing-lg) 0;
562
+ }
563
+
564
+ .user-bubble .message-content hr {
565
+ border-top-color: rgba(255, 255, 255, 0.3);
566
+ }
567
+
568
+ .message-content strong {
569
+ font-weight: var(--font-weight-semibold);
570
+ }
571
+
572
+ .message-content em {
573
+ font-style: italic;
574
+ }
@@ -0,0 +1,76 @@
1
+ /* Base Styles - VibeSurf Extension */
2
+
3
+ /* Reset and Base Styles */
4
+ * {
5
+ margin: 0;
6
+ padding: 0;
7
+ box-sizing: border-box;
8
+ }
9
+
10
+ body {
11
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
12
+ font-size: var(--font-size-base);
13
+ line-height: 1.5;
14
+ color: var(--text-primary);
15
+ background-color: var(--bg-primary);
16
+ overflow: hidden;
17
+ }
18
+
19
+ /* Utility Classes */
20
+ .hidden {
21
+ display: none !important;
22
+ }
23
+
24
+ .sr-only {
25
+ position: absolute;
26
+ width: 1px;
27
+ height: 1px;
28
+ padding: 0;
29
+ margin: -1px;
30
+ overflow: hidden;
31
+ clip: rect(0, 0, 0, 0);
32
+ white-space: nowrap;
33
+ border: 0;
34
+ }
35
+
36
+ /* Animation for new content */
37
+ @keyframes fadeIn {
38
+ from {
39
+ opacity: 0;
40
+ transform: translateY(10px);
41
+ }
42
+ to {
43
+ opacity: 1;
44
+ transform: translateY(0);
45
+ }
46
+ }
47
+
48
+ .fade-in {
49
+ animation: fadeIn 0.3s ease-out;
50
+ }
51
+
52
+ @keyframes pulse {
53
+ 0%, 100% {
54
+ opacity: 1;
55
+ }
56
+ 50% {
57
+ opacity: 0.5;
58
+ }
59
+ }
60
+
61
+ /* Accessibility Enhancements */
62
+ @media (prefers-reduced-motion: reduce) {
63
+ * {
64
+ animation-duration: 0.01ms !important;
65
+ animation-iteration-count: 1 !important;
66
+ transition-duration: 0.01ms !important;
67
+ }
68
+ }
69
+
70
+ /* High Contrast Mode Support */
71
+ @media (prefers-contrast: high) {
72
+ :root {
73
+ --border-color: #000000;
74
+ --text-muted: #333333;
75
+ }
76
+ }