@hanzo/browser-extension 1.7.6 → 1.9.31
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/LICENSE +9 -18
- package/dist/browser-extension/README.md +1 -1
- package/dist/browser-extension/background-firefox.js +4180 -499
- package/dist/browser-extension/background.js +6932 -2419
- package/dist/browser-extension/browser-control.js +652 -18
- package/dist/browser-extension/chrome/background.js +6932 -2419
- package/dist/browser-extension/chrome/content-script.js +1642 -123
- package/dist/browser-extension/chrome/icon128.png +0 -0
- package/dist/browser-extension/chrome/icon16.png +0 -0
- package/dist/browser-extension/chrome/icon48.png +0 -0
- package/dist/browser-extension/chrome/manifest.json +20 -11
- package/dist/browser-extension/chrome/popup.css +352 -110
- package/dist/browser-extension/chrome/popup.html +159 -48
- package/dist/browser-extension/chrome/popup.js +1418 -46
- package/dist/browser-extension/chrome/sidebar.css +772 -156
- package/dist/browser-extension/chrome/sidebar.html +268 -85
- package/dist/browser-extension/chrome/sidebar.js +25846 -84
- package/dist/browser-extension/cli.js +2 -2
- package/dist/browser-extension/content-script.js +1642 -123
- package/dist/browser-extension/firefox/background.js +4180 -499
- package/dist/browser-extension/firefox/content-script.js +1642 -123
- package/dist/browser-extension/firefox/icon128.png +0 -0
- package/dist/browser-extension/firefox/icon16.png +0 -0
- package/dist/browser-extension/firefox/icon48.png +0 -0
- package/dist/browser-extension/firefox/manifest.json +24 -13
- package/dist/browser-extension/firefox/popup.css +352 -110
- package/dist/browser-extension/firefox/popup.html +159 -48
- package/dist/browser-extension/firefox/popup.js +1418 -46
- package/dist/browser-extension/firefox/sidebar.css +772 -156
- package/dist/browser-extension/firefox/sidebar.html +268 -85
- package/dist/browser-extension/firefox/sidebar.js +25846 -84
- package/dist/browser-extension/icon128.png +0 -0
- package/dist/browser-extension/icon16.png +0 -0
- package/dist/browser-extension/icon48.png +0 -0
- package/dist/browser-extension/manifest.json +20 -11
- package/dist/browser-extension/package.json +1 -1
- package/dist/browser-extension/popup.js +1418 -46
- package/dist/browser-extension/safari/Info.plist +3 -3
- package/dist/browser-extension/safari/background.js +6932 -2419
- package/dist/browser-extension/safari/content-script.js +1642 -123
- package/dist/browser-extension/safari/icon128.png +0 -0
- package/dist/browser-extension/safari/icon16.png +0 -0
- package/dist/browser-extension/safari/icon48.png +0 -0
- package/dist/browser-extension/safari/popup.css +352 -110
- package/dist/browser-extension/safari/popup.html +159 -48
- package/dist/browser-extension/safari/popup.js +1418 -46
- package/dist/browser-extension/safari/sidebar.css +772 -156
- package/dist/browser-extension/safari/sidebar.html +268 -85
- package/dist/browser-extension/safari/sidebar.js +25846 -84
- package/dist/browser-extension/sidebar.js +25846 -84
- package/dist/browser-extension/webgpu-ai.js +78 -5
- package/images/icon128.png +0 -0
- package/images/icon16.png +0 -0
- package/images/icon48.png +0 -0
- package/manifest.json +7 -2
- package/package.json +27 -10
- package/src/chat-widget.tsx +96 -0
- package/src/gui-primitives.tsx +116 -0
- package/src/icon128.png +0 -0
- package/src/icon16.png +0 -0
- package/src/icon32.png +0 -0
- package/src/icon48.png +0 -0
- package/src/manifest-firefox.json +23 -12
- package/src/manifest.json +19 -10
- package/src/package.json +1 -1
- package/src/popup.css +352 -110
- package/src/popup.html +159 -48
- package/src/popup.js +196 -0
- package/src/sidebar.css +772 -156
- package/src/sidebar.html +268 -85
- package/src/sidebar.js +885 -0
- package/.github/workflows/docs.yml +0 -44
- package/.github/workflows/release.yml +0 -55
- package/README.md +0 -126
- package/dist/browser-extension/ai-worker.js +0 -30
- package/dist/browser-extension/cdp-bridge-server.js +0 -444
- package/dist/browser-extension/chrome/icon32.png +0 -0
- package/dist/browser-extension/firefox/icon32.png +0 -0
- package/dist/browser-extension/hanzo-browser-extension-firefox-1.1.0.zip +0 -0
- package/dist/browser-extension/icon32.png +0 -0
- package/dist/browser-extension/popup.css +0 -468
- package/dist/browser-extension/popup.html +0 -191
- package/dist/browser-extension/safari/icon32.png +0 -0
- package/dist/browser-extension/sidebar.css +0 -718
- package/dist/browser-extension/sidebar.html +0 -184
- package/dist/cdp-bridge-server.js +0 -411
- package/dist/hanzo-ai-chrome-1.7.2.zip +0 -0
- package/dist/hanzo-ai-chrome-1.7.3.zip +0 -0
- package/dist/hanzo-ai-firefox-1.7.2.zip +0 -0
- package/dist/hanzo-ai-firefox-1.7.3.zip +0 -0
- package/dist/safari/Hanzo AI/Hanzo AI.xcodeproj/project.pbxproj +0 -1047
- package/dist/safari/Hanzo AI/Hanzo AI.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AccentColor.colorset/Contents.json +0 -11
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/Contents.json +0 -98
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-128@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-128@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-16@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-16@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-256@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-256@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-32@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-32@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-512@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/mac-icon-512@2x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/AppIcon.appiconset/universal-icon-1024@1x.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/Contents.json +0 -6
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/LargeIcon.imageset/Contents.json +0 -21
- package/dist/safari/Hanzo AI/Shared (App)/Assets.xcassets/LargeIcon.imageset/icon128.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Base.lproj/Main.html +0 -20
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Icon.png +0 -0
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Script.js +0 -24
- package/dist/safari/Hanzo AI/Shared (App)/Resources/Style.css +0 -61
- package/dist/safari/Hanzo AI/Shared (App)/ViewController.swift +0 -81
- package/dist/safari/Hanzo AI/Shared (Extension)/SafariWebExtensionHandler.swift +0 -42
- package/dist/safari/Hanzo AI/iOS (App)/AppDelegate.swift +0 -24
- package/dist/safari/Hanzo AI/iOS (App)/Base.lproj/LaunchScreen.storyboard +0 -36
- package/dist/safari/Hanzo AI/iOS (App)/Base.lproj/Main.storyboard +0 -38
- package/dist/safari/Hanzo AI/iOS (App)/Info.plist +0 -27
- package/dist/safari/Hanzo AI/iOS (App)/SceneDelegate.swift +0 -18
- package/dist/safari/Hanzo AI/iOS (Extension)/Info.plist +0 -13
- package/dist/safari/Hanzo AI/macOS (App)/AppDelegate.swift +0 -21
- package/dist/safari/Hanzo AI/macOS (App)/Base.lproj/Main.storyboard +0 -124
- package/dist/safari/Hanzo AI/macOS (App)/Info.plist +0 -8
- package/dist/safari/Hanzo AI/macOS (Extension)/Info.plist +0 -13
- package/docs/_config.yml +0 -13
- package/docs/_layouts/default.html +0 -435
- package/docs/index.md +0 -54
- package/hanzo-ai-chrome-v1.7.6.zip +0 -0
- package/hanzo-ai-firefox-v1.7.6.zip +0 -0
- package/install-extension.sh +0 -75
- package/test/claude-integration.test.ts +0 -251
- package/test/server-frameworks-edge-cases.test.ts +0 -145
- package/test/server-frameworks.test.ts +0 -395
- package/test-cdp-connection.js +0 -140
- package/tsconfig.json +0 -19
|
@@ -1,20 +1,27 @@
|
|
|
1
|
-
/* Hanzo AI Browser Extension Popup —
|
|
1
|
+
/* Hanzo AI Browser Extension Popup — @hanzo/gui dark theme, monochrome */
|
|
2
2
|
|
|
3
3
|
:root {
|
|
4
|
-
--primary: #
|
|
5
|
-
--primary-dark: #
|
|
6
|
-
--bg: #
|
|
7
|
-
--surface: #
|
|
8
|
-
--surface-light: #
|
|
9
|
-
--text: #
|
|
10
|
-
--text-
|
|
11
|
-
--
|
|
12
|
-
--border
|
|
4
|
+
--primary: #fafafa;
|
|
5
|
+
--primary-dark: #d4d4d4;
|
|
6
|
+
--bg: #0a0a0a;
|
|
7
|
+
--surface: #0f0f0f;
|
|
8
|
+
--surface-light: #171717;
|
|
9
|
+
--text: #fafafa;
|
|
10
|
+
--text-secondary: #a3a3a3;
|
|
11
|
+
--text-dim: #666666;
|
|
12
|
+
--border: rgba(255,255,255,0.10);
|
|
13
|
+
--border-strong: rgba(255,255,255,0.16);
|
|
13
14
|
--glass: rgba(255,255,255,0.04);
|
|
14
15
|
--glass-strong: rgba(255,255,255,0.07);
|
|
15
|
-
|
|
16
|
-
--
|
|
17
|
-
--
|
|
16
|
+
/* Status: monochrome by hue per @hanzo/brand (white luminance scale). */
|
|
17
|
+
--success: #fafafa;
|
|
18
|
+
--warning: #d4d4d4;
|
|
19
|
+
--error: rgba(255,255,255,0.55);
|
|
20
|
+
--link: #a3a3a3;
|
|
21
|
+
--link-hover: #fafafa;
|
|
22
|
+
--radius: 10px;
|
|
23
|
+
--radius-md: 8px;
|
|
24
|
+
--radius-sm: 6px;
|
|
18
25
|
}
|
|
19
26
|
|
|
20
27
|
* {
|
|
@@ -24,11 +31,11 @@
|
|
|
24
31
|
}
|
|
25
32
|
|
|
26
33
|
body {
|
|
27
|
-
width:
|
|
28
|
-
font-family: -apple-system, BlinkMacSystemFont, 'SF Pro Text', '
|
|
34
|
+
width: 360px;
|
|
35
|
+
font-family: 'Geist Sans', -apple-system, BlinkMacSystemFont, 'SF Pro Text', 'Segoe UI', sans-serif;
|
|
29
36
|
background: var(--bg);
|
|
30
37
|
color: var(--text);
|
|
31
|
-
font-size:
|
|
38
|
+
font-size: 13px;
|
|
32
39
|
line-height: 1.5;
|
|
33
40
|
-webkit-font-smoothing: antialiased;
|
|
34
41
|
-moz-osx-font-smoothing: grayscale;
|
|
@@ -36,7 +43,7 @@ body {
|
|
|
36
43
|
|
|
37
44
|
.container {
|
|
38
45
|
background: var(--surface);
|
|
39
|
-
min-height:
|
|
46
|
+
min-height: 480px;
|
|
40
47
|
position: relative;
|
|
41
48
|
}
|
|
42
49
|
|
|
@@ -47,7 +54,7 @@ body {
|
|
|
47
54
|
top: 0;
|
|
48
55
|
left: 0;
|
|
49
56
|
right: 0;
|
|
50
|
-
height:
|
|
57
|
+
height: 100px;
|
|
51
58
|
background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.03) 0%, transparent 70%);
|
|
52
59
|
pointer-events: none;
|
|
53
60
|
}
|
|
@@ -71,15 +78,15 @@ body {
|
|
|
71
78
|
|
|
72
79
|
@keyframes glowPulse {
|
|
73
80
|
0%, 100% { box-shadow: 0 0 0 0 rgba(255,255,255,0); }
|
|
74
|
-
50% { box-shadow: 0 0
|
|
81
|
+
50% { box-shadow: 0 0 8px 1px rgba(255,255,255,0.05); }
|
|
75
82
|
}
|
|
76
83
|
|
|
77
84
|
/* Header */
|
|
78
85
|
header {
|
|
79
86
|
display: flex;
|
|
80
87
|
align-items: center;
|
|
81
|
-
gap:
|
|
82
|
-
padding: 16px;
|
|
88
|
+
gap: 10px;
|
|
89
|
+
padding: 14px 16px;
|
|
83
90
|
border-bottom: 1px solid var(--border);
|
|
84
91
|
background: rgba(0,0,0,0.6);
|
|
85
92
|
backdrop-filter: blur(20px) saturate(180%);
|
|
@@ -89,43 +96,164 @@ header {
|
|
|
89
96
|
}
|
|
90
97
|
|
|
91
98
|
.logo {
|
|
92
|
-
width:
|
|
93
|
-
height:
|
|
99
|
+
width: 22px;
|
|
100
|
+
height: 22px;
|
|
94
101
|
color: var(--text);
|
|
95
|
-
filter: drop-shadow(0 0
|
|
102
|
+
filter: drop-shadow(0 0 4px rgba(255,255,255,0.12));
|
|
96
103
|
}
|
|
97
104
|
|
|
98
105
|
h1 {
|
|
99
|
-
font-size:
|
|
106
|
+
font-size: 16px;
|
|
100
107
|
font-weight: 600;
|
|
101
108
|
letter-spacing: -0.01em;
|
|
102
109
|
}
|
|
103
110
|
|
|
104
111
|
h2 {
|
|
105
|
-
font-size:
|
|
112
|
+
font-size: 15px;
|
|
106
113
|
font-weight: 600;
|
|
107
|
-
margin-bottom:
|
|
114
|
+
margin-bottom: 6px;
|
|
108
115
|
}
|
|
109
116
|
|
|
110
117
|
h3 {
|
|
111
|
-
font-size:
|
|
118
|
+
font-size: 12px;
|
|
112
119
|
font-weight: 600;
|
|
113
|
-
|
|
120
|
+
text-transform: uppercase;
|
|
121
|
+
letter-spacing: 0.04em;
|
|
122
|
+
color: var(--text-secondary);
|
|
123
|
+
margin-bottom: 10px;
|
|
114
124
|
}
|
|
115
125
|
|
|
116
126
|
/* Sections */
|
|
117
127
|
.section {
|
|
118
|
-
padding:
|
|
128
|
+
padding: 16px;
|
|
119
129
|
animation: fadeIn 0.3s ease;
|
|
120
130
|
}
|
|
121
131
|
|
|
122
|
-
.section.hidden
|
|
132
|
+
.section.hidden,
|
|
133
|
+
.hidden {
|
|
123
134
|
display: none;
|
|
124
135
|
}
|
|
125
136
|
|
|
126
137
|
.subtitle {
|
|
127
138
|
color: var(--text-dim);
|
|
128
|
-
margin-bottom:
|
|
139
|
+
margin-bottom: 16px;
|
|
140
|
+
font-size: 13px;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
/* Login Card */
|
|
144
|
+
.login-section {
|
|
145
|
+
display: flex;
|
|
146
|
+
align-items: center;
|
|
147
|
+
justify-content: center;
|
|
148
|
+
min-height: 380px;
|
|
149
|
+
padding: 32px 24px;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
.login-card {
|
|
153
|
+
text-align: center;
|
|
154
|
+
max-width: 280px;
|
|
155
|
+
width: 100%;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
.login-logo {
|
|
159
|
+
width: 48px;
|
|
160
|
+
height: 48px;
|
|
161
|
+
color: var(--text);
|
|
162
|
+
margin: 0 auto 20px;
|
|
163
|
+
display: block;
|
|
164
|
+
filter: drop-shadow(0 0 10px rgba(255, 255, 255, 0.12));
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.login-headline {
|
|
168
|
+
font-size: 20px;
|
|
169
|
+
font-weight: 700;
|
|
170
|
+
color: var(--text);
|
|
171
|
+
margin-bottom: 8px;
|
|
172
|
+
letter-spacing: -0.02em;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.login-sub {
|
|
176
|
+
font-size: 13px;
|
|
177
|
+
color: var(--text-secondary);
|
|
178
|
+
margin-bottom: 24px;
|
|
179
|
+
line-height: 1.5;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
.login-signin-btn {
|
|
183
|
+
width: 100%;
|
|
184
|
+
padding: 12px 20px;
|
|
185
|
+
background: #FFFFFF;
|
|
186
|
+
color: #000000;
|
|
187
|
+
border: none;
|
|
188
|
+
border-radius: 10px;
|
|
189
|
+
font-size: 14px;
|
|
190
|
+
font-weight: 600;
|
|
191
|
+
cursor: pointer;
|
|
192
|
+
transition: all 0.2s;
|
|
193
|
+
margin-bottom: 10px;
|
|
194
|
+
position: relative;
|
|
195
|
+
overflow: hidden;
|
|
196
|
+
letter-spacing: -0.01em;
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.login-signin-btn::after {
|
|
200
|
+
content: '';
|
|
201
|
+
position: absolute;
|
|
202
|
+
top: 0;
|
|
203
|
+
left: -100%;
|
|
204
|
+
width: 100%;
|
|
205
|
+
height: 100%;
|
|
206
|
+
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
|
|
207
|
+
transition: left 0.5s ease;
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
.login-signin-btn:hover {
|
|
211
|
+
background: #E0E0E0;
|
|
212
|
+
box-shadow: 0 0 16px rgba(255, 255, 255, 0.1);
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
.login-signin-btn:hover::after {
|
|
216
|
+
left: 100%;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.login-signin-btn:disabled {
|
|
220
|
+
opacity: 0.6;
|
|
221
|
+
cursor: not-allowed;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.login-create-btn {
|
|
225
|
+
width: 100%;
|
|
226
|
+
padding: 10px 20px;
|
|
227
|
+
background: transparent;
|
|
228
|
+
color: var(--text-secondary);
|
|
229
|
+
border: none;
|
|
230
|
+
border-radius: 10px;
|
|
231
|
+
font-size: 13px;
|
|
232
|
+
font-weight: 500;
|
|
233
|
+
cursor: pointer;
|
|
234
|
+
transition: all 0.2s;
|
|
235
|
+
margin-bottom: 16px;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
.login-create-btn:hover {
|
|
239
|
+
color: var(--text);
|
|
240
|
+
background: rgba(255, 255, 255, 0.06);
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
.login-note {
|
|
244
|
+
font-size: 11px;
|
|
245
|
+
color: var(--text-dim);
|
|
246
|
+
line-height: 1.5;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
.login-note a {
|
|
250
|
+
color: var(--text-secondary);
|
|
251
|
+
text-decoration: underline;
|
|
252
|
+
text-underline-offset: 2px;
|
|
253
|
+
}
|
|
254
|
+
|
|
255
|
+
.login-note a:hover {
|
|
256
|
+
color: var(--text);
|
|
129
257
|
}
|
|
130
258
|
|
|
131
259
|
/* Buttons */
|
|
@@ -135,17 +263,22 @@ h3 {
|
|
|
135
263
|
justify-content: center;
|
|
136
264
|
gap: 8px;
|
|
137
265
|
width: 100%;
|
|
138
|
-
padding:
|
|
266
|
+
padding: 10px 14px;
|
|
139
267
|
border: none;
|
|
140
268
|
border-radius: 8px;
|
|
141
|
-
font-size:
|
|
269
|
+
font-size: 13px;
|
|
142
270
|
font-weight: 500;
|
|
143
271
|
cursor: pointer;
|
|
144
|
-
transition: all 0.
|
|
272
|
+
transition: all 0.2s ease;
|
|
145
273
|
position: relative;
|
|
146
274
|
overflow: hidden;
|
|
147
275
|
}
|
|
148
276
|
|
|
277
|
+
.btn:disabled {
|
|
278
|
+
opacity: 0.5;
|
|
279
|
+
cursor: not-allowed;
|
|
280
|
+
}
|
|
281
|
+
|
|
149
282
|
.btn-primary {
|
|
150
283
|
background: var(--primary);
|
|
151
284
|
color: #000000;
|
|
@@ -160,13 +293,13 @@ h3 {
|
|
|
160
293
|
left: -100%;
|
|
161
294
|
width: 100%;
|
|
162
295
|
height: 100%;
|
|
163
|
-
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.
|
|
296
|
+
background: linear-gradient(90deg, transparent, rgba(255,255,255,0.15), transparent);
|
|
164
297
|
transition: left 0.5s ease;
|
|
165
298
|
}
|
|
166
299
|
|
|
167
300
|
.btn-primary:hover {
|
|
168
301
|
background: var(--primary-dark);
|
|
169
|
-
box-shadow: 0 0
|
|
302
|
+
box-shadow: 0 0 12px rgba(255,255,255,0.1);
|
|
170
303
|
}
|
|
171
304
|
|
|
172
305
|
.btn-primary:hover::after {
|
|
@@ -177,19 +310,28 @@ h3 {
|
|
|
177
310
|
background: var(--glass-strong);
|
|
178
311
|
color: var(--text);
|
|
179
312
|
border: 1px solid var(--border);
|
|
180
|
-
backdrop-filter: blur(8px);
|
|
181
|
-
-webkit-backdrop-filter: blur(8px);
|
|
182
313
|
}
|
|
183
314
|
|
|
184
315
|
.btn-secondary:hover {
|
|
185
|
-
background:
|
|
316
|
+
background: rgba(255,255,255,0.1);
|
|
186
317
|
border-color: var(--border-strong);
|
|
187
|
-
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.btn-ghost {
|
|
321
|
+
background: transparent;
|
|
322
|
+
color: var(--text-secondary);
|
|
323
|
+
border: 1px solid var(--border);
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
.btn-ghost:hover {
|
|
327
|
+
color: var(--text);
|
|
328
|
+
border-color: var(--border-strong);
|
|
329
|
+
background: var(--glass);
|
|
188
330
|
}
|
|
189
331
|
|
|
190
332
|
.btn-icon {
|
|
191
|
-
width:
|
|
192
|
-
height:
|
|
333
|
+
width: 28px;
|
|
334
|
+
height: 28px;
|
|
193
335
|
padding: 0;
|
|
194
336
|
display: flex;
|
|
195
337
|
align-items: center;
|
|
@@ -208,32 +350,30 @@ h3 {
|
|
|
208
350
|
}
|
|
209
351
|
|
|
210
352
|
.btn-icon svg {
|
|
211
|
-
width:
|
|
212
|
-
height:
|
|
353
|
+
width: 16px;
|
|
354
|
+
height: 16px;
|
|
213
355
|
stroke-width: 1.5;
|
|
214
356
|
}
|
|
215
357
|
|
|
216
358
|
.icon {
|
|
217
|
-
width:
|
|
218
|
-
height:
|
|
359
|
+
width: 16px;
|
|
360
|
+
height: 16px;
|
|
219
361
|
}
|
|
220
362
|
|
|
221
363
|
/* User Info */
|
|
222
364
|
.user-info {
|
|
223
365
|
display: flex;
|
|
224
366
|
align-items: center;
|
|
225
|
-
gap:
|
|
226
|
-
padding:
|
|
367
|
+
gap: 10px;
|
|
368
|
+
padding: 12px;
|
|
227
369
|
background: var(--glass-strong);
|
|
228
|
-
backdrop-filter: blur(12px);
|
|
229
|
-
-webkit-backdrop-filter: blur(12px);
|
|
230
370
|
border: 1px solid var(--border);
|
|
231
371
|
border-radius: 8px;
|
|
232
372
|
}
|
|
233
373
|
|
|
234
374
|
.avatar {
|
|
235
|
-
width:
|
|
236
|
-
height:
|
|
375
|
+
width: 34px;
|
|
376
|
+
height: 34px;
|
|
237
377
|
border-radius: 50%;
|
|
238
378
|
background: var(--border);
|
|
239
379
|
border: 1px solid var(--border);
|
|
@@ -245,35 +385,103 @@ h3 {
|
|
|
245
385
|
|
|
246
386
|
.user-name {
|
|
247
387
|
font-weight: 600;
|
|
388
|
+
font-size: 13px;
|
|
248
389
|
}
|
|
249
390
|
|
|
250
391
|
.user-email {
|
|
251
|
-
font-size:
|
|
392
|
+
font-size: 11px;
|
|
252
393
|
color: var(--text-dim);
|
|
253
394
|
}
|
|
254
395
|
|
|
255
|
-
/*
|
|
396
|
+
/* Tools Grid */
|
|
397
|
+
.tools-grid {
|
|
398
|
+
display: grid;
|
|
399
|
+
grid-template-columns: repeat(3, 1fr);
|
|
400
|
+
gap: 6px;
|
|
401
|
+
margin-bottom: 4px;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
.tool-btn {
|
|
405
|
+
display: flex;
|
|
406
|
+
flex-direction: column;
|
|
407
|
+
align-items: center;
|
|
408
|
+
justify-content: center;
|
|
409
|
+
gap: 4px;
|
|
410
|
+
padding: 10px 4px;
|
|
411
|
+
background: var(--glass);
|
|
412
|
+
border: 1px solid var(--border);
|
|
413
|
+
border-radius: 8px;
|
|
414
|
+
color: var(--text-secondary);
|
|
415
|
+
font-size: 10px;
|
|
416
|
+
cursor: pointer;
|
|
417
|
+
transition: all 0.2s ease;
|
|
418
|
+
position: relative;
|
|
419
|
+
overflow: hidden;
|
|
420
|
+
}
|
|
421
|
+
|
|
422
|
+
.tool-btn svg {
|
|
423
|
+
width: 18px;
|
|
424
|
+
height: 18px;
|
|
425
|
+
flex-shrink: 0;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.tool-btn:hover {
|
|
429
|
+
color: var(--text);
|
|
430
|
+
background: var(--glass-strong);
|
|
431
|
+
border-color: var(--border-strong);
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
.tool-btn:active {
|
|
435
|
+
transform: scale(0.96);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.tool-btn.active {
|
|
439
|
+
color: var(--text);
|
|
440
|
+
background: rgba(255,255,255,0.1);
|
|
441
|
+
border-color: var(--text);
|
|
442
|
+
box-shadow: 0 0 8px rgba(255,255,255,0.06);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
.tool-btn:disabled {
|
|
446
|
+
opacity: 0.4;
|
|
447
|
+
cursor: not-allowed;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
.tool-btn .tool-feedback {
|
|
451
|
+
position: absolute;
|
|
452
|
+
inset: 0;
|
|
453
|
+
display: flex;
|
|
454
|
+
align-items: center;
|
|
455
|
+
justify-content: center;
|
|
456
|
+
background: rgba(76, 175, 80, 0.9);
|
|
457
|
+
color: #fff;
|
|
458
|
+
font-size: 11px;
|
|
459
|
+
font-weight: 600;
|
|
460
|
+
border-radius: 7px;
|
|
461
|
+
animation: fadeIn 0.15s ease;
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
/* Features — compact toggles */
|
|
256
465
|
.features {
|
|
257
466
|
display: flex;
|
|
258
467
|
flex-direction: column;
|
|
259
|
-
gap:
|
|
468
|
+
gap: 2px;
|
|
260
469
|
}
|
|
261
470
|
|
|
262
471
|
.feature-toggle label {
|
|
263
472
|
display: flex;
|
|
264
473
|
align-items: center;
|
|
265
|
-
gap:
|
|
266
|
-
padding:
|
|
267
|
-
background:
|
|
268
|
-
border:
|
|
269
|
-
border-radius:
|
|
474
|
+
gap: 10px;
|
|
475
|
+
padding: 8px 10px;
|
|
476
|
+
background: transparent;
|
|
477
|
+
border: none;
|
|
478
|
+
border-radius: 6px;
|
|
270
479
|
cursor: pointer;
|
|
271
|
-
transition: all 0.
|
|
480
|
+
transition: all 0.15s;
|
|
272
481
|
}
|
|
273
482
|
|
|
274
483
|
.feature-toggle label:hover {
|
|
275
|
-
background: var(--glass);
|
|
276
|
-
border-color: var(--border-strong);
|
|
484
|
+
background: var(--glass-strong);
|
|
277
485
|
}
|
|
278
486
|
|
|
279
487
|
.feature-toggle input {
|
|
@@ -282,11 +490,11 @@ h3 {
|
|
|
282
490
|
|
|
283
491
|
.toggle {
|
|
284
492
|
position: relative;
|
|
285
|
-
width:
|
|
286
|
-
height:
|
|
287
|
-
background: rgba(255,255,255,0.
|
|
288
|
-
border-radius:
|
|
289
|
-
transition: background 0.
|
|
493
|
+
width: 32px;
|
|
494
|
+
height: 18px;
|
|
495
|
+
background: rgba(255,255,255,0.12);
|
|
496
|
+
border-radius: 9px;
|
|
497
|
+
transition: background 0.25s;
|
|
290
498
|
flex-shrink: 0;
|
|
291
499
|
}
|
|
292
500
|
|
|
@@ -295,12 +503,12 @@ h3 {
|
|
|
295
503
|
position: absolute;
|
|
296
504
|
top: 2px;
|
|
297
505
|
left: 2px;
|
|
298
|
-
width:
|
|
299
|
-
height:
|
|
300
|
-
background:
|
|
506
|
+
width: 14px;
|
|
507
|
+
height: 14px;
|
|
508
|
+
background: #888;
|
|
301
509
|
border-radius: 50%;
|
|
302
|
-
transition:
|
|
303
|
-
box-shadow: 0 1px
|
|
510
|
+
transition: all 0.25s;
|
|
511
|
+
box-shadow: 0 1px 3px rgba(0,0,0,0.3);
|
|
304
512
|
}
|
|
305
513
|
|
|
306
514
|
input:checked + .toggle {
|
|
@@ -308,54 +516,62 @@ input:checked + .toggle {
|
|
|
308
516
|
}
|
|
309
517
|
|
|
310
518
|
input:checked + .toggle::after {
|
|
311
|
-
transform: translateX(
|
|
519
|
+
transform: translateX(14px);
|
|
520
|
+
background: #000;
|
|
312
521
|
}
|
|
313
522
|
|
|
314
523
|
.feature-info {
|
|
315
524
|
flex: 1;
|
|
316
525
|
}
|
|
317
526
|
|
|
527
|
+
.feature-info strong {
|
|
528
|
+
font-size: 13px;
|
|
529
|
+
font-weight: 500;
|
|
530
|
+
}
|
|
531
|
+
|
|
318
532
|
.feature-info small {
|
|
319
533
|
display: block;
|
|
320
534
|
color: var(--text-dim);
|
|
321
|
-
font-size:
|
|
535
|
+
font-size: 11px;
|
|
536
|
+
line-height: 1.3;
|
|
322
537
|
}
|
|
323
538
|
|
|
324
539
|
/* Status */
|
|
325
540
|
.status {
|
|
326
541
|
display: flex;
|
|
327
542
|
flex-direction: column;
|
|
328
|
-
gap:
|
|
543
|
+
gap: 8px;
|
|
329
544
|
}
|
|
330
545
|
|
|
331
546
|
.status-item {
|
|
332
547
|
display: flex;
|
|
333
548
|
align-items: center;
|
|
334
549
|
gap: 8px;
|
|
550
|
+
font-size: 12px;
|
|
335
551
|
}
|
|
336
552
|
|
|
337
553
|
.status-dot {
|
|
338
|
-
width:
|
|
339
|
-
height:
|
|
554
|
+
width: 6px;
|
|
555
|
+
height: 6px;
|
|
340
556
|
border-radius: 50%;
|
|
341
|
-
background: rgba(255,255,255,0.
|
|
557
|
+
background: rgba(255,255,255,0.12);
|
|
342
558
|
transition: all 0.3s;
|
|
559
|
+
flex-shrink: 0;
|
|
343
560
|
}
|
|
344
561
|
|
|
345
562
|
.status-dot.connected {
|
|
346
563
|
background: var(--success);
|
|
347
|
-
box-shadow: 0 0
|
|
348
|
-
animation: glowPulse 3s infinite;
|
|
564
|
+
box-shadow: 0 0 6px rgba(76, 175, 80, 0.3);
|
|
349
565
|
}
|
|
350
566
|
|
|
351
567
|
.status-dot.warning {
|
|
352
568
|
background: var(--warning);
|
|
353
|
-
box-shadow: 0 0
|
|
569
|
+
box-shadow: 0 0 6px rgba(255, 193, 7, 0.2);
|
|
354
570
|
}
|
|
355
571
|
|
|
356
572
|
.status-dot.error {
|
|
357
573
|
background: var(--error);
|
|
358
|
-
box-shadow: 0 0
|
|
574
|
+
box-shadow: 0 0 6px rgba(244, 67, 54, 0.2);
|
|
359
575
|
}
|
|
360
576
|
|
|
361
577
|
.status-dot.connecting {
|
|
@@ -364,54 +580,56 @@ input:checked + .toggle::after {
|
|
|
364
580
|
|
|
365
581
|
.status-detail {
|
|
366
582
|
margin-left: auto;
|
|
367
|
-
font-size:
|
|
583
|
+
font-size: 11px;
|
|
368
584
|
color: var(--text-dim);
|
|
369
585
|
}
|
|
370
586
|
|
|
371
587
|
/* Actions */
|
|
372
588
|
.actions {
|
|
373
589
|
display: flex;
|
|
374
|
-
gap:
|
|
590
|
+
gap: 8px;
|
|
375
591
|
}
|
|
376
592
|
|
|
377
593
|
.actions .btn {
|
|
378
594
|
flex: 1;
|
|
595
|
+
font-size: 12px;
|
|
596
|
+
padding: 8px 12px;
|
|
379
597
|
}
|
|
380
598
|
|
|
381
599
|
/* Guide */
|
|
382
600
|
.guide {
|
|
383
|
-
background: var(--glass
|
|
601
|
+
background: var(--glass);
|
|
384
602
|
border: 1px solid var(--border);
|
|
385
|
-
padding:
|
|
603
|
+
padding: 12px;
|
|
386
604
|
border-radius: 8px;
|
|
387
605
|
}
|
|
388
606
|
|
|
389
607
|
.guide h3 {
|
|
390
|
-
margin-bottom:
|
|
608
|
+
margin-bottom: 6px;
|
|
391
609
|
}
|
|
392
610
|
|
|
393
611
|
.guide p {
|
|
394
|
-
font-size:
|
|
612
|
+
font-size: 11px;
|
|
395
613
|
color: var(--text-dim);
|
|
396
|
-
margin-bottom:
|
|
614
|
+
margin-bottom: 3px;
|
|
397
615
|
}
|
|
398
616
|
|
|
399
617
|
kbd {
|
|
400
618
|
display: inline-block;
|
|
401
|
-
padding:
|
|
619
|
+
padding: 1px 5px;
|
|
402
620
|
background: rgba(255,255,255,0.06);
|
|
403
621
|
border: 1px solid var(--border);
|
|
404
|
-
border-radius:
|
|
405
|
-
font-family: monospace;
|
|
406
|
-
font-size:
|
|
622
|
+
border-radius: 3px;
|
|
623
|
+
font-family: 'Geist Mono', 'Menlo', monospace;
|
|
624
|
+
font-size: 10px;
|
|
407
625
|
}
|
|
408
626
|
|
|
409
627
|
/* Settings */
|
|
410
628
|
.settings-header {
|
|
411
629
|
display: flex;
|
|
412
630
|
align-items: center;
|
|
413
|
-
gap:
|
|
414
|
-
margin-bottom:
|
|
631
|
+
gap: 10px;
|
|
632
|
+
margin-bottom: 16px;
|
|
415
633
|
}
|
|
416
634
|
|
|
417
635
|
.settings-header h2 {
|
|
@@ -419,12 +637,12 @@ kbd {
|
|
|
419
637
|
}
|
|
420
638
|
|
|
421
639
|
.setting-group {
|
|
422
|
-
margin-bottom:
|
|
640
|
+
margin-bottom: 20px;
|
|
423
641
|
}
|
|
424
642
|
|
|
425
643
|
.setting-group label {
|
|
426
644
|
display: block;
|
|
427
|
-
margin-bottom:
|
|
645
|
+
margin-bottom: 10px;
|
|
428
646
|
color: var(--text-dim);
|
|
429
647
|
font-size: 12px;
|
|
430
648
|
}
|
|
@@ -433,12 +651,12 @@ kbd {
|
|
|
433
651
|
.setting-group input[type="number"],
|
|
434
652
|
.setting-group select {
|
|
435
653
|
width: 100%;
|
|
436
|
-
padding:
|
|
654
|
+
padding: 7px 10px;
|
|
437
655
|
background: var(--glass-strong);
|
|
438
656
|
border: 1px solid var(--border);
|
|
439
657
|
border-radius: 6px;
|
|
440
658
|
color: var(--text);
|
|
441
|
-
font-size:
|
|
659
|
+
font-size: 13px;
|
|
442
660
|
margin-top: 4px;
|
|
443
661
|
transition: border-color 0.2s;
|
|
444
662
|
}
|
|
@@ -465,17 +683,17 @@ kbd {
|
|
|
465
683
|
|
|
466
684
|
.backend-select-wrapper select {
|
|
467
685
|
width: 100%;
|
|
468
|
-
padding:
|
|
686
|
+
padding: 7px 10px;
|
|
469
687
|
background: var(--glass-strong);
|
|
470
688
|
border: 1px solid var(--border);
|
|
471
689
|
border-radius: 6px;
|
|
472
690
|
color: var(--text);
|
|
473
|
-
font-size:
|
|
691
|
+
font-size: 13px;
|
|
474
692
|
cursor: pointer;
|
|
475
693
|
appearance: none;
|
|
476
694
|
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23888' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
|
|
477
695
|
background-repeat: no-repeat;
|
|
478
|
-
background-position: right
|
|
696
|
+
background-position: right 10px center;
|
|
479
697
|
transition: border-color 0.2s;
|
|
480
698
|
}
|
|
481
699
|
|
|
@@ -488,8 +706,8 @@ kbd {
|
|
|
488
706
|
display: flex;
|
|
489
707
|
align-items: center;
|
|
490
708
|
gap: 8px;
|
|
491
|
-
margin-top:
|
|
492
|
-
font-size:
|
|
709
|
+
margin-top: 6px;
|
|
710
|
+
font-size: 11px;
|
|
493
711
|
color: var(--text-dim);
|
|
494
712
|
}
|
|
495
713
|
|
|
@@ -497,23 +715,47 @@ kbd {
|
|
|
497
715
|
.divider {
|
|
498
716
|
height: 1px;
|
|
499
717
|
background: var(--border);
|
|
500
|
-
margin:
|
|
718
|
+
margin: 12px 0;
|
|
501
719
|
}
|
|
502
720
|
|
|
721
|
+
/* Links */
|
|
503
722
|
.help-text {
|
|
504
723
|
text-align: center;
|
|
505
724
|
font-size: 12px;
|
|
506
725
|
color: var(--text-dim);
|
|
507
|
-
margin-top:
|
|
726
|
+
margin-top: 12px;
|
|
508
727
|
}
|
|
509
728
|
|
|
510
729
|
.help-text a {
|
|
730
|
+
color: var(--link);
|
|
731
|
+
text-decoration: underline;
|
|
732
|
+
text-decoration-color: rgba(160,160,160,0.3);
|
|
733
|
+
text-underline-offset: 2px;
|
|
734
|
+
transition: all 0.2s;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
.help-text a:hover {
|
|
738
|
+
color: var(--link-hover);
|
|
739
|
+
text-decoration-color: rgba(255,255,255,0.5);
|
|
740
|
+
}
|
|
741
|
+
|
|
742
|
+
/* Footer links */
|
|
743
|
+
.footer-links {
|
|
744
|
+
display: flex;
|
|
745
|
+
justify-content: center;
|
|
746
|
+
gap: 16px;
|
|
747
|
+
padding: 12px 16px;
|
|
748
|
+
border-top: 1px solid var(--border);
|
|
749
|
+
margin-top: 4px;
|
|
750
|
+
}
|
|
751
|
+
|
|
752
|
+
.footer-links a {
|
|
511
753
|
color: var(--text-dim);
|
|
512
754
|
text-decoration: none;
|
|
755
|
+
font-size: 11px;
|
|
513
756
|
transition: color 0.2s;
|
|
514
757
|
}
|
|
515
758
|
|
|
516
|
-
.
|
|
759
|
+
.footer-links a:hover {
|
|
517
760
|
color: var(--text);
|
|
518
|
-
text-decoration: underline;
|
|
519
761
|
}
|