analytica-frontend-lib 1.1.4 → 1.1.6
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/Menu/index.d.mts +1 -27
- package/dist/Menu/index.d.ts +1 -27
- package/dist/Menu/index.js +0 -43
- package/dist/Menu/index.js.map +1 -1
- package/dist/Menu/index.mjs +1 -44
- package/dist/Menu/index.mjs.map +1 -1
- package/dist/Quiz/index.d.mts +1 -2
- package/dist/Quiz/index.d.ts +1 -2
- package/dist/Quiz/index.js +31 -5
- package/dist/Quiz/index.js.map +1 -1
- package/dist/Quiz/index.mjs +31 -5
- package/dist/Quiz/index.mjs.map +1 -1
- package/dist/Quiz/useQuizStore/index.d.mts +2 -0
- package/dist/Quiz/useQuizStore/index.d.ts +2 -0
- package/dist/Quiz/useQuizStore/index.js +2 -0
- package/dist/Quiz/useQuizStore/index.js.map +1 -1
- package/dist/Quiz/useQuizStore/index.mjs +2 -0
- package/dist/Quiz/useQuizStore/index.mjs.map +1 -1
- package/dist/VideoPlayer/index.d.mts +41 -0
- package/dist/VideoPlayer/index.d.ts +41 -0
- package/dist/VideoPlayer/index.js +562 -0
- package/dist/VideoPlayer/index.js.map +1 -0
- package/dist/VideoPlayer/index.mjs +550 -0
- package/dist/VideoPlayer/index.mjs.map +1 -0
- package/dist/index.css +124 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +2 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +679 -269
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +667 -249
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +124 -0
- package/dist/styles.css.map +1 -1
- package/package.json +3 -2
package/dist/index.mjs
CHANGED
|
@@ -4656,7 +4656,7 @@ var CardAudio = forwardRef12(
|
|
|
4656
4656
|
const [volume, setVolume] = useState8(1);
|
|
4657
4657
|
const [showVolumeControl, setShowVolumeControl] = useState8(false);
|
|
4658
4658
|
const audioRef = useRef6(null);
|
|
4659
|
-
const
|
|
4659
|
+
const formatTime2 = (time) => {
|
|
4660
4660
|
const minutes = Math.floor(time / 60);
|
|
4661
4661
|
const seconds = Math.floor(time % 60);
|
|
4662
4662
|
return `${minutes}:${seconds.toString().padStart(2, "0")}`;
|
|
@@ -4774,7 +4774,7 @@ var CardAudio = forwardRef12(
|
|
|
4774
4774
|
] }) }) : /* @__PURE__ */ jsx26(Play, { size: 24 })
|
|
4775
4775
|
}
|
|
4776
4776
|
),
|
|
4777
|
-
/* @__PURE__ */ jsx26("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children:
|
|
4777
|
+
/* @__PURE__ */ jsx26("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
|
|
4778
4778
|
/* @__PURE__ */ jsx26("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ jsx26(
|
|
4779
4779
|
"button",
|
|
4780
4780
|
{
|
|
@@ -4801,7 +4801,7 @@ var CardAudio = forwardRef12(
|
|
|
4801
4801
|
)
|
|
4802
4802
|
}
|
|
4803
4803
|
) }),
|
|
4804
|
-
/* @__PURE__ */ jsx26("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children:
|
|
4804
|
+
/* @__PURE__ */ jsx26("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
|
|
4805
4805
|
/* @__PURE__ */ jsxs20("div", { className: "relative", children: [
|
|
4806
4806
|
/* @__PURE__ */ jsx26(
|
|
4807
4807
|
"button",
|
|
@@ -6233,8 +6233,7 @@ import {
|
|
|
6233
6233
|
isValidElement as isValidElement5,
|
|
6234
6234
|
Children as Children5,
|
|
6235
6235
|
cloneElement as cloneElement5,
|
|
6236
|
-
useState as useState12
|
|
6237
|
-
useCallback
|
|
6236
|
+
useState as useState12
|
|
6238
6237
|
} from "react";
|
|
6239
6238
|
import { CaretLeft as CaretLeft2, CaretRight as CaretRight3 } from "phosphor-react";
|
|
6240
6239
|
import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
@@ -6517,47 +6516,6 @@ var injectStore5 = (children, store) => Children5.map(children, (child) => {
|
|
|
6517
6516
|
...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
|
|
6518
6517
|
});
|
|
6519
6518
|
});
|
|
6520
|
-
var Breadcrumb = forwardRef17(
|
|
6521
|
-
({ currentPage, parentPageName, onBackClick, className, ...props }, ref) => {
|
|
6522
|
-
const handleBackToParent = useCallback(() => {
|
|
6523
|
-
onBackClick();
|
|
6524
|
-
}, [onBackClick]);
|
|
6525
|
-
const breadcrumbClassName = `py-4 ${typeof className === "string" ? className : ""}`;
|
|
6526
|
-
const { defaultValue: _unused, ...menuProps } = props;
|
|
6527
|
-
return /* @__PURE__ */ jsx33(
|
|
6528
|
-
Menu,
|
|
6529
|
-
{
|
|
6530
|
-
ref,
|
|
6531
|
-
variant: "breadcrumb",
|
|
6532
|
-
defaultValue: currentPage.toLowerCase(),
|
|
6533
|
-
className: breadcrumbClassName,
|
|
6534
|
-
...menuProps,
|
|
6535
|
-
children: /* @__PURE__ */ jsxs27(MenuContent, { variant: "breadcrumb", children: [
|
|
6536
|
-
/* @__PURE__ */ jsx33(
|
|
6537
|
-
MenuItem,
|
|
6538
|
-
{
|
|
6539
|
-
variant: "breadcrumb",
|
|
6540
|
-
value: parentPageName.toLowerCase(),
|
|
6541
|
-
onClick: handleBackToParent,
|
|
6542
|
-
separator: true,
|
|
6543
|
-
children: parentPageName
|
|
6544
|
-
}
|
|
6545
|
-
),
|
|
6546
|
-
/* @__PURE__ */ jsx33(
|
|
6547
|
-
MenuItem,
|
|
6548
|
-
{
|
|
6549
|
-
variant: "breadcrumb",
|
|
6550
|
-
value: currentPage.toLowerCase(),
|
|
6551
|
-
disabled: true,
|
|
6552
|
-
children: currentPage
|
|
6553
|
-
}
|
|
6554
|
-
)
|
|
6555
|
-
] })
|
|
6556
|
-
}
|
|
6557
|
-
);
|
|
6558
|
-
}
|
|
6559
|
-
);
|
|
6560
|
-
Breadcrumb.displayName = "Breadcrumb";
|
|
6561
6519
|
var Menu_default = Menu;
|
|
6562
6520
|
|
|
6563
6521
|
// src/components/Skeleton/Skeleton.tsx
|
|
@@ -6813,17 +6771,451 @@ var NotFound = ({
|
|
|
6813
6771
|
};
|
|
6814
6772
|
var NotFound_default = NotFound;
|
|
6815
6773
|
|
|
6774
|
+
// src/components/VideoPlayer/VideoPlayer.tsx
|
|
6775
|
+
import { useRef as useRef9, useState as useState13, useEffect as useEffect11, useCallback } from "react";
|
|
6776
|
+
import {
|
|
6777
|
+
Play as Play2,
|
|
6778
|
+
Pause,
|
|
6779
|
+
SpeakerHigh as SpeakerHigh2,
|
|
6780
|
+
SpeakerSlash,
|
|
6781
|
+
ArrowsOutSimple,
|
|
6782
|
+
ArrowsInSimple,
|
|
6783
|
+
ClosedCaptioning,
|
|
6784
|
+
DotsThreeVertical as DotsThreeVertical2
|
|
6785
|
+
} from "phosphor-react";
|
|
6786
|
+
import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6787
|
+
var formatTime = (seconds) => {
|
|
6788
|
+
if (!seconds || isNaN(seconds)) return "0:00";
|
|
6789
|
+
const mins = Math.floor(seconds / 60);
|
|
6790
|
+
const secs = Math.floor(seconds % 60);
|
|
6791
|
+
return `${mins}:${secs.toString().padStart(2, "0")}`;
|
|
6792
|
+
};
|
|
6793
|
+
var VideoPlayer = ({
|
|
6794
|
+
src,
|
|
6795
|
+
poster,
|
|
6796
|
+
subtitles,
|
|
6797
|
+
title,
|
|
6798
|
+
subtitle: subtitleText,
|
|
6799
|
+
initialTime = 0,
|
|
6800
|
+
onTimeUpdate,
|
|
6801
|
+
onProgress,
|
|
6802
|
+
onVideoComplete,
|
|
6803
|
+
className,
|
|
6804
|
+
autoSave = true,
|
|
6805
|
+
storageKey = "video-progress"
|
|
6806
|
+
}) => {
|
|
6807
|
+
const videoRef = useRef9(null);
|
|
6808
|
+
const [isPlaying, setIsPlaying] = useState13(false);
|
|
6809
|
+
const [currentTime, setCurrentTime] = useState13(0);
|
|
6810
|
+
const [duration, setDuration] = useState13(0);
|
|
6811
|
+
const [isMuted, setIsMuted] = useState13(false);
|
|
6812
|
+
const [volume, setVolume] = useState13(1);
|
|
6813
|
+
const [isFullscreen, setIsFullscreen] = useState13(false);
|
|
6814
|
+
const [showControls, setShowControls] = useState13(true);
|
|
6815
|
+
const [hasCompleted, setHasCompleted] = useState13(false);
|
|
6816
|
+
const [showCaptions, setShowCaptions] = useState13(false);
|
|
6817
|
+
const [playbackRate, setPlaybackRate] = useState13(1);
|
|
6818
|
+
const [showSpeedMenu, setShowSpeedMenu] = useState13(false);
|
|
6819
|
+
const lastSaveTimeRef = useRef9(0);
|
|
6820
|
+
const trackRef = useRef9(null);
|
|
6821
|
+
useEffect11(() => {
|
|
6822
|
+
if (videoRef.current) {
|
|
6823
|
+
videoRef.current.volume = volume;
|
|
6824
|
+
videoRef.current.muted = isMuted;
|
|
6825
|
+
}
|
|
6826
|
+
}, [volume, isMuted]);
|
|
6827
|
+
useEffect11(() => {
|
|
6828
|
+
if (!autoSave || !storageKey) return;
|
|
6829
|
+
const raw = localStorage.getItem(`${storageKey}-${src}`);
|
|
6830
|
+
const saved = raw !== null ? Number(raw) : NaN;
|
|
6831
|
+
const hasValidSaved = Number.isFinite(saved) && saved >= 0;
|
|
6832
|
+
const hasValidInitial = Number.isFinite(initialTime) && initialTime >= 0;
|
|
6833
|
+
let start;
|
|
6834
|
+
if (hasValidInitial) {
|
|
6835
|
+
start = initialTime;
|
|
6836
|
+
} else if (hasValidSaved) {
|
|
6837
|
+
start = saved;
|
|
6838
|
+
} else {
|
|
6839
|
+
start = void 0;
|
|
6840
|
+
}
|
|
6841
|
+
if (start !== void 0 && videoRef.current) {
|
|
6842
|
+
videoRef.current.currentTime = start;
|
|
6843
|
+
setCurrentTime(start);
|
|
6844
|
+
}
|
|
6845
|
+
}, [src, storageKey, autoSave, initialTime]);
|
|
6846
|
+
const saveProgress = useCallback(() => {
|
|
6847
|
+
if (!autoSave || !storageKey) return;
|
|
6848
|
+
const now = Date.now();
|
|
6849
|
+
if (now - lastSaveTimeRef.current > 5e3) {
|
|
6850
|
+
localStorage.setItem(`${storageKey}-${src}`, currentTime.toString());
|
|
6851
|
+
lastSaveTimeRef.current = now;
|
|
6852
|
+
}
|
|
6853
|
+
}, [autoSave, storageKey, src, currentTime]);
|
|
6854
|
+
const togglePlayPause = useCallback(() => {
|
|
6855
|
+
if (videoRef.current) {
|
|
6856
|
+
if (isPlaying) {
|
|
6857
|
+
videoRef.current.pause();
|
|
6858
|
+
} else {
|
|
6859
|
+
videoRef.current.play();
|
|
6860
|
+
}
|
|
6861
|
+
setIsPlaying(!isPlaying);
|
|
6862
|
+
}
|
|
6863
|
+
}, [isPlaying]);
|
|
6864
|
+
const handleVolumeChange = useCallback(
|
|
6865
|
+
(newVolume) => {
|
|
6866
|
+
if (videoRef.current) {
|
|
6867
|
+
const volumeValue = newVolume / 100;
|
|
6868
|
+
videoRef.current.volume = volumeValue;
|
|
6869
|
+
setVolume(volumeValue);
|
|
6870
|
+
if (volumeValue === 0) {
|
|
6871
|
+
videoRef.current.muted = true;
|
|
6872
|
+
setIsMuted(true);
|
|
6873
|
+
} else if (isMuted) {
|
|
6874
|
+
videoRef.current.muted = false;
|
|
6875
|
+
setIsMuted(false);
|
|
6876
|
+
}
|
|
6877
|
+
}
|
|
6878
|
+
},
|
|
6879
|
+
[isMuted]
|
|
6880
|
+
);
|
|
6881
|
+
const toggleMute = useCallback(() => {
|
|
6882
|
+
if (videoRef.current) {
|
|
6883
|
+
if (isMuted) {
|
|
6884
|
+
const restoreVolume = volume > 0 ? volume : 0.5;
|
|
6885
|
+
videoRef.current.volume = restoreVolume;
|
|
6886
|
+
videoRef.current.muted = false;
|
|
6887
|
+
setVolume(restoreVolume);
|
|
6888
|
+
setIsMuted(false);
|
|
6889
|
+
} else {
|
|
6890
|
+
videoRef.current.muted = true;
|
|
6891
|
+
setIsMuted(true);
|
|
6892
|
+
}
|
|
6893
|
+
}
|
|
6894
|
+
}, [isMuted, volume]);
|
|
6895
|
+
const toggleFullscreen = useCallback(() => {
|
|
6896
|
+
const container = videoRef.current?.parentElement;
|
|
6897
|
+
if (!container) return;
|
|
6898
|
+
if (!isFullscreen) {
|
|
6899
|
+
if (container.requestFullscreen) {
|
|
6900
|
+
container.requestFullscreen();
|
|
6901
|
+
}
|
|
6902
|
+
} else if (document.exitFullscreen) {
|
|
6903
|
+
document.exitFullscreen();
|
|
6904
|
+
}
|
|
6905
|
+
setIsFullscreen(!isFullscreen);
|
|
6906
|
+
}, [isFullscreen]);
|
|
6907
|
+
const handleSpeedChange = useCallback((speed) => {
|
|
6908
|
+
if (videoRef.current) {
|
|
6909
|
+
videoRef.current.playbackRate = speed;
|
|
6910
|
+
setPlaybackRate(speed);
|
|
6911
|
+
setShowSpeedMenu(false);
|
|
6912
|
+
}
|
|
6913
|
+
}, []);
|
|
6914
|
+
const toggleSpeedMenu = useCallback(() => {
|
|
6915
|
+
setShowSpeedMenu(!showSpeedMenu);
|
|
6916
|
+
}, [showSpeedMenu]);
|
|
6917
|
+
const toggleCaptions = useCallback(() => {
|
|
6918
|
+
if (!trackRef.current?.track) return;
|
|
6919
|
+
const newShowCaptions = !showCaptions;
|
|
6920
|
+
setShowCaptions(newShowCaptions);
|
|
6921
|
+
trackRef.current.track.mode = newShowCaptions ? "showing" : "hidden";
|
|
6922
|
+
}, [showCaptions]);
|
|
6923
|
+
const handleTimeUpdate = useCallback(() => {
|
|
6924
|
+
if (videoRef.current) {
|
|
6925
|
+
const current = videoRef.current.currentTime;
|
|
6926
|
+
setCurrentTime(current);
|
|
6927
|
+
saveProgress();
|
|
6928
|
+
onTimeUpdate?.(current);
|
|
6929
|
+
if (duration > 0) {
|
|
6930
|
+
const progressPercent = current / duration * 100;
|
|
6931
|
+
onProgress?.(progressPercent);
|
|
6932
|
+
if (progressPercent >= 95 && !hasCompleted) {
|
|
6933
|
+
setHasCompleted(true);
|
|
6934
|
+
onVideoComplete?.();
|
|
6935
|
+
}
|
|
6936
|
+
}
|
|
6937
|
+
}
|
|
6938
|
+
}, [
|
|
6939
|
+
duration,
|
|
6940
|
+
saveProgress,
|
|
6941
|
+
onTimeUpdate,
|
|
6942
|
+
onProgress,
|
|
6943
|
+
onVideoComplete,
|
|
6944
|
+
hasCompleted
|
|
6945
|
+
]);
|
|
6946
|
+
const handleLoadedMetadata = useCallback(() => {
|
|
6947
|
+
if (videoRef.current) {
|
|
6948
|
+
setDuration(videoRef.current.duration);
|
|
6949
|
+
}
|
|
6950
|
+
}, []);
|
|
6951
|
+
useEffect11(() => {
|
|
6952
|
+
const handleVisibilityChange = () => {
|
|
6953
|
+
if (document.hidden && isPlaying && videoRef.current) {
|
|
6954
|
+
videoRef.current.pause();
|
|
6955
|
+
setIsPlaying(false);
|
|
6956
|
+
}
|
|
6957
|
+
};
|
|
6958
|
+
const handleBlur = () => {
|
|
6959
|
+
if (isPlaying && videoRef.current) {
|
|
6960
|
+
videoRef.current.pause();
|
|
6961
|
+
setIsPlaying(false);
|
|
6962
|
+
}
|
|
6963
|
+
};
|
|
6964
|
+
document.addEventListener("visibilitychange", handleVisibilityChange);
|
|
6965
|
+
window.addEventListener("blur", handleBlur);
|
|
6966
|
+
return () => {
|
|
6967
|
+
document.removeEventListener("visibilitychange", handleVisibilityChange);
|
|
6968
|
+
window.removeEventListener("blur", handleBlur);
|
|
6969
|
+
};
|
|
6970
|
+
}, [isPlaying]);
|
|
6971
|
+
const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
|
|
6972
|
+
return /* @__PURE__ */ jsxs30("div", { className: cn("flex flex-col", className), children: [
|
|
6973
|
+
(title || subtitleText) && /* @__PURE__ */ jsx36("div", { className: "bg-subject-1 rounded-t-xl px-8 py-4 flex items-end justify-between min-h-20", children: /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-1", children: [
|
|
6974
|
+
title && /* @__PURE__ */ jsx36(
|
|
6975
|
+
Text_default,
|
|
6976
|
+
{
|
|
6977
|
+
as: "h2",
|
|
6978
|
+
size: "lg",
|
|
6979
|
+
weight: "bold",
|
|
6980
|
+
color: "text-text-900",
|
|
6981
|
+
className: "leading-5 tracking-wide",
|
|
6982
|
+
children: title
|
|
6983
|
+
}
|
|
6984
|
+
),
|
|
6985
|
+
subtitleText && /* @__PURE__ */ jsx36(
|
|
6986
|
+
Text_default,
|
|
6987
|
+
{
|
|
6988
|
+
as: "p",
|
|
6989
|
+
size: "sm",
|
|
6990
|
+
weight: "normal",
|
|
6991
|
+
color: "text-text-600",
|
|
6992
|
+
className: "leading-5",
|
|
6993
|
+
children: subtitleText
|
|
6994
|
+
}
|
|
6995
|
+
)
|
|
6996
|
+
] }) }),
|
|
6997
|
+
/* @__PURE__ */ jsxs30(
|
|
6998
|
+
"div",
|
|
6999
|
+
{
|
|
7000
|
+
className: cn(
|
|
7001
|
+
"relative w-full bg-background overflow-hidden group",
|
|
7002
|
+
title || subtitleText ? "rounded-b-xl" : "rounded-xl"
|
|
7003
|
+
),
|
|
7004
|
+
children: [
|
|
7005
|
+
/* @__PURE__ */ jsx36(
|
|
7006
|
+
"video",
|
|
7007
|
+
{
|
|
7008
|
+
ref: videoRef,
|
|
7009
|
+
src,
|
|
7010
|
+
poster,
|
|
7011
|
+
className: "w-full h-full object-contain",
|
|
7012
|
+
controlsList: "nodownload",
|
|
7013
|
+
onTimeUpdate: handleTimeUpdate,
|
|
7014
|
+
onLoadedMetadata: handleLoadedMetadata,
|
|
7015
|
+
onClick: togglePlayPause,
|
|
7016
|
+
onKeyDown: (e) => {
|
|
7017
|
+
if (e.key) {
|
|
7018
|
+
setShowControls(true);
|
|
7019
|
+
}
|
|
7020
|
+
if (e.key === " " || e.key === "Enter") {
|
|
7021
|
+
e.preventDefault();
|
|
7022
|
+
togglePlayPause();
|
|
7023
|
+
}
|
|
7024
|
+
if (e.key === "ArrowLeft" && videoRef.current) {
|
|
7025
|
+
e.preventDefault();
|
|
7026
|
+
videoRef.current.currentTime -= 10;
|
|
7027
|
+
}
|
|
7028
|
+
if (e.key === "ArrowRight" && videoRef.current) {
|
|
7029
|
+
e.preventDefault();
|
|
7030
|
+
videoRef.current.currentTime += 10;
|
|
7031
|
+
}
|
|
7032
|
+
if (e.key === "ArrowUp") {
|
|
7033
|
+
e.preventDefault();
|
|
7034
|
+
handleVolumeChange(Math.min(100, volume * 100 + 10));
|
|
7035
|
+
}
|
|
7036
|
+
if (e.key === "ArrowDown") {
|
|
7037
|
+
e.preventDefault();
|
|
7038
|
+
handleVolumeChange(Math.max(0, volume * 100 - 10));
|
|
7039
|
+
}
|
|
7040
|
+
if (e.key === "m" || e.key === "M") {
|
|
7041
|
+
e.preventDefault();
|
|
7042
|
+
toggleMute();
|
|
7043
|
+
}
|
|
7044
|
+
if (e.key === "f" || e.key === "F") {
|
|
7045
|
+
e.preventDefault();
|
|
7046
|
+
toggleFullscreen();
|
|
7047
|
+
}
|
|
7048
|
+
},
|
|
7049
|
+
tabIndex: 0,
|
|
7050
|
+
"aria-label": title ? `Video: ${title}` : "Video player",
|
|
7051
|
+
children: /* @__PURE__ */ jsx36(
|
|
7052
|
+
"track",
|
|
7053
|
+
{
|
|
7054
|
+
ref: trackRef,
|
|
7055
|
+
kind: "captions",
|
|
7056
|
+
src: subtitles || "data:text/vtt;charset=utf-8,WEBVTT%0A%0ANOTE%20No%20captions%20available",
|
|
7057
|
+
srcLang: "en",
|
|
7058
|
+
label: subtitles ? "Subtitles" : "No captions available",
|
|
7059
|
+
default: false
|
|
7060
|
+
}
|
|
7061
|
+
)
|
|
7062
|
+
}
|
|
7063
|
+
),
|
|
7064
|
+
!isPlaying && /* @__PURE__ */ jsx36("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity", children: /* @__PURE__ */ jsx36(
|
|
7065
|
+
IconButton_default,
|
|
7066
|
+
{
|
|
7067
|
+
icon: /* @__PURE__ */ jsx36(Play2, { size: 32, weight: "regular", className: "ml-1" }),
|
|
7068
|
+
onClick: togglePlayPause,
|
|
7069
|
+
"aria-label": "Play video",
|
|
7070
|
+
className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
|
|
7071
|
+
}
|
|
7072
|
+
) }),
|
|
7073
|
+
/* @__PURE__ */ jsx36(
|
|
7074
|
+
"div",
|
|
7075
|
+
{
|
|
7076
|
+
className: cn(
|
|
7077
|
+
"absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
|
|
7078
|
+
!isPlaying || showControls ? "opacity-100" : "opacity-0 group-hover:opacity-100"
|
|
7079
|
+
),
|
|
7080
|
+
children: /* @__PURE__ */ jsx36("div", { className: "ml-auto block", children: /* @__PURE__ */ jsx36(
|
|
7081
|
+
IconButton_default,
|
|
7082
|
+
{
|
|
7083
|
+
icon: isFullscreen ? /* @__PURE__ */ jsx36(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx36(ArrowsOutSimple, { size: 24 }),
|
|
7084
|
+
onClick: toggleFullscreen,
|
|
7085
|
+
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
7086
|
+
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7087
|
+
}
|
|
7088
|
+
) })
|
|
7089
|
+
}
|
|
7090
|
+
),
|
|
7091
|
+
/* @__PURE__ */ jsxs30(
|
|
7092
|
+
"div",
|
|
7093
|
+
{
|
|
7094
|
+
className: cn(
|
|
7095
|
+
"absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/90 to-transparent transition-opacity",
|
|
7096
|
+
!isPlaying || showControls ? "opacity-100" : "opacity-0 group-hover:opacity-100"
|
|
7097
|
+
),
|
|
7098
|
+
children: [
|
|
7099
|
+
/* @__PURE__ */ jsx36("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx36(
|
|
7100
|
+
"input",
|
|
7101
|
+
{
|
|
7102
|
+
type: "range",
|
|
7103
|
+
min: 0,
|
|
7104
|
+
max: duration || 100,
|
|
7105
|
+
value: currentTime,
|
|
7106
|
+
onChange: (e) => {
|
|
7107
|
+
const newTime = parseFloat(e.target.value);
|
|
7108
|
+
if (videoRef.current) {
|
|
7109
|
+
videoRef.current.currentTime = newTime;
|
|
7110
|
+
}
|
|
7111
|
+
},
|
|
7112
|
+
className: "w-full h-1 bg-neutral-600 rounded-full appearance-none cursor-pointer slider:bg-primary-600 focus:outline-none focus:ring-2 focus:ring-primary-500",
|
|
7113
|
+
"aria-label": "Video progress",
|
|
7114
|
+
style: {
|
|
7115
|
+
background: `linear-gradient(to right, #2271C4 ${progressPercentage}%, #D5D4D4 ${progressPercentage}%)`
|
|
7116
|
+
}
|
|
7117
|
+
}
|
|
7118
|
+
) }),
|
|
7119
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center justify-between px-4 pb-4", children: [
|
|
7120
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-4", children: [
|
|
7121
|
+
/* @__PURE__ */ jsx36(
|
|
7122
|
+
IconButton_default,
|
|
7123
|
+
{
|
|
7124
|
+
icon: isPlaying ? /* @__PURE__ */ jsx36(Pause, { size: 24 }) : /* @__PURE__ */ jsx36(Play2, { size: 24 }),
|
|
7125
|
+
onClick: togglePlayPause,
|
|
7126
|
+
"aria-label": isPlaying ? "Pause" : "Play",
|
|
7127
|
+
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7128
|
+
}
|
|
7129
|
+
),
|
|
7130
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
|
|
7131
|
+
/* @__PURE__ */ jsx36(
|
|
7132
|
+
IconButton_default,
|
|
7133
|
+
{
|
|
7134
|
+
icon: isMuted ? /* @__PURE__ */ jsx36(SpeakerSlash, { size: 24 }) : /* @__PURE__ */ jsx36(SpeakerHigh2, { size: 24 }),
|
|
7135
|
+
onClick: toggleMute,
|
|
7136
|
+
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
7137
|
+
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7138
|
+
}
|
|
7139
|
+
),
|
|
7140
|
+
/* @__PURE__ */ jsx36(
|
|
7141
|
+
"input",
|
|
7142
|
+
{
|
|
7143
|
+
type: "range",
|
|
7144
|
+
min: 0,
|
|
7145
|
+
max: 100,
|
|
7146
|
+
value: Math.round(volume * 100),
|
|
7147
|
+
onChange: (e) => handleVolumeChange(parseInt(e.target.value)),
|
|
7148
|
+
className: "w-20 h-1 bg-neutral-600 rounded-full appearance-none cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-500",
|
|
7149
|
+
"aria-label": "Volume control",
|
|
7150
|
+
style: {
|
|
7151
|
+
background: `linear-gradient(to right, #2271C4 ${volume * 100}%, #D5D4D4 ${volume * 100}%)`
|
|
7152
|
+
}
|
|
7153
|
+
}
|
|
7154
|
+
)
|
|
7155
|
+
] }),
|
|
7156
|
+
subtitles && /* @__PURE__ */ jsx36(
|
|
7157
|
+
IconButton_default,
|
|
7158
|
+
{
|
|
7159
|
+
icon: /* @__PURE__ */ jsx36(ClosedCaptioning, { size: 24 }),
|
|
7160
|
+
onClick: toggleCaptions,
|
|
7161
|
+
"aria-label": showCaptions ? "Hide captions" : "Show captions",
|
|
7162
|
+
className: cn(
|
|
7163
|
+
"!bg-transparent hover:!bg-white/20",
|
|
7164
|
+
showCaptions ? "!text-primary-400" : "!text-white"
|
|
7165
|
+
)
|
|
7166
|
+
}
|
|
7167
|
+
),
|
|
7168
|
+
/* @__PURE__ */ jsxs30(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
|
|
7169
|
+
formatTime(currentTime),
|
|
7170
|
+
" / ",
|
|
7171
|
+
formatTime(duration)
|
|
7172
|
+
] })
|
|
7173
|
+
] }),
|
|
7174
|
+
/* @__PURE__ */ jsx36("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsxs30("div", { className: "relative", children: [
|
|
7175
|
+
/* @__PURE__ */ jsx36(
|
|
7176
|
+
IconButton_default,
|
|
7177
|
+
{
|
|
7178
|
+
icon: /* @__PURE__ */ jsx36(DotsThreeVertical2, { size: 24 }),
|
|
7179
|
+
onClick: toggleSpeedMenu,
|
|
7180
|
+
"aria-label": "Playback speed",
|
|
7181
|
+
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7182
|
+
}
|
|
7183
|
+
),
|
|
7184
|
+
showSpeedMenu && /* @__PURE__ */ jsx36("div", { className: "absolute bottom-12 right-0 bg-black/90 rounded-lg p-2 min-w-20", children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs30(
|
|
7185
|
+
"button",
|
|
7186
|
+
{
|
|
7187
|
+
onClick: () => handleSpeedChange(speed),
|
|
7188
|
+
className: `block w-full text-left px-3 py-1 text-sm rounded hover:bg-white/20 transition-colors ${playbackRate === speed ? "text-primary-400" : "text-white"}`,
|
|
7189
|
+
children: [
|
|
7190
|
+
speed,
|
|
7191
|
+
"x"
|
|
7192
|
+
]
|
|
7193
|
+
},
|
|
7194
|
+
speed
|
|
7195
|
+
)) })
|
|
7196
|
+
] }) })
|
|
7197
|
+
] })
|
|
7198
|
+
]
|
|
7199
|
+
}
|
|
7200
|
+
)
|
|
7201
|
+
]
|
|
7202
|
+
}
|
|
7203
|
+
)
|
|
7204
|
+
] });
|
|
7205
|
+
};
|
|
7206
|
+
var VideoPlayer_default = VideoPlayer;
|
|
7207
|
+
|
|
6816
7208
|
// src/components/Auth/Auth.tsx
|
|
6817
7209
|
import {
|
|
6818
7210
|
createContext,
|
|
6819
7211
|
useContext,
|
|
6820
|
-
useEffect as
|
|
6821
|
-
useState as
|
|
7212
|
+
useEffect as useEffect12,
|
|
7213
|
+
useState as useState14,
|
|
6822
7214
|
useCallback as useCallback2,
|
|
6823
7215
|
useMemo as useMemo4
|
|
6824
7216
|
} from "react";
|
|
6825
7217
|
import { useLocation, Navigate } from "react-router-dom";
|
|
6826
|
-
import { Fragment as Fragment7, jsx as
|
|
7218
|
+
import { Fragment as Fragment7, jsx as jsx37 } from "react/jsx-runtime";
|
|
6827
7219
|
var AuthContext = createContext(void 0);
|
|
6828
7220
|
var AuthProvider = ({
|
|
6829
7221
|
children,
|
|
@@ -6834,7 +7226,7 @@ var AuthProvider = ({
|
|
|
6834
7226
|
getSessionFn,
|
|
6835
7227
|
getTokensFn
|
|
6836
7228
|
}) => {
|
|
6837
|
-
const [authState, setAuthState] =
|
|
7229
|
+
const [authState, setAuthState] = useState14({
|
|
6838
7230
|
isAuthenticated: false,
|
|
6839
7231
|
isLoading: true,
|
|
6840
7232
|
...initialAuthState
|
|
@@ -6882,7 +7274,7 @@ var AuthProvider = ({
|
|
|
6882
7274
|
tokens: void 0
|
|
6883
7275
|
}));
|
|
6884
7276
|
}, [signOutFn]);
|
|
6885
|
-
|
|
7277
|
+
useEffect12(() => {
|
|
6886
7278
|
checkAuth();
|
|
6887
7279
|
}, [checkAuth]);
|
|
6888
7280
|
const contextValue = useMemo4(
|
|
@@ -6893,7 +7285,7 @@ var AuthProvider = ({
|
|
|
6893
7285
|
}),
|
|
6894
7286
|
[authState, checkAuth, signOut]
|
|
6895
7287
|
);
|
|
6896
|
-
return /* @__PURE__ */
|
|
7288
|
+
return /* @__PURE__ */ jsx37(AuthContext.Provider, { value: contextValue, children });
|
|
6897
7289
|
};
|
|
6898
7290
|
var useAuth = () => {
|
|
6899
7291
|
const context = useContext(AuthContext);
|
|
@@ -6909,9 +7301,9 @@ var ProtectedRoute = ({
|
|
|
6909
7301
|
additionalCheck
|
|
6910
7302
|
}) => {
|
|
6911
7303
|
const { isAuthenticated, isLoading, ...authState } = useAuth();
|
|
6912
|
-
const defaultLoadingComponent = /* @__PURE__ */
|
|
7304
|
+
const defaultLoadingComponent = /* @__PURE__ */ jsx37("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx37("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
6913
7305
|
if (isLoading) {
|
|
6914
|
-
return /* @__PURE__ */
|
|
7306
|
+
return /* @__PURE__ */ jsx37(Fragment7, { children: loadingComponent || defaultLoadingComponent });
|
|
6915
7307
|
}
|
|
6916
7308
|
if (!isAuthenticated) {
|
|
6917
7309
|
if (typeof window !== "undefined") {
|
|
@@ -6922,12 +7314,12 @@ var ProtectedRoute = ({
|
|
|
6922
7314
|
return null;
|
|
6923
7315
|
}
|
|
6924
7316
|
}
|
|
6925
|
-
return /* @__PURE__ */
|
|
7317
|
+
return /* @__PURE__ */ jsx37(Navigate, { to: redirectTo, replace: true });
|
|
6926
7318
|
}
|
|
6927
7319
|
if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
|
|
6928
|
-
return /* @__PURE__ */
|
|
7320
|
+
return /* @__PURE__ */ jsx37(Navigate, { to: redirectTo, replace: true });
|
|
6929
7321
|
}
|
|
6930
|
-
return /* @__PURE__ */
|
|
7322
|
+
return /* @__PURE__ */ jsx37(Fragment7, { children });
|
|
6931
7323
|
};
|
|
6932
7324
|
var PublicRoute = ({
|
|
6933
7325
|
children,
|
|
@@ -6937,15 +7329,15 @@ var PublicRoute = ({
|
|
|
6937
7329
|
}) => {
|
|
6938
7330
|
const { isAuthenticated, isLoading } = useAuth();
|
|
6939
7331
|
if (checkAuthBeforeRender && isLoading) {
|
|
6940
|
-
return /* @__PURE__ */
|
|
7332
|
+
return /* @__PURE__ */ jsx37("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx37("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
6941
7333
|
}
|
|
6942
7334
|
if (isAuthenticated && redirectIfAuthenticated) {
|
|
6943
|
-
return /* @__PURE__ */
|
|
7335
|
+
return /* @__PURE__ */ jsx37(Navigate, { to: redirectTo, replace: true });
|
|
6944
7336
|
}
|
|
6945
|
-
return /* @__PURE__ */
|
|
7337
|
+
return /* @__PURE__ */ jsx37(Fragment7, { children });
|
|
6946
7338
|
};
|
|
6947
7339
|
var withAuth = (Component, options = {}) => {
|
|
6948
|
-
return (props) => /* @__PURE__ */
|
|
7340
|
+
return (props) => /* @__PURE__ */ jsx37(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx37(Component, { ...props }) });
|
|
6949
7341
|
};
|
|
6950
7342
|
var useAuthGuard = (options = {}) => {
|
|
6951
7343
|
const authState = useAuth();
|
|
@@ -6960,7 +7352,7 @@ var useAuthGuard = (options = {}) => {
|
|
|
6960
7352
|
var useRouteAuth = (fallbackPath = "/") => {
|
|
6961
7353
|
const { isAuthenticated, isLoading } = useAuth();
|
|
6962
7354
|
const location = useLocation();
|
|
6963
|
-
const redirectToLogin = () => /* @__PURE__ */
|
|
7355
|
+
const redirectToLogin = () => /* @__PURE__ */ jsx37(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
|
|
6964
7356
|
return {
|
|
6965
7357
|
isAuthenticated,
|
|
6966
7358
|
isLoading,
|
|
@@ -7024,7 +7416,7 @@ function createZustandAuthAdapter(useAuthStore) {
|
|
|
7024
7416
|
}
|
|
7025
7417
|
|
|
7026
7418
|
// src/components/Auth/useUrlAuthentication.ts
|
|
7027
|
-
import { useEffect as
|
|
7419
|
+
import { useEffect as useEffect13 } from "react";
|
|
7028
7420
|
import { useLocation as useLocation2 } from "react-router-dom";
|
|
7029
7421
|
var getAuthParams = (location, extractParams) => {
|
|
7030
7422
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -7072,7 +7464,7 @@ var handleUserData = (responseData, setUser) => {
|
|
|
7072
7464
|
};
|
|
7073
7465
|
function useUrlAuthentication(options) {
|
|
7074
7466
|
const location = useLocation2();
|
|
7075
|
-
|
|
7467
|
+
useEffect13(() => {
|
|
7076
7468
|
const handleAuthentication = async () => {
|
|
7077
7469
|
const authParams = getAuthParams(location, options.extractParams);
|
|
7078
7470
|
if (!hasValidAuthParams(authParams)) {
|
|
@@ -7134,12 +7526,12 @@ import {
|
|
|
7134
7526
|
} from "phosphor-react";
|
|
7135
7527
|
import {
|
|
7136
7528
|
forwardRef as forwardRef19,
|
|
7137
|
-
useEffect as
|
|
7529
|
+
useEffect as useEffect14,
|
|
7138
7530
|
useMemo as useMemo6,
|
|
7139
7531
|
useId as useId10,
|
|
7140
|
-
useState as
|
|
7532
|
+
useState as useState15,
|
|
7141
7533
|
useCallback as useCallback3,
|
|
7142
|
-
useRef as
|
|
7534
|
+
useRef as useRef10
|
|
7143
7535
|
} from "react";
|
|
7144
7536
|
|
|
7145
7537
|
// src/components/Quiz/useQuizStore.ts
|
|
@@ -7176,6 +7568,7 @@ var useQuizStore = create7()(
|
|
|
7176
7568
|
isStarted: false,
|
|
7177
7569
|
isFinished: false,
|
|
7178
7570
|
userId: "",
|
|
7571
|
+
variant: "default",
|
|
7179
7572
|
// Setters
|
|
7180
7573
|
setBySimulated: (simulado) => set({ bySimulated: simulado }),
|
|
7181
7574
|
setByActivity: (atividade) => set({ byActivity: atividade }),
|
|
@@ -7183,6 +7576,7 @@ var useQuizStore = create7()(
|
|
|
7183
7576
|
setUserId: (userId) => set({ userId }),
|
|
7184
7577
|
setUserAnswers: (userAnswers) => set({ userAnswers }),
|
|
7185
7578
|
getUserId: () => get().userId,
|
|
7579
|
+
setVariant: (variant) => set({ variant }),
|
|
7186
7580
|
// Navigation
|
|
7187
7581
|
goToNextQuestion: () => {
|
|
7188
7582
|
const { currentQuestionIndex, getTotalQuestions } = get();
|
|
@@ -7638,13 +8032,13 @@ var simulated_result_default = "./simulated-result-QN5HCUY5.png";
|
|
|
7638
8032
|
var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
|
|
7639
8033
|
|
|
7640
8034
|
// src/components/Quiz/Quiz.tsx
|
|
7641
|
-
import { Fragment as Fragment8, jsx as
|
|
8035
|
+
import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
7642
8036
|
var getStatusBadge = (status) => {
|
|
7643
8037
|
switch (status) {
|
|
7644
8038
|
case "correct":
|
|
7645
|
-
return /* @__PURE__ */
|
|
8039
|
+
return /* @__PURE__ */ jsx38(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx38(CheckCircle6, {}), children: "Resposta correta" });
|
|
7646
8040
|
case "incorrect":
|
|
7647
|
-
return /* @__PURE__ */
|
|
8041
|
+
return /* @__PURE__ */ jsx38(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx38(XCircle5, {}), children: "Resposta incorreta" });
|
|
7648
8042
|
default:
|
|
7649
8043
|
return null;
|
|
7650
8044
|
}
|
|
@@ -7657,8 +8051,12 @@ var getStatusStyles = (variantCorrect) => {
|
|
|
7657
8051
|
return "bg-error-background border-error-300";
|
|
7658
8052
|
}
|
|
7659
8053
|
};
|
|
7660
|
-
var Quiz = forwardRef19(({ children, className, ...props }, ref) => {
|
|
7661
|
-
|
|
8054
|
+
var Quiz = forwardRef19(({ children, className, variant = "default", ...props }, ref) => {
|
|
8055
|
+
const { setVariant } = useQuizStore();
|
|
8056
|
+
useEffect14(() => {
|
|
8057
|
+
setVariant(variant);
|
|
8058
|
+
}, [variant, setVariant]);
|
|
8059
|
+
return /* @__PURE__ */ jsx38(
|
|
7662
8060
|
"div",
|
|
7663
8061
|
{
|
|
7664
8062
|
ref,
|
|
@@ -7675,8 +8073,8 @@ var QuizHeaderResult = forwardRef19(
|
|
|
7675
8073
|
({ className, ...props }, ref) => {
|
|
7676
8074
|
const { getAllCurrentAnswer } = useQuizStore();
|
|
7677
8075
|
const usersAnswer = getAllCurrentAnswer();
|
|
7678
|
-
const [isCorrect, setIsCorrect] =
|
|
7679
|
-
|
|
8076
|
+
const [isCorrect, setIsCorrect] = useState15(false);
|
|
8077
|
+
useEffect14(() => {
|
|
7680
8078
|
if (usersAnswer) {
|
|
7681
8079
|
setIsCorrect(
|
|
7682
8080
|
usersAnswer.length > 0 ? usersAnswer.map(
|
|
@@ -7685,7 +8083,7 @@ var QuizHeaderResult = forwardRef19(
|
|
|
7685
8083
|
);
|
|
7686
8084
|
}
|
|
7687
8085
|
}, [usersAnswer]);
|
|
7688
|
-
return /* @__PURE__ */
|
|
8086
|
+
return /* @__PURE__ */ jsxs31(
|
|
7689
8087
|
"div",
|
|
7690
8088
|
{
|
|
7691
8089
|
ref,
|
|
@@ -7696,8 +8094,8 @@ var QuizHeaderResult = forwardRef19(
|
|
|
7696
8094
|
),
|
|
7697
8095
|
...props,
|
|
7698
8096
|
children: [
|
|
7699
|
-
/* @__PURE__ */
|
|
7700
|
-
/* @__PURE__ */
|
|
8097
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
|
|
8098
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
|
|
7701
8099
|
]
|
|
7702
8100
|
}
|
|
7703
8101
|
);
|
|
@@ -7710,12 +8108,12 @@ var QuizTitle = forwardRef19(
|
|
|
7710
8108
|
getTotalQuestions,
|
|
7711
8109
|
getQuizTitle,
|
|
7712
8110
|
timeElapsed,
|
|
7713
|
-
formatTime,
|
|
8111
|
+
formatTime: formatTime2,
|
|
7714
8112
|
isStarted
|
|
7715
8113
|
} = useQuizStore();
|
|
7716
8114
|
const totalQuestions = getTotalQuestions();
|
|
7717
8115
|
const quizTitle = getQuizTitle();
|
|
7718
|
-
return /* @__PURE__ */
|
|
8116
|
+
return /* @__PURE__ */ jsxs31(
|
|
7719
8117
|
"div",
|
|
7720
8118
|
{
|
|
7721
8119
|
ref,
|
|
@@ -7725,11 +8123,11 @@ var QuizTitle = forwardRef19(
|
|
|
7725
8123
|
),
|
|
7726
8124
|
...props,
|
|
7727
8125
|
children: [
|
|
7728
|
-
/* @__PURE__ */
|
|
7729
|
-
/* @__PURE__ */
|
|
7730
|
-
/* @__PURE__ */
|
|
8126
|
+
/* @__PURE__ */ jsxs31("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
8127
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
8128
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
7731
8129
|
] }),
|
|
7732
|
-
/* @__PURE__ */
|
|
8130
|
+
/* @__PURE__ */ jsx38("span", { className: "absolute right-2", children: /* @__PURE__ */ jsx38(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx38(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
7733
8131
|
]
|
|
7734
8132
|
}
|
|
7735
8133
|
);
|
|
@@ -7737,13 +8135,13 @@ var QuizTitle = forwardRef19(
|
|
|
7737
8135
|
);
|
|
7738
8136
|
var QuizSubTitle = forwardRef19(
|
|
7739
8137
|
({ subTitle, ...props }, ref) => {
|
|
7740
|
-
return /* @__PURE__ */
|
|
8138
|
+
return /* @__PURE__ */ jsx38("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx38("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
|
|
7741
8139
|
}
|
|
7742
8140
|
);
|
|
7743
8141
|
var QuizHeader = () => {
|
|
7744
8142
|
const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
|
|
7745
8143
|
const currentQuestion = getCurrentQuestion();
|
|
7746
|
-
return /* @__PURE__ */
|
|
8144
|
+
return /* @__PURE__ */ jsx38(
|
|
7747
8145
|
HeaderAlternative,
|
|
7748
8146
|
{
|
|
7749
8147
|
title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
|
|
@@ -7753,7 +8151,7 @@ var QuizHeader = () => {
|
|
|
7753
8151
|
);
|
|
7754
8152
|
};
|
|
7755
8153
|
var QuizContainer = forwardRef19(({ children, className, ...props }, ref) => {
|
|
7756
|
-
return /* @__PURE__ */
|
|
8154
|
+
return /* @__PURE__ */ jsx38(
|
|
7757
8155
|
"div",
|
|
7758
8156
|
{
|
|
7759
8157
|
ref,
|
|
@@ -7766,8 +8164,8 @@ var QuizContainer = forwardRef19(({ children, className, ...props }, ref) => {
|
|
|
7766
8164
|
}
|
|
7767
8165
|
);
|
|
7768
8166
|
});
|
|
7769
|
-
var QuizContent = forwardRef19(({
|
|
7770
|
-
const { getCurrentQuestion } = useQuizStore();
|
|
8167
|
+
var QuizContent = forwardRef19(({ paddingBottom }) => {
|
|
8168
|
+
const { getCurrentQuestion, variant } = useQuizStore();
|
|
7771
8169
|
const currentQuestion = getCurrentQuestion();
|
|
7772
8170
|
const questionComponents = {
|
|
7773
8171
|
["ALTERNATIVA" /* ALTERNATIVA */]: QuizAlternative,
|
|
@@ -7779,7 +8177,7 @@ var QuizContent = forwardRef19(({ variant, paddingBottom }) => {
|
|
|
7779
8177
|
["IMAGEM" /* IMAGEM */]: QuizImageQuestion
|
|
7780
8178
|
};
|
|
7781
8179
|
const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.type] : null;
|
|
7782
|
-
return QuestionComponent ? /* @__PURE__ */
|
|
8180
|
+
return QuestionComponent ? /* @__PURE__ */ jsx38(QuestionComponent, { variant, paddingBottom }) : null;
|
|
7783
8181
|
});
|
|
7784
8182
|
var QuizAlternative = ({
|
|
7785
8183
|
variant = "default",
|
|
@@ -7807,10 +8205,10 @@ var QuizAlternative = ({
|
|
|
7807
8205
|
};
|
|
7808
8206
|
});
|
|
7809
8207
|
if (!alternatives)
|
|
7810
|
-
return /* @__PURE__ */
|
|
7811
|
-
return /* @__PURE__ */
|
|
7812
|
-
/* @__PURE__ */
|
|
7813
|
-
/* @__PURE__ */
|
|
8208
|
+
return /* @__PURE__ */ jsx38("div", { children: /* @__PURE__ */ jsx38("p", { children: "N\xE3o h\xE1 Alternativas" }) });
|
|
8209
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8210
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8211
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx38("div", { className: "space-y-4", children: /* @__PURE__ */ jsx38(
|
|
7814
8212
|
AlternativesList,
|
|
7815
8213
|
{
|
|
7816
8214
|
mode: variant === "default" ? "interactive" : "readonly",
|
|
@@ -7836,8 +8234,8 @@ var QuizMultipleChoice = ({
|
|
|
7836
8234
|
const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
|
|
7837
8235
|
const currentQuestion = getCurrentQuestion();
|
|
7838
8236
|
const allCurrentAnswers = getAllCurrentAnswer();
|
|
7839
|
-
const prevSelectedValuesRef =
|
|
7840
|
-
const prevQuestionIdRef =
|
|
8237
|
+
const prevSelectedValuesRef = useRef10([]);
|
|
8238
|
+
const prevQuestionIdRef = useRef10("");
|
|
7841
8239
|
const allCurrentAnswerIds = useMemo6(() => {
|
|
7842
8240
|
return allCurrentAnswers?.map((answer) => answer.optionId) || [];
|
|
7843
8241
|
}, [allCurrentAnswers]);
|
|
@@ -7888,10 +8286,10 @@ var QuizMultipleChoice = ({
|
|
|
7888
8286
|
};
|
|
7889
8287
|
});
|
|
7890
8288
|
if (!choices)
|
|
7891
|
-
return /* @__PURE__ */
|
|
7892
|
-
return /* @__PURE__ */
|
|
7893
|
-
/* @__PURE__ */
|
|
7894
|
-
/* @__PURE__ */
|
|
8289
|
+
return /* @__PURE__ */ jsx38("div", { children: /* @__PURE__ */ jsx38("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
|
|
8290
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8291
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8292
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx38("div", { className: "space-y-4", children: /* @__PURE__ */ jsx38(
|
|
7895
8293
|
MultipleChoiceList,
|
|
7896
8294
|
{
|
|
7897
8295
|
choices,
|
|
@@ -7911,7 +8309,7 @@ var QuizDissertative = ({
|
|
|
7911
8309
|
const { getCurrentQuestion, getCurrentAnswer, selectDissertativeAnswer } = useQuizStore();
|
|
7912
8310
|
const currentQuestion = getCurrentQuestion();
|
|
7913
8311
|
const currentAnswer = getCurrentAnswer();
|
|
7914
|
-
const textareaRef =
|
|
8312
|
+
const textareaRef = useRef10(null);
|
|
7915
8313
|
const handleAnswerChange = (value) => {
|
|
7916
8314
|
if (currentQuestion) {
|
|
7917
8315
|
selectDissertativeAnswer(currentQuestion.id, value);
|
|
@@ -7927,15 +8325,15 @@ var QuizDissertative = ({
|
|
|
7927
8325
|
textareaRef.current.style.height = `${newHeight}px`;
|
|
7928
8326
|
}
|
|
7929
8327
|
}, []);
|
|
7930
|
-
|
|
8328
|
+
useEffect14(() => {
|
|
7931
8329
|
adjustTextareaHeight();
|
|
7932
8330
|
}, [currentAnswer, adjustTextareaHeight]);
|
|
7933
8331
|
if (!currentQuestion) {
|
|
7934
|
-
return /* @__PURE__ */
|
|
8332
|
+
return /* @__PURE__ */ jsx38("div", { className: "space-y-4", children: /* @__PURE__ */ jsx38("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
|
|
7935
8333
|
}
|
|
7936
|
-
return /* @__PURE__ */
|
|
7937
|
-
/* @__PURE__ */
|
|
7938
|
-
/* @__PURE__ */
|
|
8334
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8335
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Resposta" }),
|
|
8336
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx38("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx38("div", { className: "space-y-4", children: /* @__PURE__ */ jsx38(
|
|
7939
8337
|
TextArea_default,
|
|
7940
8338
|
{
|
|
7941
8339
|
ref: textareaRef,
|
|
@@ -7945,10 +8343,10 @@ var QuizDissertative = ({
|
|
|
7945
8343
|
rows: 4,
|
|
7946
8344
|
className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
|
|
7947
8345
|
}
|
|
7948
|
-
) }) : /* @__PURE__ */
|
|
7949
|
-
variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */
|
|
7950
|
-
/* @__PURE__ */
|
|
7951
|
-
/* @__PURE__ */
|
|
8346
|
+
) }) : /* @__PURE__ */ jsx38("div", { className: "space-y-4", children: /* @__PURE__ */ jsx38("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
|
|
8347
|
+
variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8348
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
|
|
8349
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx38("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Mauris euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim." }) })
|
|
7952
8350
|
] })
|
|
7953
8351
|
] });
|
|
7954
8352
|
};
|
|
@@ -7976,16 +8374,16 @@ var QuizTrueOrFalse = ({
|
|
|
7976
8374
|
];
|
|
7977
8375
|
const getLetterByIndex = (index) => String.fromCharCode(97 + index);
|
|
7978
8376
|
const isDefaultVariant = variant == "default";
|
|
7979
|
-
return /* @__PURE__ */
|
|
7980
|
-
/* @__PURE__ */
|
|
7981
|
-
/* @__PURE__ */
|
|
8377
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8378
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8379
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx38("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
7982
8380
|
const variantCorrect = option.isCorrect ? "correct" : "incorrect";
|
|
7983
|
-
return /* @__PURE__ */
|
|
8381
|
+
return /* @__PURE__ */ jsxs31(
|
|
7984
8382
|
"section",
|
|
7985
8383
|
{
|
|
7986
8384
|
className: "flex flex-col gap-2",
|
|
7987
8385
|
children: [
|
|
7988
|
-
/* @__PURE__ */
|
|
8386
|
+
/* @__PURE__ */ jsxs31(
|
|
7989
8387
|
"div",
|
|
7990
8388
|
{
|
|
7991
8389
|
className: cn(
|
|
@@ -7993,20 +8391,20 @@ var QuizTrueOrFalse = ({
|
|
|
7993
8391
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
7994
8392
|
),
|
|
7995
8393
|
children: [
|
|
7996
|
-
/* @__PURE__ */
|
|
7997
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
7998
|
-
/* @__PURE__ */
|
|
7999
|
-
/* @__PURE__ */
|
|
8000
|
-
/* @__PURE__ */
|
|
8001
|
-
/* @__PURE__ */
|
|
8394
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
|
|
8395
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs31(Select_default, { size: "medium", children: [
|
|
8396
|
+
/* @__PURE__ */ jsx38(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx38(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
|
|
8397
|
+
/* @__PURE__ */ jsxs31(SelectContent, { children: [
|
|
8398
|
+
/* @__PURE__ */ jsx38(SelectItem, { value: "V", children: "Verdadeiro" }),
|
|
8399
|
+
/* @__PURE__ */ jsx38(SelectItem, { value: "F", children: "Falso" })
|
|
8002
8400
|
] })
|
|
8003
|
-
] }) : /* @__PURE__ */
|
|
8401
|
+
] }) : /* @__PURE__ */ jsx38("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
|
|
8004
8402
|
]
|
|
8005
8403
|
}
|
|
8006
8404
|
),
|
|
8007
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
8008
|
-
/* @__PURE__ */
|
|
8009
|
-
!option.isCorrect && /* @__PURE__ */
|
|
8405
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs31("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
8406
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
|
|
8407
|
+
!option.isCorrect && /* @__PURE__ */ jsx38("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
|
|
8010
8408
|
] })
|
|
8011
8409
|
]
|
|
8012
8410
|
},
|
|
@@ -8069,7 +8467,7 @@ var QuizConnectDots = ({
|
|
|
8069
8467
|
isCorrect: false
|
|
8070
8468
|
}
|
|
8071
8469
|
];
|
|
8072
|
-
const [userAnswers, setUserAnswers] =
|
|
8470
|
+
const [userAnswers, setUserAnswers] = useState15(() => {
|
|
8073
8471
|
if (variant === "result") {
|
|
8074
8472
|
return mockUserAnswers;
|
|
8075
8473
|
}
|
|
@@ -8098,13 +8496,13 @@ var QuizConnectDots = ({
|
|
|
8098
8496
|
const assignedDots = new Set(
|
|
8099
8497
|
userAnswers.map((a) => a.dotOption).filter(Boolean)
|
|
8100
8498
|
);
|
|
8101
|
-
return /* @__PURE__ */
|
|
8102
|
-
/* @__PURE__ */
|
|
8103
|
-
/* @__PURE__ */
|
|
8499
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8500
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8501
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx38("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
8104
8502
|
const answer = userAnswers[index];
|
|
8105
8503
|
const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
|
|
8106
|
-
return /* @__PURE__ */
|
|
8107
|
-
/* @__PURE__ */
|
|
8504
|
+
return /* @__PURE__ */ jsxs31("section", { className: "flex flex-col gap-2", children: [
|
|
8505
|
+
/* @__PURE__ */ jsxs31(
|
|
8108
8506
|
"div",
|
|
8109
8507
|
{
|
|
8110
8508
|
className: cn(
|
|
@@ -8112,30 +8510,30 @@ var QuizConnectDots = ({
|
|
|
8112
8510
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
8113
8511
|
),
|
|
8114
8512
|
children: [
|
|
8115
|
-
/* @__PURE__ */
|
|
8116
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
8513
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
|
|
8514
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs31(
|
|
8117
8515
|
Select_default,
|
|
8118
8516
|
{
|
|
8119
8517
|
size: "medium",
|
|
8120
8518
|
value: answer.dotOption || void 0,
|
|
8121
8519
|
onValueChange: (value) => handleSelectDot(index, value),
|
|
8122
8520
|
children: [
|
|
8123
|
-
/* @__PURE__ */
|
|
8124
|
-
/* @__PURE__ */
|
|
8521
|
+
/* @__PURE__ */ jsx38(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx38(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
8522
|
+
/* @__PURE__ */ jsx38(SelectContent, { children: dotsOptions.filter(
|
|
8125
8523
|
(dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
|
|
8126
|
-
).map((dot) => /* @__PURE__ */
|
|
8524
|
+
).map((dot) => /* @__PURE__ */ jsx38(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
|
|
8127
8525
|
]
|
|
8128
8526
|
}
|
|
8129
|
-
) : /* @__PURE__ */
|
|
8527
|
+
) : /* @__PURE__ */ jsx38("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
|
|
8130
8528
|
]
|
|
8131
8529
|
}
|
|
8132
8530
|
),
|
|
8133
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
8134
|
-
/* @__PURE__ */
|
|
8531
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs31("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
8532
|
+
/* @__PURE__ */ jsxs31("p", { className: "text-text-800 text-2xs", children: [
|
|
8135
8533
|
"Resposta selecionada: ",
|
|
8136
8534
|
answer.dotOption || "Nenhuma"
|
|
8137
8535
|
] }),
|
|
8138
|
-
!answer.isCorrect && /* @__PURE__ */
|
|
8536
|
+
!answer.isCorrect && /* @__PURE__ */ jsxs31("p", { className: "text-text-800 text-2xs", children: [
|
|
8139
8537
|
"Resposta correta: ",
|
|
8140
8538
|
answer.correctOption
|
|
8141
8539
|
] })
|
|
@@ -8190,7 +8588,7 @@ var QuizFill = ({
|
|
|
8190
8588
|
isCorrect: true
|
|
8191
8589
|
}
|
|
8192
8590
|
];
|
|
8193
|
-
const [answers, setAnswers] =
|
|
8591
|
+
const [answers, setAnswers] = useState15({});
|
|
8194
8592
|
const baseId = useId10();
|
|
8195
8593
|
const getAvailableOptionsForSelect = (selectId) => {
|
|
8196
8594
|
const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
|
|
@@ -8204,18 +8602,18 @@ var QuizFill = ({
|
|
|
8204
8602
|
const mockAnswer = mockUserAnswers.find(
|
|
8205
8603
|
(answer) => answer.selectId === selectId
|
|
8206
8604
|
);
|
|
8207
|
-
return /* @__PURE__ */
|
|
8605
|
+
return /* @__PURE__ */ jsx38("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
|
|
8208
8606
|
};
|
|
8209
8607
|
const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
|
|
8210
|
-
return /* @__PURE__ */
|
|
8608
|
+
return /* @__PURE__ */ jsxs31(
|
|
8211
8609
|
Select_default,
|
|
8212
8610
|
{
|
|
8213
8611
|
value: selectedValue,
|
|
8214
8612
|
onValueChange: (value) => handleSelectChange(selectId, value),
|
|
8215
8613
|
className: "inline-flex mb-2.5",
|
|
8216
8614
|
children: [
|
|
8217
|
-
/* @__PURE__ */
|
|
8218
|
-
/* @__PURE__ */
|
|
8615
|
+
/* @__PURE__ */ jsx38(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ jsx38(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
8616
|
+
/* @__PURE__ */ jsx38(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx38(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
|
|
8219
8617
|
]
|
|
8220
8618
|
},
|
|
8221
8619
|
`${selectId}-${startIndex}`
|
|
@@ -8227,8 +8625,8 @@ var QuizFill = ({
|
|
|
8227
8625
|
);
|
|
8228
8626
|
if (!mockAnswer) return null;
|
|
8229
8627
|
const action = mockAnswer.isCorrect ? "success" : "error";
|
|
8230
|
-
const icon = mockAnswer.isCorrect ? /* @__PURE__ */
|
|
8231
|
-
return /* @__PURE__ */
|
|
8628
|
+
const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx38(CheckCircle6, {}) : /* @__PURE__ */ jsx38(XCircle5, {});
|
|
8629
|
+
return /* @__PURE__ */ jsx38(
|
|
8232
8630
|
Badge_default,
|
|
8233
8631
|
{
|
|
8234
8632
|
variant: "solid",
|
|
@@ -8236,7 +8634,7 @@ var QuizFill = ({
|
|
|
8236
8634
|
iconRight: icon,
|
|
8237
8635
|
size: "large",
|
|
8238
8636
|
className: "py-3 w-[180px] justify-between mb-2.5",
|
|
8239
|
-
children: /* @__PURE__ */
|
|
8637
|
+
children: /* @__PURE__ */ jsx38("span", { className: "text-text-900", children: mockAnswer.userAnswer })
|
|
8240
8638
|
},
|
|
8241
8639
|
selectId
|
|
8242
8640
|
);
|
|
@@ -8292,25 +8690,25 @@ var QuizFill = ({
|
|
|
8292
8690
|
}
|
|
8293
8691
|
return elements;
|
|
8294
8692
|
};
|
|
8295
|
-
return /* @__PURE__ */
|
|
8296
|
-
/* @__PURE__ */
|
|
8297
|
-
/* @__PURE__ */
|
|
8693
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8694
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
8695
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx38("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx38(
|
|
8298
8696
|
"div",
|
|
8299
8697
|
{
|
|
8300
8698
|
className: cn(
|
|
8301
8699
|
"text-lg text-text-900 leading-8 h-auto",
|
|
8302
8700
|
variant != "result" && paddingBottom
|
|
8303
8701
|
),
|
|
8304
|
-
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */
|
|
8702
|
+
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx38("span", { children: element.element }, element.id))
|
|
8305
8703
|
}
|
|
8306
8704
|
) }) }),
|
|
8307
|
-
variant === "result" && /* @__PURE__ */
|
|
8308
|
-
/* @__PURE__ */
|
|
8309
|
-
/* @__PURE__ */
|
|
8705
|
+
variant === "result" && /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8706
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Resultado" }),
|
|
8707
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx38("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx38(
|
|
8310
8708
|
"div",
|
|
8311
8709
|
{
|
|
8312
8710
|
className: cn("text-lg text-text-900 leading-8", paddingBottom),
|
|
8313
|
-
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */
|
|
8711
|
+
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx38("span", { children: element.element }, element.id))
|
|
8314
8712
|
}
|
|
8315
8713
|
) }) })
|
|
8316
8714
|
] })
|
|
@@ -8330,7 +8728,7 @@ var QuizImageQuestion = ({
|
|
|
8330
8728
|
};
|
|
8331
8729
|
const correctRadiusRelative = calculateCorrectRadiusRelative();
|
|
8332
8730
|
const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
|
|
8333
|
-
const [clickPositionRelative, setClickPositionRelative] =
|
|
8731
|
+
const [clickPositionRelative, setClickPositionRelative] = useState15(variant == "result" ? mockUserAnswerRelative : null);
|
|
8334
8732
|
const convertToRelativeCoordinates = (x, y, rect) => {
|
|
8335
8733
|
const safeWidth = Math.max(rect.width, 1e-3);
|
|
8336
8734
|
const safeHeight = Math.max(rect.height, 1e-3);
|
|
@@ -8366,36 +8764,36 @@ var QuizImageQuestion = ({
|
|
|
8366
8764
|
}
|
|
8367
8765
|
return "bg-success-600/70 border-white";
|
|
8368
8766
|
};
|
|
8369
|
-
return /* @__PURE__ */
|
|
8370
|
-
/* @__PURE__ */
|
|
8371
|
-
/* @__PURE__ */
|
|
8767
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8768
|
+
/* @__PURE__ */ jsx38(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
|
|
8769
|
+
/* @__PURE__ */ jsx38(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs31(
|
|
8372
8770
|
"div",
|
|
8373
8771
|
{
|
|
8374
8772
|
"data-testid": "quiz-image-container",
|
|
8375
8773
|
className: "space-y-6 p-3 relative inline-block",
|
|
8376
8774
|
children: [
|
|
8377
|
-
variant == "result" && /* @__PURE__ */
|
|
8775
|
+
variant == "result" && /* @__PURE__ */ jsxs31(
|
|
8378
8776
|
"div",
|
|
8379
8777
|
{
|
|
8380
8778
|
"data-testid": "quiz-legend",
|
|
8381
8779
|
className: "flex items-center gap-4 text-xs",
|
|
8382
8780
|
children: [
|
|
8383
|
-
/* @__PURE__ */
|
|
8384
|
-
/* @__PURE__ */
|
|
8385
|
-
/* @__PURE__ */
|
|
8781
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
8782
|
+
/* @__PURE__ */ jsx38("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
|
|
8783
|
+
/* @__PURE__ */ jsx38("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
|
|
8386
8784
|
] }),
|
|
8387
|
-
/* @__PURE__ */
|
|
8388
|
-
/* @__PURE__ */
|
|
8389
|
-
/* @__PURE__ */
|
|
8785
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
8786
|
+
/* @__PURE__ */ jsx38("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
|
|
8787
|
+
/* @__PURE__ */ jsx38("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
|
|
8390
8788
|
] }),
|
|
8391
|
-
/* @__PURE__ */
|
|
8392
|
-
/* @__PURE__ */
|
|
8393
|
-
/* @__PURE__ */
|
|
8789
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
8790
|
+
/* @__PURE__ */ jsx38("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
|
|
8791
|
+
/* @__PURE__ */ jsx38("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
|
|
8394
8792
|
] })
|
|
8395
8793
|
]
|
|
8396
8794
|
}
|
|
8397
8795
|
),
|
|
8398
|
-
/* @__PURE__ */
|
|
8796
|
+
/* @__PURE__ */ jsxs31(
|
|
8399
8797
|
"button",
|
|
8400
8798
|
{
|
|
8401
8799
|
"data-testid": "quiz-image-button",
|
|
@@ -8410,7 +8808,7 @@ var QuizImageQuestion = ({
|
|
|
8410
8808
|
},
|
|
8411
8809
|
"aria-label": "\xC1rea da imagem interativa",
|
|
8412
8810
|
children: [
|
|
8413
|
-
/* @__PURE__ */
|
|
8811
|
+
/* @__PURE__ */ jsx38(
|
|
8414
8812
|
"img",
|
|
8415
8813
|
{
|
|
8416
8814
|
"data-testid": "quiz-image",
|
|
@@ -8419,7 +8817,7 @@ var QuizImageQuestion = ({
|
|
|
8419
8817
|
className: "w-full h-auto rounded-md"
|
|
8420
8818
|
}
|
|
8421
8819
|
),
|
|
8422
|
-
variant === "result" && /* @__PURE__ */
|
|
8820
|
+
variant === "result" && /* @__PURE__ */ jsx38(
|
|
8423
8821
|
"div",
|
|
8424
8822
|
{
|
|
8425
8823
|
"data-testid": "quiz-correct-circle",
|
|
@@ -8434,7 +8832,7 @@ var QuizImageQuestion = ({
|
|
|
8434
8832
|
}
|
|
8435
8833
|
}
|
|
8436
8834
|
),
|
|
8437
|
-
clickPositionRelative && /* @__PURE__ */
|
|
8835
|
+
clickPositionRelative && /* @__PURE__ */ jsx38(
|
|
8438
8836
|
"div",
|
|
8439
8837
|
{
|
|
8440
8838
|
"data-testid": "quiz-user-circle",
|
|
@@ -8502,16 +8900,16 @@ var QuizQuestionList = ({
|
|
|
8502
8900
|
return "Em branco";
|
|
8503
8901
|
}
|
|
8504
8902
|
};
|
|
8505
|
-
return /* @__PURE__ */
|
|
8506
|
-
([subjectId, questions]) => /* @__PURE__ */
|
|
8507
|
-
/* @__PURE__ */
|
|
8508
|
-
/* @__PURE__ */
|
|
8509
|
-
/* @__PURE__ */
|
|
8903
|
+
return /* @__PURE__ */ jsx38("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
|
|
8904
|
+
([subjectId, questions]) => /* @__PURE__ */ jsxs31("section", { className: "flex flex-col gap-2", children: [
|
|
8905
|
+
/* @__PURE__ */ jsxs31("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
|
|
8906
|
+
/* @__PURE__ */ jsx38("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx38(BookOpen, { size: 17, className: "text-white" }) }),
|
|
8907
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
|
|
8510
8908
|
] }),
|
|
8511
|
-
/* @__PURE__ */
|
|
8909
|
+
/* @__PURE__ */ jsx38("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
|
|
8512
8910
|
const status = getQuestionStatus(question.id);
|
|
8513
8911
|
const questionNumber = getQuestionIndex(question.id);
|
|
8514
|
-
return /* @__PURE__ */
|
|
8912
|
+
return /* @__PURE__ */ jsx38(
|
|
8515
8913
|
CardStatus,
|
|
8516
8914
|
{
|
|
8517
8915
|
header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
|
|
@@ -8533,7 +8931,6 @@ var QuizFooter = forwardRef19(
|
|
|
8533
8931
|
onGoToSimulated,
|
|
8534
8932
|
onDetailResult,
|
|
8535
8933
|
handleFinishSimulated,
|
|
8536
|
-
variant = "default",
|
|
8537
8934
|
...props
|
|
8538
8935
|
}, ref) => {
|
|
8539
8936
|
const {
|
|
@@ -8547,6 +8944,7 @@ var QuizFooter = forwardRef19(
|
|
|
8547
8944
|
skipQuestion,
|
|
8548
8945
|
getCurrentQuestion,
|
|
8549
8946
|
getQuestionStatusFromUserAnswers,
|
|
8947
|
+
variant,
|
|
8550
8948
|
getActiveQuiz
|
|
8551
8949
|
} = useQuizStore();
|
|
8552
8950
|
const totalQuestions = getTotalQuestions();
|
|
@@ -8555,10 +8953,11 @@ var QuizFooter = forwardRef19(
|
|
|
8555
8953
|
const currentAnswer = getCurrentAnswer();
|
|
8556
8954
|
const currentQuestion = getCurrentQuestion();
|
|
8557
8955
|
const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
|
|
8558
|
-
const [alertDialogOpen, setAlertDialogOpen] =
|
|
8559
|
-
const [modalResultOpen, setModalResultOpen] =
|
|
8560
|
-
const [modalNavigateOpen, setModalNavigateOpen] =
|
|
8561
|
-
const [
|
|
8956
|
+
const [alertDialogOpen, setAlertDialogOpen] = useState15(false);
|
|
8957
|
+
const [modalResultOpen, setModalResultOpen] = useState15(false);
|
|
8958
|
+
const [modalNavigateOpen, setModalNavigateOpen] = useState15(false);
|
|
8959
|
+
const [modalResolutionOpen, setModalResolutionOpen] = useState15(false);
|
|
8960
|
+
const [filterType, setFilterType] = useState15("all");
|
|
8562
8961
|
const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
|
|
8563
8962
|
const userAnswers = getUserAnswers();
|
|
8564
8963
|
const allQuestions = getTotalQuestions();
|
|
@@ -8590,8 +8989,8 @@ var QuizFooter = forwardRef19(
|
|
|
8590
8989
|
setAlertDialogOpen(false);
|
|
8591
8990
|
}
|
|
8592
8991
|
};
|
|
8593
|
-
return /* @__PURE__ */
|
|
8594
|
-
/* @__PURE__ */
|
|
8992
|
+
return /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
8993
|
+
/* @__PURE__ */ jsx38(
|
|
8595
8994
|
"footer",
|
|
8596
8995
|
{
|
|
8597
8996
|
ref,
|
|
@@ -8600,17 +8999,17 @@ var QuizFooter = forwardRef19(
|
|
|
8600
8999
|
className
|
|
8601
9000
|
),
|
|
8602
9001
|
...props,
|
|
8603
|
-
children: variant === "default" ? /* @__PURE__ */
|
|
8604
|
-
/* @__PURE__ */
|
|
8605
|
-
/* @__PURE__ */
|
|
9002
|
+
children: variant === "default" ? /* @__PURE__ */ jsxs31(Fragment8, { children: [
|
|
9003
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex flex-row items-center gap-1", children: [
|
|
9004
|
+
/* @__PURE__ */ jsx38(
|
|
8606
9005
|
IconButton_default,
|
|
8607
9006
|
{
|
|
8608
|
-
icon: /* @__PURE__ */
|
|
9007
|
+
icon: /* @__PURE__ */ jsx38(SquaresFour, { size: 24, className: "text-text-950" }),
|
|
8609
9008
|
size: "md",
|
|
8610
9009
|
onClick: () => setModalNavigateOpen(true)
|
|
8611
9010
|
}
|
|
8612
9011
|
),
|
|
8613
|
-
isFirstQuestion ? /* @__PURE__ */
|
|
9012
|
+
isFirstQuestion ? /* @__PURE__ */ jsx38(
|
|
8614
9013
|
Button_default,
|
|
8615
9014
|
{
|
|
8616
9015
|
variant: "outline",
|
|
@@ -8621,13 +9020,13 @@ var QuizFooter = forwardRef19(
|
|
|
8621
9020
|
},
|
|
8622
9021
|
children: "Pular"
|
|
8623
9022
|
}
|
|
8624
|
-
) : /* @__PURE__ */
|
|
9023
|
+
) : /* @__PURE__ */ jsx38(
|
|
8625
9024
|
Button_default,
|
|
8626
9025
|
{
|
|
8627
9026
|
size: "medium",
|
|
8628
9027
|
variant: "link",
|
|
8629
9028
|
action: "primary",
|
|
8630
|
-
iconLeft: /* @__PURE__ */
|
|
9029
|
+
iconLeft: /* @__PURE__ */ jsx38(CaretLeft3, { size: 18 }),
|
|
8631
9030
|
onClick: () => {
|
|
8632
9031
|
goToPreviousQuestion();
|
|
8633
9032
|
},
|
|
@@ -8635,7 +9034,7 @@ var QuizFooter = forwardRef19(
|
|
|
8635
9034
|
}
|
|
8636
9035
|
)
|
|
8637
9036
|
] }),
|
|
8638
|
-
!isFirstQuestion && /* @__PURE__ */
|
|
9037
|
+
!isFirstQuestion && /* @__PURE__ */ jsx38(
|
|
8639
9038
|
Button_default,
|
|
8640
9039
|
{
|
|
8641
9040
|
size: "small",
|
|
@@ -8648,7 +9047,7 @@ var QuizFooter = forwardRef19(
|
|
|
8648
9047
|
children: "Pular"
|
|
8649
9048
|
}
|
|
8650
9049
|
),
|
|
8651
|
-
isLastQuestion ? /* @__PURE__ */
|
|
9050
|
+
isLastQuestion ? /* @__PURE__ */ jsx38(
|
|
8652
9051
|
Button_default,
|
|
8653
9052
|
{
|
|
8654
9053
|
size: "medium",
|
|
@@ -8658,13 +9057,13 @@ var QuizFooter = forwardRef19(
|
|
|
8658
9057
|
onClick: handleFinishQuiz,
|
|
8659
9058
|
children: "Finalizar"
|
|
8660
9059
|
}
|
|
8661
|
-
) : /* @__PURE__ */
|
|
9060
|
+
) : /* @__PURE__ */ jsx38(
|
|
8662
9061
|
Button_default,
|
|
8663
9062
|
{
|
|
8664
9063
|
size: "medium",
|
|
8665
9064
|
variant: "link",
|
|
8666
9065
|
action: "primary",
|
|
8667
|
-
iconRight: /* @__PURE__ */
|
|
9066
|
+
iconRight: /* @__PURE__ */ jsx38(CaretRight4, { size: 18 }),
|
|
8668
9067
|
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
8669
9068
|
onClick: () => {
|
|
8670
9069
|
goToNextQuestion();
|
|
@@ -8672,10 +9071,19 @@ var QuizFooter = forwardRef19(
|
|
|
8672
9071
|
children: "Avan\xE7ar"
|
|
8673
9072
|
}
|
|
8674
9073
|
)
|
|
8675
|
-
] }) : /* @__PURE__ */
|
|
9074
|
+
] }) : /* @__PURE__ */ jsx38("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx38(
|
|
9075
|
+
Button_default,
|
|
9076
|
+
{
|
|
9077
|
+
variant: "solid",
|
|
9078
|
+
action: "primary",
|
|
9079
|
+
size: "medium",
|
|
9080
|
+
onClick: () => setModalResolutionOpen(true),
|
|
9081
|
+
children: "Ver Resolu\xE7\xE3o"
|
|
9082
|
+
}
|
|
9083
|
+
) })
|
|
8676
9084
|
}
|
|
8677
9085
|
),
|
|
8678
|
-
/* @__PURE__ */
|
|
9086
|
+
/* @__PURE__ */ jsx38(
|
|
8679
9087
|
AlertDialog,
|
|
8680
9088
|
{
|
|
8681
9089
|
isOpen: alertDialogOpen,
|
|
@@ -8687,7 +9095,7 @@ var QuizFooter = forwardRef19(
|
|
|
8687
9095
|
onSubmit: handleAlertSubmit
|
|
8688
9096
|
}
|
|
8689
9097
|
),
|
|
8690
|
-
/* @__PURE__ */
|
|
9098
|
+
/* @__PURE__ */ jsx38(
|
|
8691
9099
|
Modal_default,
|
|
8692
9100
|
{
|
|
8693
9101
|
isOpen: modalResultOpen,
|
|
@@ -8697,8 +9105,8 @@ var QuizFooter = forwardRef19(
|
|
|
8697
9105
|
closeOnEscape: false,
|
|
8698
9106
|
hideCloseButton: true,
|
|
8699
9107
|
size: "md",
|
|
8700
|
-
children: /* @__PURE__ */
|
|
8701
|
-
/* @__PURE__ */
|
|
9108
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
9109
|
+
/* @__PURE__ */ jsx38(
|
|
8702
9110
|
"img",
|
|
8703
9111
|
{
|
|
8704
9112
|
src: simulated_result_default,
|
|
@@ -8706,9 +9114,9 @@ var QuizFooter = forwardRef19(
|
|
|
8706
9114
|
className: "w-[282px] h-auto object-cover"
|
|
8707
9115
|
}
|
|
8708
9116
|
),
|
|
8709
|
-
/* @__PURE__ */
|
|
8710
|
-
/* @__PURE__ */
|
|
8711
|
-
/* @__PURE__ */
|
|
9117
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
9118
|
+
/* @__PURE__ */ jsx38("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
|
|
9119
|
+
/* @__PURE__ */ jsxs31("p", { className: "text-text-500 font-sm", children: [
|
|
8712
9120
|
"Voc\xEA acertou",
|
|
8713
9121
|
" ",
|
|
8714
9122
|
(() => {
|
|
@@ -8730,8 +9138,8 @@ var QuizFooter = forwardRef19(
|
|
|
8730
9138
|
" quest\xF5es."
|
|
8731
9139
|
] })
|
|
8732
9140
|
] }),
|
|
8733
|
-
/* @__PURE__ */
|
|
8734
|
-
/* @__PURE__ */
|
|
9141
|
+
/* @__PURE__ */ jsxs31("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
9142
|
+
/* @__PURE__ */ jsx38(
|
|
8735
9143
|
Button_default,
|
|
8736
9144
|
{
|
|
8737
9145
|
variant: "outline",
|
|
@@ -8741,31 +9149,31 @@ var QuizFooter = forwardRef19(
|
|
|
8741
9149
|
children: "Ir para simulados"
|
|
8742
9150
|
}
|
|
8743
9151
|
),
|
|
8744
|
-
/* @__PURE__ */
|
|
9152
|
+
/* @__PURE__ */ jsx38(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
|
|
8745
9153
|
] })
|
|
8746
9154
|
] })
|
|
8747
9155
|
}
|
|
8748
9156
|
),
|
|
8749
|
-
/* @__PURE__ */
|
|
9157
|
+
/* @__PURE__ */ jsx38(
|
|
8750
9158
|
Modal_default,
|
|
8751
9159
|
{
|
|
8752
9160
|
isOpen: modalNavigateOpen,
|
|
8753
9161
|
onClose: () => setModalNavigateOpen(false),
|
|
8754
9162
|
title: "Quest\xF5es",
|
|
8755
9163
|
size: "lg",
|
|
8756
|
-
children: /* @__PURE__ */
|
|
8757
|
-
/* @__PURE__ */
|
|
8758
|
-
/* @__PURE__ */
|
|
8759
|
-
/* @__PURE__ */
|
|
8760
|
-
/* @__PURE__ */
|
|
8761
|
-
/* @__PURE__ */
|
|
8762
|
-
/* @__PURE__ */
|
|
8763
|
-
/* @__PURE__ */
|
|
8764
|
-
/* @__PURE__ */
|
|
9164
|
+
children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col w-full h-full", children: [
|
|
9165
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
|
|
9166
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
|
|
9167
|
+
/* @__PURE__ */ jsx38("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs31(Select_default, { value: filterType, onValueChange: setFilterType, children: [
|
|
9168
|
+
/* @__PURE__ */ jsx38(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ jsx38(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
|
|
9169
|
+
/* @__PURE__ */ jsxs31(SelectContent, { children: [
|
|
9170
|
+
/* @__PURE__ */ jsx38(SelectItem, { value: "all", children: "Todas" }),
|
|
9171
|
+
/* @__PURE__ */ jsx38(SelectItem, { value: "unanswered", children: "Em branco" }),
|
|
9172
|
+
/* @__PURE__ */ jsx38(SelectItem, { value: "answered", children: "Respondidas" })
|
|
8765
9173
|
] })
|
|
8766
9174
|
] }) })
|
|
8767
9175
|
] }),
|
|
8768
|
-
/* @__PURE__ */
|
|
9176
|
+
/* @__PURE__ */ jsx38("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ jsx38(
|
|
8769
9177
|
QuizQuestionList,
|
|
8770
9178
|
{
|
|
8771
9179
|
filterType,
|
|
@@ -8774,21 +9182,31 @@ var QuizFooter = forwardRef19(
|
|
|
8774
9182
|
) })
|
|
8775
9183
|
] })
|
|
8776
9184
|
}
|
|
9185
|
+
),
|
|
9186
|
+
/* @__PURE__ */ jsx38(
|
|
9187
|
+
Modal_default,
|
|
9188
|
+
{
|
|
9189
|
+
isOpen: modalResolutionOpen,
|
|
9190
|
+
onClose: () => setModalResolutionOpen(false),
|
|
9191
|
+
title: "Resolu\xE7\xE3o",
|
|
9192
|
+
size: "lg",
|
|
9193
|
+
children: currentQuestion?.answerKey
|
|
9194
|
+
}
|
|
8777
9195
|
)
|
|
8778
9196
|
] });
|
|
8779
9197
|
}
|
|
8780
9198
|
);
|
|
8781
9199
|
var QuizResultHeaderTitle = forwardRef19(({ className, ...props }, ref) => {
|
|
8782
9200
|
const { bySimulated } = useQuizStore();
|
|
8783
|
-
return /* @__PURE__ */
|
|
9201
|
+
return /* @__PURE__ */ jsxs31(
|
|
8784
9202
|
"div",
|
|
8785
9203
|
{
|
|
8786
9204
|
ref,
|
|
8787
9205
|
className: cn("flex flex-row pt-4 justify-between", className),
|
|
8788
9206
|
...props,
|
|
8789
9207
|
children: [
|
|
8790
|
-
/* @__PURE__ */
|
|
8791
|
-
bySimulated && /* @__PURE__ */
|
|
9208
|
+
/* @__PURE__ */ jsx38("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
9209
|
+
bySimulated && /* @__PURE__ */ jsx38(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
|
|
8792
9210
|
]
|
|
8793
9211
|
}
|
|
8794
9212
|
);
|
|
@@ -8796,7 +9214,7 @@ var QuizResultHeaderTitle = forwardRef19(({ className, ...props }, ref) => {
|
|
|
8796
9214
|
var QuizResultTitle = forwardRef19(({ className, ...props }, ref) => {
|
|
8797
9215
|
const { getQuizTitle } = useQuizStore();
|
|
8798
9216
|
const quizTitle = getQuizTitle();
|
|
8799
|
-
return /* @__PURE__ */
|
|
9217
|
+
return /* @__PURE__ */ jsx38(
|
|
8800
9218
|
"p",
|
|
8801
9219
|
{
|
|
8802
9220
|
className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
|
|
@@ -8811,7 +9229,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
8811
9229
|
const {
|
|
8812
9230
|
getTotalQuestions,
|
|
8813
9231
|
timeElapsed,
|
|
8814
|
-
formatTime,
|
|
9232
|
+
formatTime: formatTime2,
|
|
8815
9233
|
bySimulated,
|
|
8816
9234
|
byActivity,
|
|
8817
9235
|
byQuestionary,
|
|
@@ -8852,15 +9270,15 @@ var QuizResultPerformance = forwardRef19(
|
|
|
8852
9270
|
});
|
|
8853
9271
|
}
|
|
8854
9272
|
const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
|
|
8855
|
-
return /* @__PURE__ */
|
|
9273
|
+
return /* @__PURE__ */ jsxs31(
|
|
8856
9274
|
"div",
|
|
8857
9275
|
{
|
|
8858
9276
|
className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
|
|
8859
9277
|
ref,
|
|
8860
9278
|
...props,
|
|
8861
9279
|
children: [
|
|
8862
|
-
/* @__PURE__ */
|
|
8863
|
-
/* @__PURE__ */
|
|
9280
|
+
/* @__PURE__ */ jsxs31("div", { className: "relative", children: [
|
|
9281
|
+
/* @__PURE__ */ jsx38(
|
|
8864
9282
|
ProgressCircle_default,
|
|
8865
9283
|
{
|
|
8866
9284
|
size: "medium",
|
|
@@ -8870,21 +9288,21 @@ var QuizResultPerformance = forwardRef19(
|
|
|
8870
9288
|
label: ""
|
|
8871
9289
|
}
|
|
8872
9290
|
),
|
|
8873
|
-
/* @__PURE__ */
|
|
8874
|
-
/* @__PURE__ */
|
|
8875
|
-
/* @__PURE__ */
|
|
8876
|
-
/* @__PURE__ */
|
|
9291
|
+
/* @__PURE__ */ jsxs31("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
9292
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
9293
|
+
/* @__PURE__ */ jsx38(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
|
|
9294
|
+
/* @__PURE__ */ jsx38("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(timeElapsed) })
|
|
8877
9295
|
] }),
|
|
8878
|
-
/* @__PURE__ */
|
|
9296
|
+
/* @__PURE__ */ jsxs31("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
|
|
8879
9297
|
correctAnswers,
|
|
8880
9298
|
" de ",
|
|
8881
9299
|
totalQuestions
|
|
8882
9300
|
] }),
|
|
8883
|
-
/* @__PURE__ */
|
|
9301
|
+
/* @__PURE__ */ jsx38("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
|
|
8884
9302
|
] })
|
|
8885
9303
|
] }),
|
|
8886
|
-
/* @__PURE__ */
|
|
8887
|
-
/* @__PURE__ */
|
|
9304
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
9305
|
+
/* @__PURE__ */ jsx38(
|
|
8888
9306
|
ProgressBar_default,
|
|
8889
9307
|
{
|
|
8890
9308
|
className: "w-full",
|
|
@@ -8898,7 +9316,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
8898
9316
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
8899
9317
|
}
|
|
8900
9318
|
),
|
|
8901
|
-
/* @__PURE__ */
|
|
9319
|
+
/* @__PURE__ */ jsx38(
|
|
8902
9320
|
ProgressBar_default,
|
|
8903
9321
|
{
|
|
8904
9322
|
className: "w-full",
|
|
@@ -8912,7 +9330,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
8912
9330
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
8913
9331
|
}
|
|
8914
9332
|
),
|
|
8915
|
-
/* @__PURE__ */
|
|
9333
|
+
/* @__PURE__ */ jsx38(
|
|
8916
9334
|
ProgressBar_default,
|
|
8917
9335
|
{
|
|
8918
9336
|
className: "w-full",
|
|
@@ -8961,9 +9379,9 @@ var QuizListResult = forwardRef19(({ className, onSubjectClick, ...props }, ref)
|
|
|
8961
9379
|
};
|
|
8962
9380
|
}
|
|
8963
9381
|
);
|
|
8964
|
-
return /* @__PURE__ */
|
|
8965
|
-
/* @__PURE__ */
|
|
8966
|
-
/* @__PURE__ */
|
|
9382
|
+
return /* @__PURE__ */ jsxs31("section", { ref, className, ...props, children: [
|
|
9383
|
+
/* @__PURE__ */ jsx38("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
|
|
9384
|
+
/* @__PURE__ */ jsx38("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsx38(
|
|
8967
9385
|
CardResults,
|
|
8968
9386
|
{
|
|
8969
9387
|
onClick: () => onSubjectClick?.(subject.subject),
|
|
@@ -8971,7 +9389,7 @@ var QuizListResult = forwardRef19(({ className, onSubjectClick, ...props }, ref)
|
|
|
8971
9389
|
header: subject.subject,
|
|
8972
9390
|
correct_answers: subject.correct,
|
|
8973
9391
|
incorrect_answers: subject.incorrect,
|
|
8974
|
-
icon: /* @__PURE__ */
|
|
9392
|
+
icon: /* @__PURE__ */ jsx38(Book, { size: 20 }),
|
|
8975
9393
|
direction: "row"
|
|
8976
9394
|
}
|
|
8977
9395
|
) }, subject.subject)) })
|
|
@@ -8988,13 +9406,13 @@ var QuizListResultByMateria = ({
|
|
|
8988
9406
|
} = useQuizStore();
|
|
8989
9407
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
8990
9408
|
const answeredQuestions = groupedQuestions[subject] || [];
|
|
8991
|
-
return /* @__PURE__ */
|
|
8992
|
-
/* @__PURE__ */
|
|
8993
|
-
/* @__PURE__ */
|
|
8994
|
-
/* @__PURE__ */
|
|
8995
|
-
/* @__PURE__ */
|
|
9409
|
+
return /* @__PURE__ */ jsxs31("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
|
|
9410
|
+
/* @__PURE__ */ jsx38("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx38("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
|
|
9411
|
+
/* @__PURE__ */ jsxs31("section", { className: "flex flex-col ", children: [
|
|
9412
|
+
/* @__PURE__ */ jsx38("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
|
|
9413
|
+
/* @__PURE__ */ jsx38("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
|
|
8996
9414
|
const questionIndex = getQuestionIndex(question.id);
|
|
8997
|
-
return /* @__PURE__ */
|
|
9415
|
+
return /* @__PURE__ */ jsx38("li", { children: /* @__PURE__ */ jsx38(
|
|
8998
9416
|
CardStatus,
|
|
8999
9417
|
{
|
|
9000
9418
|
className: "max-w-full",
|
|
@@ -9020,7 +9438,6 @@ export {
|
|
|
9020
9438
|
AlternativesList,
|
|
9021
9439
|
AuthProvider,
|
|
9022
9440
|
Badge_default as Badge,
|
|
9023
|
-
Breadcrumb,
|
|
9024
9441
|
Button_default as Button,
|
|
9025
9442
|
Calendar_default as Calendar,
|
|
9026
9443
|
CardAccordation,
|
|
@@ -9107,6 +9524,7 @@ export {
|
|
|
9107
9524
|
TextArea_default as TextArea,
|
|
9108
9525
|
Toast_default as Toast,
|
|
9109
9526
|
Toaster_default as Toaster,
|
|
9527
|
+
VideoPlayer_default as VideoPlayer,
|
|
9110
9528
|
createZustandAuthAdapter,
|
|
9111
9529
|
getRootDomain,
|
|
9112
9530
|
getStatusBadge,
|