@xcanwin/manyoyo 6.2.4 → 6.2.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/lib/web/frontend/app.css +94 -137
- package/lib/web/frontend/app.html +28 -1
- package/lib/web/frontend/app.js +498 -401
- package/lib/web/server.js +290 -1
- package/package.json +1 -1
package/lib/web/frontend/app.css
CHANGED
|
@@ -13,9 +13,8 @@
|
|
|
13
13
|
|
|
14
14
|
--line: #d9c7ad;
|
|
15
15
|
--line-strong: #b59263;
|
|
16
|
-
--tree-
|
|
17
|
-
--
|
|
18
|
-
--tree-active: #ecdfc8;
|
|
16
|
+
--tree-active: #e0c99b;
|
|
17
|
+
--session-card-hover: #f0e0c4;
|
|
19
18
|
|
|
20
19
|
--surface-panel: linear-gradient(180deg, rgba(255, 255, 255, 0.88) 0%, rgba(252, 246, 236, 0.88) 100%);
|
|
21
20
|
|
|
@@ -394,7 +393,8 @@ textarea:focus-visible {
|
|
|
394
393
|
|
|
395
394
|
.form-grid input,
|
|
396
395
|
.form-grid select,
|
|
397
|
-
.text-block textarea
|
|
396
|
+
.text-block textarea,
|
|
397
|
+
.text-block input {
|
|
398
398
|
border: 1px solid var(--line);
|
|
399
399
|
border-radius: 10px;
|
|
400
400
|
padding: 9px 11px;
|
|
@@ -528,138 +528,80 @@ textarea:focus-visible {
|
|
|
528
528
|
border-radius: 8px;
|
|
529
529
|
}
|
|
530
530
|
|
|
531
|
-
.
|
|
532
|
-
.tree-node-children {
|
|
531
|
+
.crumb-bar {
|
|
533
532
|
display: flex;
|
|
534
|
-
flex-
|
|
535
|
-
gap: 8px;
|
|
536
|
-
}
|
|
537
|
-
|
|
538
|
-
.tree-node-row {
|
|
539
|
-
display: grid;
|
|
540
|
-
grid-template-columns: auto minmax(0, 1fr);
|
|
541
|
-
align-items: stretch;
|
|
542
|
-
column-gap: 8px;
|
|
543
|
-
}
|
|
544
|
-
|
|
545
|
-
.tree-node-row.tree-node-row-container,
|
|
546
|
-
.tree-node-row.tree-node-row-agent {
|
|
547
|
-
position: relative;
|
|
548
|
-
}
|
|
549
|
-
|
|
550
|
-
.tree-prefix {
|
|
551
|
-
min-height: 38px;
|
|
552
|
-
display: inline-flex;
|
|
553
|
-
align-items: stretch;
|
|
554
|
-
gap: 3px;
|
|
555
|
-
position: relative;
|
|
556
|
-
}
|
|
557
|
-
|
|
558
|
-
.tree-prefix-toggle {
|
|
559
|
-
position: relative;
|
|
560
|
-
width: 16px;
|
|
561
|
-
flex: 0 0 16px;
|
|
562
|
-
display: inline-flex;
|
|
533
|
+
flex-wrap: wrap;
|
|
563
534
|
align-items: center;
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
|
|
567
|
-
.tree-prefix-segment,
|
|
568
|
-
.tree-prefix-branch {
|
|
569
|
-
position: relative;
|
|
570
|
-
width: 10px;
|
|
571
|
-
flex: 0 0 10px;
|
|
572
|
-
}
|
|
573
|
-
|
|
574
|
-
.tree-prefix-branch::before,
|
|
575
|
-
.tree-prefix-branch::after {
|
|
576
|
-
content: "";
|
|
577
|
-
position: absolute;
|
|
578
|
-
background: var(--tree-guide);
|
|
535
|
+
gap: 6px;
|
|
536
|
+
padding: 0 2px;
|
|
537
|
+
min-height: 20px;
|
|
579
538
|
}
|
|
580
539
|
|
|
581
|
-
.
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
540
|
+
.container-search-input {
|
|
541
|
+
width: 100%;
|
|
542
|
+
font-size: 12px;
|
|
543
|
+
padding: 6px 9px;
|
|
544
|
+
border: 1px solid var(--line);
|
|
545
|
+
border-radius: 8px;
|
|
546
|
+
background: var(--panel-soft);
|
|
547
|
+
color: var(--text);
|
|
586
548
|
}
|
|
587
549
|
|
|
588
|
-
.
|
|
589
|
-
|
|
550
|
+
.container-search-input[hidden] {
|
|
551
|
+
display: none;
|
|
590
552
|
}
|
|
591
553
|
|
|
592
|
-
.
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
554
|
+
.crumb-item {
|
|
555
|
+
border: none;
|
|
556
|
+
background: transparent;
|
|
557
|
+
color: var(--accent-strong);
|
|
558
|
+
font-size: 12px;
|
|
559
|
+
font-weight: 600;
|
|
560
|
+
padding: 2px 2px;
|
|
561
|
+
border-radius: 6px;
|
|
562
|
+
cursor: pointer;
|
|
563
|
+
max-width: 220px;
|
|
564
|
+
overflow: hidden;
|
|
565
|
+
text-overflow: ellipsis;
|
|
566
|
+
white-space: nowrap;
|
|
598
567
|
}
|
|
599
568
|
|
|
600
|
-
.
|
|
601
|
-
|
|
602
|
-
|
|
603
|
-
flex: 0 0 12px;
|
|
569
|
+
.crumb-item:hover {
|
|
570
|
+
transform: none;
|
|
571
|
+
text-decoration: underline;
|
|
604
572
|
}
|
|
605
573
|
|
|
606
|
-
.
|
|
607
|
-
|
|
608
|
-
|
|
609
|
-
|
|
610
|
-
top: 50%;
|
|
611
|
-
width: 10px;
|
|
612
|
-
height: 1px;
|
|
613
|
-
background: var(--tree-guide-soft);
|
|
614
|
-
transform: translateY(0);
|
|
574
|
+
.crumb-item.is-current {
|
|
575
|
+
color: var(--text);
|
|
576
|
+
cursor: default;
|
|
577
|
+
font-weight: 700;
|
|
615
578
|
}
|
|
616
579
|
|
|
617
|
-
.
|
|
618
|
-
|
|
619
|
-
height: 16px;
|
|
620
|
-
padding: 0;
|
|
621
|
-
align-self: center;
|
|
622
|
-
display: inline-flex;
|
|
623
|
-
align-items: center;
|
|
624
|
-
justify-content: center;
|
|
625
|
-
border: none;
|
|
626
|
-
border-radius: 6px;
|
|
627
|
-
color: #8c7257;
|
|
628
|
-
background: transparent;
|
|
629
|
-
transition: transform 140ms ease, background-color 140ms ease, color 140ms ease;
|
|
580
|
+
.crumb-item.is-current:hover {
|
|
581
|
+
text-decoration: none;
|
|
630
582
|
}
|
|
631
583
|
|
|
632
|
-
.
|
|
633
|
-
|
|
634
|
-
|
|
635
|
-
display: block;
|
|
636
|
-
fill: none;
|
|
637
|
-
stroke: currentColor;
|
|
638
|
-
stroke-width: 1.8;
|
|
639
|
-
stroke-linecap: round;
|
|
640
|
-
stroke-linejoin: round;
|
|
641
|
-
vector-effect: non-scaling-stroke;
|
|
584
|
+
.crumb-sep {
|
|
585
|
+
color: #a3927c;
|
|
586
|
+
font-size: 12px;
|
|
642
587
|
}
|
|
643
588
|
|
|
644
|
-
.
|
|
645
|
-
|
|
589
|
+
.crumb-jump-active {
|
|
590
|
+
margin-left: auto;
|
|
591
|
+
border: 1px solid var(--line);
|
|
592
|
+
background: var(--panel-soft);
|
|
646
593
|
color: var(--accent-strong);
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
transform: none;
|
|
652
|
-
}
|
|
653
|
-
|
|
654
|
-
.disclosure-toggle[aria-expanded="true"] {
|
|
655
|
-
transform: rotate(90deg);
|
|
594
|
+
font-size: 11px;
|
|
595
|
+
font-weight: 600;
|
|
596
|
+
padding: 3px 8px;
|
|
597
|
+
border-radius: 999px;
|
|
656
598
|
}
|
|
657
599
|
|
|
658
|
-
.
|
|
659
|
-
|
|
600
|
+
.session-card {
|
|
601
|
+
position: relative;
|
|
660
602
|
}
|
|
661
603
|
|
|
662
|
-
.
|
|
604
|
+
.session-card-button {
|
|
663
605
|
width: 100%;
|
|
664
606
|
text-align: left;
|
|
665
607
|
border: 1px solid transparent;
|
|
@@ -670,67 +612,86 @@ textarea:focus-visible {
|
|
|
670
612
|
transition: background-color 120ms ease;
|
|
671
613
|
}
|
|
672
614
|
|
|
673
|
-
.
|
|
615
|
+
.session-card-container .session-card-button,
|
|
616
|
+
.session-card-agent .session-card-button {
|
|
617
|
+
padding-right: 38px;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
.session-card-button:hover {
|
|
674
621
|
transform: none;
|
|
675
|
-
background: var(--
|
|
622
|
+
background: var(--session-card-hover);
|
|
676
623
|
}
|
|
677
624
|
|
|
678
|
-
.
|
|
625
|
+
.session-card-button:active {
|
|
679
626
|
transform: none;
|
|
680
627
|
}
|
|
681
628
|
|
|
682
|
-
.
|
|
629
|
+
.session-card-button:focus-visible {
|
|
683
630
|
outline: none;
|
|
684
631
|
box-shadow: 0 0 0 3px rgba(196, 85, 31, 0.14);
|
|
685
632
|
}
|
|
686
633
|
|
|
687
|
-
.
|
|
634
|
+
.session-card-button.active {
|
|
688
635
|
background: var(--tree-active);
|
|
689
636
|
}
|
|
690
637
|
|
|
691
|
-
.
|
|
692
|
-
.
|
|
638
|
+
.session-card.tree-node-tone-history .session-card-title,
|
|
639
|
+
.session-card.tree-node-tone-history .session-card-meta {
|
|
693
640
|
color: var(--tree-history-text);
|
|
694
641
|
}
|
|
695
642
|
|
|
696
|
-
.
|
|
697
|
-
background: var(--
|
|
698
|
-
}
|
|
699
|
-
|
|
700
|
-
.tree-node-row-container .tree-node-button-container,
|
|
701
|
-
.tree-node-row-agent .tree-node-button-agent {
|
|
702
|
-
padding-right: 38px;
|
|
643
|
+
.session-card.has-active .session-card-button:not(.active) {
|
|
644
|
+
background: var(--tree-active);
|
|
703
645
|
}
|
|
704
646
|
|
|
705
|
-
.
|
|
647
|
+
.session-card-main {
|
|
706
648
|
min-width: 0;
|
|
707
649
|
display: flex;
|
|
708
650
|
flex-direction: column;
|
|
709
651
|
gap: 6px;
|
|
710
652
|
}
|
|
711
653
|
|
|
712
|
-
.
|
|
654
|
+
.session-card-title-row {
|
|
655
|
+
display: flex;
|
|
656
|
+
align-items: center;
|
|
657
|
+
justify-content: space-between;
|
|
658
|
+
gap: 8px;
|
|
659
|
+
}
|
|
660
|
+
|
|
661
|
+
.session-card-title {
|
|
713
662
|
margin-top: 0;
|
|
714
663
|
font-weight: 700;
|
|
715
664
|
font-size: 13px;
|
|
716
665
|
line-height: 1.5;
|
|
717
666
|
overflow-wrap: anywhere;
|
|
667
|
+
min-width: 0;
|
|
668
|
+
overflow: hidden;
|
|
669
|
+
text-overflow: ellipsis;
|
|
670
|
+
white-space: nowrap;
|
|
718
671
|
}
|
|
719
672
|
|
|
720
|
-
.
|
|
721
|
-
.tree-node-button-container .tree-node-title {
|
|
673
|
+
.session-card-container .session-card-title {
|
|
722
674
|
font-family: var(--font-mono);
|
|
723
675
|
font-size: 12px;
|
|
724
676
|
font-weight: 600;
|
|
725
677
|
}
|
|
726
678
|
|
|
727
|
-
.
|
|
679
|
+
.session-card-meta {
|
|
728
680
|
color: #7b6d5d;
|
|
729
681
|
font-size: 11px;
|
|
730
682
|
line-height: 1.45;
|
|
731
683
|
overflow-wrap: anywhere;
|
|
732
684
|
}
|
|
733
685
|
|
|
686
|
+
.session-card-submeta {
|
|
687
|
+
color: #a3927c;
|
|
688
|
+
font-size: 10px;
|
|
689
|
+
line-height: 1.4;
|
|
690
|
+
overflow: hidden;
|
|
691
|
+
text-overflow: ellipsis;
|
|
692
|
+
white-space: nowrap;
|
|
693
|
+
}
|
|
694
|
+
|
|
734
695
|
.tree-node-status {
|
|
735
696
|
font-weight: 700;
|
|
736
697
|
font-size: 12px;
|
|
@@ -763,7 +724,7 @@ textarea:focus-visible {
|
|
|
763
724
|
transition: opacity 140ms ease;
|
|
764
725
|
}
|
|
765
726
|
|
|
766
|
-
.
|
|
727
|
+
.session-card:hover .tree-node-menu,
|
|
767
728
|
.tree-node-menu:focus-within,
|
|
768
729
|
.tree-node-menu.is-open {
|
|
769
730
|
opacity: 1;
|
|
@@ -843,10 +804,6 @@ textarea:focus-visible {
|
|
|
843
804
|
background: var(--danger-soft);
|
|
844
805
|
}
|
|
845
806
|
|
|
846
|
-
.tree-node-children[hidden] {
|
|
847
|
-
display: none;
|
|
848
|
-
}
|
|
849
|
-
|
|
850
807
|
.dir-picker-modal {
|
|
851
808
|
width: min(720px, calc(100vw - 24px));
|
|
852
809
|
}
|
|
@@ -32,7 +32,15 @@
|
|
|
32
32
|
<span>工作台</span>
|
|
33
33
|
<span id="sessionCount">0 个</span>
|
|
34
34
|
</div>
|
|
35
|
-
<
|
|
35
|
+
<nav class="crumb-bar" id="sessionBreadcrumb" aria-label="导航路径"></nav>
|
|
36
|
+
<input
|
|
37
|
+
type="text"
|
|
38
|
+
id="containerSearchInput"
|
|
39
|
+
class="container-search-input"
|
|
40
|
+
placeholder="按工作目录 / 容器名搜索"
|
|
41
|
+
spellcheck="false"
|
|
42
|
+
/>
|
|
43
|
+
<div id="sessionList" aria-label="容器与 AGENT 列表"></div>
|
|
36
44
|
<div class="sidebar-bottom">
|
|
37
45
|
<button type="button" id="openConfigBtn" class="secondary">系统设置</button>
|
|
38
46
|
</div>
|
|
@@ -295,6 +303,25 @@
|
|
|
295
303
|
</footer>
|
|
296
304
|
</section>
|
|
297
305
|
</div>
|
|
306
|
+
|
|
307
|
+
<div id="cloneNameModal" class="modal-backdrop" hidden>
|
|
308
|
+
<section class="modal" role="dialog" aria-modal="true" aria-labelledby="cloneNameTitle">
|
|
309
|
+
<header class="modal-header">
|
|
310
|
+
<h2 id="cloneNameTitle">创建相同配置容器</h2>
|
|
311
|
+
<button type="button" id="cloneNameCancelBtn" class="secondary">关闭</button>
|
|
312
|
+
</header>
|
|
313
|
+
<div class="modal-body">
|
|
314
|
+
<div id="cloneNameTip" class="modal-tip"></div>
|
|
315
|
+
<label class="text-block">新容器名称
|
|
316
|
+
<input type="text" id="cloneNameInput" spellcheck="false" />
|
|
317
|
+
</label>
|
|
318
|
+
<div id="cloneNameError" class="modal-error" hidden></div>
|
|
319
|
+
</div>
|
|
320
|
+
<footer class="modal-footer">
|
|
321
|
+
<button type="button" id="cloneNameConfirmBtn">确认</button>
|
|
322
|
+
</footer>
|
|
323
|
+
</section>
|
|
324
|
+
</div>
|
|
298
325
|
</div>
|
|
299
326
|
|
|
300
327
|
<script src="/app/vendor/xterm.js"></script>
|