clay-server 2.7.2 → 2.8.2

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 (55) hide show
  1. package/bin/cli.js +31 -17
  2. package/lib/config.js +7 -4
  3. package/lib/project.js +343 -15
  4. package/lib/public/app.js +1039 -134
  5. package/lib/public/apple-touch-icon-dark.png +0 -0
  6. package/lib/public/apple-touch-icon.png +0 -0
  7. package/lib/public/clay-logo.png +0 -0
  8. package/lib/public/css/base.css +18 -1
  9. package/lib/public/css/filebrowser.css +1 -0
  10. package/lib/public/css/home-hub.css +455 -0
  11. package/lib/public/css/icon-strip.css +6 -5
  12. package/lib/public/css/loop.css +141 -23
  13. package/lib/public/css/messages.css +2 -0
  14. package/lib/public/css/mobile-nav.css +38 -12
  15. package/lib/public/css/overlays.css +205 -169
  16. package/lib/public/css/playbook.css +264 -0
  17. package/lib/public/css/profile.css +268 -0
  18. package/lib/public/css/scheduler-modal.css +1429 -0
  19. package/lib/public/css/scheduler.css +1305 -0
  20. package/lib/public/css/sidebar.css +305 -11
  21. package/lib/public/css/sticky-notes.css +23 -19
  22. package/lib/public/css/stt.css +155 -0
  23. package/lib/public/css/title-bar.css +14 -6
  24. package/lib/public/favicon-banded-32.png +0 -0
  25. package/lib/public/favicon-banded.png +0 -0
  26. package/lib/public/icon-192-dark.png +0 -0
  27. package/lib/public/icon-192.png +0 -0
  28. package/lib/public/icon-512-dark.png +0 -0
  29. package/lib/public/icon-512.png +0 -0
  30. package/lib/public/icon-banded-76.png +0 -0
  31. package/lib/public/icon-banded-96.png +0 -0
  32. package/lib/public/index.html +336 -44
  33. package/lib/public/modules/ascii-logo.js +442 -0
  34. package/lib/public/modules/markdown.js +18 -0
  35. package/lib/public/modules/notifications.js +50 -63
  36. package/lib/public/modules/playbook.js +578 -0
  37. package/lib/public/modules/profile.js +357 -0
  38. package/lib/public/modules/project-settings.js +1 -9
  39. package/lib/public/modules/scheduler.js +2826 -0
  40. package/lib/public/modules/server-settings.js +1 -1
  41. package/lib/public/modules/sidebar.js +376 -32
  42. package/lib/public/modules/stt.js +272 -0
  43. package/lib/public/modules/terminal.js +32 -0
  44. package/lib/public/modules/theme.js +3 -10
  45. package/lib/public/style.css +6 -0
  46. package/lib/public/sw.js +82 -3
  47. package/lib/public/wordmark-banded-20.png +0 -0
  48. package/lib/public/wordmark-banded-32.png +0 -0
  49. package/lib/public/wordmark-banded-64.png +0 -0
  50. package/lib/public/wordmark-banded-80.png +0 -0
  51. package/lib/scheduler.js +402 -0
  52. package/lib/sdk-bridge.js +3 -2
  53. package/lib/server.js +124 -3
  54. package/lib/sessions.js +35 -2
  55. package/package.json +1 -1
@@ -267,7 +267,7 @@
267
267
  gap: 2px;
268
268
  }
269
269
 
270
- .session-list-header-actions button {
270
+ .session-list-header-actions button:not(.new-ralph-pill) {
271
271
  display: flex;
272
272
  align-items: center;
273
273
  justify-content: center;
@@ -282,8 +282,8 @@
282
282
  transition: color 0.15s, background 0.15s;
283
283
  }
284
284
 
285
- .session-list-header-actions button .lucide { width: 14px; height: 14px; }
286
- .session-list-header-actions button:hover { color: var(--text); background: var(--sidebar-hover); }
285
+ .session-list-header-actions button:not(.new-ralph-pill) .lucide { width: 14px; height: 14px; }
286
+ .session-list-header-actions button:not(.new-ralph-pill):hover { color: var(--text); background: var(--sidebar-hover); }
287
287
 
288
288
  /* --- Session search --- */
289
289
  #session-search {
@@ -392,6 +392,51 @@
392
392
  letter-spacing: 0.3px;
393
393
  }
394
394
 
