@webless/agent 0.4.1 → 0.6.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 CHANGED
@@ -106,23 +106,6 @@
106
106
  pointer-events: none;
107
107
  z-index: 1;
108
108
  }
109
- .webless-agent-root__backdrop {
110
- position: fixed;
111
- inset: 0;
112
- z-index: 0;
113
- border: none;
114
- padding: 0;
115
- margin: 0;
116
- background: color-mix(in srgb, var(--as-text) 18%, transparent);
117
- cursor: pointer;
118
- pointer-events: auto;
119
- }
120
- .webless-agent-root__backdrop--mobile {
121
- background: color-mix(in srgb, var(--as-text) 24%, transparent);
122
- -webkit-backdrop-filter: blur(1.5px);
123
- backdrop-filter: blur(1.5px);
124
- touch-action: none;
125
- }
126
109
  .webless-agent-root__shell--expanded:not(.webless-agent-root__shell--collapsed) .agent-rail {
127
110
  pointer-events: auto;
128
111
  }
@@ -291,113 +274,140 @@ html.webless-agent-page-shift {
291
274
  flex-direction: column;
292
275
  align-self: flex-start;
293
276
  align-items: stretch;
294
- gap: 9px;
277
+ gap: 7px;
295
278
  }
296
279
  .agent-activity-bubble__status {
297
280
  display: flex;
298
281
  align-items: center;
299
- gap: 9px;
282
+ gap: 8px;
300
283
  margin: 0;
301
284
  color: var(--as-text-muted);
302
- font-size: 12px;
285
+ font-size: 12.5px;
303
286
  font-weight: 650;
304
287
  line-height: 1.4;
305
288
  }
306
289
  .agent-activity-bubble__pulse {
307
- width: 8px;
308
- height: 8px;
309
- flex: 0 0 8px;
290
+ position: relative;
291
+ display: grid;
292
+ width: 15px;
293
+ height: 15px;
294
+ flex: 0 0 15px;
295
+ place-items: center;
310
296
  border-radius: 999px;
311
297
  background: var(--as-success);
312
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-success) 10%, transparent);
298
+ color: #fff;
299
+ }
300
+ .agent-activity-bubble__pulse::after {
301
+ content: "\2713";
302
+ font-size: 9px;
303
+ font-weight: 800;
304
+ line-height: 1;
313
305
  }
314
306
  .agent-activity-bubble__pulse.is-active {
315
307
  background: var(--as-brand);
316
- box-shadow: 0 0 0 4px color-mix(in srgb, var(--as-brand) 12%, transparent);
308
+ box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 11%, transparent);
317
309
  animation: agent-activity-pulse 1.8s ease-in-out infinite;
318
310
  }
311
+ .agent-activity-bubble__pulse.is-active::after {
312
+ content: "";
313
+ width: 5px;
314
+ height: 5px;
315
+ border-radius: inherit;
316
+ background: currentColor;
317
+ }
319
318
  .agent-activity-bubble__pulse.is-error {
320
319
  background: var(--as-danger);
321
- box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-danger) 10%, transparent);
320
+ }
321
+ .agent-activity-bubble__pulse.is-error::after {
322
+ content: "!";
322
323
  }
323
324
  .agent-activity-bubble__details {
324
- overflow: hidden;
325
- border: 1px solid var(--as-border);
326
- border-radius: 14px;
327
- background: color-mix(in srgb, var(--as-surface-muted) 48%, var(--as-surface));
325
+ border: 0;
326
+ background: transparent;
328
327
  }
