clay-server 2.15.2 → 2.16.0-beta.1

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.
@@ -305,15 +305,55 @@
305
305
  font-family: inherit;
306
306
  }
307
307
 
308
- /* --- Mobile --- */
308
+ /* --- Mobile: bottom sheet style --- */
309
309
  @media (max-width: 768px) {
310
+ /* Hide the top-bar search trigger on mobile */
311
+ .cmd-palette-searchbar {
312
+ display: none !important;
313
+ }
314
+
315
+ /* Palette dialog: bottom sheet instead of top dropdown */
310
316
  .cmd-palette-dialog {
317
+ top: auto;
318
+ bottom: 0;
319
+ left: 0;
320
+ right: 0;
321
+ transform: none;
311
322
  width: 100%;
312
- max-height: 80vh;
313
- border-radius: 0 0 10px 10px;
323
+ max-height: 85vh;
324
+ border-radius: 16px 16px 0 0;
325
+ border: none;
326
+ border-top: 1px solid var(--border-subtle);
327
+ animation: cmdPaletteMobileUp 0.25s cubic-bezier(0.16, 1, 0.3, 1);
328
+ padding-bottom: env(safe-area-inset-bottom, 0px);
329
+ }
330
+
331
+ @keyframes cmdPaletteMobileUp {
332
+ from { opacity: 0; transform: translateY(100%); }
333
+ to { opacity: 1; transform: translateY(0); }
334
+ }
335
+
336
+ /* Bigger input for touch */
337
+ .cmd-palette-input-row {
338
+ padding: 14px 16px;
339
+ }
340
+
341
+ .cmd-palette-input {
342
+ font-size: 16px; /* prevents iOS zoom */
343
+ }
344
+
345
+ /* Bigger tap targets */
346
+ .cmd-palette-item {
347
+ padding: 12px 16px;
348
+ min-height: 44px;
314
349
  }
315
350
 
316
351
  .cmd-palette-item-snippet {
317
352
  display: none;
318
353
  }
354
+
355
+ /* Hide keyboard shortcut hints */
356
+ .cmd-palette-footer-shortcuts {
357
+ display: none;
358
+ }
319
359
  }
@@ -502,9 +502,21 @@
502
502
 
503
503
  .project-settings-nav-inner {
504
504
  width: 100%;
505
- padding: 0;
505
+ padding: var(--safe-top) 0 0;
506
506
  display: flex;
507
507
  flex-direction: column;
508
+ gap: 0;
509
+ }
510
+
511
+ /* Hide desktop nav items on mobile, show dropdown instead */
512
+ .project-settings-nav .server-settings-nav-items {
513
+ display: none;
514
+ }
515
+
516
+ .project-settings-nav .settings-nav-dropdown {
517
+ display: block;
518
+ width: calc(100% - 32px);
519
+ margin: 0 16px 12px;
508
520
  }
509
521
 
510
522
  .project-settings-content {
@@ -518,8 +530,21 @@
518
530
  }
519
531
 
520
532
  .project-settings-close-col {
521
- top: 12px;
533
+ position: absolute;
534
+ top: calc(var(--safe-top) + 8px);
522
535
  right: 12px;
536
+ z-index: 10;
537
+ }
538
+
539
+ .project-settings-close-col .server-settings-close-btn {
540
+ width: 36px;
541
+ height: 36px;
542
+ background: none;
543
+ border: none;
544
+ }
545
+
546
+ .project-settings-close-col .server-settings-close-btn span {
547
+ display: none;
523
548
  }
524
549
  }
525
550
 
@@ -966,7 +991,7 @@
966
991
  display: flex;
967
992
  align-items: center;
968
993
  justify-content: center;
969
- height: 32px;
994
+ height: 36px;
970
995
  min-width: 40px;
971
996
  padding: 0 10px;
972
997
  border-radius: 6px;
@@ -450,6 +450,83 @@
450
450
  }
451
451
  }
452
452
 
