@co0ontty/wand 1.15.1 → 1.17.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.
@@ -391,7 +391,7 @@
391
391
  left: 0;
392
392
  right: 0;
393
393
  bottom: 0;
394
- z-index: 24;
394
+ z-index: 44;
395
395
  background: var(--bg-overlay);
396
396
  opacity: 0;
397
397
  pointer-events: none;
@@ -411,7 +411,7 @@
411
411
  top: 0;
412
412
  left: 0;
413
413
  bottom: 0;
414
- z-index: 25;
414
+ z-index: 45;
415
415
  width: min(var(--sidebar-width), calc(100vw - 20px));
416
416
  max-width: 90vw;
417
417
  background: rgba(255, 251, 245, 0.96);
@@ -422,7 +422,7 @@
422
422
  backdrop-filter: blur(20px) saturate(180%);
423
423
  box-shadow: 4px 0 32px rgba(89, 58, 32, 0.08);
424
424
  transform: translateX(-100%);
425
- transition: transform 0.4s var(--ease-out-expo), box-shadow 0.4s ease, opacity 0.4s ease;
425
+ transition: transform 0.35s var(--ease-out-expo), box-shadow 0.35s ease, opacity 0.25s ease;
426
426
  pointer-events: none;
427
427
  opacity: 0;
428
428
  }
@@ -448,7 +448,7 @@
448
448
  /* ===== 图钉按钮 ===== */
449
449
  .sidebar-pin-toggle {
450
450
  flex-shrink: 0;
451
- transition: transform var(--transition-fast), color var(--transition-fast);
451
+ transition: transform 0.3s var(--ease-out-expo), color var(--transition-fast);
452
452
  }
