acdev 1.0.5 → 1.0.6

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/public/styles.css CHANGED
@@ -240,6 +240,26 @@ a { color: var(--primary); text-underline-offset: 3px; }
240
240
  margin-bottom: 6px;
241
241
  }
242
242
 
243
+ .model-meta-row {
244
+ display: flex;
245
+ align-items: baseline;
246
+ gap: 6px;
247
+ margin-top: 4px;
248
+ }
249
+
250
+ .model-meta-row:first-of-type {
251
+ margin-top: 0;
252
+ }
253
+
254
+ .model-meta-key {
255
+ flex: 0 0 auto;
256
+ font-size: 10px;
257
+ letter-spacing: 0.04em;
258
+ text-transform: uppercase;
259
+ color: var(--text-muted);
260
+ }
261
+
262
+ .model-provider,
243
263
  .model-current {
244
264
  font-family: 'JetBrains Mono', ui-monospace, monospace;
245
265
  font-size: 11px;
@@ -247,6 +267,7 @@ a { color: var(--primary); text-underline-offset: 3px; }
247
267
  color: var(--text);
248
268
  line-height: 1.35;
249
269
  word-break: break-all;
270
+ min-width: 0;
250
271
  }
251
272
 
252
273
  .repo-meta {
@@ -373,15 +394,391 @@ a { color: var(--primary); text-underline-offset: 3px; }
373
394
  .enqueue-card {
374
395
  display: flex;
375
396
  flex-direction: column;
397
+ gap: 14px;
398
+ padding: 18px 20px;
399
+ overflow: visible;
400
+ }
401
+
402
+ .enqueue-card-header {
403
+ display: flex;
404
+ align-items: center;
405
+ justify-content: space-between;
376
406
  gap: 12px;
407
+ flex-wrap: wrap;
377
408
  }
378
409
 
379
- .enqueue-footer {
410
+ .enqueue-card-header-actions {
411
+ display: flex;
412
+ align-items: center;
413
+ gap: 12px;
414
+ flex-wrap: wrap;
415
+ margin-left: auto;
416
+ }
417
+
418
+ .enqueue-card-title {
419
+ display: flex;
420
+ align-items: center;
421
+ gap: 8px;
422
+ min-width: 0;
423
+ }
424
+
425
+ .enqueue-card-dot {
426
+ flex-shrink: 0;
427
+ width: 7px;
428
+ height: 7px;
429
+ border-radius: 50%;
430
+ background: var(--primary);
431
+ }
432
+
433
+ .enqueue-card-label {
434
+ font-size: 11px;
435
+ font-weight: 600;
436
+ letter-spacing: 0.1em;
437
+ text-transform: uppercase;
438
+ color: color-mix(in srgb, var(--primary) 72%, var(--text-muted));
439
+ }
440
+
441
+ .enqueue-queued-count {
442
+ flex-shrink: 0;
443
+ font-size: 12px;
444
+ color: var(--text-muted);
445
+ }
446
+
447
+ .enqueue-textarea {
448
+ min-height: 96px;
449
+ padding: 12px 14px;
450
+ font-size: 14px;
451
+ border-radius: 10px;
452
+ resize: vertical;
453
+ }
454
+
455
+ .enqueue-input-hint {
456
+ margin: -4px 0 0;
457
+ font-size: 12px;
458
+ line-height: 1.5;
459
+ color: var(--text-muted);
460
+ }
461
+
462
+ .enqueue-kbd {
463
+ display: inline-block;
464
+ padding: 1px 6px;
465
+ font-family: inherit;
466
+ font-size: 11px;
467
+ font-weight: 500;
468
+ line-height: 1.4;
469
+ color: var(--text);
470
+ background: var(--surface-2);
471
+ border: 1px solid var(--border);
472
+ border-radius: 5px;
473
+ box-shadow: 0 1px 0 color-mix(in srgb, var(--text) 8%, transparent);
474
+ }
475
+
476
+ .enqueue-info-banner {
477
+ display: flex;
478
+ align-items: flex-start;
479
+ gap: 10px;
480
+ padding: 11px 13px;
481
+ background: var(--surface-2);
482
+ border: 1px solid var(--border-soft);
483
+ border-radius: 10px;
484
+ }
485
+
486
+ .enqueue-info-icon {
487
+ flex-shrink: 0;
488
+ margin-top: 1px;
489
+ color: var(--text-muted);
490
+ }
491
+
492
+ .enqueue-info-text {
493
+ margin: 0;
494
+ font-size: 12px;
495
+ line-height: 1.45;
496
+ color: var(--text-muted);
497
+ }
498
+
499
+ .enqueue-info-text strong {
500
+ font-weight: 600;
501
+ color: var(--text);
502
+ }
503
+
504
+ .enqueue-actions {
380
505
  display: flex;
381
506
  align-items: center;
382
507
  justify-content: space-between;
383
508
  gap: 12px;
384
509
  flex-wrap: wrap;
510
+ overflow: visible;
511
+ }
512
+
513
+ .agent-picker {
514
+ position: relative;
515
+ flex: 1 1 220px;
516
+ min-width: 0;
517
+ max-width: 360px;
518
+ min-height: 52px;
519
+ overflow: visible;
520
+ }
521
+
522
+ .agent-pill {
523
+ display: flex;
524
+ align-items: center;
525
+ gap: 10px;
526
+ width: 100%;
527
+ min-height: 52px;
528
+ padding: 8px 12px 8px 10px;
529
+ font: inherit;
530
+ text-align: left;
531
+ cursor: pointer;
532
+ background: var(--surface);
533
+ border: 1px solid var(--border);
534
+ border-radius: 10px;
535
+ transition: border-color 0.12s ease, box-shadow 0.12s ease;
536
+ }
537
+
538
+ .agent-pill:hover {
539
+ border-color: color-mix(in srgb, var(--text) 18%, var(--border));
540
+ }
541
+
542
+ .agent-pill:focus-visible {
543
+ border-color: var(--primary);
544
+ outline: 2px solid var(--primary);
545
+ outline-offset: 0;
546
+ }
547
+
548
+ .agent-pill-icon {
549
+ flex-shrink: 0;
550
+ width: 28px;
551
+ height: 28px;
552
+ border-radius: 7px;
553
+ }
554
+
555
+ .agent-pill-icon--claude {
556
+ background: linear-gradient(145deg, #e8a87c 0%, #d97706 100%);
557
+ }
558
+
559
+ .agent-pill-icon--openrouter {
560
+ background: linear-gradient(145deg, #7c8cf5 0%, #5b4fe8 100%);
561
+ }
562
+
563
+ .agent-pill-body {
564
+ flex: 1;
565
+ min-width: 0;
566
+ display: flex;
567
+ flex-direction: column;
568
+ gap: 1px;
569
+ }
570
+
571
+ .agent-pill-label {
572
+ font-size: 10px;
573
+ font-weight: 600;
574
+ letter-spacing: 0.08em;
575
+ text-transform: uppercase;
576
+ color: var(--text-muted);
577
+ }
578
+
579
+ .agent-pill-value {
580
+ overflow: hidden;
581
+ font-size: 13px;
582
+ font-weight: 500;
583
+ line-height: 1.35;
584
+ color: var(--text);
585
+ text-overflow: ellipsis;
586
+ white-space: nowrap;
587
+ }
588
+
589
+ .agent-pill-value.is-empty {
590
+ color: var(--text-muted);
591
+ }
592
+
593
+ .agent-pill-chevron {
594
+ flex-shrink: 0;
595
+ color: var(--text-muted);
596
+ transition: transform 0.12s ease;
597
+ }
598
+
599
+ .agent-pill[aria-expanded="true"] .agent-pill-chevron {
600
+ transform: rotate(180deg);
601
+ }
602
+
603
+ .agent-picker-panel {
604
+ position: absolute;
605
+ top: calc(100% + 6px);
606
+ left: 0;
607
+ z-index: 50;
608
+ display: flex;
609
+ flex-direction: column;
610
+ width: min(360px, calc(100vw - 48px));
611
+ max-height: 320px;
612
+ background: var(--surface);
613
+ border: 1px solid var(--border);
614
+ border-radius: 10px;
615
+ box-shadow: 0 10px 28px color-mix(in srgb, var(--text) 14%, transparent);
616
+ overflow: hidden;
617
+ opacity: 0;
618
+ visibility: hidden;
619
+ pointer-events: none;
620
+ transform: translateY(-6px) scale(0.98);
621
+ transform-origin: top left;
622
+ transition:
623
+ opacity 0.16s ease,
624
+ transform 0.16s ease,
625
+ visibility 0s linear 0.16s;
626
+ }
627
+
628
+ .agent-picker-panel.is-open {
629
+ opacity: 1;
630
+ visibility: visible;
631
+ pointer-events: auto;
632
+ transform: translateY(0) scale(1);
633
+ transition:
634
+ opacity 0.16s ease,
635
+ transform 0.16s ease,
636
+ visibility 0s linear 0s;
637
+ }
638
+
639
+ .agent-picker-panel.hidden {
640
+ display: none;
641
+ }
642
+
643
+ .agent-picker-tabs {
644
+ display: flex;
645
+ gap: 4px;
646
+ padding: 8px 8px 0;
647
+ border-bottom: 1px solid var(--border-soft);
648
+ }
649
+
650
+ .agent-picker-tab {
651
+ flex: 1;
652
+ min-height: 32px;
653
+ padding: 6px 10px;
654
+ font: inherit;
655
+ font-size: 12px;
656
+ font-weight: 600;
657
+ color: var(--text-muted);
658
+ cursor: pointer;
659
+ background: transparent;
660
+ border: none;
661
+ border-radius: 7px 7px 0 0;
662
+ transition: color 0.12s ease, background 0.12s ease;
663
+ }
664
+
665
+ .agent-picker-tab:hover {
666
+ color: var(--text);
667
+ background: var(--surface-2);
668
+ }
669
+
670
+ .agent-picker-tab.is-active {
671
+ color: var(--text);
672
+ background: var(--surface-2);
673
+ box-shadow: inset 0 -2px 0 var(--primary);
674
+ }
675
+
676
+ .agent-picker-tab:disabled,
677
+ .agent-picker-tab.is-disabled {
678
+ opacity: 0.45;
679
+ cursor: not-allowed;
680
+ }
681
+
682
+ .agent-picker-tab:disabled:hover,
683
+ .agent-picker-tab.is-disabled:hover {
684
+ color: var(--text-muted);
685
+ background: transparent;
686
+ }
687
+
688
+ .agent-picker-search {
689
+ flex-shrink: 0;
690
+ min-height: 36px;
691
+ padding: 8px 12px;
692
+ font-size: 13px;
693
+ border: none;
694
+ border-bottom: 1px solid var(--border-soft);
695
+ border-radius: 0;
696
+ }
697
+
698
+ .agent-picker-search:focus-visible {
699
+ outline: none;
700
+ box-shadow: inset 0 0 0 2px var(--primary);
701
+ }
702
+
703
+ .agent-picker-panel .model-picker-list {
704
+ flex: 1;
705
+ min-height: 0;
706
+ max-height: 220px;
707
+ margin: 0;
708
+ padding: 4px;
709
+ border: none;
710
+ border-radius: 0;
711
+ }
712
+
713
+ .enqueue-add-btn {
714
+ flex: 0 0 auto;
715
+ align-self: stretch;
716
+ min-height: 52px;
717
+ padding: 0 20px;
718
+ border-radius: 10px;
719
+ font-size: 14px;
720
+ }
721
+
722
+ .enqueue-add-arrow {
723
+ flex-shrink: 0;
724
+ }
725
+
726
+ .enqueue-feedback-row {
727
+ display: flex;
728
+ flex-direction: column;
729
+ gap: 4px;
730
+ /* Reserve space so LLM/enqueue messages never shift the card */
731
+ min-height: calc(1.5em + 4px + 1.5em);
732
+ }
733
+
734
+ .enqueue-feedback-row .feedback {
735
+ margin: 0;
736
+ min-height: 1.5em;
737
+ line-height: 1.5;
738
+ }
739
+
740
+ /* Keep slot size when empty; global .hidden uses display:none and collapses the row */
741
+ .enqueue-feedback-row .feedback.hidden {
742
+ display: block !important;
743
+ visibility: hidden;
744
+ }
745
+
746
+ .model-combined {
747
+ font-size: 11px;
748
+ font-weight: 500;
749
+ line-height: 1.4;
750
+ color: var(--text);
751
+ word-break: break-word;
752
+ }
753
+
754
+ @media (max-width: 720px) {
755
+ .enqueue-card-header {
756
+ align-items: flex-start;
757
+ }
758
+
759
+ .enqueue-card-header-actions {
760
+ width: 100%;
761
+ margin-left: 0;
762
+ justify-content: space-between;
763
+ }
764
+
765
+ .enqueue-actions {
766
+ flex-direction: column;
767
+ align-items: stretch;
768
+ }
769
+
770
+ .agent-picker {
771
+ max-width: none;
772
+ width: 100%;
773
+ }
774
+
775
+ .agent-picker-panel {
776
+ width: 100%;
777
+ }
778
+
779
+ .enqueue-add-btn {
780
+ width: 100%;
781
+ }
385
782
  }
386
783
 
387
784
  .hint {
@@ -1776,6 +2173,156 @@ body.diff-fs-open {
1776
2173
  grid-column: 1 / -1;
1777
2174
  }
1778
2175
 
2176
+ .model-picker {
2177
+ position: relative;
2178
+ overflow: visible;
2179
+ }
2180
+
2181
+ .model-picker-trigger {
2182
+ display: flex;
2183
+ align-items: center;
2184
+ justify-content: space-between;
2185
+ gap: 8px;
2186
+ width: 100%;
2187
+ min-height: 38px;
2188
+ padding: 9px 11px;
2189
+ font: inherit;
2190
+ font-size: 14px;
2191
+ text-align: left;
2192
+ cursor: pointer;
2193
+ background: var(--surface);
2194
+ }
2195
+
2196
+ .model-picker-value {
2197
+ flex: 1;
2198
+ min-width: 0;
2199
+ overflow: hidden;
2200
+ text-overflow: ellipsis;
2201
+ white-space: nowrap;
2202
+ }
2203
+
2204
+ .model-picker-value.is-empty {
2205
+ color: var(--text-muted);
2206
+ }
2207
+
2208
+ .model-picker-chevron {
2209
+ flex-shrink: 0;
2210
+ color: var(--text-muted);
2211
+ transition: transform 0.12s ease;
2212
+ }
2213
+
2214
+ .model-picker-trigger[aria-expanded="true"] .model-picker-chevron {
2215
+ transform: rotate(180deg);
2216
+ }
2217
+
2218
+ .model-picker-panel {
2219
+ position: absolute;
2220
+ top: calc(100% + 4px);
2221
+ left: 0;
2222
+ right: 0;
2223
+ z-index: 40;
2224
+ display: flex;
2225
+ flex-direction: column;
2226
+ max-height: 280px;
2227
+ background: var(--surface);
2228
+ border: 1px solid var(--border);
2229
+ border-radius: 8px;
2230
+ box-shadow: 0 8px 24px color-mix(in srgb, var(--text) 12%, transparent);
2231
+ overflow: hidden;
2232
+ opacity: 0;
2233
+ visibility: hidden;
2234
+ pointer-events: none;
2235
+ transform: translateY(-4px) scale(0.98);
2236
+ transform-origin: top left;
2237
+ transition:
2238
+ opacity 0.16s ease,
2239
+ transform 0.16s ease,
2240
+ visibility 0s linear 0.16s;
2241
+ }
2242
+
2243
+ .model-picker-panel.is-open {
2244
+ opacity: 1;
2245
+ visibility: visible;
2246
+ pointer-events: auto;
2247
+ transform: translateY(0) scale(1);
2248
+ transition:
2249
+ opacity 0.16s ease,
2250
+ transform 0.16s ease,
2251
+ visibility 0s linear 0s;
2252
+ }
2253
+
2254
+ .model-picker-panel.hidden {
2255
+ display: none;
2256
+ }
2257
+
2258
+ .model-picker-search {
2259
+ flex-shrink: 0;
2260
+ min-height: 34px;
2261
+ padding: 7px 11px;
2262
+ font-size: 13px;
2263
+ border: none;
2264
+ border-bottom: 1px solid var(--border);
2265
+ border-radius: 0;
2266
+ }
2267
+
2268
+ .model-picker-search:focus-visible {
2269
+ outline: none;
2270
+ border-bottom-color: var(--primary);
2271
+ box-shadow: inset 0 -2px 0 var(--primary);
2272
+ }
2273
+
2274
+ .model-picker-search::placeholder {
2275
+ color: var(--text-muted);
2276
+ }
2277
+
2278
+ .model-picker-list {
2279
+ flex: 1;
2280
+ min-height: 0;
2281
+ margin: 0;
2282
+ padding: 4px;
2283
+ list-style: none;
2284
+ overflow-y: auto;
2285
+ }
2286
+
2287
+ .model-picker-option {
2288
+ display: block;
2289
+ width: 100%;
2290
+ padding: 8px 10px;
2291
+ font: inherit;
2292
+ font-size: 13px;
2293
+ text-align: left;
2294
+ color: var(--text);
2295
+ background: transparent;
2296
+ border: none;
2297
+ border-radius: 6px;
2298
+ cursor: pointer;
2299
+ }
2300
+
2301
+ .model-picker-option:hover,
2302
+ .model-picker-option.is-active {
2303
+ background: var(--surface-2);
2304
+ }
2305
+
2306
+ .model-picker-option.is-selected {
2307
+ background: color-mix(in srgb, var(--primary) 12%, var(--surface-2));
2308
+ font-weight: 500;
2309
+ }
2310
+
2311
+ .model-picker-option-id {
2312
+ display: block;
2313
+ margin-top: 2px;
2314
+ font-family: var(--font-mono, 'JetBrains Mono', monospace);
2315
+ font-size: 11px;
2316
+ color: var(--text-muted);
2317
+ }
2318
+
2319
+ .model-picker-empty {
2320
+ padding: 12px 10px;
2321
+ font-size: 13px;
2322
+ color: var(--text-muted);
2323
+ text-align: center;
2324
+ }
2325
+
1779
2326
  .field-hint {
1780
2327
  margin: 6px 0 0;
1781
2328
  font-size: 12px;
@@ -1838,8 +2385,16 @@ body.diff-fs-open {
1838
2385
  /* Ticket source + Jira connect */
1839
2386
  .source-toggle {
1840
2387
  display: flex;
1841
- gap: 6px;
2388
+ gap: 4px;
1842
2389
  max-width: 360px;
2390
+ padding: 3px;
2391
+ border: 1px solid var(--border);
2392
+ border-radius: 999px;
2393
+ background: var(--surface-2);
2394
+ }
2395
+
2396
+ .source-toggle--compact {
2397
+ max-width: none;
1843
2398
  }
1844
2399
 
1845
2400
  .source-btn {
@@ -1847,18 +2402,44 @@ body.diff-fs-open {
1847
2402
  padding: 10px 12px;
1848
2403
  font-size: 13px;
1849
2404
  font-weight: 600;
1850
- border: 1px solid var(--border);
1851
- border-radius: 8px;
2405
+ border: 1px solid transparent;
2406
+ border-radius: 999px;
1852
2407
  font-family: inherit;
1853
- background: var(--surface-2);
1854
- color: var(--text);
2408
+ background: transparent;
2409
+ color: var(--text-muted);
1855
2410
  cursor: pointer;
2411
+ white-space: nowrap;
2412
+ transition: background 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
2413
+ }
2414
+
2415
+ .source-toggle--compact .source-btn {
2416
+ padding: 5px 10px;
2417
+ font-size: 11px;
2418
+ font-weight: 600;
2419
+ letter-spacing: 0.02em;
2420
+ }
2421
+
2422
+ .source-btn:hover:not(.active) {
2423
+ color: var(--text);
2424
+ background: color-mix(in srgb, var(--text) 4%, transparent);
1856
2425
  }
1857
2426
 
1858
2427
  .source-btn.active {
1859
- background: var(--primary);
1860
- color: var(--btn-on-primary);
1861
- border-color: var(--primary);
2428
+ background: var(--surface);
2429
+ color: var(--text);
2430
+ border-color: var(--border-soft);
2431
+ box-shadow: var(--shadow-sm);
2432
+ }
2433
+
2434
+ .enqueue-jira-hint {
2435
+ margin: 0;
2436
+ font-size: 12px;
2437
+ line-height: 1.45;
2438
+ color: var(--amber-800);
2439
+ }
2440
+
2441
+ .enqueue-jira-hint a {
2442
+ font-weight: 600;
1862
2443
  }
1863
2444
 
1864
2445
  .jira-panel {
@@ -1907,30 +2488,6 @@ body.diff-fs-open {
1907
2488
  color: var(--danger, #b42318);
1908
2489
  }
1909
2490
 
1910
- .auth-banner {
1911
- display: flex;
1912
- align-items: center;
1913
- justify-content: space-between;
1914
- gap: 12px;
1915
- flex-wrap: wrap;
1916
- padding: 12px 14px;
1917
- background: var(--amber-100);
1918
- color: var(--amber-800);
1919
- border-radius: 8px;
1920
- font-size: 13px;
1921
- }
1922
-
1923
- .auth-banner.hidden,
1924
- .auth-banner[hidden] {
1925
- display: none;
1926
- }
1927
-
1928
- .auth-banner-text {
1929
- margin: 0;
1930
- flex: 1;
1931
- min-width: 12rem;
1932
- }
1933
-
1934
2491
  .auth-clear {
1935
2492
  display: inline-block;
1936
2493
  margin-top: 6px;