453
+ /* ==========================================================================
454
+ Home Hub — Mate Avatars (horizontal scroll)
455
+ ========================================================================== */
456
+
457
+ .home-hub-mates {
458
+ display: flex;
459
+ gap: 16px;
460
+ padding: 0 4px 16px;
461
+ overflow-x: auto;
462
+ overflow-y: hidden;
463
+ -webkit-overflow-scrolling: touch;
464
+ scrollbar-width: none;
465
+ }
466
+
467
+ .home-hub-mates::-webkit-scrollbar {
468
+ display: none;
469
+ }
470
+
471
+ .home-hub-mates.hidden {
472
+ display: none;
473
+ }
474
+
475
+ .home-hub-mate-item {
476
+ display: flex;
477
+ flex-direction: column;
478
+ align-items: center;
479
+ gap: 6px;
480
+ min-width: 64px;
481
+ cursor: pointer;
482
+ -webkit-tap-highlight-color: transparent;
483
+ touch-action: manipulation;
484
+ }
485
+
486
+ .home-hub-mate-item:active .home-hub-mate-avatar {
487
+ transform: scale(0.92);
488
+ }
489
+
490
+ .home-hub-mate-avatar-wrap {
491
+ position: relative;
492
+ width: 48px;
493
+ height: 48px;
494
+ }
495
+
496
+ .home-hub-mate-avatar {
497
+ width: 48px;
498
+ height: 48px;
499
+ border-radius: 50%;
500
+ object-fit: cover;
501
+ border: 2px solid rgba(var(--overlay-rgb), 0.12);
502
+ transition: transform 0.1s;
503
+ }
504
+
505
+ .home-hub-mate-dot {
506
+ position: absolute;
507
+ bottom: 1px;
508
+ right: 1px;
509
+ width: 10px;
510
+ height: 10px;
511
+ border-radius: 50%;
512
+ background: var(--success);
513
+ border: 2px solid var(--bg);
514
+ }
515
+
516
+ .home-hub-mate-dot.responding {
517
+ background: var(--accent);
518
+ }
519
+
520
+ .home-hub-mate-name {
521
+ font-size: 11px;
522
+ color: var(--text-muted);
523
+ max-width: 64px;
524
+ white-space: nowrap;
525
+ overflow: hidden;
526
+ text-overflow: ellipsis;
527
+ text-align: center;
528
+ }
529
+
453
530
  /* ==========================================================================
454
531
  (Certificate section removed — now handled by Trust Certificate playbook)
455
532
  ========================================================================== */
@@ -217,9 +217,23 @@
217
217
 
218
218
  /* Pending permission shake */
219
219
  .icon-strip-item.has-pending-perm,
220
- .icon-strip-wt-item.has-pending-perm {
220
+ .icon-strip-wt-item.has-pending-perm,
221
+ .icon-strip-mate.has-pending-perm {
221
222
  animation: permShake 2s ease-in-out infinite;
222
223
  }
224
+
225
+ /* Mate status dot (top-left, same as project icons) */
226
+ .icon-strip-mate .icon-strip-status {
227
+ top: -1px;
228
+ left: -1px;
229
+ border-color: var(--bg-alt);
230
+ z-index: 3;
231
+ }
232
+
233
+ .icon-strip-mate.active .icon-strip-status {
234
+ opacity: 1;
235
+ background: var(--success);
236
+ }
223
237
  @keyframes permShake {
224
238
  0%, 8% { transform: translateX(0); }
225
239
  1% { transform: translateX(-2px); }
@@ -622,7 +622,7 @@
622
622
  }
623
623
 
624
624
  #input-row {
625
- border-radius: 20px;
625
+ border-radius: 8px;
626
626
  }
627
627
 
628
628
  /* Offset for mobile tab bar (56px) */
@@ -618,6 +618,49 @@
618
618
  font-weight: 600;
619
619
  }
620
620
 
621
+ /* Collapse button inside mate header: white to match header style */
622
+ .mate-sidebar-header .sidebar-collapse-btn {
623
+ color: rgba(255,255,255,0.7);
624
+ }
625
+ .mate-sidebar-header .sidebar-collapse-btn:hover {
626
+ color: #fff;
627
+ background: rgba(255,255,255,0.15);
628
+ }
629
+
630
+ /* When collapsed, mate sidebar fully hidden (same as project sidebar) */
631
+ #layout.sidebar-collapsed #mate-sidebar-column {
632
+ width: 0 !important;
633
+ min-width: 0 !important;
634
+ overflow: hidden;
635
+ }
636
+
637
+ /* Mate info shown in header when sidebar is collapsed */
638
+ .mate-collapsed-info {
639
+ display: none;
640
+ align-items: center;
641
+ gap: 6px;
642
+ padding: 3px 10px 3px 3px;
643
+ background: rgba(var(--overlay-rgb), 0.08);
644
+ border-radius: 999px;
645
+ margin-right: 8px;
646
+ flex-shrink: 0;
647
+ }
648
+ body.mate-dm-active #layout.sidebar-collapsed .mate-collapsed-info {
649
+ display: flex;
650
+ }
651
+ .mate-collapsed-avatar {
652
+ width: 22px;
653
+ height: 22px;
654
+ border-radius: 50%;
655
+ flex-shrink: 0;
656
+ }
657
+ .mate-collapsed-name {
658
+ font-size: 13px;
659
+ font-weight: 600;
660
+ color: var(--text);
661
+ white-space: nowrap;
662
+ }
663
+
621
664
  .mate-sidebar-header .mate-sidebar-avatar {
622
665
  border: 2px solid rgba(255,255,255,0.3);
623
666
  }
