free-coding-models 0.5.11 → 0.5.12

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.
@@ -355,3 +355,358 @@
355
355
  from { opacity: 0; }
356
356
  to { opacity: 1; }
357
357
  }
358
+
359
+ /* ── Set Manager (add / remove / drag-and-drop) ─────────────────────── */
360
+
361
+ .setMeta {
362
+ display: flex;
363
+ align-items: center;
364
+ justify-content: space-between;
365
+ font-size: 12px;
366
+ color: var(--text-muted, #888);
367
+ margin-bottom: 8px;
368
+ }
369
+
370
+ .setMetaName {
371
+ font-weight: 600;
372
+ color: var(--text-secondary, #aaa);
373
+ font-family: 'SF Mono', monospace;
374
+ }
375
+
376
+ .setActions {
377
+ display: flex;
378
+ gap: 6px;
379
+ align-items: center;
380
+ }
381
+
382
+ .smallBtn {
383
+ display: inline-flex;
384
+ align-items: center;
385
+ gap: 4px;
386
+ padding: 4px 10px;
387
+ background: var(--bg-secondary, #14141f);
388
+ border: 1px solid var(--border, #1e1e2e);
389
+ border-radius: 6px;
390
+ color: var(--text-secondary, #aaa);
391
+ font-size: 11px;
392
+ font-weight: 500;
393
+ cursor: pointer;
394
+ font-family: inherit;
395
+ &:hover { color: var(--text-primary, #e0e0e0); border-color: var(--text-muted, #888); }
396
+ &:disabled { opacity: 0.4; cursor: not-allowed; }
397
+ }
398
+
399
+ .primaryBtn {
400
+ display: inline-flex;
401
+ align-items: center;
402
+ gap: 4px;
403
+ padding: 4px 10px;
404
+ background: #00c864;
405
+ color: #000;
406
+ border: 1px solid #00c864;
407
+ border-radius: 6px;
408
+ font-size: 11px;
409
+ font-weight: 600;
410
+ cursor: pointer;
411
+ font-family: inherit;
412
+ &:hover { background: #00d874; border-color: #00d874; }
413
+ &:disabled { opacity: 0.4; cursor: not-allowed; }
414
+ }
415
+
416
+ .setList {
417
+ display: flex;
418
+ flex-direction: column;
419
+ gap: 4px;
420
+ min-height: 60px;
421
+ }
422
+
423
+ .setEmpty {
424
+ padding: 16px;
425
+ text-align: center;
426
+ color: var(--text-muted, #888);
427
+ font-size: 12px;
428
+ background: var(--bg-secondary, #14141f);
429
+ border: 1px dashed var(--border, #1e1e2e);
430
+ border-radius: 8px;
431
+ }
432
+
433
+ .setRow {
434
+ display: flex;
435
+ align-items: center;
436
+ gap: 8px;
437
+ padding: 6px 10px;
438
+ background: var(--bg-secondary, #14141f);
439
+ border: 1px solid var(--border, #1e1e2e);
440
+ border-radius: 6px;
441
+ font-size: 12px;
442
+ cursor: grab;
443
+ user-select: none;
444
+ transition: background 0.1s, border-color 0.1s, transform 0.1s;
445
+ }
446
+
447
+ .setRow:hover {
448
+ background: var(--bg-hover, #1a1a2e);
449
+ border-color: var(--text-muted, #888);
450
+ }
451
+
452
+ .setRowDragging {
453
+ opacity: 0.5;
454
+ transform: scale(0.99);
455
+ cursor: grabbing;
456
+ }
457
+
458
+ .setRowDropTarget {
459
+ border-color: #00c864;
460
+ background: rgba(0, 200, 100, 0.06);
461
+ }
462
+
463
+ .setRowDropTargetAbove {
464
+ border-top: 2px solid #00c864;
465
+ }
466
+
467
+ .setRowDropTargetBelow {
468
+ border-bottom: 2px solid #00c864;
469
+ }
470
+
471
+ .setDragHandle {
472
+ color: var(--text-muted, #888);
473
+ cursor: grab;
474
+ display: flex;
475
+ align-items: center;
476
+ font-size: 14px;
477
+ line-height: 1;
478
+ user-select: none;
479
+ &:hover { color: var(--text-secondary, #aaa); }
480
+ }
481
+
482
+ .setPriority {
483
+ min-width: 28px;
484
+ font-weight: 700;
485
+ font-size: 11px;
486
+ color: var(--text-muted, #888);
487
+ text-align: right;
488
+ font-family: 'SF Mono', monospace;
489
+ }
490
+
491
+ .setKey {
492
+ flex: 1;
493
+ color: var(--text-primary, #e0e0e0);
494
+ font-family: 'SF Mono', monospace;
495
+ font-size: 11px;
496
+ overflow: hidden;
497
+ text-overflow: ellipsis;
498
+ white-space: nowrap;
499
+ }
500
+
501
+ .setTier {
502
+ font-size: 10px;
503
+ font-weight: 700;
504
+ padding: 2px 6px;
505
+ border-radius: 3px;
506
+ background: var(--bg-primary, #0f0f17);
507
+ color: var(--text-muted, #888);
508
+ min-width: 32px;
509
+ text-align: center;
510
+ text-transform: uppercase;
511
+ }
512
+
513
+ .setRowBtns {
514
+ display: flex;
515
+ gap: 2px;
516
+ }
517
+
518
+ .iconBtn {
519
+ background: none;
520
+ border: none;
521
+ color: var(--text-muted, #888);
522
+ cursor: pointer;
523
+ padding: 4px;
524
+ border-radius: 4px;
525
+ display: flex;
526
+ align-items: center;
527
+ justify-content: center;
528
+ &:hover { color: var(--text-primary, #e0e0e0); background: var(--bg-hover, #1a1a2e); }
529
+ &:disabled { opacity: 0.3; cursor: not-allowed; }
530
+ }
531
+
532
+ .removeBtn:hover { color: #ff6b6b; background: rgba(220, 53, 69, 0.1); }
533
+
534
+ /* Add picker */
535
+ .pickerPanel {
536
+ margin-top: 10px;
537
+ background: var(--bg-secondary, #14141f);
538
+ border: 1px solid var(--border, #1e1e2e);
539
+ border-radius: 8px;
540
+ padding: 10px 12px;
541
+ display: flex;
542
+ flex-direction: column;
543
+ gap: 8px;
544
+ }
545
+
546
+ .pickerHeader {
547
+ display: flex;
548
+ align-items: center;
549
+ justify-content: space-between;
550
+ font-size: 12px;
551
+ font-weight: 600;
552
+ color: var(--text-secondary, #aaa);
553
+ }
554
+
555
+ .pickerSearch {
556
+ display: flex;
557
+ gap: 6px;
558
+ }
559
+
560
+ .pickerInput {
561
+ flex: 1;
562
+ padding: 6px 10px;
563
+ background: var(--bg-primary, #0f0f17);
564
+ border: 1px solid var(--border, #1e1e2e);
565
+ border-radius: 6px;
566
+ color: var(--text-primary, #e0e0e0);
567
+ font-size: 12px;
568
+ font-family: inherit;
569
+ outline: none;
570
+ &:focus { border-color: var(--accent, #00c864); }
571
+ }
572
+
573
+ .pickerSelect {
574
+ padding: 6px 10px;
575
+ background: var(--bg-primary, #0f0f17);
576
+ border: 1px solid var(--border, #1e1e2e);
577
+ border-radius: 6px;
578
+ color: var(--text-primary, #e0e0e0);
579
+ font-size: 12px;
580
+ font-family: inherit;
581
+ outline: none;
582
+ cursor: pointer;
583
+ max-width: 140px;
584
+ }
585
+
586
+ .pickerList {
587
+ max-height: 220px;
588
+ overflow-y: auto;
589
+ display: flex;
590
+ flex-direction: column;
591
+ gap: 2px;
592
+ }
593
+
594
+ .pickerItem {
595
+ display: flex;
596
+ align-items: center;
597
+ gap: 8px;
598
+ padding: 4px 8px;
599
+ font-size: 11px;
600
+ font-family: 'SF Mono', monospace;
601
+ color: var(--text-primary, #e0e0e0);
602
+ border-radius: 4px;
603
+ cursor: pointer;
604
+ &:hover { background: var(--bg-hover, #1a1a2e); }
605
+ }
606
+
607
+ .pickerItemAdded {
608
+ opacity: 0.4;
609
+ cursor: not-allowed;
610
+ text-decoration: line-through;
611
+ }
612
+
613
+ .pickerProvider {
614
+ color: var(--text-muted, #888);
615
+ min-width: 90px;
616
+ }
617
+
618
+ .pickerModel {
619
+ flex: 1;
620
+ overflow: hidden;
621
+ text-overflow: ellipsis;
622
+ white-space: nowrap;
623
+ }
624
+
625
+ .pickerBadge {
626
+ font-size: 9px;
627
+ padding: 1px 4px;
628
+ border-radius: 3px;
629
+ background: rgba(255, 140, 0, 0.15);
630
+ color: #ff8c00;
631
+ text-transform: uppercase;
632
+ font-weight: 700;
633
+ }
634
+
635
+ .pickerBadgeOk {
636
+ background: rgba(0, 200, 100, 0.15);
637
+ color: #00c864;
638
+ }
639
+
640
+ .pickerEmpty {
641
+ padding: 10px;
642
+ text-align: center;
643
+ color: var(--text-muted, #888);
644
+ font-size: 12px;
645
+ }
646
+
647
+ .saveStatus {
648
+ display: inline-flex;
649
+ align-items: center;
650
+ gap: 4px;
651
+ font-size: 10px;
652
+ color: var(--text-muted, #888);
653
+ text-transform: uppercase;
654
+ font-weight: 600;
655
+ }
656
+
657
+ .saveStatusOk { color: #00c864; }
658
+ .saveStatusErr { color: #dc3545; }
659
+
660
+ /* ── Auto-heal banner ────────────────────────────────────────── */
661
+
662
+ .autoHealBanner {
663
+ display: flex;
664
+ align-items: center;
665
+ justify-content: space-between;
666
+ gap: 12px;
667
+ padding: 10px 14px;
668
+ margin-bottom: 12px;
669
+ background: rgba(255, 193, 7, 0.08);
670
+ border: 1px solid rgba(255, 193, 7, 0.3);
671
+ border-radius: 8px;
672
+ }
673
+
674
+ .autoHealLeft {
675
+ display: flex;
676
+ align-items: flex-start;
677
+ gap: 10px;
678
+ min-width: 0;
679
+ flex: 1;
680
+ }
681
+
682
+ .autoHealIcon {
683
+ font-size: 18px;
684
+ color: #ffc107;
685
+ flex-shrink: 0;
686
+ line-height: 1.4;
687
+ }
688
+
689
+ .autoHealTitle {
690
+ font-size: 13px;
691
+ font-weight: 600;
692
+ color: var(--text-primary, #e0e0e0);
693
+ margin-bottom: 2px;
694
+ }
695
+
696
+ .autoHealHint {
697
+ font-size: 11px;
698
+ color: var(--text-muted, #888);
699
+ line-height: 1.4;
700
+ }
701
+
702
+ .autoHealHint strong {
703
+ color: var(--text-secondary, #aaa);
704
+ }
705
+
706
+ .autoHealActions {
707
+ display: flex;
708
+ align-items: center;
709
+ gap: 6px;
710
+ flex-shrink: 0;
711
+ }
712
+