@thanh01.pmt/interactive-quiz-kit 1.0.66 → 1.0.68
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/HEADLESS.md +1 -1
- package/README.md +2 -2
- package/dist/{ai-ecosystem-DqFRlFU3.d.cts → ai-ecosystem-DyQYZbyX.d.cts} +3 -3
- package/dist/{ai-ecosystem-DqVlSO3r.d.ts → ai-ecosystem-Qa_SdE2T.d.ts} +3 -3
- package/dist/ai.cjs +60 -96
- package/dist/ai.d.cts +127 -127
- package/dist/ai.d.ts +127 -127
- package/dist/ai.mjs +60 -96
- package/dist/authoring.cjs +1499 -1260
- package/dist/authoring.d.cts +4 -4
- package/dist/authoring.d.ts +4 -4
- package/dist/authoring.mjs +1231 -993
- package/dist/index.cjs +22 -37
- package/dist/index.d.cts +24 -27
- package/dist/index.d.ts +24 -27
- package/dist/index.mjs +22 -37
- package/dist/player.cjs +9 -9
- package/dist/player.d.cts +1 -1
- package/dist/player.d.ts +1 -1
- package/dist/player.mjs +9 -9
- package/dist/{quiz-config-o4j2dfsu.d.cts → quiz-config-CwaP-pBs.d.cts} +1 -1
- package/dist/{quiz-config-o4j2dfsu.d.ts → quiz-config-CwaP-pBs.d.ts} +1 -1
- package/dist/react-ui.cjs +467 -244
- package/dist/react-ui.d.cts +6 -6
- package/dist/react-ui.d.ts +6 -6
- package/dist/react-ui.mjs +467 -245
- package/dist/{toaster-CKS4zoRY.d.cts → toaster-BVaUJA6E.d.ts} +65 -45
- package/dist/{toaster-DLJ_2W9u.d.ts → toaster-BWaJj0l-.d.cts} +65 -45
- package/package.json +1 -1
package/dist/player.cjs
CHANGED
|
@@ -6311,7 +6311,7 @@ var cva = (base3, config2) => (props) => {
|
|
|
6311
6311
|
|
|
6312
6312
|
// src/react-ui/components/elements/label.tsx
|
|
6313
6313
|
var labelVariants = cva(
|
|
6314
|
-
"text-sm font-
|
|
6314
|
+
"text-sm font-Medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
6315
6315
|
);
|
|
6316
6316
|
var Label2 = React73__namespace.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React73__namespace.createElement(
|
|
6317
6317
|
Root3,
|
|
@@ -31549,7 +31549,7 @@ var MarkdownRenderer = ({
|
|
|
31549
31549
|
},
|
|
31550
31550
|
h1: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("h1", { ...props, className: "text-3xl font-bold mb-6 mt-8 first:mt-0" }),
|
|
31551
31551
|
h2: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("h2", { ...props, className: "text-2xl font-semibold mb-4 mt-6" }),
|
|
31552
|
-
h3: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("h3", { ...props, className: "text-xl font-
|
|
31552
|
+
h3: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("h3", { ...props, className: "text-xl font-Medium mb-3 mt-5" }),
|
|
31553
31553
|
ul: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("ul", { ...props, className: "my-4 space-y-2 list-disc list-inside" }),
|
|
31554
31554
|
ol: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("ol", { ...props, className: "my-4 space-y-2 list-decimal list-inside" }),
|
|
31555
31555
|
p: ({ node: node2, ...props }) => /* @__PURE__ */ React73__namespace.default.createElement("p", { ...props, className: "mb-4 leading-7" }),
|
|
@@ -32023,7 +32023,7 @@ var Input = React73__namespace.forwardRef(
|
|
|
32023
32023
|
{
|
|
32024
32024
|
type,
|
|
32025
32025
|
className: cn(
|
|
32026
|
-
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-
|
|
32026
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-Medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
32027
32027
|
className
|
|
32028
32028
|
),
|
|
32029
32029
|
ref,
|
|
@@ -32198,7 +32198,7 @@ init_react_shim();
|
|
|
32198
32198
|
// src/react-ui/components/elements/button.tsx
|
|
32199
32199
|
init_react_shim();
|
|
32200
32200
|
var buttonVariants = cva(
|
|
32201
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-
|
|
32201
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-Medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
32202
32202
|
{
|
|
32203
32203
|
variants: {
|
|
32204
32204
|
variant: {
|
|
@@ -37146,7 +37146,7 @@ var MatchingQuestionUI = ({
|
|
|
37146
37146
|
if (showCorrectAnswer && selectedOptionId) {
|
|
37147
37147
|
borderColor = isSelectionCorrect ? "border-green-500" : "border-destructive";
|
|
37148
37148
|
}
|
|
37149
|
-
return /* @__PURE__ */ React73__namespace.default.createElement("div", { key: promptItem.id, className: `p-3 border rounded-md ${borderColor} transition-colors bg-background` }, /* @__PURE__ */ React73__namespace.default.createElement(Label2, { htmlFor: `select-prompt-${promptItem.id}`, className: "font-
|
|
37149
|
+
return /* @__PURE__ */ React73__namespace.default.createElement("div", { key: promptItem.id, className: `p-3 border rounded-md ${borderColor} transition-colors bg-background` }, /* @__PURE__ */ React73__namespace.default.createElement(Label2, { htmlFor: `select-prompt-${promptItem.id}`, className: "font-Medium text-base block mb-2 whitespace-normal" }, /* @__PURE__ */ React73__namespace.default.createElement(MarkdownRenderer, { content: promptItem.content })), /* @__PURE__ */ React73__namespace.default.createElement(
|
|
37150
37150
|
Select2,
|
|
37151
37151
|
{
|
|
37152
37152
|
value: selectedOptionId,
|
|
@@ -37201,7 +37201,7 @@ var DragAndDropQuestionUI = ({
|
|
|
37201
37201
|
} else {
|
|
37202
37202
|
itemStyle += " border-muted";
|
|
37203
37203
|
}
|
|
37204
|
-
return /* @__PURE__ */ React73__namespace.default.createElement("div", { key: item.id, className: itemStyle }, /* @__PURE__ */ React73__namespace.default.createElement(Label2, { htmlFor: `select-draggable-${item.id}`, className: "font-
|
|
37204
|
+
return /* @__PURE__ */ React73__namespace.default.createElement("div", { key: item.id, className: itemStyle }, /* @__PURE__ */ React73__namespace.default.createElement(Label2, { htmlFor: `select-draggable-${item.id}`, className: "font-Medium text-base mb-2 sm:mb-0 sm:mr-4 flex-1" }, /* @__PURE__ */ React73__namespace.default.createElement(MarkdownRenderer, { content: item.content })), /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex items-center space-x-2 w-full sm:w-auto" }, /* @__PURE__ */ React73__namespace.default.createElement(
|
|
37205
37205
|
Select2,
|
|
37206
37206
|
{
|
|
37207
37207
|
value: selectedDropZoneId,
|
|
@@ -64217,7 +64217,7 @@ var TabsTrigger2 = React73__namespace.forwardRef(({ className, ...props }, ref)
|
|
|
64217
64217
|
{
|
|
64218
64218
|
ref,
|
|
64219
64219
|
className: cn(
|
|
64220
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-
|
|
64220
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-Medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
64221
64221
|
className
|
|
64222
64222
|
),
|
|
64223
64223
|
...props
|
|
@@ -64917,7 +64917,7 @@ var AccordionTrigger2 = React73__namespace.forwardRef(({ className, children, ..
|
|
|
64917
64917
|
{
|
|
64918
64918
|
ref,
|
|
64919
64919
|
className: cn(
|
|
64920
|
-
"flex flex-1 items-center justify-between py-4 font-
|
|
64920
|
+
"flex flex-1 items-center justify-between py-4 font-Medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
64921
64921
|
className
|
|
64922
64922
|
),
|
|
64923
64923
|
...props
|
|
@@ -65704,7 +65704,7 @@ var QuizResult = ({
|
|
|
65704
65704
|
}
|
|
65705
65705
|
return String(answer);
|
|
65706
65706
|
};
|
|
65707
|
-
return /* @__PURE__ */ React73__namespace.default.createElement(Card, { className: "w-full max-w-3xl mx-auto shadow-xl" }, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-3xl font-headline text-center" }, t2("practiceFlow.results.title", { quizTitle })), /* @__PURE__ */ React73__namespace.default.createElement(CardDescription, { className: "text-center text-lg" }, t2("practiceFlow.results.description"))), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, { className: "space-y-6" }, /* @__PURE__ */ React73__namespace.default.createElement(Card, { className: "bg-secondary/50" }, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-xl flex items-center" }, /* @__PURE__ */ React73__namespace.default.createElement(BarChart2, { className: "mr-2 h-5 w-5 text-primary" }), t2("practiceFlow.results.overallScore"))), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, { className: "grid grid-cols-1 md:grid-cols-3 gap-4 text-center" }, /* @__PURE__ */ React73__namespace.default.createElement("div", null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.score, " / ", result.maxScore), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.points"))), /* @__PURE__ */ React73__namespace.default.createElement("div", null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.percentage.toFixed(2), "%"), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.percentage"))), /* @__PURE__ */ React73__namespace.default.createElement("div", null, result.passed !== void 0 && (result.passed ? /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex flex-col items-center text-green-600" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleCheckBig, { className: "h-10 w-10" }), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.passed"))) : /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex flex-col items-center text-destructive" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleX, { className: "h-10 w-10" }), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.failed"))))))), /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm" }, /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__namespace.default.createElement(Clock, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__namespace.default.createElement("span", null, t2("practiceFlow.results.timeSpent")), /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold" }, result.totalTimeSpentSeconds?.toFixed(0) ?? "N/A", " ", t2("practiceFlow.results.timeUnit"))), /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__namespace.default.createElement(Percent, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__namespace.default.createElement("span", null, t2("practiceFlow.results.avgTimePerQuestion")), /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold" }, result.averageTimePerQuestionSeconds?.toFixed(1) ?? "N/A", " ", t2("practiceFlow.results.timeUnit")))), result.scormStatus && result.scormStatus !== "idle" && result.scormStatus !== "no_api" && /* @__PURE__ */ React73__namespace.default.createElement(Card, null, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-lg" }, "SCORM Sync Status")), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: `flex items-center ${result.scormStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.scormStatus === "error" && /* @__PURE__ */ React73__namespace.default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold ml-1" }, result.scormStatus)), result.scormError && /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.scormError))), result.webhookStatus && result.webhookStatus !== "idle" && /* @__PURE__ */ React73__namespace.default.createElement(Card, null, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-lg" }, "Webhook Sync Status")), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: `flex items-center ${result.webhookStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.webhookStatus === "error" && /* @__PURE__ */ React73__namespace.default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold ml-1" }, result.webhookStatus)), result.webhookError && /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.webhookError))), /* @__PURE__ */ React73__namespace.default.createElement(Accordion2, { type: "single", collapsible: true, className: "w-full" }, /* @__PURE__ */ React73__namespace.default.createElement(AccordionItem2, { value: "question-breakdown" }, /* @__PURE__ */ React73__namespace.default.createElement(AccordionTrigger2, { className: "text-lg font-semibold" }, t2("practiceFlow.results.questionBreakdown")), /* @__PURE__ */ React73__namespace.default.createElement(AccordionContent2, null, /* @__PURE__ */ React73__namespace.default.createElement(ScrollArea2, { className: "h-[300px] pr-4" }, /* @__PURE__ */ React73__namespace.default.createElement("ul", { className: "space-y-4" }, result.questionResults.map((qResult, index3) => /* @__PURE__ */ React73__namespace.default.createElement("li", { key: qResult.questionId, className: "p-4 border rounded-md bg-background" }, /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex justify-between items-center mb-2" }, /* @__PURE__ */ React73__namespace.default.createElement("h4", { className: "font-semibold" }, t2("common.questions", { count: index3 + 1 })), qResult.isCorrect ? /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "text-green-600 font-
|
|
65707
|
+
return /* @__PURE__ */ React73__namespace.default.createElement(Card, { className: "w-full max-w-3xl mx-auto shadow-xl" }, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-3xl font-headline text-center" }, t2("practiceFlow.results.title", { quizTitle })), /* @__PURE__ */ React73__namespace.default.createElement(CardDescription, { className: "text-center text-lg" }, t2("practiceFlow.results.description"))), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, { className: "space-y-6" }, /* @__PURE__ */ React73__namespace.default.createElement(Card, { className: "bg-secondary/50" }, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-xl flex items-center" }, /* @__PURE__ */ React73__namespace.default.createElement(BarChart2, { className: "mr-2 h-5 w-5 text-primary" }), t2("practiceFlow.results.overallScore"))), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, { className: "grid grid-cols-1 md:grid-cols-3 gap-4 text-center" }, /* @__PURE__ */ React73__namespace.default.createElement("div", null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.score, " / ", result.maxScore), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.points"))), /* @__PURE__ */ React73__namespace.default.createElement("div", null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.percentage.toFixed(2), "%"), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.percentage"))), /* @__PURE__ */ React73__namespace.default.createElement("div", null, result.passed !== void 0 && (result.passed ? /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex flex-col items-center text-green-600" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleCheckBig, { className: "h-10 w-10" }), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.passed"))) : /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex flex-col items-center text-destructive" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleX, { className: "h-10 w-10" }), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.failed"))))))), /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm" }, /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__namespace.default.createElement(Clock, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__namespace.default.createElement("span", null, t2("practiceFlow.results.timeSpent")), /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold" }, result.totalTimeSpentSeconds?.toFixed(0) ?? "N/A", " ", t2("practiceFlow.results.timeUnit"))), /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__namespace.default.createElement(Percent, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__namespace.default.createElement("span", null, t2("practiceFlow.results.avgTimePerQuestion")), /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold" }, result.averageTimePerQuestionSeconds?.toFixed(1) ?? "N/A", " ", t2("practiceFlow.results.timeUnit")))), result.scormStatus && result.scormStatus !== "idle" && result.scormStatus !== "no_api" && /* @__PURE__ */ React73__namespace.default.createElement(Card, null, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-lg" }, "SCORM Sync Status")), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: `flex items-center ${result.scormStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.scormStatus === "error" && /* @__PURE__ */ React73__namespace.default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold ml-1" }, result.scormStatus)), result.scormError && /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.scormError))), result.webhookStatus && result.webhookStatus !== "idle" && /* @__PURE__ */ React73__namespace.default.createElement(Card, null, /* @__PURE__ */ React73__namespace.default.createElement(CardHeader, null, /* @__PURE__ */ React73__namespace.default.createElement(CardTitle, { className: "text-lg" }, "Webhook Sync Status")), /* @__PURE__ */ React73__namespace.default.createElement(CardContent, null, /* @__PURE__ */ React73__namespace.default.createElement("p", { className: `flex items-center ${result.webhookStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.webhookStatus === "error" && /* @__PURE__ */ React73__namespace.default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-semibold ml-1" }, result.webhookStatus)), result.webhookError && /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.webhookError))), /* @__PURE__ */ React73__namespace.default.createElement(Accordion2, { type: "single", collapsible: true, className: "w-full" }, /* @__PURE__ */ React73__namespace.default.createElement(AccordionItem2, { value: "question-breakdown" }, /* @__PURE__ */ React73__namespace.default.createElement(AccordionTrigger2, { className: "text-lg font-semibold" }, t2("practiceFlow.results.questionBreakdown")), /* @__PURE__ */ React73__namespace.default.createElement(AccordionContent2, null, /* @__PURE__ */ React73__namespace.default.createElement(ScrollArea2, { className: "h-[300px] pr-4" }, /* @__PURE__ */ React73__namespace.default.createElement("ul", { className: "space-y-4" }, result.questionResults.map((qResult, index3) => /* @__PURE__ */ React73__namespace.default.createElement("li", { key: qResult.questionId, className: "p-4 border rounded-md bg-background" }, /* @__PURE__ */ React73__namespace.default.createElement("div", { className: "flex justify-between items-center mb-2" }, /* @__PURE__ */ React73__namespace.default.createElement("h4", { className: "font-semibold" }, t2("common.questions", { count: index3 + 1 })), qResult.isCorrect ? /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "text-green-600 font-Medium flex items-center" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleCheckBig, { className: "mr-1 h-4 w-4" }), " ", t2("practiceFlow.results.passed")) : /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "text-destructive font-Medium flex items-center" }, /* @__PURE__ */ React73__namespace.default.createElement(CircleX, { className: "mr-1 h-4 w-4" }), " ", t2("practiceFlow.results.failed"))), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm" }, /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.yourAnswer")), " ", getAnswerDisplay(qResult.userAnswer)), !qResult.isCorrect && /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-sm" }, /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.correctAnswer")), " ", getAnswerDisplay(qResult.correctAnswer)), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-muted-foreground" }, /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.pointsEarned")), " ", qResult.pointsEarned), /* @__PURE__ */ React73__namespace.default.createElement("p", { className: "text-xs text-muted-foreground" }, /* @__PURE__ */ React73__namespace.default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.timeSpent")), " ", qResult.timeSpentSeconds?.toFixed(0) ?? "N/A", t2("practiceFlow.results.timeUnit")))))))))), /* @__PURE__ */ React73__namespace.default.createElement(CardFooter, { className: "flex flex-col sm:flex-row justify-between gap-2" }, onExitQuiz && /* @__PURE__ */ React73__namespace.default.createElement(Button, { variant: "outline", onClick: onExitQuiz, className: "w-full sm:w-auto" }, /* @__PURE__ */ React73__namespace.default.createElement(LogOut, { className: "mr-2 h-4 w-4" }), t2("common.exit")), showReviewButton && onGenerateReview && /* @__PURE__ */ React73__namespace.default.createElement(
|
|
65708
65708
|
Button,
|
|
65709
65709
|
{
|
|
65710
65710
|
onClick: onGenerateReview,
|
package/dist/player.d.cts
CHANGED
package/dist/player.d.ts
CHANGED
package/dist/player.mjs
CHANGED
|
@@ -6246,7 +6246,7 @@ var cva = (base3, config2) => (props) => {
|
|
|
6246
6246
|
|
|
6247
6247
|
// src/react-ui/components/elements/label.tsx
|
|
6248
6248
|
var labelVariants = cva(
|
|
6249
|
-
"text-sm font-
|
|
6249
|
+
"text-sm font-Medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70"
|
|
6250
6250
|
);
|
|
6251
6251
|
var Label2 = React73.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ React73.createElement(
|
|
6252
6252
|
Root3,
|
|
@@ -31484,7 +31484,7 @@ var MarkdownRenderer = ({
|
|
|
31484
31484
|
},
|
|
31485
31485
|
h1: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("h1", { ...props, className: "text-3xl font-bold mb-6 mt-8 first:mt-0" }),
|
|
31486
31486
|
h2: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("h2", { ...props, className: "text-2xl font-semibold mb-4 mt-6" }),
|
|
31487
|
-
h3: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("h3", { ...props, className: "text-xl font-
|
|
31487
|
+
h3: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("h3", { ...props, className: "text-xl font-Medium mb-3 mt-5" }),
|
|
31488
31488
|
ul: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("ul", { ...props, className: "my-4 space-y-2 list-disc list-inside" }),
|
|
31489
31489
|
ol: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("ol", { ...props, className: "my-4 space-y-2 list-decimal list-inside" }),
|
|
31490
31490
|
p: ({ node: node2, ...props }) => /* @__PURE__ */ React73__default.createElement("p", { ...props, className: "mb-4 leading-7" }),
|
|
@@ -31958,7 +31958,7 @@ var Input = React73.forwardRef(
|
|
|
31958
31958
|
{
|
|
31959
31959
|
type,
|
|
31960
31960
|
className: cn(
|
|
31961
|
-
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-
|
|
31961
|
+
"flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-base ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-Medium file:text-foreground placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50 md:text-sm",
|
|
31962
31962
|
className
|
|
31963
31963
|
),
|
|
31964
31964
|
ref,
|
|
@@ -32133,7 +32133,7 @@ init_react_shim();
|
|
|
32133
32133
|
// src/react-ui/components/elements/button.tsx
|
|
32134
32134
|
init_react_shim();
|
|
32135
32135
|
var buttonVariants = cva(
|
|
32136
|
-
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-
|
|
32136
|
+
"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-Medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",
|
|
32137
32137
|
{
|
|
32138
32138
|
variants: {
|
|
32139
32139
|
variant: {
|
|
@@ -37081,7 +37081,7 @@ var MatchingQuestionUI = ({
|
|
|
37081
37081
|
if (showCorrectAnswer && selectedOptionId) {
|
|
37082
37082
|
borderColor = isSelectionCorrect ? "border-green-500" : "border-destructive";
|
|
37083
37083
|
}
|
|
37084
|
-
return /* @__PURE__ */ React73__default.createElement("div", { key: promptItem.id, className: `p-3 border rounded-md ${borderColor} transition-colors bg-background` }, /* @__PURE__ */ React73__default.createElement(Label2, { htmlFor: `select-prompt-${promptItem.id}`, className: "font-
|
|
37084
|
+
return /* @__PURE__ */ React73__default.createElement("div", { key: promptItem.id, className: `p-3 border rounded-md ${borderColor} transition-colors bg-background` }, /* @__PURE__ */ React73__default.createElement(Label2, { htmlFor: `select-prompt-${promptItem.id}`, className: "font-Medium text-base block mb-2 whitespace-normal" }, /* @__PURE__ */ React73__default.createElement(MarkdownRenderer, { content: promptItem.content })), /* @__PURE__ */ React73__default.createElement(
|
|
37085
37085
|
Select2,
|
|
37086
37086
|
{
|
|
37087
37087
|
value: selectedOptionId,
|
|
@@ -37136,7 +37136,7 @@ var DragAndDropQuestionUI = ({
|
|
|
37136
37136
|
} else {
|
|
37137
37137
|
itemStyle += " border-muted";
|
|
37138
37138
|
}
|
|
37139
|
-
return /* @__PURE__ */ React73__default.createElement("div", { key: item.id, className: itemStyle }, /* @__PURE__ */ React73__default.createElement(Label2, { htmlFor: `select-draggable-${item.id}`, className: "font-
|
|
37139
|
+
return /* @__PURE__ */ React73__default.createElement("div", { key: item.id, className: itemStyle }, /* @__PURE__ */ React73__default.createElement(Label2, { htmlFor: `select-draggable-${item.id}`, className: "font-Medium text-base mb-2 sm:mb-0 sm:mr-4 flex-1" }, /* @__PURE__ */ React73__default.createElement(MarkdownRenderer, { content: item.content })), /* @__PURE__ */ React73__default.createElement("div", { className: "flex items-center space-x-2 w-full sm:w-auto" }, /* @__PURE__ */ React73__default.createElement(
|
|
37140
37140
|
Select2,
|
|
37141
37141
|
{
|
|
37142
37142
|
value: selectedDropZoneId,
|
|
@@ -64152,7 +64152,7 @@ var TabsTrigger2 = React73.forwardRef(({ className, ...props }, ref) => /* @__PU
|
|
|
64152
64152
|
{
|
|
64153
64153
|
ref,
|
|
64154
64154
|
className: cn(
|
|
64155
|
-
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-
|
|
64155
|
+
"inline-flex items-center justify-center whitespace-nowrap rounded-sm px-3 py-1.5 text-sm font-Medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:bg-background data-[state=active]:text-foreground data-[state=active]:shadow-sm",
|
|
64156
64156
|
className
|
|
64157
64157
|
),
|
|
64158
64158
|
...props
|
|
@@ -64852,7 +64852,7 @@ var AccordionTrigger2 = React73.forwardRef(({ className, children, ...props }, r
|
|
|
64852
64852
|
{
|
|
64853
64853
|
ref,
|
|
64854
64854
|
className: cn(
|
|
64855
|
-
"flex flex-1 items-center justify-between py-4 font-
|
|
64855
|
+
"flex flex-1 items-center justify-between py-4 font-Medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",
|
|
64856
64856
|
className
|
|
64857
64857
|
),
|
|
64858
64858
|
...props
|
|
@@ -65639,7 +65639,7 @@ var QuizResult = ({
|
|
|
65639
65639
|
}
|
|
65640
65640
|
return String(answer);
|
|
65641
65641
|
};
|
|
65642
|
-
return /* @__PURE__ */ React73__default.createElement(Card, { className: "w-full max-w-3xl mx-auto shadow-xl" }, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-3xl font-headline text-center" }, t2("practiceFlow.results.title", { quizTitle })), /* @__PURE__ */ React73__default.createElement(CardDescription, { className: "text-center text-lg" }, t2("practiceFlow.results.description"))), /* @__PURE__ */ React73__default.createElement(CardContent, { className: "space-y-6" }, /* @__PURE__ */ React73__default.createElement(Card, { className: "bg-secondary/50" }, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-xl flex items-center" }, /* @__PURE__ */ React73__default.createElement(BarChart2, { className: "mr-2 h-5 w-5 text-primary" }), t2("practiceFlow.results.overallScore"))), /* @__PURE__ */ React73__default.createElement(CardContent, { className: "grid grid-cols-1 md:grid-cols-3 gap-4 text-center" }, /* @__PURE__ */ React73__default.createElement("div", null, /* @__PURE__ */ React73__default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.score, " / ", result.maxScore), /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.points"))), /* @__PURE__ */ React73__default.createElement("div", null, /* @__PURE__ */ React73__default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.percentage.toFixed(2), "%"), /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.percentage"))), /* @__PURE__ */ React73__default.createElement("div", null, result.passed !== void 0 && (result.passed ? /* @__PURE__ */ React73__default.createElement("div", { className: "flex flex-col items-center text-green-600" }, /* @__PURE__ */ React73__default.createElement(CircleCheckBig, { className: "h-10 w-10" }), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.passed"))) : /* @__PURE__ */ React73__default.createElement("div", { className: "flex flex-col items-center text-destructive" }, /* @__PURE__ */ React73__default.createElement(CircleX, { className: "h-10 w-10" }), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.failed"))))))), /* @__PURE__ */ React73__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm" }, /* @__PURE__ */ React73__default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__default.createElement(Clock, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__default.createElement("span", null, t2("practiceFlow.results.timeSpent")), /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold" }, result.totalTimeSpentSeconds?.toFixed(0) ?? "N/A", " ", t2("practiceFlow.results.timeUnit"))), /* @__PURE__ */ React73__default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__default.createElement(Percent, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__default.createElement("span", null, t2("practiceFlow.results.avgTimePerQuestion")), /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold" }, result.averageTimePerQuestionSeconds?.toFixed(1) ?? "N/A", " ", t2("practiceFlow.results.timeUnit")))), result.scormStatus && result.scormStatus !== "idle" && result.scormStatus !== "no_api" && /* @__PURE__ */ React73__default.createElement(Card, null, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-lg" }, "SCORM Sync Status")), /* @__PURE__ */ React73__default.createElement(CardContent, null, /* @__PURE__ */ React73__default.createElement("p", { className: `flex items-center ${result.scormStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.scormStatus === "error" && /* @__PURE__ */ React73__default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold ml-1" }, result.scormStatus)), result.scormError && /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.scormError))), result.webhookStatus && result.webhookStatus !== "idle" && /* @__PURE__ */ React73__default.createElement(Card, null, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-lg" }, "Webhook Sync Status")), /* @__PURE__ */ React73__default.createElement(CardContent, null, /* @__PURE__ */ React73__default.createElement("p", { className: `flex items-center ${result.webhookStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.webhookStatus === "error" && /* @__PURE__ */ React73__default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold ml-1" }, result.webhookStatus)), result.webhookError && /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.webhookError))), /* @__PURE__ */ React73__default.createElement(Accordion2, { type: "single", collapsible: true, className: "w-full" }, /* @__PURE__ */ React73__default.createElement(AccordionItem2, { value: "question-breakdown" }, /* @__PURE__ */ React73__default.createElement(AccordionTrigger2, { className: "text-lg font-semibold" }, t2("practiceFlow.results.questionBreakdown")), /* @__PURE__ */ React73__default.createElement(AccordionContent2, null, /* @__PURE__ */ React73__default.createElement(ScrollArea2, { className: "h-[300px] pr-4" }, /* @__PURE__ */ React73__default.createElement("ul", { className: "space-y-4" }, result.questionResults.map((qResult, index3) => /* @__PURE__ */ React73__default.createElement("li", { key: qResult.questionId, className: "p-4 border rounded-md bg-background" }, /* @__PURE__ */ React73__default.createElement("div", { className: "flex justify-between items-center mb-2" }, /* @__PURE__ */ React73__default.createElement("h4", { className: "font-semibold" }, t2("common.questions", { count: index3 + 1 })), qResult.isCorrect ? /* @__PURE__ */ React73__default.createElement("span", { className: "text-green-600 font-
|
|
65642
|
+
return /* @__PURE__ */ React73__default.createElement(Card, { className: "w-full max-w-3xl mx-auto shadow-xl" }, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-3xl font-headline text-center" }, t2("practiceFlow.results.title", { quizTitle })), /* @__PURE__ */ React73__default.createElement(CardDescription, { className: "text-center text-lg" }, t2("practiceFlow.results.description"))), /* @__PURE__ */ React73__default.createElement(CardContent, { className: "space-y-6" }, /* @__PURE__ */ React73__default.createElement(Card, { className: "bg-secondary/50" }, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-xl flex items-center" }, /* @__PURE__ */ React73__default.createElement(BarChart2, { className: "mr-2 h-5 w-5 text-primary" }), t2("practiceFlow.results.overallScore"))), /* @__PURE__ */ React73__default.createElement(CardContent, { className: "grid grid-cols-1 md:grid-cols-3 gap-4 text-center" }, /* @__PURE__ */ React73__default.createElement("div", null, /* @__PURE__ */ React73__default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.score, " / ", result.maxScore), /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.points"))), /* @__PURE__ */ React73__default.createElement("div", null, /* @__PURE__ */ React73__default.createElement("p", { className: "text-3xl font-bold text-primary" }, result.percentage.toFixed(2), "%"), /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm text-muted-foreground" }, t2("practiceFlow.results.percentage"))), /* @__PURE__ */ React73__default.createElement("div", null, result.passed !== void 0 && (result.passed ? /* @__PURE__ */ React73__default.createElement("div", { className: "flex flex-col items-center text-green-600" }, /* @__PURE__ */ React73__default.createElement(CircleCheckBig, { className: "h-10 w-10" }), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.passed"))) : /* @__PURE__ */ React73__default.createElement("div", { className: "flex flex-col items-center text-destructive" }, /* @__PURE__ */ React73__default.createElement(CircleX, { className: "h-10 w-10" }), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xl font-semibold mt-1" }, t2("practiceFlow.results.failed"))))))), /* @__PURE__ */ React73__default.createElement("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-4 text-sm" }, /* @__PURE__ */ React73__default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__default.createElement(Clock, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__default.createElement("span", null, t2("practiceFlow.results.timeSpent")), /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold" }, result.totalTimeSpentSeconds?.toFixed(0) ?? "N/A", " ", t2("practiceFlow.results.timeUnit"))), /* @__PURE__ */ React73__default.createElement("div", { className: "flex items-center space-x-2 p-3 bg-muted rounded-md" }, /* @__PURE__ */ React73__default.createElement(Percent, { className: "h-5 w-5 text-primary" }), /* @__PURE__ */ React73__default.createElement("span", null, t2("practiceFlow.results.avgTimePerQuestion")), /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold" }, result.averageTimePerQuestionSeconds?.toFixed(1) ?? "N/A", " ", t2("practiceFlow.results.timeUnit")))), result.scormStatus && result.scormStatus !== "idle" && result.scormStatus !== "no_api" && /* @__PURE__ */ React73__default.createElement(Card, null, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-lg" }, "SCORM Sync Status")), /* @__PURE__ */ React73__default.createElement(CardContent, null, /* @__PURE__ */ React73__default.createElement("p", { className: `flex items-center ${result.scormStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.scormStatus === "error" && /* @__PURE__ */ React73__default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold ml-1" }, result.scormStatus)), result.scormError && /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.scormError))), result.webhookStatus && result.webhookStatus !== "idle" && /* @__PURE__ */ React73__default.createElement(Card, null, /* @__PURE__ */ React73__default.createElement(CardHeader, null, /* @__PURE__ */ React73__default.createElement(CardTitle, { className: "text-lg" }, "Webhook Sync Status")), /* @__PURE__ */ React73__default.createElement(CardContent, null, /* @__PURE__ */ React73__default.createElement("p", { className: `flex items-center ${result.webhookStatus === "error" ? "text-destructive" : "text-muted-foreground"}` }, result.webhookStatus === "error" && /* @__PURE__ */ React73__default.createElement(TriangleAlert, { className: "mr-2 h-4 w-4" }), "Status: ", /* @__PURE__ */ React73__default.createElement("span", { className: "font-semibold ml-1" }, result.webhookStatus)), result.webhookError && /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-destructive mt-1" }, "Details: ", result.webhookError))), /* @__PURE__ */ React73__default.createElement(Accordion2, { type: "single", collapsible: true, className: "w-full" }, /* @__PURE__ */ React73__default.createElement(AccordionItem2, { value: "question-breakdown" }, /* @__PURE__ */ React73__default.createElement(AccordionTrigger2, { className: "text-lg font-semibold" }, t2("practiceFlow.results.questionBreakdown")), /* @__PURE__ */ React73__default.createElement(AccordionContent2, null, /* @__PURE__ */ React73__default.createElement(ScrollArea2, { className: "h-[300px] pr-4" }, /* @__PURE__ */ React73__default.createElement("ul", { className: "space-y-4" }, result.questionResults.map((qResult, index3) => /* @__PURE__ */ React73__default.createElement("li", { key: qResult.questionId, className: "p-4 border rounded-md bg-background" }, /* @__PURE__ */ React73__default.createElement("div", { className: "flex justify-between items-center mb-2" }, /* @__PURE__ */ React73__default.createElement("h4", { className: "font-semibold" }, t2("common.questions", { count: index3 + 1 })), qResult.isCorrect ? /* @__PURE__ */ React73__default.createElement("span", { className: "text-green-600 font-Medium flex items-center" }, /* @__PURE__ */ React73__default.createElement(CircleCheckBig, { className: "mr-1 h-4 w-4" }), " ", t2("practiceFlow.results.passed")) : /* @__PURE__ */ React73__default.createElement("span", { className: "text-destructive font-Medium flex items-center" }, /* @__PURE__ */ React73__default.createElement(CircleX, { className: "mr-1 h-4 w-4" }), " ", t2("practiceFlow.results.failed"))), /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm" }, /* @__PURE__ */ React73__default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.yourAnswer")), " ", getAnswerDisplay(qResult.userAnswer)), !qResult.isCorrect && /* @__PURE__ */ React73__default.createElement("p", { className: "text-sm" }, /* @__PURE__ */ React73__default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.correctAnswer")), " ", getAnswerDisplay(qResult.correctAnswer)), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-muted-foreground" }, /* @__PURE__ */ React73__default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.pointsEarned")), " ", qResult.pointsEarned), /* @__PURE__ */ React73__default.createElement("p", { className: "text-xs text-muted-foreground" }, /* @__PURE__ */ React73__default.createElement("span", { className: "font-Medium" }, t2("practiceFlow.results.timeSpent")), " ", qResult.timeSpentSeconds?.toFixed(0) ?? "N/A", t2("practiceFlow.results.timeUnit")))))))))), /* @__PURE__ */ React73__default.createElement(CardFooter, { className: "flex flex-col sm:flex-row justify-between gap-2" }, onExitQuiz && /* @__PURE__ */ React73__default.createElement(Button, { variant: "outline", onClick: onExitQuiz, className: "w-full sm:w-auto" }, /* @__PURE__ */ React73__default.createElement(LogOut, { className: "mr-2 h-4 w-4" }), t2("common.exit")), showReviewButton && onGenerateReview && /* @__PURE__ */ React73__default.createElement(
|
|
65643
65643
|
Button,
|
|
65644
65644
|
{
|
|
65645
65645
|
onClick: onGenerateReview,
|