@co0ontty/wand 1.21.12 → 1.21.13
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/server.js +254 -31
- package/dist/structured-session-manager.d.ts +6 -2
- package/dist/structured-session-manager.js +170 -97
- package/dist/types.d.ts +24 -0
- package/dist/web-ui/content/scripts.js +709 -138
- package/dist/web-ui/content/styles.css +313 -0
- package/package.json +1 -1
|
@@ -2522,6 +2522,14 @@
|
|
|
2522
2522
|
.topbar-more-item.topbar-more-item-danger { color: var(--danger); }
|
|
2523
2523
|
.topbar-more-item.topbar-more-item-danger:hover { background: var(--danger-muted); color: var(--danger-hover); }
|
|
2524
2524
|
.topbar-more-item.hidden { display: none; }
|
|
2525
|
+
.topbar-more-item[disabled] { opacity: 0.5; cursor: not-allowed; }
|
|
2526
|
+
.topbar-more-item[disabled]:hover { background: transparent; color: var(--text-primary); }
|
|
2527
|
+
.topbar-more-divider {
|
|
2528
|
+
height: 1px;
|
|
2529
|
+
margin: 4px 6px;
|
|
2530
|
+
background: var(--border-default);
|
|
2531
|
+
opacity: 0.6;
|
|
2532
|
+
}
|
|
2525
2533
|
|
|
2526
2534
|
/* 桌面端显示所有按钮 */
|
|
2527
2535
|
.terminal-scale-toggle { display: flex; }
|
|
@@ -10862,6 +10870,311 @@
|
|
|
10862
10870
|
color: var(--accent);
|
|
10863
10871
|
}
|
|
10864
10872
|
|
|
10873
|
+
/* ── File explorer header extras ── */
|
|
10874
|
+
.file-explorer-up,
|
|
10875
|
+
.file-explorer-toggle-hidden {
|
|
10876
|
+
background: none;
|
|
10877
|
+
border: none;
|
|
10878
|
+
cursor: pointer;
|
|
10879
|
+
font-size: 1rem;
|
|
10880
|
+
padding: 4px;
|
|
10881
|
+
width: 28px;
|
|
10882
|
+
height: 28px;
|
|
10883
|
+
border-radius: 6px;
|
|
10884
|
+
color: var(--text-muted);
|
|
10885
|
+
display: flex;
|
|
10886
|
+
align-items: center;
|
|
10887
|
+
justify-content: center;
|
|
10888
|
+
transition: background var(--transition-fast), color var(--transition-fast);
|
|
10889
|
+
flex-shrink: 0;
|
|
10890
|
+
}
|
|
10891
|
+
.file-explorer-up:hover,
|
|
10892
|
+
.file-explorer-toggle-hidden:hover {
|
|
10893
|
+
background: var(--bg-tertiary);
|
|
10894
|
+
color: var(--text-secondary);
|
|
10895
|
+
}
|
|
10896
|
+
.file-explorer-toggle-hidden.active {
|
|
10897
|
+
color: var(--accent);
|
|
10898
|
+
background: var(--accent-muted);
|
|
10899
|
+
}
|
|
10900
|
+
|
|
10901
|
+
/* ── File tree size/meta column ── */
|
|
10902
|
+
.tree-meta {
|
|
10903
|
+
flex-shrink: 0;
|
|
10904
|
+
font-size: 0.6875rem;
|
|
10905
|
+
color: var(--text-muted);
|
|
10906
|
+
font-variant-numeric: tabular-nums;
|
|
10907
|
+
margin-left: 6px;
|
|
10908
|
+
padding-left: 6px;
|
|
10909
|
+
max-width: 70px;
|
|
10910
|
+
overflow: hidden;
|
|
10911
|
+
text-overflow: ellipsis;
|
|
10912
|
+
white-space: nowrap;
|
|
10913
|
+
opacity: 0.85;
|
|
10914
|
+
}
|
|
10915
|
+
.tree-item:hover .tree-meta { color: var(--text-secondary); }
|
|
10916
|
+
|
|
10917
|
+
/* ── Truncation notice in file tree ── */
|
|
10918
|
+
.tree-truncated {
|
|
10919
|
+
padding: 8px 14px;
|
|
10920
|
+
margin: 4px 6px 8px;
|
|
10921
|
+
font-size: 0.6875rem;
|
|
10922
|
+
color: var(--text-muted);
|
|
10923
|
+
background: var(--bg-secondary);
|
|
10924
|
+
border: 1px dashed var(--border);
|
|
10925
|
+
border-radius: 6px;
|
|
10926
|
+
text-align: center;
|
|
10927
|
+
}
|
|
10928
|
+
|
|
10929
|
+
/* ── File context menu (right-click / long-press) ── */
|
|
10930
|
+
.file-context-menu {
|
|
10931
|
+
position: fixed;
|
|
10932
|
+
z-index: 1100;
|
|
10933
|
+
min-width: 200px;
|
|
10934
|
+
padding: 4px;
|
|
10935
|
+
background: var(--bg-primary);
|
|
10936
|
+
border: 1px solid var(--border);
|
|
10937
|
+
border-radius: 10px;
|
|
10938
|
+
box-shadow: 0 12px 36px rgba(0, 0, 0, 0.18);
|
|
10939
|
+
animation: ctx-fade-in 0.12s ease;
|
|
10940
|
+
}
|
|
10941
|
+
@keyframes ctx-fade-in {
|
|
10942
|
+
from { opacity: 0; transform: translateY(-4px) scale(0.98); }
|
|
10943
|
+
to { opacity: 1; transform: translateY(0) scale(1); }
|
|
10944
|
+
}
|
|
10945
|
+
.file-context-menu-item {
|
|
10946
|
+
display: flex;
|
|
10947
|
+
align-items: center;
|
|
10948
|
+
gap: 10px;
|
|
10949
|
+
width: 100%;
|
|
10950
|
+
padding: 8px 12px;
|
|
10951
|
+
border: none;
|
|
10952
|
+
background: transparent;
|
|
10953
|
+
color: var(--text-primary);
|
|
10954
|
+
font-size: 0.8125rem;
|
|
10955
|
+
text-align: left;
|
|
10956
|
+
cursor: pointer;
|
|
10957
|
+
border-radius: 6px;
|
|
10958
|
+
transition: background 0.12s;
|
|
10959
|
+
}
|
|
10960
|
+
.file-context-menu-item:hover { background: var(--bg-tertiary); }
|
|
10961
|
+
.file-context-menu-item .ctx-icon { width: 18px; text-align: center; opacity: 0.85; }
|
|
10962
|
+
|
|
10963
|
+
/* ── Mini toast for in-app feedback ── */
|
|
10964
|
+
.wand-mini-toast {
|
|
10965
|
+
position: fixed;
|
|
10966
|
+
bottom: 30px;
|
|
10967
|
+
left: 50%;
|
|
10968
|
+
transform: translate(-50%, 14px);
|
|
10969
|
+
z-index: 1200;
|
|
10970
|
+
padding: 8px 16px;
|
|
10971
|
+
background: rgba(20, 20, 20, 0.92);
|
|
10972
|
+
color: #fff;
|
|
10973
|
+
font-size: 0.8125rem;
|
|
10974
|
+
border-radius: 999px;
|
|
10975
|
+
opacity: 0;
|
|
10976
|
+
transition: opacity 0.18s ease, transform 0.18s ease;
|
|
10977
|
+
pointer-events: none;
|
|
10978
|
+
}
|
|
10979
|
+
.wand-mini-toast.show { opacity: 1; transform: translate(-50%, 0); }
|
|
10980
|
+
|
|
10981
|
+
/* ── Preview toolbar ── */
|
|
10982
|
+
.file-preview-toolbar {
|
|
10983
|
+
display: flex;
|
|
10984
|
+
align-items: center;
|
|
10985
|
+
gap: 4px;
|
|
10986
|
+
flex-shrink: 0;
|
|
10987
|
+
margin-left: 8px;
|
|
10988
|
+
}
|
|
10989
|
+
.file-preview-toolbar-btn {
|
|
10990
|
+
background: none;
|
|
10991
|
+
border: 1px solid transparent;
|
|
10992
|
+
cursor: pointer;
|
|
10993
|
+
padding: 4px 8px;
|
|
10994
|
+
min-width: 32px;
|
|
10995
|
+
height: 28px;
|
|
10996
|
+
border-radius: 6px;
|
|
10997
|
+
color: var(--text-muted);
|
|
10998
|
+
font-size: 0.75rem;
|
|
10999
|
+
display: inline-flex;
|
|
11000
|
+
align-items: center;
|
|
11001
|
+
justify-content: center;
|
|
11002
|
+
transition: background 0.15s, color 0.15s, border-color 0.15s;
|
|
11003
|
+
}
|
|
11004
|
+
.file-preview-toolbar-btn:hover {
|
|
11005
|
+
background: var(--bg-tertiary);
|
|
11006
|
+
color: var(--text-primary);
|
|
11007
|
+
border-color: var(--border);
|
|
11008
|
+
}
|
|
11009
|
+
.file-preview-toolbar-btn.toolbar-active {
|
|
11010
|
+
background: var(--accent-muted);
|
|
11011
|
+
color: var(--accent);
|
|
11012
|
+
border-color: var(--accent);
|
|
11013
|
+
}
|
|
11014
|
+
|
|
11015
|
+
/* ── Code preview wrap mode ── */
|
|
11016
|
+
.code-preview-content pre.wrap {
|
|
11017
|
+
white-space: pre-wrap;
|
|
11018
|
+
word-break: break-word;
|
|
11019
|
+
}
|
|
11020
|
+
|
|
11021
|
+
/* ── Image preview ── */
|
|
11022
|
+
.file-preview-body.kind-image {
|
|
11023
|
+
display: flex;
|
|
11024
|
+
align-items: center;
|
|
11025
|
+
justify-content: center;
|
|
11026
|
+
background:
|
|
11027
|
+
linear-gradient(45deg, rgba(0,0,0,0.04) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.04) 75%),
|
|
11028
|
+
linear-gradient(45deg, rgba(0,0,0,0.04) 25%, transparent 25%, transparent 75%, rgba(0,0,0,0.04) 75%),
|
|
11029
|
+
var(--bg-primary);
|
|
11030
|
+
background-size: 16px 16px;
|
|
11031
|
+
background-position: 0 0, 8px 8px;
|
|
11032
|
+
}
|
|
11033
|
+
.image-preview-wrapper {
|
|
11034
|
+
width: 100%;
|
|
11035
|
+
height: 100%;
|
|
11036
|
+
display: flex;
|
|
11037
|
+
align-items: center;
|
|
11038
|
+
justify-content: center;
|
|
11039
|
+
overflow: auto;
|
|
11040
|
+
padding: 16px;
|
|
11041
|
+
}
|
|
11042
|
+
.image-preview-img {
|
|
11043
|
+
max-width: 100%;
|
|
11044
|
+
max-height: 100%;
|
|
11045
|
+
object-fit: contain;
|
|
11046
|
+
cursor: zoom-in;
|
|
11047
|
+
transition: transform 0.2s ease;
|
|
11048
|
+
box-shadow: 0 6px 20px rgba(0, 0, 0, 0.12);
|
|
11049
|
+
border-radius: 4px;
|
|
11050
|
+
background: #fff;
|
|
11051
|
+
}
|
|
11052
|
+
.image-preview-img.zoomed {
|
|
11053
|
+
max-width: none;
|
|
11054
|
+
max-height: none;
|
|
11055
|
+
cursor: zoom-out;
|
|
11056
|
+
transform: scale(1);
|
|
11057
|
+
}
|
|
11058
|
+
|
|
11059
|
+
/* ── PDF preview ── */
|
|
11060
|
+
.file-preview-body.kind-pdf {
|
|
11061
|
+
padding: 0;
|
|
11062
|
+
background: var(--bg-secondary);
|
|
11063
|
+
}
|
|
11064
|
+
.pdf-preview-frame {
|
|
11065
|
+
width: 100%;
|
|
11066
|
+
height: 100%;
|
|
11067
|
+
border: none;
|
|
11068
|
+
background: var(--bg-secondary);
|
|
11069
|
+
}
|
|
11070
|
+
|
|
11071
|
+
/* ── Video / audio preview ── */
|
|
11072
|
+
.file-preview-body.kind-video,
|
|
11073
|
+
.file-preview-body.kind-audio {
|
|
11074
|
+
display: flex;
|
|
11075
|
+
align-items: center;
|
|
11076
|
+
justify-content: center;
|
|
11077
|
+
background: #0d0d0d;
|
|
11078
|
+
}
|
|
11079
|
+
.file-preview-body.kind-audio { background: var(--bg-secondary); }
|
|
11080
|
+
.media-preview-wrapper {
|
|
11081
|
+
display: flex;
|
|
11082
|
+
flex-direction: column;
|
|
11083
|
+
align-items: center;
|
|
11084
|
+
gap: 10px;
|
|
11085
|
+
max-width: 100%;
|
|
11086
|
+
max-height: 100%;
|
|
11087
|
+
padding: 24px;
|
|
11088
|
+
}
|
|
11089
|
+
.media-preview-video {
|
|
11090
|
+
max-width: 100%;
|
|
11091
|
+
max-height: calc(100% - 40px);
|
|
11092
|
+
background: #000;
|
|
11093
|
+
border-radius: 4px;
|
|
11094
|
+
}
|
|
11095
|
+
.media-preview-audio { width: min(420px, 90%); }
|
|
11096
|
+
.media-preview-icon { font-size: 3.5rem; opacity: 0.7; }
|
|
11097
|
+
.media-preview-name {
|
|
11098
|
+
font-weight: 600;
|
|
11099
|
+
color: var(--text-primary);
|
|
11100
|
+
font-size: 1rem;
|
|
11101
|
+
max-width: 100%;
|
|
11102
|
+
overflow: hidden;
|
|
11103
|
+
text-overflow: ellipsis;
|
|
11104
|
+
white-space: nowrap;
|
|
11105
|
+
}
|
|
11106
|
+
.media-preview-meta {
|
|
11107
|
+
color: var(--text-muted);
|
|
11108
|
+
font-size: 0.75rem;
|
|
11109
|
+
font-variant-numeric: tabular-nums;
|
|
11110
|
+
}
|
|
11111
|
+
.file-preview-body.kind-video .media-preview-meta { color: rgba(255,255,255,0.7); }
|
|
11112
|
+
|
|
11113
|
+
/* ── Binary fallback card ── */
|
|
11114
|
+
.file-preview-body.kind-binary {
|
|
11115
|
+
display: flex;
|
|
11116
|
+
align-items: center;
|
|
11117
|
+
justify-content: center;
|
|
11118
|
+
}
|
|
11119
|
+
.binary-preview-card {
|
|
11120
|
+
max-width: 480px;
|
|
11121
|
+
padding: 32px 28px;
|
|
11122
|
+
text-align: center;
|
|
11123
|
+
background: var(--bg-secondary);
|
|
11124
|
+
border: 1px solid var(--border);
|
|
11125
|
+
border-radius: var(--radius-lg);
|
|
11126
|
+
display: flex;
|
|
11127
|
+
flex-direction: column;
|
|
11128
|
+
align-items: center;
|
|
11129
|
+
gap: 10px;
|
|
11130
|
+
}
|
|
11131
|
+
.binary-preview-icon { font-size: 3rem; opacity: 0.6; }
|
|
11132
|
+
.binary-preview-name {
|
|
11133
|
+
font-weight: 600;
|
|
11134
|
+
color: var(--text-primary);
|
|
11135
|
+
font-size: 1rem;
|
|
11136
|
+
word-break: break-all;
|
|
11137
|
+
}
|
|
11138
|
+
.binary-preview-meta {
|
|
11139
|
+
display: flex;
|
|
11140
|
+
gap: 6px;
|
|
11141
|
+
align-items: center;
|
|
11142
|
+
color: var(--text-muted);
|
|
11143
|
+
font-size: 0.75rem;
|
|
11144
|
+
}
|
|
11145
|
+
.binary-preview-path {
|
|
11146
|
+
font-family: var(--font-mono);
|
|
11147
|
+
font-size: 0.75rem;
|
|
11148
|
+
color: var(--text-muted);
|
|
11149
|
+
max-width: 100%;
|
|
11150
|
+
overflow: hidden;
|
|
11151
|
+
text-overflow: ellipsis;
|
|
11152
|
+
white-space: nowrap;
|
|
11153
|
+
}
|
|
11154
|
+
.binary-preview-actions {
|
|
11155
|
+
display: flex;
|
|
11156
|
+
gap: 8px;
|
|
11157
|
+
margin-top: 8px;
|
|
11158
|
+
flex-wrap: wrap;
|
|
11159
|
+
justify-content: center;
|
|
11160
|
+
}
|
|
11161
|
+
.binary-preview-btn {
|
|
11162
|
+
padding: 8px 16px;
|
|
11163
|
+
border-radius: 6px;
|
|
11164
|
+
border: 1px solid var(--border);
|
|
11165
|
+
background: var(--bg-primary);
|
|
11166
|
+
color: var(--text-primary);
|
|
11167
|
+
font-size: 0.8125rem;
|
|
11168
|
+
cursor: pointer;
|
|
11169
|
+
text-decoration: none;
|
|
11170
|
+
transition: background 0.15s, border-color 0.15s, color 0.15s;
|
|
11171
|
+
}
|
|
11172
|
+
.binary-preview-btn:hover {
|
|
11173
|
+
background: var(--accent-muted);
|
|
11174
|
+
border-color: var(--accent);
|
|
11175
|
+
color: var(--accent);
|
|
11176
|
+
}
|
|
11177
|
+
|
|
10865
11178
|
/* ============================================
|
|
10866
11179
|
骨架屏加载效果
|
|
10867
11180
|
============================================ */
|