453
453
  .sidebar-pin-toggle.pinned {
454
454
  color: var(--primary);
@@ -479,10 +479,64 @@
479
479
  .sidebar-header-actions {
480
480
  display: flex;
481
481
  align-items: center;
482
- gap: 4px;
482
+ gap: 6px;
483
483
  flex-shrink: 0;
484
484
  }
485
485
 
486
+ .sidebar-header-more {
487
+ position: relative;
488
+ }
489
+
490
+ .sidebar-header-overflow {
491
+ display: none;
492
+ position: absolute;
493
+ top: calc(100% + 6px);
494
+ right: 0;
495
+ min-width: 150px;
496
+ background: rgba(255, 251, 245, 0.98);
497
+ backdrop-filter: blur(16px) saturate(180%);
498
+ border: 1px solid var(--border-subtle);
499
+ border-radius: var(--radius-sm);
500
+ box-shadow: 0 4px 20px rgba(89, 58, 32, 0.12);
501
+ padding: 4px;
502
+ z-index: 60;
503
+ }
504
+
505
+ .sidebar-header-overflow.open {
506
+ display: block;
507
+ animation: fadeSlideDown 0.15s var(--ease-out-expo);
508
+ }
509
+
510
+ .sidebar-header-overflow .overflow-item {
511
+ display: flex;
512
+ align-items: center;
513
+ gap: 8px;
514
+ width: 100%;
515
+ padding: 9px 12px;
516
+ border: none;
517
+ background: none;
518
+ font-family: var(--font-sans);
519
+ font-size: 0.8125rem;
520
+ color: var(--text-secondary);
521
+ cursor: pointer;
522
+ border-radius: 6px;
523
+ transition: background var(--transition-fast), color var(--transition-fast);
524
+ }
525
+
526
+ .sidebar-header-overflow .overflow-item:hover {
527
+ background: var(--bg-tertiary);
528
+ color: var(--text-primary);
529
+ }
530
+
531
+ .sidebar-header-overflow .overflow-item:active {
532
+ transform: scale(0.97);
533
+ }
534
+
535
+ @keyframes fadeSlideDown {
536
+ from { opacity: 0; transform: translateY(-4px); }
537
+ to { opacity: 1; transform: translateY(0); }
538
+ }
539
+
486
540
  .sidebar-logout {
487
541
  color: var(--text-muted);
488
542
  opacity: 0.7;
@@ -621,7 +675,7 @@
621
675
  width: var(--file-panel-width);
622
676
  background: var(--bg-primary);
623
677
  border-left: 1px solid var(--border);
624
- z-index: 35;
678
+ z-index: 55;
625
679
  transition: right 0.3s var(--ease-out-expo), box-shadow 0.3s ease;
626
680
  display: flex;
627
681
  flex-direction: column;
@@ -647,7 +701,7 @@
647
701
  right: 0;
648
702
  bottom: 0;
649
703
  background: rgba(42, 28, 18, 0.3);
650
- z-index: 34;
704
+ z-index: 54;
651
705
  opacity: 0;
652
706
  pointer-events: none;
653
707
  transition: opacity 0.3s ease;
@@ -830,6 +884,14 @@
830
884
  align-items: center;
831
885
  justify-content: space-between;
832
886
  margin-bottom: 12px;
887
+ padding: 6px 8px;
888
+ border-radius: var(--radius-sm);
889
+ background: rgba(150, 118, 85, 0.04);
890
+ transition: all var(--transition-fast);
891
+ }
892
+
893
+ .session-manage-bar:hover {
894
+ background: rgba(150, 118, 85, 0.07);
833
895
  }
834
896
 
835
897
  .session-manage-bar.active {
@@ -854,7 +916,23 @@
854
916
  gap: 8px;
855
917
  }
856
918
 
857
- .session-manage-toggle,
919
+ .session-manage-toggle {
920
+ border: 1px solid rgba(197, 101, 61, 0.15);
921
+ background: rgba(197, 101, 61, 0.05);
922
+ color: var(--accent);
923
+ border-radius: var(--radius-md);
924
+ padding: 6px 10px;
925
+ font-size: 0.75rem;
926
+ font-weight: 600;
927
+ cursor: pointer;
928
+ transition: all var(--transition-fast);
929
+ }
930
+
931
+ .session-manage-toggle:hover {
932
+ background: rgba(197, 101, 61, 0.12);
933
+ border-color: rgba(197, 101, 61, 0.25);
934
+ }
935
+
858
936
  .session-manage-btn {
859
937
  border: 1px solid var(--border-subtle);
860
938
  background: var(--bg-surface);
@@ -885,12 +963,12 @@
885
963
  }
886
964
 
887
965
  .session-group-title {
888
- padding: 6px 8px 12px;
966
+ padding: 8px 8px 12px;
889
967
  font-size: 0.6875rem;
890
968
  font-weight: 700;
891
969
  letter-spacing: 0.08em;
892
970
  text-transform: uppercase;
893
- color: var(--text-tertiary);
971
+ color: var(--text-secondary);
894
972
  display: flex;
895
973
  align-items: center;
896
974
  gap: 8px;
@@ -899,8 +977,9 @@
899
977
  .session-group-title::before {
900
978
  content: '';
901
979
  width: 3px;
902
- height: 12px;
903
- background: var(--accent-soft);
980
+ height: 14px;
981
+ background: var(--accent);
982
+ opacity: 0.7;
904
983
  border-radius: var(--radius-full);
905
984
  }
906
985
 
@@ -915,24 +994,25 @@
915
994
  }
916
995
  .claude-history-toggle .chevron {
917
996
  display: inline-block;
918
- transition: transform 0.2s ease;
919
- font-size: 0.625rem;
920
- margin-right: 2px;
997
+ transition: transform 0.25s var(--ease-out-expo);
998
+ font-size: 0.6875rem;
999
+ margin-right: 4px;
921
1000
  }
922
1001
  .claude-history-toggle .history-count {
923
- font-size: 0.625rem;
924
- font-weight: 500;
925
- color: var(--text-muted);
926
- background: var(--bg-inset);
927
- padding: 1px 6px;
1002
+ font-size: 0.6875rem;
1003
+ font-weight: 600;
1004
+ color: var(--text-secondary);
1005
+ background: var(--bg-tertiary);
1006
+ padding: 2px 7px;
928
1007
  border-radius: var(--radius-full);
929
- margin-left: 4px;
1008
+ margin-left: 6px;
930
1009
  }
931
1010
  .claude-history-loading {
932
- padding: 12px 8px;
1011
+ padding: 16px 8px;
933
1012
  color: var(--text-muted);
934
1013
  font-size: 0.8125rem;
935
1014
  text-align: center;
1015
+ font-style: italic;
936
1016
  }
937
1017
  .claude-history-directory-header {
938
1018
  margin-top: 6px;
@@ -940,13 +1020,13 @@
940
1020
  user-select: none;
941
1021
  }
942
1022
  .claude-history-directory-header .chevron {
943
- font-size: 0.6rem;
944
- margin-right: 2px;
1023
+ font-size: 0.6875rem;
1024
+ margin-right: 4px;
945
1025
  }
946
1026
  .claude-history-directory-title {
947
- font-size: 0.6rem;
948
- padding: 4px 8px 4px;
949
- opacity: 0.7;
1027
+ font-size: 0.6875rem;
1028
+ padding: 6px 8px;
1029
+ opacity: 0.8;
950
1030
  justify-content: space-between;
951
1031
  }
952
1032
  .claude-history-directory-label {
@@ -965,10 +1045,12 @@
965
1045
  white-space: nowrap;
966
1046
  }
967
1047
  .claude-history-item {
968
- opacity: 0.8;
1048
+ opacity: 0.85;
1049
+ transition: opacity 0.15s ease, background 0.15s ease;
969
1050
  }
970
1051
  .claude-history-item:hover {
971
1052
  opacity: 1;
1053
+ background: rgba(150, 118, 85, 0.06);
972
1054
  }
973
1055
 
974
1056
  /* ===== 会话卡片项 ===== */
@@ -981,9 +1063,9 @@
981
1063
  color: var(--text-primary);
982
1064
  padding: 10px 12px;
983
1065
  cursor: pointer;
984
- transition: all 0.2s ease;
1066
+ transition: all 0.2s ease, transform 0.1s ease;
985
1067
  font-family: var(--font-sans);
986
- margin-bottom: 4px;
1068
+ margin-bottom: 6px;
987
1069
  position: relative;
988
1070
  overflow: hidden;
989
1071
  }
