Blame Raw
· · · 1323 lines (35.8 KB)
0 contributors
1@keyframes qr--success {
2
3 0%,
4 100% {
5 color: var(--SmartThemeBodyColor);
6 }
7
8 25%,
9 75% {
10 color: rgb(81, 163, 81);
11 }
12}
13
14&.qr--success {
15 animation-name: qr--success;
16 animation-duration: 3s;
17 animation-timing-function: linear;
18 animation-delay: 0s;
19 animation-iteration-count: 1;
20}
21
22#qr--bar {
23 outline: none;
24 margin: 0;
25 transition: var(--animation-duration-2x);
26 opacity: 0.7;
27 display: flex;
28 align-items: center;
29 justify-content: center;
30 width: 100%;
31 max-width: 100%;
32 overflow-x: auto;
33 order: 1;
34 position: relative;
35
36 >#qr--popoutTrigger {
37 position: absolute;
38 right: 0.25em;
39 top: 0;
40 }
41}
42
43/*hide QR popout for mobile*/
44@media screen and (max-width: 1000px) {
45 #qr--bar>#qr--popoutTrigger {
46 display: none;
47 }
48}
49
50#qr--bar.popoutVisible {
51 padding-right: 2.5em;
52}
53
54#qr--popout {
55 display: flex;
56 flex-direction: column;
57 padding: 0;
58 z-index: 31;
59
60 >.qr--header {
61 flex: 0 0 auto;
62 height: 2em;
63 position: relative;
64
65 >.qr--controls {
66 >.qr--close {
67 height: 15px;
68 aspect-ratio: 1 / 1;
69 font-size: 20px;
70 opacity: 0.5;
71 transition: all var(--animation-duration-2x);
72 }
73 }
74 }
75
76 >.qr--body {
77 overflow-y: auto;
78 }
79}
80
81#qr--bar,
82#qr--popout>.qr--body {
83 >.qr--buttons {
84 --qr--color: transparent;
85
86 &.qr--color {
87 background-color: var(--qr--color);
88 }
89
90 &.qr--borderColor {
91 background-color: transparent;
92 border-left: 5px solid var(--qr--color);
93 border-right: 5px solid var(--qr--color);
94 }
95
96 &:has(.qr--buttons.qr--color) {
97 margin: 5px;
98 }
99
100 margin: 0;
101 padding: 0;
102 display: flex;
103 justify-content: center;
104 flex-wrap: wrap;
105 gap: 5px;
106 width: 100%;
107
108 >.qr--buttons {
109 display: contents;
110
111 &.qr--color {
112 .qr--button:before {
113 content: '';
114 background-color: var(--qr--color);
115 position: absolute;
116 inset: -5px;
117 z-index: -1;
118 }
119
120 &.qr--borderColor {
121 .qr--button:before {
122 display: none;
123 }
124
125 &:before,
126 &:after {
127 content: '';
128 width: 5px;
129 background-color: var(--qr--color);
130 }
131 }
132 }
133 }
134
135 .qr--button {
136 color: var(--SmartThemeBodyColor);
137 // background-color: var(--black50a);
138 border: 1px solid var(--SmartThemeBorderColor);
139 border-radius: 10px;
140 padding: 3px 5px;
141 margin: 3px 0;
142 cursor: pointer;
143 transition: var(--animation-duration-2x);
144 display: flex;
145 align-items: center;
146 justify-content: center;
147 text-align: center;
148 position: relative;
149
150 &:hover {
151 background-color: rgb(30% 30% 30%);
152 }
153
154 .qr--hidden {
155 display: none;
156 }
157
158 .qr--button-icon {
159 margin: 0 0.5em;
160 }
161
162 >.qr--button-expander {
163 display: none;
164 }
165
166 &.qr--hasCtx {
167 >.qr--button-expander {
168 display: block;
169 }
170 }
171 }
172 }
173}
174
175.qr--button-expander {
176 border-left: 1px solid;
177 margin-left: 1em;
178 text-align: center;
179 width: 2em;
180
181 &:hover {
182 font-weight: bold;
183 }
184}
185
186.ctx-blocker {
187 /* backdrop-filter: blur(1px); */
188 /* background-color: rgba(0 0 0 / 10%); */
189 bottom: 0;
190 left: 0;
191 position: fixed;
192 right: 0;
193 top: 0;
194 z-index: 999;
195}
196
197.ctx-menu {
198 position: absolute;
199 overflow: visible;
200}
201
202.ctx-menu .ctx-item .qr--hidden {
203 display: none;
204}
205
206.list-group .list-group-item.ctx-header {
207 font-weight: bold;
208 cursor: default;
209}
210
211.ctx-item+.ctx-header {
212 border-top: 1px solid;
213}
214
215.ctx-item {
216 position: relative;
217}
218
219.ctx-expander {
220 border-left: 1px solid;
221 margin-left: 1em;
222 text-align: center;
223 width: 2em;
224}
225
226.ctx-expander:hover {
227 font-weight: bold;
228}
229
230.ctx-sub-menu {
231 position: absolute;
232 top: 0;
233 left: 100%;
234}
235
236@media screen and (max-width: 1000px) {
237 .ctx-blocker {
238 position: absolute;
239 }
240
241 .list-group .list-group-item.ctx-item {
242 padding: 1em;
243 }
244}
245
246
247
248#qr--settings {
249 .qr--head {
250 display: flex;
251 align-items: baseline;
252 gap: 1em;
253
254 >.qr--title {
255 font-weight: bold;
256 }
257
258 >.qr--actions {
259 display: flex;
260 flex-direction: row;
261 align-items: baseline;
262 gap: 0.5em;
263 }
264 }
265
266 .qr--setList {
267 >.qr--item {
268 display: flex;
269 flex-direction: row;
270 gap: 0.5em;
271 align-items: baseline;
272 padding: 0 0.5em;
273
274 >.drag-handle {
275 padding: 0.75em;
276 }
277
278 >.qr--visible {
279 flex: 0 0 auto;
280 display: flex;
281 flex-direction: row;
282 }
283 }
284 }
285
286 #qr--set-settings {
287 #qr--injectInputContainer {
288 flex-wrap: nowrap;
289 }
290 }
291
292 #qr--set-qrList {
293 .qr--set-qrListContents> {
294 padding: 0 0.5em;
295
296 >.qr--set-item .qr--set-itemAdder {
297 display: flex;
298 align-items: center;
299 opacity: 0;
300 transition: var(--animation-duration);
301 margin: -2px 0 -11px 0;
302 position: relative;
303
304 .qr--actions {
305 display: flex;
306 gap: 0.25em;
307 flex: 0 0 auto;
308
309 .qr--action {
310 margin: 0;
311 }
312 }
313
314 &:before,
315 &:after {
316 content: "";
317 display: block;
318 flex: 1 1 auto;
319 border: 1px solid;
320 margin: 0 1em;
321 height: 0;
322 }
323
324 &:hover,
325 &:focus-within {
326 opacity: 1;
327 }
328 }
329
330 >.qr--set-item .qr--content {
331 display: flex;
332 flex-direction: row;
333 gap: 0.5em;
334 align-items: baseline;
335 padding: 0.25em 0;
336
337 > :nth-child(2) {
338 flex: 0 0 auto;
339 }
340
341 > :nth-child(2) {
342 flex: 1 1 25%;
343 }
344
345 > :nth-child(3) {
346 flex: 0 0 auto;
347 }
348
349 > :nth-child(4) {
350 flex: 1 1 75%;
351 }
352
353 > :nth-child(5) {
354 flex: 0 1 auto;
355 display: flex;
356 gap: 0.25em;
357 justify-content: flex-end;
358 flex-wrap: wrap;
359 }
360
361 >.drag-handle {
362 padding: 0.75em;
363 }
364
365 .qr--set-itemLabelContainer {
366 display: flex;
367 align-items: center;
368 gap: 0.5em;
369
370 .qr--set-itemIcon:not(.fa-solid) {
371 display: none;
372 }
373
374 .qr--set-itemLabel {
375 min-width: 24px;
376 }
377 }
378
379 .qr--set-itemLabel,
380 .qr--action {
381 margin: 0;
382 }
383
384 .qr--set-itemMessage {
385 font-size: smaller;
386 }
387 }
388
389
390 }
391 }
392
393 .qr--set-qrListActions {
394 display: flex;
395 flex-direction: row;
396 gap: 0.5em;
397 justify-content: center;
398 padding-bottom: 0.5em;
399 }
400}
401
402
403
404
405
406#qr--qrOptions {
407 display: flex;
408 flex-direction: column;
409 padding-right: 1px;
410
411 >#qr--ctxEditor {
412 .qr--ctxItem {
413 display: flex;
414 flex-direction: row;
415 gap: 0.5em;
416 align-items: baseline;
417 }
418 }
419
420 >#qr--autoExec {
421 .checkbox_label {
422 text-wrap: nowrap;
423
424 .fa-fw {
425 margin-right: 2px;
426 }
427 }
428 }
429}
430
431
432
433@media screen and (max-width: 750px) {
434 body .popup:has(#qr--modalEditor) .popup-content>#qr--modalEditor {
435 flex-direction: column;
436 overflow: auto;
437
438 >#qr--main {
439 flex: 0 0 auto;
440 }
441
442 >#qr--main>.qr--labels {
443 flex-direction: column;
444 }
445
446 >#qr--main>.qr--modal-messageContainer>#qr--modal-messageHolder {
447 min-height: 50dvh;
448 height: 50dvh;
449 }
450 }
451}
452
453.popup:has(#qr--modalEditor) {
454 aspect-ratio: unset;
455 width: unset;
456
457 &:has(.qr--isExecuting.qr--minimized) {
458 min-width: unset;
459 min-height: unset;
460 height: auto !important;
461 width: min-content !important;
462 position: absolute;
463 right: 1em;
464 top: 1em;
465 left: unset;
466 bottom: unset;
467 margin: unset;
468 padding: 0;
469
470 &::backdrop {
471 backdrop-filter: unset;
472 background-color: transparent;
473 }
474
475 .popup-body {
476 flex: 0 0 auto;
477 height: min-content;
478 width: min-content;
479 }
480
481 .popup-content {
482 flex: 0 0 auto;
483 margin-top: 0;
484
485 >#qr--modalEditor {
486 max-height: 50vh;
487
488 >#qr--main,
489 >#qr--resizeHandle,
490 >#qr--qrOptions>h3,
491 >#qr--qrOptions>#qr--modal-executeButtons,
492 >#qr--qrOptions>#qr--modal-executeProgress {
493 display: none;
494 }
495
496 #qr--qrOptions {
497 width: auto;
498 }
499
500 #qr--modal-debugButtons .qr--modal-debugButton#qr--modal-maximize {
501 display: flex;
502 }
503
504 #qr--modal-debugButtons .qr--modal-debugButton#qr--modal-minimize {
505 display: none;
506 }
507
508 #qr--modal-debugState {
509 padding-top: 0;
510 }
511 }
512 }
513 }
514
515 &:has(.qr--isExecuting) {
516 .popup-controls {
517 display: none;
518 }
519
520 .qr--highlight {
521 position: absolute;
522 z-index: 50000;
523 pointer-events: none;
524 background-color: rgb(47 150 180 / 0.5);
525
526 &.qr--unresolved {
527 background-color: rgb(255 255 0 / 0.5);
528 }
529 }
530
531 .qr--highlight-secondary {
532 position: absolute;
533 z-index: 50000;
534 pointer-events: none;
535 border: 3px solid red;
536 }
537 }
538
539 .popup-content {
540 display: flex;
541 flex-direction: column;
542
543 >#qr--modalEditor {
544 flex: 1 1 auto;
545 display: flex;
546 flex-direction: row;
547 gap: 1em;
548 overflow: hidden;
549
550 &.qr--isExecuting {
551
552 #qr--main>h3:first-child,
553 #qr--main>.qr--labels,
554 #qr--main>.qr--modal-messageContainer>.qr--modal-editorSettings,
555 #qr--qrOptions>h3:first-child,
556 #qr--qrOptions>#qr--ctxEditor,
557 #qr--qrOptions>.qr--ctxEditorActions,
558 #qr--qrOptions>.qr--ctxEditorActions+h3,
559 #qr--qrOptions>.qr--ctxEditorActions+h3+div {
560 display: none;
561 }
562
563 #qr--main>.qr--modal-messageContainer>#qr--modal-messageHolder>#qr--modal-message {
564 visibility: hidden;
565 }
566
567 #qr--modal-debugButtons {
568 display: flex;
569
570 .menu_button:not(#qr--modal-minimize, #qr--modal-maximize) {
571 cursor: not-allowed;
572 opacity: 0.5;
573 pointer-events: none;
574 transition: var(--animation-duration-2x);
575 border-color: transparent;
576 }
577 }
578
579 &.qr--isPaused #qr--modal-debugButtons {
580 .menu_button:not(#qr--modal-minimize, #qr--modal-maximize) {
581 cursor: pointer;
582 opacity: 1;
583 pointer-events: all;
584
585 &#qr--modal-resume {
586 animation-name: qr--debugPulse;
587 animation-duration: 1500ms;
588 animation-timing-function: ease-in-out;
589 animation-delay: 0s;
590 animation-iteration-count: infinite;
591 }
592
593 &#qr--modal-resume {
594 border-color: rgb(81, 163, 81);
595 }
596
597 &#qr--modal-step {
598 border-color: var(--SmartThemeQuoteColor);
599 }
600
601 &#qr--modal-stepInto {
602 border-color: var(--SmartThemeQuoteColor);
603 }
604
605 &#qr--modal-stepOut {
606 border-color: var(--SmartThemeQuoteColor);
607 }
608 }
609 }
610
611 #qr--resizeHandle {
612 width: 6px;
613 background-color: var(--SmartThemeBorderColor);
614 border: 2px solid var(--SmartThemeBlurTintColor);
615 transition: border-color var(--animation-duration-2x), background-color var(--animation-duration-2x);
616 cursor: w-resize;
617
618 &:hover {
619 background-color: var(--SmartThemeQuoteColor);
620 border-color: var(--SmartThemeQuoteColor);
621 }
622 }
623
624 #qr--qrOptions {
625 width: var(--width, auto);
626 }
627 }
628
629 >#qr--main {
630 flex: 1 1 auto;
631 display: flex;
632 flex-direction: column;
633 overflow: hidden;
634
635 >.qr--labels {
636 flex: 0 0 auto;
637 display: flex;
638 flex-direction: row;
639 gap: 0.5em;
640 padding: 1px;
641
642 >label,
643 >.label {
644 flex: 1 1 1px;
645 display: flex;
646 flex-direction: column;
647 position: relative;
648
649 &.qr--fit {
650 flex: 0 0 auto;
651 justify-content: center;
652 }
653
654 .qr--inputGroup {
655 display: flex;
656 align-items: baseline;
657 gap: 0.5em;
658
659 input {
660 flex: 1 1 auto;
661 }
662 }
663
664 .qr--labelText {
665 flex: 1 1 auto;
666 }
667
668 .qr--labelHint {
669 flex: 1 1 auto;
670 }
671
672 input {
673 flex: 0 0 auto;
674 }
675
676 .qr--modal-switcherList {
677 background-color: var(--stcdx--bgColor);
678 border: 1px solid var(--SmartThemeBorderColor);
679 backdrop-filter: blur(var(--SmartThemeBlurStrength));
680 border-radius: 10px;
681 font-size: smaller;
682 position: absolute;
683 top: 100%;
684 left: 0;
685 right: 0;
686 overflow: auto;
687 margin: 0;
688 padding: 0.5em;
689 max-height: 50vh;
690 list-style: none;
691 z-index: 40000;
692 max-width: 100%;
693
694 .qr--modal-switcherItem {
695 display: flex;
696 gap: 1em;
697 text-align: left;
698 opacity: 0.75;
699 transition: var(--animation-duration-2x);
700 cursor: pointer;
701
702 &:hover {
703 opacity: 1;
704 }
705
706 &.qr--current {
707 opacity: 1;
708
709 .qr--label,
710 .qr--id {
711 font-weight: bold;
712 }
713 }
714 }
715
716 .qr--label {
717 white-space: nowrap;
718
719 .menu_button {
720 display: inline-block;
721 height: min-content;
722 width: min-content;
723 margin: 0 0.5em 0 0;
724 }
725 }
726
727 .qr--id {
728 opacity: 0.5;
729
730 &:before {
731 content: "[";
732 }
733
734 &:after {
735 content: "]";
736 }
737 }
738
739 .qr--message {
740 height: 1lh;
741 overflow: hidden;
742 text-overflow: ellipsis;
743 white-space: nowrap;
744 opacity: 0.5;
745 }
746 }
747 }
748 }
749
750 >.qr--modal-messageContainer {
751 flex: 1 1 auto;
752 display: flex;
753 flex-direction: column;
754 overflow: hidden;
755
756 >.qr--modal-editorSettings {
757 display: flex;
758 flex-wrap: wrap;
759 flex-direction: row;
760 column-gap: 1em;
761 color: var(--grey70);
762 font-size: smaller;
763 align-items: baseline;
764
765 >.checkbox_label {
766 white-space: nowrap;
767
768 >input {
769 font-size: inherit;
770 }
771 }
772 }
773
774 >#qr--modal-messageHolder {
775 flex: 1 1 auto;
776 display: grid;
777 text-align: left;
778 overflow: hidden;
779
780 &.qr--noSyntax {
781 >#qr--modal-messageSyntax {
782 display: none;
783 }
784
785 >#qr--modal-message {
786 background-color: var(--ac-style-color-background);
787 color: var(--ac-style-color-text);
788
789 &::-webkit-scrollbar,
790 &::-webkit-scrollbar-thumb {
791 visibility: visible;
792 cursor: unset;
793 }
794
795 &::selection {
796 color: unset;
797 background-color: rgba(108 171 251 / 0.25);
798
799 @supports (color: rgb(from white r g b / 0.25)) {
800 background-color: rgb(from var(--ac-style-color-matchedText) r g b / 0.25);
801 }
802 }
803 }
804 }
805
806 >#qr--modal-messageSyntax {
807 grid-column: 1;
808 grid-row: 1;
809 padding: 0;
810 margin: 0;
811 border: none;
812 overflow: hidden;
813 min-width: 100%;
814 width: 0;
815
816 >#qr--modal-messageSyntaxInner {
817 height: 100%;
818 }
819 }
820
821 >#qr--modal-message {
822 background-color: transparent;
823 color: transparent;
824 grid-column: 1;
825 grid-row: 1;
826 caret-color: var(--ac-style-color-text);
827 overflow: auto;
828
829 &::-webkit-scrollbar,
830 &::-webkit-scrollbar-thumb {
831 visibility: hidden;
832 cursor: default;
833 }
834
835 &::selection {
836 color: transparent;
837 background-color: rgba(108 171 251 / 0.25);
838
839 @supports (color: rgb(from white r g b / 0.25)) {
840 background-color: rgb(from var(--ac-style-color-matchedText) r g b / 0.25);
841 }
842 }
843 }
844
845 #qr--modal-message,
846 #qr--modal-messageSyntaxInner {
847 font-family: var(--monoFontFamily);
848 padding: 0.75em;
849 margin: 0;
850 resize: none;
851 line-height: 1.2;
852 border: 1px solid var(--SmartThemeBorderColor);
853 border-radius: 5px;
854 position: relative;
855 }
856 }
857 }
858 }
859
860 #qr--modal-icon {
861 height: 100%;
862 aspect-ratio: 1 / 1;
863 }
864
865 #qr--modal-executeButtons {
866 display: flex;
867 gap: 1em;
868
869 .qr--modal-executeButton {
870 border-width: 2px;
871 border-style: solid;
872 display: flex;
873 flex-direction: row;
874 gap: 0.5em;
875 padding: 0.5em 0.75em;
876
877 .qr--modal-executeComboIcon {
878 display: flex;
879 }
880 }
881
882 #qr--modal-execute {
883 transition: var(--animation-duration-2x);
884 filter: grayscale(0);
885
886 &.qr--busy {
887 cursor: wait;
888 opacity: 0.5;
889 filter: grayscale(1);
890 }
891 }
892
893 #qr--modal-execute {
894 border-color: rgb(81, 163, 81);
895 }
896
897 #qr--modal-pause,
898 #qr--modal-stop {
899 cursor: default;
900 opacity: 0.5;
901 filter: grayscale(1);
902 pointer-events: none;
903 }
904
905 .qr--busy {
906
907 ~#qr--modal-pause,
908 ~#qr--modal-stop {
909 cursor: pointer;
910 opacity: 1;
911 filter: grayscale(0);
912 pointer-events: all;
913 }
914 }
915
916 #qr--modal-pause {
917 border-color: rgb(146, 190, 252);
918 }
919
920 #qr--modal-stop {
921 border-color: rgb(215, 136, 114);
922 }
923 }
924
925 #qr--modal-debugButtons {
926 display: none;
927 gap: 1em;
928
929 .qr--modal-debugButton {
930 aspect-ratio: 1.25 / 1;
931 width: 2.25em;
932 position: relative;
933
934 &:not(.fa-solid) {
935 border-width: 1px;
936 border-style: solid;
937
938 &:after {
939 content: '';
940 position: absolute;
941 inset: 3px;
942 background-color: var(--SmartThemeBodyColor);
943 mask-size: contain;
944 mask-position: center;
945 mask-repeat: no-repeat;
946 }
947 }
948
949 &#qr--modal-resume:after {
950 mask-image: url('/img/step-resume.svg');
951 }
952
953 &#qr--modal-step:after {
954 mask-image: url('/img/step-over.svg');
955 }
956
957 &#qr--modal-stepInto:after {
958 mask-image: url('/img/step-into.svg');
959 }
960
961 &#qr--modal-stepOut:after {
962 mask-image: url('/img/step-out.svg');
963 }
964
965 &#qr--modal-maximize {
966 display: none;
967 }
968 }
969 }
970
971 #qr--modal-send_textarea {
972 flex: 0 0 auto;
973 }
974
975 #qr--modal-executeProgress {
976 --prog: 0;
977 --progColor: rgb(146, 190, 252);
978 --progFlashColor: rgb(215, 136, 114);
979 --progSuccessColor: rgb(81, 163, 81);
980 --progErrorColor: rgb(189, 54, 47);
981 --progAbortedColor: rgb(215, 136, 114);
982 flex: 0 0 auto;
983 height: 0.5em;
984 background-color: var(--black50a);
985 position: relative;
986
987 &:after {
988 content: '';
989 background-color: var(--progColor);
990 position: absolute;
991 inset: 0;
992 right: calc(100% - var(--prog) * 1%);
993 transition: var(--animation-duration-2x);
994 }
995
996 &.qr--paused:after {
997 animation-name: qr--progressPulse;
998 animation-duration: 1500ms;
999 animation-timing-function: ease-in-out;
1000 animation-delay: 0s;
1001 animation-iteration-count: infinite;
1002 }
1003
1004 &.qr--aborted:after {
1005 background-color: var(--progAbortedColor);
1006 }
1007
1008 &.qr--success:after {
1009 background-color: var(--progSuccessColor);
1010 }
1011
1012 &.qr--error:after {
1013 background-color: var(--progErrorColor);
1014 }
1015 }
1016
1017 #qr--modal-executeErrors {
1018 display: none;
1019
1020 &.qr--hasErrors {
1021 display: block;
1022 }
1023
1024 text-align: left;
1025 font-size: smaller;
1026 background-color: rgb(189, 54, 47);
1027 color: white;
1028 padding: 0.5em;
1029 overflow: auto;
1030 min-width: 100%;
1031 width: 0;
1032 }
1033
1034 #qr--modal-executeResult {
1035 display: none;
1036
1037 &.qr--hasResult {
1038 display: block;
1039 }
1040
1041 &:before {
1042 content: 'Result: ';
1043 }
1044
1045 text-align: left;
1046 font-size: smaller;
1047 background-color: rgb(81, 163, 81);
1048 color: white;
1049 padding: 0.5em;
1050 overflow: auto;
1051 min-width: 100%;
1052 width: 0;
1053 white-space: pre-wrap;
1054 }
1055
1056 #qr--modal-debugState {
1057 display: none;
1058
1059 &.qr--active {
1060 display: block;
1061 }
1062
1063 text-align: left;
1064 font-size: smaller;
1065 font-family: var(--monoFontFamily);
1066 // background-color: rgb(146, 190, 252);
1067 color: white;
1068 padding: 0.5em 0;
1069 overflow: auto;
1070 min-width: 100%;
1071 width: 0;
1072 white-space: pre-wrap;
1073
1074 .qr--scope {
1075 display: grid;
1076 grid-template-columns: 0fr 1fr 1fr;
1077 column-gap: 0em;
1078
1079 .qr--title {
1080 grid-column: 1 / 4;
1081 font-weight: bold;
1082 font-family: var(--mainFontFamily);
1083 background-color: var(--black50a);
1084 padding: 0.25em;
1085 margin-top: 0.5em;
1086 }
1087
1088 .qr--var,
1089 .qr--macro,
1090 .qr--pipe {
1091 display: contents;
1092
1093 &:nth-child(2n + 1) {
1094
1095 .qr--key,
1096 .qr--val {
1097 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.25);
1098 }
1099
1100 .qr--val {
1101 &:nth-child(2n) {
1102 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.125);
1103 }
1104
1105 &:hover {
1106 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.5);
1107 }
1108 }
1109 }
1110
1111 &:nth-child(2n) {
1112 .qr--val {
1113 &:nth-child(2n) {
1114 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.0625);
1115 }
1116
1117 &:hover {
1118 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.5);
1119 }
1120 }
1121 }
1122
1123 &.qr--isHidden {
1124
1125 .qr--key,
1126 .qr--val {
1127 opacity: 0.5;
1128 }
1129 }
1130
1131 .qr--val {
1132 grid-column: 2 / 4;
1133
1134 &.qr--singleCol {
1135 grid-column: unset;
1136 }
1137
1138 &.qr--simple {
1139
1140 &:before,
1141 &:after {
1142 content: '"';
1143 color: var(--SmartThemeQuoteColor);
1144 }
1145 }
1146
1147 &.qr--unresolved {
1148 &:after {
1149 content: '-UNRESOLVED-';
1150 font-style: italic;
1151 color: var(--SmartThemeQuoteColor);
1152 }
1153 }
1154 }
1155 }
1156
1157 .qr--key {
1158 margin-left: 0.5em;
1159 padding-right: 1em;
1160
1161 &:after {
1162 content: ": ";
1163 }
1164 }
1165
1166 .qr--pipe,
1167 .qr--macro {
1168 >.qr--key {
1169 &:before {
1170 content: "{{";
1171 }
1172
1173 &:after {
1174 content: "}}: ";
1175 }
1176 }
1177 }
1178
1179 .qr--scope {
1180 display: contents;
1181
1182 .qr--pipe {
1183
1184 .qr--key,
1185 .qr--val {
1186 opacity: 0.5;
1187 }
1188 }
1189 }
1190 }
1191
1192 .qr--stack {
1193 display: grid;
1194 grid-template-columns: 1fr 0fr;
1195
1196 .qr--title {
1197 grid-column: 1 / 3;
1198 font-weight: bold;
1199 font-family: var(--mainFontFamily);
1200 background-color: var(--black50a);
1201 padding: 0.25em;
1202 margin-top: 1em;
1203 }
1204
1205 .qr--item {
1206 display: contents;
1207
1208 &:nth-child(2n + 1) {
1209
1210 .qr--name,
1211 .qr--source {
1212 background-color: rgb(from var(--SmartThemeEmColor) r g b / 0.25);
1213 }
1214 }
1215
1216 .qr--name {
1217 margin-left: 0.5em;
1218 }
1219
1220 .qr--source {
1221 opacity: 0.5;
1222 text-align: right;
1223 white-space: nowrap;
1224 }
1225 }
1226 }
1227 }
1228 }
1229 }
1230}
1231
1232@keyframes qr--progressPulse {
1233
1234 0%,
1235 100% {
1236 background-color: var(--progColor);
1237 }
1238
1239 50% {
1240 background-color: var(--progFlashColor);
1241 }
1242}
1243
1244@keyframes qr--debugPulse {
1245
1246 0%,
1247 100% {
1248 border-color: rgb(81, 163, 81);
1249 }
1250
1251 50% {
1252 border-color: rgb(146, 190, 252);
1253 }
1254}
1255
1256.popup.qr--hide {
1257 opacity: 0 !important;
1258
1259 &::backdrop {
1260 opacity: 0 !important;
1261 }
1262}
1263
1264.popup.qr--hide::backdrop {
1265 opacity: 0 !important;
1266}
1267
1268
1269
1270.popup:has(.qr--transferModal) {
1271 .popup-button-ok {
1272 &:after {
1273 content: 'Transfer';
1274 height: 0;
1275 overflow: hidden;
1276 font-weight: bold;
1277 }
1278
1279 display: flex;
1280 align-items: center;
1281 flex-direction: column;
1282 white-space: pre;
1283 font-weight: normal;
1284 box-shadow: 0 0 0;
1285 transition: var(--animation-duration-2x);
1286 }
1287
1288 .qr--copy {
1289 &:after {
1290 content: 'Copy';
1291 height: 0;
1292 overflow: hidden;
1293 font-weight: bold;
1294 }
1295
1296 display: flex;
1297 align-items: center;
1298 flex-direction: column;
1299 white-space: pre;
1300 font-weight: normal;
1301 box-shadow: 0 0 0;
1302 transition: var(--animation-duration-2x);
1303 }
1304
1305 &:has(.qr--transferSelect:focus) {
1306 .popup-button-ok {
1307 font-weight: bold;
1308 box-shadow: 0 0 10px;
1309 }
1310
1311 &.qr--isCopy {
1312 .popup-button-ok {
1313 font-weight: normal;
1314 box-shadow: 0 0 0;
1315 }
1316
1317 .qr--copy {
1318 font-weight: bold;
1319 box-shadow: 0 0 10px;
1320 }
1321 }
1322 }
1323}