vanilla-agent 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,752 @@
1
+ :root {
2
+ color-scheme: light only;
3
+ }
4
+
5
+ #vanilla-agent-root {
6
+ all: initial;
7
+ font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", sans-serif;
8
+ line-height: 1.5;
9
+ }
10
+
11
+ #vanilla-agent-root * {
12
+ box-sizing: border-box;
13
+ }
14
+
15
+ .tvw-flex {
16
+ display: flex;
17
+ }
18
+
19
+ .tvw-grid {
20
+ display: grid;
21
+ }
22
+
23
+ .tvw-h-full {
24
+ height: 100%;
25
+ }
26
+
27
+ .tvw-h-1 {
28
+ height: 0.25rem;
29
+ }
30
+
31
+ .tvw-w-full {
32
+ width: 100%;
33
+ }
34
+
35
+ .tvw-flex-col {
36
+ flex-direction: column;
37
+ }
38
+
39
+ .tvw-flex-wrap {
40
+ flex-wrap: wrap;
41
+ }
42
+
43
+ .tvw-items-center {
44
+ align-items: center;
45
+ }
46
+
47
+ .tvw-items-end {
48
+ align-items: flex-end;
49
+ }
50
+
51
+ .tvw-items-start {
52
+ align-items: flex-start;
53
+ }
54
+
55
+ .tvw-justify-center {
56
+ justify-content: center;
57
+ }
58
+
59
+ .tvw-gap-1 {
60
+ gap: 0.25rem;
61
+ }
62
+
63
+ .tvw-gap-2 {
64
+ gap: 0.5rem;
65
+ }
66
+
67
+ .tvw-gap-3 {
68
+ gap: 0.75rem;
69
+ }
70
+
71
+ .tvw-gap-6 {
72
+ gap: 1.5rem;
73
+ }
74
+
75
+ :root {
76
+ --cw-radius-sm: 0.75rem;
77
+ --cw-radius-md: 1rem;
78
+ --cw-radius-lg: 1.5rem;
79
+ --cw-launcher-radius: 9999px;
80
+ --cw-button-radius: 9999px;
81
+ }
82
+
83
+ .tvw-rounded-xl {
84
+ border-radius: var(--cw-radius-sm);
85
+ }
86
+
87
+ .tvw-rounded-lg {
88
+ border-radius: var(--cw-radius-md);
89
+ }
90
+
91
+ .tvw-rounded-2xl {
92
+ border-radius: var(--cw-radius-lg);
93
+ }
94
+
95
+ .tvw-rounded-full {
96
+ border-radius: var(--cw-launcher-radius);
97
+ }
98
+
99
+ .tvw-rounded-launcher {
100
+ border-radius: var(--cw-launcher-radius);
101
+ }
102
+
103
+ .tvw-rounded-button {
104
+ border-radius: var(--cw-button-radius);
105
+ }
106
+
107
+ .tvw-overflow-hidden {
108
+ overflow: hidden;
109
+ }
110
+
111
+ .tvw-bg-cw-surface {
112
+ background-color: var(--cw-surface, #ffffff);
113
+ }
114
+
115
+ .tvw-bg-cw-container {
116
+ background-color: var(--cw-container, #f8fafc);
117
+ }
118
+
119
+ .tvw-bg-cw-input-background {
120
+ background-color: var(--cw-input-background, #ffffff);
121
+ }
122
+
123
+ .tvw-bg-white {
124
+ background-color: #ffffff;
125
+ }
126
+
127
+ .tvw-bg-transparent {
128
+ background-color: transparent;
129
+ }
130
+
131
+ .tvw-bg-gray-100 {
132
+ background-color: #f3f4f6;
133
+ }
134
+
135
+ .tvw-bg-gray-200 {
136
+ background-color: #e5e7eb;
137
+ }
138
+
139
+ .tvw-text-cw-primary {
140
+ color: var(--cw-primary, #111827);
141
+ }
142
+
143
+ .tvw-text-cw-call-to-action {
144
+ color: var(--cw-call-to-action, #ffffff);
145
+ }
146
+
147
+ .tvw-text-cw-muted {
148
+ color: var(--cw-muted, #6b7280);
149
+ }
150
+
151
+ .tvw-text-white {
152
+ color: #ffffff;
153
+ }
154
+
155
+ .tvw-bg-cw-accent {
156
+ background-color: var(--cw-accent, #2563eb);
157
+ }
158
+
159
+ .tvw-bg-cw-primary {
160
+ background-color: var(--cw-primary, #111827);
161
+ }
162
+
163
+ .tvw-text-base {
164
+ font-size: 1rem;
165
+ line-height: 1.5rem;
166
+ }
167
+
168
+ .tvw-text-sm {
169
+ font-size: 0.875rem;
170
+ line-height: 1.25rem;
171
+ }
172
+
173
+ .tvw-text-xs {
174
+ font-size: 0.75rem;
175
+ line-height: 1rem;
176
+ }
177
+
178
+ .tvw-text-xxs {
179
+ font-size: 0.5rem;
180
+ line-height: 1rem;
181
+ }
182
+
183
+ .tvw-text-lg {
184
+ font-size: 1.125rem;
185
+ line-height: 1.75rem;
186
+ }
187
+
188
+ .tvw-text-xl {
189
+ font-size: 1.25rem;
190
+ line-height: 1.75rem;
191
+ }
192
+
193
+ .tvw-font-semibold {
194
+ font-weight: 600;
195
+ }
196
+
197
+ .tvw-font-medium {
198
+ font-weight: 500;
199
+ }
200
+
201
+ .tvw-px-4 {
202
+ padding-left: 1rem;
203
+ padding-right: 1rem;
204
+ }
205
+
206
+ .tvw-px-5 {
207
+ padding-left: 1.25rem;
208
+ padding-right: 1.25rem;
209
+ }
210
+
211
+ .tvw-px-6 {
212
+ padding-left: 1.5rem;
213
+ padding-right: 1.5rem;
214
+ }
215
+
216
+ .tvw-py-1\.5 {
217
+ padding-top: 0.375rem;
218
+ padding-bottom: 0.375rem;
219
+ }
220
+
221
+ .tvw-py-3 {
222
+ padding-top: 0.75rem;
223
+ padding-bottom: 0.75rem;
224
+ }
225
+
226
+ .tvw-py-4 {
227
+ padding-top: 1rem;
228
+ padding-bottom: 1rem;
229
+ }
230
+
231
+ .tvw-py-5 {
232
+ padding-top: 1.25rem;
233
+ padding-bottom: 1.25rem;
234
+ }
235
+
236
+ .tvw-py-6 {
237
+ padding-top: 1.5rem;
238
+ padding-bottom: 1.5rem;
239
+ }
240
+
241
+ .tvw-py-2\.5 {
242
+ padding-top: 0.625rem;
243
+ padding-bottom: 0.625rem;
244
+ }
245
+
246
+ .tvw-pr-3 {
247
+ padding-right: 0.75rem;
248
+ }
249
+
250
+ .tvw-pl-3 {
251
+ padding-left: 0.75rem;
252
+ }
253
+
254
+ .tvw-pb-0 {
255
+ padding-bottom: 0;
256
+ }
257
+
258
+ .tvw-p-6 {
259
+ padding: 1.5rem;
260
+ }
261
+
262
+ .tvw-p-3 {
263
+ padding: 0.75rem;
264
+ }
265
+
266
+ .tvw-mt-2 {
267
+ margin-top: 0.5rem;
268
+ }
269
+
270
+ .tvw-ml-auto {
271
+ margin-left: auto;
272
+ }
273
+
274
+ .tvw-text-right {
275
+ text-align: right;
276
+ }
277
+
278
+ .disabled\:tvw-opacity-50:disabled {
279
+ opacity: 0.5;
280
+ }
281
+
282
+ .tvw-shadow-2xl {
283
+ box-shadow: 0 30px 60px -15px rgba(15, 23, 42, 0.35);
284
+ }
285
+
286
+ .tvw-shadow-sm {
287
+ box-shadow: 0 5px 15px rgba(15, 23, 42, 0.08);
288
+ }
289
+
290
+ .tvw-shadow-lg {
291
+ box-shadow: 0 20px 40px rgba(15, 23, 42, 0.18);
292
+ }
293
+
294
+ .tvw-border {
295
+ border-width: 1px;
296
+ border-style: solid;
297
+ border-color: rgba(148, 163, 184, 0.28);
298
+ }
299
+
300
+ .tvw-border-none {
301
+ border: none;
302
+ }
303
+
304
+ .tvw-border-b {
305
+ border-bottom-width: 1px;
306
+ border-bottom-style: solid;
307
+ border-bottom-color: rgba(148, 163, 184, 0.28);
308
+ }
309
+
310
+ .tvw-border-gray-100 {
311
+ border-color: #f1f5f9;
312
+ }
313
+
314
+ .tvw-border-cw-border {
315
+ border-color: var(--cw-border, #f1f5f9);
316
+ }
317
+
318
+ .tvw-border-t {
319
+ border-top-width: 1px;
320
+ border-top-style: solid;
321
+ border-top-color: rgba(148, 163, 184, 0.28);
322
+ }
323
+
324
+ .tvw-border-t-cw-border {
325
+ border-top-width: 1px;
326
+ border-top-style: solid;
327
+ border-top-color: var(--cw-border, #f1f5f9);
328
+ }
329
+
330
+ .tvw-border-b-cw-border {
331
+ border-bottom-width: 1px;
332
+ border-bottom-style: solid;
333
+ border-bottom-color: var(--cw-border, #f1f5f9);
334
+ }
335
+
336
+ .tvw-border-t-cw-divider {
337
+ border-top-width: 1px;
338
+ border-top-style: solid;
339
+ border-top-color: var(--cw-divider, #f1f5f9);
340
+ }
341
+
342
+ .tvw-border-b-cw-divider {
343
+ border-bottom-width: 1px;
344
+ border-bottom-style: solid;
345
+ border-bottom-color: var(--cw-divider, #f1f5f9);
346
+ }
347
+
348
+ .tvw-border-cw-divider {
349
+ border-color: var(--cw-divider, #f1f5f9);
350
+ }
351
+
352
+ .tvw-border-cw-message-border {
353
+ border-color: var(--cw-message-border, #f1f5f9);
354
+ }
355
+
356
+ .tvw-fixed {
357
+ position: fixed;
358
+ }
359
+
360
+ .tvw-bottom-6 {
361
+ bottom: 1.5rem;
362
+ }
363
+
364
+ .tvw-top-6 {
365
+ top: 1.5rem;
366
+ }
367
+
368
+ .tvw-right-6 {
369
+ right: 1.5rem;
370
+ }
371
+
372
+ .tvw-left-6 {
373
+ left: 1.5rem;
374
+ }
375
+
376
+ .tvw-place-items-center {
377
+ place-items: center;
378
+ }
379
+
380
+ .tvw-h-8 {
381
+ height: 2rem;
382
+ }
383
+
384
+ .tvw-w-8 {
385
+ width: 2rem;
386
+ }
387
+
388
+ .tvw-h-10 {
389
+ height: 2.5rem;
390
+ }
391
+
392
+ .tvw-w-10 {
393
+ width: 2.5rem;
394
+ }
395
+
396
+ .tvw-h-12 {
397
+ height: 3rem;
398
+ }
399
+
400
+ .tvw-w-12 {
401
+ width: 3rem;
402
+ }
403
+
404
+ .tvw-leading-relaxed {
405
+ line-height: 1.75;
406
+ }
407
+
408
+ .tvw-max-w-\[85\%\] {
409
+ max-width: 85%;
410
+ }
411
+
412
+ .tvw-transition {
413
+ transition: transform 160ms ease, background-color 160ms ease,
414
+ box-shadow 160ms ease, opacity 160ms ease;
415
+ }
416
+
417
+ .tvw-translate-y-\[-2px\] {
418
+ transform: translateY(-2px);
419
+ }
420
+
421
+ .tvw-opacity-0 {
422
+ opacity: 0;
423
+ }
424
+
425
+ .tvw-opacity-100 {
426
+ opacity: 1;
427
+ }
428
+
429
+ .tvw-scale-100 {
430
+ transform: scale(1);
431
+ }
432
+
433
+ .tvw-scale-95 {
434
+ transform: scale(0.95);
435
+ }
436
+
437
+ .tvw-bg-\[\#f8fafc\] {
438
+ background-color: #f8fafc;
439
+ }
440
+
441
+ .tvw-flex-1 {
442
+ flex: 1 1 0%;
443
+ }
444
+
445
+ .tvw-gap-3 {
446
+ gap: 0.75rem;
447
+ }
448
+
449
+ .tvw-bg {
450
+ background-color: var(--cw-surface, #ffffff);
451
+ }
452
+
453
+ .tvw-inline-flex {
454
+ display: inline-flex;
455
+ }
456
+
457
+ .tvw-text-left {
458
+ text-align: left;
459
+ }
460
+
461
+ .tvw-text-right {
462
+ text-align: right;
463
+ }
464
+
465
+ .tvw-mb-3 {
466
+ margin-bottom: 0.75rem;
467
+ }
468
+
469
+ .tvw-mt-2 {
470
+ margin-top: 0.5rem;
471
+ }
472
+
473
+ .tvw-h-12,
474
+ .tvw-w-12,
475
+ .tvw-h-10,
476
+ .tvw-w-10,
477
+ .tvw-h-8,
478
+ .tvw-w-8 {
479
+ flex: none;
480
+ }
481
+
482
+ .tvw-text-right {
483
+ text-align: right;
484
+ }
485
+
486
+ .hover\:tvw-bg-gray-200:hover {
487
+ background-color: #e5e7eb;
488
+ }
489
+
490
+ .hover\:tvw-translate-y-\[-2px\]:hover {
491
+ transform: translateY(-2px);
492
+ }
493
+
494
+ .tvw-pointer-events-none {
495
+ pointer-events: none;
496
+ }
497
+
498
+ .tvw-pointer-events-auto {
499
+ pointer-events: auto;
500
+ }
501
+
502
+ .tvw-min-h-\[1\.5rem\] {
503
+ min-height: 1.5rem;
504
+ }
505
+
506
+ .tvw-min-h-0 {
507
+ min-height: 0;
508
+ }
509
+
510
+ .tvw-resize-none {
511
+ resize: none;
512
+ }
513
+
514
+ .tvw-z-50 {
515
+ z-index: 50;
516
+ }
517
+
518
+ .tvw-absolute {
519
+ position: absolute;
520
+ }
521
+
522
+ .tvw-right-4 {
523
+ right: 1rem;
524
+ }
525
+
526
+ .tvw-top-4 {
527
+ top: 1rem;
528
+ }
529
+
530
+ .tvw-text-2xl {
531
+ font-size: 1.5rem;
532
+ line-height: 2rem;
533
+ }
534
+
535
+ .tvw-grid {
536
+ display: grid;
537
+ }
538
+
539
+ .tvw-place-items-center {
540
+ place-items: center;
541
+ }
542
+
543
+ .tvw-relative {
544
+ position: relative;
545
+ }
546
+
547
+ .tvw-overflow-y-auto {
548
+ overflow-y: auto;
549
+ }
550
+
551
+ .tvw-overflow-hidden {
552
+ overflow: hidden;
553
+ }
554
+
555
+ .tvw-min-h-\[320px\] {
556
+ min-height: 320px;
557
+ }
558
+
559
+ .tvw-min-h-\[48px\] {
560
+ min-height: 48px;
561
+ }
562
+
563
+ .tvw-min-w-\[320px\] {
564
+ min-width: 320px;
565
+ }
566
+
567
+ .tvw-max-w-\[420px\] {
568
+ max-width: 420px;
569
+ }
570
+
571
+ .tvw-w-\[360px\] {
572
+ width: 360px;
573
+ }
574
+
575
+ .tvw-h-\[640px\] {
576
+ height: 640px;
577
+ }
578
+
579
+ .tvw-border-transparent {
580
+ border-color: transparent;
581
+ }
582
+
583
+ .tvw-outline-none:focus {
584
+ outline: none;
585
+ }
586
+
587
+ .tvw-border-none:focus {
588
+ border: none !important;
589
+ outline: none !important;
590
+ }
591
+
592
+ /* Ensure textarea in composer form has no border on focus */
593
+ textarea:focus {
594
+ border: none !important;
595
+ outline: none !important;
596
+ border-width: 0 !important;
597
+ border-style: none !important;
598
+ border-color: transparent !important;
599
+ box-shadow: none !important;
600
+ }
601
+
602
+ /* Prevent form container from showing focus styles */
603
+ form:focus-within {
604
+ outline: none !important;
605
+ }
606
+
607
+ form:focus-within textarea {
608
+ border: none !important;
609
+ outline: none !important;
610
+ }
611
+
612
+ .tvw-whitespace-pre-wrap {
613
+ white-space: pre-wrap;
614
+ }
615
+
616
+ .tvw-space-y-1 > * + * {
617
+ margin-top: 0.25rem;
618
+ }
619
+
620
+ .tvw-space-y-3 > * + * {
621
+ margin-top: 0.75rem;
622
+ }
623
+
624
+ .tvw-space-y-4 > * + * {
625
+ margin-top: 1rem;
626
+ }
627
+
628
+ .tvw-form-card {
629
+ background-color: var(--cw-surface, #ffffff);
630
+ border: 1px solid rgba(148, 163, 184, 0.28);
631
+ border-radius: var(--cw-radius-md);
632
+ padding: 1.25rem;
633
+ box-shadow: 0 10px 30px rgba(15, 23, 42, 0.12);
634
+ }
635
+
636
+ .tvw-form-grid {
637
+ display: flex;
638
+ flex-direction: column;
639
+ }
640
+
641
+ .tvw-form-field {
642
+ display: flex;
643
+ flex-direction: column;
644
+ }
645
+
646
+ .tvw-cursor-pointer {
647
+ cursor: pointer;
648
+ }
649
+
650
+ /* Send button tooltip */
651
+ .tvw-send-button-wrapper {
652
+ position: relative;
653
+ display: inline-flex;
654
+ align-items: center;
655
+ justify-content: center;
656
+ }
657
+
658
+ .tvw-send-button-tooltip {
659
+ position: absolute;
660
+ bottom: calc(100% + 8px);
661
+ left: 50%;
662
+ transform: translateX(-50%);
663
+ background-color: var(--cw-primary, #111827);
664
+ color: var(--cw-surface, #ffffff);
665
+ padding: 6px 12px;
666
+ border-radius: var(--cw-radius-sm, 0.75rem);
667
+ font-size: 12px;
668
+ white-space: nowrap;
669
+ opacity: 0;
670
+ pointer-events: none;
671
+ transition: opacity 0.2s;
672
+ z-index: 1000;
673
+ }
674
+
675
+ .tvw-send-button-tooltip::after {
676
+ content: "";
677
+ position: absolute;
678
+ top: 100%;
679
+ left: 50%;
680
+ transform: translateX(-50%);
681
+ border: 4px solid transparent;
682
+ border-top-color: var(--cw-primary, #111827);
683
+ }
684
+
685
+ .tvw-send-button-wrapper:hover .tvw-send-button-tooltip,
686
+ .tvw-send-button-wrapper:focus-within .tvw-send-button-tooltip {
687
+ opacity: 1;
688
+ }
689
+
690
+ /* Typing indicator animation */
691
+ @keyframes typing {
692
+ 0%, 100% {
693
+ opacity: 0.5;
694
+ transform: translateY(0);
695
+ }
696
+ 50% {
697
+ opacity: 1;
698
+ transform: translateY(-2px);
699
+ }
700
+ }
701
+
702
+ .tvw-animate-typing {
703
+ animation: typing 1s infinite;
704
+ }
705
+
706
+ .tvw-space-x-1 > * + * {
707
+ margin-left: 0.25rem;
708
+ }
709
+
710
+ .tvw-h-5 {
711
+ height: 1.25rem;
712
+ }
713
+
714
+ .tvw-h-1\.5 {
715
+ height: 0.375rem;
716
+ }
717
+
718
+ .tvw-w-1\.5 {
719
+ width: 0.375rem;
720
+ }
721
+
722
+ .tvw-sr-only {
723
+ position: absolute;
724
+ width: 1px;
725
+ height: 1px;
726
+ padding: 0;
727
+ margin: -1px;
728
+ overflow: hidden;
729
+ clip: rect(0, 0, 0, 0);
730
+ white-space: nowrap;
731
+ border-width: 0;
732
+ }
733
+
734
+ /* Voice recognition recording animation */
735
+ @keyframes voice-recording-pulse {
736
+ 0%, 100% {
737
+ opacity: 1;
738
+ transform: scale(1);
739
+ }
740
+ 50% {
741
+ opacity: 0.7;
742
+ transform: scale(1.05);
743
+ }
744
+ }
745
+
746
+ .tvw-voice-recording {
747
+ animation: voice-recording-pulse 1.5s ease-in-out infinite;
748
+ }
749
+
750
+ .tvw-voice-recording svg {
751
+ animation: voice-recording-pulse 1.5s ease-in-out infinite;
752
+ }