@@ -992,14 +1074,14 @@
992
1074
  content: '';
993
1075
  position: absolute;
994
1076
  left: 0;
995
- top: 4px;
996
- bottom: 4px;
1077
+ top: 6px;
1078
+ bottom: 6px;
997
1079
  width: 3px;
998
1080
  background: var(--accent);
999
1081
  opacity: 0;
1000
1082
  transform: scaleY(0);
1001
1083
  transition: all 0.2s ease;
1002
- border-radius: var(--radius-full);
1084
+ border-radius: 2px;
1003
1085
  }
1004
1086
 
1005
1087
  .session-item-row {
@@ -1152,8 +1234,9 @@
1152
1234
  /* ===== 会话操作按钮 ===== */
1153
1235
  .session-actions {
1154
1236
  position: absolute;
1155
- right: 0;
1156
- top: 0;
1237
+ right: 4px;
1238
+ top: 50%;
1239
+ transform: translateY(-50%);
1157
1240
  display: inline-flex;
1158
1241
  align-items: center;
1159
1242
  gap: 2px;
@@ -1695,7 +1778,7 @@
1695
1778
  @media (hover: hover) {
1696
1779
  .session-item .session-actions {
1697
1780
  opacity: 0;
1698
- transition: opacity 0.15s ease;
1781
+ transition: opacity 0.2s ease;
1699
1782
  }
1700
1783
  .session-item:hover .session-actions,
1701
1784
  .session-item.active .session-actions,
@@ -1718,6 +1801,7 @@
1718
1801
  .session-item:hover {
1719
1802
  background: rgba(150, 118, 85, 0.06);
1720
1803
  border-color: var(--border-subtle);
1804
+ box-shadow: 0 1px 4px rgba(89, 58, 32, 0.04);
1721
1805
  }
1722
1806
 
1723
1807
  .session-item:hover::before {
@@ -1728,6 +1812,7 @@
1728
1812
  .session-item.active {
1729
1813
  background: rgba(197, 101, 61, 0.08);
1730
1814
  border-color: rgba(197, 101, 61, 0.2);
1815
+ box-shadow: 0 1px 6px rgba(197, 101, 61, 0.08);
1731
1816
  }
1732
1817
 
1733
1818
  .session-item.active::before {
@@ -1835,24 +1920,44 @@
1835
1920
  }
1836
1921
 
1837
1922
  .sidebar-footer-actions {
1838
- display: flex;
1839
- justify-content: center;
1840
- gap: 4px;
1923
+ display: grid;
1924
+ grid-template-columns: repeat(4, 1fr);
1925
+ gap: 6px;
1841
1926
  }
1842
1927
 
1843
1928
  .sidebar-footer-actions .btn {
1844
- flex: 1;
1845
- display: inline-flex;
1929
+ display: flex;
1930
+ flex-direction: column;
1846
1931
  align-items: center;
1847
1932
  justify-content: center;
1848
- gap: 4px;
1849
- font-size: 0.75rem;
1850
- color: var(--text-secondary);
1933
+ gap: 3px;
1934
+ font-size: 0.625rem;
1935
+ color: var(--text-muted);
1936
+ padding: 8px 4px;
1937
+ min-height: 48px;
1938
+ border-radius: var(--radius-sm);
1939
+ transition: all var(--transition-fast);
1940
+ }
1941
+
1942
+ .sidebar-footer-actions .btn svg {
1943
+ width: 16px;
1944
+ height: 16px;
1945
+ flex-shrink: 0;
1851
1946
  }
1852
1947
 
1853
1948
  .sidebar-footer-actions .btn:hover {
1854
1949
  color: var(--text-primary);
1855
- background: var(--bg-tertiary);
1950
+ background: rgba(150, 118, 85, 0.08);
1951
+ transform: translateY(-1px);
1952
+ }
1953
+
1954
+ .sidebar-footer-actions .btn:active {
1955
+ transform: scale(0.95);
1956
+ transition-duration: 0.1s;
1957
+ }
1958
+
1959
+ .sidebar-footer-actions .btn.hidden {
1960
+ display: none;
1856
1961
  }
1857
1962
 
1858
1963
  .sidebar-meta {
@@ -2187,27 +2292,50 @@
2187
2292
  align-items: stretch;
2188
2293
  }
2189
2294
 
2190
- .terminal-container > .xterm {
2295
+ .terminal-scroll-wrap {
2191
2296
  position: absolute;
2192
- top: 0;
2193
- left: 0;
2194
- right: 0;
2195
- bottom: 0;
2196
- padding: 0;
2197
- overflow: hidden;
2198
- }
2199
-
2200
- .terminal-container .xterm-viewport {
2201
- background: transparent !important;
2297
+ inset: 0;
2298
+ overflow-y: auto;
2299
+ overflow-x: hidden;
2202
2300
  scrollbar-width: none;
2203
- }
2204
- .terminal-container .xterm-viewport::-webkit-scrollbar {
2301
+ padding: 12px;
2302
+ border-radius: 0;
2303
+ box-shadow: none;
2304
+ --term-fg: #f5eadc;
2305
+ --term-bg: transparent;
2306
+ --term-cursor: #d67b52;
2307
+ --term-font-family: "Geist Mono", "SF Mono", monospace;
2308
+ --term-font-size: 13px;
2309
+ --term-line-height: 1.5;
2310
+ --term-row-height: calc(13px * 1.5);
2311
+ --term-color-0: #1f1b17;
2312
+ --term-color-1: #d27766;
2313
+ --term-color-2: #7fa36f;
2314
+ --term-color-3: #d5a35b;
2315
+ --term-color-4: #87a9d9;
2316
+ --term-color-5: #c595c7;
2317
+ --term-color-6: #7fb3b1;
2318
+ --term-color-7: #f5eadc;
2319
+ --term-color-8: #625347;
2320
+ --term-color-9: #e39a89;
2321
+ --term-color-10: #9cc08a;
2322
+ --term-color-11: #ebbb6e;
2323
+ --term-color-12: #a8c1ea;
2324
+ --term-color-13: #dbb1dc;
2325
+ --term-color-14: #9acbca;
2326
+ --term-color-15: #fff7ef;
2327
+ }
2328
+
2329
+ .terminal-scroll-wrap::-webkit-scrollbar {
2205
2330
  display: none;
2206
2331
  }
2207
2332
 
2208
- .terminal-container .xterm-screen {
2209
- max-width: 100%;
2210
- overflow: hidden;
2333
+ .terminal-scroll-wrap ::selection {
2334
+ background: rgba(214, 123, 82, 0.28);
2335
+ }
2336
+
2337
+ .terminal-scroll-wrap .term-grid {
2338
+ min-height: 100%;
2211
2339
  }
2212
2340
 
2213
2341
  /* ===== 自定义终端滚动条 ===== */
@@ -5393,6 +5521,90 @@
5393
5521
  .btn-circle-stop:active {
5394
5522
  transform: scale(0.95);
5395
5523
  }
5524
+ .btn-circle-attach {
5525
+ background: transparent;
5526
+ color: var(--text-muted);
5527
+ }
5528
+ .btn-circle-attach:hover {
5529
+ background: rgba(197, 101, 61, 0.10);
5530
+ color: var(--accent);
5531
+ transform: scale(1.08);
5532
+ }
5533
+ .btn-circle-attach:active {
5534
+ transform: scale(0.95);
5535
+ }
5536
+
5537
+ .attachment-preview {
5538
+ display: flex;
5539
+ gap: 6px;
5540
+ padding: 6px 10px;
5541
+ flex-wrap: wrap;
5542
+ border-top: 1px solid var(--border-subtle);
5543
+ }
5544
+ .attachment-preview.hidden { display: none; }
5545
+ .attachment-pill {
5546
+ display: inline-flex;
5547
+ align-items: center;
5548
+ gap: 4px;
5549
+ padding: 3px 8px;
5550
+ background: rgba(197, 101, 61, 0.06);
5551
+ border: 1px solid rgba(197, 101, 61, 0.18);
5552
+ border-radius: 8px;
5553
+ font-size: 0.72rem;
5554
+ max-width: 200px;
5555
+ color: var(--text-secondary);
5556
+ animation: permission-fade-in 0.2s ease-out;
5557
+ }
5558
+ .attachment-pill img {
5559
+ width: 28px;
5560
+ height: 28px;
5561
+ object-fit: cover;
5562
+ border-radius: 4px;
5563
+ flex-shrink: 0;
5564
+ }
5565
+ .attachment-pill .att-icon {
5566
+ width: 18px;
5567
+ height: 18px;
5568
+ flex-shrink: 0;
5569
+ display: flex;
5570
+ align-items: center;
5571
+ justify-content: center;
5572
+ font-size: 0.85rem;
5573
+ }
5574
+ .attachment-pill .att-name {
5575
+ overflow: hidden;
5576
+ text-overflow: ellipsis;
5577
+ white-space: nowrap;
5578
+ flex: 1;
5579
+ min-width: 0;
5580
+ }
5581
+ .attachment-pill .att-size {
5582
+ color: var(--text-muted);
5583
+ font-size: 0.65rem;
5584
+ flex-shrink: 0;
5585
+ }
5586
+ .attachment-pill .att-remove {
5587
+ cursor: pointer;
5588
+ color: var(--text-muted);
5589
+ font-size: 0.8rem;
5590
+ line-height: 1;
5591
+ padding: 0 2px;
5592
+ flex-shrink: 0;
5593
+ border: none;
5594
+ background: none;
5595
+ }
5596
+ .attachment-pill .att-remove:hover {
5597
+ color: var(--danger);
5598
+ }
5599
+ .attachment-pill.uploading {
5600
+ opacity: 0.6;
5601
+ }
5602
+
5603
+ .input-composer.drag-over {
5604
+ border-color: var(--accent) !important;
5605
+ background: rgba(197, 101, 61, 0.04) !important;
5606
+ box-shadow: 0 0 0 2px var(--accent-muted), inset 0 0 20px rgba(197, 101, 61, 0.03);
5607
+ }
5396
5608
 
5397
5609
  .keyboard-aware {
5398
5610
  position: fixed;
@@ -6146,8 +6358,12 @@
6146
6358
  .thinking-content { font-size: 0.8125rem; }
6147
6359
  .tool-picker { grid-template-columns: 1fr; }
6148
6360
  /* 平板触摸优化 - 44px触摸区域 */
6149
- .session-item { min-height: 48px; padding: 10px 12px; }
6150
- .session-action-btn { width: 32px; height: 32px; min-width: 32px; min-height: 32px; }
6361
+ .session-item { min-height: 52px; padding: 12px 12px; }
6362
+ .session-action-btn { width: 36px; height: 36px; min-width: 36px; min-height: 36px; }
6363
+ .session-manage-toggle,
6364
+ .session-manage-btn { min-height: 36px; padding: 8px 12px; }
6365
+ .claude-history-toggle { min-height: 40px; display: flex; align-items: center; }
6366
+ .sidebar-footer-actions .btn { min-height: 44px; }
6151
6367
  .tree-item { min-height: 44px; padding: 8px 12px; }
6152
6368
  .folder-picker-item { min-height: 44px; }
6153
6369
  }
@@ -6194,6 +6410,9 @@
6194
6410
  .floating-sidebar-toggle .hamburger-icon { width: 13px; height: 9px; }
6195
6411
 
6196
6412
  .sidebar { top: 0; }
6413
+ .sidebar-header { padding: 10px 12px; min-height: 48px; }
6414
+ .sidebar-footer-actions { grid-template-columns: repeat(2, 1fr); }
6415
+ .sidebar-footer-actions .btn { min-height: 40px; }
6197
6416
 
6198
6417
  /* 移动端终端顶栏 - 紧凑 */
6199
6418
  .terminal-header { padding: 5px 8px; min-height: 32px; }
@@ -6730,6 +6949,9 @@
6730
6949
  .session-action-btn { width: 30px; height: 30px; min-width: 30px; min-height: 30px; }
6731
6950
 
6732
6951
  .sidebar { top: 0; width: min(240px, calc(100vw - 10px)); }
6952
+ .sidebar-footer-actions { grid-template-columns: repeat(4, 1fr); }
6953
+ .sidebar-footer-actions .btn span { display: none; }
6954
+ .sidebar-footer-actions .btn { min-height: 36px; padding: 6px; }
6733
6955
 
6734
6956
  .modal { max-height: 80vh; }
6735
6957
  .modal-header { padding: 8px 10px; min-height: 36px; }
@@ -9278,61 +9500,6 @@
9278
9500
  position: relative;
9279
9501
  }
9280
9502
 
9281
- /* ===== 移动端 DOM 终端视图 ===== */
9282
- .terminal-dom-view {
9283
- display: none;
9284
- position: absolute;
9285
- top: 0;
9286
- left: 0;
9287
- right: 0;
9288
- bottom: 0;
9289
- overflow-y: auto;
9290
- overflow-x: hidden;
9291
- -webkit-overflow-scrolling: touch;
9292
- background: var(--bg-terminal);
9293
- z-index: 1;
9294
- font-size: 13px;
9295
- }
9296
-
9297
- .terminal-dom-view.active {
9298
- display: block;
9299
- }
9300
-
9301
- .terminal-dom-view pre {
9302
- margin: 0;
9303
- padding: 0;
9304
- background: transparent !important;
9305
- font-family: "Geist Mono", "SF Mono", monospace !important;
9306
- font-size: inherit !important;
9307
- line-height: 1.5 !important;
9308
- white-space: pre-wrap;
9309
- overflow-wrap: break-word;
9310
- word-break: normal;
9311
- -webkit-user-select: text;
9312
- user-select: text;
9313
- }
9314
-
9315
- /* serializeAsHTML 外层 div 携带主题色,直接继承 */
9316
- .terminal-dom-view pre > div {
9317
- font-family: "Geist Mono", "SF Mono", monospace !important;
9318
- font-size: inherit !important;
9319
- line-height: 1.5 !important;
9320
- padding: 8px 12px;
9321
- }
9322
-
9323
- /* serializeAsHTML 每行 div */
9324
- .terminal-dom-view pre > div > div {
9325
- min-height: 1.5em;
9326
- }
9327
-
9328
- /* span 继承终端字体 */
9329
- .terminal-dom-view span {
9330
- font-family: inherit !important;
9331
- font-size: inherit !important;
9332
- line-height: inherit !important;
9333
- }
9334
-
9335
- /* 确保按钮在 DOM 视图之上 */
9336
9503
  .terminal-jump-bottom {
9337
9504
  z-index: 20;
9338
9505
  }