clay-server 3.5.1 → 3.6.0-beta.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.
- package/README.md +54 -196
- package/bin/cli.js +7 -42
- package/lib/builtin-mates.js +1 -1
- package/lib/cli-wordmark.js +32 -0
- package/lib/daemon.js +7 -0
- package/lib/os-user-diagnostics-worker.js +18 -0
- package/lib/os-user-diagnostics.js +312 -0
- package/lib/os-users.js +55 -22
- package/lib/pages.js +47 -35
- package/lib/public/app.js +2 -10
- package/lib/public/apple-touch-icon.png +0 -0
- package/lib/public/clay-studio-favicon-32.png +0 -0
- package/lib/public/clay-studio-symbol.png +0 -0
- package/lib/public/clay-studio-wordmark.svg +20 -0
- package/lib/public/css/base.css +143 -61
- package/lib/public/css/filebrowser.css +132 -22
- package/lib/public/css/icon-strip.css +33 -19
- package/lib/public/css/input.css +15 -5
- package/lib/public/css/messages.css +17 -14
- package/lib/public/css/mobile-nav.css +5 -5
- package/lib/public/css/overlays.css +58 -6
- package/lib/public/css/pane.css +0 -1
- package/lib/public/css/session-actions.css +9 -3
- package/lib/public/css/sidebar.css +104 -161
- package/lib/public/css/title-bar.css +51 -18
- package/lib/public/css/user-settings.css +114 -8
- package/lib/public/icon-192.png +0 -0
- package/lib/public/icon-512.png +0 -0
- package/lib/public/index.html +44 -82
- package/lib/public/manifest.json +1 -6
- package/lib/public/modules/app-connection.js +0 -3
- package/lib/public/modules/app-favicon.js +22 -29
- package/lib/public/modules/app-messages.js +1 -2
- package/lib/public/modules/app-notifications.js +3 -3
- package/lib/public/modules/command-palette.js +1 -1
- package/lib/public/modules/filebrowser-tabs.js +42 -3
- package/lib/public/modules/filebrowser.js +78 -9
- package/lib/public/modules/server-settings.js +0 -77
- package/lib/public/modules/sidebar-projects.js +1 -1
- package/lib/public/modules/sidebar-sessions.js +18 -5
- package/lib/public/modules/sidebar.js +2 -2
- package/lib/public/modules/theme.js +88 -249
- package/lib/public/modules/user-settings.js +2 -3
- package/lib/public/style.css +10 -10
- package/lib/public/sw.js +4 -2
- package/lib/themes/clay-dark.json +11 -0
- package/lib/themes/clay-light.json +11 -0
- package/package.json +1 -1
- package/lib/public/apple-touch-icon-dark.png +0 -0
- package/lib/public/clay-logo.png +0 -0
- package/lib/public/favicon-banded-32.png +0 -0
- package/lib/public/favicon-banded.png +0 -0
- package/lib/public/favicon-dark.svg +0 -1
- package/lib/public/favicon.svg +0 -1
- package/lib/public/icon-192-dark.png +0 -0
- package/lib/public/icon-512-dark.png +0 -0
- package/lib/public/icon-banded-76.png +0 -0
- package/lib/public/icon-banded-96.png +0 -0
- package/lib/public/icon-mono.svg +0 -1
- package/lib/public/modules/ascii-logo.js +0 -442
- package/lib/public/wordmark-banded-20.png +0 -0
- package/lib/public/wordmark-banded-32.png +0 -0
- package/lib/public/wordmark-banded-64.png +0 -0
- package/lib/public/wordmark-banded-80.png +0 -0
package/lib/public/css/base.css
CHANGED
|
@@ -91,73 +91,155 @@ img.emoji {
|
|
|
91
91
|
}
|
|
92
92
|
|
|
93
93
|
:root {
|
|
94
|
-
--
|
|
95
|
-
--
|
|
96
|
-
--
|
|
97
|
-
--
|
|
98
|
-
--
|
|
99
|
-
--
|
|
100
|
-
--
|
|
101
|
-
--
|
|
102
|
-
--
|
|
103
|
-
--
|
|
104
|
-
--
|
|
105
|
-
--
|
|
106
|
-
--
|
|
107
|
-
--
|
|
108
|
-
--
|
|
109
|
-
--
|
|
110
|
-
--
|
|
111
|
-
--
|
|
112
|
-
--
|
|
113
|
-
--
|
|
114
|
-
--
|
|
115
|
-
--
|
|
116
|
-
--
|
|
117
|
-
--
|
|
118
|
-
--
|
|
119
|
-
--
|
|
120
|
-
--
|
|
121
|
-
--
|
|
122
|
-
--
|
|
123
|
-
--
|
|
124
|
-
--
|
|
125
|
-
--
|
|
126
|
-
--
|
|
127
|
-
--
|
|
128
|
-
--
|
|
129
|
-
--
|
|
130
|
-
--
|
|
131
|
-
--
|
|
132
|
-
--
|
|
133
|
-
--
|
|
134
|
-
--
|
|
94
|
+
--brand-ink: #171717;
|
|
95
|
+
--brand-paper: #f2f2ef;
|
|
96
|
+
--brand-indigo: #5857fc;
|
|
97
|
+
--brand-green: #07e5a3;
|
|
98
|
+
--font-weight-body: 400;
|
|
99
|
+
--font-weight-ui: 500;
|
|
100
|
+
--font-weight-heading: 600;
|
|
101
|
+
--font-weight-emphasis: 700;
|
|
102
|
+
--bg: #171715;
|
|
103
|
+
--bg-alt: #20201d;
|
|
104
|
+
--text: #e8e8e2;
|
|
105
|
+
--text-secondary: #d1d1ca;
|
|
106
|
+
--text-muted: #a0a098;
|
|
107
|
+
--text-dimmer: #686861;
|
|
108
|
+
--accent: #7776ff;
|
|
109
|
+
--accent-hover: #8786ff;
|
|
110
|
+
--accent-bg: rgba(119, 118, 255, 0.12);
|
|
111
|
+
--link: #7f7ec8;
|
|
112
|
+
--link-hover: #8c8bd0;
|
|
113
|
+
--code-bg: #141412;
|
|
114
|
+
--border: #393934;
|
|
115
|
+
--border-subtle: #252521;
|
|
116
|
+
--input-bg: #2d2d29;
|
|
117
|
+
--ask-mate-bg: #20201d;
|
|
118
|
+
--user-bubble: #32322d;
|
|
119
|
+
--error: #ff7479;
|
|
120
|
+
--success: #07e5a3;
|
|
121
|
+
--warning: #e0b45b;
|
|
122
|
+
--accent-8: rgba(119, 118, 255, 0.08);
|
|
123
|
+
--accent-12: rgba(119, 118, 255, 0.12);
|
|
124
|
+
--accent-15: rgba(119, 118, 255, 0.15);
|
|
125
|
+
--accent-20: rgba(119, 118, 255, 0.20);
|
|
126
|
+
--accent-25: rgba(119, 118, 255, 0.25);
|
|
127
|
+
--accent-30: rgba(119, 118, 255, 0.30);
|
|
128
|
+
--accent2: #07e5a3;
|
|
129
|
+
--accent2-hover: #25e8ae;
|
|
130
|
+
--accent2-bg: rgba(7, 229, 163, 0.12);
|
|
131
|
+
--accent2-8: rgba(7, 229, 163, 0.08);
|
|
132
|
+
--accent2-12: rgba(7, 229, 163, 0.12);
|
|
133
|
+
--accent2-15: rgba(7, 229, 163, 0.15);
|
|
134
|
+
--accent2-20: rgba(7, 229, 163, 0.20);
|
|
135
|
+
--accent2-25: rgba(7, 229, 163, 0.25);
|
|
136
|
+
--accent2-30: rgba(7, 229, 163, 0.30);
|
|
137
|
+
--error-8: rgba(255, 116, 121, 0.08);
|
|
138
|
+
--error-12: rgba(255, 116, 121, 0.12);
|
|
139
|
+
--error-15: rgba(255, 116, 121, 0.15);
|
|
140
|
+
--error-25: rgba(255, 116, 121, 0.25);
|
|
141
|
+
--success-8: rgba(7, 229, 163, 0.08);
|
|
142
|
+
--success-12: rgba(7, 229, 163, 0.12);
|
|
143
|
+
--success-15: rgba(7, 229, 163, 0.15);
|
|
144
|
+
--success-25: rgba(7, 229, 163, 0.25);
|
|
145
|
+
--warning-bg: rgba(224, 180, 91, 0.12);
|
|
135
146
|
--overlay-rgb: 255,255,255;
|
|
136
147
|
--shadow-rgb: 0,0,0;
|
|
137
|
-
--hl-comment: #
|
|
138
|
-
--hl-keyword: #
|
|
139
|
-
--hl-string: #
|
|
140
|
-
--hl-number: #
|
|
141
|
-
--hl-function: #
|
|
142
|
-
--hl-variable: #
|
|
143
|
-
--hl-type: #
|
|
144
|
-
--hl-constant: #
|
|
145
|
-
--hl-tag: #
|
|
146
|
-
--hl-attr: #
|
|
147
|
-
--hl-regexp: #
|
|
148
|
-
--hl-meta: #
|
|
149
|
-
--hl-builtin: #
|
|
150
|
-
--hl-symbol: #
|
|
151
|
-
--hl-addition: #
|
|
152
|
-
--hl-deletion: #
|
|
153
|
-
--sidebar-bg: #
|
|
154
|
-
--sidebar-hover: #
|
|
155
|
-
--sidebar-active: #
|
|
148
|
+
--hl-comment: #686861;
|
|
149
|
+
--hl-keyword: #c39af3;
|
|
150
|
+
--hl-string: #07e5a3;
|
|
151
|
+
--hl-number: #7776ff;
|
|
152
|
+
--hl-function: #8aa7ff;
|
|
153
|
+
--hl-variable: #ff7479;
|
|
154
|
+
--hl-type: #e0b45b;
|
|
155
|
+
--hl-constant: #7776ff;
|
|
156
|
+
--hl-tag: #ff7479;
|
|
157
|
+
--hl-attr: #8aa7ff;
|
|
158
|
+
--hl-regexp: #5fd2c0;
|
|
159
|
+
--hl-meta: #d69a7d;
|
|
160
|
+
--hl-builtin: #7776ff;
|
|
161
|
+
--hl-symbol: #d69a7d;
|
|
162
|
+
--hl-addition: #07e5a3;
|
|
163
|
+
--hl-deletion: #ff7479;
|
|
164
|
+
--sidebar-bg: #151513;
|
|
165
|
+
--sidebar-hover: #1c1c19;
|
|
166
|
+
--sidebar-active: #2d2d29;
|
|
167
|
+
--filebrowser-bg: #20201e;
|
|
168
|
+
--filebrowser-border: #282825;
|
|
156
169
|
--safe-top: env(safe-area-inset-top, 0px);
|
|
157
170
|
--safe-bottom: env(safe-area-inset-bottom, 0px);
|
|
158
171
|
--content-width: 760px;
|
|
159
172
|
}
|
|
160
173
|
|
|
174
|
+
:root.light-theme {
|
|
175
|
+
--bg: #f7f7f3;
|
|
176
|
+
--bg-alt: #eeeeea;
|
|
177
|
+
--text: #252522;
|
|
178
|
+
--text-secondary: #44443f;
|
|
179
|
+
--text-muted: #73736c;
|
|
180
|
+
--text-dimmer: #a2a29b;
|
|
181
|
+
--accent: #5857fc;
|
|
182
|
+
--accent-hover: #4d4dde;
|
|
183
|
+
--accent-bg: rgba(88, 87, 252, 0.12);
|
|
184
|
+
--link: #4948b8;
|
|
185
|
+
--link-hover: #4241a6;
|
|
186
|
+
--code-bg: #f0f0ec;
|
|
187
|
+
--border: #d7d7d0;
|
|
188
|
+
--border-subtle: #eaeae5;
|
|
189
|
+
--input-bg: #edede9;
|
|
190
|
+
--ask-mate-bg: #f8f8f6;
|
|
191
|
+
--user-bubble: #e7e7e3;
|
|
192
|
+
--error: #c84b50;
|
|
193
|
+
--success: #087b59;
|
|
194
|
+
--warning: #956a19;
|
|
195
|
+
--sidebar-bg: #f2f2ee;
|
|
196
|
+
--sidebar-hover: #e8e8e4;
|
|
197
|
+
--sidebar-active: #e2e2de;
|
|
198
|
+
--filebrowser-bg: #f7f7f3;
|
|
199
|
+
--filebrowser-border: #e3e3e0;
|
|
200
|
+
--accent-8: rgba(88, 87, 252, 0.08);
|
|
201
|
+
--accent-12: rgba(88, 87, 252, 0.12);
|
|
202
|
+
--accent-15: rgba(88, 87, 252, 0.15);
|
|
203
|
+
--accent-20: rgba(88, 87, 252, 0.20);
|
|
204
|
+
--accent-25: rgba(88, 87, 252, 0.25);
|
|
205
|
+
--accent-30: rgba(88, 87, 252, 0.30);
|
|
206
|
+
--accent2: #07e5a3;
|
|
207
|
+
--accent2-hover: #06ca8f;
|
|
208
|
+
--accent2-bg: rgba(7, 229, 163, 0.12);
|
|
209
|
+
--accent2-8: rgba(7, 229, 163, 0.08);
|
|
210
|
+
--accent2-12: rgba(7, 229, 163, 0.12);
|
|
211
|
+
--accent2-15: rgba(7, 229, 163, 0.15);
|
|
212
|
+
--accent2-20: rgba(7, 229, 163, 0.20);
|
|
213
|
+
--accent2-25: rgba(7, 229, 163, 0.25);
|
|
214
|
+
--accent2-30: rgba(7, 229, 163, 0.30);
|
|
215
|
+
--error-8: rgba(200, 75, 80, 0.08);
|
|
216
|
+
--error-12: rgba(200, 75, 80, 0.12);
|
|
217
|
+
--error-15: rgba(200, 75, 80, 0.15);
|
|
218
|
+
--error-25: rgba(200, 75, 80, 0.25);
|
|
219
|
+
--success-8: rgba(8, 123, 89, 0.08);
|
|
220
|
+
--success-12: rgba(8, 123, 89, 0.12);
|
|
221
|
+
--success-15: rgba(8, 123, 89, 0.15);
|
|
222
|
+
--success-25: rgba(8, 123, 89, 0.25);
|
|
223
|
+
--warning-bg: rgba(149, 106, 25, 0.12);
|
|
224
|
+
--overlay-rgb: 0,0,0;
|
|
225
|
+
--hl-comment: #a2a29b;
|
|
226
|
+
--hl-keyword: #7a52a8;
|
|
227
|
+
--hl-string: #087b59;
|
|
228
|
+
--hl-number: #5857fc;
|
|
229
|
+
--hl-function: #3f62b4;
|
|
230
|
+
--hl-variable: #c84b50;
|
|
231
|
+
--hl-type: #956a19;
|
|
232
|
+
--hl-constant: #5857fc;
|
|
233
|
+
--hl-tag: #c84b50;
|
|
234
|
+
--hl-attr: #3f62b4;
|
|
235
|
+
--hl-regexp: #187a7c;
|
|
236
|
+
--hl-meta: #9a5a46;
|
|
237
|
+
--hl-builtin: #5857fc;
|
|
238
|
+
--hl-symbol: #9a5a46;
|
|
239
|
+
--hl-addition: #087b59;
|
|
240
|
+
--hl-deletion: #c84b50;
|
|
241
|
+
}
|
|
242
|
+
|
|
161
243
|
/* PWA standalone: home indicator safe area still applies on notched devices */
|
|
162
244
|
|
|
163
245
|
::selection {
|
|
@@ -170,6 +252,7 @@ html, body {
|
|
|
170
252
|
color: var(--text);
|
|
171
253
|
font-family: "Pretendard", "Twemoji", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
|
|
172
254
|
font-size: 15px;
|
|
255
|
+
font-weight: var(--font-weight-body);
|
|
173
256
|
line-height: 1.6;
|
|
174
257
|
overflow: hidden;
|
|
175
258
|
overscroll-behavior: none;
|
|
@@ -283,4 +366,3 @@ html, body {
|
|
|
283
366
|
border-color: var(--warning);
|
|
284
367
|
color: var(--warning);
|
|
285
368
|
}
|
|
286
|
-
|
|
@@ -960,13 +960,22 @@
|
|
|
960
960
|
width: 50%;
|
|
961
961
|
max-width: 720px;
|
|
962
962
|
min-width: 360px;
|
|
963
|
-
|
|
963
|
+
height: calc(100% - 16px);
|
|
964
|
+
align-self: center;
|
|
965
|
+
margin: 8px 8px 8px 10px;
|
|
966
|
+
border: 1px solid var(--border);
|
|
967
|
+
border-radius: 12px;
|
|
964
968
|
background: var(--bg);
|
|
965
969
|
display: flex;
|
|
966
970
|
flex-direction: column;
|
|
967
971
|
overflow: hidden;
|
|
968
972
|
flex-shrink: 0;
|
|
969
|
-
|
|
973
|
+
box-shadow:
|
|
974
|
+
4px 8px 18px rgba(var(--shadow-rgb), 0.14),
|
|
975
|
+
2px 2px 4px rgba(var(--shadow-rgb), 0.08),
|
|
976
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04);
|
|
977
|
+
animation: workbench-panel-in 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
978
|
+
transition: max-width 0.2s ease, width 0.2s ease, box-shadow 0.2s ease;
|
|
970
979
|
}
|
|
971
980
|
#file-viewer.hidden { display: none; }
|
|
972
981
|
#file-viewer.file-viewer-wide {
|
|
@@ -980,13 +989,21 @@
|
|
|
980
989
|
height: 100dvh;
|
|
981
990
|
max-width: none;
|
|
982
991
|
min-width: 0;
|
|
992
|
+
margin: 0;
|
|
983
993
|
z-index: 10000;
|
|
984
994
|
border: 0;
|
|
995
|
+
border-radius: 0;
|
|
985
996
|
background: var(--bg);
|
|
986
997
|
box-shadow: none;
|
|
998
|
+
animation: none;
|
|
987
999
|
}
|
|
988
1000
|
}
|
|
989
1001
|
|
|
1002
|
+
@keyframes workbench-panel-in {
|
|
1003
|
+
from { opacity: 0; transform: translateX(10px) scale(0.995); }
|
|
1004
|
+
to { opacity: 1; transform: translateX(0) scale(1); }
|
|
1005
|
+
}
|
|
1006
|
+
|
|
990
1007
|
/* Narrow screens: full overlay */
|
|
991
1008
|
@media (max-width: 1023px) {
|
|
992
1009
|
#file-viewer {
|
|
@@ -1002,32 +1019,81 @@
|
|
|
1002
1019
|
}
|
|
1003
1020
|
|
|
1004
1021
|
.file-viewer-header {
|
|
1022
|
+
display: block;
|
|
1023
|
+
padding: 0;
|
|
1024
|
+
flex-shrink: 0;
|
|
1025
|
+
min-height: 0;
|
|
1026
|
+
background: var(--bg);
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
.file-viewer-tabbar {
|
|
1005
1030
|
display: flex;
|
|
1006
|
-
align-items:
|
|
1007
|
-
|
|
1008
|
-
|
|
1031
|
+
align-items: stretch;
|
|
1032
|
+
height: 36px;
|
|
1033
|
+
min-width: 0;
|
|
1034
|
+
background: var(--bg-deep);
|
|
1009
1035
|
border-bottom: 1px solid var(--border-subtle);
|
|
1010
|
-
flex-shrink: 0;
|
|
1011
|
-
min-height: 44px;
|
|
1012
1036
|
}
|
|
1013
1037
|
|
|
1014
|
-
.file-viewer-tabs { display: flex; min-width: 0; flex: 1; overflow-x: auto; gap:
|
|
1015
|
-
.file-viewer-
|
|
1016
|
-
.file-viewer-tab
|
|
1017
|
-
.file-viewer-tab
|
|
1038
|
+
.file-viewer-tabs { display: flex; min-width: 0; flex: 1; overflow-x: auto; overflow-y: hidden; gap: 0; scrollbar-width: none; }
|
|
1039
|
+
.file-viewer-tabs::-webkit-scrollbar { display: none; }
|
|
1040
|
+
.file-viewer-tab { position: relative; display: inline-flex; align-items: center; flex: 0 0 auto; gap: 7px; min-width: 108px; max-width: 190px; height: 36px; overflow: hidden; white-space: nowrap; border: 0; border-right: 1px solid var(--border-subtle); border-radius: 0; padding: 0 8px 0 10px; background: var(--bg-alt); color: var(--text-secondary); font: inherit; font-size: 12px; cursor: pointer; }
|
|
1041
|
+
.file-viewer-tab::before { content: ""; position: absolute; inset: 0 0 auto; height: 1px; background: transparent; }
|
|
1042
|
+
.file-viewer-tab:hover { background: var(--bg-hover); color: var(--text); }
|
|
1043
|
+
.file-viewer-tab.active { background: var(--bg); color: var(--text); }
|
|
1044
|
+
.file-viewer-tab.active::before { background: var(--accent); }
|
|
1045
|
+
.file-viewer-tab.preview .file-viewer-tab-label { font-style: italic; }
|
|
1046
|
+
.file-viewer-tab-icon { display: inline-flex; width: 16px; height: 16px; flex: 0 0 16px; }
|
|
1047
|
+
.file-viewer-tab-icon:empty { display: none; }
|
|
1048
|
+
.file-viewer-tab-icon svg { width: 16px; height: 16px; }
|
|
1049
|
+
.file-viewer-tab-label { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
|
|
1050
|
+
.file-viewer-tab-close { display: inline-flex; align-items: center; justify-content: center; width: 18px; height: 18px; margin-left: auto; border-radius: 4px; flex: 0 0 18px; color: var(--text-muted); font-size: 16px; font-style: normal; line-height: 1; opacity: 0; }
|
|
1051
|
+
.file-viewer-tab:hover .file-viewer-tab-close, .file-viewer-tab.active .file-viewer-tab-close { opacity: 1; }
|
|
1052
|
+
.file-viewer-tab-close:hover { background: var(--bg-hover); color: var(--text); }
|
|
1053
|
+
|
|
1054
|
+
.file-viewer-window-actions {
|
|
1055
|
+
display: flex;
|
|
1056
|
+
align-items: center;
|
|
1057
|
+
gap: 1px;
|
|
1058
|
+
flex: 0 0 auto;
|
|
1059
|
+
padding: 0 4px 0 2px;
|
|
1060
|
+
}
|
|
1061
|
+
|
|
1062
|
+
.file-viewer-toolbar {
|
|
1063
|
+
display: flex;
|
|
1064
|
+
align-items: center;
|
|
1065
|
+
flex: 0 0 auto;
|
|
1066
|
+
gap: 1px;
|
|
1067
|
+
margin-left: auto;
|
|
1068
|
+
padding: 0 0 0 8px;
|
|
1069
|
+
}
|
|
1070
|
+
|
|
1071
|
+
.file-viewer-breadcrumbs {
|
|
1072
|
+
display: flex;
|
|
1073
|
+
align-items: center;
|
|
1074
|
+
gap: 10px;
|
|
1075
|
+
min-height: 34px;
|
|
1076
|
+
padding: 0 6px 0 10px;
|
|
1077
|
+
border-bottom: 1px solid var(--border-subtle);
|
|
1078
|
+
background: var(--bg);
|
|
1079
|
+
}
|
|
1018
1080
|
|
|
1019
1081
|
.file-viewer-path {
|
|
1082
|
+
display: flex;
|
|
1083
|
+
align-items: center;
|
|
1084
|
+
gap: 3px;
|
|
1085
|
+
min-width: 0;
|
|
1020
1086
|
flex: 1;
|
|
1021
|
-
font-
|
|
1022
|
-
|
|
1023
|
-
color: var(--text-secondary);
|
|
1087
|
+
font-size: 12px;
|
|
1088
|
+
color: var(--text-muted);
|
|
1024
1089
|
overflow: hidden;
|
|
1025
|
-
text-overflow: ellipsis;
|
|
1026
1090
|
white-space: nowrap;
|
|
1027
|
-
direction: rtl;
|
|
1028
|
-
text-align: left;
|
|
1029
1091
|
}
|
|
1030
1092
|
|
|
1093
|
+
.file-viewer-path-segment { flex: 0 0 auto; }
|
|
1094
|
+
.file-viewer-path-segment.current { color: var(--text-secondary); }
|
|
1095
|
+
.file-viewer-path-separator { color: var(--text-dimmer); font-size: 15px; line-height: 1; }
|
|
1096
|
+
|
|
1031
1097
|
.file-viewer-btn {
|
|
1032
1098
|
display: flex;
|
|
1033
1099
|
align-items: center;
|
|
@@ -1179,10 +1245,10 @@
|
|
|
1179
1245
|
color: var(--text);
|
|
1180
1246
|
}
|
|
1181
1247
|
|
|
1182
|
-
#file-viewer.panel-fullscreen .file-viewer-
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1248
|
+
#file-viewer.panel-fullscreen .file-viewer-breadcrumbs { padding-left: clamp(18px, 3vw, 48px); padding-right: clamp(18px, 3vw, 48px); }
|
|
1249
|
+
|
|
1250
|
+
@media (hover: none) {
|
|
1251
|
+
.file-viewer-tab-close { opacity: 1; }
|
|
1186
1252
|
}
|
|
1187
1253
|
|
|
1188
1254
|
#file-viewer.panel-fullscreen .file-viewer-body {
|
|
@@ -1652,6 +1718,28 @@
|
|
|
1652
1718
|
border: 1px solid var(--border-subtle);
|
|
1653
1719
|
}
|
|
1654
1720
|
|
|
1721
|
+
.file-viewer-svg-preview {
|
|
1722
|
+
display: grid;
|
|
1723
|
+
place-items: center;
|
|
1724
|
+
min-height: 100%;
|
|
1725
|
+
padding: clamp(24px, 5vw, 56px);
|
|
1726
|
+
background-color: var(--bg);
|
|
1727
|
+
background-image:
|
|
1728
|
+
linear-gradient(45deg, var(--bg-alt) 25%, transparent 25%),
|
|
1729
|
+
linear-gradient(-45deg, var(--bg-alt) 25%, transparent 25%),
|
|
1730
|
+
linear-gradient(45deg, transparent 75%, var(--bg-alt) 75%),
|
|
1731
|
+
linear-gradient(-45deg, transparent 75%, var(--bg-alt) 75%);
|
|
1732
|
+
background-position: 0 0, 0 10px, 10px -10px, -10px 0;
|
|
1733
|
+
background-size: 20px 20px;
|
|
1734
|
+
}
|
|
1735
|
+
|
|
1736
|
+
.file-viewer-svg-preview img {
|
|
1737
|
+
display: block;
|
|
1738
|
+
max-width: 100%;
|
|
1739
|
+
max-height: calc(100dvh - 150px);
|
|
1740
|
+
filter: drop-shadow(0 8px 24px rgba(var(--shadow-rgb), 0.18));
|
|
1741
|
+
}
|
|
1742
|
+
|
|
1655
1743
|
/* --- Web Terminal --- */
|
|
1656
1744
|
|
|
1657
1745
|
/* Terminal header with tabs */
|
|
@@ -1798,19 +1886,41 @@
|
|
|
1798
1886
|
width: 50%;
|
|
1799
1887
|
max-width: 720px;
|
|
1800
1888
|
min-width: 360px;
|
|
1889
|
+
height: calc(100% - 16px);
|
|
1801
1890
|
min-height: 0;
|
|
1802
|
-
|
|
1891
|
+
align-self: center;
|
|
1892
|
+
margin: 8px 8px 8px 10px;
|
|
1893
|
+
border: 1px solid var(--border);
|
|
1894
|
+
border-radius: 12px;
|
|
1803
1895
|
background: var(--bg);
|
|
1804
1896
|
display: flex;
|
|
1805
1897
|
flex-direction: column;
|
|
1806
1898
|
overflow: hidden;
|
|
1807
1899
|
flex-shrink: 0;
|
|
1900
|
+
box-shadow:
|
|
1901
|
+
4px 8px 18px rgba(var(--shadow-rgb), 0.14),
|
|
1902
|
+
2px 2px 4px rgba(var(--shadow-rgb), 0.08),
|
|
1903
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04);
|
|
1904
|
+
animation: workbench-panel-in 0.18s cubic-bezier(0.2, 0.8, 0.2, 1);
|
|
1808
1905
|
}
|
|
1809
1906
|
#terminal-container.hidden { display: none; }
|
|
1810
1907
|
#terminal-container.panel-fullscreen {
|
|
1811
1908
|
width: 100%;
|
|
1812
1909
|
max-width: none;
|
|
1813
1910
|
min-width: 0;
|
|
1911
|
+
height: 100%;
|
|
1912
|
+
margin: 0;
|
|
1913
|
+
border: 0;
|
|
1914
|
+
border-radius: 0;
|
|
1915
|
+
box-shadow: none;
|
|
1916
|
+
animation: none;
|
|
1917
|
+
}
|
|
1918
|
+
}
|
|
1919
|
+
|
|
1920
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1921
|
+
#file-viewer,
|
|
1922
|
+
#terminal-container {
|
|
1923
|
+
animation: none;
|
|
1814
1924
|
}
|
|
1815
1925
|
}
|
|
1816
1926
|
|
|
@@ -36,29 +36,32 @@
|
|
|
36
36
|
position: absolute;
|
|
37
37
|
width: 38px;
|
|
38
38
|
height: 38px;
|
|
39
|
+
box-sizing: border-box;
|
|
39
40
|
border-radius: 12px;
|
|
40
41
|
background: var(--bg-alt);
|
|
41
|
-
|
|
42
|
+
box-shadow: 0 1px 2px rgba(var(--shadow-rgb), 0.08);
|
|
43
|
+
transition: background 0.2s ease, box-shadow 0.2s ease;
|
|
42
44
|
z-index: -1;
|
|
43
45
|
}
|
|
44
46
|
|
|
45
47
|
.icon-strip-home:hover::before {
|
|
46
|
-
background: var(--
|
|
48
|
+
background: var(--bg);
|
|
49
|
+
box-shadow: 0 2px 6px rgba(var(--shadow-rgb), 0.14);
|
|
47
50
|
}
|
|
48
51
|
|
|
49
52
|
.icon-strip-home .icon-strip-logo {
|
|
50
53
|
width: 38px;
|
|
51
54
|
height: 38px;
|
|
52
|
-
|
|
53
|
-
object-fit: cover;
|
|
55
|
+
object-fit: contain;
|
|
54
56
|
}
|
|
55
57
|
|
|
56
58
|
.icon-strip-home:hover .icon-strip-logo {
|
|
57
|
-
opacity:
|
|
59
|
+
opacity: 1;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
.icon-strip-home.active::before {
|
|
61
|
-
background: var(--
|
|
63
|
+
background: var(--bg);
|
|
64
|
+
box-shadow: 0 1px 3px rgba(var(--shadow-rgb), 0.14);
|
|
62
65
|
}
|
|
63
66
|
|
|
64
67
|
/* First separator aligns with title bar border (48px line) */
|
|
@@ -185,26 +188,32 @@
|
|
|
185
188
|
position: absolute;
|
|
186
189
|
width: 38px;
|
|
187
190
|
height: 38px;
|
|
191
|
+
box-sizing: border-box;
|
|
188
192
|
border-radius: 12px;
|
|
189
|
-
background: var(--bg
|
|
190
|
-
|
|
193
|
+
background: var(--bg);
|
|
194
|
+
box-shadow: 0 1px 2px rgba(var(--shadow-rgb), 0.1);
|
|
195
|
+
transition: background 0.2s ease, box-shadow 0.2s ease;
|
|
191
196
|
z-index: -1;
|
|
192
197
|
}
|
|
193
198
|
|
|
194
199
|
.icon-strip-item:hover::before {
|
|
195
|
-
background: var(--
|
|
200
|
+
background: var(--bg-alt);
|
|
201
|
+
box-shadow: 0 2px 6px rgba(var(--shadow-rgb), 0.14);
|
|
196
202
|
}
|
|
197
203
|
|
|
198
204
|
.icon-strip-item:hover {
|
|
199
|
-
color:
|
|
205
|
+
color: var(--text);
|
|
200
206
|
}
|
|
201
207
|
|
|
202
208
|
.icon-strip-item.active::before {
|
|
203
|
-
background: var(--
|
|
209
|
+
background: var(--bg);
|
|
210
|
+
box-shadow:
|
|
211
|
+
0 0 0 1px color-mix(in srgb, var(--link) 62%, var(--border)),
|
|
212
|
+
0 1px 3px rgba(var(--shadow-rgb), 0.16);
|
|
204
213
|
}
|
|
205
214
|
|
|
206
215
|
.icon-strip-item.active {
|
|
207
|
-
color:
|
|
216
|
+
color: var(--text);
|
|
208
217
|
}
|
|
209
218
|
|
|
210
219
|
/* --- Socket status indicator on icon (top-left dot) --- */
|
|
@@ -486,6 +495,8 @@
|
|
|
486
495
|
.icon-strip-item .project-emoji {
|
|
487
496
|
width: 22px;
|
|
488
497
|
height: 22px;
|
|
498
|
+
position: relative;
|
|
499
|
+
z-index: 1;
|
|
489
500
|
pointer-events: none;
|
|
490
501
|
}
|
|
491
502
|
|
|
@@ -1230,22 +1241,25 @@
|
|
|
1230
1241
|
width: 30px;
|
|
1231
1242
|
height: 30px;
|
|
1232
1243
|
border-radius: 8px;
|
|
1233
|
-
background: var(--bg
|
|
1234
|
-
|
|
1235
|
-
transition:
|
|
1244
|
+
background: var(--bg);
|
|
1245
|
+
box-shadow: 0 1px 2px rgba(var(--shadow-rgb), 0.1);
|
|
1246
|
+
transition: background 0.15s, box-shadow 0.15s;
|
|
1236
1247
|
}
|
|
1237
1248
|
|
|
1238
1249
|
.icon-strip-wt-item:hover::before {
|
|
1239
|
-
|
|
1250
|
+
background: var(--bg-alt);
|
|
1251
|
+
box-shadow: 0 2px 5px rgba(var(--shadow-rgb), 0.14);
|
|
1240
1252
|
}
|
|
1241
1253
|
|
|
1242
1254
|
.icon-strip-wt-item.active::before {
|
|
1243
|
-
background: var(--
|
|
1244
|
-
|
|
1255
|
+
background: var(--bg);
|
|
1256
|
+
box-shadow:
|
|
1257
|
+
0 0 0 1px color-mix(in srgb, var(--link) 58%, var(--border)),
|
|
1258
|
+
0 1px 3px rgba(var(--shadow-rgb), 0.16);
|
|
1245
1259
|
}
|
|
1246
1260
|
|
|
1247
1261
|
.icon-strip-wt-item.active {
|
|
1248
|
-
color:
|
|
1262
|
+
color: var(--text);
|
|
1249
1263
|
}
|
|
1250
1264
|
|
|
1251
1265
|
.icon-strip-wt-item .wt-branch-abbrev {
|
package/lib/public/css/input.css
CHANGED
|
@@ -401,7 +401,7 @@
|
|
|
401
401
|
|
|
402
402
|
.context-picker-section-label {
|
|
403
403
|
font-size: 10px;
|
|
404
|
-
font-weight:
|
|
404
|
+
font-weight: var(--font-weight-ui);
|
|
405
405
|
color: var(--text-dimmer);
|
|
406
406
|
text-transform: uppercase;
|
|
407
407
|
letter-spacing: 0.5px;
|
|
@@ -535,7 +535,7 @@
|
|
|
535
535
|
.email-setup-title {
|
|
536
536
|
margin: 0 0 16px;
|
|
537
537
|
font-size: 16px;
|
|
538
|
-
font-weight:
|
|
538
|
+
font-weight: var(--font-weight-heading);
|
|
539
539
|
color: var(--text);
|
|
540
540
|
}
|
|
541
541
|
.email-setup-field {
|
|
@@ -628,7 +628,7 @@
|
|
|
628
628
|
border: none;
|
|
629
629
|
background: var(--accent);
|
|
630
630
|
color: #fff;
|
|
631
|
-
font-weight:
|
|
631
|
+
font-weight: var(--font-weight-ui);
|
|
632
632
|
}
|
|
633
633
|
.email-setup-btn-primary:hover {
|
|
634
634
|
background: var(--accent-hover);
|
|
@@ -718,11 +718,21 @@
|
|
|
718
718
|
border: none;
|
|
719
719
|
border-radius: 8px;
|
|
720
720
|
padding: 7px;
|
|
721
|
-
transition: box-shadow 0.
|
|
721
|
+
transition: box-shadow 0.18s ease, transform 0.18s ease, background 0.18s ease;
|
|
722
722
|
}
|
|
723
723
|
|
|
724
724
|
#input-row:focus-within {
|
|
725
|
-
|
|
725
|
+
background: color-mix(in srgb, var(--input-bg) 96%, white);
|
|
726
|
+
box-shadow:
|
|
727
|
+
0 0 0 1px color-mix(in srgb, var(--accent) 22%, var(--border)),
|
|
728
|
+
0 8px 22px rgba(var(--shadow-rgb), 0.14),
|
|
729
|
+
0 2px 6px rgba(var(--shadow-rgb), 0.08);
|
|
730
|
+
transform: translateY(-1px);
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
@media (prefers-reduced-motion: reduce) {
|
|
734
|
+
#input-row { transition: box-shadow 0.01ms; }
|
|
735
|
+
#input-row:focus-within { transform: none; }
|
|
726
736
|
}
|
|
727
737
|
|
|
728
738
|
#input-textarea-wrap {
|