@@ -1450,14 +1493,15 @@
1450
1493
  opacity: 0.35;
1451
1494
  }
1452
1495
 
1453
- .mate-session-processing {
1496
+ .mate-session-item .icon-strip-status {
1497
+ position: static;
1454
1498
  display: inline-block;
1455
1499
  width: 6px;
1456
1500
  height: 6px;
1457
- border-radius: 50%;
1458
- background: var(--success);
1501
+ border: none;
1459
1502
  margin-right: 8px;
1460
1503
  vertical-align: middle;
1504
+ opacity: 1;
1461
1505
  }
1462
1506
 
1463
1507
  /* --- Mate color theming for panels --- */
@@ -1968,3 +2012,163 @@ body.mate-dm-active .activity-inline {
1968
2012
  margin-left: 0;
1969
2013
  margin-right: 0;
1970
2014
  }
2015
+
2016
+ /* ==========================================================================
2017
+ Mobile Mate DM Title Bar
2018
+ ========================================================================== */
2019
+ .mate-mobile-title {
2020
+ display: none !important;
2021
+ }
2022
+
2023
+ @media (max-width: 768px) {
2024
+ .mate-mobile-title:not(.hidden) {
2025
+ display: flex !important;
2026
+ }
2027
+ /* Show mobile mate title, hide everything else in title bar */
2028
+ body.mate-dm-active #header-left #sidebar-expand-btn,
2029
+ body.mate-dm-active #header-left #hamburger-btn,
2030
+ body.mate-dm-active #header-left #header-title,
2031
+ body.mate-dm-active #header-left #header-info-btn,
2032
+ body.mate-dm-active #header-left #header-rename-btn,
2033
+ body.mate-dm-active .title-bar-content #todo-sticky,
2034
+ body.mate-dm-active .title-bar-content #ralph-sticky,
2035
+ body.mate-dm-active .dm-header-bar,
2036
+ body.mate-dm-active .title-bar-content .status #sticky-notes-toggle-btn,
2037
+ body.mate-dm-active .title-bar-content .status #terminal-toggle-btn {
2038
+ display: none !important;
2039
+ }
2040
+
2041
+ .mate-mobile-title {
2042
+ display: flex;
2043
+ align-items: center;
2044
+ gap: 8px;
2045
+ flex: 1;
2046
+ min-width: 0;
2047
+ cursor: pointer;
2048
+ -webkit-tap-highlight-color: transparent;
2049
+ }
2050
+
2051
+ .mate-mobile-back {
2052
+ display: flex;
2053
+ align-items: center;
2054
+ justify-content: center;
2055
+ width: 44px;
2056
+ height: 44px;
2057
+ flex-shrink: 0;
2058
+ background: none;
2059
+ border: none;
2060
+ color: #fff;
2061
+ cursor: pointer;
2062
+ padding: 0;
2063
+ touch-action: manipulation;
2064
+ -webkit-tap-highlight-color: transparent;
2065
+ }
2066
+
2067
+ .mate-mobile-back svg {
2068
+ width: 22px;
2069
+ height: 22px;
2070
+ }
2071
+
2072
+ .mate-mobile-avatar {
2073
+ width: 32px;
2074
+ height: 32px;
2075
+ border-radius: 50%;
2076
+ flex-shrink: 0;
2077
+ object-fit: cover;
2078
+ border: 2px solid rgba(255, 255, 255, 0.3);
2079
+ }
2080
+
2081
+ .mate-mobile-name {
2082
+ font-size: 15px;
2083
+ font-weight: 500;
2084
+ color: #fff;
2085
+ white-space: nowrap;
2086
+ overflow: hidden;
2087
+ text-overflow: ellipsis;
2088
+ flex: 1;
2089
+ min-width: 0;
2090
+ }
2091
+
2092
+ .mate-mobile-status {
2093
+ font-size: 11px;
2094
+ color: rgba(255, 255, 255, 0.7);
2095
+ white-space: nowrap;
2096
+ flex-shrink: 0;
2097
+ }
2098
+
2099
+ .mate-mobile-more {
2100
+ display: flex;
2101
+ align-items: center;
2102
+ justify-content: center;
2103
+ width: 44px;
2104
+ height: 44px;
2105
+ flex-shrink: 0;
2106
+ background: none;
2107
+ border: none;
2108
+ color: rgba(255, 255, 255, 0.8);
2109
+ cursor: pointer;
2110
+ padding: 0;
2111
+ margin-left: auto;
2112
+ touch-action: manipulation;
2113
+ -webkit-tap-highlight-color: transparent;
2114
+ }
2115
+
2116
+ .mate-mobile-more svg {
2117
+ width: 20px;
2118
+ height: 20px;
2119
+ }
2120
+
2121
+ .mate-mobile-more:active {
2122
+ color: #fff;
2123
+ }
2124
+ }
2125
+
2126
+ /* ==========================================================================
2127
+ Mobile Knowledge Editor Tabs
2128
+ ========================================================================== */
2129
+ .mate-knowledge-tab-bar {
2130
+ display: none;
2131
+ }
2132
+
2133
+ @media (max-width: 768px) {
2134
+ .mate-knowledge-tab-bar {
2135
+ display: flex;
2136
+ gap: 0;
2137
+ padding: 0 12px;
2138
+ border-bottom: 1px solid var(--border-subtle);
2139
+ flex-shrink: 0;
2140
+ }
2141
+
2142
+ .mate-knowledge-tab-btn {
2143
+ flex: 1;
2144
+ padding: 10px 0;
2145
+ background: none;
2146
+ border: none;
2147
+ border-bottom: 2px solid transparent;
2148
+ color: var(--text-muted);
2149
+ font-size: 14px;
2150
+ font-weight: 500;
2151
+ cursor: pointer;
2152
+ text-align: center;
2153
+ touch-action: manipulation;
2154
+ -webkit-tap-highlight-color: transparent;
2155
+ transition: color 0.15s, border-color 0.15s;
2156
+ }
2157
+
2158
+ .mate-knowledge-tab-btn.active {
2159
+ color: var(--text);
2160
+ border-bottom-color: var(--accent);
2161
+ }
2162
+
2163
+ /* Hide both panes by default on mobile, show only .mobile-active */
2164
+ .mate-knowledge-editor-pane,
2165
+ .mate-knowledge-preview-pane {
2166
+ display: none !important;
2167
+ }
2168
+
2169
+ .mate-knowledge-editor-pane.mobile-active,
2170
+ .mate-knowledge-preview-pane.mobile-active {
2171
+ display: flex !important;
2172
+ flex: 1;
2173
+ }
2174
+ }
@@ -209,6 +209,7 @@
209
209
 