395
+ /* --- Schedule countdown items --- */
396
+ .session-countdown-group {
397
+ padding: 4px 0 8px;
398
+ border-bottom: 1px solid var(--border-subtle, var(--border));
399
+ margin-bottom: 4px;
400
+ }
401
+
402
+ .session-countdown-item {
403
+ display: flex;
404
+ align-items: center;
405
+ gap: 8px;
406
+ padding: 6px 12px;
407
+ border-radius: 10px;
408
+ font-size: 13px;
409
+ color: var(--text-muted);
410
+ cursor: default;
411
+ pointer-events: none;
412
+ border-left: 3px solid var(--accent);
413
+ margin: 2px 8px;
414
+ background: color-mix(in srgb, var(--accent) 6%, transparent);
415
+ animation: countdown-pulse 2s ease-in-out infinite;
416
+ }
417
+
418
+ .session-countdown-name {
419
+ flex: 1;
420
+ overflow: hidden;
421
+ text-overflow: ellipsis;
422
+ white-space: nowrap;
423
+ min-width: 0;
424
+ font-weight: 500;
425
+ }
426
+
427
+ .session-countdown-badge {
428
+ font-size: 12px;
429
+ font-weight: 700;
430
+ font-variant-numeric: tabular-nums;
431
+ color: var(--accent);
432
+ flex-shrink: 0;
433
+ }
434
+
435
+ @keyframes countdown-pulse {
436
+ 0%, 100% { opacity: 1; }
437
+ 50% { opacity: 0.7; }
438
+ }
439
+
395
440
  .session-item {
396
441
  position: relative;
397
442
  display: flex;
@@ -466,7 +511,8 @@
466
511
 
467
512
  .session-more-btn .lucide,
468
513
  .session-more-btn svg { width: 14px; height: 14px; display: block; }
469
- .session-item:hover .session-more-btn { opacity: 1; }
514
+ .session-item:hover .session-more-btn,
515
+ .session-loop-group:hover .session-more-btn { opacity: 1; }
470
516
  .session-more-btn:hover { color: var(--text); background: rgba(var(--overlay-rgb), 0.06); }
471
517
 
472
518
  /* --- Session context menu --- */
@@ -515,6 +561,241 @@
515
561
  outline: none;
516
562
  }
517
563
 
