openclacky 0.9.32 → 0.9.34
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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +22 -0
- data/lib/clacky/agent/llm_caller.rb +11 -12
- data/lib/clacky/agent/skill_auto_creator.rb +16 -21
- data/lib/clacky/agent/skill_manager.rb +18 -21
- data/lib/clacky/agent/skill_reflector.rb +16 -24
- data/lib/clacky/agent/system_prompt_builder.rb +5 -0
- data/lib/clacky/agent.rb +45 -19
- data/lib/clacky/client.rb +47 -16
- data/lib/clacky/server/http_server.rb +116 -12
- data/lib/clacky/server/session_registry.rb +7 -0
- data/lib/clacky/server/web_ui_controller.rb +6 -0
- data/lib/clacky/skill.rb +5 -0
- data/lib/clacky/skill_loader.rb +2 -10
- data/lib/clacky/version.rb +1 -1
- data/lib/clacky/web/app.css +383 -124
- data/lib/clacky/web/app.js +233 -115
- data/lib/clacky/web/i18n.js +42 -0
- data/lib/clacky/web/index.html +86 -32
- data/lib/clacky/web/sessions.js +349 -30
- data/lib/clacky/web/settings.js +76 -2
- metadata +1 -1
data/lib/clacky/web/app.css
CHANGED
|
@@ -339,6 +339,7 @@ body {
|
|
|
339
339
|
flex: 1;
|
|
340
340
|
white-space: nowrap;
|
|
341
341
|
}
|
|
342
|
+
|
|
342
343
|
/* ── Split button [+ ▾] ─────────────────────────────────────────────────── */
|
|
343
344
|
.btn-split-wrap {
|
|
344
345
|
position: relative;
|
|
@@ -386,7 +387,7 @@ body {
|
|
|
386
387
|
position: absolute;
|
|
387
388
|
top: calc(100% + 4px);
|
|
388
389
|
right: 0;
|
|
389
|
-
min-width:
|
|
390
|
+
min-width: 180px;
|
|
390
391
|
background: var(--color-bg-card);
|
|
391
392
|
border: 1px solid var(--color-border-primary);
|
|
392
393
|
border-radius: 7px;
|
|
@@ -397,121 +398,20 @@ body {
|
|
|
397
398
|
}
|
|
398
399
|
.new-session-dropdown[hidden] { display: none; }
|
|
399
400
|
.dropdown-item {
|
|
400
|
-
padding:
|
|
401
|
-
font-size:
|
|
402
|
-
color: var(--color-text-
|
|
401
|
+
padding: 4px 10px;
|
|
402
|
+
font-size: 11px;
|
|
403
|
+
color: var(--color-text-secondary);
|
|
403
404
|
cursor: pointer;
|
|
404
405
|
white-space: nowrap;
|
|
405
|
-
transition:
|
|
406
|
+
transition: all 0.12s;
|
|
407
|
+
display: flex;
|
|
408
|
+
align-items: center;
|
|
406
409
|
}
|
|
407
410
|
.dropdown-item:hover {
|
|
408
411
|
background: var(--color-bg-hover);
|
|
409
412
|
color: var(--color-accent-primary);
|
|
410
413
|
}
|
|
411
414
|
|
|
412
|
-
.dropdown-divider {
|
|
413
|
-
height: 1px;
|
|
414
|
-
background: var(--color-border-primary);
|
|
415
|
-
margin: 4px 0;
|
|
416
|
-
}
|
|
417
|
-
|
|
418
|
-
/* ── New Project inline panel ────────────────────────────────────────────── */
|
|
419
|
-
.new-project-panel {
|
|
420
|
-
overflow: hidden;
|
|
421
|
-
max-height: 0;
|
|
422
|
-
opacity: 0;
|
|
423
|
-
transition: max-height 0.2s ease, opacity 0.15s ease;
|
|
424
|
-
padding: 0 10px;
|
|
425
|
-
}
|
|
426
|
-
.new-project-panel.panel--open {
|
|
427
|
-
max-height: 160px;
|
|
428
|
-
opacity: 1;
|
|
429
|
-
padding: 6px 10px 8px;
|
|
430
|
-
}
|
|
431
|
-
|
|
432
|
-
.new-project-card {
|
|
433
|
-
border: 1px solid var(--color-accent-primary);
|
|
434
|
-
border-radius: 8px;
|
|
435
|
-
background: var(--color-bg-secondary);
|
|
436
|
-
padding: 10px 12px 10px;
|
|
437
|
-
display: flex;
|
|
438
|
-
flex-direction: column;
|
|
439
|
-
gap: 8px;
|
|
440
|
-
}
|
|
441
|
-
|
|
442
|
-
.new-project-title {
|
|
443
|
-
font-size: 12px;
|
|
444
|
-
font-weight: 600;
|
|
445
|
-
color: var(--color-text-primary);
|
|
446
|
-
}
|
|
447
|
-
|
|
448
|
-
.new-project-field {
|
|
449
|
-
display: flex;
|
|
450
|
-
flex-direction: column;
|
|
451
|
-
gap: 3px;
|
|
452
|
-
}
|
|
453
|
-
|
|
454
|
-
.new-project-label {
|
|
455
|
-
font-size: 10px;
|
|
456
|
-
color: var(--color-text-muted);
|
|
457
|
-
font-weight: 500;
|
|
458
|
-
letter-spacing: 0.2px;
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
.new-project-input {
|
|
462
|
-
width: 100%;
|
|
463
|
-
box-sizing: border-box;
|
|
464
|
-
padding: 5px 8px;
|
|
465
|
-
font-size: 12px;
|
|
466
|
-
font-family: var(--font-mono, monospace);
|
|
467
|
-
border: 1px solid var(--color-border-primary);
|
|
468
|
-
border-radius: 5px;
|
|
469
|
-
background: var(--color-bg-primary);
|
|
470
|
-
color: var(--color-text-primary);
|
|
471
|
-
outline: none;
|
|
472
|
-
transition: border-color 0.15s;
|
|
473
|
-
}
|
|
474
|
-
.new-project-input:focus {
|
|
475
|
-
border-color: var(--color-accent-primary);
|
|
476
|
-
}
|
|
477
|
-
.new-project-input::placeholder {
|
|
478
|
-
color: var(--color-text-muted);
|
|
479
|
-
}
|
|
480
|
-
|
|
481
|
-
.new-project-actions {
|
|
482
|
-
display: flex;
|
|
483
|
-
justify-content: flex-end;
|
|
484
|
-
gap: 6px;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.btn-new-project-cancel {
|
|
488
|
-
padding: 4px 10px;
|
|
489
|
-
font-size: 12px;
|
|
490
|
-
border: 1px solid var(--color-border-primary);
|
|
491
|
-
border-radius: 5px;
|
|
492
|
-
background: transparent;
|
|
493
|
-
color: var(--color-text-secondary);
|
|
494
|
-
cursor: pointer;
|
|
495
|
-
transition: background 0.12s;
|
|
496
|
-
}
|
|
497
|
-
.btn-new-project-cancel:hover {
|
|
498
|
-
background: var(--color-bg-hover);
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
.btn-new-project-create {
|
|
502
|
-
padding: 4px 12px;
|
|
503
|
-
font-size: 12px;
|
|
504
|
-
border: none;
|
|
505
|
-
border-radius: 5px;
|
|
506
|
-
background: var(--color-accent-primary);
|
|
507
|
-
color: #fff;
|
|
508
|
-
cursor: pointer;
|
|
509
|
-
font-weight: 600;
|
|
510
|
-
transition: opacity 0.12s;
|
|
511
|
-
}
|
|
512
|
-
.btn-new-project-create:hover { opacity: 0.88; }
|
|
513
|
-
.btn-new-project-create:disabled { opacity: 0.5; cursor: not-allowed; }
|
|
514
|
-
|
|
515
415
|
/* ── Session source badge ────────────────────────────────────────────────── */
|
|
516
416
|
.session-badge {
|
|
517
417
|
display: inline-block;
|
|
@@ -841,6 +741,82 @@ body {
|
|
|
841
741
|
border-radius: 0 2px 2px 0;
|
|
842
742
|
}
|
|
843
743
|
|
|
744
|
+
/* Actions button (⋯) on session list items — visible only on hover */
|
|
745
|
+
.session-actions-btn {
|
|
746
|
+
flex-shrink: 0;
|
|
747
|
+
display: none;
|
|
748
|
+
align-items: center;
|
|
749
|
+
justify-content: center;
|
|
750
|
+
width: 18px;
|
|
751
|
+
height: 18px;
|
|
752
|
+
background: transparent;
|
|
753
|
+
border: none;
|
|
754
|
+
border-radius: 3px;
|
|
755
|
+
color: var(--color-text-muted);
|
|
756
|
+
font-size: 14px;
|
|
757
|
+
line-height: 1;
|
|
758
|
+
cursor: pointer;
|
|
759
|
+
padding: 0;
|
|
760
|
+
margin-top: -3px;
|
|
761
|
+
transition: background .15s, color .15s;
|
|
762
|
+
font-weight: bold;
|
|
763
|
+
letter-spacing: -1px;
|
|
764
|
+
}
|
|
765
|
+
.session-item:hover .session-actions-btn { display: flex; }
|
|
766
|
+
.session-actions-btn:hover {
|
|
767
|
+
background: var(--color-bg-hover);
|
|
768
|
+
color: var(--color-text-primary);
|
|
769
|
+
}
|
|
770
|
+
|
|
771
|
+
/* Pin icon in session name */
|
|
772
|
+
.session-pin-icon {
|
|
773
|
+
flex-shrink: 0;
|
|
774
|
+
font-size: 11px;
|
|
775
|
+
opacity: 0.7;
|
|
776
|
+
margin-left: 2px;
|
|
777
|
+
}
|
|
778
|
+
.session-item.active .session-pin-icon {
|
|
779
|
+
opacity: 1;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
/* Actions menu dropdown */
|
|
783
|
+
.session-actions-menu {
|
|
784
|
+
background: var(--color-bg-secondary);
|
|
785
|
+
border: 1px solid var(--color-border-primary);
|
|
786
|
+
border-radius: 6px;
|
|
787
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
|
788
|
+
padding: 3px;
|
|
789
|
+
min-width: 120px;
|
|
790
|
+
z-index: 1000;
|
|
791
|
+
animation: fadeIn 0.15s ease;
|
|
792
|
+
}
|
|
793
|
+
[data-theme="dark"] .session-actions-menu {
|
|
794
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4);
|
|
795
|
+
}
|
|
796
|
+
.session-actions-menu-item {
|
|
797
|
+
padding: 6px 10px;
|
|
798
|
+
border-radius: 4px;
|
|
799
|
+
cursor: pointer;
|
|
800
|
+
color: var(--color-text-primary);
|
|
801
|
+
font-size: 12px;
|
|
802
|
+
transition: background .15s;
|
|
803
|
+
user-select: none;
|
|
804
|
+
}
|
|
805
|
+
.session-actions-menu-item:hover {
|
|
806
|
+
background: var(--color-bg-hover);
|
|
807
|
+
}
|
|
808
|
+
.session-actions-menu-item--danger {
|
|
809
|
+
color: var(--color-error);
|
|
810
|
+
}
|
|
811
|
+
.session-actions-menu-item--danger:hover {
|
|
812
|
+
background: var(--color-error-bg);
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
@keyframes fadeIn {
|
|
816
|
+
from { opacity: 0; transform: translateY(-4px); }
|
|
817
|
+
to { opacity: 1; transform: translateY(0); }
|
|
818
|
+
}
|
|
819
|
+
|
|
844
820
|
/* Delete button on session list items — visible only on hover */
|
|
845
821
|
.session-delete-btn {
|
|
846
822
|
flex-shrink: 0;
|
|
@@ -1595,7 +1571,36 @@ body {
|
|
|
1595
1571
|
}
|
|
1596
1572
|
.msg-idle-status { color: var(--color-accent-primary); animation: pulse 1.2s infinite; }
|
|
1597
1573
|
.msg-idle-status.msg-idle-done { color: var(--color-text-secondary); animation: none; opacity: 0.7; }
|
|
1598
|
-
.msg-error
|
|
1574
|
+
.msg-error {
|
|
1575
|
+
background: rgba(255, 59, 48, 0.08);
|
|
1576
|
+
border: 1px solid rgba(255, 59, 48, 0.25);
|
|
1577
|
+
color: var(--color-error);
|
|
1578
|
+
align-self: flex-start;
|
|
1579
|
+
display: flex;
|
|
1580
|
+
flex-direction: column;
|
|
1581
|
+
gap: 12px;
|
|
1582
|
+
}
|
|
1583
|
+
.msg-error .retry-btn {
|
|
1584
|
+
align-self: flex-start;
|
|
1585
|
+
padding: 8px 16px;
|
|
1586
|
+
background: var(--color-bg-primary);
|
|
1587
|
+
color: var(--color-text-primary);
|
|
1588
|
+
border: 1px solid var(--color-border);
|
|
1589
|
+
border-radius: 6px;
|
|
1590
|
+
cursor: pointer;
|
|
1591
|
+
font-size: 14px;
|
|
1592
|
+
font-weight: 500;
|
|
1593
|
+
transition: all 0.2s;
|
|
1594
|
+
}
|
|
1595
|
+
.msg-error .retry-btn:hover:not(:disabled) {
|
|
1596
|
+
background: var(--color-bg-secondary);
|
|
1597
|
+
border-color: var(--color-accent-primary);
|
|
1598
|
+
color: var(--color-accent-primary);
|
|
1599
|
+
}
|
|
1600
|
+
.msg-error .retry-btn:disabled {
|
|
1601
|
+
opacity: 0.5;
|
|
1602
|
+
cursor: not-allowed;
|
|
1603
|
+
}
|
|
1599
1604
|
.msg-success { color: var(--color-success); align-self: flex-start; font-size: 13px; }
|
|
1600
1605
|
.tool-name { color: var(--color-warning); font-weight: 600; }
|
|
1601
1606
|
.progress-msg { color: var(--color-accent-primary); font-size: 12px; align-self: center; animation: pulse 1.2s infinite; }
|
|
@@ -1874,13 +1879,8 @@ body {
|
|
|
1874
1879
|
opacity: 1;
|
|
1875
1880
|
}
|
|
1876
1881
|
|
|
1877
|
-
/*
|
|
1882
|
+
/* Show all fields by default, not just on hover */
|
|
1878
1883
|
.sib-detail {
|
|
1879
|
-
display: none;
|
|
1880
|
-
align-items: center;
|
|
1881
|
-
}
|
|
1882
|
-
|
|
1883
|
-
#session-info-bar:hover .sib-detail {
|
|
1884
1884
|
display: contents;
|
|
1885
1885
|
}
|
|
1886
1886
|
|
|
@@ -1907,11 +1907,14 @@ body {
|
|
|
1907
1907
|
}
|
|
1908
1908
|
|
|
1909
1909
|
#sib-dir {
|
|
1910
|
-
|
|
1911
|
-
|
|
1912
|
-
|
|
1913
|
-
|
|
1914
|
-
|
|
1910
|
+
flex-shrink: 0;
|
|
1911
|
+
cursor: pointer;
|
|
1912
|
+
border-radius: 3px;
|
|
1913
|
+
transition: all 0.15s ease;
|
|
1914
|
+
}
|
|
1915
|
+
#sib-dir:hover {
|
|
1916
|
+
background: var(--color-bg-hover);
|
|
1917
|
+
color: var(--color-accent-primary);
|
|
1915
1918
|
}
|
|
1916
1919
|
|
|
1917
1920
|
#sib-mode { opacity: 0.7; flex-shrink: 0; }
|
|
@@ -1919,6 +1922,68 @@ body {
|
|
|
1919
1922
|
#sib-tasks,
|
|
1920
1923
|
#sib-cost { flex-shrink: 0; }
|
|
1921
1924
|
|
|
1925
|
+
/* Model name dropdown in session info bar */
|
|
1926
|
+
#sib-model-wrap {
|
|
1927
|
+
position: relative;
|
|
1928
|
+
}
|
|
1929
|
+
.sib-model-clickable {
|
|
1930
|
+
cursor: pointer;
|
|
1931
|
+
border-radius: 3px;
|
|
1932
|
+
transition: all 0.15s ease;
|
|
1933
|
+
}
|
|
1934
|
+
.sib-model-clickable:hover {
|
|
1935
|
+
background: var(--color-bg-hover);
|
|
1936
|
+
opacity: 1 !important;
|
|
1937
|
+
color: var(--color-accent-primary);
|
|
1938
|
+
}
|
|
1939
|
+
.sib-model-dropdown {
|
|
1940
|
+
position: fixed;
|
|
1941
|
+
/* Position will be calculated dynamically via JavaScript */
|
|
1942
|
+
min-width: 200px;
|
|
1943
|
+
max-width: 280px;
|
|
1944
|
+
background: var(--color-bg-secondary);
|
|
1945
|
+
border: 1px solid var(--color-border-primary);
|
|
1946
|
+
border-radius: 8px;
|
|
1947
|
+
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.4);
|
|
1948
|
+
z-index: 1000;
|
|
1949
|
+
max-height: 300px;
|
|
1950
|
+
overflow-y: auto;
|
|
1951
|
+
}
|
|
1952
|
+
.sib-model-option {
|
|
1953
|
+
padding: 9px 14px;
|
|
1954
|
+
font-size: 12px;
|
|
1955
|
+
color: var(--color-text-primary);
|
|
1956
|
+
cursor: pointer;
|
|
1957
|
+
transition: background-color 0.15s ease;
|
|
1958
|
+
font-family: var(--font-mono, monospace);
|
|
1959
|
+
display: flex;
|
|
1960
|
+
align-items: center;
|
|
1961
|
+
justify-content: space-between;
|
|
1962
|
+
}
|
|
1963
|
+
.sib-model-option:hover {
|
|
1964
|
+
background: var(--color-bg-hover);
|
|
1965
|
+
color: var(--color-accent-primary);
|
|
1966
|
+
}
|
|
1967
|
+
.sib-model-option.current {
|
|
1968
|
+
background: var(--color-bg-hover);
|
|
1969
|
+
font-weight: 600;
|
|
1970
|
+
}
|
|
1971
|
+
.sib-model-option .model-badge {
|
|
1972
|
+
font-size: 9px;
|
|
1973
|
+
padding: 2px 5px;
|
|
1974
|
+
border-radius: 3px;
|
|
1975
|
+
margin-left: 8px;
|
|
1976
|
+
opacity: 0.8;
|
|
1977
|
+
}
|
|
1978
|
+
.sib-model-option .model-badge.default {
|
|
1979
|
+
background: rgba(63, 185, 80, 0.12);
|
|
1980
|
+
color: #2da44e;
|
|
1981
|
+
}
|
|
1982
|
+
.sib-model-option .model-badge.lite {
|
|
1983
|
+
background: rgba(59, 130, 246, 0.1);
|
|
1984
|
+
color: var(--color-accent-primary);
|
|
1985
|
+
}
|
|
1986
|
+
|
|
1922
1987
|
/* ── Input area (wraps preview strip + input bar) ────────────────────────── */
|
|
1923
1988
|
#ws-disconnect-hint {
|
|
1924
1989
|
position: absolute;
|
|
@@ -2701,6 +2766,69 @@ body {
|
|
|
2701
2766
|
color: var(--color-accent-primary);
|
|
2702
2767
|
}
|
|
2703
2768
|
|
|
2769
|
+
/* Model name combobox */
|
|
2770
|
+
.model-name-combobox {
|
|
2771
|
+
position: relative;
|
|
2772
|
+
display: flex;
|
|
2773
|
+
gap: 0;
|
|
2774
|
+
}
|
|
2775
|
+
.model-name-combobox .model-name-input {
|
|
2776
|
+
flex: 1;
|
|
2777
|
+
border-top-right-radius: 0;
|
|
2778
|
+
border-bottom-right-radius: 0;
|
|
2779
|
+
border-right: none;
|
|
2780
|
+
}
|
|
2781
|
+
.model-name-combobox .model-name-dropdown-btn {
|
|
2782
|
+
background: var(--color-bg-primary);
|
|
2783
|
+
border: 1px solid var(--color-border-primary);
|
|
2784
|
+
border-top-right-radius: 6px;
|
|
2785
|
+
border-bottom-right-radius: 6px;
|
|
2786
|
+
color: var(--color-text-secondary);
|
|
2787
|
+
padding: 0 8px;
|
|
2788
|
+
cursor: pointer;
|
|
2789
|
+
flex-shrink: 0;
|
|
2790
|
+
display: flex;
|
|
2791
|
+
align-items: center;
|
|
2792
|
+
justify-content: center;
|
|
2793
|
+
transition: all 0.15s ease;
|
|
2794
|
+
}
|
|
2795
|
+
.model-name-combobox .model-name-dropdown-btn:hover {
|
|
2796
|
+
background: var(--color-bg-hover);
|
|
2797
|
+
color: var(--color-text-primary);
|
|
2798
|
+
}
|
|
2799
|
+
.model-name-dropdown {
|
|
2800
|
+
position: absolute;
|
|
2801
|
+
top: calc(100% + 4px);
|
|
2802
|
+
left: 0;
|
|
2803
|
+
right: 0;
|
|
2804
|
+
background: var(--color-bg-secondary);
|
|
2805
|
+
border: 1px solid var(--color-border-primary);
|
|
2806
|
+
border-radius: 8px;
|
|
2807
|
+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
|
|
2808
|
+
max-height: 280px;
|
|
2809
|
+
overflow-y: auto;
|
|
2810
|
+
z-index: 1000;
|
|
2811
|
+
}
|
|
2812
|
+
.model-dropdown-option {
|
|
2813
|
+
padding: 8px 12px;
|
|
2814
|
+
font-size: 13px;
|
|
2815
|
+
color: var(--color-text-primary);
|
|
2816
|
+
cursor: pointer;
|
|
2817
|
+
transition: background-color 0.15s ease;
|
|
2818
|
+
font-family: 'SF Mono', 'Monaco', 'Inconsolata', 'Fira Code', 'Courier New', monospace;
|
|
2819
|
+
}
|
|
2820
|
+
.model-dropdown-option:hover {
|
|
2821
|
+
background: var(--color-bg-hover);
|
|
2822
|
+
color: var(--color-accent-primary);
|
|
2823
|
+
}
|
|
2824
|
+
.model-dropdown-empty {
|
|
2825
|
+
padding: 12px;
|
|
2826
|
+
font-size: 12px;
|
|
2827
|
+
color: var(--color-text-secondary);
|
|
2828
|
+
text-align: center;
|
|
2829
|
+
font-style: italic;
|
|
2830
|
+
}
|
|
2831
|
+
|
|
2704
2832
|
/* Model card footer */
|
|
2705
2833
|
.model-card-footer {
|
|
2706
2834
|
display: flex;
|
|
@@ -2776,6 +2904,136 @@ body {
|
|
|
2776
2904
|
.btn-danger { background: var(--color-error); color: #fff; border: none; border-radius: 6px; padding: 8px 20px; cursor: pointer; }
|
|
2777
2905
|
.btn-danger:hover { background: var(--color-error); }
|
|
2778
2906
|
|
|
2907
|
+
/* Prompt modal input */
|
|
2908
|
+
.prompt-modal-input {
|
|
2909
|
+
width: 100%;
|
|
2910
|
+
background: var(--color-bg-primary);
|
|
2911
|
+
border: 1px solid var(--color-border-primary);
|
|
2912
|
+
border-radius: 6px;
|
|
2913
|
+
padding: 10px 12px;
|
|
2914
|
+
font-size: 14px;
|
|
2915
|
+
color: var(--color-text-primary);
|
|
2916
|
+
font-family: inherit;
|
|
2917
|
+
outline: none;
|
|
2918
|
+
margin-bottom: 16px;
|
|
2919
|
+
transition: border-color 0.2s ease;
|
|
2920
|
+
}
|
|
2921
|
+
.prompt-modal-input:focus {
|
|
2922
|
+
border-color: var(--color-accent-primary);
|
|
2923
|
+
}
|
|
2924
|
+
|
|
2925
|
+
/* New Session Modal */
|
|
2926
|
+
.new-session-modal {
|
|
2927
|
+
max-width: 520px;
|
|
2928
|
+
}
|
|
2929
|
+
.modal-header {
|
|
2930
|
+
display: flex;
|
|
2931
|
+
align-items: center;
|
|
2932
|
+
justify-content: space-between;
|
|
2933
|
+
margin-bottom: 20px;
|
|
2934
|
+
}
|
|
2935
|
+
.modal-close-btn {
|
|
2936
|
+
background: transparent;
|
|
2937
|
+
border: none;
|
|
2938
|
+
font-size: 28px;
|
|
2939
|
+
line-height: 1;
|
|
2940
|
+
color: var(--color-text-secondary);
|
|
2941
|
+
cursor: pointer;
|
|
2942
|
+
padding: 0;
|
|
2943
|
+
width: 24px;
|
|
2944
|
+
height: 24px;
|
|
2945
|
+
display: flex;
|
|
2946
|
+
align-items: center;
|
|
2947
|
+
justify-content: center;
|
|
2948
|
+
}
|
|
2949
|
+
.modal-close-btn:hover {
|
|
2950
|
+
color: var(--color-text-primary);
|
|
2951
|
+
}
|
|
2952
|
+
.modal-body {
|
|
2953
|
+
display: flex;
|
|
2954
|
+
flex-direction: column;
|
|
2955
|
+
gap: 16px;
|
|
2956
|
+
}
|
|
2957
|
+
.modal-field {
|
|
2958
|
+
display: flex;
|
|
2959
|
+
flex-direction: column;
|
|
2960
|
+
gap: 6px;
|
|
2961
|
+
}
|
|
2962
|
+
.modal-label {
|
|
2963
|
+
font-size: 13px;
|
|
2964
|
+
font-weight: 500;
|
|
2965
|
+
color: var(--color-text-primary);
|
|
2966
|
+
}
|
|
2967
|
+
.modal-input, .modal-select {
|
|
2968
|
+
background: var(--color-bg-primary);
|
|
2969
|
+
border: 1px solid var(--color-border-primary);
|
|
2970
|
+
border-radius: 6px;
|
|
2971
|
+
color: var(--color-text-primary);
|
|
2972
|
+
padding: 9px 12px;
|
|
2973
|
+
font-size: 13px;
|
|
2974
|
+
font-family: inherit;
|
|
2975
|
+
width: 100%;
|
|
2976
|
+
}
|
|
2977
|
+
.modal-input:focus, .modal-select:focus {
|
|
2978
|
+
outline: none;
|
|
2979
|
+
border-color: var(--color-accent-primary);
|
|
2980
|
+
}
|
|
2981
|
+
.modal-select {
|
|
2982
|
+
cursor: pointer;
|
|
2983
|
+
appearance: none;
|
|
2984
|
+
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='%238b949e' d='M6 8L1 3h10z'/%3E%3C/svg%3E");
|
|
2985
|
+
background-repeat: no-repeat;
|
|
2986
|
+
background-position: right 12px center;
|
|
2987
|
+
padding-right: 32px;
|
|
2988
|
+
}
|
|
2989
|
+
.modal-input-row {
|
|
2990
|
+
display: flex;
|
|
2991
|
+
gap: 8px;
|
|
2992
|
+
}
|
|
2993
|
+
.modal-input-row .modal-input {
|
|
2994
|
+
flex: 1;
|
|
2995
|
+
}
|
|
2996
|
+
.modal-browse-btn {
|
|
2997
|
+
background: var(--color-bg-primary);
|
|
2998
|
+
border: 1px solid var(--color-border-primary);
|
|
2999
|
+
border-radius: 6px;
|
|
3000
|
+
padding: 0 12px;
|
|
3001
|
+
font-size: 16px;
|
|
3002
|
+
cursor: pointer;
|
|
3003
|
+
flex-shrink: 0;
|
|
3004
|
+
transition: all 0.15s ease;
|
|
3005
|
+
}
|
|
3006
|
+
.modal-browse-btn:hover {
|
|
3007
|
+
background: var(--color-bg-hover);
|
|
3008
|
+
}
|
|
3009
|
+
.modal-field-checkbox {
|
|
3010
|
+
display: flex;
|
|
3011
|
+
align-items: center;
|
|
3012
|
+
padding-top: 4px;
|
|
3013
|
+
}
|
|
3014
|
+
.modal-checkbox-label {
|
|
3015
|
+
display: flex;
|
|
3016
|
+
align-items: center;
|
|
3017
|
+
gap: 8px;
|
|
3018
|
+
cursor: pointer;
|
|
3019
|
+
font-size: 13px;
|
|
3020
|
+
color: var(--color-text-primary);
|
|
3021
|
+
}
|
|
3022
|
+
.modal-checkbox {
|
|
3023
|
+
width: 16px;
|
|
3024
|
+
height: 16px;
|
|
3025
|
+
cursor: pointer;
|
|
3026
|
+
accent-color: var(--color-accent-primary);
|
|
3027
|
+
}
|
|
3028
|
+
.modal-footer {
|
|
3029
|
+
display: flex;
|
|
3030
|
+
gap: 10px;
|
|
3031
|
+
justify-content: flex-end;
|
|
3032
|
+
margin-top: 20px;
|
|
3033
|
+
padding-top: 20px;
|
|
3034
|
+
border-top: 1px solid var(--color-border-primary);
|
|
3035
|
+
}
|
|
3036
|
+
|
|
2779
3037
|
/* ── Form elements ───────────────────────────────────────────────────────── */
|
|
2780
3038
|
.form-group { margin-bottom: 12px; }
|
|
2781
3039
|
.form-label { font-size: 12px; color: var(--color-text-secondary); margin-bottom: 4px; display: block; }
|
|
@@ -5447,12 +5705,13 @@ body.setup-mode[data-theme="dark"] {
|
|
|
5447
5705
|
#session-info-bar .sib-detail {
|
|
5448
5706
|
display: contents;
|
|
5449
5707
|
}
|
|
5450
|
-
/* Hide less-important fields and their
|
|
5708
|
+
/* Hide less-important fields and their separators (element + sib-sep-after-element pattern) */
|
|
5451
5709
|
#sib-id,
|
|
5452
|
-
.sib-sep-
|
|
5710
|
+
.sib-sep-after-id,
|
|
5453
5711
|
#sib-dir,
|
|
5454
|
-
|
|
5455
|
-
|
|
5712
|
+
.sib-sep-after-dir,
|
|
5713
|
+
#sib-mode,
|
|
5714
|
+
.sib-sep-after-mode {
|
|
5456
5715
|
display: none;
|
|
5457
5716
|
}
|
|
5458
5717
|
.sib-sep {
|