210
210
  /* --- Assistant message --- */
211
211
  .msg-assistant {
212
+ position: relative;
212
213
  max-width: var(--content-width);
213
214
  margin: 0 auto 12px;
214
215
  padding: 4px 20px;
@@ -230,12 +231,15 @@
230
231
  }
231
232
 
232
233
  .msg-copy-hint {
234
+ position: absolute;
235
+ top: 4px;
236
+ right: 20px;
233
237
  font-size: 12px;
234
238
  color: var(--text-dimmer);
235
- min-height: 1.3em;
236
239
  font-weight: 500;
237
240
  opacity: 0;
238
241
  transition: color 0.15s, opacity 0.15s;
242
+ pointer-events: none;
239
243
  }
240
244
 
241
245
  .msg-assistant:hover .msg-copy-hint { opacity: 1; }
@@ -311,7 +315,15 @@ pre:hover .code-copy-btn { opacity: 1; }
311
315
  }
312
316
 
313
317
  @media (pointer: coarse) {
314
- .code-copy-btn { opacity: 1; }
318
+ .code-copy-btn {
319
+ opacity: 1;
320
+ min-width: 44px;
321
+ min-height: 44px;
322
+ padding: 8px 12px;
323
+ display: flex;
324
+ align-items: center;
325
+ justify-content: center;
326
+ }
315
327
  }
316
328
 
317
329
  .md-content pre code {
@@ -1716,4 +1728,34 @@ pre.mermaid-error {
1716
1728
  text-overflow: ellipsis;
1717
1729
  }
1718
1730
 
1731
+ /* ==========================================================================
1732
+ Mobile message adjustments
1733
+ ========================================================================== */
1734
+ @media (max-width: 768px) {
1735
+ .msg-user {
1736
+ max-width: 100%;
1737
+ padding: 0 12px;
1738
+ }
1739
+ .msg-user .bubble {
1740
+ max-width: 90%;
1741
+ }
1742
+ .msg-assistant {
1743
+ max-width: 100%;
1744
+ padding: 4px 12px;
1745
+ }
1746
+ .thinking-item,
1747
+ .tool-item,
1748
+ .tool-group,
1749
+ .plan-banner,
1750
+ .plan-card,
1751
+ .todo-widget,
1752
+ .turn-meta,
1753
+ .conflict-msg,
1754
+ .context-overflow-msg {
1755
+ max-width: 100%;
1756
+ padding-left: 12px;
1757
+ padding-right: 12px;
1758
+ }
1759
+ }
1760
+
1719
1761