564
+ /* --- Session loop groups --- */
565
+ .session-loop-wrapper {
566
+ margin-bottom: 0;
567
+ }
568
+
569
+ .session-loop-group {
570
+ position: relative;
571
+ display: flex;
572
+ align-items: center;
573
+ gap: 2px;
574
+ padding: 0 36px 0 4px;
575
+ height: 34px;
576
+ border-radius: 10px;
577
+ cursor: pointer;
578
+ font-size: 13px;
579
+ font-weight: 600;
580
+ color: var(--text-muted);
581
+ transition: background 0.35s ease, color 0.35s ease;
582
+ }
583
+
584
+ .session-loop-group:hover {
585
+ background: var(--sidebar-hover);
586
+ color: var(--text-secondary);
587
+ }
588
+
589
+ .session-loop-group.active {
590
+ background: var(--sidebar-active);
591
+ color: var(--text);
592
+ }
593
+ .session-loop-group.scheduled .session-processing {
594
+ background: var(--success, #27ae60);
595
+ }
596
+
597
+ .session-loop-group .session-item-text {
598
+ flex: 1;
599
+ overflow: hidden;
600
+ text-overflow: ellipsis;
601
+ white-space: nowrap;
602
+ min-width: 0;
603
+ display: flex;
604
+ align-items: center;
605
+ gap: 5px;
606
+ }
607
+
608
+ .session-loop-group .session-processing {
609
+ display: inline-block;
610
+ width: 6px;
611
+ height: 6px;
612
+ border-radius: 50%;
613
+ background: var(--success);
614
+ flex-shrink: 0;
615
+ }
616
+
617
+ .session-loop-icon {
618
+ display: inline-flex;
619
+ color: var(--accent);
620
+ flex-shrink: 0;
621
+ }
622
+ .session-loop-icon.scheduled { color: var(--success, #27ae60); }
623
+ .session-loop-icon .lucide { width: 13px; height: 13px; }
624
+
625
+ .session-loop-name {
626
+ overflow: hidden;
627
+ text-overflow: ellipsis;
628
+ white-space: nowrap;
629
+ min-width: 0;
630
+ }
631
+
632
+ .session-loop-count {
633
+ flex-shrink: 0;
634
+ font-size: 10px;
635
+ font-weight: 600;
636
+ color: var(--text-dimmer);
637
+ background: rgba(var(--overlay-rgb), 0.08);
638
+ padding: 1px 6px;
639
+ border-radius: 8px;
640
+ margin-left: auto;
641
+ }
642
+ .session-loop-count.scheduled {
643
+ color: var(--success, #27ae60);
644
+ background: color-mix(in srgb, var(--success, #27ae60) 12%, transparent);
645
+ }
646
+
647
+ /* Chevron */
648
+ .session-loop-chevron {
649
+ display: flex;
650
+ align-items: center;
651
+ justify-content: center;
652
+ width: 22px;
653
+ height: 22px;
654
+ border: none;
655
+ background: transparent;
656
+ color: var(--text-dimmer);
657
+ cursor: pointer;
658
+ padding: 0;
659
+ border-radius: 4px;
660
+ flex-shrink: 0;
661
+ transition: color 0.15s, transform 0.2s ease;
662
+ }
663
+ .session-loop-chevron .lucide { width: 14px; height: 14px; }
664
+ .session-loop-chevron:hover { color: var(--text); }
665
+ .session-loop-group.expanded .session-loop-chevron { transform: rotate(90deg); }
666
+
667
+ /* Children container */
668
+ .session-loop-children {
669
+ position: relative;
670
+ margin-left: 15px;
671
+ padding: 2px 0 2px 0;
672
+ border-left: 1.5px solid var(--border-subtle);
673
+ }
674
+
675
+ .session-loop-child {
676
+ position: relative;
677
+ display: flex;
678
+ align-items: center;
679
+ gap: 4px;
680
+ padding: 0 12px 0 14px;
681
+ height: 28px;
682
+ border-radius: 0 8px 8px 0;
683
+ cursor: pointer;
684
+ font-size: 12px;
685
+ font-weight: 500;
686
+ color: var(--text-muted);
687
+ transition: background 0.2s ease, color 0.2s ease;
688
+ }
689
+
690
+ /* Small horizontal tick connecting to vertical line */
691
+ .session-loop-child::before {
692
+ content: "";
693
+ position: absolute;
694
+ left: 0;
695
+ top: 50%;
696
+ width: 8px;
697
+ height: 0;
698
+ border-top: 1.5px solid var(--border-subtle);
699
+ }
700
+
701
+ .session-loop-child:hover {
702
+ background: var(--sidebar-hover);
703
+ color: var(--text-secondary);
704
+ }
705
+
706
+ .session-loop-child.active {
707
+ background: var(--sidebar-active);
708
+ color: var(--text);
709
+ }
710
+
711
+ .session-loop-child .session-item-text {
712
+ flex: 1;
713
+ overflow: hidden;
714
+ text-overflow: ellipsis;
715
+ white-space: nowrap;
716
+ min-width: 0;
717
+ display: flex;
718
+ align-items: center;
719
+ gap: 4px;
720
+ }
721
+
722
+ .session-loop-child .session-processing {
723
+ display: inline-block;
724
+ width: 5px;
725
+ height: 5px;
726
+ border-radius: 50%;
727
+ background: var(--success);
728
+ flex-shrink: 0;
729
+ }
730
+
731
+ .session-loop-role-badge {
732
+ display: inline-flex;
733
+ align-items: center;
734
+ font-size: 10px;
735
+ font-weight: 600;
736
+ color: var(--text-dimmer);
737
+ background: rgba(var(--overlay-rgb), 0.06);
738
+ padding: 1px 8px;
739
+ border-radius: 6px;
740
+ letter-spacing: 0.2px;
741
+ }
742
+ .session-loop-role-badge.crafting {
743
+ color: var(--accent);
744
+ background: color-mix(in srgb, var(--accent) 10%, transparent);
745
+ }
746
+ .session-loop-role-badge.scheduled {
747
+ color: var(--success, #27ae60);
748
+ background: color-mix(in srgb, var(--success, #27ae60) 10%, transparent);
749
+ }
750
+
751
+ .session-loop-badge {
752
+ flex-shrink: 0;
753
+ font-size: 10px;
754
+ font-weight: 600;
755
+ padding: 1px 6px;
756
+ border-radius: 8px;
757
+ margin-left: auto;
758
+ }
759
+ .session-loop-badge.crafting {
760
+ color: var(--accent);
761
+ background: var(--accent-12, rgba(108, 92, 231, 0.12));
762
+ }
763
+
764
+ /* --- New Ralph Loop pill button --- */
765
+ .new-ralph-pill {
766
+ display: inline-flex;
767
+ align-items: center;
768
+ justify-content: center;
769
+ gap: 3px;
770
+ height: 22px;
771
+ padding: 0 8px;
772
+ border: 1px solid var(--accent);
773
+ border-radius: 6px;
774
+ background: var(--accent-12, rgba(108, 92, 231, 0.12));
775
+ color: var(--accent);
776
+ font-size: 10px;
777
+ font-weight: 700;
778
+ font-family: inherit;
779
+ letter-spacing: 0.2px;
780
+ cursor: pointer;
781
+ white-space: nowrap;
782
+ transition: background 0.15s, color 0.15s;
783
+ }
784
+
785
+ .new-ralph-pill .lucide {
786
+ width: 10px;
787
+ height: 10px;
788
+ }
789
+
790
+ .new-ralph-pill + button {
791
+ margin-left: 4px;
792
+ }
793
+
794
+ .new-ralph-pill:hover {
795
+ background: var(--accent);
796
+ color: #fff;
797
+ }
798
+
518
799
  @media (hover: none) {
519
800
  .session-more-btn { opacity: 1; }
520
801
  .msg-copy-hint { opacity: 1; }
@@ -548,15 +829,31 @@
548
829
  background: var(--sidebar-bg);
549
830
  }
550
831
 
832
+ .user-island-profile {
833
+ display: flex;
834
+ align-items: center;
835
+ flex: 1;
836
+ min-width: 0;
837
+ padding: 6px;
838
+ border-radius: 8px;
839
+ cursor: pointer;
840
+ transition: background 0.15s;
841
+ }
842
+
843
+ .user-island-profile:hover {
844
+ background: var(--sidebar-hover);
845
+ }
846
+
551
847
  .user-island-avatar {
552
- width: 72px;
848
+ width: 36px;
849
+ height: 36px;
553
850
  flex-shrink: 0;
554
851
  display: flex;
555
852
  align-items: center;
556
853
  justify-content: center;
557
854
  }
558
855
 
559
- .user-island-avatar .footer-mascot {
856
+ .user-island-avatar img {
560
857
  width: 32px;
561
858
  height: 32px;
562
859
  border-radius: 50%;
@@ -581,11 +878,12 @@
581
878
  flex: 1;
582
879
  min-width: 0;
583
880
  overflow: hidden;
881
+ margin-left: 8px;
584
882
  }
585
883
 
586
884
  .user-island-name {
587
885
  font-family: "Pretendard", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
588
- font-size: 13px;
886
+ font-size: 14px;
589
887
  font-weight: 700;
590
888
  color: var(--text);
591
889
  white-space: nowrap;
@@ -629,10 +927,6 @@
629
927
  display: none;
630
928
  }
631
929
 
632
- .footer-mascot {
633
- flex-shrink: 0;
634
- border-radius: 3px;
635
- }
636
930
 
637
931
  .footer-version {
638
932
  font-size: 11px;
@@ -475,39 +475,41 @@
475
475
 
476
476
  #notes-archive.hidden { display: none; }
477
477
 
478
- /* --- Archive header --- */
478
+ /* --- Archive header (matches scheduler-top-bar) --- */
479
479
  .notes-archive-header {
480
480
  display: flex;
481
481
  align-items: center;
482
- justify-content: space-between;
483
- padding: 20px 28px 16px;
482
+ padding: 10px 16px;
484
483
  flex-shrink: 0;
485
- border-bottom: 1px solid var(--border-subtle);
486
484
  }
487
485
 
488
486
  .notes-archive-title-wrap {
489
487
  display: flex;
490
- align-items: center;
491
- gap: 10px;
488
+ align-items: baseline;
489
+ gap: 6px;
490
+ flex: 1;
491
+ }
492
+ .notes-archive-title-wrap .lucide {
493
+ align-self: center;
492
494
  }
493
495
 
494
496
  .notes-archive-title-wrap .lucide {
495
- width: 22px;
496
- height: 22px;
497
+ width: 15px;
498
+ height: 15px;
497
499
  color: var(--accent);
500
+ flex-shrink: 0;
498
501
  }
499
502
 
500
503
  .notes-archive-title-wrap h2 {
501
- font-family: "Pretendard", system-ui, sans-serif;
502
- font-size: 18px;
504
+ font-size: 15px;
503
505
  font-weight: 700;
504
506
  color: var(--text);
505
507
  margin: 0;
506
508
  }
507
509
 
508
510
  .notes-archive-count {
509
- font-size: 13px;
510
- font-weight: 500;
511
+ font-size: 11px;
512
+ font-weight: 600;
511
513
  color: var(--text-dimmer);
512
514
  margin-left: 2px;
513
515
  }
@@ -516,18 +518,20 @@
516
518
  display: flex;
517
519
  align-items: center;
518
520
  justify-content: center;
519
- width: 32px;
520
- height: 32px;
521
- border: 1px solid var(--border);
522
- border-radius: 8px;
521
+ width: 30px;
522
+ height: 30px;
523
+ border: none;
524
+ border-radius: 6px;
523
525
  background: none;
524
526
  color: var(--text-muted);
525
527
  cursor: pointer;
526
- transition: background 0.15s, color 0.15s, border-color 0.15s;
528
+ margin-left: auto;
529
+ transition: background 0.12s, color 0.12s;
530
+ flex-shrink: 0;
527
531
  }
528
532
 
529
533
  .notes-archive-close .lucide { width: 16px; height: 16px; }
530
- .notes-archive-close:hover { background: rgba(var(--overlay-rgb), 0.06); color: var(--text); border-color: var(--text-dimmer); }
534
+ .notes-archive-close:hover { background: rgba(var(--overlay-rgb), 0.08); color: var(--text); }
531
535
 
532
536
  /* --- Archive grid --- */
533
537
  .notes-archive-grid {
@@ -839,6 +843,6 @@
839
843
  }
840
844
 
841
845
  .notes-archive-header {
842
- padding: 16px 16px 12px;
846
+ padding: 10px 12px;
843
847
  }
844
848
  }
@@ -0,0 +1,155 @@
1
+ /* ==========================================================================
2
+ Speech-to-Text (Web Speech API)
3
+ ========================================================================== */
4
+
5
+ /* --- Mic button --- */
6
+ #stt-btn {
7
+ width: 36px;
8
+ height: 36px;
9
+ border-radius: 50%;
10
+ border: none;
11
+ background: transparent;
12
+ color: var(--text-muted);
13
+ cursor: pointer;
14
+ display: flex;
15
+ align-items: center;
16
+ justify-content: center;
17
+ transition: width 0.3s ease, border-radius 0.3s ease, background 0.2s, color 0.2s;
18
+ touch-action: manipulation;
19
+ position: relative;
20
+ overflow: hidden;
21
+ gap: 6px;
22
+ white-space: nowrap;
23
+ flex-shrink: 0;
24
+ }
25
+
26
+ #stt-btn .lucide { width: 20px; height: 20px; flex-shrink: 0; }
27
+ #stt-btn:hover { background: rgba(var(--overlay-rgb), 0.06); color: var(--text); }
28
+
29
+ /* Recording active — pill shape */
30
+ #stt-btn.stt-active {
31
+ width: auto;
32
+ padding: 0 14px 0 10px;
33
+ border-radius: 18px;
34
+ color: #fff;
35
+ background: #e53935;
36
+ }
37
+
38
+ #stt-btn.stt-active:hover {
39
+ background: #c62828;
40
+ }
41
+
42
+ /* --- Waveform bars --- */
43
+ .stt-wave {
44
+ display: flex;
45
+ align-items: center;
46
+ gap: 2px;
47
+ height: 18px;
48
+ flex-shrink: 0;
49
+ }
50
+
51
+ .stt-wave-bar {
52
+ width: 3px;
53
+ border-radius: 1.5px;
54
+ background: rgba(255, 255, 255, 0.85);
55
+ animation: stt-wave-bounce 1.2s ease-in-out infinite;
56
+ }
57
+
58
+ .stt-wave-bar:nth-child(1) { height: 6px; animation-delay: 0s; }
59
+ .stt-wave-bar:nth-child(2) { height: 12px; animation-delay: 0.15s; }
60
+ .stt-wave-bar:nth-child(3) { height: 16px; animation-delay: 0.3s; }
61
+ .stt-wave-bar:nth-child(4) { height: 12px; animation-delay: 0.45s; }
62
+ .stt-wave-bar:nth-child(5) { height: 6px; animation-delay: 0.6s; }
63
+
64
+ @keyframes stt-wave-bounce {
65
+ 0%, 100% { transform: scaleY(0.4); }
66
+ 50% { transform: scaleY(1); }
67
+ }
68
+
69
+ /* Stop label */
70
+ .stt-stop-label {
71
+ font-size: 13px;
72
+ font-weight: 600;
73
+ letter-spacing: 0.02em;
74
+ line-height: 1;
75
+ }
76
+
77
+ /* Loading state */
78
+ #stt-btn.stt-loading {
79
+ pointer-events: none;
80
+ opacity: 0.7;
81
+ }
82
+
83
+ .stt-spinner {
84
+ width: 18px;
85
+ height: 18px;
86
+ border: 2px solid var(--border);
87
+ border-top-color: var(--text-muted);
88
+ border-radius: 50%;
89
+ animation: spin 0.8s linear infinite;
90
+ display: block;
91
+ }
92
+
93
+ /* --- Language popover --- */
94
+ .stt-lang-popover {
95
+ position: absolute;
96
+ bottom: 100%;
97
+ left: 0;
98
+ margin-bottom: 8px;
99
+ background: var(--bg-alt);
100
+ border: 1px solid var(--border);
101
+ border-radius: 14px;
102
+ box-shadow: 0 -4px 24px rgba(var(--shadow-rgb), 0.4);
103
+ z-index: 20;
104
+ min-width: 200px;
105
+ overflow: hidden;
106
+ }
107
+
108
+ .stt-lang-title {
109
+ padding: 12px 16px 8px;
110
+ font-size: 11px;
111
+ font-weight: 700;
112
+ text-transform: uppercase;
113
+ letter-spacing: 0.05em;
114
+ color: var(--text-dimmer);
115
+ }
116
+
117
+ .stt-lang-option {
118
+ display: flex;
119
+ align-items: center;
120
+ justify-content: space-between;
121
+ width: 100%;
122
+ padding: 10px 16px;
123
+ border: none;
124
+ background: transparent;
125
+ color: var(--text-secondary);
126
+ font-size: 14px;
127
+ font-family: inherit;
128
+ cursor: pointer;
129
+ text-align: left;
130
+ transition: background 0.12s;
131
+ gap: 8px;
132
+ }
133
+
134
+ .stt-lang-option:hover {
135
+ background: rgba(var(--overlay-rgb), 0.05);
136
+ }
137
+
138
+ .stt-lang-option.stt-lang-active {
139
+ color: var(--accent);
140
+ font-weight: 600;
141
+ }
142
+
143
+ .stt-lang-name {
144
+ flex: 1;
145
+ }
146
+
147
+ .stt-lang-hint {
148
+ font-size: 11px;
149
+ color: var(--text-dimmer);
150
+ flex-shrink: 0;
151
+ }
152
+
153
+ .stt-lang-option:last-child {
154
+ border-radius: 0 0 14px 14px;
155
+ }
@@ -26,15 +26,22 @@
26
26
  transition: color 0.15s;
27
27
  }
28
28
 
29
+ .top-bar-title:hover {
30
+ color: var(--text);
31
+ }
32
+
29
33
  .top-bar-icon {
30
34
  width: 16px;
31
35
  height: 16px;
32
36
  border-radius: 4px;
33
37
  flex-shrink: 0;
38
+ opacity: 0.7;
39
+ vertical-align: -2px;
40
+ transition: opacity 0.15s;
34
41
  }
35
42
 
36
- .top-bar-title:hover {
37
- color: var(--text);
43
+ .top-bar-title:hover .top-bar-icon {
44
+ opacity: 1;
38
45
  }
39
46
 
40
47
  /* --- Top bar actions (right-aligned group) --- */
@@ -208,10 +215,11 @@
208
215
  height: 18px;
209
216
  vertical-align: middle;
210
217
  filter:
211
- drop-shadow(1px 0 0 rgba(0,0,0,0.18))
212
- drop-shadow(-1px 0 0 rgba(0,0,0,0.18))
213
- drop-shadow(0 1px 0 rgba(0,0,0,0.18))
214
- drop-shadow(0 -1px 0 rgba(0,0,0,0.18));
218
+ drop-shadow(1px 0 0 rgba(0,0,0,0.25))
219
+ drop-shadow(-1px 0 0 rgba(0,0,0,0.25))
220
+ drop-shadow(0 1px 0 rgba(0,0,0,0.25))
221
+ drop-shadow(0 -1px 0 rgba(0,0,0,0.25))
222
+ drop-shadow(0 0 4px rgba(255,255,255,0.35));
215
223
  }
216
224
 
217
225
  .title-bar-project-name {
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file