Spaces:
Running
Running
Restructure settings into collapsible groups, fix dark theme hardcoded colors
Browse filesSettings panel reorganized into 5 collapsible sections: Agent Models,
Models & Providers, API Keys, Agent Settings, Theme.
Replace hardcoded color values (white, #666, #888, #fff, #bbb, rgba(255,...))
with CSS variables (var(--bg-primary), var(--border-primary), var(--text-muted),
var(--theme-accent)) for proper dark theme support. Style checkboxes, dropdowns,
number inputs, and panel headers/buttons to be theme-aware.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- frontend/app.js +11 -0
- frontend/index.html +155 -131
- frontend/style.css +103 -30
frontend/app.js
CHANGED
|
@@ -263,6 +263,17 @@ function initializeEventListeners() {
|
|
| 263 |
});
|
| 264 |
}
|
| 265 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 266 |
// Double-click on collapse toggle: collapse/uncollapse all widgets in the same chat
|
| 267 |
document.addEventListener('dblclick', (e) => {
|
| 268 |
const toggle = e.target.closest('.widget-collapse-toggle');
|
|
|
|
| 263 |
});
|
| 264 |
}
|
| 265 |
|
| 266 |
+
// Settings group collapse/expand
|
| 267 |
+
document.addEventListener('click', (e) => {
|
| 268 |
+
const header = e.target.closest('.settings-group-header');
|
| 269 |
+
if (!header) return;
|
| 270 |
+
const group = header.closest('.settings-group');
|
| 271 |
+
if (!group) return;
|
| 272 |
+
group.classList.toggle('collapsed');
|
| 273 |
+
const toggle = header.querySelector('.widget-collapse-toggle');
|
| 274 |
+
if (toggle) toggle.classList.toggle('collapsed');
|
| 275 |
+
});
|
| 276 |
+
|
| 277 |
// Double-click on collapse toggle: collapse/uncollapse all widgets in the same chat
|
| 278 |
document.addEventListener('dblclick', (e) => {
|
| 279 |
const toggle = e.target.closest('.widget-collapse-toggle');
|
frontend/index.html
CHANGED
|
@@ -215,152 +215,176 @@
|
|
| 215 |
</div>
|
| 216 |
<div class="settings-panel-body" id="settingsPanelBody">
|
| 217 |
<div class="settings-body">
|
| 218 |
-
<!--
|
| 219 |
-
<div class="settings-
|
| 220 |
-
<
|
| 221 |
-
<
|
| 222 |
-
<span class="
|
| 223 |
-
</
|
| 224 |
-
<div
|
| 225 |
-
|
| 226 |
-
|
| 227 |
-
|
| 228 |
-
|
| 229 |
-
|
| 230 |
-
<label class="settings-label">
|
| 231 |
-
<span class="label-text">MODELS</span>
|
| 232 |
-
<span class="label-description">Models available from your providers</span>
|
| 233 |
-
</label>
|
| 234 |
-
<div id="models-list" class="settings-list"></div>
|
| 235 |
-
<button type="button" class="settings-add-btn" onclick="showModelDialog()">+ Add Model</button>
|
| 236 |
-
</div>
|
| 237 |
-
|
| 238 |
-
<!-- Agent Model Selection -->
|
| 239 |
-
<div class="settings-section">
|
| 240 |
-
<label class="settings-label">
|
| 241 |
-
<span class="label-text">AGENT MODELS</span>
|
| 242 |
-
<span class="label-description">Select which model to use for each agent type</span>
|
| 243 |
-
</label>
|
| 244 |
-
<div class="agent-models-grid" id="agentModelsGrid">
|
| 245 |
-
<!-- Generated dynamically from AGENT_REGISTRY -->
|
| 246 |
</div>
|
| 247 |
</div>
|
| 248 |
|
| 249 |
-
<!--
|
| 250 |
-
<div class="settings-
|
| 251 |
-
<
|
| 252 |
-
<
|
| 253 |
-
<span class="
|
| 254 |
-
</
|
| 255 |
-
<
|
| 256 |
-
|
| 257 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
<!-- Image Model Settings -->
|
| 275 |
-
<div class="settings-section">
|
| 276 |
-
<label class="settings-label">
|
| 277 |
-
<span class="label-text">IMAGE GENERATION MODEL (OPTIONAL)</span>
|
| 278 |
-
<span class="label-description">Model for text-to-image generation in IMAGE agents</span>
|
| 279 |
-
</label>
|
| 280 |
-
<select id="setting-image-gen-model" class="settings-select"></select>
|
| 281 |
-
</div>
|
| 282 |
-
|
| 283 |
-
<div class="settings-section">
|
| 284 |
-
<label class="settings-label">
|
| 285 |
-
<span class="label-text">IMAGE EDIT MODEL (OPTIONAL)</span>
|
| 286 |
-
<span class="label-description">Model for image-to-image editing in IMAGE agents</span>
|
| 287 |
-
</label>
|
| 288 |
-
<select id="setting-image-edit-model" class="settings-select"></select>
|
| 289 |
-
</div>
|
| 290 |
-
|
| 291 |
-
<!-- Research Settings -->
|
| 292 |
-
<div class="settings-section">
|
| 293 |
-
<label class="settings-label">
|
| 294 |
-
<span class="label-text">RESEARCH SUB-AGENT MODEL (OPTIONAL)</span>
|
| 295 |
-
<span class="label-description">Smaller/faster model for analyzing web pages during research</span>
|
| 296 |
-
</label>
|
| 297 |
-
<select id="setting-research-sub-agent-model" class="settings-select"></select>
|
| 298 |
-
</div>
|
| 299 |
-
|
| 300 |
-
<div class="settings-section">
|
| 301 |
-
<label class="settings-label">
|
| 302 |
-
<span class="label-text">RESEARCH PARALLEL WORKERS (OPTIONAL)</span>
|
| 303 |
-
<span class="label-description">Number of web pages to analyze in parallel (default: 8)</span>
|
| 304 |
-
</label>
|
| 305 |
-
<input type="number" id="setting-research-parallel-workers" class="settings-input" placeholder="8" min="1" max="20">
|
| 306 |
-
</div>
|
| 307 |
-
|
| 308 |
-
<div class="settings-section">
|
| 309 |
-
<label class="settings-label">
|
| 310 |
-
<span class="label-text">RESEARCH MAX WEBSITES (OPTIONAL)</span>
|
| 311 |
-
<span class="label-description">Maximum number of websites to analyze per research session (default: 50)</span>
|
| 312 |
-
</label>
|
| 313 |
-
<input type="number" id="setting-research-max-websites" class="settings-input" placeholder="50" min="10" max="200">
|
| 314 |
</div>
|
| 315 |
|
| 316 |
-
<
|
| 317 |
-
|
| 318 |
-
|
| 319 |
-
<
|
| 320 |
-
|
| 321 |
-
<div
|
| 322 |
-
|
| 323 |
-
|
| 324 |
-
<
|
| 325 |
-
|
| 326 |
-
|
| 327 |
-
<
|
| 328 |
-
<
|
| 329 |
</div>
|
| 330 |
-
<div class="
|
| 331 |
-
<
|
| 332 |
-
|
|
|
|
|
|
|
|
|
|
| 333 |
</div>
|
| 334 |
-
<div class="
|
| 335 |
-
<
|
| 336 |
-
|
|
|
|
|
|
|
|
|
|
| 337 |
</div>
|
| 338 |
-
|
| 339 |
-
|
| 340 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 341 |
</div>
|
| 342 |
-
<div class="
|
| 343 |
-
<
|
| 344 |
-
|
|
|
|
|
|
|
|
|
|
| 345 |
</div>
|
| 346 |
-
<div class="
|
| 347 |
-
<
|
| 348 |
-
|
|
|
|
|
|
|
|
|
|
| 349 |
</div>
|
| 350 |
-
<div class="
|
| 351 |
-
<
|
| 352 |
-
|
|
|
|
|
|
|
|
|
|
| 353 |
</div>
|
| 354 |
-
<div class="
|
| 355 |
-
<
|
| 356 |
-
|
|
|
|
|
|
|
|
|
|
| 357 |
</div>
|
| 358 |
-
|
| 359 |
-
|
| 360 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 361 |
</div>
|
| 362 |
</div>
|
| 363 |
-
<input type="hidden" id="setting-theme-color" value="forest">
|
| 364 |
</div>
|
| 365 |
|
| 366 |
<div class="settings-actions">
|
|
|
|
| 215 |
</div>
|
| 216 |
<div class="settings-panel-body" id="settingsPanelBody">
|
| 217 |
<div class="settings-body">
|
| 218 |
+
<!-- 1. Agent Models -->
|
| 219 |
+
<div class="settings-group">
|
| 220 |
+
<div class="settings-group-header">
|
| 221 |
+
<div class="widget-collapse-toggle"></div>
|
| 222 |
+
<span class="settings-group-title">Agent Models</span>
|
| 223 |
+
</div>
|
| 224 |
+
<div class="settings-group-body">
|
| 225 |
+
<div class="settings-section">
|
| 226 |
+
<div class="agent-models-grid" id="agentModelsGrid">
|
| 227 |
+
<!-- Generated dynamically from AGENT_REGISTRY -->
|
| 228 |
+
</div>
|
| 229 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 230 |
</div>
|
| 231 |
</div>
|
| 232 |
|
| 233 |
+
<!-- 2. Models & Providers -->
|
| 234 |
+
<div class="settings-group collapsed">
|
| 235 |
+
<div class="settings-group-header">
|
| 236 |
+
<div class="widget-collapse-toggle collapsed"></div>
|
| 237 |
+
<span class="settings-group-title">Models & Providers</span>
|
| 238 |
+
</div>
|
| 239 |
+
<div class="settings-group-body">
|
| 240 |
+
<div class="settings-section">
|
| 241 |
+
<label class="settings-label">
|
| 242 |
+
<span class="label-text">PROVIDERS</span>
|
| 243 |
+
<span class="label-description">API endpoints for LLM services</span>
|
| 244 |
+
</label>
|
| 245 |
+
<div id="providers-list" class="settings-list"></div>
|
| 246 |
+
<button type="button" class="settings-add-btn" onclick="showProviderDialog()">+ Add Provider</button>
|
| 247 |
+
</div>
|
| 248 |
+
<div class="settings-section">
|
| 249 |
+
<label class="settings-label">
|
| 250 |
+
<span class="label-text">MODELS</span>
|
| 251 |
+
<span class="label-description">Models available from your providers</span>
|
| 252 |
+
</label>
|
| 253 |
+
<div id="models-list" class="settings-list"></div>
|
| 254 |
+
<button type="button" class="settings-add-btn" onclick="showModelDialog()">+ Add Model</button>
|
| 255 |
+
</div>
|
| 256 |
+
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 257 |
</div>
|
| 258 |
|
| 259 |
+
<!-- 3. API Keys -->
|
| 260 |
+
<div class="settings-group collapsed">
|
| 261 |
+
<div class="settings-group-header">
|
| 262 |
+
<div class="widget-collapse-toggle collapsed"></div>
|
| 263 |
+
<span class="settings-group-title">API Keys</span>
|
| 264 |
+
</div>
|
| 265 |
+
<div class="settings-group-body">
|
| 266 |
+
<div class="settings-section">
|
| 267 |
+
<label class="settings-label">
|
| 268 |
+
<span class="label-text">E2B API KEY</span>
|
| 269 |
+
<span class="label-description">Required for code execution in CODE agents</span>
|
| 270 |
+
</label>
|
| 271 |
+
<input type="password" id="setting-e2b-key" class="settings-input" placeholder="Leave empty if not using code execution">
|
| 272 |
</div>
|
| 273 |
+
<div class="settings-section">
|
| 274 |
+
<label class="settings-label">
|
| 275 |
+
<span class="label-text">SERPER API KEY</span>
|
| 276 |
+
<span class="label-description">Required for web search in RESEARCH agents</span>
|
| 277 |
+
</label>
|
| 278 |
+
<input type="password" id="setting-serper-key" class="settings-input" placeholder="Leave empty if not using research">
|
| 279 |
</div>
|
| 280 |
+
<div class="settings-section">
|
| 281 |
+
<label class="settings-label">
|
| 282 |
+
<span class="label-text">HUGGINGFACE TOKEN</span>
|
| 283 |
+
<span class="label-description">Required for image generation in IMAGE agents</span>
|
| 284 |
+
</label>
|
| 285 |
+
<input type="password" id="setting-hf-token" class="settings-input" placeholder="Leave empty to use provider token">
|
| 286 |
</div>
|
| 287 |
+
</div>
|
| 288 |
+
</div>
|
| 289 |
+
|
| 290 |
+
<!-- 4. Agent Settings -->
|
| 291 |
+
<div class="settings-group collapsed">
|
| 292 |
+
<div class="settings-group-header">
|
| 293 |
+
<div class="widget-collapse-toggle collapsed"></div>
|
| 294 |
+
<span class="settings-group-title">Agent Settings</span>
|
| 295 |
+
</div>
|
| 296 |
+
<div class="settings-group-body">
|
| 297 |
+
<div class="settings-section">
|
| 298 |
+
<label class="settings-label">
|
| 299 |
+
<span class="label-text">IMAGE GENERATION MODEL</span>
|
| 300 |
+
<span class="label-description">Model for text-to-image generation</span>
|
| 301 |
+
</label>
|
| 302 |
+
<select id="setting-image-gen-model" class="settings-select"></select>
|
| 303 |
</div>
|
| 304 |
+
<div class="settings-section">
|
| 305 |
+
<label class="settings-label">
|
| 306 |
+
<span class="label-text">IMAGE EDIT MODEL</span>
|
| 307 |
+
<span class="label-description">Model for image-to-image editing</span>
|
| 308 |
+
</label>
|
| 309 |
+
<select id="setting-image-edit-model" class="settings-select"></select>
|
| 310 |
</div>
|
| 311 |
+
<div class="settings-section">
|
| 312 |
+
<label class="settings-label">
|
| 313 |
+
<span class="label-text">RESEARCH SUB-AGENT MODEL</span>
|
| 314 |
+
<span class="label-description">Smaller/faster model for analyzing web pages during research</span>
|
| 315 |
+
</label>
|
| 316 |
+
<select id="setting-research-sub-agent-model" class="settings-select"></select>
|
| 317 |
</div>
|
| 318 |
+
<div class="settings-section">
|
| 319 |
+
<label class="settings-label">
|
| 320 |
+
<span class="label-text">RESEARCH PARALLEL WORKERS</span>
|
| 321 |
+
<span class="label-description">Number of web pages to analyze in parallel (default: 8)</span>
|
| 322 |
+
</label>
|
| 323 |
+
<input type="number" id="setting-research-parallel-workers" class="settings-input" placeholder="8" min="1" max="20">
|
| 324 |
</div>
|
| 325 |
+
<div class="settings-section">
|
| 326 |
+
<label class="settings-label">
|
| 327 |
+
<span class="label-text">RESEARCH MAX WEBSITES</span>
|
| 328 |
+
<span class="label-description">Max websites to analyze per session (default: 50)</span>
|
| 329 |
+
</label>
|
| 330 |
+
<input type="number" id="setting-research-max-websites" class="settings-input" placeholder="50" min="10" max="200">
|
| 331 |
</div>
|
| 332 |
+
</div>
|
| 333 |
+
</div>
|
| 334 |
+
|
| 335 |
+
<!-- 5. Theme -->
|
| 336 |
+
<div class="settings-group collapsed">
|
| 337 |
+
<div class="settings-group-header">
|
| 338 |
+
<div class="widget-collapse-toggle collapsed"></div>
|
| 339 |
+
<span class="settings-group-title">Theme</span>
|
| 340 |
+
</div>
|
| 341 |
+
<div class="settings-group-body">
|
| 342 |
+
<div class="settings-section">
|
| 343 |
+
<div class="theme-color-picker" id="theme-color-picker">
|
| 344 |
+
<div class="theme-option" data-theme="forest">
|
| 345 |
+
<div class="theme-preview" style="border-color: #1b5e20; background: #e8f5e9;"></div>
|
| 346 |
+
<span class="theme-name">Forest</span>
|
| 347 |
+
</div>
|
| 348 |
+
<div class="theme-option" data-theme="sapphire">
|
| 349 |
+
<div class="theme-preview" style="border-color: #0d47a1; background: #e3f2fd;"></div>
|
| 350 |
+
<span class="theme-name">Sapphire</span>
|
| 351 |
+
</div>
|
| 352 |
+
<div class="theme-option" data-theme="ocean">
|
| 353 |
+
<div class="theme-preview" style="border-color: #00796b; background: #e0f2f1;"></div>
|
| 354 |
+
<span class="theme-name">Ocean</span>
|
| 355 |
+
</div>
|
| 356 |
+
<div class="theme-option" data-theme="midnight">
|
| 357 |
+
<div class="theme-preview" style="border-color: #283593; background: #e8eaf6;"></div>
|
| 358 |
+
<span class="theme-name">Midnight</span>
|
| 359 |
+
</div>
|
| 360 |
+
<div class="theme-option" data-theme="steel">
|
| 361 |
+
<div class="theme-preview" style="border-color: #455a64; background: #eceff1;"></div>
|
| 362 |
+
<span class="theme-name">Steel</span>
|
| 363 |
+
</div>
|
| 364 |
+
<div class="theme-option" data-theme="depths">
|
| 365 |
+
<div class="theme-preview" style="border-color: #01579b; background: #e3f2fd;"></div>
|
| 366 |
+
<span class="theme-name">Depths</span>
|
| 367 |
+
</div>
|
| 368 |
+
<div class="theme-option" data-theme="ember">
|
| 369 |
+
<div class="theme-preview" style="border-color: #b71c1c; background: #fbe9e7;"></div>
|
| 370 |
+
<span class="theme-name">Ember</span>
|
| 371 |
+
</div>
|
| 372 |
+
<div class="theme-option" data-theme="noir">
|
| 373 |
+
<div class="theme-preview" style="border-color: #888888; background: #111111;"></div>
|
| 374 |
+
<span class="theme-name">Noir</span>
|
| 375 |
+
</div>
|
| 376 |
+
<div class="theme-option" data-theme="eclipse">
|
| 377 |
+
<div class="theme-preview" style="border-color: #5c9eff; background: #0b1118;"></div>
|
| 378 |
+
<span class="theme-name">Eclipse</span>
|
| 379 |
+
</div>
|
| 380 |
+
<div class="theme-option" data-theme="terminal">
|
| 381 |
+
<div class="theme-preview" style="border-color: #00cc00; background: #0a0a0a;"></div>
|
| 382 |
+
<span class="theme-name">Terminal</span>
|
| 383 |
+
</div>
|
| 384 |
+
</div>
|
| 385 |
+
<input type="hidden" id="setting-theme-color" value="forest">
|
| 386 |
</div>
|
| 387 |
</div>
|
|
|
|
| 388 |
</div>
|
| 389 |
|
| 390 |
<div class="settings-actions">
|
frontend/style.css
CHANGED
|
@@ -264,7 +264,7 @@ body {
|
|
| 264 |
|
| 265 |
.menu-item:hover {
|
| 266 |
background: var(--theme-accent);
|
| 267 |
-
color:
|
| 268 |
}
|
| 269 |
|
| 270 |
/* Content Area */
|
|
@@ -388,9 +388,34 @@ body {
|
|
| 388 |
}
|
| 389 |
|
| 390 |
.sidebar-checkbox input[type="checkbox"] {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 391 |
margin: 0;
|
|
|
|
|
|
|
| 392 |
cursor: pointer;
|
| 393 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 394 |
}
|
| 395 |
|
| 396 |
/* Timeline Widget */
|
|
@@ -1540,11 +1565,48 @@ pre code [class*="token"] {
|
|
| 1540 |
|
| 1541 |
.settings-body {
|
| 1542 |
flex: 1;
|
| 1543 |
-
padding:
|
| 1544 |
overflow-y: auto;
|
| 1545 |
max-width: 800px;
|
| 1546 |
}
|
| 1547 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1548 |
.settings-section {
|
| 1549 |
margin-bottom: 16px;
|
| 1550 |
}
|
|
@@ -1573,13 +1635,20 @@ pre code [class*="token"] {
|
|
| 1573 |
width: 100%;
|
| 1574 |
padding: 6px 8px;
|
| 1575 |
border: 1px solid var(--border-primary);
|
| 1576 |
-
border-radius:
|
| 1577 |
font-family: inherit;
|
| 1578 |
font-size: 11px;
|
| 1579 |
background: var(--bg-secondary);
|
| 1580 |
color: var(--text-primary);
|
| 1581 |
outline: none;
|
| 1582 |
transition: border-color 0.15s ease;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1583 |
}
|
| 1584 |
|
| 1585 |
.settings-input:focus {
|
|
@@ -1686,7 +1755,7 @@ pre code [class*="token"] {
|
|
| 1686 |
|
| 1687 |
.settings-save-btn {
|
| 1688 |
background: var(--theme-accent);
|
| 1689 |
-
color:
|
| 1690 |
border-color: var(--theme-accent);
|
| 1691 |
}
|
| 1692 |
|
|
@@ -2138,7 +2207,7 @@ pre code [class*="token"] {
|
|
| 2138 |
top: 0;
|
| 2139 |
bottom: 0;
|
| 2140 |
width: 1px;
|
| 2141 |
-
background:
|
| 2142 |
}
|
| 2143 |
|
| 2144 |
.query-tree {
|
|
@@ -2153,7 +2222,7 @@ pre code [class*="token"] {
|
|
| 2153 |
top: 10px;
|
| 2154 |
width: 12px;
|
| 2155 |
height: 1px;
|
| 2156 |
-
background:
|
| 2157 |
}
|
| 2158 |
|
| 2159 |
.query-tree.last::after {
|
|
@@ -2210,7 +2279,7 @@ pre code [class*="token"] {
|
|
| 2210 |
top: 0;
|
| 2211 |
bottom: 0;
|
| 2212 |
width: 1px;
|
| 2213 |
-
background:
|
| 2214 |
}
|
| 2215 |
|
| 2216 |
/* Tree structure for sources */
|
|
@@ -2226,7 +2295,7 @@ pre code [class*="token"] {
|
|
| 2226 |
top: 10px;
|
| 2227 |
width: 12px;
|
| 2228 |
height: 1px;
|
| 2229 |
-
background:
|
| 2230 |
}
|
| 2231 |
|
| 2232 |
.source-tree-node.last::after {
|
|
@@ -2798,7 +2867,7 @@ pre code [class*="token"] {
|
|
| 2798 |
margin: 0;
|
| 2799 |
font-size: 10px;
|
| 2800 |
font-weight: 500;
|
| 2801 |
-
color:
|
| 2802 |
text-transform: uppercase;
|
| 2803 |
letter-spacing: 0.5px;
|
| 2804 |
flex: 1;
|
|
@@ -2808,7 +2877,7 @@ pre code [class*="token"] {
|
|
| 2808 |
background: none;
|
| 2809 |
border: none;
|
| 2810 |
font-size: 16px;
|
| 2811 |
-
color:
|
| 2812 |
cursor: pointer;
|
| 2813 |
padding: 0;
|
| 2814 |
width: 20px;
|
|
@@ -2977,14 +3046,15 @@ pre code [class*="token"] {
|
|
| 2977 |
margin: 0;
|
| 2978 |
font-size: 10px;
|
| 2979 |
font-weight: 500;
|
| 2980 |
-
color:
|
| 2981 |
text-transform: uppercase;
|
| 2982 |
letter-spacing: 0.5px;
|
| 2983 |
}
|
| 2984 |
|
| 2985 |
.settings-path {
|
| 2986 |
font-size: 9px;
|
| 2987 |
-
color:
|
|
|
|
| 2988 |
font-weight: 400;
|
| 2989 |
overflow: hidden;
|
| 2990 |
text-overflow: ellipsis;
|
|
@@ -2997,7 +3067,7 @@ pre code [class*="token"] {
|
|
| 2997 |
background: none;
|
| 2998 |
border: none;
|
| 2999 |
font-size: 16px;
|
| 3000 |
-
color:
|
| 3001 |
cursor: pointer;
|
| 3002 |
padding: 0;
|
| 3003 |
width: 20px;
|
|
@@ -3133,7 +3203,7 @@ pre code [class*="token"] {
|
|
| 3133 |
width: 100%;
|
| 3134 |
padding: 5px 24px 5px 8px;
|
| 3135 |
border: 1px solid var(--border-primary);
|
| 3136 |
-
border-radius:
|
| 3137 |
font-family: inherit;
|
| 3138 |
font-size: 10px;
|
| 3139 |
background: var(--bg-card);
|
|
@@ -3150,7 +3220,7 @@ pre code [class*="token"] {
|
|
| 3150 |
}
|
| 3151 |
|
| 3152 |
.settings-select:hover {
|
| 3153 |
-
border-color:
|
| 3154 |
}
|
| 3155 |
|
| 3156 |
.settings-select:focus {
|
|
@@ -3211,7 +3281,7 @@ pre code [class*="token"] {
|
|
| 3211 |
margin: 0;
|
| 3212 |
font-size: 10px;
|
| 3213 |
font-weight: 500;
|
| 3214 |
-
color:
|
| 3215 |
text-transform: uppercase;
|
| 3216 |
letter-spacing: 0.5px;
|
| 3217 |
}
|
|
@@ -3220,7 +3290,7 @@ pre code [class*="token"] {
|
|
| 3220 |
background: none;
|
| 3221 |
border: none;
|
| 3222 |
font-size: 14px;
|
| 3223 |
-
color:
|
| 3224 |
cursor: pointer;
|
| 3225 |
padding: 0;
|
| 3226 |
width: 20px;
|
|
@@ -3323,7 +3393,7 @@ pre code [class*="token"] {
|
|
| 3323 |
margin: 0;
|
| 3324 |
font-size: 10px;
|
| 3325 |
font-weight: 500;
|
| 3326 |
-
color:
|
| 3327 |
text-transform: uppercase;
|
| 3328 |
letter-spacing: 0.5px;
|
| 3329 |
}
|
|
@@ -3340,7 +3410,8 @@ pre code [class*="token"] {
|
|
| 3340 |
align-items: center;
|
| 3341 |
gap: 4px;
|
| 3342 |
font-size: 9px;
|
| 3343 |
-
color:
|
|
|
|
| 3344 |
cursor: pointer;
|
| 3345 |
}
|
| 3346 |
|
|
@@ -3349,16 +3420,18 @@ pre code [class*="token"] {
|
|
| 3349 |
-webkit-appearance: none;
|
| 3350 |
width: 12px;
|
| 3351 |
height: 12px;
|
| 3352 |
-
border: 1px solid
|
| 3353 |
border-radius: 2px;
|
| 3354 |
background: transparent;
|
| 3355 |
cursor: pointer;
|
| 3356 |
position: relative;
|
|
|
|
| 3357 |
}
|
| 3358 |
|
| 3359 |
.files-show-hidden input[type="checkbox"]:checked {
|
| 3360 |
background: var(--bg-card);
|
| 3361 |
-
border-color:
|
|
|
|
| 3362 |
}
|
| 3363 |
|
| 3364 |
.files-show-hidden input[type="checkbox"]:checked::after {
|
|
@@ -3375,7 +3448,7 @@ pre code [class*="token"] {
|
|
| 3375 |
.files-refresh-btn {
|
| 3376 |
background: none;
|
| 3377 |
border: none;
|
| 3378 |
-
color:
|
| 3379 |
font-size: 13px;
|
| 3380 |
cursor: pointer;
|
| 3381 |
padding: 2px 4px;
|
|
@@ -3392,7 +3465,7 @@ pre code [class*="token"] {
|
|
| 3392 |
background: none;
|
| 3393 |
border: none;
|
| 3394 |
font-size: 16px;
|
| 3395 |
-
color:
|
| 3396 |
cursor: pointer;
|
| 3397 |
padding: 0;
|
| 3398 |
width: 20px;
|
|
@@ -3720,7 +3793,7 @@ pre code [class*="token"] {
|
|
| 3720 |
transform: translateY(-50%);
|
| 3721 |
background: transparent;
|
| 3722 |
border: none;
|
| 3723 |
-
color:
|
| 3724 |
font-size: 13px;
|
| 3725 |
cursor: pointer;
|
| 3726 |
padding: 0;
|
|
@@ -3787,7 +3860,7 @@ pre code [class*="token"] {
|
|
| 3787 |
}
|
| 3788 |
|
| 3789 |
.session-existing select:hover {
|
| 3790 |
-
border-color:
|
| 3791 |
}
|
| 3792 |
|
| 3793 |
.session-existing select:focus {
|
|
@@ -3831,7 +3904,7 @@ pre code [class*="token"] {
|
|
| 3831 |
margin: 0;
|
| 3832 |
font-size: 10px;
|
| 3833 |
font-weight: 500;
|
| 3834 |
-
color:
|
| 3835 |
text-transform: uppercase;
|
| 3836 |
letter-spacing: 0.5px;
|
| 3837 |
}
|
|
@@ -3840,7 +3913,7 @@ pre code [class*="token"] {
|
|
| 3840 |
background: none;
|
| 3841 |
border: none;
|
| 3842 |
font-size: 16px;
|
| 3843 |
-
color:
|
| 3844 |
cursor: pointer;
|
| 3845 |
padding: 0;
|
| 3846 |
width: 20px;
|
|
@@ -3909,7 +3982,7 @@ pre code [class*="token"] {
|
|
| 3909 |
.sessions-new-input button:not(.session-regenerate-btn) {
|
| 3910 |
padding: 5px 10px;
|
| 3911 |
background: var(--theme-accent);
|
| 3912 |
-
color:
|
| 3913 |
border: none;
|
| 3914 |
border-radius: 3px;
|
| 3915 |
font-size: 10px;
|
|
@@ -4117,7 +4190,7 @@ pre code [class*="token"] {
|
|
| 4117 |
height: 400px;
|
| 4118 |
border: 1px solid var(--border-primary);
|
| 4119 |
border-radius: 4px;
|
| 4120 |
-
background:
|
| 4121 |
}
|
| 4122 |
|
| 4123 |
.search-results-content {
|
|
|
|
| 264 |
|
| 265 |
.menu-item:hover {
|
| 266 |
background: var(--theme-accent);
|
| 267 |
+
color: var(--bg-primary);
|
| 268 |
}
|
| 269 |
|
| 270 |
/* Content Area */
|
|
|
|
| 388 |
}
|
| 389 |
|
| 390 |
.sidebar-checkbox input[type="checkbox"] {
|
| 391 |
+
-webkit-appearance: none;
|
| 392 |
+
-moz-appearance: none;
|
| 393 |
+
appearance: none;
|
| 394 |
+
width: 12px;
|
| 395 |
+
height: 12px;
|
| 396 |
margin: 0;
|
| 397 |
+
border: 1px solid var(--text-muted);
|
| 398 |
+
background: transparent;
|
| 399 |
cursor: pointer;
|
| 400 |
+
position: relative;
|
| 401 |
+
flex-shrink: 0;
|
| 402 |
+
}
|
| 403 |
+
|
| 404 |
+
.sidebar-checkbox input[type="checkbox"]:checked {
|
| 405 |
+
background: var(--theme-accent);
|
| 406 |
+
border-color: var(--theme-accent);
|
| 407 |
+
}
|
| 408 |
+
|
| 409 |
+
.sidebar-checkbox input[type="checkbox"]:checked::after {
|
| 410 |
+
content: '';
|
| 411 |
+
position: absolute;
|
| 412 |
+
left: 3px;
|
| 413 |
+
top: 1px;
|
| 414 |
+
width: 3px;
|
| 415 |
+
height: 6px;
|
| 416 |
+
border: solid var(--bg-primary);
|
| 417 |
+
border-width: 0 1.5px 1.5px 0;
|
| 418 |
+
transform: rotate(45deg);
|
| 419 |
}
|
| 420 |
|
| 421 |
/* Timeline Widget */
|
|
|
|
| 1565 |
|
| 1566 |
.settings-body {
|
| 1567 |
flex: 1;
|
| 1568 |
+
padding: 16px;
|
| 1569 |
overflow-y: auto;
|
| 1570 |
max-width: 800px;
|
| 1571 |
}
|
| 1572 |
|
| 1573 |
+
/* Collapsible settings groups */
|
| 1574 |
+
.settings-group {
|
| 1575 |
+
margin-bottom: 6px;
|
| 1576 |
+
}
|
| 1577 |
+
|
| 1578 |
+
.settings-group-header {
|
| 1579 |
+
display: flex;
|
| 1580 |
+
align-items: center;
|
| 1581 |
+
gap: 8px;
|
| 1582 |
+
padding: 6px 12px;
|
| 1583 |
+
background: var(--theme-accent);
|
| 1584 |
+
cursor: pointer;
|
| 1585 |
+
user-select: none;
|
| 1586 |
+
}
|
| 1587 |
+
|
| 1588 |
+
.settings-group-header:hover {
|
| 1589 |
+
opacity: 0.9;
|
| 1590 |
+
}
|
| 1591 |
+
|
| 1592 |
+
.settings-group-title {
|
| 1593 |
+
font-size: 10px;
|
| 1594 |
+
font-weight: 600;
|
| 1595 |
+
text-transform: uppercase;
|
| 1596 |
+
letter-spacing: 0.5px;
|
| 1597 |
+
color: var(--bg-primary);
|
| 1598 |
+
}
|
| 1599 |
+
|
| 1600 |
+
.settings-group-body {
|
| 1601 |
+
padding: 12px 12px 4px;
|
| 1602 |
+
border: 1px solid var(--border-primary);
|
| 1603 |
+
border-top: none;
|
| 1604 |
+
}
|
| 1605 |
+
|
| 1606 |
+
.settings-group.collapsed .settings-group-body {
|
| 1607 |
+
display: none;
|
| 1608 |
+
}
|
| 1609 |
+
|
| 1610 |
.settings-section {
|
| 1611 |
margin-bottom: 16px;
|
| 1612 |
}
|
|
|
|
| 1635 |
width: 100%;
|
| 1636 |
padding: 6px 8px;
|
| 1637 |
border: 1px solid var(--border-primary);
|
| 1638 |
+
border-radius: 0;
|
| 1639 |
font-family: inherit;
|
| 1640 |
font-size: 11px;
|
| 1641 |
background: var(--bg-secondary);
|
| 1642 |
color: var(--text-primary);
|
| 1643 |
outline: none;
|
| 1644 |
transition: border-color 0.15s ease;
|
| 1645 |
+
-moz-appearance: textfield;
|
| 1646 |
+
}
|
| 1647 |
+
|
| 1648 |
+
.settings-input::-webkit-outer-spin-button,
|
| 1649 |
+
.settings-input::-webkit-inner-spin-button {
|
| 1650 |
+
-webkit-appearance: none;
|
| 1651 |
+
margin: 0;
|
| 1652 |
}
|
| 1653 |
|
| 1654 |
.settings-input:focus {
|
|
|
|
| 1755 |
|
| 1756 |
.settings-save-btn {
|
| 1757 |
background: var(--theme-accent);
|
| 1758 |
+
color: var(--bg-primary);
|
| 1759 |
border-color: var(--theme-accent);
|
| 1760 |
}
|
| 1761 |
|
|
|
|
| 2207 |
top: 0;
|
| 2208 |
bottom: 0;
|
| 2209 |
width: 1px;
|
| 2210 |
+
background: var(--border-primary);
|
| 2211 |
}
|
| 2212 |
|
| 2213 |
.query-tree {
|
|
|
|
| 2222 |
top: 10px;
|
| 2223 |
width: 12px;
|
| 2224 |
height: 1px;
|
| 2225 |
+
background: var(--border-primary);
|
| 2226 |
}
|
| 2227 |
|
| 2228 |
.query-tree.last::after {
|
|
|
|
| 2279 |
top: 0;
|
| 2280 |
bottom: 0;
|
| 2281 |
width: 1px;
|
| 2282 |
+
background: var(--border-primary);
|
| 2283 |
}
|
| 2284 |
|
| 2285 |
/* Tree structure for sources */
|
|
|
|
| 2295 |
top: 10px;
|
| 2296 |
width: 12px;
|
| 2297 |
height: 1px;
|
| 2298 |
+
background: var(--border-primary);
|
| 2299 |
}
|
| 2300 |
|
| 2301 |
.source-tree-node.last::after {
|
|
|
|
| 2867 |
margin: 0;
|
| 2868 |
font-size: 10px;
|
| 2869 |
font-weight: 500;
|
| 2870 |
+
color: var(--bg-primary);
|
| 2871 |
text-transform: uppercase;
|
| 2872 |
letter-spacing: 0.5px;
|
| 2873 |
flex: 1;
|
|
|
|
| 2877 |
background: none;
|
| 2878 |
border: none;
|
| 2879 |
font-size: 16px;
|
| 2880 |
+
color: var(--bg-primary);
|
| 2881 |
cursor: pointer;
|
| 2882 |
padding: 0;
|
| 2883 |
width: 20px;
|
|
|
|
| 3046 |
margin: 0;
|
| 3047 |
font-size: 10px;
|
| 3048 |
font-weight: 500;
|
| 3049 |
+
color: var(--bg-primary);
|
| 3050 |
text-transform: uppercase;
|
| 3051 |
letter-spacing: 0.5px;
|
| 3052 |
}
|
| 3053 |
|
| 3054 |
.settings-path {
|
| 3055 |
font-size: 9px;
|
| 3056 |
+
color: var(--bg-primary);
|
| 3057 |
+
opacity: 0.6;
|
| 3058 |
font-weight: 400;
|
| 3059 |
overflow: hidden;
|
| 3060 |
text-overflow: ellipsis;
|
|
|
|
| 3067 |
background: none;
|
| 3068 |
border: none;
|
| 3069 |
font-size: 16px;
|
| 3070 |
+
color: var(--bg-primary);
|
| 3071 |
cursor: pointer;
|
| 3072 |
padding: 0;
|
| 3073 |
width: 20px;
|
|
|
|
| 3203 |
width: 100%;
|
| 3204 |
padding: 5px 24px 5px 8px;
|
| 3205 |
border: 1px solid var(--border-primary);
|
| 3206 |
+
border-radius: 0;
|
| 3207 |
font-family: inherit;
|
| 3208 |
font-size: 10px;
|
| 3209 |
background: var(--bg-card);
|
|
|
|
| 3220 |
}
|
| 3221 |
|
| 3222 |
.settings-select:hover {
|
| 3223 |
+
border-color: var(--theme-accent);
|
| 3224 |
}
|
| 3225 |
|
| 3226 |
.settings-select:focus {
|
|
|
|
| 3281 |
margin: 0;
|
| 3282 |
font-size: 10px;
|
| 3283 |
font-weight: 500;
|
| 3284 |
+
color: var(--bg-primary);
|
| 3285 |
text-transform: uppercase;
|
| 3286 |
letter-spacing: 0.5px;
|
| 3287 |
}
|
|
|
|
| 3290 |
background: none;
|
| 3291 |
border: none;
|
| 3292 |
font-size: 14px;
|
| 3293 |
+
color: var(--bg-primary);
|
| 3294 |
cursor: pointer;
|
| 3295 |
padding: 0;
|
| 3296 |
width: 20px;
|
|
|
|
| 3393 |
margin: 0;
|
| 3394 |
font-size: 10px;
|
| 3395 |
font-weight: 500;
|
| 3396 |
+
color: var(--bg-primary);
|
| 3397 |
text-transform: uppercase;
|
| 3398 |
letter-spacing: 0.5px;
|
| 3399 |
}
|
|
|
|
| 3410 |
align-items: center;
|
| 3411 |
gap: 4px;
|
| 3412 |
font-size: 9px;
|
| 3413 |
+
color: var(--bg-primary);
|
| 3414 |
+
opacity: 0.8;
|
| 3415 |
cursor: pointer;
|
| 3416 |
}
|
| 3417 |
|
|
|
|
| 3420 |
-webkit-appearance: none;
|
| 3421 |
width: 12px;
|
| 3422 |
height: 12px;
|
| 3423 |
+
border: 1px solid var(--bg-primary);
|
| 3424 |
border-radius: 2px;
|
| 3425 |
background: transparent;
|
| 3426 |
cursor: pointer;
|
| 3427 |
position: relative;
|
| 3428 |
+
opacity: 0.5;
|
| 3429 |
}
|
| 3430 |
|
| 3431 |
.files-show-hidden input[type="checkbox"]:checked {
|
| 3432 |
background: var(--bg-card);
|
| 3433 |
+
border-color: var(--bg-primary);
|
| 3434 |
+
opacity: 1;
|
| 3435 |
}
|
| 3436 |
|
| 3437 |
.files-show-hidden input[type="checkbox"]:checked::after {
|
|
|
|
| 3448 |
.files-refresh-btn {
|
| 3449 |
background: none;
|
| 3450 |
border: none;
|
| 3451 |
+
color: var(--bg-primary);
|
| 3452 |
font-size: 13px;
|
| 3453 |
cursor: pointer;
|
| 3454 |
padding: 2px 4px;
|
|
|
|
| 3465 |
background: none;
|
| 3466 |
border: none;
|
| 3467 |
font-size: 16px;
|
| 3468 |
+
color: var(--bg-primary);
|
| 3469 |
cursor: pointer;
|
| 3470 |
padding: 0;
|
| 3471 |
width: 20px;
|
|
|
|
| 3793 |
transform: translateY(-50%);
|
| 3794 |
background: transparent;
|
| 3795 |
border: none;
|
| 3796 |
+
color: var(--text-muted);
|
| 3797 |
font-size: 13px;
|
| 3798 |
cursor: pointer;
|
| 3799 |
padding: 0;
|
|
|
|
| 3860 |
}
|
| 3861 |
|
| 3862 |
.session-existing select:hover {
|
| 3863 |
+
border-color: var(--theme-accent);
|
| 3864 |
}
|
| 3865 |
|
| 3866 |
.session-existing select:focus {
|
|
|
|
| 3904 |
margin: 0;
|
| 3905 |
font-size: 10px;
|
| 3906 |
font-weight: 500;
|
| 3907 |
+
color: var(--bg-primary);
|
| 3908 |
text-transform: uppercase;
|
| 3909 |
letter-spacing: 0.5px;
|
| 3910 |
}
|
|
|
|
| 3913 |
background: none;
|
| 3914 |
border: none;
|
| 3915 |
font-size: 16px;
|
| 3916 |
+
color: var(--bg-primary);
|
| 3917 |
cursor: pointer;
|
| 3918 |
padding: 0;
|
| 3919 |
width: 20px;
|
|
|
|
| 3982 |
.sessions-new-input button:not(.session-regenerate-btn) {
|
| 3983 |
padding: 5px 10px;
|
| 3984 |
background: var(--theme-accent);
|
| 3985 |
+
color: var(--bg-primary);
|
| 3986 |
border: none;
|
| 3987 |
border-radius: 3px;
|
| 3988 |
font-size: 10px;
|
|
|
|
| 4190 |
height: 400px;
|
| 4191 |
border: 1px solid var(--border-primary);
|
| 4192 |
border-radius: 4px;
|
| 4193 |
+
background: var(--bg-primary);
|
| 4194 |
}
|
| 4195 |
|
| 4196 |
.search-results-content {
|