@thanh01.pmt/interactive-quiz-kit 1.0.38 → 1.0.40
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/{ai-ecosystem-DCPvHU4-.d.cts → ai-ecosystem-DqFRlFU3.d.cts} +1 -1
- package/dist/{ai-ecosystem-D6vuLxnS.d.ts → ai-ecosystem-DqVlSO3r.d.ts} +1 -1
- package/dist/ai.d.cts +4 -4
- package/dist/ai.d.ts +4 -4
- package/dist/authoring.cjs +251 -62
- package/dist/authoring.d.cts +3 -3
- package/dist/authoring.d.ts +3 -3
- package/dist/authoring.mjs +251 -62
- package/dist/index.cjs +2 -1
- package/dist/index.d.cts +4 -4
- package/dist/index.d.ts +4 -4
- package/dist/index.mjs +2 -1
- package/dist/player.d.cts +1 -1
- package/dist/player.d.ts +1 -1
- package/dist/{quiz-config-Df_89hFx.d.cts → quiz-config-o4j2dfsu.d.cts} +1 -0
- package/dist/{quiz-config-Df_89hFx.d.ts → quiz-config-o4j2dfsu.d.ts} +1 -0
- package/dist/react-ui.cjs +253 -64
- package/dist/react-ui.d.cts +5 -5
- package/dist/react-ui.d.ts +5 -5
- package/dist/react-ui.mjs +253 -64
- package/dist/{toaster-eWZIxSVc.d.ts → toaster-Cgg3CSob.d.ts} +1 -1
- package/dist/{toaster-D1bLqmd_.d.cts → toaster-JTJ7cUyP.d.cts} +1 -1
- package/package.json +1 -1
package/dist/react-ui.mjs
CHANGED
|
@@ -121614,7 +121614,9 @@ var EditQuestionModal = ({
|
|
|
121614
121614
|
questionData,
|
|
121615
121615
|
onSave
|
|
121616
121616
|
}) => {
|
|
121617
|
-
const [editedQuestion, setEditedQuestion] = useState(
|
|
121617
|
+
const [editedQuestion, setEditedQuestion] = useState(
|
|
121618
|
+
null
|
|
121619
|
+
);
|
|
121618
121620
|
useEffect(() => {
|
|
121619
121621
|
if (questionData) {
|
|
121620
121622
|
setEditedQuestion(JSON.parse(JSON.stringify(questionData)));
|
|
@@ -121624,7 +121626,9 @@ var EditQuestionModal = ({
|
|
|
121624
121626
|
return null;
|
|
121625
121627
|
}
|
|
121626
121628
|
const handleBaseFieldChange = (field, value) => {
|
|
121627
|
-
setEditedQuestion(
|
|
121629
|
+
setEditedQuestion(
|
|
121630
|
+
(prev) => prev ? { ...prev, [field]: value } : null
|
|
121631
|
+
);
|
|
121628
121632
|
};
|
|
121629
121633
|
const handleSpecificFieldChange = (updates) => {
|
|
121630
121634
|
setEditedQuestion((prev) => {
|
|
@@ -121647,83 +121651,267 @@ var EditQuestionModal = ({
|
|
|
121647
121651
|
if (!editedQuestion) return /* @__PURE__ */ React162__default.createElement("p", null, "Loading question data...");
|
|
121648
121652
|
switch (editedQuestion.questionType) {
|
|
121649
121653
|
case "true_false":
|
|
121650
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121654
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121655
|
+
TrueFalseQuestionForm,
|
|
121656
|
+
{
|
|
121657
|
+
question: editedQuestion,
|
|
121658
|
+
onFormChange: handleSpecificFieldChange
|
|
121659
|
+
}
|
|
121660
|
+
);
|
|
121651
121661
|
case "multiple_choice":
|
|
121652
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121662
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121663
|
+
MultipleChoiceQuestionForm,
|
|
121664
|
+
{
|
|
121665
|
+
question: editedQuestion,
|
|
121666
|
+
onFormChange: handleSpecificFieldChange
|
|
121667
|
+
}
|
|
121668
|
+
);
|
|
121653
121669
|
case "multiple_response":
|
|
121654
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121670
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121671
|
+
MultipleResponseQuestionForm,
|
|
121672
|
+
{
|
|
121673
|
+
question: editedQuestion,
|
|
121674
|
+
onFormChange: handleSpecificFieldChange
|
|
121675
|
+
}
|
|
121676
|
+
);
|
|
121655
121677
|
case "short_answer":
|
|
121656
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121678
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121679
|
+
ShortAnswerQuestionForm,
|
|
121680
|
+
{
|
|
121681
|
+
question: editedQuestion,
|
|
121682
|
+
onFormChange: handleSpecificFieldChange
|
|
121683
|
+
}
|
|
121684
|
+
);
|
|
121657
121685
|
case "numeric":
|
|
121658
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121686
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121687
|
+
NumericQuestionForm,
|
|
121688
|
+
{
|
|
121689
|
+
question: editedQuestion,
|
|
121690
|
+
onFormChange: handleSpecificFieldChange
|
|
121691
|
+
}
|
|
121692
|
+
);
|
|
121659
121693
|
case "fill_in_the_blanks":
|
|
121660
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121694
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121695
|
+
FillInTheBlanksQuestionForm,
|
|
121696
|
+
{
|
|
121697
|
+
question: editedQuestion,
|
|
121698
|
+
onFormChange: handleSpecificFieldChange
|
|
121699
|
+
}
|
|
121700
|
+
);
|
|
121661
121701
|
case "sequence":
|
|
121662
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121702
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121703
|
+
SequenceQuestionForm,
|
|
121704
|
+
{
|
|
121705
|
+
question: editedQuestion,
|
|
121706
|
+
onFormChange: handleSpecificFieldChange
|
|
121707
|
+
}
|
|
121708
|
+
);
|
|
121663
121709
|
case "matching":
|
|
121664
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121710
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121711
|
+
MatchingQuestionForm,
|
|
121712
|
+
{
|
|
121713
|
+
question: editedQuestion,
|
|
121714
|
+
onFormChange: handleSpecificFieldChange
|
|
121715
|
+
}
|
|
121716
|
+
);
|
|
121665
121717
|
case "drag_and_drop":
|
|
121666
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121718
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121719
|
+
DragAndDropQuestionForm,
|
|
121720
|
+
{
|
|
121721
|
+
question: editedQuestion,
|
|
121722
|
+
onFormChange: handleSpecificFieldChange
|
|
121723
|
+
}
|
|
121724
|
+
);
|
|
121667
121725
|
case "hotspot":
|
|
121668
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121726
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121727
|
+
HotspotQuestionForm,
|
|
121728
|
+
{
|
|
121729
|
+
question: editedQuestion,
|
|
121730
|
+
onFormChange: handleSpecificFieldChange
|
|
121731
|
+
}
|
|
121732
|
+
);
|
|
121669
121733
|
case "blockly_programming":
|
|
121670
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121734
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121735
|
+
BlocklyProgrammingQuestionForm,
|
|
121736
|
+
{
|
|
121737
|
+
question: editedQuestion,
|
|
121738
|
+
onFormChange: handleSpecificFieldChange
|
|
121739
|
+
}
|
|
121740
|
+
);
|
|
121671
121741
|
case "scratch_programming":
|
|
121672
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121742
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121743
|
+
ScratchProgrammingQuestionForm,
|
|
121744
|
+
{
|
|
121745
|
+
question: editedQuestion,
|
|
121746
|
+
onFormChange: handleSpecificFieldChange
|
|
121747
|
+
}
|
|
121748
|
+
);
|
|
121673
121749
|
case "coding":
|
|
121674
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121750
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121751
|
+
CodingQuestionForm,
|
|
121752
|
+
{
|
|
121753
|
+
question: editedQuestion,
|
|
121754
|
+
onFormChange: handleSpecificFieldChange
|
|
121755
|
+
}
|
|
121756
|
+
);
|
|
121675
121757
|
default:
|
|
121676
121758
|
return /* @__PURE__ */ React162__default.createElement("p", { className: "text-destructive" }, "Unsupported question type for editing");
|
|
121677
121759
|
}
|
|
121678
121760
|
};
|
|
121679
|
-
return /* @__PURE__ */ React162__default.createElement(
|
|
121680
|
-
|
|
121681
|
-
} }, /* @__PURE__ */ React162__default.createElement(DialogContent2, { className: "sm:max-w-[600px] md:max-w-[800px] lg:max-w-[1000px] max-h-[90vh]" }, /* @__PURE__ */ React162__default.createElement(DialogHeader, null, /* @__PURE__ */ React162__default.createElement(DialogTitle2, { className: "font-headline text-2xl" }, questionData?.id && !questionData.id.startsWith("new_") && !questionData.id.startsWith("temp_") ? "Edit Question" : "Add New Question"), /* @__PURE__ */ React162__default.createElement(DialogDescription2, null, "Configure the details for this question. Current type: ", /* @__PURE__ */ React162__default.createElement("span", { className: "font-semibold" }, editedQuestion.questionType))), /* @__PURE__ */ React162__default.createElement(ScrollArea2, { className: "max-h-[calc(80vh-150px)] p-1 pr-6" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-6 p-4" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "prompt", className: "font-semibold" }, "Question Prompt"), /* @__PURE__ */ React162__default.createElement(
|
|
121682
|
-
SimpleMarkdownEditor,
|
|
121683
|
-
{
|
|
121684
|
-
value: editedQuestion.prompt,
|
|
121685
|
-
onChange: (htmlContent) => handleBaseFieldChange("prompt", htmlContent)
|
|
121686
|
-
}
|
|
121687
|
-
)), renderSpecificForm(), /* @__PURE__ */ React162__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 pt-4 border-t" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "points" }, "Points"), /* @__PURE__ */ React162__default.createElement(
|
|
121688
|
-
Input,
|
|
121689
|
-
{
|
|
121690
|
-
id: "points",
|
|
121691
|
-
type: "number",
|
|
121692
|
-
value: editedQuestion.points || 0,
|
|
121693
|
-
onChange: (e3) => handleBaseFieldChange("points", parseInt(e3.target.value, 10) || 0),
|
|
121694
|
-
min: "0"
|
|
121695
|
-
}
|
|
121696
|
-
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "difficulty" }, "Difficulty"), /* @__PURE__ */ React162__default.createElement(
|
|
121697
|
-
Select2,
|
|
121698
|
-
{
|
|
121699
|
-
value: editedQuestion.difficulty || "medium",
|
|
121700
|
-
onValueChange: (value) => handleBaseFieldChange("difficulty", value)
|
|
121701
|
-
},
|
|
121702
|
-
/* @__PURE__ */ React162__default.createElement(SelectTrigger2, null, /* @__PURE__ */ React162__default.createElement(SelectValue2, null)),
|
|
121703
|
-
/* @__PURE__ */ React162__default.createElement(SelectContent2, null, /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "easy" }, "Easy"), /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "medium" }, "Medium"), /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "hard" }, "Hard"))
|
|
121704
|
-
))), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "explanation" }, "Explanation (Optional)"), /* @__PURE__ */ React162__default.createElement(
|
|
121705
|
-
SimpleMarkdownEditor,
|
|
121706
|
-
{
|
|
121707
|
-
value: editedQuestion.explanation || "",
|
|
121708
|
-
onChange: (htmlContent) => handleBaseFieldChange("explanation", htmlContent),
|
|
121709
|
-
minHeight: "100px"
|
|
121710
|
-
}
|
|
121711
|
-
)), /* @__PURE__ */ React162__default.createElement("details", { className: "group" }, /* @__PURE__ */ React162__default.createElement("summary", { className: "cursor-pointer font-semibold text-primary hover:underline" }, "Advanced Metadata (Optional)"), /* @__PURE__ */ React162__default.createElement("div", { className: "mt-4 space-y-4 p-4 border rounded-md group-open:animate-accordion-down" }, /* @__PURE__ */ React162__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "learningObjective" }, "Learning Objective"), /* @__PURE__ */ React162__default.createElement(Input, { id: "learningObjective", value: editedQuestion.learningObjective || "", onChange: (e3) => handleBaseFieldChange("learningObjective", e3.target.value) })), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "category" }, "Category"), /* @__PURE__ */ React162__default.createElement(Input, { id: "category", value: editedQuestion.category || "", onChange: (e3) => handleBaseFieldChange("category", e3.target.value) })), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "topic" }, "Topic"), /* @__PURE__ */ React162__default.createElement(Input, { id: "topic", value: editedQuestion.topic || "", onChange: (e3) => handleBaseFieldChange("topic", e3.target.value) })), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "bloomLevel" }, "Bloom's Level"), /* @__PURE__ */ React162__default.createElement(
|
|
121712
|
-
Select2,
|
|
121761
|
+
return /* @__PURE__ */ React162__default.createElement(
|
|
121762
|
+
Dialog2,
|
|
121713
121763
|
{
|
|
121714
|
-
|
|
121715
|
-
|
|
121764
|
+
open: isOpen,
|
|
121765
|
+
onOpenChange: (open2) => {
|
|
121766
|
+
if (!open2) onClose();
|
|
121767
|
+
}
|
|
121716
121768
|
},
|
|
121717
|
-
/* @__PURE__ */ React162__default.createElement(
|
|
121718
|
-
|
|
121719
|
-
|
|
121720
|
-
|
|
121721
|
-
|
|
121722
|
-
|
|
121723
|
-
|
|
121724
|
-
|
|
121725
|
-
|
|
121726
|
-
|
|
121769
|
+
/* @__PURE__ */ React162__default.createElement(DialogContent2, { className: "sm:max-w-[600px] md:max-w-[800px] lg:max-w-[1000px] max-h-[90vh]" }, /* @__PURE__ */ React162__default.createElement(DialogHeader, null, /* @__PURE__ */ React162__default.createElement(DialogTitle2, { className: "font-headline text-2xl" }, questionData?.id && !questionData.id.startsWith("new_") && !questionData.id.startsWith("temp_") ? "Edit Question" : "Add New Question"), /* @__PURE__ */ React162__default.createElement(DialogDescription2, null, "Configure the details for this question. Current type:", " ", /* @__PURE__ */ React162__default.createElement("span", { className: "font-semibold" }, editedQuestion.questionType))), /* @__PURE__ */ React162__default.createElement(ScrollArea2, { className: "max-h-[calc(80vh-150px)] p-1 pr-6" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-6 p-4" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "prompt", className: "font-semibold" }, "Question Prompt"), /* @__PURE__ */ React162__default.createElement(
|
|
121770
|
+
SimpleMarkdownEditor,
|
|
121771
|
+
{
|
|
121772
|
+
value: editedQuestion.prompt,
|
|
121773
|
+
onChange: (htmlContent) => handleBaseFieldChange("prompt", htmlContent)
|
|
121774
|
+
}
|
|
121775
|
+
)), renderSpecificForm(), /* @__PURE__ */ React162__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 pt-4 border-t" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "points" }, "Points"), /* @__PURE__ */ React162__default.createElement(
|
|
121776
|
+
Input,
|
|
121777
|
+
{
|
|
121778
|
+
id: "points",
|
|
121779
|
+
type: "number",
|
|
121780
|
+
value: editedQuestion.points || 0,
|
|
121781
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121782
|
+
"points",
|
|
121783
|
+
parseInt(e3.target.value, 10) || 0
|
|
121784
|
+
),
|
|
121785
|
+
min: "0"
|
|
121786
|
+
}
|
|
121787
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "difficulty" }, "Difficulty"), /* @__PURE__ */ React162__default.createElement(
|
|
121788
|
+
Select2,
|
|
121789
|
+
{
|
|
121790
|
+
value: editedQuestion.difficulty || "medium",
|
|
121791
|
+
onValueChange: (value) => handleBaseFieldChange(
|
|
121792
|
+
"difficulty",
|
|
121793
|
+
value
|
|
121794
|
+
)
|
|
121795
|
+
},
|
|
121796
|
+
/* @__PURE__ */ React162__default.createElement(SelectTrigger2, null, /* @__PURE__ */ React162__default.createElement(SelectValue2, null)),
|
|
121797
|
+
/* @__PURE__ */ React162__default.createElement(SelectContent2, null, /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "easy" }, "Easy"), /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "medium" }, "Medium"), /* @__PURE__ */ React162__default.createElement(SelectItem2, { value: "hard" }, "Hard"))
|
|
121798
|
+
))), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "explanation" }, "Explanation (Optional)"), /* @__PURE__ */ React162__default.createElement(
|
|
121799
|
+
SimpleMarkdownEditor,
|
|
121800
|
+
{
|
|
121801
|
+
value: editedQuestion.explanation || "",
|
|
121802
|
+
onChange: (htmlContent) => handleBaseFieldChange(
|
|
121803
|
+
"explanation",
|
|
121804
|
+
htmlContent
|
|
121805
|
+
),
|
|
121806
|
+
minHeight: "100px"
|
|
121807
|
+
}
|
|
121808
|
+
)), /* @__PURE__ */ React162__default.createElement("details", { className: "group" }, /* @__PURE__ */ React162__default.createElement("summary", { className: "cursor-pointer font-semibold text-primary hover:underline" }, "Advanced Metadata (Optional)"), /* @__PURE__ */ React162__default.createElement("div", { className: "mt-4 space-y-4 p-4 border rounded-md group-open:animate-accordion-down" }, /* @__PURE__ */ React162__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4" }, /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "questionCode" }, "Question Code (Business ID)"), /* @__PURE__ */ React162__default.createElement(
|
|
121809
|
+
Input,
|
|
121810
|
+
{
|
|
121811
|
+
id: "questionCode",
|
|
121812
|
+
value: editedQuestion.code || "",
|
|
121813
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121814
|
+
"code",
|
|
121815
|
+
e3.target.value.toUpperCase()
|
|
121816
|
+
),
|
|
121817
|
+
placeholder: "e.g., MATH-ALG-001"
|
|
121818
|
+
}
|
|
121819
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "learningObjective" }, "Learning Objective"), /* @__PURE__ */ React162__default.createElement(
|
|
121820
|
+
Input,
|
|
121821
|
+
{
|
|
121822
|
+
id: "learningObjective",
|
|
121823
|
+
value: editedQuestion.learningObjective || "",
|
|
121824
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121825
|
+
"learningObjective",
|
|
121826
|
+
e3.target.value
|
|
121827
|
+
)
|
|
121828
|
+
}
|
|
121829
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "category" }, "Category"), /* @__PURE__ */ React162__default.createElement(
|
|
121830
|
+
Input,
|
|
121831
|
+
{
|
|
121832
|
+
id: "category",
|
|
121833
|
+
value: editedQuestion.category || "",
|
|
121834
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121835
|
+
"category",
|
|
121836
|
+
e3.target.value
|
|
121837
|
+
)
|
|
121838
|
+
}
|
|
121839
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "topic" }, "Topic"), /* @__PURE__ */ React162__default.createElement(
|
|
121840
|
+
Input,
|
|
121841
|
+
{
|
|
121842
|
+
id: "topic",
|
|
121843
|
+
value: editedQuestion.topic || "",
|
|
121844
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121845
|
+
"topic",
|
|
121846
|
+
e3.target.value
|
|
121847
|
+
)
|
|
121848
|
+
}
|
|
121849
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "bloomLevel" }, "Bloom's Level"), /* @__PURE__ */ React162__default.createElement(
|
|
121850
|
+
Select2,
|
|
121851
|
+
{
|
|
121852
|
+
value: editedQuestion.bloomLevel || "__none__",
|
|
121853
|
+
onValueChange: (value) => handleBaseFieldChange(
|
|
121854
|
+
"bloomLevel",
|
|
121855
|
+
value === "__none__" ? void 0 : value
|
|
121856
|
+
)
|
|
121857
|
+
},
|
|
121858
|
+
/* @__PURE__ */ React162__default.createElement(SelectTrigger2, { id: "bloomLevel" }, /* @__PURE__ */ React162__default.createElement(SelectValue2, { placeholder: "Select Bloom Level..." })),
|
|
121859
|
+
/* @__PURE__ */ React162__default.createElement(SelectContent2, null, bloomLevelOptionsForEdit.map(
|
|
121860
|
+
(opt) => /* @__PURE__ */ React162__default.createElement(
|
|
121861
|
+
SelectItem2,
|
|
121862
|
+
{
|
|
121863
|
+
key: opt.value,
|
|
121864
|
+
value: opt.value
|
|
121865
|
+
},
|
|
121866
|
+
opt.label
|
|
121867
|
+
)
|
|
121868
|
+
))
|
|
121869
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "gradeBand" }, "Grade Band"), /* @__PURE__ */ React162__default.createElement(
|
|
121870
|
+
Input,
|
|
121871
|
+
{
|
|
121872
|
+
id: "gradeBand",
|
|
121873
|
+
value: editedQuestion.gradeBand || "",
|
|
121874
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121875
|
+
"gradeBand",
|
|
121876
|
+
e3.target.value
|
|
121877
|
+
)
|
|
121878
|
+
}
|
|
121879
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "contextCode" }, "Context Code"), /* @__PURE__ */ React162__default.createElement(
|
|
121880
|
+
Input,
|
|
121881
|
+
{
|
|
121882
|
+
id: "contextCode",
|
|
121883
|
+
value: editedQuestion.contextCode || "",
|
|
121884
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121885
|
+
"contextCode",
|
|
121886
|
+
e3.target.value
|
|
121887
|
+
)
|
|
121888
|
+
}
|
|
121889
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "course" }, "Course"), /* @__PURE__ */ React162__default.createElement(
|
|
121890
|
+
Input,
|
|
121891
|
+
{
|
|
121892
|
+
id: "course",
|
|
121893
|
+
value: editedQuestion.course || "",
|
|
121894
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121895
|
+
"course",
|
|
121896
|
+
e3.target.value
|
|
121897
|
+
)
|
|
121898
|
+
}
|
|
121899
|
+
)), /* @__PURE__ */ React162__default.createElement("div", { className: "space-y-2" }, /* @__PURE__ */ React162__default.createElement(Label2, { htmlFor: "glossary" }, "Glossary Terms (comma-separated)"), /* @__PURE__ */ React162__default.createElement(
|
|
121900
|
+
Input,
|
|
121901
|
+
{
|
|
121902
|
+
id: "glossary",
|
|
121903
|
+
value: Array.isArray(
|
|
121904
|
+
editedQuestion.glossary
|
|
121905
|
+
) ? editedQuestion.glossary.join(
|
|
121906
|
+
", "
|
|
121907
|
+
) : "",
|
|
121908
|
+
onChange: (e3) => handleBaseFieldChange(
|
|
121909
|
+
"glossary",
|
|
121910
|
+
e3.target.value.split(",").map((s4) => s4.trim()).filter((s4) => s4)
|
|
121911
|
+
)
|
|
121912
|
+
}
|
|
121913
|
+
))))))), /* @__PURE__ */ React162__default.createElement(DialogFooter, { className: "pt-4 border-t" }, /* @__PURE__ */ React162__default.createElement(DialogClose2, { asChild: true }, /* @__PURE__ */ React162__default.createElement(Button, { type: "button", variant: "outline" }, "Cancel")), /* @__PURE__ */ React162__default.createElement(Button, { type: "button", onClick: handleSaveClick }, /* @__PURE__ */ React162__default.createElement(Save, { className: "mr-2 h-4 w-4" }), " Save Question")))
|
|
121914
|
+
);
|
|
121727
121915
|
};
|
|
121728
121916
|
var APIKeyManagerModal = ({ isOpen, onClose }) => {
|
|
121729
121917
|
const [geminiApiKey, setGeminiApiKey] = useState("");
|
|
@@ -125701,6 +125889,8 @@ var QuizEditorService = class {
|
|
|
125701
125889
|
static createNewQuestionTemplate(type) {
|
|
125702
125890
|
const baseNewQuestion = {
|
|
125703
125891
|
id: generateUniqueId(`new_${type}_`),
|
|
125892
|
+
// NEW: Initialize the code property
|
|
125893
|
+
code: "",
|
|
125704
125894
|
questionType: type,
|
|
125705
125895
|
prompt: "",
|
|
125706
125896
|
points: 10,
|
|
@@ -125766,7 +125956,6 @@ var QuizEditorService = class {
|
|
|
125766
125956
|
testCases: [],
|
|
125767
125957
|
functionSignature: "",
|
|
125768
125958
|
points: 25
|
|
125769
|
-
// Coding questions are worth more by default
|
|
125770
125959
|
};
|
|
125771
125960
|
default:
|
|
125772
125961
|
const _exhaustiveCheck = type;
|
|
@@ -163478,9 +163667,9 @@ var ClientTranslation = ({ tKey, options, fallback: fallback2 }) => {
|
|
|
163478
163667
|
setIsMounted(true);
|
|
163479
163668
|
}, []);
|
|
163480
163669
|
if (!isMounted) {
|
|
163481
|
-
return /* @__PURE__ */
|
|
163670
|
+
return /* @__PURE__ */ React162__default.createElement(React162__default.Fragment, null, fallback2);
|
|
163482
163671
|
}
|
|
163483
|
-
return /* @__PURE__ */
|
|
163672
|
+
return /* @__PURE__ */ React162__default.createElement(React162__default.Fragment, null, t4(tKey, options));
|
|
163484
163673
|
};
|
|
163485
163674
|
|
|
163486
163675
|
// src/react-ui/components/app/PersonalPracticeDashboard.tsx
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { s as QuizConfig, g as QuizQuestion } from './quiz-config-
|
|
3
|
+
import { s as QuizConfig, g as QuizQuestion } from './quiz-config-o4j2dfsu.js';
|
|
4
4
|
import { QuestionInBank, QuestionFilters as QuestionFilters$1 } from './index.js';
|
|
5
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
6
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import React__default from 'react';
|
|
3
|
-
import { s as QuizConfig, g as QuizQuestion } from './quiz-config-
|
|
3
|
+
import { s as QuizConfig, g as QuizQuestion } from './quiz-config-o4j2dfsu.cjs';
|
|
4
4
|
import { QuestionInBank, QuestionFilters as QuestionFilters$1 } from './index.cjs';
|
|
5
5
|
import * as class_variance_authority_types from 'class-variance-authority/types';
|
|
6
6
|
import * as ToastPrimitives from '@radix-ui/react-toast';
|
package/package.json
CHANGED