@in-the-loop-labs/pair-review 1.4.4 → 1.5.0
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/package.json +1 -1
- package/plugin/.claude-plugin/plugin.json +1 -1
- package/plugin/skills/review-requests/SKILL.md +54 -0
- package/plugin-code-critic/.claude-plugin/plugin.json +1 -1
- package/public/css/pr.css +1081 -54
- package/public/css/repo-settings.css +452 -140
- package/public/js/components/AdvancedConfigTab.js +1364 -0
- package/public/js/components/AnalysisConfigModal.js +488 -112
- package/public/js/components/CouncilProgressModal.js +1416 -0
- package/public/js/components/TextInputDialog.js +231 -0
- package/public/js/components/TimeoutSelect.js +367 -0
- package/public/js/components/VoiceCentricConfigTab.js +1334 -0
- package/public/js/local.js +162 -83
- package/public/js/modules/analysis-history.js +185 -11
- package/public/js/modules/comment-manager.js +13 -0
- package/public/js/modules/file-comment-manager.js +28 -0
- package/public/js/pr.js +233 -115
- package/public/js/repo-settings.js +575 -106
- package/public/local.html +11 -1
- package/public/pr.html +6 -1
- package/public/repo-settings.html +28 -21
- package/public/setup.html +8 -2
- package/src/ai/analyzer.js +1262 -111
- package/src/ai/claude-cli.js +2 -2
- package/src/ai/claude-provider.js +6 -6
- package/src/ai/codex-provider.js +6 -6
- package/src/ai/copilot-provider.js +3 -3
- package/src/ai/cursor-agent-provider.js +6 -6
- package/src/ai/gemini-provider.js +6 -6
- package/src/ai/opencode-provider.js +6 -6
- package/src/ai/pi-provider.js +6 -6
- package/src/ai/prompts/baseline/consolidation/balanced.js +208 -0
- package/src/ai/prompts/baseline/consolidation/fast.js +175 -0
- package/src/ai/prompts/baseline/consolidation/thorough.js +283 -0
- package/src/ai/prompts/config.js +1 -1
- package/src/ai/prompts/index.js +26 -2
- package/src/ai/provider.js +4 -2
- package/src/database.js +417 -14
- package/src/main.js +1 -1
- package/src/routes/analysis.js +495 -10
- package/src/routes/config.js +36 -15
- package/src/routes/councils.js +351 -0
- package/src/routes/local.js +33 -11
- package/src/routes/mcp.js +9 -2
- package/src/routes/setup.js +12 -2
- package/src/routes/shared.js +126 -13
- package/src/server.js +34 -4
- package/src/utils/stats-calculator.js +2 -0
|
@@ -242,6 +242,10 @@ html, body {
|
|
|
242
242
|
border-radius: 12px;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
+
.settings-section--has-card {
|
|
246
|
+
position: relative;
|
|
247
|
+
}
|
|
248
|
+
|
|
245
249
|
.section-header {
|
|
246
250
|
margin-bottom: 20px;
|
|
247
251
|
}
|
|
@@ -268,176 +272,511 @@ html, body {
|
|
|
268
272
|
}
|
|
269
273
|
|
|
270
274
|
/* ============================================
|
|
271
|
-
Model
|
|
272
|
-
Note: Provider toggle styles are inherited from pr.css
|
|
275
|
+
Settings Model Selects
|
|
273
276
|
============================================ */
|
|
274
277
|
|
|
275
|
-
/*
|
|
276
|
-
.settings-
|
|
277
|
-
|
|
278
|
-
|
|
278
|
+
/* Settings Model Row */
|
|
279
|
+
.settings-model-row {
|
|
280
|
+
display: flex;
|
|
281
|
+
gap: 12px;
|
|
282
|
+
align-items: flex-end;
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
.settings-select-group {
|
|
286
|
+
display: flex;
|
|
287
|
+
flex-direction: column;
|
|
279
288
|
}
|
|
280
289
|
|
|
281
|
-
.settings-
|
|
290
|
+
.settings-select-group-grow {
|
|
282
291
|
flex: 1;
|
|
283
|
-
justify-content: center;
|
|
284
292
|
}
|
|
285
293
|
|
|
286
|
-
.
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
294
|
+
.settings-select {
|
|
295
|
+
padding: 10px 14px;
|
|
296
|
+
background: var(--color-bg-primary);
|
|
297
|
+
border: 1px solid var(--color-border-primary);
|
|
298
|
+
border-radius: 8px;
|
|
299
|
+
font-family: inherit;
|
|
300
|
+
font-size: 14px;
|
|
301
|
+
color: var(--color-text-primary);
|
|
302
|
+
cursor: pointer;
|
|
303
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
304
|
+
appearance: none;
|
|
305
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.22 4.22a.75.75 0 011.06 0L6 6.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L2.22 5.28a.75.75 0 010-1.06z'/%3E%3C/svg%3E");
|
|
306
|
+
background-repeat: no-repeat;
|
|
307
|
+
background-position: right 12px center;
|
|
308
|
+
padding-right: 36px;
|
|
309
|
+
min-width: 140px;
|
|
291
310
|
}
|
|
292
311
|
|
|
293
|
-
.
|
|
294
|
-
|
|
312
|
+
.settings-select:focus {
|
|
313
|
+
outline: none;
|
|
314
|
+
border-color: #f59e0b;
|
|
315
|
+
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
[data-theme="dark"] .settings-select:focus {
|
|
319
|
+
border-color: #fbbf24;
|
|
320
|
+
box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.12);
|
|
321
|
+
}
|
|
322
|
+
|
|
323
|
+
.model-hint {
|
|
295
324
|
display: flex;
|
|
296
|
-
flex-direction: column;
|
|
297
325
|
align-items: center;
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
transition: all 0.2s cubic-bezier(0.16, 1, 0.3, 1);
|
|
304
|
-
text-align: center;
|
|
326
|
+
gap: 6px;
|
|
327
|
+
margin: 0;
|
|
328
|
+
margin-top: 14px;
|
|
329
|
+
font-size: 12px;
|
|
330
|
+
color: var(--color-text-muted);
|
|
305
331
|
}
|
|
306
332
|
|
|
307
|
-
.model-
|
|
308
|
-
|
|
309
|
-
transform: translateY(-2px);
|
|
310
|
-
box-shadow: 0 4px 12px var(--color-shadow);
|
|
333
|
+
.model-hint svg {
|
|
334
|
+
flex-shrink: 0;
|
|
311
335
|
}
|
|
312
336
|
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
337
|
+
/* ============================================
|
|
338
|
+
Model Card Preview (Single Model mode)
|
|
339
|
+
============================================ */
|
|
340
|
+
|
|
341
|
+
.settings-model-card-preview {
|
|
342
|
+
position: absolute;
|
|
343
|
+
top: 24px;
|
|
344
|
+
right: auto;
|
|
345
|
+
left: calc(100% + 20px);
|
|
346
|
+
}
|
|
347
|
+
|
|
348
|
+
/* Override the interactive model-card styles for the static preview card */
|
|
349
|
+
.model-card.settings-model-card-static {
|
|
350
|
+
position: relative;
|
|
351
|
+
cursor: default;
|
|
352
|
+
pointer-events: none;
|
|
353
|
+
width: 160px;
|
|
354
|
+
aspect-ratio: auto;
|
|
355
|
+
padding: 12px 10px 10px;
|
|
356
|
+
overflow: visible;
|
|
357
|
+
}
|
|
358
|
+
|
|
359
|
+
.settings-model-card-static:hover {
|
|
360
|
+
transform: none;
|
|
316
361
|
box-shadow:
|
|
317
|
-
0 0 0 3px rgba(245, 158, 11, 0.
|
|
318
|
-
0 4px 12px rgba(245, 158, 11, 0.
|
|
362
|
+
0 0 0 3px rgba(245, 158, 11, 0.15),
|
|
363
|
+
0 4px 12px rgba(245, 158, 11, 0.1);
|
|
319
364
|
}
|
|
320
365
|
|
|
321
|
-
[data-theme="dark"] .model-card
|
|
322
|
-
background: rgba(251, 191, 36, 0.08);
|
|
323
|
-
border-color: #fbbf24;
|
|
366
|
+
[data-theme="dark"] .settings-model-card-static:hover {
|
|
324
367
|
box-shadow:
|
|
325
|
-
0 0 0 3px rgba(251, 191, 36, 0.
|
|
326
|
-
0 4px 12px rgba(251, 191, 36, 0.
|
|
368
|
+
0 0 0 3px rgba(251, 191, 36, 0.15),
|
|
369
|
+
0 4px 12px rgba(251, 191, 36, 0.08);
|
|
327
370
|
}
|
|
328
371
|
|
|
329
|
-
|
|
372
|
+
/* Speech bubble arrow — points left toward the settings section */
|
|
373
|
+
.settings-model-card-static::before {
|
|
374
|
+
--settings-model-card-bg: #fef7e8;
|
|
375
|
+
content: '';
|
|
330
376
|
position: absolute;
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
/* Fallback for unknown badge classes */
|
|
341
|
-
background: linear-gradient(135deg, #6b7280 0%, #4b5563 100%);
|
|
342
|
-
color: white;
|
|
377
|
+
left: -8px;
|
|
378
|
+
top: 22px;
|
|
379
|
+
width: 14px;
|
|
380
|
+
height: 14px;
|
|
381
|
+
background: var(--settings-model-card-bg);
|
|
382
|
+
border-bottom: 2px solid var(--color-accent-ai-dark, #f59e0b);
|
|
383
|
+
border-left: 2px solid var(--color-accent-ai-dark, #f59e0b);
|
|
384
|
+
transform: rotate(45deg);
|
|
385
|
+
z-index: 1;
|
|
343
386
|
}
|
|
344
387
|
|
|
345
|
-
.
|
|
346
|
-
|
|
347
|
-
color:
|
|
388
|
+
[data-theme="dark"] .settings-model-card-static::before {
|
|
389
|
+
--settings-model-card-bg: #2a2416;
|
|
390
|
+
border-bottom-color: var(--color-accent-ai, #fbbf24);
|
|
391
|
+
border-left-color: var(--color-accent-ai, #fbbf24);
|
|
348
392
|
}
|
|
349
393
|
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
394
|
+
/* Position the tier badge to straddle the upper-right corner */
|
|
395
|
+
.settings-model-card-static .model-badge {
|
|
396
|
+
top: -8px;
|
|
397
|
+
right: -8px;
|
|
353
398
|
}
|
|
354
399
|
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
400
|
+
/* Hide the checkmark indicator on the static preview */
|
|
401
|
+
.settings-model-card-static .model-selected-indicator {
|
|
402
|
+
display: none;
|
|
358
403
|
}
|
|
359
404
|
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
405
|
+
/* ============================================
|
|
406
|
+
Council Card Preview (Council mode)
|
|
407
|
+
============================================ */
|
|
408
|
+
|
|
409
|
+
.council-card {
|
|
410
|
+
position: relative;
|
|
411
|
+
pointer-events: none;
|
|
412
|
+
width: 190px;
|
|
413
|
+
padding: 14px 12px 12px;
|
|
414
|
+
background: var(--color-bg-primary);
|
|
415
|
+
border: 1px solid var(--color-border-primary);
|
|
416
|
+
border-radius: 10px;
|
|
417
|
+
box-shadow:
|
|
418
|
+
0 0 0 3px rgba(245, 158, 11, 0.15),
|
|
419
|
+
0 4px 12px rgba(245, 158, 11, 0.1);
|
|
363
420
|
}
|
|
364
421
|
|
|
365
|
-
.
|
|
366
|
-
|
|
367
|
-
|
|
422
|
+
[data-theme="dark"] .council-card {
|
|
423
|
+
box-shadow:
|
|
424
|
+
0 0 0 3px rgba(251, 191, 36, 0.15),
|
|
425
|
+
0 4px 12px rgba(251, 191, 36, 0.08);
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
.council-card-name {
|
|
429
|
+
font-size: 13px;
|
|
430
|
+
font-weight: 600;
|
|
431
|
+
color: var(--color-text-primary);
|
|
432
|
+
margin-bottom: 2px;
|
|
433
|
+
overflow: hidden;
|
|
434
|
+
text-overflow: ellipsis;
|
|
435
|
+
white-space: nowrap;
|
|
368
436
|
}
|
|
369
437
|
|
|
370
|
-
.
|
|
371
|
-
font-size:
|
|
438
|
+
.council-card-summary {
|
|
439
|
+
font-size: 11px;
|
|
440
|
+
color: var(--color-text-muted);
|
|
372
441
|
margin-bottom: 10px;
|
|
373
|
-
line-height: 1;
|
|
374
|
-
filter: drop-shadow(0 2px 4px rgba(0, 0, 0, 0.1));
|
|
375
442
|
}
|
|
376
443
|
|
|
377
|
-
.
|
|
444
|
+
.council-card-reviewers {
|
|
378
445
|
display: flex;
|
|
379
446
|
flex-direction: column;
|
|
380
|
-
gap:
|
|
447
|
+
gap: 4px;
|
|
381
448
|
}
|
|
382
449
|
|
|
383
|
-
.
|
|
384
|
-
|
|
450
|
+
.council-card-reviewer {
|
|
451
|
+
display: flex;
|
|
452
|
+
align-items: center;
|
|
453
|
+
gap: 5px;
|
|
454
|
+
font-size: 12px;
|
|
455
|
+
color: var(--color-text-secondary);
|
|
456
|
+
overflow: hidden;
|
|
457
|
+
text-overflow: ellipsis;
|
|
458
|
+
white-space: nowrap;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.council-card-reviewer-name {
|
|
462
|
+
flex: 1;
|
|
463
|
+
overflow: hidden;
|
|
464
|
+
text-overflow: ellipsis;
|
|
465
|
+
white-space: nowrap;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
.council-card-tier {
|
|
469
|
+
flex-shrink: 0;
|
|
470
|
+
font-size: 10px;
|
|
471
|
+
color: var(--color-text-muted);
|
|
472
|
+
text-transform: capitalize;
|
|
473
|
+
}
|
|
474
|
+
|
|
475
|
+
.council-card-divider {
|
|
476
|
+
border: none;
|
|
477
|
+
border-top: 1px solid var(--color-border-primary);
|
|
478
|
+
margin: 8px 0 6px;
|
|
479
|
+
}
|
|
480
|
+
|
|
481
|
+
.council-card-consolidation {
|
|
482
|
+
font-size: 12px;
|
|
483
|
+
color: var(--color-text-secondary);
|
|
484
|
+
}
|
|
485
|
+
|
|
486
|
+
.council-card-consolidation-label {
|
|
487
|
+
font-size: 10px;
|
|
488
|
+
text-transform: uppercase;
|
|
489
|
+
letter-spacing: 0.04em;
|
|
490
|
+
color: var(--color-text-muted);
|
|
491
|
+
margin-bottom: 3px;
|
|
492
|
+
}
|
|
493
|
+
|
|
494
|
+
.council-card-level-header {
|
|
495
|
+
font-size: 10px;
|
|
496
|
+
text-transform: uppercase;
|
|
497
|
+
letter-spacing: 0.04em;
|
|
498
|
+
color: var(--color-text-muted);
|
|
499
|
+
margin-top: 8px;
|
|
500
|
+
margin-bottom: 3px;
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
.council-card-level-header:first-child {
|
|
504
|
+
margin-top: 0;
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
.council-card-badge-advanced {
|
|
508
|
+
display: inline-flex;
|
|
509
|
+
padding: 1px 6px;
|
|
510
|
+
font-size: 9px;
|
|
385
511
|
font-weight: 600;
|
|
512
|
+
border-radius: 8px;
|
|
513
|
+
background: rgba(139, 92, 246, 0.12);
|
|
514
|
+
color: #7c3aed;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
[data-theme="dark"] .council-card-badge-advanced {
|
|
518
|
+
background: rgba(139, 92, 246, 0.15);
|
|
519
|
+
color: #a78bfa;
|
|
520
|
+
}
|
|
521
|
+
|
|
522
|
+
/* Speech bubble arrow — points left toward the settings section */
|
|
523
|
+
.council-card::before {
|
|
524
|
+
content: '';
|
|
525
|
+
position: absolute;
|
|
526
|
+
left: -7px;
|
|
527
|
+
top: 22px;
|
|
528
|
+
width: 12px;
|
|
529
|
+
height: 12px;
|
|
530
|
+
background: var(--color-bg-primary);
|
|
531
|
+
border-bottom: 1px solid var(--color-border-primary);
|
|
532
|
+
border-left: 1px solid var(--color-border-primary);
|
|
533
|
+
transform: rotate(45deg);
|
|
534
|
+
}
|
|
535
|
+
|
|
536
|
+
/* ============================================
|
|
537
|
+
Analysis Mode Segmented Control
|
|
538
|
+
============================================ */
|
|
539
|
+
|
|
540
|
+
.analysis-mode-toggle {
|
|
541
|
+
display: inline-flex;
|
|
542
|
+
background: var(--color-bg-tertiary);
|
|
543
|
+
border: 1px solid var(--color-border-primary);
|
|
544
|
+
border-radius: 8px;
|
|
545
|
+
padding: 3px;
|
|
546
|
+
margin-bottom: 20px;
|
|
547
|
+
}
|
|
548
|
+
|
|
549
|
+
.mode-btn {
|
|
550
|
+
padding: 8px 20px;
|
|
551
|
+
border: none;
|
|
552
|
+
border-radius: 6px;
|
|
553
|
+
background: transparent;
|
|
554
|
+
font-size: 14px;
|
|
555
|
+
font-weight: 500;
|
|
556
|
+
color: var(--color-text-secondary);
|
|
557
|
+
cursor: pointer;
|
|
558
|
+
transition: all 0.2s ease;
|
|
559
|
+
}
|
|
560
|
+
|
|
561
|
+
.mode-btn:hover:not(.selected) {
|
|
562
|
+
color: var(--color-text-primary);
|
|
563
|
+
}
|
|
564
|
+
|
|
565
|
+
.mode-btn.selected {
|
|
566
|
+
background: var(--color-bg-primary);
|
|
386
567
|
color: var(--color-text-primary);
|
|
568
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
[data-theme="dark"] .mode-btn.selected {
|
|
572
|
+
background: var(--color-bg-elevated, var(--color-bg-secondary));
|
|
573
|
+
box-shadow: 0 1px 3px rgba(0, 0, 0, 0.3);
|
|
387
574
|
}
|
|
388
575
|
|
|
389
|
-
.
|
|
576
|
+
.subsection-label {
|
|
577
|
+
display: block;
|
|
390
578
|
font-size: 12px;
|
|
579
|
+
font-weight: 600;
|
|
580
|
+
text-transform: uppercase;
|
|
581
|
+
letter-spacing: 0.05em;
|
|
391
582
|
color: var(--color-text-secondary);
|
|
583
|
+
margin-bottom: 10px;
|
|
392
584
|
}
|
|
393
585
|
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
586
|
+
/* ============================================
|
|
587
|
+
Council Select Dropdown
|
|
588
|
+
============================================ */
|
|
589
|
+
|
|
590
|
+
.council-select {
|
|
591
|
+
width: 100%;
|
|
592
|
+
padding: 10px 14px;
|
|
593
|
+
background: var(--color-bg-primary);
|
|
594
|
+
border: 1px solid var(--color-border-primary);
|
|
595
|
+
border-radius: 8px;
|
|
596
|
+
font-family: inherit;
|
|
597
|
+
font-size: 14px;
|
|
598
|
+
color: var(--color-text-primary);
|
|
599
|
+
cursor: pointer;
|
|
600
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
601
|
+
appearance: none;
|
|
602
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.22 4.22a.75.75 0 011.06 0L6 6.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L2.22 5.28a.75.75 0 010-1.06z'/%3E%3C/svg%3E");
|
|
603
|
+
background-repeat: no-repeat;
|
|
604
|
+
background-position: right 12px center;
|
|
605
|
+
padding-right: 36px;
|
|
399
606
|
}
|
|
400
607
|
|
|
401
|
-
.
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
608
|
+
.council-select:focus {
|
|
609
|
+
outline: none;
|
|
610
|
+
border-color: #f59e0b;
|
|
611
|
+
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
|
|
612
|
+
}
|
|
613
|
+
|
|
614
|
+
[data-theme="dark"] .council-select:focus {
|
|
615
|
+
border-color: #fbbf24;
|
|
616
|
+
box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.12);
|
|
617
|
+
}
|
|
618
|
+
|
|
619
|
+
/* ============================================
|
|
620
|
+
Custom Dropdown (Council Selector)
|
|
621
|
+
============================================ */
|
|
622
|
+
|
|
623
|
+
.custom-dropdown {
|
|
624
|
+
position: relative;
|
|
625
|
+
width: 100%;
|
|
626
|
+
}
|
|
627
|
+
|
|
628
|
+
.custom-dropdown-trigger {
|
|
407
629
|
display: flex;
|
|
408
630
|
align-items: center;
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
631
|
+
width: 100%;
|
|
632
|
+
padding: 10px 14px;
|
|
633
|
+
padding-right: 36px;
|
|
634
|
+
background: var(--color-bg-primary);
|
|
635
|
+
border: 1px solid var(--color-border-primary);
|
|
636
|
+
border-radius: 8px;
|
|
637
|
+
font-family: inherit;
|
|
638
|
+
font-size: 14px;
|
|
639
|
+
color: var(--color-text-primary);
|
|
640
|
+
cursor: pointer;
|
|
641
|
+
transition: border-color 0.15s ease, box-shadow 0.15s ease;
|
|
642
|
+
text-align: left;
|
|
643
|
+
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%236b7280' d='M2.22 4.22a.75.75 0 011.06 0L6 6.94l2.72-2.72a.75.75 0 111.06 1.06l-3.25 3.25a.75.75 0 01-1.06 0L2.22 5.28a.75.75 0 010-1.06z'/%3E%3C/svg%3E");
|
|
644
|
+
background-repeat: no-repeat;
|
|
645
|
+
background-position: right 12px center;
|
|
416
646
|
}
|
|
417
647
|
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
648
|
+
.custom-dropdown-trigger:hover {
|
|
649
|
+
border-color: var(--color-border-secondary);
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.custom-dropdown-trigger:focus {
|
|
653
|
+
outline: none;
|
|
654
|
+
border-color: #f59e0b;
|
|
655
|
+
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
|
|
421
656
|
}
|
|
422
657
|
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
658
|
+
[data-theme="dark"] .custom-dropdown-trigger:focus {
|
|
659
|
+
border-color: #fbbf24;
|
|
660
|
+
box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.12);
|
|
426
661
|
}
|
|
427
662
|
|
|
428
|
-
.
|
|
663
|
+
.custom-dropdown.open .custom-dropdown-trigger {
|
|
664
|
+
border-color: #f59e0b;
|
|
665
|
+
box-shadow: 0 0 0 3px rgba(245, 158, 11, 0.12);
|
|
666
|
+
border-bottom-left-radius: 0;
|
|
667
|
+
border-bottom-right-radius: 0;
|
|
668
|
+
}
|
|
669
|
+
|
|
670
|
+
[data-theme="dark"] .custom-dropdown.open .custom-dropdown-trigger {
|
|
671
|
+
border-color: #fbbf24;
|
|
672
|
+
box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.12);
|
|
673
|
+
}
|
|
674
|
+
|
|
675
|
+
.custom-dropdown-trigger .trigger-text {
|
|
676
|
+
flex: 1;
|
|
677
|
+
overflow: hidden;
|
|
678
|
+
text-overflow: ellipsis;
|
|
679
|
+
white-space: nowrap;
|
|
680
|
+
}
|
|
681
|
+
|
|
682
|
+
.custom-dropdown-trigger .trigger-text.placeholder {
|
|
683
|
+
color: var(--color-text-tertiary);
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.custom-dropdown-list {
|
|
687
|
+
display: none;
|
|
688
|
+
position: absolute;
|
|
689
|
+
top: 100%;
|
|
690
|
+
left: 0;
|
|
691
|
+
right: 0;
|
|
692
|
+
z-index: 50;
|
|
693
|
+
max-height: 240px;
|
|
694
|
+
overflow-y: auto;
|
|
695
|
+
background: var(--color-bg-primary);
|
|
696
|
+
border: 1px solid #f59e0b;
|
|
697
|
+
border-top: none;
|
|
698
|
+
border-bottom-left-radius: 8px;
|
|
699
|
+
border-bottom-right-radius: 8px;
|
|
700
|
+
box-shadow: 0 4px 12px var(--color-shadow);
|
|
701
|
+
}
|
|
702
|
+
|
|
703
|
+
[data-theme="dark"] .custom-dropdown-list {
|
|
704
|
+
border-color: #fbbf24;
|
|
705
|
+
}
|
|
706
|
+
|
|
707
|
+
.custom-dropdown.open .custom-dropdown-list {
|
|
708
|
+
display: block;
|
|
709
|
+
}
|
|
710
|
+
|
|
711
|
+
.custom-dropdown-option {
|
|
429
712
|
display: flex;
|
|
430
713
|
align-items: center;
|
|
431
|
-
gap:
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
714
|
+
gap: 8px;
|
|
715
|
+
padding: 10px 14px;
|
|
716
|
+
cursor: pointer;
|
|
717
|
+
font-size: 14px;
|
|
718
|
+
color: var(--color-text-primary);
|
|
719
|
+
transition: background-color 0.1s ease;
|
|
435
720
|
}
|
|
436
721
|
|
|
437
|
-
.
|
|
722
|
+
.custom-dropdown-option:hover,
|
|
723
|
+
.custom-dropdown-option.focused {
|
|
724
|
+
background: var(--color-bg-tertiary);
|
|
725
|
+
}
|
|
726
|
+
|
|
727
|
+
.custom-dropdown-option.selected {
|
|
728
|
+
background: rgba(245, 158, 11, 0.08);
|
|
729
|
+
font-weight: 500;
|
|
730
|
+
}
|
|
731
|
+
|
|
732
|
+
[data-theme="dark"] .custom-dropdown-option.selected {
|
|
733
|
+
background: rgba(251, 191, 36, 0.1);
|
|
734
|
+
}
|
|
735
|
+
|
|
736
|
+
.custom-dropdown-option + .custom-dropdown-option {
|
|
737
|
+
border-top: 1px solid var(--color-border-primary);
|
|
738
|
+
}
|
|
739
|
+
|
|
740
|
+
.custom-dropdown-option .option-name {
|
|
741
|
+
flex: 1;
|
|
742
|
+
overflow: hidden;
|
|
743
|
+
text-overflow: ellipsis;
|
|
744
|
+
white-space: nowrap;
|
|
745
|
+
}
|
|
746
|
+
|
|
747
|
+
/* Council type badges in dropdown */
|
|
748
|
+
.council-type-badge {
|
|
749
|
+
display: inline-flex;
|
|
750
|
+
align-items: center;
|
|
751
|
+
padding: 2px 7px;
|
|
752
|
+
font-size: 10px;
|
|
753
|
+
font-weight: 600;
|
|
754
|
+
letter-spacing: 0.03em;
|
|
755
|
+
border-radius: 10px;
|
|
756
|
+
white-space: nowrap;
|
|
438
757
|
flex-shrink: 0;
|
|
439
758
|
}
|
|
440
759
|
|
|
760
|
+
.council-type-badge.badge-standard {
|
|
761
|
+
background: rgba(34, 197, 94, 0.12);
|
|
762
|
+
color: #16a34a;
|
|
763
|
+
}
|
|
764
|
+
|
|
765
|
+
[data-theme="dark"] .council-type-badge.badge-standard {
|
|
766
|
+
background: rgba(34, 197, 94, 0.15);
|
|
767
|
+
color: #4ade80;
|
|
768
|
+
}
|
|
769
|
+
|
|
770
|
+
.council-type-badge.badge-advanced {
|
|
771
|
+
background: rgba(139, 92, 246, 0.12);
|
|
772
|
+
color: #7c3aed;
|
|
773
|
+
}
|
|
774
|
+
|
|
775
|
+
[data-theme="dark"] .council-type-badge.badge-advanced {
|
|
776
|
+
background: rgba(139, 92, 246, 0.15);
|
|
777
|
+
color: #a78bfa;
|
|
778
|
+
}
|
|
779
|
+
|
|
441
780
|
/* ============================================
|
|
442
781
|
Instructions Textarea
|
|
443
782
|
============================================ */
|
|
@@ -789,6 +1128,13 @@ html, body {
|
|
|
789
1128
|
Responsive Design
|
|
790
1129
|
============================================ */
|
|
791
1130
|
|
|
1131
|
+
/* Hide card preview on narrower viewports where there's no room to the side */
|
|
1132
|
+
@media (max-width: 1199px) {
|
|
1133
|
+
.settings-model-card-preview {
|
|
1134
|
+
display: none;
|
|
1135
|
+
}
|
|
1136
|
+
}
|
|
1137
|
+
|
|
792
1138
|
@media (max-width: 768px) {
|
|
793
1139
|
.nav-content {
|
|
794
1140
|
padding: 12px 16px;
|
|
@@ -812,42 +1158,8 @@ html, body {
|
|
|
812
1158
|
padding: 20px 16px;
|
|
813
1159
|
}
|
|
814
1160
|
|
|
815
|
-
.model-
|
|
816
|
-
|
|
817
|
-
gap: 10px;
|
|
818
|
-
}
|
|
819
|
-
|
|
820
|
-
.model-card {
|
|
821
|
-
flex-direction: row;
|
|
822
|
-
text-align: left;
|
|
823
|
-
padding: 16px;
|
|
824
|
-
gap: 14px;
|
|
825
|
-
}
|
|
826
|
-
|
|
827
|
-
.model-icon {
|
|
828
|
-
font-size: 28px;
|
|
829
|
-
margin-bottom: 0;
|
|
830
|
-
}
|
|
831
|
-
|
|
832
|
-
.model-info {
|
|
833
|
-
flex: 1;
|
|
834
|
-
}
|
|
835
|
-
|
|
836
|
-
.model-description {
|
|
837
|
-
margin-top: 6px;
|
|
838
|
-
}
|
|
839
|
-
|
|
840
|
-
.model-badge {
|
|
841
|
-
position: static;
|
|
842
|
-
align-self: flex-start;
|
|
843
|
-
margin-left: auto;
|
|
844
|
-
font-size: 9px;
|
|
845
|
-
padding: 2px 8px;
|
|
846
|
-
}
|
|
847
|
-
|
|
848
|
-
.model-selected-indicator {
|
|
849
|
-
position: static;
|
|
850
|
-
margin-left: 8px;
|
|
1161
|
+
.settings-model-row {
|
|
1162
|
+
flex-direction: column;
|
|
851
1163
|
}
|
|
852
1164
|
|
|
853
1165
|
.action-bar-content {
|