329
- .agent-activity-bubble__details summary {
328
+ .agent-activity-bubble__summary {
329
+ appearance: none;
330
330
  display: flex;
331
- min-height: 42px;
331
+ width: 100%;
332
+ min-height: 34px;
332
333
  align-items: center;
333
- padding: 0 13px;
334
+ gap: 9px;
335
+ margin: 0;
336
+ padding: 0 2px;
337
+ border: 0;
338
+ border-radius: 8px;
339
+ background: transparent;
334
340
  color: var(--as-text-muted);
335
341
  cursor: pointer;
342
+ font-family: inherit;
336
343
  font-size: 12px;
337
344
  font-weight: 650;
338
- list-style: none;
339
- }
340
- .agent-activity-bubble__details summary::-webkit-details-marker {
341
- display: none;
345
+ text-align: left;
342
346
  }
343
- .agent-activity-bubble__details summary::after {
344
- width: 20px;
345
- height: 20px;
346
- margin-left: auto;
347
- border-radius: 999px;
347
+ .agent-activity-bubble__summary::before {
348
+ width: 6px;
349
+ height: 6px;
350
+ flex: 0 0 6px;
351
+ border-right: 1.5px solid currentColor;
352
+ border-bottom: 1.5px solid currentColor;
348
353
  color: var(--as-text-subtle);
349
- content: "+";
350
- font-size: 17px;
351
- font-weight: 400;
352
- line-height: 19px;
353
- text-align: center;
354
+ content: "";
355
+ transform: rotate(45deg) translate(-1px, -1px);
356
+ transition: transform 180ms cubic-bezier(0.22, 1, 0.36, 1);
354
357
  }
355
- .agent-activity-bubble__details summary:hover::after {
356
- background: var(--as-surface-muted);
358
+ .agent-activity-bubble__summary:hover {
357
359
  color: var(--as-text);
358
360
  }
359
- .agent-activity-bubble__details[open] summary::after {
360
- content: "\2212";
361
+ .agent-activity-bubble__summary:focus-visible {
362
+ outline: none;
363
+ color: var(--as-text);
364
+ text-decoration: underline;
365
+ text-decoration-color: color-mix(in srgb, var(--as-text) 46%, transparent);
366
+ text-decoration-thickness: 2px;
367
+ text-underline-offset: 4px;
368
+ }
369
+ .agent-activity-bubble__summary[aria-expanded=true]::before {
370
+ transform: rotate(225deg) translate(-1px, -1px);
361
371
  }
362
372
  .agent-activity-bubble__steps {
363
373
  display: grid;
364
374
  gap: 0;
365
375
  margin: 0;
366
- padding: 1px 13px 13px;
376
+ padding: 3px 0 2px 24px;
367
377
  list-style: none;
368
378
  }
369
379
  .agent-activity-bubble__step {
370
380
  position: relative;
371
381
  display: grid;
372
- min-height: 48px;
373
- grid-template-columns: 28px minmax(0, 1fr);
382
+ min-height: 50px;
383
+ grid-template-columns: 26px minmax(0, 1fr);
374
384
  align-items: flex-start;
375
385
  gap: 10px;
376
- padding: 6px 0;
386
+ padding: 5px 0;
377
387
  }
378
388
  .agent-activity-bubble__step:not(:last-child)::after {
379
389
  position: absolute;
380
- top: 32px;
381
- bottom: -8px;
382
- left: 13px;
390
+ top: 30px;
391
+ bottom: -6px;
392
+ left: 12px;
383
393
  width: 1px;
384
- background: var(--as-border);
394
+ background: color-mix(in srgb, var(--as-text) 11%, transparent);
385
395
  content: "";
386
396
  }
387
397
  .agent-activity-bubble__step-icon {
388
398
  position: relative;
389
399
  z-index: 1;
390
400
  display: inline-flex;
391
- width: 28px;
392
- height: 28px;
401
+ width: 25px;
402
+ height: 25px;
393
403
  align-items: center;
394
404
  justify-content: center;
395
405
  overflow: hidden;
396
- border: 1px solid var(--as-border);
397
- border-radius: 9px;
398
- background: var(--as-surface);
406
+ border: 0;
407
+ border-radius: 8px;
408
+ background: var(--as-surface-muted);
399
409
  color: var(--as-text-muted);
400
- font-size: 11px;
410
+ font-size: 10px;
401
411
  font-weight: 750;
402
412
  }
403
413
  .agent-activity-bubble__step-icon svg {
@@ -414,46 +424,28 @@ html.webless-agent-page-shift {
414
424
  object-fit: contain;
415
425
  }
416
426
  .agent-activity-bubble__step[data-kind=specialist] .agent-activity-bubble__step-icon {
417
- border-color: color-mix(in srgb, var(--as-brand) 18%, var(--as-border));
418
427
  background: var(--as-brand-soft);
419
428
  color: var(--as-brand);
420
429
  }
421
430
  .agent-activity-bubble__step[data-state=active] .agent-activity-bubble__step-icon {
422
- border-color: color-mix(in srgb, var(--as-brand) 36%, var(--as-border));
423
431
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--as-brand) 8%, transparent);
424
432
  }
425
- .agent-activity-bubble__step[data-state=completed] .agent-activity-bubble__step-icon::after {
426
- position: absolute;
427
- right: -2px;
428
- bottom: -2px;
429
- display: grid;
430
- width: 11px;
431
- height: 11px;
432
- place-items: center;
433
- border: 2px solid var(--as-surface);
434
- border-radius: 999px;
435
- background: var(--as-success);
436
- color: #fff;
437
- content: "\2713";
438
- font-size: 7px;
439
- line-height: 1;
440
- }
441
433
  .agent-activity-bubble__step[data-state=error] .agent-activity-bubble__step-icon {
442
- border-color: color-mix(in srgb, var(--as-danger) 30%, var(--as-border));
443
434
  background: color-mix(in srgb, var(--as-danger) 7%, var(--as-surface));
444
435
  color: var(--as-danger);
445
436
  }
446
437
  .agent-activity-bubble__step-copy {
447
438
  display: grid;
448
439
  min-width: 0;
449
- gap: 3px;
440
+ gap: 2px;
450
441
  padding-top: 2px;
451
442
  }
452
443
  .agent-activity-bubble__step-heading {
453
444
  display: flex;
454
445
  min-width: 0;
455
446
  align-items: baseline;
456
- gap: 7px;
447
+ gap: 8px;
448
+ flex-wrap: wrap;
457
449
  }
458
450
  .agent-activity-bubble__step-heading strong {
459
451
  overflow: hidden;
@@ -466,14 +458,14 @@ html.webless-agent-page-shift {
466
458
  }
467
459
  .agent-activity-bubble__step-heading small {
468
460
  flex: 0 0 auto;
469
- color: var(--as-text-subtle);
470
- font-size: 10px;
461
+ color: var(--as-text-muted);
462
+ font-size: 10.5px;
471
463
  font-weight: 550;
472
464
  line-height: 1.35;
473
465
  }
474
466
  .agent-activity-bubble__step-detail {
475
- color: var(--as-text-subtle);
476
- font-size: 11px;
467
+ color: var(--as-text-muted);
468
+ font-size: 11.5px;
477
469
  line-height: 1.4;
478
470
  }
479
471
  @keyframes agent-activity-pulse {
@@ -481,6 +473,14 @@ html.webless-agent-page-shift {
481
473
  opacity: 0.55;
482
474
  }
483
475
  }
476
+ @media (prefers-reduced-motion: reduce) {
477
+ .agent-activity-bubble__pulse.is-active {
478
+ animation: none;
479
+ }
480
+ .agent-activity-bubble__summary::before {
481
+ transition: none;
482
+ }
483
+ }
484
484
 
485
485
  /* src/react/components/Composer/Composer.css */
486
486
  .composer {
@@ -493,9 +493,9 @@ html.webless-agent-page-shift {
493
493
  align-items: flex-end;
494
494
  gap: 6px;
495
495
  padding: 6px;
496
- border: 1px solid var(--as-border);
496
+ border: 1px solid var(--as-control-border, color-mix(in srgb, var(--as-text) 14%, transparent));
497
497
  border-radius: 16px;
498
- background: var(--as-surface);
498
+ background: color-mix(in srgb, var(--as-surface-muted) 42%, var(--as-surface));
499
499
  box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 5%, transparent);
500
500
  }
501
501
  .composer__field:focus-within {
@@ -516,7 +516,7 @@ html.webless-agent-page-shift {
516
516
  max-height: 96px;
517
517
  }
518
518
  .composer__input::placeholder {
519
- color: var(--as-text-subtle);
519
+ color: var(--as-text-muted);
520
520
  }
521
521
  .composer__input:focus {
522
522
  outline: none;
@@ -549,8 +549,8 @@ html.webless-agent-page-shift {
549
549
  .composer--dock .composer__field {
550
550
  align-items: center;
551
551
  padding: 5px 5px 5px 13px;
552
- background: var(--as-surface);
553
- border: 1px solid var(--as-border);
552
+ background: color-mix(in srgb, var(--as-surface-muted) 42%, var(--as-surface));
553
+ border: 1px solid var(--as-control-border, color-mix(in srgb, var(--as-text) 14%, transparent));
554
554
  border-radius: 999px;
555
555
  box-shadow: none;
556
556
  }
@@ -564,8 +564,8 @@ html.webless-agent-page-shift {
564
564
  max-height: 48px;
565
565
  }
566
566
  .composer--dock .composer__send {
567
- width: 40px;
568
- height: 40px;
567
+ width: 44px;
568
+ height: 44px;
569
569
  }
570
570
  .composer--dock .composer__send svg {
571
571
  width: 15px;
@@ -661,6 +661,211 @@ html.webless-agent-page-shift {
661
661
  display: none;
662
662
  }
663
663
 
664
+ /* src/react/components/BookingCard/BookingCard.css */
665
+ .booking-card {
666
+ width: 100%;
667
+ box-sizing: border-box;
668
+ overflow: visible;
669
+ border: 1px solid var(--as-border);
670
+ border-radius: var(--as-radius-md);
671
+ background: var(--as-surface);
672
+ }
673
+ .booking-card__form,
674
+ .booking-card__step,
675
+ .booking-card__identity,
676
+ .booking-card__field {
677
+ display: flex;
678
+ flex-direction: column;
679
+ gap: 16px;
680
+ min-width: 0;
681
+ }
682
+ .booking-card__form {
683
+ padding: 16px;
684
+ }
685
+ .booking-card__step {
686
+ gap: 16px;
687
+ }
688
+ .booking-card__identity,
689
+ .booking-card__field {
690
+ gap: 8px;
691
+ }
692
+ .booking-card__title {
693
+ margin: 0;
694
+ font-size: 14px;
695
+ font-weight: 650;
696
+ color: var(--as-text);
697
+ text-wrap: balance;
698
+ }
699
+ .booking-card__tz,
700
+ .booking-card__field span {
701
+ margin: 0;
702
+ font-size: 12px;
703
+ font-weight: 600;
704
+ color: var(--as-text-muted, var(--as-text));
705
+ }
706
+ .booking-card__step-bar {
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 8px;
710
+ }
711
+ .booking-card__month {
712
+ display: grid;
713
+ grid-template-columns: 32px 1fr 32px;
714
+ align-items: center;
715
+ gap: 8px;
716
+ }
717
+ .booking-card__month-title {
718
+ margin: 0;
719
+ text-align: center;
720
+ font-size: 14px;
721
+ font-weight: 650;
722
+ color: var(--as-text);
723
+ }
724
+ .booking-card__nav {
725
+ appearance: none;
726
+ display: grid;
727
+ place-items: center;
728
+ flex: 0 0 auto;
729
+ width: 32px;
730
+ height: 32px;
731
+ padding: 0;
732
+ border: 0;
733
+ border-radius: 8px;
734
+ background: transparent;
735
+ color: var(--as-text);
736
+ font: inherit;
737
+ font-size: 18px;
738
+ line-height: 1;
739
+ cursor: pointer;
740
+ }
741
+ .booking-card__nav:hover:not(:disabled) {
742
+ background: var(--as-surface-muted, #f4f6fb);
743
+ }
744
+ .booking-card__nav:disabled {
745
+ color: var(--as-text-subtle);
746
+ cursor: default;
747
+ }
748
+ .booking-card__nav:focus-visible,
749
+ .booking-card__day:focus-visible,
750
+ .booking-card__time:focus-visible,
751
+ .booking-card__field input:focus-visible,
752
+ .booking-card__field select:focus-visible,
753
+ .booking-card__submit:focus-visible {
754
+ outline: 2px solid var(--as-brand);
755
+ outline-offset: 2px;
756
+ }
757
+ .booking-card__weekdays,
758
+ .booking-card__calendar {
759
+ display: grid;
760
+ grid-template-columns: repeat(7, minmax(0, 1fr));
761
+ gap: 4px;
762
+ }
763
+ .booking-card__calendar {
764
+ min-height: calc((36px * 6) + (4px * 5));
765
+ }
766
+ .booking-card__weekdays span {
767
+ min-height: 24px;
768
+ color: var(--as-text-muted, var(--as-text));
769
+ font-size: 11px;
770
+ font-weight: 600;
771
+ text-align: center;
772
+ }
773
+ .booking-card__day {
774
+ appearance: none;
775
+ display: grid;
776
+ place-items: center;
777
+ width: 100%;
778
+ aspect-ratio: 1;
779
+ min-height: 36px;
780
+ padding: 0;
781
+ border: 0;
782
+ border-radius: 999px;
783
+ background: transparent;
784
+ color: var(--as-text-subtle);
785
+ font: inherit;
786
+ font-size: 13px;
787
+ font-weight: 600;
788
+ cursor: default;
789
+ }
790
+ .booking-card__day--available {
791
+ background: var(--as-brand-soft);
792
+ color: var(--as-text);
793
+ cursor: pointer;
794
+ }
795
+ .booking-card__day--available:hover {
796
+ background: var(--as-brand-light);
797
+ }
798
+ .booking-card__day--selected,
799
+ .booking-card__day--selected:hover {
800
+ background: var(--as-visitor-bubble, var(--as-brand));
801
+ color: var(--as-visitor-text, #fff);
802
+ }
803
+ .booking-card__times {
804
+ display: flex;
805
+ flex-direction: column;
806
+ gap: 8px;
807
+ }
808
+ .booking-card__times:has(:nth-child(7)) {
809
+ display: grid;
810
+ grid-template-columns: 1fr 1fr;
811
+ }
812
+ .booking-card__time {
813
+ appearance: none;
814
+ width: 100%;
815
+ min-height: 44px;
816
+ padding: 8px 12px;
817
+ border: 1px solid var(--as-brand);
818
+ border-radius: var(--as-radius-sm);
819
+ background: var(--as-surface);
820
+ color: var(--as-text);
821
+ font: inherit;
822
+ font-size: 14px;
823
+ font-weight: 650;
824
+ cursor: pointer;
825
+ transition: background 180ms cubic-bezier(0.16, 1, 0.3, 1), color 180ms cubic-bezier(0.16, 1, 0.3, 1);
826
+ }
827
+ .booking-card__time:hover {
828
+ background: var(--as-brand-soft);
829
+ }
830
+ .booking-card__time--selected {
831
+ background: var(--as-visitor-bubble, var(--as-brand));
832
+ color: var(--as-visitor-text, #fff);
833
+ }
834
+ .booking-card__field input,
835
+ .booking-card__field select {
836
+ width: 100%;
837
+ min-width: 0;
838
+ min-height: 44px;
839
+ padding: 8px 12px;
840
+ border: 1px solid var(--as-border);
841
+ border-radius: var(--as-radius-md);
842
+ background: var(--as-surface);
843
+ color: var(--as-text);
844
+ font: inherit;
845
+ font-size: 13px;
846
+ }
847
+ .booking-card__submit {
848
+ width: 100%;
849
+ min-height: 44px;
850
+ padding: 8px 12px;
851
+ border: 0;
852
+ border-radius: var(--as-radius-md);
853
+ background: var(--as-visitor-bubble, #111);
854
+ color: var(--as-visitor-text, #fff);
855
+ font: inherit;
856
+ font-size: 13px;
857
+ font-weight: 600;
858
+ cursor: pointer;
859
+ }
860
+ .booking-card__submit:hover {
861
+ filter: brightness(1.04);
862
+ }
863
+ @media (prefers-reduced-motion: reduce) {
864
+ .booking-card__time {
865
+ transition: none;
866
+ }
867
+ }
868
+
664
869
  /* src/react/components/MessageBubble/MessageBubble.css */
665
870
  .message-bubble {
666
871
  display: flex;
@@ -668,6 +873,16 @@ html.webless-agent-page-shift {
668
873
  gap: 8px;
669
874
  max-width: 86%;
670
875
  }
876
+ .message-bubble--agent:has(.booking-card) {
877
+ align-self: stretch;
878
+ width: 100%;
879
+ max-width: 100%;
880
+ }
881
+ .message-bubble .booking-card {
882
+ width: 100%;
883
+ max-width: none;
884
+ box-sizing: border-box;
885
+ }
671
886
  .message-bubble--visitor {
672
887
  align-self: flex-end;
673
888
  align-items: flex-end;
@@ -675,8 +890,37 @@ html.webless-agent-page-shift {
675
890
  .message-bubble--agent {
676
891
  align-self: flex-start;
677
892
  align-items: flex-start;
893
+ width: 100%;
678
894
  max-width: 100%;
679
895
  }
896
+ .message-bubble__agent-row {
897
+ display: grid;
898
+ width: 100%;
899
+ grid-template-columns: 24px minmax(0, 1fr);
900
+ align-items: flex-start;
901
+ gap: 10px;
902
+ }
903
+ .message-bubble__agent-avatar {
904
+ position: relative;
905
+ display: inline-flex;
906
+ width: 24px;
907
+ height: 24px;
908
+ align-items: center;
909
+ justify-content: center;
910
+ overflow: hidden;
911
+ margin-top: 1px;
912
+ border-radius: 8px;
913
+ background: var(--as-surface-muted);
914
+ }
915
+ .message-bubble__agent-avatar img {
916
+ position: absolute;
917
+ inset: 0;
918
+ width: 100%;
919
+ height: 100%;
920
+ border-radius: inherit;
921
+ background: var(--as-surface);
922
+ object-fit: contain;
923
+ }
680
924
  .message-bubble__text {
681
925
  margin: 0;
682
926
  padding: 10px 12px;
@@ -691,9 +935,10 @@ html.webless-agent-page-shift {
691
935
  border-bottom-right-radius: 5px;
692
936
  }
693
937
  .message-bubble--agent .message-bubble__text {
694
- width: 100%;
938
+ min-width: 0;
939
+ width: auto;
695
940
  padding: 0;
696
- border: none;
941
+ border: 0;
697
942
  border-radius: 0;
698
943
  background: transparent;
699
944
  color: var(--as-text);
@@ -748,6 +993,8 @@ html.webless-agent-page-shift {
748
993
  /* src/react/components/AgentRail/AgentRail.css */
749
994
  .agent-rail {
750
995
  --rail-width: var(--as-rail-max-width);
996
+ --as-hairline: color-mix(in srgb, var(--as-text) 9%, transparent);
997
+ --as-control-border: color-mix(in srgb, var(--as-text) 14%, transparent);
751
998
  position: relative;
752
999
  z-index: var(--as-z-rail);
753
1000
  display: flex;
@@ -758,7 +1005,7 @@ html.webless-agent-page-shift {
758
1005
  max-height: 100dvh;
759
1006
  flex-direction: column;
760
1007
  overflow: hidden;
761
- border-left: 1px solid var(--as-border);
1008
+ border-left: 1px solid var(--as-hairline);
762
1009
  background: var(--as-surface);
763
1010
  box-shadow: var(--as-shadow-rail);
764
1011
  color: var(--as-text);
@@ -771,9 +1018,9 @@ html.webless-agent-page-shift {
771
1018
  position: relative;
772
1019
  z-index: 1;
773
1020
  flex-shrink: 0;
774
- padding: 12px 14px;
775
- border-bottom: 1px solid var(--as-border);
776
- background: color-mix(in srgb, var(--as-surface) 96%, var(--as-surface-muted));
1021
+ padding: 12px 16px;
1022
+ border-bottom: 1px solid var(--as-hairline);
1023
+ background: var(--as-surface);
777
1024
  }
778
1025
  .agent-rail__brand-row {
779
1026
  display: grid;
@@ -802,16 +1049,13 @@ html.webless-agent-page-shift {
802
1049
  text-overflow: ellipsis;
803
1050
  white-space: nowrap;
804
1051
  }
805
- .agent-rail__brand-mark,
806
- .agent-rail__welcome-mark {
1052
+ .agent-rail__brand-mark {
807
1053
  position: relative;
808
1054
  display: inline-flex;
809
1055
  align-items: center;
810
1056
  justify-content: center;
811
1057
  flex-shrink: 0;
812
- background: var(--as-brand);
813
- color: var(--as-visitor-text);
814
- font-weight: 750;
1058
+ background: var(--as-surface-muted);
815
1059
  }
816
1060
  .agent-rail__brand-mark {
817
1061
  width: 25px;
@@ -820,8 +1064,7 @@ html.webless-agent-page-shift {
820
1064
  border-radius: 8px;
821
1065
  font-size: 11px;
822
1066
  }
823
- .agent-rail__brand-logo,
824
- .agent-rail__welcome-logo {
1067
+ .agent-rail__brand-logo {
825
1068
  position: absolute;
826
1069
  inset: 0;
827
1070
  width: 100%;
@@ -911,45 +1154,15 @@ html.webless-agent-page-shift {
911
1154
  width: 100%;
912
1155
  min-height: 100%;
913
1156
  flex-direction: column;
914
- gap: 16px;
1157
+ gap: 20px;
915
1158
  margin: 0 auto;
916
- padding: 20px 16px 26px;
1159
+ padding: 24px 20px 32px;
917
1160
  }
918
1161
  .agent-rail__welcome {
919
1162
  display: flex;
920
- min-height: 100%;
921
- flex: 1 0 auto;
922
1163
  flex-direction: column;
923
- justify-content: center;
924
- gap: 22px;
925
- padding: 28px 2px 18px;
926
- }
927
- .agent-rail__welcome-mark {
928
- width: 42px;
929
- height: 42px;
930
- border-radius: 13px;
931
- box-shadow: 0 8px 24px -14px color-mix(in srgb, var(--as-brand) 70%, transparent);
932
- font-size: 16px;
933
- }
934
- .agent-rail__welcome-copy {
935
- display: grid;
936
- gap: 9px;
937
- }
938
- .agent-rail__welcome-copy h2 {
939
- margin: 0;
940
- color: var(--as-text);
941
- font-family: var(--as-font-display);
942
- font-size: clamp(21px, 3vw, 25px);
943
- font-weight: 650;
944
- letter-spacing: -0.035em;
945
- line-height: 1.15;
946
- }
947
- .agent-rail__welcome-copy p {
948
- max-width: 42ch;
949
- margin: 0;
950
- color: var(--as-text-muted);
951
- font-size: 13px;
952
- line-height: 1.55;
1164
+ flex-shrink: 0;
1165
+ gap: 18px;
953
1166
  }
954
1167
  .agent-rail__timeline-slot,
955
1168
  .agent-rail__followups-slot {
@@ -1004,86 +1217,83 @@ html.webless-agent-page-shift {
1004
1217
  position: relative;
1005
1218
  z-index: 1;
1006
1219
  flex-shrink: 0;
1007
- padding: 12px 14px 13px;
1008
- border-top: 1px solid var(--as-border);
1009
- background: color-mix(in srgb, var(--as-surface) 96%, var(--as-surface-muted));
1220
+ padding: 13px 20px 14px;
1221
+ border-top: 1px solid var(--as-hairline);
1222
+ background: var(--as-surface);
1010
1223
  }
1011
1224
  .agent-rail__footer {
1012
1225
  margin-top: 7px;
1013
1226
  }
1014
1227
  .agent-rail__footer p {
1228
+ display: grid;
1229
+ gap: 2px;
1015
1230
  margin: 0;
1016
- color: var(--as-text-subtle);
1017
- font-size: 10.5px;
1231
+ color: var(--as-text-muted);
1232
+ font-size: 11px;
1018
1233
  line-height: 1.35;
1019
1234
  text-align: center;
1020
1235
  }
1021
1236
  .agent-rail--expanded {
1022
1237
  position: fixed;
1023
- top: 50%;
1024
- left: 50%;
1238
+ inset: 0;
1025
1239
  z-index: calc(var(--as-z-mobile) + 1);
1026
- width: min(960px, calc(100vw - 48px));
1027
- min-width: 0;
1028
- max-width: 960px;
1029
- height: min(860px, calc(100dvh - 48px));
1030
- max-height: calc(100dvh - 48px);
1240
+ width: 100vw;
1241
+ min-width: 100vw;
1242
+ max-width: none;
1243
+ height: 100dvh;
1244
+ max-height: none;
1031
1245
  overflow: hidden;
1032
- transform: translate(-50%, -50%);
1033
- border: 1px solid var(--as-border);
1034
- border-radius: 22px;
1246
+ transform: none;
1247
+ border: 0;
1248
+ border-radius: 0;
1035
1249
  background: var(--as-surface);
1036
- box-shadow: 0 1px 2px color-mix(in srgb, var(--as-text) 8%, transparent), 0 32px 90px -30px color-mix(in srgb, var(--as-text) 46%, transparent);
1037
- transition:
1038
- width 320ms cubic-bezier(0.22, 1, 0.36, 1),
1039
- height 320ms cubic-bezier(0.22, 1, 0.36, 1),
1040
- transform 320ms cubic-bezier(0.22, 1, 0.36, 1),
1041
- border-radius 320ms cubic-bezier(0.22, 1, 0.36, 1),
1042
- box-shadow 320ms cubic-bezier(0.22, 1, 0.36, 1);
1250
+ box-shadow: none;
1251
+ transition: opacity 180ms cubic-bezier(0.22, 1, 0.36, 1);
1252
+ }
1253
+ .agent-rail--expanded .agent-rail__brand-row {
1254
+ max-width: 1120px;
1255
+ margin: 0 auto;
1043
1256
  }
1044
1257
  .agent-rail--expanded .agent-rail__thread {
1045
1258
  max-width: 760px;
1046
- padding: 28px 24px 36px;
1259
+ padding: 36px 24px 48px;
1047
1260
  }
1048
1261
  .agent-rail--expanded .agent-rail__welcome {
1049
1262
  width: 100%;
1050
- max-width: 680px;
1051
- margin: 0 auto;
1052
1263
  }
1053
1264
  .agent-rail--expanded .agent-rail__composer-wrap {
1054
1265
  padding: 16px 24px 18px;
1055
1266
  }
1056
- .agent-rail--expanded .agent-rail__composer-wrap > .composer,
1267
+ .agent-rail--expanded .composer,
1057
1268
  .agent-rail--expanded .agent-rail__footer {
1058
- width: min(712px, 100%);
1269
+ width: min(760px, 100%);
1059
1270
  margin-right: auto;
1060
1271
  margin-left: auto;
1061
1272
  }
1062
1273
  .agent-rail--expanded .agent-rail__footer {
1063
- margin-top: 8px;
1274
+ margin-top: 7px;
1064
1275
  }
1065
1276
  .agent-rail--mobile-fullscreen {
1066
1277
  position: fixed;
1067
- inset: auto 0 0;
1278
+ inset: 0;
1068
1279
  z-index: calc(var(--as-z-mobile) + 1);
1069
1280
  width: 100%;
1070
1281
  min-width: 0;
1071
1282
  max-width: none;
1072
- height: min(78dvh, 720px);
1073
- min-height: min(520px, calc(100dvh - 12px));
1074
- max-height: calc(100dvh - 8px);
1283
+ height: 100dvh;
1284
+ min-height: 100dvh;
1285
+ max-height: 100dvh;
1075
1286
  overflow: hidden;
1076
- border: 1px solid var(--as-border);
1077
- border-bottom: none;
1078
- border-radius: 22px 22px 0 0;
1287
+ border: 0;
1288
+ border-radius: 0;
1079
1289
  background: var(--as-surface);
1080
- box-shadow: 0 -24px 72px -28px color-mix(in srgb, var(--as-text) 42%, transparent);
1290
+ box-shadow: none;
1081
1291
  }
1082
1292
  .agent-rail--mobile-fullscreen .agent-rail__header {
1083
- padding-top: 16px;
1293
+ padding-top: max(12px, env(safe-area-inset-top));
1084
1294
  }
1085
1295
  .agent-rail--mobile-fullscreen .agent-rail__brand-row {
1086
- grid-template-columns: minmax(0, 1fr) auto 40px;
1296
+ grid-template-columns: minmax(0, 1fr) auto 44px;
1087
1297
  }
1088
1298
  .agent-rail--mobile-fullscreen .agent-rail__identity {
1089
1299
  grid-column: 1;
@@ -1099,26 +1309,18 @@ html.webless-agent-page-shift {
1099
1309
  }
1100
1310
  .agent-rail--mobile-fullscreen .agent-rail__close,
1101
1311
  .agent-rail--mobile-fullscreen .agent-rail__new-chat {
1102
- width: 40px;
1103
- height: 40px;
1312
+ width: 44px;
1313
+ height: 44px;
1104
1314
  }
1105
1315
  .agent-rail--mobile-fullscreen .agent-rail__header::before {
1106
- position: absolute;
1107
- top: 7px;
1108
- left: 50%;
1109
- width: 34px;
1110
- height: 4px;
1111
- border-radius: 999px;
1112
- background: color-mix(in srgb, var(--as-text) 16%, transparent);
1113
- content: "";
1114
- transform: translateX(-50%);
1316
+ content: none;
1115
1317
  }
1116
1318
  .agent-rail--mobile-fullscreen .agent-rail__thread {
1117
- padding: 20px 16px 24px;
1319
+ padding: 24px 16px 32px;
1118
1320
  }
1119
1321
  .agent-rail--mobile-fullscreen .agent-rail__welcome {
1120
- padding-top: 20px;
1121
- padding-bottom: 12px;
1322
+ padding-top: 0;
1323
+ padding-bottom: 8px;
1122
1324
  }
1123
1325
  .agent-rail--mobile-fullscreen .agent-rail__composer-wrap {
1124
1326
  padding: 11px 12px max(12px, env(safe-area-inset-bottom));
@@ -1142,9 +1344,6 @@ html.webless-agent-page-shift {
1142
1344
  .agent-rail .agent-rail__expand {
1143
1345
  display: none;
1144
1346
  }
1145
- .agent-rail__welcome-copy h2 {
1146
- font-size: 23px;
1147
- }
1148
1347
  .agent-rail__error {
1149
1348
  align-items: flex-start;
1150
1349
  flex-direction: column;
@@ -1152,11 +1351,17 @@ html.webless-agent-page-shift {
1152
1351
  }
1153
1352
  @media (max-width: 767px) and (max-height: 620px) {
1154
1353
  .agent-rail--mobile-fullscreen {
1155
- height: calc(100dvh - 8px);
1354
+ height: 100dvh;
1156
1355
  }
1157
1356
  .agent-rail--mobile-fullscreen .agent-rail__welcome {
1158
1357
  justify-content: flex-start;
1159
1358
  }
1359
+ .agent-rail--mobile-fullscreen .agent-rail__composer-wrap {
1360
+ padding: 8px 12px max(8px, env(safe-area-inset-bottom));
1361
+ }
1362
+ .agent-rail--mobile-fullscreen .agent-rail__footer p span:first-child {
1363
+ display: none;
1364
+ }
1160
1365
  }
1161
1366
  @media (min-width: 768px) {
1162
1367
  .agent-rail .agent-rail__close {
@@ -1172,8 +1377,8 @@ html.webless-agent-page-shift {
1172
1377
  /* src/react/components/AssistEdgeTab/AssistEdgeTab.css */
1173
1378
  .assist-edge-tab {
1174
1379
  --tab-ink: var(--as-brand);
1175
- --tab-fill: #fff;
1176
- --tab-line: rgb(111 22 255 / 0.35);
1380
+ --tab-fill: var(--as-surface);
1381
+ --tab-line: color-mix(in srgb, var(--as-brand) 32%, var(--as-border));
1177
1382
  --tab-along: 50%;
1178
1383
  --tab-inset: 0px;
1179
1384
  position: fixed;
@@ -1234,6 +1439,12 @@ html.webless-agent-page-shift {
1234
1439
  background: var(--tab-fill);
1235
1440
  object-fit: contain;
1236
1441
  }
1442
+ .assist-edge-tab__custom-icon {
1443
+ width: 18px;
1444
+ height: 18px;
1445
+ flex-shrink: 0;
1446
+ object-fit: contain;
1447
+ }
1237
1448
  .assist-edge-tab__label {
1238
1449
  font-family: var(--as-font-display);
1239
1450
  font-size: 13px;
@@ -1315,8 +1526,8 @@ html.webless-agent-page-shift {
1315
1526
  transform: translateX(-50%) translateY(-2px);
1316
1527
  }
1317
1528
  .assist-edge-tab--outline {
1318
- --tab-fill: #f7f6fa;
1319
- --tab-line: rgb(111 22 255 / 0.45);
1529
+ --tab-fill: color-mix(in srgb, var(--as-surface) 96%, var(--as-text) 4%);
1530
+ --tab-line: color-mix(in srgb, var(--as-brand) 42%, var(--as-border));
1320
1531
  }
1321
1532
  .assist-edge-tab--outline.assist-edge-tab--right,
1322
1533
  .assist-edge-tab--outline.assist-edge-tab--left {
@@ -1332,7 +1543,7 @@ html.webless-agent-page-shift {
1332
1543
  border-bottom: 1px solid var(--tab-line);
1333
1544
  }
1334
1545
  .assist-edge-tab--ask {
1335
- --tab-fill: #efe8fb;
1546
+ --tab-fill: color-mix(in srgb, var(--as-brand) 10%, var(--as-surface));
1336
1547
  --tab-line: transparent;
1337
1548
  }
1338
1549
  .assist-edge-tab--ask.assist-edge-tab--right,