pinokiod 3.86.0 → 3.88.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/Dockerfile +61 -0
- package/docker-entrypoint.sh +75 -0
- package/kernel/api/hf/index.js +1 -1
- package/kernel/api/index.js +1 -1
- package/kernel/api/shell/index.js +6 -0
- package/kernel/api/terminal/index.js +166 -0
- package/kernel/bin/conda.js +3 -2
- package/kernel/bin/index.js +53 -2
- package/kernel/bin/setup.js +32 -0
- package/kernel/bin/vs.js +11 -2
- package/kernel/index.js +42 -2
- package/kernel/info.js +36 -0
- package/kernel/peer.js +42 -15
- package/kernel/router/index.js +23 -15
- package/kernel/router/localhost_static_router.js +0 -3
- package/kernel/router/pinokio_domain_router.js +333 -0
- package/kernel/shells.js +21 -1
- package/kernel/util.js +2 -2
- package/package.json +2 -1
- package/script/install-mode.js +33 -0
- package/script/pinokio.json +7 -0
- package/server/index.js +513 -173
- package/server/public/Socket.js +48 -0
- package/server/public/common.js +1441 -276
- package/server/public/fseditor.js +71 -12
- package/server/public/install.js +1 -1
- package/server/public/layout.js +740 -0
- package/server/public/modalinput.js +0 -1
- package/server/public/style.css +97 -105
- package/server/public/tab-idle-notifier.js +629 -0
- package/server/public/terminal_input_tracker.js +63 -0
- package/server/public/urldropdown.css +319 -53
- package/server/public/urldropdown.js +615 -159
- package/server/public/window_storage.js +97 -28
- package/server/socket.js +40 -9
- package/server/views/500.ejs +2 -2
- package/server/views/app.ejs +3136 -1367
- package/server/views/bookmarklet.ejs +1 -1
- package/server/views/bootstrap.ejs +1 -1
- package/server/views/columns.ejs +2 -13
- package/server/views/connect.ejs +3 -4
- package/server/views/container.ejs +1 -2
- package/server/views/d.ejs +223 -53
- package/server/views/editor.ejs +1 -1
- package/server/views/file_explorer.ejs +1 -1
- package/server/views/index.ejs +12 -11
- package/server/views/index2.ejs +4 -4
- package/server/views/init/index.ejs +4 -5
- package/server/views/install.ejs +1 -1
- package/server/views/layout.ejs +123 -0
- package/server/views/net.ejs +39 -7
- package/server/views/network.ejs +20 -6
- package/server/views/network2.ejs +1 -1
- package/server/views/old_network.ejs +2 -2
- package/server/views/partials/dynamic.ejs +3 -5
- package/server/views/partials/menu.ejs +3 -5
- package/server/views/partials/running.ejs +1 -1
- package/server/views/pro.ejs +1 -1
- package/server/views/prototype/index.ejs +1 -1
- package/server/views/review.ejs +11 -23
- package/server/views/rows.ejs +2 -13
- package/server/views/screenshots.ejs +293 -138
- package/server/views/settings.ejs +3 -4
- package/server/views/setup.ejs +1 -2
- package/server/views/shell.ejs +277 -26
- package/server/views/terminal.ejs +322 -49
- package/server/views/tools.ejs +448 -4
|
@@ -2,6 +2,36 @@
|
|
|
2
2
|
position: relative;
|
|
3
3
|
width: 100%;
|
|
4
4
|
}
|
|
5
|
+
.modal-overlay {
|
|
6
|
+
position: fixed;
|
|
7
|
+
inset: 0;
|
|
8
|
+
padding: 24px;
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
12
|
+
z-index: 9999;
|
|
13
|
+
opacity: 0;
|
|
14
|
+
visibility: hidden;
|
|
15
|
+
pointer-events: none;
|
|
16
|
+
transition: opacity 160ms ease, visibility 0s linear 160ms;
|
|
17
|
+
}
|
|
18
|
+
.modal-overlay.is-visible {
|
|
19
|
+
opacity: 1;
|
|
20
|
+
visibility: visible;
|
|
21
|
+
pointer-events: auto;
|
|
22
|
+
transition-delay: 0s;
|
|
23
|
+
}
|
|
24
|
+
@media (prefers-reduced-motion: reduce) {
|
|
25
|
+
.modal-overlay {
|
|
26
|
+
transition: none;
|
|
27
|
+
}
|
|
28
|
+
.create-launcher-modal,
|
|
29
|
+
.url-modal-content,
|
|
30
|
+
.capture-modal {
|
|
31
|
+
animation: none !important;
|
|
32
|
+
transition: none;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
5
35
|
.url-modal-overlay .url-dropdown {
|
|
6
36
|
max-height: 50vh;
|
|
7
37
|
}
|
|
@@ -54,6 +84,9 @@ body.dark .url-dropdown-item:hover {
|
|
|
54
84
|
display: flex;
|
|
55
85
|
align-items: center;
|
|
56
86
|
}
|
|
87
|
+
.url-dropdown-name i {
|
|
88
|
+
margin-right: 8px;
|
|
89
|
+
}
|
|
57
90
|
body.dark .url-dropdown-name {
|
|
58
91
|
color: #e2e8f0;
|
|
59
92
|
}
|
|
@@ -122,17 +155,9 @@ body.dark .url-dropdown-empty-description {
|
|
|
122
155
|
color: #cbd5f5;
|
|
123
156
|
}
|
|
124
157
|
.create-launcher-modal-overlay {
|
|
125
|
-
position: fixed;
|
|
126
|
-
inset: 0;
|
|
127
|
-
padding: 24px;
|
|
128
158
|
background: rgba(15, 23, 42, 0.35);
|
|
129
|
-
display: none;
|
|
130
|
-
align-items: center;
|
|
131
|
-
justify-content: center;
|
|
132
|
-
z-index: 9999;
|
|
133
159
|
-webkit-backdrop-filter: blur(14px);
|
|
134
160
|
backdrop-filter: blur(14px);
|
|
135
|
-
animation: createLauncherModalFade 160ms ease-out;
|
|
136
161
|
}
|
|
137
162
|
.create-launcher-modal {
|
|
138
163
|
background: rgba(255, 255, 255, 0.86);
|
|
@@ -144,10 +169,12 @@ body.dark .url-dropdown-empty-description {
|
|
|
144
169
|
display: flex;
|
|
145
170
|
flex-direction: column;
|
|
146
171
|
gap: 20px;
|
|
172
|
+
max-height: calc(100vh - 96px);
|
|
173
|
+
overflow-y: auto;
|
|
174
|
+
scrollbar-gutter: stable;
|
|
147
175
|
font-family: "SF Pro Text", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
|
148
176
|
-webkit-backdrop-filter: blur(28px);
|
|
149
177
|
backdrop-filter: blur(28px);
|
|
150
|
-
animation: createLauncherModalPop 180ms ease-out;
|
|
151
178
|
}
|
|
152
179
|
body.dark .create-launcher-modal {
|
|
153
180
|
background: rgba(17, 24, 39, 0.82);
|
|
@@ -155,6 +182,9 @@ body.dark .create-launcher-modal {
|
|
|
155
182
|
color: rgba(226, 232, 240, 0.96);
|
|
156
183
|
box-shadow: 0 50px 120px rgba(2, 6, 20, 0.82);
|
|
157
184
|
}
|
|
185
|
+
.modal-overlay.is-visible .create-launcher-modal {
|
|
186
|
+
animation: createLauncherModalPop 180ms ease-out;
|
|
187
|
+
}
|
|
158
188
|
.create-launcher-modal-header {
|
|
159
189
|
display: flex;
|
|
160
190
|
align-items: center;
|
|
@@ -491,6 +521,10 @@ body.dark .create-launcher-modal-button.confirm {
|
|
|
491
521
|
.create-launcher-modal-button:active {
|
|
492
522
|
transform: translateY(1px);
|
|
493
523
|
}
|
|
524
|
+
.create-launcher-modal-button:focus-visible {
|
|
525
|
+
outline: 2px solid rgba(127, 91, 243, 0.8);
|
|
526
|
+
outline-offset: 2px;
|
|
527
|
+
}
|
|
494
528
|
.create-launcher-modal-links {
|
|
495
529
|
display: flex;
|
|
496
530
|
flex-wrap: wrap;
|
|
@@ -531,18 +565,143 @@ body.dark .create-launcher-modal-advanced.secondary {
|
|
|
531
565
|
body.dark .create-launcher-modal-advanced.secondary:hover {
|
|
532
566
|
color: rgba(226, 232, 240, 0.98);
|
|
533
567
|
}
|
|
534
|
-
@
|
|
568
|
+
@media (max-width: 640px) {
|
|
569
|
+
.modal-overlay {
|
|
570
|
+
padding: 16px;
|
|
571
|
+
}
|
|
572
|
+
.create-launcher-modal {
|
|
573
|
+
width: min(520px, calc(100% - 32px));
|
|
574
|
+
padding: 24px 22px;
|
|
575
|
+
gap: 18px;
|
|
576
|
+
}
|
|
577
|
+
.create-launcher-modal-actions {
|
|
578
|
+
flex-direction: column-reverse;
|
|
579
|
+
align-items: stretch;
|
|
580
|
+
}
|
|
581
|
+
.create-launcher-modal-button {
|
|
582
|
+
width: 100%;
|
|
583
|
+
}
|
|
584
|
+
.url-modal-content {
|
|
585
|
+
width: min(440px, calc(100% - 20px));
|
|
586
|
+
padding: 24px 22px 22px;
|
|
587
|
+
}
|
|
588
|
+
.url-modal-actions {
|
|
589
|
+
flex-direction: column-reverse;
|
|
590
|
+
align-items: stretch;
|
|
591
|
+
}
|
|
592
|
+
.url-modal-button {
|
|
593
|
+
width: 100%;
|
|
594
|
+
}
|
|
595
|
+
.capture-modal {
|
|
596
|
+
width: calc(100% - 24px);
|
|
597
|
+
padding: 24px 20px;
|
|
598
|
+
}
|
|
599
|
+
.capture-modal-actions {
|
|
600
|
+
flex-direction: column;
|
|
601
|
+
}
|
|
602
|
+
.capture-modal-button {
|
|
603
|
+
width: 100%;
|
|
604
|
+
}
|
|
605
|
+
}
|
|
606
|
+
.capture-modal-overlay {
|
|
607
|
+
background: rgba(15, 23, 42, 0.45);
|
|
608
|
+
-webkit-backdrop-filter: blur(16px);
|
|
609
|
+
backdrop-filter: blur(16px);
|
|
610
|
+
}
|
|
611
|
+
.capture-modal {
|
|
612
|
+
width: min(360px, calc(100% - 32px));
|
|
613
|
+
padding: 28px 26px;
|
|
614
|
+
border-radius: 18px;
|
|
615
|
+
background: rgba(255, 255, 255, 0.92);
|
|
616
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
617
|
+
box-shadow: 0 30px 80px rgba(15, 23, 42, 0.35);
|
|
618
|
+
display: flex;
|
|
619
|
+
flex-direction: column;
|
|
620
|
+
gap: 18px;
|
|
621
|
+
text-align: center;
|
|
622
|
+
}
|
|
623
|
+
body.dark .capture-modal {
|
|
624
|
+
background: rgba(15, 23, 42, 0.9);
|
|
625
|
+
border-color: rgba(148, 163, 184, 0.24);
|
|
626
|
+
color: rgba(226, 232, 240, 0.96);
|
|
627
|
+
box-shadow: 0 34px 88px rgba(2, 6, 20, 0.82);
|
|
628
|
+
}
|
|
629
|
+
.capture-modal-title {
|
|
630
|
+
font-size: 20px;
|
|
631
|
+
font-weight: 600;
|
|
632
|
+
letter-spacing: -0.01em;
|
|
633
|
+
color: rgba(15, 23, 42, 0.92);
|
|
634
|
+
}
|
|
635
|
+
body.dark .capture-modal-title {
|
|
636
|
+
color: inherit;
|
|
637
|
+
}
|
|
638
|
+
.capture-modal-description {
|
|
639
|
+
font-size: 14px;
|
|
640
|
+
line-height: 1.5;
|
|
641
|
+
color: rgba(71, 85, 105, 0.82);
|
|
642
|
+
}
|
|
643
|
+
body.dark .capture-modal-description {
|
|
644
|
+
color: rgba(203, 213, 225, 0.88);
|
|
645
|
+
}
|
|
646
|
+
.capture-modal-actions {
|
|
647
|
+
display: flex;
|
|
648
|
+
justify-content: center;
|
|
649
|
+
gap: 12px;
|
|
650
|
+
}
|
|
651
|
+
.capture-modal-button {
|
|
652
|
+
padding: 10px 20px;
|
|
653
|
+
border-radius: 999px;
|
|
654
|
+
border: 1px solid transparent;
|
|
655
|
+
font-size: 14px;
|
|
656
|
+
font-weight: 600;
|
|
657
|
+
cursor: pointer;
|
|
658
|
+
transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
|
|
659
|
+
}
|
|
660
|
+
.capture-modal-button.primary {
|
|
661
|
+
background: linear-gradient(135deg, rgba(127, 91, 243, 0.95), rgba(84, 63, 196, 0.95));
|
|
662
|
+
color: white;
|
|
663
|
+
box-shadow: 0 16px 36px rgba(111, 76, 242, 0.3);
|
|
664
|
+
}
|
|
665
|
+
.capture-modal-button.primary:hover {
|
|
666
|
+
box-shadow: 0 20px 42px rgba(111, 76, 242, 0.38);
|
|
667
|
+
transform: translateY(-1px);
|
|
668
|
+
}
|
|
669
|
+
.capture-modal-button.secondary {
|
|
670
|
+
background: rgba(148, 163, 184, 0.18);
|
|
671
|
+
color: rgba(15, 23, 42, 0.78);
|
|
672
|
+
}
|
|
673
|
+
.capture-modal-button.secondary:hover {
|
|
674
|
+
background: rgba(148, 163, 184, 0.28);
|
|
675
|
+
box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
|
|
676
|
+
}
|
|
677
|
+
body.dark .capture-modal-button.secondary {
|
|
678
|
+
background: rgba(148, 163, 184, 0.2);
|
|
679
|
+
color: rgba(226, 232, 240, 0.92);
|
|
680
|
+
}
|
|
681
|
+
.capture-modal-button:active {
|
|
682
|
+
transform: translateY(1px);
|
|
683
|
+
}
|
|
684
|
+
.capture-modal-button:focus-visible {
|
|
685
|
+
outline: 2px solid rgba(127, 91, 243, 0.8);
|
|
686
|
+
outline-offset: 2px;
|
|
687
|
+
}
|
|
688
|
+
.modal-overlay.is-visible .capture-modal {
|
|
689
|
+
animation: captureModalPop 160ms ease-out;
|
|
690
|
+
}
|
|
691
|
+
@keyframes createLauncherModalPop {
|
|
535
692
|
from {
|
|
536
693
|
opacity: 0;
|
|
694
|
+
transform: scale(0.98) translateY(10px);
|
|
537
695
|
}
|
|
538
696
|
to {
|
|
539
697
|
opacity: 1;
|
|
698
|
+
transform: scale(1) translateY(0);
|
|
540
699
|
}
|
|
541
700
|
}
|
|
542
|
-
@keyframes
|
|
701
|
+
@keyframes captureModalPop {
|
|
543
702
|
from {
|
|
544
703
|
opacity: 0;
|
|
545
|
-
transform: scale(0.
|
|
704
|
+
transform: scale(0.97) translateY(12px);
|
|
546
705
|
}
|
|
547
706
|
to {
|
|
548
707
|
opacity: 1;
|
|
@@ -561,10 +720,6 @@ body.dark .urlbar input[type=url] {
|
|
|
561
720
|
background: rgba(255,255,255,0.1);
|
|
562
721
|
color: white;
|
|
563
722
|
}
|
|
564
|
-
body.minimized .mobile-link-button {
|
|
565
|
-
border-radius: 0;
|
|
566
|
-
margin: 0;
|
|
567
|
-
}
|
|
568
723
|
.mobile-link-button {
|
|
569
724
|
background: rgba(0,0,0,0.05);
|
|
570
725
|
padding: 5px;
|
|
@@ -578,75 +733,186 @@ body.minimized .mobile-link-button {
|
|
|
578
733
|
padding: 10px;
|
|
579
734
|
width: 100%;
|
|
580
735
|
}
|
|
581
|
-
|
|
582
|
-
display: none;
|
|
583
|
-
}
|
|
584
|
-
body.minimized header h1 .mobile-link-button {
|
|
585
|
-
display: block;
|
|
586
|
-
}
|
|
587
|
-
@media only screen and (max-width: 800px) {
|
|
736
|
+
@media only screen and (max-width: 768px) {
|
|
588
737
|
header h1 .urlbar {
|
|
589
738
|
display: none;
|
|
590
739
|
}
|
|
591
740
|
header h1 .mobile-link-button {
|
|
592
741
|
display: block;
|
|
593
742
|
}
|
|
743
|
+
.mobile-link-button {
|
|
744
|
+
display: block;
|
|
745
|
+
margin: 0;
|
|
746
|
+
border-radius: 0;
|
|
747
|
+
}
|
|
594
748
|
}
|
|
595
749
|
.mobile-link-button {
|
|
596
750
|
display: none;
|
|
597
751
|
}
|
|
598
752
|
.url-modal-overlay {
|
|
599
|
-
|
|
600
|
-
|
|
601
|
-
|
|
602
|
-
width: 100%;
|
|
603
|
-
height: 100%;
|
|
604
|
-
background: rgba(0, 0, 0, 0.5);
|
|
605
|
-
z-index: 10000;
|
|
606
|
-
display: none;
|
|
607
|
-
justify-content: center;
|
|
608
|
-
align-items: center;
|
|
753
|
+
background: rgba(15, 23, 42, 0.4);
|
|
754
|
+
-webkit-backdrop-filter: blur(12px);
|
|
755
|
+
backdrop-filter: blur(12px);
|
|
609
756
|
}
|
|
610
757
|
.url-modal-content {
|
|
611
|
-
background: white;
|
|
612
|
-
padding: 50px 10px 10px;
|
|
613
|
-
border-radius: 10px;
|
|
614
|
-
box-shadow: 0 4px 20px rgba(0, 0, 0, 0.2);
|
|
615
|
-
width: 90%;
|
|
616
|
-
max-width: 500px;
|
|
617
758
|
position: relative;
|
|
759
|
+
width: min(520px, calc(100% - 40px));
|
|
760
|
+
background: rgba(255, 255, 255, 0.92);
|
|
761
|
+
border-radius: 18px;
|
|
762
|
+
padding: 28px 28px 26px;
|
|
763
|
+
box-shadow: 0 30px 80px rgba(15, 23, 42, 0.35);
|
|
764
|
+
border: 1px solid rgba(15, 23, 42, 0.08);
|
|
765
|
+
display: flex;
|
|
766
|
+
flex-direction: column;
|
|
767
|
+
gap: 16px;
|
|
618
768
|
}
|
|
619
769
|
body.dark .url-modal-content {
|
|
620
|
-
background:
|
|
770
|
+
background: rgba(15, 23, 42, 0.86);
|
|
771
|
+
border-color: rgba(148, 163, 184, 0.2);
|
|
772
|
+
box-shadow: 0 36px 90px rgba(2, 6, 23, 0.82);
|
|
773
|
+
}
|
|
774
|
+
.modal-overlay.is-visible .url-modal-content {
|
|
775
|
+
animation: createLauncherModalPop 170ms ease-out;
|
|
621
776
|
}
|
|
622
777
|
.url-modal-close {
|
|
623
778
|
position: absolute;
|
|
624
|
-
top:
|
|
625
|
-
right:
|
|
626
|
-
font-size:
|
|
627
|
-
color:
|
|
779
|
+
top: 14px;
|
|
780
|
+
right: 16px;
|
|
781
|
+
font-size: 22px;
|
|
782
|
+
color: rgba(71, 85, 105, 0.7);
|
|
628
783
|
cursor: pointer;
|
|
629
784
|
user-select: none;
|
|
785
|
+
background: none;
|
|
786
|
+
border: none;
|
|
787
|
+
padding: 4px;
|
|
788
|
+
line-height: 1;
|
|
789
|
+
border-radius: 999px;
|
|
790
|
+
transition: color 0.2s ease, background 0.2s ease;
|
|
630
791
|
}
|
|
631
792
|
.url-modal-close:hover {
|
|
632
|
-
color:
|
|
793
|
+
color: rgba(30, 41, 59, 0.9);
|
|
794
|
+
background: rgba(148, 163, 184, 0.2);
|
|
633
795
|
}
|
|
634
796
|
body.dark .url-modal-close:hover {
|
|
635
|
-
color:
|
|
797
|
+
color: rgba(226, 232, 240, 0.95);
|
|
798
|
+
background: rgba(148, 163, 184, 0.18);
|
|
799
|
+
}
|
|
800
|
+
.url-modal-close:focus-visible {
|
|
801
|
+
outline: 2px solid rgba(127, 91, 243, 0.75);
|
|
802
|
+
outline-offset: 2px;
|
|
636
803
|
}
|
|
637
804
|
.url-modal-input {
|
|
638
805
|
width: 100%;
|
|
639
|
-
padding:
|
|
640
|
-
font-size:
|
|
641
|
-
border:
|
|
642
|
-
border
|
|
806
|
+
padding: 14px 16px;
|
|
807
|
+
font-size: 15px;
|
|
808
|
+
border-radius: 14px;
|
|
809
|
+
border: 1px solid rgba(15, 23, 42, 0.12);
|
|
643
810
|
box-sizing: border-box;
|
|
644
|
-
background:
|
|
811
|
+
background: rgba(248, 250, 255, 0.82);
|
|
812
|
+
transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
|
|
813
|
+
}
|
|
814
|
+
.url-modal-input:focus {
|
|
815
|
+
outline: none;
|
|
816
|
+
border-color: rgba(127, 91, 243, 0.8);
|
|
817
|
+
background: rgba(255, 255, 255, 0.95);
|
|
818
|
+
box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.16);
|
|
645
819
|
}
|
|
646
820
|
body.dark .url-modal-input {
|
|
647
|
-
background: rgba(
|
|
648
|
-
border-color: rgba(
|
|
821
|
+
background: rgba(148, 163, 184, 0.14);
|
|
822
|
+
border-color: rgba(148, 163, 184, 0.3);
|
|
823
|
+
color: rgba(226, 232, 240, 0.95);
|
|
824
|
+
}
|
|
825
|
+
body.dark .url-modal-input:focus {
|
|
826
|
+
border-color: rgba(127, 91, 243, 0.7);
|
|
827
|
+
background: rgba(76, 86, 106, 0.3);
|
|
828
|
+
box-shadow: 0 0 0 4px rgba(127, 91, 243, 0.2);
|
|
829
|
+
}
|
|
830
|
+
.url-modal-description {
|
|
831
|
+
margin: 0;
|
|
832
|
+
font-size: 14px;
|
|
833
|
+
line-height: 1.5;
|
|
834
|
+
color: rgba(71, 85, 105, 0.78);
|
|
835
|
+
}
|
|
836
|
+
body.dark .url-modal-description {
|
|
837
|
+
color: rgba(203, 213, 225, 0.88);
|
|
838
|
+
}
|
|
839
|
+
.url-modal-content .url-dropdown {
|
|
840
|
+
position: relative;
|
|
841
|
+
top: 0;
|
|
842
|
+
left: 0;
|
|
843
|
+
right: 0;
|
|
844
|
+
margin-top: 12px;
|
|
845
|
+
border: 1px solid rgba(15, 23, 42, 0.12);
|
|
846
|
+
background: rgba(248, 250, 255, 0.92);
|
|
847
|
+
box-shadow: 0 18px 40px rgba(15, 23, 42, 0.22);
|
|
848
|
+
}
|
|
849
|
+
body.dark .url-modal-content .url-dropdown {
|
|
850
|
+
background: rgba(15, 23, 42, 0.86);
|
|
851
|
+
border-color: rgba(148, 163, 184, 0.26);
|
|
852
|
+
box-shadow: 0 22px 48px rgba(2, 6, 23, 0.7);
|
|
853
|
+
}
|
|
854
|
+
.url-modal-content h3 {
|
|
855
|
+
margin: 0;
|
|
856
|
+
font-size: 22px;
|
|
857
|
+
font-weight: 600;
|
|
858
|
+
letter-spacing: -0.01em;
|
|
859
|
+
color: rgba(15, 23, 42, 0.9);
|
|
860
|
+
}
|
|
861
|
+
body.dark .url-modal-content h3 {
|
|
862
|
+
color: rgba(226, 232, 240, 0.96);
|
|
863
|
+
}
|
|
864
|
+
.url-modal-actions {
|
|
865
|
+
display: flex;
|
|
866
|
+
justify-content: flex-end;
|
|
867
|
+
gap: 12px;
|
|
868
|
+
margin-top: 6px;
|
|
869
|
+
}
|
|
870
|
+
.url-modal-button {
|
|
871
|
+
padding: 10px 20px;
|
|
872
|
+
border-radius: 999px;
|
|
873
|
+
border: 1px solid transparent;
|
|
874
|
+
font-size: 15px;
|
|
875
|
+
font-weight: 600;
|
|
876
|
+
cursor: pointer;
|
|
877
|
+
transition: background 0.18s ease, color 0.18s ease, box-shadow 0.18s ease, transform 0.12s ease;
|
|
878
|
+
}
|
|
879
|
+
.url-modal-button.cancel {
|
|
880
|
+
background: rgba(148, 163, 184, 0.18);
|
|
881
|
+
color: rgba(15, 23, 42, 0.78);
|
|
882
|
+
}
|
|
883
|
+
.url-modal-button.cancel:hover {
|
|
884
|
+
background: rgba(148, 163, 184, 0.28);
|
|
885
|
+
box-shadow: 0 12px 28px rgba(15, 23, 42, 0.12);
|
|
886
|
+
}
|
|
887
|
+
body.dark .url-modal-button.cancel {
|
|
888
|
+
background: rgba(148, 163, 184, 0.2);
|
|
889
|
+
color: rgba(226, 232, 240, 0.9);
|
|
890
|
+
}
|
|
891
|
+
.url-modal-button.confirm {
|
|
892
|
+
background: linear-gradient(135deg, rgba(127, 91, 243, 0.95), rgba(84, 63, 196, 0.95));
|
|
649
893
|
color: white;
|
|
894
|
+
box-shadow: 0 16px 36px rgba(111, 76, 242, 0.3);
|
|
895
|
+
}
|
|
896
|
+
.url-modal-button.confirm:hover {
|
|
897
|
+
box-shadow: 0 20px 42px rgba(111, 76, 242, 0.38);
|
|
898
|
+
transform: translateY(-1px);
|
|
899
|
+
}
|
|
900
|
+
.url-modal-button:active {
|
|
901
|
+
transform: translateY(1px);
|
|
902
|
+
}
|
|
903
|
+
.url-modal-button:focus-visible {
|
|
904
|
+
outline: 2px solid rgba(127, 91, 243, 0.8);
|
|
905
|
+
outline-offset: 2px;
|
|
906
|
+
}
|
|
907
|
+
.url-modal-button:disabled {
|
|
908
|
+
opacity: 0.6;
|
|
909
|
+
cursor: not-allowed;
|
|
910
|
+
box-shadow: none;
|
|
911
|
+
transform: none;
|
|
912
|
+
}
|
|
913
|
+
.url-modal-button:disabled:hover {
|
|
914
|
+
transform: none;
|
|
915
|
+
box-shadow: none;
|
|
650
916
|
}
|
|
651
917
|
|
|
652
918
|
/* Host categorization styles */
|