@bojackduy/opencode-learn 1.0.0 → 1.1.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/dist/tui.js +761 -561
- package/package.json +1 -1
- package/plugins/learn-tui.tsx +35 -11
package/dist/tui.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
// plugins/learn-tui.tsx
|
|
3
|
+
import { use as _$use } from "@opentui/solid";
|
|
3
4
|
import { createComponent as _$createComponent } from "@opentui/solid";
|
|
4
5
|
import { effect as _$effect } from "@opentui/solid";
|
|
5
|
-
import { use as _$use } from "@opentui/solid";
|
|
6
6
|
import { createTextNode as _$createTextNode } from "@opentui/solid";
|
|
7
7
|
import { insertNode as _$insertNode } from "@opentui/solid";
|
|
8
8
|
import { insert as _$insert } from "@opentui/solid";
|
|
@@ -259,8 +259,14 @@ function QuizDialog(props) {
|
|
|
259
259
|
const theme = () => props.api.theme.current;
|
|
260
260
|
const syntax = () => syntaxStyle(theme());
|
|
261
261
|
const dims = useTerminalDimensions();
|
|
262
|
-
const popupWidth = () =>
|
|
263
|
-
|
|
262
|
+
const popupWidth = () => {
|
|
263
|
+
const w = dims().width;
|
|
264
|
+
return Math.max(62, Math.min(w - 8, Math.floor(w * 0.8), 92));
|
|
265
|
+
};
|
|
266
|
+
const popupHeight = () => {
|
|
267
|
+
const h = dims().height;
|
|
268
|
+
return Math.max(14, Math.min(h - 6, Math.floor(h * 0.62), 26));
|
|
269
|
+
};
|
|
264
270
|
const options = () => props.request.options;
|
|
265
271
|
const correctSet = new Set(props.request.correctIndices);
|
|
266
272
|
const isMulti = () => !!props.request.multiSelect;
|
|
@@ -716,10 +722,10 @@ function QuizDialog(props) {
|
|
|
716
722
|
}
|
|
717
723
|
});
|
|
718
724
|
return (() => {
|
|
719
|
-
var _el$ = _$createElement("box"), _el$2 = _$createElement("box"), _el$3 = _$createElement("text"), _el$4 = _$createElement("text"), _el$
|
|
725
|
+
var _el$ = _$createElement("box"), _el$2 = _$createElement("box"), _el$3 = _$createElement("text"), _el$4 = _$createElement("text"), _el$8 = _$createElement("scrollbox"), _el$9 = _$createElement("box"), _el$0 = _$createElement("markdown"), _el$61 = _$createElement("box"), _el$62 = _$createElement("text");
|
|
720
726
|
_$insertNode(_el$, _el$2);
|
|
721
|
-
_$insertNode(_el$, _el$
|
|
722
|
-
_$insertNode(_el$, _el$
|
|
727
|
+
_$insertNode(_el$, _el$8);
|
|
728
|
+
_$insertNode(_el$, _el$61);
|
|
723
729
|
_$setProp(_el$, "flexDirection", "column");
|
|
724
730
|
_$setProp(_el$, "border", true);
|
|
725
731
|
_$setProp(_el$, "padding", 1);
|
|
@@ -739,27 +745,55 @@ function QuizDialog(props) {
|
|
|
739
745
|
})());
|
|
740
746
|
_$insertNode(_el$4, _$createTextNode(`learn`));
|
|
741
747
|
_$setProp(_el$4, "dim", true);
|
|
742
|
-
_$
|
|
743
|
-
|
|
744
|
-
|
|
745
|
-
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
748
|
+
_$insert(_el$, _$createComponent(Show, {
|
|
749
|
+
get when() {
|
|
750
|
+
return _$memo(() => phase() === "feedback")() && (canScrollUp() || canScrollDown());
|
|
751
|
+
},
|
|
752
|
+
get children() {
|
|
753
|
+
var _el$6 = _$createElement("box"), _el$7 = _$createElement("text");
|
|
754
|
+
_$insertNode(_el$6, _el$7);
|
|
755
|
+
_$setProp(_el$6, "justifyContent", "center");
|
|
756
|
+
_$setProp(_el$6, "height", 1);
|
|
757
|
+
_$setProp(_el$6, "paddingLeft", 1);
|
|
758
|
+
_$setProp(_el$6, "paddingRight", 1);
|
|
759
|
+
_$setProp(_el$7, "bold", true);
|
|
760
|
+
_$insert(_el$7, (() => {
|
|
761
|
+
var _c$2 = _$memo(() => !!(canScrollUp() && canScrollDown()));
|
|
762
|
+
return () => _c$2() ? "\u25B2 more above \xB7 \u25BC more below \u2014 d / u to scroll" : canScrollDown() ? "\u25BC more below \u2014 press d to see explanation" : "\u25B2 more above \u2014 press u to scroll up";
|
|
763
|
+
})());
|
|
764
|
+
_$effect((_p$) => {
|
|
765
|
+
var _v$ = canScrollDown() ? theme().warning : theme().accent, _v$2 = theme().background;
|
|
766
|
+
_v$ !== _p$.e && (_p$.e = _$setProp(_el$6, "backgroundColor", _v$, _p$.e));
|
|
767
|
+
_v$2 !== _p$.t && (_p$.t = _$setProp(_el$7, "fg", _v$2, _p$.t));
|
|
768
|
+
return _p$;
|
|
769
|
+
}, {
|
|
770
|
+
e: undefined,
|
|
771
|
+
t: undefined
|
|
772
|
+
});
|
|
773
|
+
return _el$6;
|
|
774
|
+
}
|
|
775
|
+
}), _el$8);
|
|
776
|
+
_$insertNode(_el$8, _el$9);
|
|
777
|
+
_$use((el) => scrollRef = el, _el$8);
|
|
778
|
+
_$setProp(_el$8, "flexGrow", 1);
|
|
779
|
+
_$insertNode(_el$9, _el$0);
|
|
780
|
+
_$setProp(_el$9, "flexDirection", "column");
|
|
781
|
+
_$setProp(_el$9, "gap", 1);
|
|
782
|
+
_$setProp(_el$9, "paddingLeft", 1);
|
|
783
|
+
_$setProp(_el$9, "paddingRight", 1);
|
|
784
|
+
_$setProp(_el$9, "paddingTop", 1);
|
|
785
|
+
_$insert(_el$9, _$createComponent(Show, {
|
|
752
786
|
get when() {
|
|
753
787
|
return props.request.details;
|
|
754
788
|
},
|
|
755
789
|
get children() {
|
|
756
|
-
var _el$
|
|
790
|
+
var _el$1 = _$createElement("markdown");
|
|
757
791
|
_$effect((_p$) => {
|
|
758
|
-
var _v$ = syntax(), _v$
|
|
759
|
-
_v$ !== _p$.e && (_p$.e = _$setProp(_el$
|
|
760
|
-
_v$
|
|
761
|
-
_v$
|
|
762
|
-
_v$
|
|
792
|
+
var _v$3 = syntax(), _v$4 = decodeQuizText(props.request.details), _v$5 = theme().textMuted, _v$6 = theme().backgroundPanel;
|
|
793
|
+
_v$3 !== _p$.e && (_p$.e = _$setProp(_el$1, "syntaxStyle", _v$3, _p$.e));
|
|
794
|
+
_v$4 !== _p$.t && (_p$.t = _$setProp(_el$1, "content", _v$4, _p$.t));
|
|
795
|
+
_v$5 !== _p$.a && (_p$.a = _$setProp(_el$1, "fg", _v$5, _p$.a));
|
|
796
|
+
_v$6 !== _p$.o && (_p$.o = _$setProp(_el$1, "bg", _v$6, _p$.o));
|
|
763
797
|
return _p$;
|
|
764
798
|
}, {
|
|
765
799
|
e: undefined,
|
|
@@ -767,23 +801,23 @@ function QuizDialog(props) {
|
|
|
767
801
|
a: undefined,
|
|
768
802
|
o: undefined
|
|
769
803
|
});
|
|
770
|
-
return _el$
|
|
804
|
+
return _el$1;
|
|
771
805
|
}
|
|
772
806
|
}), null);
|
|
773
|
-
_$insert(_el$
|
|
807
|
+
_$insert(_el$8, _$createComponent(Show, {
|
|
774
808
|
get when() {
|
|
775
809
|
return phase() === "select";
|
|
776
810
|
},
|
|
777
811
|
get children() {
|
|
778
|
-
var _el$
|
|
779
|
-
_$insertNode(_el$
|
|
780
|
-
_$insertNode(_el$
|
|
781
|
-
_$insertNode(_el$
|
|
782
|
-
_$setProp(_el$
|
|
783
|
-
_$setProp(_el$
|
|
784
|
-
_$setProp(_el$
|
|
785
|
-
_$setProp(_el$
|
|
786
|
-
_$insert(_el$
|
|
812
|
+
var _el$10 = _$createElement("box"), _el$13 = _$createElement("box"), _el$14 = _$createElement("box"), _el$15 = _$createElement("text"), _el$16 = _$createElement("box"), _el$17 = _$createElement("text"), _el$18 = _$createElement("box"), _el$19 = _$createElement("text"), _el$21 = _$createElement("box"), _el$22 = _$createElement("box"), _el$23 = _$createElement("text"), _el$27 = _$createElement("box"), _el$29 = _$createElement("box"), _el$30 = _$createElement("text"), _el$31 = _$createElement("text");
|
|
813
|
+
_$insertNode(_el$10, _el$13);
|
|
814
|
+
_$insertNode(_el$10, _el$21);
|
|
815
|
+
_$insertNode(_el$10, _el$29);
|
|
816
|
+
_$setProp(_el$10, "flexDirection", "column");
|
|
817
|
+
_$setProp(_el$10, "gap", 0);
|
|
818
|
+
_$setProp(_el$10, "padding", 1);
|
|
819
|
+
_$setProp(_el$10, "border", true);
|
|
820
|
+
_$insert(_el$10, _$createComponent(For, {
|
|
787
821
|
get each() {
|
|
788
822
|
return options();
|
|
789
823
|
},
|
|
@@ -792,39 +826,39 @@ function QuizDialog(props) {
|
|
|
792
826
|
const isFocused = () => focused() === "options" && optionIndex() === idx;
|
|
793
827
|
const isSelected = () => selected().has(`opt:${idx}`);
|
|
794
828
|
return (() => {
|
|
795
|
-
var _el$
|
|
796
|
-
_$insertNode(_el$
|
|
797
|
-
_$insertNode(_el$
|
|
798
|
-
_$insertNode(_el$
|
|
799
|
-
_$setProp(_el$
|
|
800
|
-
_$setProp(_el$
|
|
801
|
-
_$setProp(_el$
|
|
802
|
-
_$setProp(_el$
|
|
803
|
-
_$setProp(_el$
|
|
804
|
-
_$insertNode(_el$62, _el$63);
|
|
805
|
-
_$setProp(_el$62, "width", 2);
|
|
806
|
-
_$setProp(_el$62, "alignItems", "center");
|
|
807
|
-
_$insert(_el$63, () => isFocused() ? "\u25B8" : " ");
|
|
829
|
+
var _el$63 = _$createElement("box"), _el$64 = _$createElement("box"), _el$65 = _$createElement("text"), _el$66 = _$createElement("box"), _el$67 = _$createElement("text"), _el$68 = _$createElement("box"), _el$69 = _$createElement("text"), _el$70 = _$createTextNode(`. `);
|
|
830
|
+
_$insertNode(_el$63, _el$64);
|
|
831
|
+
_$insertNode(_el$63, _el$66);
|
|
832
|
+
_$insertNode(_el$63, _el$68);
|
|
833
|
+
_$setProp(_el$63, "flexDirection", "row");
|
|
834
|
+
_$setProp(_el$63, "alignItems", "flexStart");
|
|
835
|
+
_$setProp(_el$63, "gap", 1);
|
|
836
|
+
_$setProp(_el$63, "paddingLeft", 1);
|
|
837
|
+
_$setProp(_el$63, "paddingRight", 1);
|
|
808
838
|
_$insertNode(_el$64, _el$65);
|
|
809
839
|
_$setProp(_el$64, "width", 2);
|
|
810
840
|
_$setProp(_el$64, "alignItems", "center");
|
|
811
|
-
_$insert(_el$65, (
|
|
812
|
-
var _c$4 = _$memo(() => !!isMulti());
|
|
813
|
-
return () => _c$4() ? isSelected() ? "\u2611" : "\u2610" : isSelected() ? "\u2B22" : "\u25CB";
|
|
814
|
-
})());
|
|
841
|
+
_$insert(_el$65, () => isFocused() ? "\u25B8" : " ");
|
|
815
842
|
_$insertNode(_el$66, _el$67);
|
|
816
|
-
_$setProp(_el$66, "
|
|
817
|
-
_$
|
|
818
|
-
_$
|
|
819
|
-
|
|
820
|
-
|
|
843
|
+
_$setProp(_el$66, "width", 2);
|
|
844
|
+
_$setProp(_el$66, "alignItems", "center");
|
|
845
|
+
_$insert(_el$67, (() => {
|
|
846
|
+
var _c$5 = _$memo(() => !!isMulti());
|
|
847
|
+
return () => _c$5() ? isSelected() ? "\u2611" : "\u2610" : isSelected() ? "\u2B22" : "\u25CB";
|
|
848
|
+
})());
|
|
849
|
+
_$insertNode(_el$68, _el$69);
|
|
850
|
+
_$setProp(_el$68, "flexGrow", 1);
|
|
851
|
+
_$insertNode(_el$69, _el$70);
|
|
852
|
+
_$setProp(_el$69, "wrapMode", "wrap");
|
|
853
|
+
_$insert(_el$69, idx + 1, _el$70);
|
|
854
|
+
_$insert(_el$69, () => opt.label, null);
|
|
821
855
|
_$effect((_p$) => {
|
|
822
|
-
var _v$
|
|
823
|
-
_v$
|
|
824
|
-
_v$
|
|
825
|
-
_v$
|
|
826
|
-
_v$
|
|
827
|
-
_v$
|
|
856
|
+
var _v$52 = isFocused() ? theme().backgroundElement : undefined, _v$53 = isFocused() ? theme().accent : theme().textMuted, _v$54 = isMulti() ? isSelected() ? theme().success : theme().textMuted : isSelected() ? theme().accent : theme().textMuted, _v$55 = isSelected() ? theme().text : theme().textMuted, _v$56 = isFocused();
|
|
857
|
+
_v$52 !== _p$.e && (_p$.e = _$setProp(_el$63, "backgroundColor", _v$52, _p$.e));
|
|
858
|
+
_v$53 !== _p$.t && (_p$.t = _$setProp(_el$65, "fg", _v$53, _p$.t));
|
|
859
|
+
_v$54 !== _p$.a && (_p$.a = _$setProp(_el$67, "fg", _v$54, _p$.a));
|
|
860
|
+
_v$55 !== _p$.o && (_p$.o = _$setProp(_el$69, "fg", _v$55, _p$.o));
|
|
861
|
+
_v$56 !== _p$.i && (_p$.i = _$setProp(_el$69, "bold", _v$56, _p$.i));
|
|
828
862
|
return _p$;
|
|
829
863
|
}, {
|
|
830
864
|
e: undefined,
|
|
@@ -833,133 +867,133 @@ function QuizDialog(props) {
|
|
|
833
867
|
o: undefined,
|
|
834
868
|
i: undefined
|
|
835
869
|
});
|
|
836
|
-
return _el$
|
|
870
|
+
return _el$63;
|
|
837
871
|
})();
|
|
838
872
|
}
|
|
839
|
-
}), _el$
|
|
840
|
-
_$insert(_el$
|
|
873
|
+
}), _el$13);
|
|
874
|
+
_$insert(_el$10, _$createComponent(Show, {
|
|
841
875
|
get when() {
|
|
842
876
|
return options().length > 0;
|
|
843
877
|
},
|
|
844
878
|
get children() {
|
|
845
|
-
var _el$
|
|
846
|
-
_$insertNode(_el$
|
|
847
|
-
_$setProp(_el$
|
|
848
|
-
_$insert(_el$
|
|
849
|
-
_$effect((_$p) => _$setProp(_el$
|
|
850
|
-
return _el$
|
|
879
|
+
var _el$11 = _$createElement("box"), _el$12 = _$createElement("text");
|
|
880
|
+
_$insertNode(_el$11, _el$12);
|
|
881
|
+
_$setProp(_el$11, "height", 1);
|
|
882
|
+
_$insert(_el$12, () => "\u2500".repeat(Math.max(20, popupWidth() - 8)));
|
|
883
|
+
_$effect((_$p) => _$setProp(_el$12, "fg", theme().borderSubtle, _$p));
|
|
884
|
+
return _el$11;
|
|
851
885
|
}
|
|
852
|
-
}), _el$
|
|
853
|
-
_$insertNode(_el$
|
|
854
|
-
_$insertNode(_el$
|
|
855
|
-
_$insertNode(_el$
|
|
856
|
-
_$setProp(_el$
|
|
857
|
-
_$setProp(_el$
|
|
858
|
-
_$setProp(_el$
|
|
859
|
-
_$setProp(_el$
|
|
860
|
-
_$setProp(_el$
|
|
861
|
-
_$insertNode(_el$12, _el$13);
|
|
862
|
-
_$setProp(_el$12, "width", 2);
|
|
863
|
-
_$setProp(_el$12, "alignItems", "center");
|
|
864
|
-
_$insert(_el$13, () => focused() === "options" && optionIndex() === dontKnowIdx() ? "\u25B8" : " ");
|
|
886
|
+
}), _el$13);
|
|
887
|
+
_$insertNode(_el$13, _el$14);
|
|
888
|
+
_$insertNode(_el$13, _el$16);
|
|
889
|
+
_$insertNode(_el$13, _el$18);
|
|
890
|
+
_$setProp(_el$13, "flexDirection", "row");
|
|
891
|
+
_$setProp(_el$13, "alignItems", "flexStart");
|
|
892
|
+
_$setProp(_el$13, "gap", 1);
|
|
893
|
+
_$setProp(_el$13, "paddingLeft", 1);
|
|
894
|
+
_$setProp(_el$13, "paddingRight", 1);
|
|
865
895
|
_$insertNode(_el$14, _el$15);
|
|
866
896
|
_$setProp(_el$14, "width", 2);
|
|
867
897
|
_$setProp(_el$14, "alignItems", "center");
|
|
868
|
-
_$insert(_el$15, () =>
|
|
898
|
+
_$insert(_el$15, () => focused() === "options" && optionIndex() === dontKnowIdx() ? "\u25B8" : " ");
|
|
869
899
|
_$insertNode(_el$16, _el$17);
|
|
870
|
-
_$setProp(_el$16, "
|
|
871
|
-
_$
|
|
872
|
-
_$
|
|
873
|
-
_$
|
|
874
|
-
_$
|
|
875
|
-
_$insertNode(_el$19,
|
|
876
|
-
_$setProp(_el$19, "
|
|
877
|
-
_$setProp(_el$19, "
|
|
878
|
-
_$
|
|
879
|
-
_$insertNode(_el$
|
|
880
|
-
_$setProp(_el$
|
|
881
|
-
_$setProp(_el$
|
|
882
|
-
_$setProp(_el$
|
|
883
|
-
_$insertNode(_el$
|
|
884
|
-
_$
|
|
900
|
+
_$setProp(_el$16, "width", 2);
|
|
901
|
+
_$setProp(_el$16, "alignItems", "center");
|
|
902
|
+
_$insert(_el$17, () => dontKnow() ? "\u2611" : "\u2610");
|
|
903
|
+
_$insertNode(_el$18, _el$19);
|
|
904
|
+
_$setProp(_el$18, "flexGrow", 1);
|
|
905
|
+
_$insertNode(_el$19, _$createTextNode(`I don't know \u2014 genuine gap, not a guess`));
|
|
906
|
+
_$setProp(_el$19, "italic", true);
|
|
907
|
+
_$setProp(_el$19, "wrapMode", "wrap");
|
|
908
|
+
_$insertNode(_el$21, _el$22);
|
|
909
|
+
_$insertNode(_el$21, _el$27);
|
|
910
|
+
_$setProp(_el$21, "flexDirection", "column");
|
|
911
|
+
_$setProp(_el$21, "gap", 0);
|
|
912
|
+
_$setProp(_el$21, "paddingTop", 1);
|
|
913
|
+
_$insertNode(_el$22, _el$23);
|
|
914
|
+
_$setProp(_el$22, "flexDirection", "row");
|
|
915
|
+
_$setProp(_el$22, "alignItems", "center");
|
|
916
|
+
_$setProp(_el$22, "gap", 1);
|
|
917
|
+
_$insertNode(_el$23, _$createTextNode(`\u270E Note (optional)`));
|
|
918
|
+
_$insert(_el$22, _$createComponent(Show, {
|
|
885
919
|
get when() {
|
|
886
920
|
return focused() === "note";
|
|
887
921
|
},
|
|
888
922
|
get children() {
|
|
889
|
-
var _el$
|
|
890
|
-
_$insertNode(_el$
|
|
891
|
-
_$effect((_$p) => _$setProp(_el$
|
|
892
|
-
return _el$
|
|
923
|
+
var _el$25 = _$createElement("text");
|
|
924
|
+
_$insertNode(_el$25, _$createTextNode(`\u25CF editing`));
|
|
925
|
+
_$effect((_$p) => _$setProp(_el$25, "fg", theme().accent, _$p));
|
|
926
|
+
return _el$25;
|
|
893
927
|
}
|
|
894
928
|
}), null);
|
|
895
|
-
_$setProp(_el$
|
|
896
|
-
_$setProp(_el$
|
|
897
|
-
_$setProp(_el$
|
|
898
|
-
_$insert(_el$
|
|
929
|
+
_$setProp(_el$27, "border", true);
|
|
930
|
+
_$setProp(_el$27, "paddingLeft", 1);
|
|
931
|
+
_$setProp(_el$27, "paddingRight", 1);
|
|
932
|
+
_$insert(_el$27, _$createComponent(Show, {
|
|
899
933
|
get when() {
|
|
900
934
|
return focused() === "note";
|
|
901
935
|
},
|
|
902
936
|
get fallback() {
|
|
903
937
|
return (() => {
|
|
904
|
-
var _el$
|
|
905
|
-
_$setProp(_el$
|
|
906
|
-
_$insert(_el$
|
|
907
|
-
_$effect((_$p) => _$setProp(_el$
|
|
908
|
-
return _el$
|
|
938
|
+
var _el$71 = _$createElement("text");
|
|
939
|
+
_$setProp(_el$71, "wrapMode", "wrap");
|
|
940
|
+
_$insert(_el$71, () => note() || "Tab to edit \xB7 share what you were thinking");
|
|
941
|
+
_$effect((_$p) => _$setProp(_el$71, "fg", note() ? theme().text : theme().textMuted, _$p));
|
|
942
|
+
return _el$71;
|
|
909
943
|
})();
|
|
910
944
|
},
|
|
911
945
|
get children() {
|
|
912
|
-
var _el$
|
|
913
|
-
_$use((el) => noteInputEl = el, _el$
|
|
914
|
-
_$setProp(_el$
|
|
915
|
-
_$setProp(_el$
|
|
946
|
+
var _el$28 = _$createElement("input");
|
|
947
|
+
_$use((el) => noteInputEl = el, _el$28);
|
|
948
|
+
_$setProp(_el$28, "onInput", (value) => setNote(typeof value === "string" ? value : value?.target?.value ?? value?.value ?? String(value ?? "")));
|
|
949
|
+
_$setProp(_el$28, "onSubmit", () => {
|
|
916
950
|
if (!selected().size && !dontKnow() && note().trim())
|
|
917
951
|
submitSelect();
|
|
918
952
|
else
|
|
919
953
|
setFocused("options");
|
|
920
954
|
});
|
|
921
|
-
_$setProp(_el$
|
|
922
|
-
_$effect((_$p) => _$setProp(_el$
|
|
923
|
-
return _el$
|
|
955
|
+
_$setProp(_el$28, "placeholder", "what was on your mind? (Enter to submit note \u2192 classify)");
|
|
956
|
+
_$effect((_$p) => _$setProp(_el$28, "value", note(), _$p));
|
|
957
|
+
return _el$28;
|
|
924
958
|
}
|
|
925
959
|
}));
|
|
926
|
-
_$insertNode(_el$
|
|
927
|
-
_$insertNode(_el$
|
|
928
|
-
_$setProp(_el$
|
|
929
|
-
_$setProp(_el$
|
|
930
|
-
_$setProp(_el$
|
|
931
|
-
_$insert(_el$
|
|
932
|
-
var _c$
|
|
933
|
-
return () => _c$
|
|
960
|
+
_$insertNode(_el$29, _el$30);
|
|
961
|
+
_$insertNode(_el$29, _el$31);
|
|
962
|
+
_$setProp(_el$29, "flexDirection", "row");
|
|
963
|
+
_$setProp(_el$29, "justifyContent", "space-between");
|
|
964
|
+
_$setProp(_el$29, "paddingTop", 1);
|
|
965
|
+
_$insert(_el$30, (() => {
|
|
966
|
+
var _c$3 = _$memo(() => !!isMulti());
|
|
967
|
+
return () => _c$3() ? `${selected().size} selected${dontKnow() ? " \xB7 I don't know" : ""}` : _$memo(() => !!(note().trim() && !selected().size && !dontKnow()))() ? "note \u2192 classify" : dontKnow() ? "I don't know" : "";
|
|
934
968
|
})());
|
|
935
|
-
_$insert(_el$
|
|
936
|
-
_$insert(_el$
|
|
969
|
+
_$insert(_el$31, () => focused() === "note" ? "Tab/Esc back" : "");
|
|
970
|
+
_$insert(_el$10, _$createComponent(Show, {
|
|
937
971
|
get when() {
|
|
938
972
|
return isMulti();
|
|
939
973
|
},
|
|
940
974
|
get children() {
|
|
941
|
-
var _el$
|
|
942
|
-
_$insertNode(_el$
|
|
943
|
-
_$setProp(_el$
|
|
944
|
-
_$setProp(_el$
|
|
945
|
-
_$insertNode(_el$31, _el$32);
|
|
946
|
-
_$insertNode(_el$31, _el$33);
|
|
947
|
-
_$setProp(_el$31, "flexDirection", "row");
|
|
948
|
-
_$setProp(_el$31, "alignItems", "center");
|
|
949
|
-
_$setProp(_el$31, "gap", 1);
|
|
950
|
-
_$setProp(_el$31, "border", true);
|
|
951
|
-
_$setProp(_el$31, "paddingLeft", 2);
|
|
952
|
-
_$setProp(_el$31, "paddingRight", 2);
|
|
953
|
-
_$insert(_el$32, () => focused() === "options" && optionIndex() === submitIdx() ? "\u25B8" : " ");
|
|
975
|
+
var _el$32 = _$createElement("box"), _el$33 = _$createElement("box"), _el$34 = _$createElement("text"), _el$35 = _$createElement("text"), _el$36 = _$createTextNode(`\u21B3 Submit`);
|
|
976
|
+
_$insertNode(_el$32, _el$33);
|
|
977
|
+
_$setProp(_el$32, "justifyContent", "center");
|
|
978
|
+
_$setProp(_el$32, "paddingTop", 1);
|
|
954
979
|
_$insertNode(_el$33, _el$34);
|
|
955
|
-
_$
|
|
956
|
-
_$
|
|
980
|
+
_$insertNode(_el$33, _el$35);
|
|
981
|
+
_$setProp(_el$33, "flexDirection", "row");
|
|
982
|
+
_$setProp(_el$33, "alignItems", "center");
|
|
983
|
+
_$setProp(_el$33, "gap", 1);
|
|
984
|
+
_$setProp(_el$33, "border", true);
|
|
985
|
+
_$setProp(_el$33, "paddingLeft", 2);
|
|
986
|
+
_$setProp(_el$33, "paddingRight", 2);
|
|
987
|
+
_$insert(_el$34, () => focused() === "options" && optionIndex() === submitIdx() ? "\u25B8" : " ");
|
|
988
|
+
_$insertNode(_el$35, _el$36);
|
|
989
|
+
_$setProp(_el$35, "bold", true);
|
|
990
|
+
_$insert(_el$35, () => note().trim() && !selected().size && !dontKnow() ? " note" : "", null);
|
|
957
991
|
_$effect((_p$) => {
|
|
958
|
-
var _v$
|
|
959
|
-
_v$
|
|
960
|
-
_v$
|
|
961
|
-
_v$
|
|
962
|
-
_v$
|
|
992
|
+
var _v$7 = focused() === "options" && optionIndex() === submitIdx() ? theme().accent : selected().size > 0 || dontKnow() || note().trim() ? theme().success : theme().borderSubtle, _v$8 = focused() === "options" && optionIndex() === submitIdx() ? theme().backgroundElement : selected().size > 0 || dontKnow() || note().trim() ? theme().success : theme().background, _v$9 = focused() === "options" && optionIndex() === submitIdx() ? theme().accent : selected().size > 0 || dontKnow() || note().trim() ? theme().background : theme().textMuted, _v$0 = focused() === "options" && optionIndex() === submitIdx() ? theme().accent : selected().size > 0 || dontKnow() || note().trim() ? theme().background : theme().textMuted;
|
|
993
|
+
_v$7 !== _p$.e && (_p$.e = _$setProp(_el$33, "borderColor", _v$7, _p$.e));
|
|
994
|
+
_v$8 !== _p$.t && (_p$.t = _$setProp(_el$33, "backgroundColor", _v$8, _p$.t));
|
|
995
|
+
_v$9 !== _p$.a && (_p$.a = _$setProp(_el$34, "fg", _v$9, _p$.a));
|
|
996
|
+
_v$0 !== _p$.o && (_p$.o = _$setProp(_el$35, "fg", _v$0, _p$.o));
|
|
963
997
|
return _p$;
|
|
964
998
|
}, {
|
|
965
999
|
e: undefined,
|
|
@@ -967,55 +1001,55 @@ function QuizDialog(props) {
|
|
|
967
1001
|
a: undefined,
|
|
968
1002
|
o: undefined
|
|
969
1003
|
});
|
|
970
|
-
return _el$
|
|
1004
|
+
return _el$32;
|
|
971
1005
|
}
|
|
972
1006
|
}), null);
|
|
973
|
-
_$insert(_el$
|
|
1007
|
+
_$insert(_el$10, _$createComponent(Show, {
|
|
974
1008
|
get when() {
|
|
975
1009
|
return _$memo(() => !!(!isMulti() && note().trim() && !selected().size))() && !dontKnow();
|
|
976
1010
|
},
|
|
977
1011
|
get children() {
|
|
978
|
-
var _el$
|
|
979
|
-
_$insertNode(_el$
|
|
980
|
-
_$setProp(_el$
|
|
981
|
-
_$setProp(_el$
|
|
982
|
-
_$insertNode(_el$
|
|
983
|
-
_$setProp(_el$
|
|
984
|
-
_$setProp(_el$
|
|
985
|
-
_$setProp(_el$
|
|
986
|
-
_$setProp(_el$
|
|
987
|
-
_$setProp(_el$
|
|
988
|
-
_$setProp(_el$
|
|
989
|
-
_$insertNode(_el$
|
|
990
|
-
_$setProp(_el$
|
|
1012
|
+
var _el$37 = _$createElement("box"), _el$38 = _$createElement("box"), _el$39 = _$createElement("text");
|
|
1013
|
+
_$insertNode(_el$37, _el$38);
|
|
1014
|
+
_$setProp(_el$37, "justifyContent", "center");
|
|
1015
|
+
_$setProp(_el$37, "paddingTop", 1);
|
|
1016
|
+
_$insertNode(_el$38, _el$39);
|
|
1017
|
+
_$setProp(_el$38, "flexDirection", "row");
|
|
1018
|
+
_$setProp(_el$38, "alignItems", "center");
|
|
1019
|
+
_$setProp(_el$38, "gap", 1);
|
|
1020
|
+
_$setProp(_el$38, "border", true);
|
|
1021
|
+
_$setProp(_el$38, "paddingLeft", 2);
|
|
1022
|
+
_$setProp(_el$38, "paddingRight", 2);
|
|
1023
|
+
_$insertNode(_el$39, _$createTextNode(`\u21B3 Submit note \u2192 classify`));
|
|
1024
|
+
_$setProp(_el$39, "bold", true);
|
|
991
1025
|
_$effect((_p$) => {
|
|
992
|
-
var _v$
|
|
993
|
-
_v$
|
|
994
|
-
_v$
|
|
995
|
-
_v$
|
|
1026
|
+
var _v$1 = focused() === "options" && optionIndex() === dontKnowIdx() + 1 ? theme().accent : theme().success, _v$10 = focused() === "options" && optionIndex() === dontKnowIdx() + 1 ? theme().backgroundElement : theme().success, _v$11 = focused() === "options" && optionIndex() === dontKnowIdx() + 1 ? theme().accent : theme().background;
|
|
1027
|
+
_v$1 !== _p$.e && (_p$.e = _$setProp(_el$38, "borderColor", _v$1, _p$.e));
|
|
1028
|
+
_v$10 !== _p$.t && (_p$.t = _$setProp(_el$38, "backgroundColor", _v$10, _p$.t));
|
|
1029
|
+
_v$11 !== _p$.a && (_p$.a = _$setProp(_el$39, "fg", _v$11, _p$.a));
|
|
996
1030
|
return _p$;
|
|
997
1031
|
}, {
|
|
998
1032
|
e: undefined,
|
|
999
1033
|
t: undefined,
|
|
1000
1034
|
a: undefined
|
|
1001
1035
|
});
|
|
1002
|
-
return _el$
|
|
1036
|
+
return _el$37;
|
|
1003
1037
|
}
|
|
1004
1038
|
}), null);
|
|
1005
1039
|
_$effect((_p$) => {
|
|
1006
|
-
var _v$
|
|
1007
|
-
_v$
|
|
1008
|
-
_v$
|
|
1009
|
-
_v$
|
|
1010
|
-
_v$
|
|
1011
|
-
_v$
|
|
1012
|
-
_v$
|
|
1013
|
-
_v$
|
|
1014
|
-
_v$
|
|
1015
|
-
_v$
|
|
1016
|
-
_v$
|
|
1017
|
-
_v$
|
|
1018
|
-
_v$
|
|
1040
|
+
var _v$12 = theme().borderSubtle, _v$13 = theme().background, _v$14 = focused() === "options" && optionIndex() === dontKnowIdx() ? theme().backgroundElement : undefined, _v$15 = focused() === "options" && optionIndex() === dontKnowIdx() ? theme().accent : theme().textMuted, _v$16 = dontKnow() ? theme().warning : theme().textMuted, _v$17 = dontKnow() ? theme().warning : theme().textMuted, _v$18 = focused() === "note" ? theme().accent : theme().textMuted, _v$19 = focused() === "note", _v$20 = focused() === "note" ? theme().accent : theme().borderSubtle, _v$21 = theme().backgroundElement, _v$22 = theme().textMuted, _v$23 = theme().textMuted;
|
|
1041
|
+
_v$12 !== _p$.e && (_p$.e = _$setProp(_el$10, "borderColor", _v$12, _p$.e));
|
|
1042
|
+
_v$13 !== _p$.t && (_p$.t = _$setProp(_el$10, "backgroundColor", _v$13, _p$.t));
|
|
1043
|
+
_v$14 !== _p$.a && (_p$.a = _$setProp(_el$13, "backgroundColor", _v$14, _p$.a));
|
|
1044
|
+
_v$15 !== _p$.o && (_p$.o = _$setProp(_el$15, "fg", _v$15, _p$.o));
|
|
1045
|
+
_v$16 !== _p$.i && (_p$.i = _$setProp(_el$17, "fg", _v$16, _p$.i));
|
|
1046
|
+
_v$17 !== _p$.n && (_p$.n = _$setProp(_el$19, "fg", _v$17, _p$.n));
|
|
1047
|
+
_v$18 !== _p$.s && (_p$.s = _$setProp(_el$23, "fg", _v$18, _p$.s));
|
|
1048
|
+
_v$19 !== _p$.h && (_p$.h = _$setProp(_el$23, "bold", _v$19, _p$.h));
|
|
1049
|
+
_v$20 !== _p$.r && (_p$.r = _$setProp(_el$27, "borderColor", _v$20, _p$.r));
|
|
1050
|
+
_v$21 !== _p$.d && (_p$.d = _$setProp(_el$27, "backgroundColor", _v$21, _p$.d));
|
|
1051
|
+
_v$22 !== _p$.l && (_p$.l = _$setProp(_el$30, "fg", _v$22, _p$.l));
|
|
1052
|
+
_v$23 !== _p$.u && (_p$.u = _$setProp(_el$31, "fg", _v$23, _p$.u));
|
|
1019
1053
|
return _p$;
|
|
1020
1054
|
}, {
|
|
1021
1055
|
e: undefined,
|
|
@@ -1031,37 +1065,37 @@ function QuizDialog(props) {
|
|
|
1031
1065
|
l: undefined,
|
|
1032
1066
|
u: undefined
|
|
1033
1067
|
});
|
|
1034
|
-
return _el$
|
|
1068
|
+
return _el$10;
|
|
1035
1069
|
}
|
|
1036
1070
|
}), null);
|
|
1037
|
-
_$insert(_el$
|
|
1071
|
+
_$insert(_el$8, _$createComponent(Show, {
|
|
1038
1072
|
get when() {
|
|
1039
1073
|
return phase() === "classifying";
|
|
1040
1074
|
},
|
|
1041
1075
|
get children() {
|
|
1042
|
-
var _el$
|
|
1043
|
-
_$insertNode(_el$
|
|
1044
|
-
_$insertNode(_el$
|
|
1045
|
-
_$insertNode(_el$
|
|
1046
|
-
_$setProp(_el$
|
|
1047
|
-
_$setProp(_el$
|
|
1048
|
-
_$setProp(_el$
|
|
1049
|
-
_$setProp(_el$
|
|
1050
|
-
_$setProp(_el$
|
|
1051
|
-
_$insertNode(_el$
|
|
1052
|
-
_$setProp(_el$
|
|
1053
|
-
_$insertNode(_el$
|
|
1054
|
-
_$insertNode(_el$
|
|
1055
|
-
_$setProp(_el$
|
|
1056
|
-
_$insert(_el$
|
|
1057
|
-
_$insertNode(_el$
|
|
1076
|
+
var _el$41 = _$createElement("box"), _el$42 = _$createElement("text"), _el$44 = _$createElement("text"), _el$45 = _$createTextNode(`"`), _el$46 = _$createTextNode(`"`), _el$47 = _$createElement("text");
|
|
1077
|
+
_$insertNode(_el$41, _el$42);
|
|
1078
|
+
_$insertNode(_el$41, _el$44);
|
|
1079
|
+
_$insertNode(_el$41, _el$47);
|
|
1080
|
+
_$setProp(_el$41, "flexDirection", "column");
|
|
1081
|
+
_$setProp(_el$41, "gap", 1);
|
|
1082
|
+
_$setProp(_el$41, "padding", 1);
|
|
1083
|
+
_$setProp(_el$41, "border", true);
|
|
1084
|
+
_$setProp(_el$41, "alignItems", "center");
|
|
1085
|
+
_$insertNode(_el$42, _$createTextNode(`\u25D0 Classifying your note...`));
|
|
1086
|
+
_$setProp(_el$42, "bold", true);
|
|
1087
|
+
_$insertNode(_el$44, _el$45);
|
|
1088
|
+
_$insertNode(_el$44, _el$46);
|
|
1089
|
+
_$setProp(_el$44, "wrapMode", "wrap");
|
|
1090
|
+
_$insert(_el$44, note, _el$46);
|
|
1091
|
+
_$insertNode(_el$47, _$createTextNode(`Mapping to options \u2014 please wait`));
|
|
1058
1092
|
_$effect((_p$) => {
|
|
1059
|
-
var _v$
|
|
1060
|
-
_v$
|
|
1061
|
-
_v$
|
|
1062
|
-
_v$
|
|
1063
|
-
_v$
|
|
1064
|
-
_v$
|
|
1093
|
+
var _v$24 = theme().accent, _v$25 = theme().background, _v$26 = theme().accent, _v$27 = theme().textMuted, _v$28 = theme().textMuted;
|
|
1094
|
+
_v$24 !== _p$.e && (_p$.e = _$setProp(_el$41, "borderColor", _v$24, _p$.e));
|
|
1095
|
+
_v$25 !== _p$.t && (_p$.t = _$setProp(_el$41, "backgroundColor", _v$25, _p$.t));
|
|
1096
|
+
_v$26 !== _p$.a && (_p$.a = _$setProp(_el$42, "fg", _v$26, _p$.a));
|
|
1097
|
+
_v$27 !== _p$.o && (_p$.o = _$setProp(_el$44, "fg", _v$27, _p$.o));
|
|
1098
|
+
_v$28 !== _p$.i && (_p$.i = _$setProp(_el$47, "fg", _v$28, _p$.i));
|
|
1065
1099
|
return _p$;
|
|
1066
1100
|
}, {
|
|
1067
1101
|
e: undefined,
|
|
@@ -1070,23 +1104,23 @@ function QuizDialog(props) {
|
|
|
1070
1104
|
o: undefined,
|
|
1071
1105
|
i: undefined
|
|
1072
1106
|
});
|
|
1073
|
-
return _el$
|
|
1107
|
+
return _el$41;
|
|
1074
1108
|
}
|
|
1075
1109
|
}), null);
|
|
1076
|
-
_$insert(_el$
|
|
1110
|
+
_$insert(_el$8, _$createComponent(Show, {
|
|
1077
1111
|
get when() {
|
|
1078
1112
|
return phase() === "feedback";
|
|
1079
1113
|
},
|
|
1080
1114
|
get children() {
|
|
1081
|
-
var _el$
|
|
1082
|
-
_$insertNode(_el$
|
|
1083
|
-
_$insertNode(_el$
|
|
1084
|
-
_$insertNode(_el$
|
|
1085
|
-
_$setProp(_el$
|
|
1086
|
-
_$setProp(_el$
|
|
1087
|
-
_$setProp(_el$
|
|
1088
|
-
_$setProp(_el$
|
|
1089
|
-
_$insert(_el$
|
|
1115
|
+
var _el$49 = _$createElement("box"), _el$50 = _$createElement("box"), _el$51 = _$createElement("text"), _el$55 = _$createElement("text"), _el$56 = _$createTextNode(`Correct: `), _el$59 = _$createElement("box"), _el$60 = _$createElement("markdown");
|
|
1116
|
+
_$insertNode(_el$49, _el$50);
|
|
1117
|
+
_$insertNode(_el$49, _el$55);
|
|
1118
|
+
_$insertNode(_el$49, _el$59);
|
|
1119
|
+
_$setProp(_el$49, "flexDirection", "column");
|
|
1120
|
+
_$setProp(_el$49, "gap", 1);
|
|
1121
|
+
_$setProp(_el$49, "padding", 1);
|
|
1122
|
+
_$setProp(_el$49, "border", true);
|
|
1123
|
+
_$insert(_el$49, _$createComponent(For, {
|
|
1090
1124
|
get each() {
|
|
1091
1125
|
return options();
|
|
1092
1126
|
},
|
|
@@ -1115,86 +1149,86 @@ function QuizDialog(props) {
|
|
|
1115
1149
|
bg = theme().warning;
|
|
1116
1150
|
}
|
|
1117
1151
|
return (() => {
|
|
1118
|
-
var _el$
|
|
1119
|
-
_$insertNode(_el$
|
|
1120
|
-
_$insertNode(_el$
|
|
1121
|
-
_$setProp(_el$
|
|
1122
|
-
_$setProp(_el$
|
|
1123
|
-
_$setProp(_el$
|
|
1124
|
-
_$setProp(_el$
|
|
1125
|
-
_$setProp(_el$
|
|
1126
|
-
_$insertNode(_el$71, _el$72);
|
|
1127
|
-
_$setProp(_el$71, "width", 2);
|
|
1128
|
-
_$setProp(_el$71, "alignItems", "center");
|
|
1129
|
-
_$setProp(_el$72, "fg", fg);
|
|
1130
|
-
_$setProp(_el$72, "bold", true);
|
|
1131
|
-
_$insert(_el$72, icon);
|
|
1152
|
+
var _el$72 = _$createElement("box"), _el$73 = _$createElement("box"), _el$74 = _$createElement("text"), _el$75 = _$createElement("box"), _el$76 = _$createElement("text"), _el$77 = _$createTextNode(`. `);
|
|
1153
|
+
_$insertNode(_el$72, _el$73);
|
|
1154
|
+
_$insertNode(_el$72, _el$75);
|
|
1155
|
+
_$setProp(_el$72, "flexDirection", "row");
|
|
1156
|
+
_$setProp(_el$72, "alignItems", "flexStart");
|
|
1157
|
+
_$setProp(_el$72, "gap", 1);
|
|
1158
|
+
_$setProp(_el$72, "paddingLeft", 1);
|
|
1159
|
+
_$setProp(_el$72, "backgroundColor", bg);
|
|
1132
1160
|
_$insertNode(_el$73, _el$74);
|
|
1133
|
-
_$setProp(_el$73, "
|
|
1134
|
-
_$
|
|
1161
|
+
_$setProp(_el$73, "width", 2);
|
|
1162
|
+
_$setProp(_el$73, "alignItems", "center");
|
|
1135
1163
|
_$setProp(_el$74, "fg", fg);
|
|
1136
|
-
_$setProp(_el$74, "
|
|
1137
|
-
_$insert(_el$74,
|
|
1138
|
-
_$
|
|
1139
|
-
|
|
1164
|
+
_$setProp(_el$74, "bold", true);
|
|
1165
|
+
_$insert(_el$74, icon);
|
|
1166
|
+
_$insertNode(_el$75, _el$76);
|
|
1167
|
+
_$setProp(_el$75, "flexGrow", 1);
|
|
1168
|
+
_$insertNode(_el$76, _el$77);
|
|
1169
|
+
_$setProp(_el$76, "fg", fg);
|
|
1170
|
+
_$setProp(_el$76, "wrapMode", "wrap");
|
|
1171
|
+
_$insert(_el$76, idx, _el$77);
|
|
1172
|
+
_$insert(_el$76, () => opt.label, null);
|
|
1173
|
+
return _el$72;
|
|
1140
1174
|
})();
|
|
1141
1175
|
}
|
|
1142
|
-
}), _el$
|
|
1143
|
-
_$insertNode(_el$
|
|
1144
|
-
_$setProp(_el$
|
|
1145
|
-
_$insert(_el$
|
|
1146
|
-
_$insert(_el$
|
|
1176
|
+
}), _el$50);
|
|
1177
|
+
_$insertNode(_el$50, _el$51);
|
|
1178
|
+
_$setProp(_el$50, "height", 1);
|
|
1179
|
+
_$insert(_el$51, () => "\u2500".repeat(Math.max(20, popupWidth() - 12)));
|
|
1180
|
+
_$insert(_el$49, _$createComponent(Show, {
|
|
1147
1181
|
get when() {
|
|
1148
1182
|
return dontKnow();
|
|
1149
1183
|
},
|
|
1150
1184
|
get children() {
|
|
1151
|
-
var _el$
|
|
1152
|
-
_$insertNode(_el$
|
|
1153
|
-
_$effect((_$p) => _$setProp(_el$
|
|
1154
|
-
return _el$
|
|
1185
|
+
var _el$52 = _$createElement("text");
|
|
1186
|
+
_$insertNode(_el$52, _$createTextNode(`\u25CF You said: I don't know \u2014 genuine gap`));
|
|
1187
|
+
_$effect((_$p) => _$setProp(_el$52, "fg", theme().warning, _$p));
|
|
1188
|
+
return _el$52;
|
|
1155
1189
|
}
|
|
1156
|
-
}), _el$
|
|
1157
|
-
_$insert(_el$
|
|
1190
|
+
}), _el$55);
|
|
1191
|
+
_$insert(_el$49, _$createComponent(Show, {
|
|
1158
1192
|
get when() {
|
|
1159
1193
|
return !dontKnow();
|
|
1160
1194
|
},
|
|
1161
1195
|
get children() {
|
|
1162
|
-
var _el$
|
|
1163
|
-
_$setProp(_el$
|
|
1164
|
-
_$insert(_el$
|
|
1165
|
-
_$effect((_$p) => _$setProp(_el$
|
|
1166
|
-
return _el$
|
|
1196
|
+
var _el$54 = _$createElement("text");
|
|
1197
|
+
_$setProp(_el$54, "bold", true);
|
|
1198
|
+
_$insert(_el$54, () => feedback()?.correct ? "\u2713 Correct! Well located." : "\u2717 Incorrect \u2014 nice try, let's fix the edge.");
|
|
1199
|
+
_$effect((_$p) => _$setProp(_el$54, "fg", feedback()?.correct ? theme().success : theme().error, _$p));
|
|
1200
|
+
return _el$54;
|
|
1167
1201
|
}
|
|
1168
|
-
}), _el$
|
|
1169
|
-
_$insertNode(_el$
|
|
1170
|
-
_$insert(_el$
|
|
1171
|
-
_$insert(_el$
|
|
1202
|
+
}), _el$55);
|
|
1203
|
+
_$insertNode(_el$55, _el$56);
|
|
1204
|
+
_$insert(_el$55, () => props.request.correctIndices.map((i) => `${i}. ${options()[i - 1]?.label}`).join(", "), null);
|
|
1205
|
+
_$insert(_el$49, _$createComponent(Show, {
|
|
1172
1206
|
get when() {
|
|
1173
1207
|
return note();
|
|
1174
1208
|
},
|
|
1175
1209
|
get children() {
|
|
1176
|
-
var _el$
|
|
1177
|
-
_$insertNode(_el$
|
|
1178
|
-
_$insert(_el$
|
|
1179
|
-
_$effect((_$p) => _$setProp(_el$
|
|
1180
|
-
return _el$
|
|
1210
|
+
var _el$57 = _$createElement("text"), _el$58 = _$createTextNode(`Your note: `);
|
|
1211
|
+
_$insertNode(_el$57, _el$58);
|
|
1212
|
+
_$insert(_el$57, note, null);
|
|
1213
|
+
_$effect((_$p) => _$setProp(_el$57, "fg", theme().textMuted, _$p));
|
|
1214
|
+
return _el$57;
|
|
1181
1215
|
}
|
|
1182
|
-
}), _el$
|
|
1183
|
-
_$insertNode(_el$
|
|
1184
|
-
_$setProp(_el$
|
|
1185
|
-
_$setProp(_el$
|
|
1216
|
+
}), _el$59);
|
|
1217
|
+
_$insertNode(_el$59, _el$60);
|
|
1218
|
+
_$setProp(_el$59, "border", true);
|
|
1219
|
+
_$setProp(_el$59, "padding", 1);
|
|
1186
1220
|
_$effect((_p$) => {
|
|
1187
|
-
var _v$
|
|
1188
|
-
_v$
|
|
1189
|
-
_v$
|
|
1190
|
-
_v$
|
|
1191
|
-
_v$
|
|
1192
|
-
_v$
|
|
1193
|
-
_v$
|
|
1194
|
-
_v$
|
|
1195
|
-
_v$
|
|
1196
|
-
_v$
|
|
1197
|
-
_v$
|
|
1221
|
+
var _v$29 = feedback()?.correct ? theme().success : theme().error, _v$30 = theme().background, _v$31 = theme().borderSubtle, _v$32 = theme().textMuted, _v$33 = theme().borderSubtle, _v$34 = theme().backgroundPanel, _v$35 = syntax(), _v$36 = decodeQuizText(props.request.explanation), _v$37 = theme().text, _v$38 = theme().backgroundPanel;
|
|
1222
|
+
_v$29 !== _p$.e && (_p$.e = _$setProp(_el$49, "borderColor", _v$29, _p$.e));
|
|
1223
|
+
_v$30 !== _p$.t && (_p$.t = _$setProp(_el$49, "backgroundColor", _v$30, _p$.t));
|
|
1224
|
+
_v$31 !== _p$.a && (_p$.a = _$setProp(_el$51, "fg", _v$31, _p$.a));
|
|
1225
|
+
_v$32 !== _p$.o && (_p$.o = _$setProp(_el$55, "fg", _v$32, _p$.o));
|
|
1226
|
+
_v$33 !== _p$.i && (_p$.i = _$setProp(_el$59, "borderColor", _v$33, _p$.i));
|
|
1227
|
+
_v$34 !== _p$.n && (_p$.n = _$setProp(_el$59, "backgroundColor", _v$34, _p$.n));
|
|
1228
|
+
_v$35 !== _p$.s && (_p$.s = _$setProp(_el$60, "syntaxStyle", _v$35, _p$.s));
|
|
1229
|
+
_v$36 !== _p$.h && (_p$.h = _$setProp(_el$60, "content", _v$36, _p$.h));
|
|
1230
|
+
_v$37 !== _p$.r && (_p$.r = _$setProp(_el$60, "fg", _v$37, _p$.r));
|
|
1231
|
+
_v$38 !== _p$.d && (_p$.d = _$setProp(_el$60, "bg", _v$38, _p$.d));
|
|
1198
1232
|
return _p$;
|
|
1199
1233
|
}, {
|
|
1200
1234
|
e: undefined,
|
|
@@ -1208,38 +1242,98 @@ function QuizDialog(props) {
|
|
|
1208
1242
|
r: undefined,
|
|
1209
1243
|
d: undefined
|
|
1210
1244
|
});
|
|
1211
|
-
return _el$
|
|
1245
|
+
return _el$49;
|
|
1212
1246
|
}
|
|
1213
1247
|
}), null);
|
|
1214
|
-
_$insertNode(_el$
|
|
1215
|
-
_$setProp(_el$
|
|
1216
|
-
_$setProp(_el$
|
|
1217
|
-
_$setProp(_el$
|
|
1218
|
-
_$insert(_el$
|
|
1219
|
-
var _c$
|
|
1220
|
-
return () => _c$
|
|
1248
|
+
_$insertNode(_el$61, _el$62);
|
|
1249
|
+
_$setProp(_el$61, "height", 1);
|
|
1250
|
+
_$setProp(_el$61, "justifyContent", "center");
|
|
1251
|
+
_$setProp(_el$62, "wrapMode", "wrap");
|
|
1252
|
+
_$insert(_el$62, (() => {
|
|
1253
|
+
var _c$4 = _$memo(() => phase() === "feedback");
|
|
1254
|
+
return () => _c$4() ? _$memo(() => !!(canScrollUp() && canScrollDown()))() ? [(() => {
|
|
1255
|
+
var _el$78 = _$createElement("span");
|
|
1256
|
+
_$insertNode(_el$78, _$createTextNode(`\u25B2 more above \xB7 \u25BC more below`));
|
|
1257
|
+
_$effect((_$p) => _$setProp(_el$78, "style", {
|
|
1258
|
+
fg: theme.warning,
|
|
1259
|
+
bold: true
|
|
1260
|
+
}, _$p));
|
|
1261
|
+
return _el$78;
|
|
1262
|
+
})(), (() => {
|
|
1263
|
+
var _el$80 = _$createElement("span");
|
|
1264
|
+
_$insertNode(_el$80, _$createTextNode(` \u2014 d/u to scroll \xB7 Enter to continue`));
|
|
1265
|
+
_$effect((_$p) => _$setProp(_el$80, "style", {
|
|
1266
|
+
fg: theme().textMuted
|
|
1267
|
+
}, _$p));
|
|
1268
|
+
return _el$80;
|
|
1269
|
+
})()] : _$memo(() => !!canScrollDown())() ? [(() => {
|
|
1270
|
+
var _el$82 = _$createElement("span");
|
|
1271
|
+
_$insertNode(_el$82, _$createTextNode(`\u25BC more below`));
|
|
1272
|
+
_$effect((_$p) => _$setProp(_el$82, "style", {
|
|
1273
|
+
fg: theme.warning,
|
|
1274
|
+
bold: true
|
|
1275
|
+
}, _$p));
|
|
1276
|
+
return _el$82;
|
|
1277
|
+
})(), (() => {
|
|
1278
|
+
var _el$84 = _$createElement("span");
|
|
1279
|
+
_$insertNode(_el$84, _$createTextNode(` \u2014 d to scroll \xB7 Enter to continue`));
|
|
1280
|
+
_$effect((_$p) => _$setProp(_el$84, "style", {
|
|
1281
|
+
fg: theme().textMuted
|
|
1282
|
+
}, _$p));
|
|
1283
|
+
return _el$84;
|
|
1284
|
+
})()] : _$memo(() => !!canScrollUp())() ? [(() => {
|
|
1285
|
+
var _el$86 = _$createElement("span");
|
|
1286
|
+
_$insertNode(_el$86, _$createTextNode(`\u25B2 more above`));
|
|
1287
|
+
_$effect((_$p) => _$setProp(_el$86, "style", {
|
|
1288
|
+
fg: theme.accent,
|
|
1289
|
+
bold: true
|
|
1290
|
+
}, _$p));
|
|
1291
|
+
return _el$86;
|
|
1292
|
+
})(), (() => {
|
|
1293
|
+
var _el$88 = _$createElement("span");
|
|
1294
|
+
_$insertNode(_el$88, _$createTextNode(` \u2014 u to scroll \xB7 Enter to continue`));
|
|
1295
|
+
_$effect((_$p) => _$setProp(_el$88, "style", {
|
|
1296
|
+
fg: theme().textMuted
|
|
1297
|
+
}, _$p));
|
|
1298
|
+
return _el$88;
|
|
1299
|
+
})()] : "\u21B5 Enter / Esc to continue \u2192 next probe" : _$memo(() => phase() === "classifying")() ? "Classifying your note..." : _$memo(() => focused() === "note")() ? "Enter submit note \u2192 classify \xB7 Tab/Esc back" : _$memo(() => !!(canScrollUp() || canScrollDown()))() ? [(() => {
|
|
1300
|
+
var _el$90 = _$createElement("span");
|
|
1301
|
+
_$insertNode(_el$90, _$createTextNode(`j/k or \u2191\u2193 move \xB7 Space toggle \xB7 Tab note \xB7 Enter submit \xB7 Esc cancel`));
|
|
1302
|
+
_$effect((_$p) => _$setProp(_el$90, "style", {
|
|
1303
|
+
fg: theme().textMuted
|
|
1304
|
+
}, _$p));
|
|
1305
|
+
return _el$90;
|
|
1306
|
+
})(), (() => {
|
|
1307
|
+
var _el$92 = _$createElement("span");
|
|
1308
|
+
_$insertNode(_el$92, _$createTextNode(` \xB7 d/u scroll`));
|
|
1309
|
+
_$effect((_$p) => _$setProp(_el$92, "style", {
|
|
1310
|
+
fg: theme.warning,
|
|
1311
|
+
bold: true
|
|
1312
|
+
}, _$p));
|
|
1313
|
+
return _el$92;
|
|
1314
|
+
})()] : "j/k or \u2191\u2193 move \xB7 Space toggle \xB7 Tab note \xB7 Enter submit \xB7 Esc cancel";
|
|
1221
1315
|
})());
|
|
1222
1316
|
_$effect((_p$) => {
|
|
1223
|
-
var _v$
|
|
1317
|
+
var _v$39 = popupWidth(), _v$40 = popupHeight(), _v$41 = phase() === "feedback" ? feedback()?.correct ? theme().success : theme().error : theme().accent, _v$42 = theme().backgroundPanel, _v$43 = phase() === "feedback" ? feedback()?.correct ? theme().success : theme().error : theme().accent, _v$44 = theme().background, _v$45 = theme().background, _v$46 = {
|
|
1224
1318
|
visible: true,
|
|
1225
1319
|
trackOptions: {
|
|
1226
1320
|
backgroundColor: theme().background,
|
|
1227
1321
|
foregroundColor: theme().borderActive
|
|
1228
1322
|
}
|
|
1229
|
-
}, _v$
|
|
1230
|
-
_v$
|
|
1231
|
-
_v$
|
|
1232
|
-
_v$
|
|
1233
|
-
_v$
|
|
1234
|
-
_v$
|
|
1235
|
-
_v$
|
|
1236
|
-
_v$
|
|
1237
|
-
_v$
|
|
1238
|
-
_v$
|
|
1239
|
-
_v$
|
|
1240
|
-
_v$
|
|
1241
|
-
_v$
|
|
1242
|
-
_v$
|
|
1323
|
+
}, _v$47 = syntax(), _v$48 = decodeQuizText(props.request.question), _v$49 = theme().text, _v$50 = theme().backgroundPanel, _v$51 = theme().textMuted;
|
|
1324
|
+
_v$39 !== _p$.e && (_p$.e = _$setProp(_el$, "width", _v$39, _p$.e));
|
|
1325
|
+
_v$40 !== _p$.t && (_p$.t = _$setProp(_el$, "height", _v$40, _p$.t));
|
|
1326
|
+
_v$41 !== _p$.a && (_p$.a = _$setProp(_el$, "borderColor", _v$41, _p$.a));
|
|
1327
|
+
_v$42 !== _p$.o && (_p$.o = _$setProp(_el$, "backgroundColor", _v$42, _p$.o));
|
|
1328
|
+
_v$43 !== _p$.i && (_p$.i = _$setProp(_el$2, "backgroundColor", _v$43, _p$.i));
|
|
1329
|
+
_v$44 !== _p$.n && (_p$.n = _$setProp(_el$3, "fg", _v$44, _p$.n));
|
|
1330
|
+
_v$45 !== _p$.s && (_p$.s = _$setProp(_el$4, "fg", _v$45, _p$.s));
|
|
1331
|
+
_v$46 !== _p$.h && (_p$.h = _$setProp(_el$8, "verticalScrollbarOptions", _v$46, _p$.h));
|
|
1332
|
+
_v$47 !== _p$.r && (_p$.r = _$setProp(_el$0, "syntaxStyle", _v$47, _p$.r));
|
|
1333
|
+
_v$48 !== _p$.d && (_p$.d = _$setProp(_el$0, "content", _v$48, _p$.d));
|
|
1334
|
+
_v$49 !== _p$.l && (_p$.l = _$setProp(_el$0, "fg", _v$49, _p$.l));
|
|
1335
|
+
_v$50 !== _p$.u && (_p$.u = _$setProp(_el$0, "bg", _v$50, _p$.u));
|
|
1336
|
+
_v$51 !== _p$.c && (_p$.c = _$setProp(_el$62, "fg", _v$51, _p$.c));
|
|
1243
1337
|
return _p$;
|
|
1244
1338
|
}, {
|
|
1245
1339
|
e: undefined,
|
|
@@ -1263,8 +1357,14 @@ function QuizBatchDialog(props) {
|
|
|
1263
1357
|
const theme = () => props.api.theme.current;
|
|
1264
1358
|
const syntax = () => syntaxStyle(theme());
|
|
1265
1359
|
const dims = useTerminalDimensions();
|
|
1266
|
-
const popupWidth = () =>
|
|
1267
|
-
|
|
1360
|
+
const popupWidth = () => {
|
|
1361
|
+
const w = dims().width;
|
|
1362
|
+
return Math.max(64, Math.min(w - 8, Math.floor(w * 0.82), 96));
|
|
1363
|
+
};
|
|
1364
|
+
const popupHeight = () => {
|
|
1365
|
+
const h = dims().height;
|
|
1366
|
+
return Math.max(14, Math.min(h - 6, Math.floor(h * 0.64), 28));
|
|
1367
|
+
};
|
|
1268
1368
|
const [idx, setIdx] = createSignal(0);
|
|
1269
1369
|
if (!props.request.quizzes || props.request.quizzes.length === 0) {
|
|
1270
1370
|
tlog("QuizBatchDialog empty quizzes, cancelling", props.request.id);
|
|
@@ -1693,48 +1793,76 @@ function QuizBatchDialog(props) {
|
|
|
1693
1793
|
}
|
|
1694
1794
|
});
|
|
1695
1795
|
return (() => {
|
|
1696
|
-
var _el$
|
|
1697
|
-
_$insertNode(_el$
|
|
1698
|
-
_$insertNode(_el$
|
|
1699
|
-
_$insertNode(_el$
|
|
1700
|
-
_$setProp(_el$
|
|
1701
|
-
_$setProp(_el$
|
|
1702
|
-
_$setProp(_el$
|
|
1703
|
-
_$setProp(_el$
|
|
1704
|
-
_$insertNode(_el$
|
|
1705
|
-
_$insertNode(_el$
|
|
1706
|
-
_$setProp(_el$
|
|
1707
|
-
_$setProp(_el$
|
|
1708
|
-
_$setProp(_el$
|
|
1709
|
-
_$setProp(_el$
|
|
1710
|
-
_$setProp(_el$
|
|
1711
|
-
_$insertNode(_el$
|
|
1712
|
-
_$insertNode(_el$
|
|
1713
|
-
_$insertNode(_el$
|
|
1714
|
-
_$setProp(_el$
|
|
1715
|
-
_$insert(_el$
|
|
1716
|
-
_$insert(_el$
|
|
1717
|
-
_$insert(_el$
|
|
1718
|
-
var _c$
|
|
1719
|
-
return () => _c$
|
|
1796
|
+
var _el$94 = _$createElement("box"), _el$95 = _$createElement("box"), _el$96 = _$createElement("text"), _el$97 = _$createTextNode(` decks.quiz batch `), _el$98 = _$createTextNode(`/`), _el$99 = _$createTextNode(` `), _el$100 = _$createElement("text"), _el$104 = _$createElement("scrollbox"), _el$105 = _$createElement("markdown"), _el$146 = _$createElement("box"), _el$147 = _$createElement("text");
|
|
1797
|
+
_$insertNode(_el$94, _el$95);
|
|
1798
|
+
_$insertNode(_el$94, _el$104);
|
|
1799
|
+
_$insertNode(_el$94, _el$146);
|
|
1800
|
+
_$setProp(_el$94, "flexDirection", "column");
|
|
1801
|
+
_$setProp(_el$94, "border", true);
|
|
1802
|
+
_$setProp(_el$94, "padding", 1);
|
|
1803
|
+
_$setProp(_el$94, "gap", 1);
|
|
1804
|
+
_$insertNode(_el$95, _el$96);
|
|
1805
|
+
_$insertNode(_el$95, _el$100);
|
|
1806
|
+
_$setProp(_el$95, "flexDirection", "row");
|
|
1807
|
+
_$setProp(_el$95, "justifyContent", "space-between");
|
|
1808
|
+
_$setProp(_el$95, "paddingLeft", 1);
|
|
1809
|
+
_$setProp(_el$95, "paddingRight", 1);
|
|
1810
|
+
_$setProp(_el$95, "height", 1);
|
|
1811
|
+
_$insertNode(_el$96, _el$97);
|
|
1812
|
+
_$insertNode(_el$96, _el$98);
|
|
1813
|
+
_$insertNode(_el$96, _el$99);
|
|
1814
|
+
_$setProp(_el$96, "bold", true);
|
|
1815
|
+
_$insert(_el$96, () => idx() + 1, _el$98);
|
|
1816
|
+
_$insert(_el$96, () => props.request.quizzes.length, _el$99);
|
|
1817
|
+
_$insert(_el$96, (() => {
|
|
1818
|
+
var _c$6 = _$memo(() => phase() === "feedback");
|
|
1819
|
+
return () => _c$6() ? feedback()?.correct ? "\u2713" : "\u2717" : "";
|
|
1720
1820
|
})(), null);
|
|
1721
|
-
_$insertNode(_el$
|
|
1722
|
-
_$setProp(_el$
|
|
1723
|
-
_$
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1821
|
+
_$insertNode(_el$100, _$createTextNode(`learn`));
|
|
1822
|
+
_$setProp(_el$100, "dim", true);
|
|
1823
|
+
_$insert(_el$94, _$createComponent(Show, {
|
|
1824
|
+
get when() {
|
|
1825
|
+
return _$memo(() => phase() === "feedback")() && (canScrollUpBatch() || canScrollDownBatch());
|
|
1826
|
+
},
|
|
1827
|
+
get children() {
|
|
1828
|
+
var _el$102 = _$createElement("box"), _el$103 = _$createElement("text");
|
|
1829
|
+
_$insertNode(_el$102, _el$103);
|
|
1830
|
+
_$setProp(_el$102, "justifyContent", "center");
|
|
1831
|
+
_$setProp(_el$102, "height", 1);
|
|
1832
|
+
_$setProp(_el$102, "paddingLeft", 1);
|
|
1833
|
+
_$setProp(_el$102, "paddingRight", 1);
|
|
1834
|
+
_$setProp(_el$103, "bold", true);
|
|
1835
|
+
_$insert(_el$103, (() => {
|
|
1836
|
+
var _c$7 = _$memo(() => !!(canScrollUpBatch() && canScrollDownBatch()));
|
|
1837
|
+
return () => _c$7() ? "\u25B2 more above \xB7 \u25BC more below \u2014 d / u to scroll" : canScrollDownBatch() ? "\u25BC more below \u2014 press d to see explanation" : "\u25B2 more above \u2014 press u to scroll up";
|
|
1838
|
+
})());
|
|
1839
|
+
_$effect((_p$) => {
|
|
1840
|
+
var _v$57 = canScrollDownBatch() ? theme().warning : theme().accent, _v$58 = theme().background;
|
|
1841
|
+
_v$57 !== _p$.e && (_p$.e = _$setProp(_el$102, "backgroundColor", _v$57, _p$.e));
|
|
1842
|
+
_v$58 !== _p$.t && (_p$.t = _$setProp(_el$103, "fg", _v$58, _p$.t));
|
|
1843
|
+
return _p$;
|
|
1844
|
+
}, {
|
|
1845
|
+
e: undefined,
|
|
1846
|
+
t: undefined
|
|
1847
|
+
});
|
|
1848
|
+
return _el$102;
|
|
1849
|
+
}
|
|
1850
|
+
}), _el$104);
|
|
1851
|
+
_$insertNode(_el$104, _el$105);
|
|
1852
|
+
_$use((el) => scrollRefBatch = el, _el$104);
|
|
1853
|
+
_$setProp(_el$104, "flexGrow", 1);
|
|
1854
|
+
_$insert(_el$104, _$createComponent(Show, {
|
|
1727
1855
|
get when() {
|
|
1728
1856
|
return cur().details;
|
|
1729
1857
|
},
|
|
1730
1858
|
get children() {
|
|
1731
|
-
var _el$
|
|
1859
|
+
var _el$106 = _$createElement("markdown");
|
|
1732
1860
|
_$effect((_p$) => {
|
|
1733
|
-
var _v$
|
|
1734
|
-
_v$
|
|
1735
|
-
_v$
|
|
1736
|
-
_v$
|
|
1737
|
-
_v$
|
|
1861
|
+
var _v$59 = syntax(), _v$60 = decodeQuizText(cur().details), _v$61 = theme().textMuted, _v$62 = theme().backgroundPanel;
|
|
1862
|
+
_v$59 !== _p$.e && (_p$.e = _$setProp(_el$106, "syntaxStyle", _v$59, _p$.e));
|
|
1863
|
+
_v$60 !== _p$.t && (_p$.t = _$setProp(_el$106, "content", _v$60, _p$.t));
|
|
1864
|
+
_v$61 !== _p$.a && (_p$.a = _$setProp(_el$106, "fg", _v$61, _p$.a));
|
|
1865
|
+
_v$62 !== _p$.o && (_p$.o = _$setProp(_el$106, "bg", _v$62, _p$.o));
|
|
1738
1866
|
return _p$;
|
|
1739
1867
|
}, {
|
|
1740
1868
|
e: undefined,
|
|
@@ -1742,24 +1870,24 @@ function QuizBatchDialog(props) {
|
|
|
1742
1870
|
a: undefined,
|
|
1743
1871
|
o: undefined
|
|
1744
1872
|
});
|
|
1745
|
-
return _el$
|
|
1873
|
+
return _el$106;
|
|
1746
1874
|
}
|
|
1747
1875
|
}), null);
|
|
1748
|
-
_$insert(_el$
|
|
1876
|
+
_$insert(_el$104, _$createComponent(Show, {
|
|
1749
1877
|
get when() {
|
|
1750
1878
|
return phase() === "select";
|
|
1751
1879
|
},
|
|
1752
1880
|
get children() {
|
|
1753
|
-
var _el$
|
|
1754
|
-
_$insertNode(_el$
|
|
1755
|
-
_$insertNode(_el$
|
|
1756
|
-
_$insertNode(_el$
|
|
1757
|
-
_$insertNode(_el$
|
|
1758
|
-
_$setProp(_el$
|
|
1759
|
-
_$setProp(_el$
|
|
1760
|
-
_$setProp(_el$
|
|
1761
|
-
_$setProp(_el$
|
|
1762
|
-
_$insert(_el$
|
|
1881
|
+
var _el$107 = _$createElement("box"), _el$108 = _$createElement("box"), _el$109 = _$createElement("text"), _el$110 = _$createElement("box"), _el$111 = _$createElement("box"), _el$112 = _$createElement("text"), _el$113 = _$createElement("box"), _el$114 = _$createElement("text"), _el$115 = _$createElement("box"), _el$116 = _$createElement("text"), _el$118 = _$createElement("box"), _el$119 = _$createElement("text"), _el$121 = _$createElement("box"), _el$123 = _$createElement("box"), _el$124 = _$createElement("text"), _el$125 = _$createElement("text"), _el$126 = _$createTextNode(`/`);
|
|
1882
|
+
_$insertNode(_el$107, _el$108);
|
|
1883
|
+
_$insertNode(_el$107, _el$110);
|
|
1884
|
+
_$insertNode(_el$107, _el$118);
|
|
1885
|
+
_$insertNode(_el$107, _el$123);
|
|
1886
|
+
_$setProp(_el$107, "flexDirection", "column");
|
|
1887
|
+
_$setProp(_el$107, "gap", 0);
|
|
1888
|
+
_$setProp(_el$107, "padding", 1);
|
|
1889
|
+
_$setProp(_el$107, "border", true);
|
|
1890
|
+
_$insert(_el$107, _$createComponent(For, {
|
|
1763
1891
|
get each() {
|
|
1764
1892
|
return cur().options;
|
|
1765
1893
|
},
|
|
@@ -1768,36 +1896,36 @@ function QuizBatchDialog(props) {
|
|
|
1768
1896
|
const foc = () => focused() === "options" && optionIndex() === id;
|
|
1769
1897
|
const sel = () => selected().has(`opt:${id}`);
|
|
1770
1898
|
return (() => {
|
|
1771
|
-
var _el$
|
|
1772
|
-
_$insertNode(_el$
|
|
1773
|
-
_$insertNode(_el$
|
|
1774
|
-
_$insertNode(_el$
|
|
1775
|
-
_$setProp(_el$
|
|
1776
|
-
_$setProp(_el$
|
|
1777
|
-
_$setProp(_el$
|
|
1778
|
-
_$setProp(_el$
|
|
1779
|
-
_$insertNode(_el$
|
|
1780
|
-
_$setProp(_el$
|
|
1781
|
-
_$insert(_el$
|
|
1782
|
-
_$insertNode(_el$
|
|
1783
|
-
_$setProp(_el$
|
|
1784
|
-
_$insert(_el$
|
|
1785
|
-
var _c$
|
|
1786
|
-
return () => _c$
|
|
1899
|
+
var _el$148 = _$createElement("box"), _el$149 = _$createElement("box"), _el$150 = _$createElement("text"), _el$151 = _$createElement("box"), _el$152 = _$createElement("text"), _el$153 = _$createElement("box"), _el$154 = _$createElement("text"), _el$155 = _$createTextNode(`. `);
|
|
1900
|
+
_$insertNode(_el$148, _el$149);
|
|
1901
|
+
_$insertNode(_el$148, _el$151);
|
|
1902
|
+
_$insertNode(_el$148, _el$153);
|
|
1903
|
+
_$setProp(_el$148, "flexDirection", "row");
|
|
1904
|
+
_$setProp(_el$148, "alignItems", "flexStart");
|
|
1905
|
+
_$setProp(_el$148, "gap", 1);
|
|
1906
|
+
_$setProp(_el$148, "paddingLeft", 1);
|
|
1907
|
+
_$insertNode(_el$149, _el$150);
|
|
1908
|
+
_$setProp(_el$149, "width", 2);
|
|
1909
|
+
_$insert(_el$150, () => foc() ? "\u25B8" : " ");
|
|
1910
|
+
_$insertNode(_el$151, _el$152);
|
|
1911
|
+
_$setProp(_el$151, "width", 2);
|
|
1912
|
+
_$insert(_el$152, (() => {
|
|
1913
|
+
var _c$0 = _$memo(() => !!isMulti());
|
|
1914
|
+
return () => _c$0() ? sel() ? "\u2611" : "\u2610" : sel() ? "\u2B22" : "\u25CB";
|
|
1787
1915
|
})());
|
|
1788
|
-
_$insertNode(_el$
|
|
1789
|
-
_$setProp(_el$
|
|
1790
|
-
_$insertNode(_el$
|
|
1791
|
-
_$setProp(_el$
|
|
1792
|
-
_$insert(_el$
|
|
1793
|
-
_$insert(_el$
|
|
1916
|
+
_$insertNode(_el$153, _el$154);
|
|
1917
|
+
_$setProp(_el$153, "flexGrow", 1);
|
|
1918
|
+
_$insertNode(_el$154, _el$155);
|
|
1919
|
+
_$setProp(_el$154, "wrapMode", "wrap");
|
|
1920
|
+
_$insert(_el$154, id + 1, _el$155);
|
|
1921
|
+
_$insert(_el$154, () => opt.label, null);
|
|
1794
1922
|
_$effect((_p$) => {
|
|
1795
|
-
var _v$
|
|
1796
|
-
_v$
|
|
1797
|
-
_v$
|
|
1798
|
-
_v$
|
|
1799
|
-
_v$
|
|
1800
|
-
_v$
|
|
1923
|
+
var _v$106 = foc() ? theme().backgroundElement : undefined, _v$107 = foc() ? theme().accent : theme().textMuted, _v$108 = isMulti() ? sel() ? theme().success : theme().textMuted : sel() ? theme().accent : theme().textMuted, _v$109 = sel() ? theme().text : theme().textMuted, _v$110 = foc();
|
|
1924
|
+
_v$106 !== _p$.e && (_p$.e = _$setProp(_el$148, "backgroundColor", _v$106, _p$.e));
|
|
1925
|
+
_v$107 !== _p$.t && (_p$.t = _$setProp(_el$150, "fg", _v$107, _p$.t));
|
|
1926
|
+
_v$108 !== _p$.a && (_p$.a = _$setProp(_el$152, "fg", _v$108, _p$.a));
|
|
1927
|
+
_v$109 !== _p$.o && (_p$.o = _$setProp(_el$154, "fg", _v$109, _p$.o));
|
|
1928
|
+
_v$110 !== _p$.i && (_p$.i = _$setProp(_el$154, "bold", _v$110, _p$.i));
|
|
1801
1929
|
return _p$;
|
|
1802
1930
|
}, {
|
|
1803
1931
|
e: undefined,
|
|
@@ -1806,123 +1934,123 @@ function QuizBatchDialog(props) {
|
|
|
1806
1934
|
o: undefined,
|
|
1807
1935
|
i: undefined
|
|
1808
1936
|
});
|
|
1809
|
-
return _el$
|
|
1937
|
+
return _el$148;
|
|
1810
1938
|
})();
|
|
1811
1939
|
}
|
|
1812
|
-
}), _el$
|
|
1813
|
-
_$insertNode(_el$
|
|
1814
|
-
_$setProp(_el$
|
|
1815
|
-
_$insert(_el$
|
|
1816
|
-
_$insertNode(_el$
|
|
1817
|
-
_$insertNode(_el$
|
|
1818
|
-
_$insertNode(_el$
|
|
1819
|
-
_$setProp(_el$
|
|
1820
|
-
_$setProp(_el$
|
|
1821
|
-
_$setProp(_el$
|
|
1822
|
-
_$insertNode(_el$
|
|
1823
|
-
_$setProp(_el$
|
|
1824
|
-
_$insert(_el$
|
|
1825
|
-
_$insertNode(_el$
|
|
1826
|
-
_$setProp(_el$
|
|
1827
|
-
_$insert(_el$
|
|
1828
|
-
_$insertNode(_el$
|
|
1829
|
-
_$setProp(_el$
|
|
1830
|
-
_$insertNode(_el$
|
|
1831
|
-
_$setProp(_el$
|
|
1832
|
-
_$insertNode(_el$
|
|
1833
|
-
_$insertNode(_el$
|
|
1834
|
-
_$setProp(_el$
|
|
1835
|
-
_$setProp(_el$
|
|
1836
|
-
_$insertNode(_el$
|
|
1837
|
-
_$setProp(_el$
|
|
1838
|
-
_$setProp(_el$
|
|
1839
|
-
_$setProp(_el$
|
|
1840
|
-
_$insert(_el$
|
|
1940
|
+
}), _el$108);
|
|
1941
|
+
_$insertNode(_el$108, _el$109);
|
|
1942
|
+
_$setProp(_el$108, "height", 1);
|
|
1943
|
+
_$insert(_el$109, () => "\u2500".repeat(Math.max(20, popupWidth() - 8)));
|
|
1944
|
+
_$insertNode(_el$110, _el$111);
|
|
1945
|
+
_$insertNode(_el$110, _el$113);
|
|
1946
|
+
_$insertNode(_el$110, _el$115);
|
|
1947
|
+
_$setProp(_el$110, "flexDirection", "row");
|
|
1948
|
+
_$setProp(_el$110, "gap", 1);
|
|
1949
|
+
_$setProp(_el$110, "paddingLeft", 1);
|
|
1950
|
+
_$insertNode(_el$111, _el$112);
|
|
1951
|
+
_$setProp(_el$111, "width", 2);
|
|
1952
|
+
_$insert(_el$112, () => focused() === "options" && optionIndex() === dontKnowIdx() ? "\u25B8" : " ");
|
|
1953
|
+
_$insertNode(_el$113, _el$114);
|
|
1954
|
+
_$setProp(_el$113, "width", 2);
|
|
1955
|
+
_$insert(_el$114, () => dontKnow() ? "\u2611" : "\u2610");
|
|
1956
|
+
_$insertNode(_el$115, _el$116);
|
|
1957
|
+
_$setProp(_el$115, "flexGrow", 1);
|
|
1958
|
+
_$insertNode(_el$116, _$createTextNode(`I don't know`));
|
|
1959
|
+
_$setProp(_el$116, "italic", true);
|
|
1960
|
+
_$insertNode(_el$118, _el$119);
|
|
1961
|
+
_$insertNode(_el$118, _el$121);
|
|
1962
|
+
_$setProp(_el$118, "flexDirection", "column");
|
|
1963
|
+
_$setProp(_el$118, "paddingTop", 1);
|
|
1964
|
+
_$insertNode(_el$119, _$createTextNode(`\u270E Note`));
|
|
1965
|
+
_$setProp(_el$121, "border", true);
|
|
1966
|
+
_$setProp(_el$121, "paddingLeft", 1);
|
|
1967
|
+
_$setProp(_el$121, "paddingRight", 1);
|
|
1968
|
+
_$insert(_el$121, _$createComponent(Show, {
|
|
1841
1969
|
get when() {
|
|
1842
1970
|
return focused() === "note";
|
|
1843
1971
|
},
|
|
1844
1972
|
get fallback() {
|
|
1845
1973
|
return (() => {
|
|
1846
|
-
var _el$
|
|
1847
|
-
_$insert(_el$
|
|
1848
|
-
_$effect((_$p) => _$setProp(_el$
|
|
1849
|
-
return _el$
|
|
1974
|
+
var _el$156 = _$createElement("text");
|
|
1975
|
+
_$insert(_el$156, () => note() || "Tab to edit \xB7 share what you were thinking");
|
|
1976
|
+
_$effect((_$p) => _$setProp(_el$156, "fg", theme().textMuted, _$p));
|
|
1977
|
+
return _el$156;
|
|
1850
1978
|
})();
|
|
1851
1979
|
},
|
|
1852
1980
|
get children() {
|
|
1853
|
-
var _el$
|
|
1854
|
-
_$use((el) => noteEl = el, _el$
|
|
1855
|
-
_$setProp(_el$
|
|
1856
|
-
_$setProp(_el$
|
|
1981
|
+
var _el$122 = _$createElement("input");
|
|
1982
|
+
_$use((el) => noteEl = el, _el$122);
|
|
1983
|
+
_$setProp(_el$122, "onInput", (v) => setNote(typeof v === "string" ? v : v?.target?.value ?? ""));
|
|
1984
|
+
_$setProp(_el$122, "onSubmit", () => {
|
|
1857
1985
|
if (!selected().size && !dontKnow() && note().trim())
|
|
1858
1986
|
submitSelect();
|
|
1859
1987
|
else
|
|
1860
1988
|
setFocused("options");
|
|
1861
1989
|
});
|
|
1862
|
-
_$setProp(_el$
|
|
1863
|
-
_$effect((_$p) => _$setProp(_el$
|
|
1864
|
-
return _el$
|
|
1990
|
+
_$setProp(_el$122, "placeholder", "note (Enter to submit note \u2192 classify)");
|
|
1991
|
+
_$effect((_$p) => _$setProp(_el$122, "value", note(), _$p));
|
|
1992
|
+
return _el$122;
|
|
1865
1993
|
}
|
|
1866
1994
|
}));
|
|
1867
|
-
_$insertNode(_el$
|
|
1868
|
-
_$insertNode(_el$
|
|
1869
|
-
_$setProp(_el$
|
|
1870
|
-
_$setProp(_el$
|
|
1871
|
-
_$setProp(_el$
|
|
1872
|
-
_$insert(_el$
|
|
1873
|
-
var _c$
|
|
1874
|
-
return () => _c$
|
|
1995
|
+
_$insertNode(_el$123, _el$124);
|
|
1996
|
+
_$insertNode(_el$123, _el$125);
|
|
1997
|
+
_$setProp(_el$123, "flexDirection", "row");
|
|
1998
|
+
_$setProp(_el$123, "justifyContent", "space-between");
|
|
1999
|
+
_$setProp(_el$123, "paddingTop", 1);
|
|
2000
|
+
_$insert(_el$124, (() => {
|
|
2001
|
+
var _c$8 = _$memo(() => !!isMulti());
|
|
2002
|
+
return () => _c$8() ? `${selected().size} selected` : note().trim() && !selected().size ? "note \u2192 classify" : "";
|
|
1875
2003
|
})());
|
|
1876
|
-
_$insertNode(_el$
|
|
1877
|
-
_$insert(_el$
|
|
1878
|
-
_$insert(_el$
|
|
1879
|
-
_$insert(_el$
|
|
2004
|
+
_$insertNode(_el$125, _el$126);
|
|
2005
|
+
_$insert(_el$125, () => idx() + 1, _el$126);
|
|
2006
|
+
_$insert(_el$125, () => props.request.quizzes.length, null);
|
|
2007
|
+
_$insert(_el$107, _$createComponent(Show, {
|
|
1880
2008
|
get when() {
|
|
1881
2009
|
return isMulti();
|
|
1882
2010
|
},
|
|
1883
2011
|
get children() {
|
|
1884
|
-
var _el$
|
|
1885
|
-
_$insertNode(_el$
|
|
1886
|
-
_$setProp(_el$
|
|
1887
|
-
_$setProp(_el$
|
|
1888
|
-
_$insertNode(_el$
|
|
1889
|
-
_$insertNode(_el$
|
|
1890
|
-
_$setProp(_el$
|
|
1891
|
-
_$setProp(_el$
|
|
1892
|
-
_$setProp(_el$
|
|
1893
|
-
_$setProp(_el$
|
|
1894
|
-
_$setProp(_el$
|
|
1895
|
-
_$insert(_el$
|
|
1896
|
-
_$insertNode(_el$
|
|
1897
|
-
_$setProp(_el$
|
|
2012
|
+
var _el$127 = _$createElement("box"), _el$128 = _$createElement("box"), _el$129 = _$createElement("text"), _el$130 = _$createElement("text");
|
|
2013
|
+
_$insertNode(_el$127, _el$128);
|
|
2014
|
+
_$setProp(_el$127, "justifyContent", "center");
|
|
2015
|
+
_$setProp(_el$127, "paddingTop", 1);
|
|
2016
|
+
_$insertNode(_el$128, _el$129);
|
|
2017
|
+
_$insertNode(_el$128, _el$130);
|
|
2018
|
+
_$setProp(_el$128, "flexDirection", "row");
|
|
2019
|
+
_$setProp(_el$128, "gap", 1);
|
|
2020
|
+
_$setProp(_el$128, "border", true);
|
|
2021
|
+
_$setProp(_el$128, "paddingLeft", 2);
|
|
2022
|
+
_$setProp(_el$128, "paddingRight", 2);
|
|
2023
|
+
_$insert(_el$129, () => focused() === "options" && optionIndex() === submitIdx() ? "\u25B8" : " ");
|
|
2024
|
+
_$insertNode(_el$130, _$createTextNode(`\u21B3 Submit`));
|
|
2025
|
+
_$setProp(_el$130, "bold", true);
|
|
1898
2026
|
_$effect((_p$) => {
|
|
1899
|
-
var _v$
|
|
1900
|
-
_v$
|
|
1901
|
-
_v$
|
|
1902
|
-
_v$
|
|
2027
|
+
var _v$63 = focused() === "options" && optionIndex() === submitIdx() ? theme().accent : theme().borderSubtle, _v$64 = focused() === "options" && optionIndex() === submitIdx() ? theme().backgroundElement : theme().background, _v$65 = focused() === "options" && optionIndex() === submitIdx() ? theme().accent : theme().textMuted;
|
|
2028
|
+
_v$63 !== _p$.e && (_p$.e = _$setProp(_el$128, "borderColor", _v$63, _p$.e));
|
|
2029
|
+
_v$64 !== _p$.t && (_p$.t = _$setProp(_el$128, "backgroundColor", _v$64, _p$.t));
|
|
2030
|
+
_v$65 !== _p$.a && (_p$.a = _$setProp(_el$129, "fg", _v$65, _p$.a));
|
|
1903
2031
|
return _p$;
|
|
1904
2032
|
}, {
|
|
1905
2033
|
e: undefined,
|
|
1906
2034
|
t: undefined,
|
|
1907
2035
|
a: undefined
|
|
1908
2036
|
});
|
|
1909
|
-
return _el$
|
|
2037
|
+
return _el$127;
|
|
1910
2038
|
}
|
|
1911
2039
|
}), null);
|
|
1912
2040
|
_$effect((_p$) => {
|
|
1913
|
-
var _v$
|
|
1914
|
-
_v$
|
|
1915
|
-
_v$
|
|
1916
|
-
_v$
|
|
1917
|
-
_v$
|
|
1918
|
-
_v$
|
|
1919
|
-
_v$
|
|
1920
|
-
_v$
|
|
1921
|
-
_v$
|
|
1922
|
-
_v$
|
|
1923
|
-
_v$
|
|
1924
|
-
_v$
|
|
1925
|
-
_v$
|
|
2041
|
+
var _v$66 = theme().borderSubtle, _v$67 = theme().background, _v$68 = theme().borderSubtle, _v$69 = focused() === "options" && optionIndex() === dontKnowIdx() ? theme().backgroundElement : undefined, _v$70 = focused() === "options" && optionIndex() === dontKnowIdx() ? theme().accent : theme().textMuted, _v$71 = dontKnow() ? theme().warning : theme().textMuted, _v$72 = dontKnow() ? theme().warning : theme().textMuted, _v$73 = focused() === "note" ? theme().accent : theme().textMuted, _v$74 = focused() === "note" ? theme().accent : theme().borderSubtle, _v$75 = theme().backgroundElement, _v$76 = theme().textMuted, _v$77 = theme().textMuted;
|
|
2042
|
+
_v$66 !== _p$.e && (_p$.e = _$setProp(_el$107, "borderColor", _v$66, _p$.e));
|
|
2043
|
+
_v$67 !== _p$.t && (_p$.t = _$setProp(_el$107, "backgroundColor", _v$67, _p$.t));
|
|
2044
|
+
_v$68 !== _p$.a && (_p$.a = _$setProp(_el$109, "fg", _v$68, _p$.a));
|
|
2045
|
+
_v$69 !== _p$.o && (_p$.o = _$setProp(_el$110, "backgroundColor", _v$69, _p$.o));
|
|
2046
|
+
_v$70 !== _p$.i && (_p$.i = _$setProp(_el$112, "fg", _v$70, _p$.i));
|
|
2047
|
+
_v$71 !== _p$.n && (_p$.n = _$setProp(_el$114, "fg", _v$71, _p$.n));
|
|
2048
|
+
_v$72 !== _p$.s && (_p$.s = _$setProp(_el$116, "fg", _v$72, _p$.s));
|
|
2049
|
+
_v$73 !== _p$.h && (_p$.h = _$setProp(_el$119, "fg", _v$73, _p$.h));
|
|
2050
|
+
_v$74 !== _p$.r && (_p$.r = _$setProp(_el$121, "borderColor", _v$74, _p$.r));
|
|
2051
|
+
_v$75 !== _p$.d && (_p$.d = _$setProp(_el$121, "backgroundColor", _v$75, _p$.d));
|
|
2052
|
+
_v$76 !== _p$.l && (_p$.l = _$setProp(_el$124, "fg", _v$76, _p$.l));
|
|
2053
|
+
_v$77 !== _p$.u && (_p$.u = _$setProp(_el$125, "fg", _v$77, _p$.u));
|
|
1926
2054
|
return _p$;
|
|
1927
2055
|
}, {
|
|
1928
2056
|
e: undefined,
|
|
@@ -1938,37 +2066,37 @@ function QuizBatchDialog(props) {
|
|
|
1938
2066
|
l: undefined,
|
|
1939
2067
|
u: undefined
|
|
1940
2068
|
});
|
|
1941
|
-
return _el$
|
|
2069
|
+
return _el$107;
|
|
1942
2070
|
}
|
|
1943
2071
|
}), null);
|
|
1944
|
-
_$insert(_el$
|
|
2072
|
+
_$insert(_el$104, _$createComponent(Show, {
|
|
1945
2073
|
get when() {
|
|
1946
2074
|
return phase() === "classifying";
|
|
1947
2075
|
},
|
|
1948
2076
|
get children() {
|
|
1949
|
-
var _el$
|
|
1950
|
-
_$insertNode(_el$
|
|
1951
|
-
_$insertNode(_el$
|
|
1952
|
-
_$insertNode(_el$
|
|
1953
|
-
_$setProp(_el$
|
|
1954
|
-
_$setProp(_el$
|
|
1955
|
-
_$setProp(_el$
|
|
1956
|
-
_$setProp(_el$
|
|
1957
|
-
_$setProp(_el$
|
|
1958
|
-
_$insertNode(_el$
|
|
1959
|
-
_$setProp(_el$
|
|
1960
|
-
_$insertNode(_el$
|
|
1961
|
-
_$insertNode(_el$
|
|
1962
|
-
_$setProp(_el$
|
|
1963
|
-
_$insert(_el$
|
|
1964
|
-
_$insertNode(_el$
|
|
2077
|
+
var _el$132 = _$createElement("box"), _el$133 = _$createElement("text"), _el$135 = _$createElement("text"), _el$136 = _$createTextNode(`"`), _el$137 = _$createTextNode(`"`), _el$138 = _$createElement("text");
|
|
2078
|
+
_$insertNode(_el$132, _el$133);
|
|
2079
|
+
_$insertNode(_el$132, _el$135);
|
|
2080
|
+
_$insertNode(_el$132, _el$138);
|
|
2081
|
+
_$setProp(_el$132, "flexDirection", "column");
|
|
2082
|
+
_$setProp(_el$132, "gap", 1);
|
|
2083
|
+
_$setProp(_el$132, "padding", 1);
|
|
2084
|
+
_$setProp(_el$132, "border", true);
|
|
2085
|
+
_$setProp(_el$132, "alignItems", "center");
|
|
2086
|
+
_$insertNode(_el$133, _$createTextNode(`\u25D0 Classifying your note...`));
|
|
2087
|
+
_$setProp(_el$133, "bold", true);
|
|
2088
|
+
_$insertNode(_el$135, _el$136);
|
|
2089
|
+
_$insertNode(_el$135, _el$137);
|
|
2090
|
+
_$setProp(_el$135, "wrapMode", "wrap");
|
|
2091
|
+
_$insert(_el$135, note, _el$137);
|
|
2092
|
+
_$insertNode(_el$138, _$createTextNode(`Mapping to options \u2014 please wait`));
|
|
1965
2093
|
_$effect((_p$) => {
|
|
1966
|
-
var _v$
|
|
1967
|
-
_v$
|
|
1968
|
-
_v$
|
|
1969
|
-
_v$
|
|
1970
|
-
_v$
|
|
1971
|
-
_v$
|
|
2094
|
+
var _v$78 = theme().accent, _v$79 = theme().background, _v$80 = theme().accent, _v$81 = theme().textMuted, _v$82 = theme().textMuted;
|
|
2095
|
+
_v$78 !== _p$.e && (_p$.e = _$setProp(_el$132, "borderColor", _v$78, _p$.e));
|
|
2096
|
+
_v$79 !== _p$.t && (_p$.t = _$setProp(_el$132, "backgroundColor", _v$79, _p$.t));
|
|
2097
|
+
_v$80 !== _p$.a && (_p$.a = _$setProp(_el$133, "fg", _v$80, _p$.a));
|
|
2098
|
+
_v$81 !== _p$.o && (_p$.o = _$setProp(_el$135, "fg", _v$81, _p$.o));
|
|
2099
|
+
_v$82 !== _p$.i && (_p$.i = _$setProp(_el$138, "fg", _v$82, _p$.i));
|
|
1972
2100
|
return _p$;
|
|
1973
2101
|
}, {
|
|
1974
2102
|
e: undefined,
|
|
@@ -1977,23 +2105,23 @@ function QuizBatchDialog(props) {
|
|
|
1977
2105
|
o: undefined,
|
|
1978
2106
|
i: undefined
|
|
1979
2107
|
});
|
|
1980
|
-
return _el$
|
|
2108
|
+
return _el$132;
|
|
1981
2109
|
}
|
|
1982
2110
|
}), null);
|
|
1983
|
-
_$insert(_el$
|
|
2111
|
+
_$insert(_el$104, _$createComponent(Show, {
|
|
1984
2112
|
get when() {
|
|
1985
2113
|
return phase() === "feedback";
|
|
1986
2114
|
},
|
|
1987
2115
|
get children() {
|
|
1988
|
-
var _el$
|
|
1989
|
-
_$insertNode(_el$
|
|
1990
|
-
_$insertNode(_el$
|
|
1991
|
-
_$insertNode(_el$
|
|
1992
|
-
_$setProp(_el$
|
|
1993
|
-
_$setProp(_el$
|
|
1994
|
-
_$setProp(_el$
|
|
1995
|
-
_$setProp(_el$
|
|
1996
|
-
_$insert(_el$
|
|
2116
|
+
var _el$140 = _$createElement("box"), _el$141 = _$createElement("text"), _el$142 = _$createElement("text"), _el$143 = _$createTextNode(`Correct: `), _el$144 = _$createElement("box"), _el$145 = _$createElement("markdown");
|
|
2117
|
+
_$insertNode(_el$140, _el$141);
|
|
2118
|
+
_$insertNode(_el$140, _el$142);
|
|
2119
|
+
_$insertNode(_el$140, _el$144);
|
|
2120
|
+
_$setProp(_el$140, "flexDirection", "column");
|
|
2121
|
+
_$setProp(_el$140, "gap", 1);
|
|
2122
|
+
_$setProp(_el$140, "padding", 1);
|
|
2123
|
+
_$setProp(_el$140, "border", true);
|
|
2124
|
+
_$insert(_el$140, _$createComponent(For, {
|
|
1997
2125
|
get each() {
|
|
1998
2126
|
return cur().options;
|
|
1999
2127
|
},
|
|
@@ -2022,48 +2150,48 @@ function QuizBatchDialog(props) {
|
|
|
2022
2150
|
bg = theme().warning;
|
|
2023
2151
|
}
|
|
2024
2152
|
return (() => {
|
|
2025
|
-
var _el$
|
|
2026
|
-
_$insertNode(_el$
|
|
2027
|
-
_$insertNode(_el$
|
|
2028
|
-
_$setProp(_el$
|
|
2029
|
-
_$setProp(_el$
|
|
2030
|
-
_$setProp(_el$
|
|
2031
|
-
_$setProp(_el$
|
|
2032
|
-
_$insertNode(_el$
|
|
2033
|
-
_$setProp(_el$
|
|
2034
|
-
_$setProp(_el$
|
|
2035
|
-
_$setProp(_el$
|
|
2036
|
-
_$insert(_el$
|
|
2037
|
-
_$insertNode(_el$
|
|
2038
|
-
_$setProp(_el$
|
|
2039
|
-
_$insertNode(_el$
|
|
2040
|
-
_$setProp(_el$
|
|
2041
|
-
_$setProp(_el$
|
|
2042
|
-
_$insert(_el$
|
|
2043
|
-
_$insert(_el$
|
|
2044
|
-
return _el$
|
|
2153
|
+
var _el$157 = _$createElement("box"), _el$158 = _$createElement("box"), _el$159 = _$createElement("text"), _el$160 = _$createElement("box"), _el$161 = _$createElement("text"), _el$162 = _$createTextNode(`. `);
|
|
2154
|
+
_$insertNode(_el$157, _el$158);
|
|
2155
|
+
_$insertNode(_el$157, _el$160);
|
|
2156
|
+
_$setProp(_el$157, "flexDirection", "row");
|
|
2157
|
+
_$setProp(_el$157, "gap", 1);
|
|
2158
|
+
_$setProp(_el$157, "paddingLeft", 1);
|
|
2159
|
+
_$setProp(_el$157, "backgroundColor", bg);
|
|
2160
|
+
_$insertNode(_el$158, _el$159);
|
|
2161
|
+
_$setProp(_el$158, "width", 2);
|
|
2162
|
+
_$setProp(_el$159, "fg", fg);
|
|
2163
|
+
_$setProp(_el$159, "bold", true);
|
|
2164
|
+
_$insert(_el$159, ic);
|
|
2165
|
+
_$insertNode(_el$160, _el$161);
|
|
2166
|
+
_$setProp(_el$160, "flexGrow", 1);
|
|
2167
|
+
_$insertNode(_el$161, _el$162);
|
|
2168
|
+
_$setProp(_el$161, "fg", fg);
|
|
2169
|
+
_$setProp(_el$161, "wrapMode", "wrap");
|
|
2170
|
+
_$insert(_el$161, id, _el$162);
|
|
2171
|
+
_$insert(_el$161, () => opt.label, null);
|
|
2172
|
+
return _el$157;
|
|
2045
2173
|
})();
|
|
2046
2174
|
}
|
|
2047
|
-
}), _el$
|
|
2048
|
-
_$setProp(_el$
|
|
2049
|
-
_$insert(_el$
|
|
2050
|
-
_$insertNode(_el$
|
|
2051
|
-
_$insert(_el$
|
|
2052
|
-
_$insertNode(_el$
|
|
2053
|
-
_$setProp(_el$
|
|
2054
|
-
_$setProp(_el$
|
|
2175
|
+
}), _el$141);
|
|
2176
|
+
_$setProp(_el$141, "bold", true);
|
|
2177
|
+
_$insert(_el$141, () => feedback()?.correct ? "\u2713 Correct" : "\u2717 Incorrect");
|
|
2178
|
+
_$insertNode(_el$142, _el$143);
|
|
2179
|
+
_$insert(_el$142, () => cur().correctIndices.map((i) => `${i}. ${cur().options[i - 1]?.label}`).join(", "), null);
|
|
2180
|
+
_$insertNode(_el$144, _el$145);
|
|
2181
|
+
_$setProp(_el$144, "border", true);
|
|
2182
|
+
_$setProp(_el$144, "padding", 1);
|
|
2055
2183
|
_$effect((_p$) => {
|
|
2056
|
-
var _v$
|
|
2057
|
-
_v$
|
|
2058
|
-
_v$
|
|
2059
|
-
_v$
|
|
2060
|
-
_v$
|
|
2061
|
-
_v$
|
|
2062
|
-
_v$
|
|
2063
|
-
_v$
|
|
2064
|
-
_v$
|
|
2065
|
-
_v$
|
|
2066
|
-
_v$
|
|
2184
|
+
var _v$83 = feedback()?.correct ? theme().success : theme().error, _v$84 = theme().background, _v$85 = feedback()?.correct ? theme().success : theme().error, _v$86 = theme().textMuted, _v$87 = theme().borderSubtle, _v$88 = theme().backgroundPanel, _v$89 = syntax(), _v$90 = decodeQuizText(cur().explanation), _v$91 = theme().text, _v$92 = theme().backgroundPanel;
|
|
2185
|
+
_v$83 !== _p$.e && (_p$.e = _$setProp(_el$140, "borderColor", _v$83, _p$.e));
|
|
2186
|
+
_v$84 !== _p$.t && (_p$.t = _$setProp(_el$140, "backgroundColor", _v$84, _p$.t));
|
|
2187
|
+
_v$85 !== _p$.a && (_p$.a = _$setProp(_el$141, "fg", _v$85, _p$.a));
|
|
2188
|
+
_v$86 !== _p$.o && (_p$.o = _$setProp(_el$142, "fg", _v$86, _p$.o));
|
|
2189
|
+
_v$87 !== _p$.i && (_p$.i = _$setProp(_el$144, "borderColor", _v$87, _p$.i));
|
|
2190
|
+
_v$88 !== _p$.n && (_p$.n = _$setProp(_el$144, "backgroundColor", _v$88, _p$.n));
|
|
2191
|
+
_v$89 !== _p$.s && (_p$.s = _$setProp(_el$145, "syntaxStyle", _v$89, _p$.s));
|
|
2192
|
+
_v$90 !== _p$.h && (_p$.h = _$setProp(_el$145, "content", _v$90, _p$.h));
|
|
2193
|
+
_v$91 !== _p$.r && (_p$.r = _$setProp(_el$145, "fg", _v$91, _p$.r));
|
|
2194
|
+
_v$92 !== _p$.d && (_p$.d = _$setProp(_el$145, "bg", _v$92, _p$.d));
|
|
2067
2195
|
return _p$;
|
|
2068
2196
|
}, {
|
|
2069
2197
|
e: undefined,
|
|
@@ -2077,38 +2205,110 @@ function QuizBatchDialog(props) {
|
|
|
2077
2205
|
r: undefined,
|
|
2078
2206
|
d: undefined
|
|
2079
2207
|
});
|
|
2080
|
-
return _el$
|
|
2208
|
+
return _el$140;
|
|
2081
2209
|
}
|
|
2082
2210
|
}), null);
|
|
2083
|
-
_$insertNode(_el$
|
|
2084
|
-
_$setProp(_el$
|
|
2085
|
-
_$setProp(_el$
|
|
2086
|
-
_$setProp(_el$
|
|
2087
|
-
_$insert(_el$
|
|
2088
|
-
var _c$
|
|
2089
|
-
return () => _c$
|
|
2211
|
+
_$insertNode(_el$146, _el$147);
|
|
2212
|
+
_$setProp(_el$146, "height", 1);
|
|
2213
|
+
_$setProp(_el$146, "justifyContent", "center");
|
|
2214
|
+
_$setProp(_el$147, "wrapMode", "wrap");
|
|
2215
|
+
_$insert(_el$147, (() => {
|
|
2216
|
+
var _c$9 = _$memo(() => phase() === "feedback");
|
|
2217
|
+
return () => _c$9() ? _$memo(() => !!(canScrollUpBatch() && canScrollDownBatch()))() ? [(() => {
|
|
2218
|
+
var _el$163 = _$createElement("span");
|
|
2219
|
+
_$insertNode(_el$163, _$createTextNode(`\u25B2 more above \xB7 \u25BC more below`));
|
|
2220
|
+
_$effect((_$p) => _$setProp(_el$163, "style", {
|
|
2221
|
+
fg: theme.warning,
|
|
2222
|
+
bold: true
|
|
2223
|
+
}, _$p));
|
|
2224
|
+
return _el$163;
|
|
2225
|
+
})(), (() => {
|
|
2226
|
+
var _el$165 = _$createElement("span"), _el$166 = _$createTextNode(` \u2014 d/u to scroll \xB7 Enter \u2192 next (`), _el$167 = _$createTextNode(`/`), _el$168 = _$createTextNode(`)`);
|
|
2227
|
+
_$insertNode(_el$165, _el$166);
|
|
2228
|
+
_$insertNode(_el$165, _el$167);
|
|
2229
|
+
_$insertNode(_el$165, _el$168);
|
|
2230
|
+
_$insert(_el$165, () => idx() + 1, _el$167);
|
|
2231
|
+
_$insert(_el$165, () => props.request.quizzes.length, _el$168);
|
|
2232
|
+
_$effect((_$p) => _$setProp(_el$165, "style", {
|
|
2233
|
+
fg: theme().textMuted
|
|
2234
|
+
}, _$p));
|
|
2235
|
+
return _el$165;
|
|
2236
|
+
})()] : _$memo(() => !!canScrollDownBatch())() ? [(() => {
|
|
2237
|
+
var _el$169 = _$createElement("span");
|
|
2238
|
+
_$insertNode(_el$169, _$createTextNode(`\u25BC more below`));
|
|
2239
|
+
_$effect((_$p) => _$setProp(_el$169, "style", {
|
|
2240
|
+
fg: theme.warning,
|
|
2241
|
+
bold: true
|
|
2242
|
+
}, _$p));
|
|
2243
|
+
return _el$169;
|
|
2244
|
+
})(), (() => {
|
|
2245
|
+
var _el$171 = _$createElement("span"), _el$172 = _$createTextNode(` \u2014 d to scroll \xB7 Enter \u2192 next (`), _el$173 = _$createTextNode(`/`), _el$174 = _$createTextNode(`)`);
|
|
2246
|
+
_$insertNode(_el$171, _el$172);
|
|
2247
|
+
_$insertNode(_el$171, _el$173);
|
|
2248
|
+
_$insertNode(_el$171, _el$174);
|
|
2249
|
+
_$insert(_el$171, () => idx() + 1, _el$173);
|
|
2250
|
+
_$insert(_el$171, () => props.request.quizzes.length, _el$174);
|
|
2251
|
+
_$effect((_$p) => _$setProp(_el$171, "style", {
|
|
2252
|
+
fg: theme().textMuted
|
|
2253
|
+
}, _$p));
|
|
2254
|
+
return _el$171;
|
|
2255
|
+
})()] : _$memo(() => !!canScrollUpBatch())() ? [(() => {
|
|
2256
|
+
var _el$175 = _$createElement("span");
|
|
2257
|
+
_$insertNode(_el$175, _$createTextNode(`\u25B2 more above`));
|
|
2258
|
+
_$effect((_$p) => _$setProp(_el$175, "style", {
|
|
2259
|
+
fg: theme.accent,
|
|
2260
|
+
bold: true
|
|
2261
|
+
}, _$p));
|
|
2262
|
+
return _el$175;
|
|
2263
|
+
})(), (() => {
|
|
2264
|
+
var _el$177 = _$createElement("span"), _el$178 = _$createTextNode(` \u2014 u to scroll \xB7 Enter \u2192 next (`), _el$179 = _$createTextNode(`/`), _el$180 = _$createTextNode(`)`);
|
|
2265
|
+
_$insertNode(_el$177, _el$178);
|
|
2266
|
+
_$insertNode(_el$177, _el$179);
|
|
2267
|
+
_$insertNode(_el$177, _el$180);
|
|
2268
|
+
_$insert(_el$177, () => idx() + 1, _el$179);
|
|
2269
|
+
_$insert(_el$177, () => props.request.quizzes.length, _el$180);
|
|
2270
|
+
_$effect((_$p) => _$setProp(_el$177, "style", {
|
|
2271
|
+
fg: theme().textMuted
|
|
2272
|
+
}, _$p));
|
|
2273
|
+
return _el$177;
|
|
2274
|
+
})()] : `Enter \u2192 next (${idx() + 1}/${props.request.quizzes.length})` : _$memo(() => phase() === "classifying")() ? "Classifying your note..." : _$memo(() => focused() === "note")() ? "Enter submit note \u2192 classify \xB7 Tab/Esc back" : _$memo(() => !!(canScrollUpBatch() || canScrollDownBatch()))() ? [(() => {
|
|
2275
|
+
var _el$181 = _$createElement("span");
|
|
2276
|
+
_$insertNode(_el$181, _$createTextNode(`j/k or \u2191\u2193 move \xB7 Space toggle \xB7 Tab note \xB7 Enter submit \xB7 Esc cancel`));
|
|
2277
|
+
_$effect((_$p) => _$setProp(_el$181, "style", {
|
|
2278
|
+
fg: theme().textMuted
|
|
2279
|
+
}, _$p));
|
|
2280
|
+
return _el$181;
|
|
2281
|
+
})(), (() => {
|
|
2282
|
+
var _el$183 = _$createElement("span");
|
|
2283
|
+
_$insertNode(_el$183, _$createTextNode(` \xB7 d/u scroll`));
|
|
2284
|
+
_$effect((_$p) => _$setProp(_el$183, "style", {
|
|
2285
|
+
fg: theme.warning,
|
|
2286
|
+
bold: true
|
|
2287
|
+
}, _$p));
|
|
2288
|
+
return _el$183;
|
|
2289
|
+
})()] : "j/k or \u2191\u2193 move \xB7 Space toggle \xB7 Tab note \xB7 Enter submit \xB7 Esc cancel";
|
|
2090
2290
|
})());
|
|
2091
2291
|
_$effect((_p$) => {
|
|
2092
|
-
var _v$
|
|
2292
|
+
var _v$93 = popupWidth(), _v$94 = popupHeight(), _v$95 = phase() === "feedback" ? feedback()?.correct ? theme().success : theme().error : theme().accent, _v$96 = theme().backgroundPanel, _v$97 = theme().accent, _v$98 = theme().background, _v$99 = theme().background, _v$100 = {
|
|
2093
2293
|
visible: true,
|
|
2094
2294
|
trackOptions: {
|
|
2095
2295
|
backgroundColor: theme().background,
|
|
2096
2296
|
foregroundColor: theme().borderActive
|
|
2097
2297
|
}
|
|
2098
|
-
}, _v$
|
|
2099
|
-
_v$
|
|
2100
|
-
_v$
|
|
2101
|
-
_v$
|
|
2102
|
-
_v$
|
|
2103
|
-
_v$
|
|
2104
|
-
_v$
|
|
2105
|
-
_v$
|
|
2106
|
-
_v$
|
|
2107
|
-
_v$
|
|
2108
|
-
_v$
|
|
2109
|
-
_v$
|
|
2110
|
-
_v$
|
|
2111
|
-
_v$
|
|
2298
|
+
}, _v$101 = syntax(), _v$102 = decodeQuizText(cur().question), _v$103 = theme().text, _v$104 = theme().backgroundPanel, _v$105 = theme().textMuted;
|
|
2299
|
+
_v$93 !== _p$.e && (_p$.e = _$setProp(_el$94, "width", _v$93, _p$.e));
|
|
2300
|
+
_v$94 !== _p$.t && (_p$.t = _$setProp(_el$94, "height", _v$94, _p$.t));
|
|
2301
|
+
_v$95 !== _p$.a && (_p$.a = _$setProp(_el$94, "borderColor", _v$95, _p$.a));
|
|
2302
|
+
_v$96 !== _p$.o && (_p$.o = _$setProp(_el$94, "backgroundColor", _v$96, _p$.o));
|
|
2303
|
+
_v$97 !== _p$.i && (_p$.i = _$setProp(_el$95, "backgroundColor", _v$97, _p$.i));
|
|
2304
|
+
_v$98 !== _p$.n && (_p$.n = _$setProp(_el$96, "fg", _v$98, _p$.n));
|
|
2305
|
+
_v$99 !== _p$.s && (_p$.s = _$setProp(_el$100, "fg", _v$99, _p$.s));
|
|
2306
|
+
_v$100 !== _p$.h && (_p$.h = _$setProp(_el$104, "verticalScrollbarOptions", _v$100, _p$.h));
|
|
2307
|
+
_v$101 !== _p$.r && (_p$.r = _$setProp(_el$105, "syntaxStyle", _v$101, _p$.r));
|
|
2308
|
+
_v$102 !== _p$.d && (_p$.d = _$setProp(_el$105, "content", _v$102, _p$.d));
|
|
2309
|
+
_v$103 !== _p$.l && (_p$.l = _$setProp(_el$105, "fg", _v$103, _p$.l));
|
|
2310
|
+
_v$104 !== _p$.u && (_p$.u = _$setProp(_el$105, "bg", _v$104, _p$.u));
|
|
2311
|
+
_v$105 !== _p$.c && (_p$.c = _$setProp(_el$147, "fg", _v$105, _p$.c));
|
|
2112
2312
|
return _p$;
|
|
2113
2313
|
}, {
|
|
2114
2314
|
e: undefined,
|
|
@@ -2125,7 +2325,7 @@ function QuizBatchDialog(props) {
|
|
|
2125
2325
|
u: undefined,
|
|
2126
2326
|
c: undefined
|
|
2127
2327
|
});
|
|
2128
|
-
return _el$
|
|
2328
|
+
return _el$94;
|
|
2129
2329
|
})();
|
|
2130
2330
|
}
|
|
2131
2331
|
var tui = async (api) => {
|