@webless/agent 0.2.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/dist/embed.css ADDED
@@ -0,0 +1,945 @@
1
+ /* src/react/components/ToolTimeline/ToolTimeline.css */
2
+ .tool-timeline {
3
+ width: fit-content;
4
+ max-width: 100%;
5
+ }
6
+ .tool-timeline--inline {
7
+ background: transparent;
8
+ border: none;
9
+ border-radius: 0;
10
+ padding: 0;
11
+ }
12
+ .tool-timeline:not(.tool-timeline--inline) {
13
+ background: var(--as-surface-muted);
14
+ border: 1px solid var(--as-border);
15
+ border-radius: var(--as-radius-md);
16
+ padding: 12px;
17
+ }
18
+ .agent-status {
19
+ display: flex;
20
+ align-items: flex-start;
21
+ gap: 8px;
22
+ min-width: 0;
23
+ animation: agent-status-in 0.22s cubic-bezier(0.22, 1, 0.36, 1);
24
+ }
25
+ @keyframes agent-status-in {
26
+ from {
27
+ opacity: 0;
28
+ transform: translateY(4px);
29
+ }
30
+ to {
31
+ opacity: 1;
32
+ transform: translateY(0);
33
+ }
34
+ }
35
+ .agent-status__icon {
36
+ width: 16px;
37
+ height: 16px;
38
+ display: grid;
39
+ place-items: center;
40
+ flex-shrink: 0;
41
+ margin-top: 2px;
42
+ color: var(--as-brand);
43
+ }
44
+ .agent-status__icon--error {
45
+ font-size: 12px;
46
+ font-weight: 700;
47
+ color: var(--as-danger);
48
+ }
49
+ .agent-status__spinner {
50
+ width: 14px;
51
+ height: 14px;
52
+ animation: as-spin 0.9s linear infinite;
53
+ }
54
+ @keyframes as-spin {
55
+ to {
56
+ transform: rotate(360deg);
57
+ }
58
+ }
59
+ .agent-status__copy {
60
+ display: flex;
61
+ flex-direction: column;
62
+ gap: 2px;
63
+ min-width: 0;
64
+ }
65
+ .agent-status__label {
66
+ font-size: 13px;
67
+ font-weight: 500;
68
+ line-height: 1.4;
69
+ color: var(--as-text-muted);
70
+ word-break: break-word;
71
+ }
72
+ .agent-status__detail {
73
+ font-size: 12px;
74
+ line-height: 1.35;
75
+ color: var(--as-text-subtle);
76
+ word-break: break-word;
77
+ }
78
+ .tool-timeline__streaming-text {
79
+ display: inline-block;
80
+ width: fit-content;
81
+ max-width: 100%;
82
+ font-size: 13px;
83
+ line-height: 1.5;
84
+ color: var(--as-text);
85
+ word-break: break-word;
86
+ margin: 0;
87
+ padding: 10px 12px;
88
+ background: var(--as-surface-muted);
89
+ border: 1px solid var(--as-border);
90
+ border-radius: var(--as-radius-md);
91
+ border-bottom-left-radius: 4px;
92
+ }
93
+ .tool-timeline__streaming-text:not(:first-child) {
94
+ margin-top: 10px;
95
+ }
96
+ .tool-timeline__cursor {
97
+ display: inline-block;
98
+ width: 2px;
99
+ height: 14px;
100
+ margin-left: 1px;
101
+ vertical-align: text-bottom;
102
+ background: var(--as-brand);
103
+ animation: as-blink 1s step-end infinite;
104
+ }
105
+ @keyframes as-blink {
106
+ 50% {
107
+ opacity: 0;
108
+ }
109
+ }
110
+ @media (prefers-reduced-motion: reduce) {
111
+ .agent-status {
112
+ animation: none;
113
+ }
114
+ .agent-status__spinner {
115
+ animation: none;
116
+ }
117
+ }
118
+
119
+ /* src/react/components/AgentActivityBubble/AgentActivityBubble.css */
120
+ .agent-activity-bubble {
121
+ align-self: flex-start;
122
+ width: 100%;
123
+ max-width: 100%;
124
+ display: flex;
125
+ flex-direction: column;
126
+ align-items: flex-start;
127
+ }
128
+ .agent-activity-bubble__shell {
129
+ width: fit-content;
130
+ max-width: 100%;
131
+ padding: 0;
132
+ background: transparent;
133
+ border: none;
134
+ }
135
+
136
+ /* src/react/components/Composer/Composer.css */
137
+ .composer {
138
+ display: flex;
139
+ flex-direction: column;
140
+ gap: 8px;
141
+ }
142
+ .composer__field {
143
+ display: flex;
144
+ align-items: flex-end;
145
+ gap: 6px;
146
+ padding: 6px;
147
+ border: 1px solid var(--as-border);
148
+ border-radius: var(--as-radius-lg);
149
+ background: var(--as-surface-muted);
150
+ }
151
+ .composer__field:focus-within {
152
+ border-color: rgb(111 22 255 / 0.35);
153
+ box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);
154
+ }
155
+ .composer__input {
156
+ flex: 1;
157
+ min-width: 0;
158
+ border: none;
159
+ background: transparent;
160
+ resize: none;
161
+ padding: 8px 6px 8px 8px;
162
+ font-size: 13px;
163
+ line-height: 1.45;
164
+ color: var(--as-text);
165
+ max-height: 96px;
166
+ }
167
+ .composer__input::placeholder {
168
+ color: var(--as-text-subtle);
169
+ }
170
+ .composer__input:focus {
171
+ outline: none;
172
+ }
173
+ .composer__send {
174
+ appearance: none;
175
+ border: none;
176
+ width: 34px;
177
+ height: 34px;
178
+ border-radius: 999px;
179
+ background: var(--as-brand);
180
+ color: #fff;
181
+ display: grid;
182
+ place-items: center;
183
+ cursor: pointer;
184
+ flex-shrink: 0;
185
+ transition: opacity 0.15s ease, transform 0.15s ease;
186
+ }
187
+ .composer__send:hover:not(:disabled) {
188
+ transform: translateY(-1px);
189
+ }
190
+ .composer__send:disabled {
191
+ opacity: 0.45;
192
+ cursor: not-allowed;
193
+ }
194
+ .composer__send svg {
195
+ width: 14px;
196
+ height: 14px;
197
+ }
198
+ .composer--dock .composer__field {
199
+ align-items: center;
200
+ padding: 5px 5px 5px 13px;
201
+ background: var(--as-surface-muted);
202
+ border: 1px solid var(--as-border);
203
+ border-radius: 999px;
204
+ box-shadow: none;
205
+ }
206
+ .composer--dock .composer__field:focus-within {
207
+ border-color: rgb(111 22 255 / 0.35);
208
+ box-shadow: 0 0 0 3px rgb(111 22 255 / 0.1);
209
+ }
210
+ .composer--dock .composer__input {
211
+ padding: 11px 0;
212
+ font-size: 15px;
213
+ max-height: 48px;
214
+ }
215
+ .composer--dock .composer__send {
216
+ width: 40px;
217
+ height: 40px;
218
+ }
219
+ .composer--dock .composer__send svg {
220
+ width: 15px;
221
+ height: 15px;
222
+ }
223
+
224
+ /* src/react/components/FollowUpChips/FollowUpChips.css */
225
+ .followups {
226
+ display: flex;
227
+ flex-direction: column;
228
+ gap: 8px;
229
+ }
230
+ .followups__label {
231
+ font-size: 12px;
232
+ font-weight: 700;
233
+ color: var(--as-text-subtle);
234
+ letter-spacing: 0.02em;
235
+ }
236
+ .followups__list {
237
+ display: flex;
238
+ flex-direction: column;
239
+ gap: 6px;
240
+ }
241
+ .followups__chip {
242
+ appearance: none;
243
+ border: 1px solid var(--as-border);
244
+ background: var(--as-surface);
245
+ color: var(--as-text);
246
+ font-size: 13px;
247
+ font-weight: 600;
248
+ line-height: 1.4;
249
+ text-align: left;
250
+ border-radius: var(--as-radius-sm);
251
+ padding: 10px 12px;
252
+ cursor: pointer;
253
+ transition: border-color 0.15s ease, background 0.15s ease;
254
+ word-break: break-word;
255
+ }
256
+ .followups__chip:hover:not(:disabled) {
257
+ border-color: rgb(111 22 255 / 0.25);
258
+ background: var(--as-brand-soft);
259
+ }
260
+ .followups__chip:disabled {
261
+ opacity: 0.5;
262
+ cursor: not-allowed;
263
+ }
264
+ .followups--dock {
265
+ width: 100%;
266
+ gap: 0;
267
+ }
268
+ .followups__scroll {
269
+ display: flex;
270
+ gap: 8px;
271
+ justify-content: flex-start;
272
+ overflow-x: auto;
273
+ padding: 2px;
274
+ scrollbar-width: none;
275
+ -ms-overflow-style: none;
276
+ }
277
+ .followups__scroll::-webkit-scrollbar {
278
+ display: none;
279
+ }
280
+ .followups__chip--dock {
281
+ display: inline-flex;
282
+ align-items: center;
283
+ flex: 0 0 auto;
284
+ width: auto;
285
+ max-width: none;
286
+ padding: 8px 12px;
287
+ border-radius: 999px;
288
+ font-size: 12px;
289
+ font-weight: 600;
290
+ white-space: nowrap;
291
+ text-align: left;
292
+ }
293
+
294
+ /* src/react/components/MessageBubble/MessageBubble.css */
295
+ .message-bubble {
296
+ display: flex;
297
+ flex-direction: column;
298
+ gap: 8px;
299
+ max-width: 92%;
300
+ }
301
+ .message-bubble--visitor {
302
+ align-self: flex-end;
303
+ align-items: flex-end;
304
+ }
305
+ .message-bubble--agent {
306
+ align-self: flex-start;
307
+ align-items: flex-start;
308
+ max-width: 100%;
309
+ }
310
+ .message-bubble__text {
311
+ margin: 0;
312
+ padding: 10px 12px;
313
+ border-radius: var(--as-radius-md);
314
+ font-size: 13px;
315
+ line-height: 1.5;
316
+ word-break: break-word;
317
+ }
318
+ .message-bubble--visitor .message-bubble__text {
319
+ background: var(--as-visitor-bubble);
320
+ color: var(--as-visitor-text);
321
+ border-bottom-right-radius: 4px;
322
+ }
323
+ .message-bubble--agent .message-bubble__text {
324
+ background: var(--as-surface-muted);
325
+ color: var(--as-text);
326
+ border: 1px solid var(--as-border);
327
+ border-bottom-left-radius: 4px;
328
+ }
329
+
330
+ /* src/react/components/AgentRail/AgentRail.css */
331
+ .agent-rail {
332
+ --rail-width: var(--as-rail-max-width);
333
+ display: flex;
334
+ flex-direction: column;
335
+ width: var(--rail-width);
336
+ max-width: var(--rail-width);
337
+ min-width: var(--rail-width);
338
+ height: 100%;
339
+ max-height: 100dvh;
340
+ overflow: hidden;
341
+ background: var(--as-surface);
342
+ border-left: 1px solid var(--as-border);
343
+ box-shadow: var(--as-shadow-rail);
344
+ color: var(--as-text);
345
+ font-family: var(--as-font-body);
346
+ position: relative;
347
+ z-index: var(--as-z-rail);
348
+ }
349
+ .agent-rail__header {
350
+ flex-shrink: 0;
351
+ display: flex;
352
+ flex-direction: column;
353
+ gap: 10px;
354
+ padding: 14px;
355
+ }
356
+ .agent-rail__brand-row {
357
+ display: grid;
358
+ grid-template-columns: 32px 1fr 32px;
359
+ align-items: center;
360
+ min-height: 32px;
361
+ min-width: 0;
362
+ }
363
+ .agent-rail__brand-label {
364
+ grid-column: 2;
365
+ grid-row: 1;
366
+ font-family: var(--as-font-display);
367
+ font-size: 14px;
368
+ font-weight: 600;
369
+ letter-spacing: -0.01em;
370
+ line-height: 1;
371
+ text-align: center;
372
+ }
373
+ .agent-rail__brand-spacer {
374
+ width: 32px;
375
+ height: 32px;
376
+ }
377
+ .agent-rail__collapse,
378
+ .agent-rail__close,
379
+ .agent-rail__expand {
380
+ appearance: none;
381
+ border: none;
382
+ background: transparent;
383
+ color: var(--as-text-subtle);
384
+ width: 32px;
385
+ height: 32px;
386
+ margin: 0;
387
+ padding: 0;
388
+ border-radius: 8px;
389
+ display: inline-flex;
390
+ align-items: center;
391
+ justify-content: center;
392
+ cursor: pointer;
393
+ flex-shrink: 0;
394
+ grid-row: 1;
395
+ }
396
+ .agent-rail__collapse,
397
+ .agent-rail__close {
398
+ grid-column: 1;
399
+ justify-self: start;
400
+ }
401
+ .agent-rail__expand {
402
+ grid-column: 3;
403
+ justify-self: end;
404
+ }
405
+ .agent-rail__collapse:hover,
406
+ .agent-rail__close:hover,
407
+ .agent-rail__expand:hover {
408
+ background: var(--as-surface-muted);
409
+ color: var(--as-text);
410
+ }
411
+ .agent-rail__collapse svg,
412
+ .agent-rail__close svg,
413
+ .agent-rail__expand svg {
414
+ width: 16px;
415
+ height: 16px;
416
+ }
417
+ .agent-rail__transcript {
418
+ flex: 1 1 auto;
419
+ min-height: 0;
420
+ overflow-y: auto;
421
+ overflow-x: hidden;
422
+ overscroll-behavior: contain;
423
+ padding: 14px 12px;
424
+ display: flex;
425
+ flex-direction: column;
426
+ gap: 14px;
427
+ scroll-behavior: smooth;
428
+ -webkit-overflow-scrolling: touch;
429
+ }
430
+ .agent-rail__timeline-slot,
431
+ .agent-rail__followups-slot {
432
+ flex-shrink: 0;
433
+ }
434
+ .agent-rail__composer-wrap {
435
+ flex-shrink: 0;
436
+ padding: 12px 12px 14px;
437
+ border-top: 1px solid var(--as-border);
438
+ background: var(--as-surface);
439
+ }
440
+ .agent-rail__footer {
441
+ margin-top: 8px;
442
+ display: flex;
443
+ flex-direction: column;
444
+ gap: 4px;
445
+ }
446
+ .agent-rail__footer-disclaimer {
447
+ margin: 0;
448
+ text-align: center;
449
+ font-size: 11px;
450
+ color: var(--as-text-subtle);
451
+ line-height: 1.35;
452
+ }
453
+ .agent-rail__footer-note {
454
+ margin: 0;
455
+ text-align: center;
456
+ font-size: 11px;
457
+ color: var(--as-text-subtle);
458
+ line-height: 1.35;
459
+ }
460
+ .agent-rail--mobile-fullscreen {
461
+ position: fixed;
462
+ inset: 0;
463
+ width: 100%;
464
+ max-width: none;
465
+ min-width: 0;
466
+ height: 100dvh;
467
+ max-height: 100dvh;
468
+ overflow: hidden;
469
+ z-index: var(--as-z-mobile);
470
+ border-left: none;
471
+ box-shadow: none;
472
+ }
473
+ .agent-rail--expanded {
474
+ position: fixed;
475
+ top: 50%;
476
+ left: 50%;
477
+ width: 95vw;
478
+ height: 95dvh;
479
+ max-width: none;
480
+ min-width: 0;
481
+ max-height: 95dvh;
482
+ transform: translate(-50%, -50%);
483
+ z-index: calc(var(--as-z-mobile) + 1);
484
+ border: 1px solid var(--as-border);
485
+ border-radius: var(--as-radius-lg);
486
+ box-shadow: 0 0 0 1px rgb(42 51 70 / 0.04), 0 28px 80px -24px rgb(18 4 62 / 0.35);
487
+ transition:
488
+ width 320ms cubic-bezier(0.22, 1, 0.36, 1),
489
+ height 320ms cubic-bezier(0.22, 1, 0.36, 1),
490
+ transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
491
+ border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),
492
+ box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
493
+ overflow: hidden;
494
+ }
495
+ .agent-rail--expanded .agent-rail__transcript {
496
+ padding: 20px 24px 25px;
497
+ align-items: center;
498
+ }
499
+ .agent-rail--expanded .agent-rail__transcript .message-bubble {
500
+ width: 85%;
501
+ max-width: 85%;
502
+ }
503
+ .agent-rail--expanded .agent-rail__transcript .message-bubble__text {
504
+ font-size: 16px;
505
+ padding: 12px 14px;
506
+ }
507
+ .agent-rail--expanded .agent-rail__transcript .tool-timeline__streaming-text {
508
+ font-size: 16px;
509
+ padding: 12px 14px;
510
+ }
511
+ .agent-rail--expanded .agent-rail__transcript .message-bubble--visitor {
512
+ align-self: center;
513
+ align-items: flex-end;
514
+ }
515
+ .agent-rail--expanded .agent-rail__transcript .message-bubble--agent {
516
+ align-self: center;
517
+ align-items: flex-start;
518
+ }
519
+ .agent-rail--expanded .agent-rail__transcript .agent-activity-bubble,
520
+ .agent-rail--expanded .agent-rail__transcript [role=alert] {
521
+ align-self: center;
522
+ align-items: flex-start;
523
+ width: 85%;
524
+ max-width: 85%;
525
+ }
526
+ .agent-rail--expanded .agent-rail__dock-wrap {
527
+ flex-shrink: 0;
528
+ width: 70%;
529
+ max-width: 70%;
530
+ align-self: center;
531
+ padding: 18px 0 24px;
532
+ display: flex;
533
+ flex-direction: column;
534
+ align-items: flex-start;
535
+ gap: 10px;
536
+ }
537
+ .agent-rail--expanded .agent-rail__dock-followups {
538
+ width: 100%;
539
+ }
540
+ .agent-rail--expanded .agent-rail__dock-followups .followups__scroll {
541
+ justify-content: flex-start;
542
+ }
543
+ .agent-rail--expanded .agent-rail__dock {
544
+ display: flex;
545
+ flex-direction: column;
546
+ gap: 10px;
547
+ width: 100%;
548
+ padding: 12px;
549
+ border: 1px solid var(--as-border);
550
+ border-radius: calc(var(--as-radius-lg) + 4px);
551
+ background: #fff;
552
+ }
553
+ .agent-rail--expanded .agent-rail__footer {
554
+ margin-top: 0;
555
+ width: 100%;
556
+ }
557
+ .agent-rail--mobile-fullscreen .agent-rail__close {
558
+ display: grid;
559
+ }
560
+ .agent-rail--mobile-fullscreen .agent-rail__collapse {
561
+ display: none;
562
+ }
563
+ @media (prefers-reduced-motion: reduce) {
564
+ .agent-rail--expanded {
565
+ transition: none;
566
+ }
567
+ }
568
+ @media (max-width: 767px) {
569
+ .agent-rail {
570
+ position: fixed;
571
+ inset: 0;
572
+ width: 100%;
573
+ max-width: none;
574
+ min-width: 0;
575
+ height: 100dvh;
576
+ max-height: 100dvh;
577
+ overflow: hidden;
578
+ z-index: var(--as-z-mobile);
579
+ border-left: none;
580
+ box-shadow: none;
581
+ }
582
+ .agent-rail .agent-rail__close {
583
+ display: grid;
584
+ }
585
+ .agent-rail .agent-rail__collapse {
586
+ display: none;
587
+ }
588
+ }
589
+ @media (min-width: 768px) {
590
+ .agent-rail .agent-rail__close {
591
+ display: none !important;
592
+ }
593
+ }
594
+
595
+ /* src/react/components/AssistEdgeTab/AssistEdgeTab.css */
596
+ .assist-edge-tab {
597
+ --tab-ink: var(--as-brand);
598
+ --tab-fill: #fff;
599
+ --tab-line: rgb(111 22 255 / 0.35);
600
+ --tab-along: 50%;
601
+ --tab-inset: 0px;
602
+ position: fixed;
603
+ top: auto;
604
+ right: auto;
605
+ bottom: auto;
606
+ left: auto;
607
+ z-index: calc(var(--as-z-rail) + 1);
608
+ appearance: none;
609
+ display: flex;
610
+ align-items: center;
611
+ justify-content: space-between;
612
+ gap: 12px;
613
+ border: 1px solid var(--tab-line);
614
+ background: var(--tab-fill);
615
+ color: var(--tab-ink);
616
+ cursor: pointer;
617
+ opacity: 0;
618
+ pointer-events: none;
619
+ box-shadow: -6px 0 20px -12px rgb(18 4 62 / 0.28);
620
+ transition:
621
+ transform 420ms cubic-bezier(0.22, 1, 0.36, 1),
622
+ opacity 240ms ease,
623
+ box-shadow 180ms ease;
624
+ }
625
+ .assist-edge-tab.is-visible {
626
+ opacity: 1;
627
+ pointer-events: auto;
628
+ }
629
+ .assist-edge-tab:focus-visible {
630
+ outline: 2px solid var(--as-brand);
631
+ outline-offset: 3px;
632
+ }
633
+ .assist-edge-tab svg {
634
+ width: 16px;
635
+ height: 16px;
636
+ flex-shrink: 0;
637
+ }
638
+ .assist-edge-tab__sparkles {
639
+ width: 18px;
640
+ height: 16px;
641
+ }
642
+ .assist-edge-tab__label {
643
+ font-family: var(--as-font-display);
644
+ font-size: 13px;
645
+ font-weight: 600;
646
+ letter-spacing: 0.02em;
647
+ line-height: 1;
648
+ white-space: nowrap;
649
+ }
650
+ .assist-edge-tab--right,
651
+ .assist-edge-tab--left {
652
+ flex-direction: column;
653
+ width: 40px;
654
+ min-height: 168px;
655
+ padding: 14px 0 12px;
656
+ }
657
+ .assist-edge-tab--right .assist-edge-tab__label,
658
+ .assist-edge-tab--left .assist-edge-tab__label {
659
+ writing-mode: vertical-rl;
660
+ transform: rotate(180deg);
661
+ }
662
+ .assist-edge-tab--top,
663
+ .assist-edge-tab--bottom {
664
+ flex-direction: row;
665
+ height: 40px;
666
+ min-width: 168px;
667
+ width: auto;
668
+ padding: 0 14px;
669
+ }
670
+ .assist-edge-tab--right {
671
+ top: var(--tab-along);
672
+ right: var(--tab-inset);
673
+ border-right: none;
674
+ border-radius: 999px 0 0 999px;
675
+ transform: translateY(-50%) translateX(calc(100% + 18px));
676
+ }
677
+ .assist-edge-tab--right.is-visible {
678
+ transform: translateY(-50%) translateX(0);
679
+ }
680
+ .assist-edge-tab--right.is-visible:hover {
681
+ transform: translateY(-50%) translateX(-2px);
682
+ }
683
+ .assist-edge-tab--left {
684
+ top: var(--tab-along);
685
+ left: var(--tab-inset);
686
+ border-left: none;
687
+ border-radius: 0 999px 999px 0;
688
+ transform: translateY(-50%) translateX(calc(-100% - 18px));
689
+ }
690
+ .assist-edge-tab--left.is-visible {
691
+ transform: translateY(-50%) translateX(0);
692
+ }
693
+ .assist-edge-tab--left.is-visible:hover {
694
+ transform: translateY(-50%) translateX(2px);
695
+ }
696
+ .assist-edge-tab--top {
697
+ left: var(--tab-along);
698
+ top: var(--tab-inset);
699
+ border-top: none;
700
+ border-radius: 0 0 999px 999px;
701
+ transform: translateX(-50%) translateY(calc(-100% - 18px));
702
+ }
703
+ .assist-edge-tab--top.is-visible {
704
+ transform: translateX(-50%) translateY(0);
705
+ }
706
+ .assist-edge-tab--top.is-visible:hover {
707
+ transform: translateX(-50%) translateY(2px);
708
+ }
709
+ .assist-edge-tab--bottom {
710
+ left: var(--tab-along);
711
+ bottom: var(--tab-inset);
712
+ border-bottom: none;
713
+ border-radius: 999px 999px 0 0;
714
+ transform: translateX(-50%) translateY(calc(100% + 18px));
715
+ }
716
+ .assist-edge-tab--bottom.is-visible {
717
+ transform: translateX(-50%) translateY(0);
718
+ }
719
+ .assist-edge-tab--bottom.is-visible:hover {
720
+ transform: translateX(-50%) translateY(-2px);
721
+ }
722
+ .assist-edge-tab--outline {
723
+ --tab-fill: #f7f6fa;
724
+ --tab-line: rgb(111 22 255 / 0.45);
725
+ }
726
+ .assist-edge-tab--outline.assist-edge-tab--right,
727
+ .assist-edge-tab--outline.assist-edge-tab--left {
728
+ min-height: 176px;
729
+ border-radius: 999px;
730
+ border-right: 1px solid var(--tab-line);
731
+ border-left: 1px solid var(--tab-line);
732
+ }
733
+ .assist-edge-tab--outline.assist-edge-tab--top,
734
+ .assist-edge-tab--outline.assist-edge-tab--bottom {
735
+ border-radius: 999px;
736
+ border-top: 1px solid var(--tab-line);
737
+ border-bottom: 1px solid var(--tab-line);
738
+ }
739
+ .assist-edge-tab--ask {
740
+ --tab-fill: #efe8fb;
741
+ --tab-line: transparent;
742
+ }
743
+ .assist-edge-tab--ask.assist-edge-tab--right,
744
+ .assist-edge-tab--ask.assist-edge-tab--left {
745
+ min-height: 196px;
746
+ width: 42px;
747
+ }
748
+ .assist-edge-tab--ask.assist-edge-tab--right {
749
+ border-radius: 18px 0 0 18px;
750
+ }
751
+ .assist-edge-tab--ask.assist-edge-tab--left {
752
+ border-radius: 0 18px 18px 0;
753
+ }
754
+ .assist-edge-tab--fill {
755
+ --tab-fill: var(--as-brand);
756
+ --tab-ink: #fff;
757
+ --tab-line: transparent;
758
+ box-shadow: -8px 0 22px -10px rgb(111 22 255 / 0.55);
759
+ }
760
+ .assist-edge-tab--fill.assist-edge-tab--right,
761
+ .assist-edge-tab--fill.assist-edge-tab--left {
762
+ min-height: 180px;
763
+ }
764
+ .assist-edge-tab__dots {
765
+ display: grid;
766
+ grid-template-columns: repeat(3, 3px);
767
+ gap: 3px;
768
+ }
769
+ .assist-edge-tab--top .assist-edge-tab__dots,
770
+ .assist-edge-tab--bottom .assist-edge-tab__dots {
771
+ grid-template-columns: repeat(4, 3px);
772
+ grid-template-rows: repeat(3, 3px);
773
+ }
774
+ .assist-edge-tab__dots i {
775
+ width: 3px;
776
+ height: 3px;
777
+ border-radius: 999px;
778
+ background: currentColor;
779
+ opacity: 0.55;
780
+ }
781
+ @media (max-width: 767px) {
782
+ .assist-edge-tab {
783
+ z-index: calc(var(--as-z-mobile) + 2);
784
+ }
785
+ .assist-edge-tab--right,
786
+ .assist-edge-tab--left {
787
+ min-height: 148px;
788
+ width: 36px;
789
+ }
790
+ }
791
+ @media (prefers-reduced-motion: reduce) {
792
+ .assist-edge-tab,
793
+ .assist-edge-tab.is-visible,
794
+ .assist-edge-tab.is-visible:hover {
795
+ transition: none;
796
+ }
797
+ }
798
+
799
+ /* src/react/styles/tokens.css */
800
+ :root {
801
+ --as-rail-max-width: 450px;
802
+ --as-brand: #6f16ff;
803
+ --as-brand-soft: #f3edff;
804
+ --as-brand-light: #c4b0ff;
805
+ --as-brand-deep: #12043e;
806
+ --as-surface: #ffffff;
807
+ --as-surface-muted: #f4f6fb;
808
+ --as-text: #171b2a;
809
+ --as-text-muted: #5a6378;
810
+ --as-text-subtle: #8a94a8;
811
+ --as-border: rgb(42 51 70 / 0.1);
812
+ --as-visitor-bubble: #6f16ff;
813
+ --as-visitor-text: #ffffff;
814
+ --as-success: #18794e;
815
+ --as-danger: #c94b63;
816
+ --as-radius-sm: 8px;
817
+ --as-radius-md: 12px;
818
+ --as-radius-lg: 16px;
819
+ --as-font-body:
820
+ "Mulish",
821
+ "Avenir Next",
822
+ "Segoe UI",
823
+ sans-serif;
824
+ --as-font-display: "Space Grotesk", sans-serif;
825
+ --as-shadow-rail: 0 0 0 1px rgb(42 51 70 / 0.06), -8px 0 24px -12px rgb(18 4 62 / 0.12);
826
+ --as-z-rail: 40;
827
+ --as-z-mobile: 1000;
828
+ }
829
+ .webless-agent-root,
830
+ .webless-agent-root *,
831
+ .webless-agent-root *::before,
832
+ .webless-agent-root *::after {
833
+ box-sizing: border-box;
834
+ }
835
+ .webless-agent-root {
836
+ font-family: var(--as-font-body);
837
+ color: var(--as-text);
838
+ -webkit-font-smoothing: antialiased;
839
+ }
840
+ .webless-agent-root button,
841
+ .webless-agent-root input,
842
+ .webless-agent-root textarea {
843
+ font: inherit;
844
+ }
845
+ @media (prefers-reduced-motion: reduce) {
846
+ .webless-agent-root *,
847
+ .webless-agent-root *::before,
848
+ .webless-agent-root *::after {
849
+ animation-duration: 0.01ms !important;
850
+ animation-iteration-count: 1 !important;
851
+ transition-duration: 0.01ms !important;
852
+ }
853
+ }
854
+
855
+ /* src/react/styles/widget.css */
856
+ .webless-agent-root {
857
+ --rail-track: var(--as-rail-max-width);
858
+ --rail-ease: cubic-bezier(0.22, 1, 0.36, 1);
859
+ --rail-duration: 420ms;
860
+ position: fixed;
861
+ inset: 0;
862
+ pointer-events: none;
863
+ z-index: var(--as-z-mobile);
864
+ }
865
+ .webless-agent-root__shell {
866
+ position: fixed;
867
+ inset: 0;
868
+ display: grid;
869
+ grid-template-columns: minmax(0, 1fr) var(--rail-track);
870
+ pointer-events: none;
871
+ transition: grid-template-columns var(--rail-duration) var(--rail-ease);
872
+ }
873
+ .webless-agent-root__rail-slot {
874
+ min-width: 0;
875
+ height: 100%;
876
+ overflow: hidden;
877
+ justify-self: end;
878
+ pointer-events: auto;
879
+ transform: translateX(0);
880
+ opacity: 1;
881
+ transition: transform var(--rail-duration) var(--rail-ease), opacity 220ms ease;
882
+ }
883
+ .webless-agent-root__shell--collapsed {
884
+ --rail-track: 0px;
885
+ }
886
+ .webless-agent-root__shell--collapsed .webless-agent-root__rail-slot {
887
+ transform: translateX(100%);
888
+ opacity: 0;
889
+ pointer-events: none;
890
+ }
891
+ .webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) {
892
+ --rail-track: 0px;
893
+ }
894
+ .webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .webless-agent-root__rail-slot {
895
+ position: fixed;
896
+ inset: 0;
897
+ width: 100%;
898
+ height: 100%;
899
+ overflow: visible;
900
+ transform: none;
901
+ opacity: 1;
902
+ pointer-events: none;
903
+ z-index: calc(var(--as-z-mobile) + 1);
904
+ }
905
+ .webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .agent-rail {
906
+ pointer-events: auto;
907
+ width: 95vw;
908
+ min-width: 0;
909
+ max-width: none;
910
+ height: 95dvh;
911
+ max-height: 95dvh;
912
+ }
913
+ .webless-agent-root__rail-slot .agent-rail {
914
+ min-width: 0;
915
+ width: var(--as-rail-max-width);
916
+ max-width: none;
917
+ height: 100%;
918
+ }
919
+ .webless-agent-root__backdrop {
920
+ position: fixed;
921
+ inset: 0;
922
+ z-index: var(--as-z-mobile);
923
+ border: none;
924
+ padding: 0;
925
+ margin: 0;
926
+ background: rgb(18 4 62 / 0.18);
927
+ cursor: pointer;
928
+ pointer-events: auto;
929
+ }
930
+ @media (max-width: 767px) {
931
+ .webless-agent-root__shell {
932
+ grid-template-columns: 1fr;
933
+ }
934
+ .webless-agent-root__shell:not(.webless-agent-root__shell--collapsed) .webless-agent-root__rail-slot {
935
+ position: fixed;
936
+ inset: 0;
937
+ width: 100%;
938
+ height: 100%;
939
+ transform: none;
940
+ opacity: 1;
941
+ pointer-events: auto;
942
+ z-index: calc(var(--as-z-mobile) + 1);
943
+ }
944
+ }
945
+ /*# sourceMappingURL=embed.css.map */