analytica-frontend-lib 1.1.5 → 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/index.js CHANGED
@@ -121,6 +121,7 @@ __export(src_exports, {
121
121
  TextArea: () => TextArea_default,
122
122
  Toast: () => Toast_default,
123
123
  Toaster: () => Toaster_default,
124
+ VideoPlayer: () => VideoPlayer_default,
124
125
  createZustandAuthAdapter: () => createZustandAuthAdapter,
125
126
  getRootDomain: () => getRootDomain,
126
127
  getStatusBadge: () => getStatusBadge,
@@ -4723,7 +4724,7 @@ var CardAudio = (0, import_react14.forwardRef)(
4723
4724
  const [volume, setVolume] = (0, import_react14.useState)(1);
4724
4725
  const [showVolumeControl, setShowVolumeControl] = (0, import_react14.useState)(false);
4725
4726
  const audioRef = (0, import_react14.useRef)(null);
4726
- const formatTime = (time) => {
4727
+ const formatTime2 = (time) => {
4727
4728
  const minutes = Math.floor(time / 60);
4728
4729
  const seconds = Math.floor(time % 60);
4729
4730
  return `${minutes}:${seconds.toString().padStart(2, "0")}`;
@@ -4841,7 +4842,7 @@ var CardAudio = (0, import_react14.forwardRef)(
4841
4842
  ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_phosphor_react12.Play, { size: 24 })
4842
4843
  }
4843
4844
  ),
4844
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(currentTime) }),
4845
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
4845
4846
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4846
4847
  "button",
4847
4848
  {
@@ -4868,7 +4869,7 @@ var CardAudio = (0, import_react14.forwardRef)(
4868
4869
  )
4869
4870
  }
4870
4871
  ) }),
4871
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(duration) }),
4872
+ /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
4872
4873
  /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "relative", children: [
4873
4874
  /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
4874
4875
  "button",
@@ -6819,11 +6820,436 @@ var NotFound = ({
6819
6820
  };
6820
6821
  var NotFound_default = NotFound;
6821
6822
 
6822
- // src/components/Auth/Auth.tsx
6823
+ // src/components/VideoPlayer/VideoPlayer.tsx
6823
6824
  var import_react22 = require("react");
6824
- var import_react_router_dom = require("react-router-dom");
6825
+ var import_phosphor_react18 = require("phosphor-react");
6825
6826
  var import_jsx_runtime36 = require("react/jsx-runtime");
6826
- var AuthContext = (0, import_react22.createContext)(void 0);
6827
+ var formatTime = (seconds) => {
6828
+ if (!seconds || isNaN(seconds)) return "0:00";
6829
+ const mins = Math.floor(seconds / 60);
6830
+ const secs = Math.floor(seconds % 60);
6831
+ return `${mins}:${secs.toString().padStart(2, "0")}`;
6832
+ };
6833
+ var VideoPlayer = ({
6834
+ src,
6835
+ poster,
6836
+ subtitles,
6837
+ title,
6838
+ subtitle: subtitleText,
6839
+ initialTime = 0,
6840
+ onTimeUpdate,
6841
+ onProgress,
6842
+ onVideoComplete,
6843
+ className,
6844
+ autoSave = true,
6845
+ storageKey = "video-progress"
6846
+ }) => {
6847
+ const videoRef = (0, import_react22.useRef)(null);
6848
+ const [isPlaying, setIsPlaying] = (0, import_react22.useState)(false);
6849
+ const [currentTime, setCurrentTime] = (0, import_react22.useState)(0);
6850
+ const [duration, setDuration] = (0, import_react22.useState)(0);
6851
+ const [isMuted, setIsMuted] = (0, import_react22.useState)(false);
6852
+ const [volume, setVolume] = (0, import_react22.useState)(1);
6853
+ const [isFullscreen, setIsFullscreen] = (0, import_react22.useState)(false);
6854
+ const [showControls, setShowControls] = (0, import_react22.useState)(true);
6855
+ const [hasCompleted, setHasCompleted] = (0, import_react22.useState)(false);
6856
+ const [showCaptions, setShowCaptions] = (0, import_react22.useState)(false);
6857
+ const [playbackRate, setPlaybackRate] = (0, import_react22.useState)(1);
6858
+ const [showSpeedMenu, setShowSpeedMenu] = (0, import_react22.useState)(false);
6859
+ const lastSaveTimeRef = (0, import_react22.useRef)(0);
6860
+ const trackRef = (0, import_react22.useRef)(null);
6861
+ (0, import_react22.useEffect)(() => {
6862
+ if (videoRef.current) {
6863
+ videoRef.current.volume = volume;
6864
+ videoRef.current.muted = isMuted;
6865
+ }
6866
+ }, [volume, isMuted]);
6867
+ (0, import_react22.useEffect)(() => {
6868
+ if (!autoSave || !storageKey) return;
6869
+ const raw = localStorage.getItem(`${storageKey}-${src}`);
6870
+ const saved = raw !== null ? Number(raw) : NaN;
6871
+ const hasValidSaved = Number.isFinite(saved) && saved >= 0;
6872
+ const hasValidInitial = Number.isFinite(initialTime) && initialTime >= 0;
6873
+ let start;
6874
+ if (hasValidInitial) {
6875
+ start = initialTime;
6876
+ } else if (hasValidSaved) {
6877
+ start = saved;
6878
+ } else {
6879
+ start = void 0;
6880
+ }
6881
+ if (start !== void 0 && videoRef.current) {
6882
+ videoRef.current.currentTime = start;
6883
+ setCurrentTime(start);
6884
+ }
6885
+ }, [src, storageKey, autoSave, initialTime]);
6886
+ const saveProgress = (0, import_react22.useCallback)(() => {
6887
+ if (!autoSave || !storageKey) return;
6888
+ const now = Date.now();
6889
+ if (now - lastSaveTimeRef.current > 5e3) {
6890
+ localStorage.setItem(`${storageKey}-${src}`, currentTime.toString());
6891
+ lastSaveTimeRef.current = now;
6892
+ }
6893
+ }, [autoSave, storageKey, src, currentTime]);
6894
+ const togglePlayPause = (0, import_react22.useCallback)(() => {
6895
+ if (videoRef.current) {
6896
+ if (isPlaying) {
6897
+ videoRef.current.pause();
6898
+ } else {
6899
+ videoRef.current.play();
6900
+ }
6901
+ setIsPlaying(!isPlaying);
6902
+ }
6903
+ }, [isPlaying]);
6904
+ const handleVolumeChange = (0, import_react22.useCallback)(
6905
+ (newVolume) => {
6906
+ if (videoRef.current) {
6907
+ const volumeValue = newVolume / 100;
6908
+ videoRef.current.volume = volumeValue;
6909
+ setVolume(volumeValue);
6910
+ if (volumeValue === 0) {
6911
+ videoRef.current.muted = true;
6912
+ setIsMuted(true);
6913
+ } else if (isMuted) {
6914
+ videoRef.current.muted = false;
6915
+ setIsMuted(false);
6916
+ }
6917
+ }
6918
+ },
6919
+ [isMuted]
6920
+ );
6921
+ const toggleMute = (0, import_react22.useCallback)(() => {
6922
+ if (videoRef.current) {
6923
+ if (isMuted) {
6924
+ const restoreVolume = volume > 0 ? volume : 0.5;
6925
+ videoRef.current.volume = restoreVolume;
6926
+ videoRef.current.muted = false;
6927
+ setVolume(restoreVolume);
6928
+ setIsMuted(false);
6929
+ } else {
6930
+ videoRef.current.muted = true;
6931
+ setIsMuted(true);
6932
+ }
6933
+ }
6934
+ }, [isMuted, volume]);
6935
+ const toggleFullscreen = (0, import_react22.useCallback)(() => {
6936
+ const container = videoRef.current?.parentElement;
6937
+ if (!container) return;
6938
+ if (!isFullscreen) {
6939
+ if (container.requestFullscreen) {
6940
+ container.requestFullscreen();
6941
+ }
6942
+ } else if (document.exitFullscreen) {
6943
+ document.exitFullscreen();
6944
+ }
6945
+ setIsFullscreen(!isFullscreen);
6946
+ }, [isFullscreen]);
6947
+ const handleSpeedChange = (0, import_react22.useCallback)((speed) => {
6948
+ if (videoRef.current) {
6949
+ videoRef.current.playbackRate = speed;
6950
+ setPlaybackRate(speed);
6951
+ setShowSpeedMenu(false);
6952
+ }
6953
+ }, []);
6954
+ const toggleSpeedMenu = (0, import_react22.useCallback)(() => {
6955
+ setShowSpeedMenu(!showSpeedMenu);
6956
+ }, [showSpeedMenu]);
6957
+ const toggleCaptions = (0, import_react22.useCallback)(() => {
6958
+ if (!trackRef.current?.track) return;
6959
+ const newShowCaptions = !showCaptions;
6960
+ setShowCaptions(newShowCaptions);
6961
+ trackRef.current.track.mode = newShowCaptions ? "showing" : "hidden";
6962
+ }, [showCaptions]);
6963
+ const handleTimeUpdate = (0, import_react22.useCallback)(() => {
6964
+ if (videoRef.current) {
6965
+ const current = videoRef.current.currentTime;
6966
+ setCurrentTime(current);
6967
+ saveProgress();
6968
+ onTimeUpdate?.(current);
6969
+ if (duration > 0) {
6970
+ const progressPercent = current / duration * 100;
6971
+ onProgress?.(progressPercent);
6972
+ if (progressPercent >= 95 && !hasCompleted) {
6973
+ setHasCompleted(true);
6974
+ onVideoComplete?.();
6975
+ }
6976
+ }
6977
+ }
6978
+ }, [
6979
+ duration,
6980
+ saveProgress,
6981
+ onTimeUpdate,
6982
+ onProgress,
6983
+ onVideoComplete,
6984
+ hasCompleted
6985
+ ]);
6986
+ const handleLoadedMetadata = (0, import_react22.useCallback)(() => {
6987
+ if (videoRef.current) {
6988
+ setDuration(videoRef.current.duration);
6989
+ }
6990
+ }, []);
6991
+ (0, import_react22.useEffect)(() => {
6992
+ const handleVisibilityChange = () => {
6993
+ if (document.hidden && isPlaying && videoRef.current) {
6994
+ videoRef.current.pause();
6995
+ setIsPlaying(false);
6996
+ }
6997
+ };
6998
+ const handleBlur = () => {
6999
+ if (isPlaying && videoRef.current) {
7000
+ videoRef.current.pause();
7001
+ setIsPlaying(false);
7002
+ }
7003
+ };
7004
+ document.addEventListener("visibilitychange", handleVisibilityChange);
7005
+ window.addEventListener("blur", handleBlur);
7006
+ return () => {
7007
+ document.removeEventListener("visibilitychange", handleVisibilityChange);
7008
+ window.removeEventListener("blur", handleBlur);
7009
+ };
7010
+ }, [isPlaying]);
7011
+ const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
7012
+ return /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: cn("flex flex-col", className), children: [
7013
+ (title || subtitleText) && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "bg-subject-1 rounded-t-xl px-8 py-4 flex items-end justify-between min-h-20", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex flex-col gap-1", children: [
7014
+ title && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7015
+ Text_default,
7016
+ {
7017
+ as: "h2",
7018
+ size: "lg",
7019
+ weight: "bold",
7020
+ color: "text-text-900",
7021
+ className: "leading-5 tracking-wide",
7022
+ children: title
7023
+ }
7024
+ ),
7025
+ subtitleText && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7026
+ Text_default,
7027
+ {
7028
+ as: "p",
7029
+ size: "sm",
7030
+ weight: "normal",
7031
+ color: "text-text-600",
7032
+ className: "leading-5",
7033
+ children: subtitleText
7034
+ }
7035
+ )
7036
+ ] }) }),
7037
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
7038
+ "div",
7039
+ {
7040
+ className: cn(
7041
+ "relative w-full bg-background overflow-hidden group",
7042
+ title || subtitleText ? "rounded-b-xl" : "rounded-xl"
7043
+ ),
7044
+ children: [
7045
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7046
+ "video",
7047
+ {
7048
+ ref: videoRef,
7049
+ src,
7050
+ poster,
7051
+ className: "w-full h-full object-contain",
7052
+ controlsList: "nodownload",
7053
+ onTimeUpdate: handleTimeUpdate,
7054
+ onLoadedMetadata: handleLoadedMetadata,
7055
+ onClick: togglePlayPause,
7056
+ onKeyDown: (e) => {
7057
+ if (e.key) {
7058
+ setShowControls(true);
7059
+ }
7060
+ if (e.key === " " || e.key === "Enter") {
7061
+ e.preventDefault();
7062
+ togglePlayPause();
7063
+ }
7064
+ if (e.key === "ArrowLeft" && videoRef.current) {
7065
+ e.preventDefault();
7066
+ videoRef.current.currentTime -= 10;
7067
+ }
7068
+ if (e.key === "ArrowRight" && videoRef.current) {
7069
+ e.preventDefault();
7070
+ videoRef.current.currentTime += 10;
7071
+ }
7072
+ if (e.key === "ArrowUp") {
7073
+ e.preventDefault();
7074
+ handleVolumeChange(Math.min(100, volume * 100 + 10));
7075
+ }
7076
+ if (e.key === "ArrowDown") {
7077
+ e.preventDefault();
7078
+ handleVolumeChange(Math.max(0, volume * 100 - 10));
7079
+ }
7080
+ if (e.key === "m" || e.key === "M") {
7081
+ e.preventDefault();
7082
+ toggleMute();
7083
+ }
7084
+ if (e.key === "f" || e.key === "F") {
7085
+ e.preventDefault();
7086
+ toggleFullscreen();
7087
+ }
7088
+ },
7089
+ tabIndex: 0,
7090
+ "aria-label": title ? `Video: ${title}` : "Video player",
7091
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7092
+ "track",
7093
+ {
7094
+ ref: trackRef,
7095
+ kind: "captions",
7096
+ src: subtitles || "data:text/vtt;charset=utf-8,WEBVTT%0A%0ANOTE%20No%20captions%20available",
7097
+ srcLang: "en",
7098
+ label: subtitles ? "Subtitles" : "No captions available",
7099
+ default: false
7100
+ }
7101
+ )
7102
+ }
7103
+ ),
7104
+ !isPlaying && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7105
+ IconButton_default,
7106
+ {
7107
+ icon: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.Play, { size: 32, weight: "regular", className: "ml-1" }),
7108
+ onClick: togglePlayPause,
7109
+ "aria-label": "Play video",
7110
+ className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
7111
+ }
7112
+ ) }),
7113
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7114
+ "div",
7115
+ {
7116
+ className: cn(
7117
+ "absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
7118
+ !isPlaying || showControls ? "opacity-100" : "opacity-0 group-hover:opacity-100"
7119
+ ),
7120
+ children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "ml-auto block", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7121
+ IconButton_default,
7122
+ {
7123
+ icon: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.ArrowsOutSimple, { size: 24 }),
7124
+ onClick: toggleFullscreen,
7125
+ "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
7126
+ className: "!bg-transparent !text-white hover:!bg-white/20"
7127
+ }
7128
+ ) })
7129
+ }
7130
+ ),
7131
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
7132
+ "div",
7133
+ {
7134
+ className: cn(
7135
+ "absolute bottom-0 left-0 right-0 bg-gradient-to-t from-black/90 to-transparent transition-opacity",
7136
+ !isPlaying || showControls ? "opacity-100" : "opacity-0 group-hover:opacity-100"
7137
+ ),
7138
+ children: [
7139
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "px-4 pb-2", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7140
+ "input",
7141
+ {
7142
+ type: "range",
7143
+ min: 0,
7144
+ max: duration || 100,
7145
+ value: currentTime,
7146
+ onChange: (e) => {
7147
+ const newTime = parseFloat(e.target.value);
7148
+ if (videoRef.current) {
7149
+ videoRef.current.currentTime = newTime;
7150
+ }
7151
+ },
7152
+ 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",
7153
+ "aria-label": "Video progress",
7154
+ style: {
7155
+ background: `linear-gradient(to right, #2271C4 ${progressPercentage}%, #D5D4D4 ${progressPercentage}%)`
7156
+ }
7157
+ }
7158
+ ) }),
7159
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center justify-between px-4 pb-4", children: [
7160
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-4", children: [
7161
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7162
+ IconButton_default,
7163
+ {
7164
+ icon: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.Pause, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.Play, { size: 24 }),
7165
+ onClick: togglePlayPause,
7166
+ "aria-label": isPlaying ? "Pause" : "Play",
7167
+ className: "!bg-transparent !text-white hover:!bg-white/20"
7168
+ }
7169
+ ),
7170
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "flex items-center gap-2", children: [
7171
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7172
+ IconButton_default,
7173
+ {
7174
+ icon: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.SpeakerSlash, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.SpeakerHigh, { size: 24 }),
7175
+ onClick: toggleMute,
7176
+ "aria-label": isMuted ? "Unmute" : "Mute",
7177
+ className: "!bg-transparent !text-white hover:!bg-white/20"
7178
+ }
7179
+ ),
7180
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7181
+ "input",
7182
+ {
7183
+ type: "range",
7184
+ min: 0,
7185
+ max: 100,
7186
+ value: Math.round(volume * 100),
7187
+ onChange: (e) => handleVolumeChange(parseInt(e.target.value)),
7188
+ className: "w-20 h-1 bg-neutral-600 rounded-full appearance-none cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-500",
7189
+ "aria-label": "Volume control",
7190
+ style: {
7191
+ background: `linear-gradient(to right, #2271C4 ${volume * 100}%, #D5D4D4 ${volume * 100}%)`
7192
+ }
7193
+ }
7194
+ )
7195
+ ] }),
7196
+ subtitles && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7197
+ IconButton_default,
7198
+ {
7199
+ icon: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.ClosedCaptioning, { size: 24 }),
7200
+ onClick: toggleCaptions,
7201
+ "aria-label": showCaptions ? "Hide captions" : "Show captions",
7202
+ className: cn(
7203
+ "!bg-transparent hover:!bg-white/20",
7204
+ showCaptions ? "!text-primary-400" : "!text-white"
7205
+ )
7206
+ }
7207
+ ),
7208
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
7209
+ formatTime(currentTime),
7210
+ " / ",
7211
+ formatTime(duration)
7212
+ ] })
7213
+ ] }),
7214
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "relative", children: [
7215
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
7216
+ IconButton_default,
7217
+ {
7218
+ icon: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_phosphor_react18.DotsThreeVertical, { size: 24 }),
7219
+ onClick: toggleSpeedMenu,
7220
+ "aria-label": "Playback speed",
7221
+ className: "!bg-transparent !text-white hover:!bg-white/20"
7222
+ }
7223
+ ),
7224
+ showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("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__ */ (0, import_jsx_runtime36.jsxs)(
7225
+ "button",
7226
+ {
7227
+ onClick: () => handleSpeedChange(speed),
7228
+ 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"}`,
7229
+ children: [
7230
+ speed,
7231
+ "x"
7232
+ ]
7233
+ },
7234
+ speed
7235
+ )) })
7236
+ ] }) })
7237
+ ] })
7238
+ ]
7239
+ }
7240
+ )
7241
+ ]
7242
+ }
7243
+ )
7244
+ ] });
7245
+ };
7246
+ var VideoPlayer_default = VideoPlayer;
7247
+
7248
+ // src/components/Auth/Auth.tsx
7249
+ var import_react23 = require("react");
7250
+ var import_react_router_dom = require("react-router-dom");
7251
+ var import_jsx_runtime37 = require("react/jsx-runtime");
7252
+ var AuthContext = (0, import_react23.createContext)(void 0);
6827
7253
  var AuthProvider = ({
6828
7254
  children,
6829
7255
  checkAuthFn,
@@ -6833,12 +7259,12 @@ var AuthProvider = ({
6833
7259
  getSessionFn,
6834
7260
  getTokensFn
6835
7261
  }) => {
6836
- const [authState, setAuthState] = (0, import_react22.useState)({
7262
+ const [authState, setAuthState] = (0, import_react23.useState)({
6837
7263
  isAuthenticated: false,
6838
7264
  isLoading: true,
6839
7265
  ...initialAuthState
6840
7266
  });
6841
- const checkAuth = (0, import_react22.useCallback)(async () => {
7267
+ const checkAuth = (0, import_react23.useCallback)(async () => {
6842
7268
  try {
6843
7269
  setAuthState((prev) => ({ ...prev, isLoading: true }));
6844
7270
  if (!checkAuthFn) {
@@ -6869,7 +7295,7 @@ var AuthProvider = ({
6869
7295
  return false;
6870
7296
  }
6871
7297
  }, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
6872
- const signOut = (0, import_react22.useCallback)(() => {
7298
+ const signOut = (0, import_react23.useCallback)(() => {
6873
7299
  if (signOutFn) {
6874
7300
  signOutFn();
6875
7301
  }
@@ -6881,10 +7307,10 @@ var AuthProvider = ({
6881
7307
  tokens: void 0
6882
7308
  }));
6883
7309
  }, [signOutFn]);
6884
- (0, import_react22.useEffect)(() => {
7310
+ (0, import_react23.useEffect)(() => {
6885
7311
  checkAuth();
6886
7312
  }, [checkAuth]);
6887
- const contextValue = (0, import_react22.useMemo)(
7313
+ const contextValue = (0, import_react23.useMemo)(
6888
7314
  () => ({
6889
7315
  ...authState,
6890
7316
  checkAuth,
@@ -6892,10 +7318,10 @@ var AuthProvider = ({
6892
7318
  }),
6893
7319
  [authState, checkAuth, signOut]
6894
7320
  );
6895
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(AuthContext.Provider, { value: contextValue, children });
7321
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AuthContext.Provider, { value: contextValue, children });
6896
7322
  };
6897
7323
  var useAuth = () => {
6898
- const context = (0, import_react22.useContext)(AuthContext);
7324
+ const context = (0, import_react23.useContext)(AuthContext);
6899
7325
  if (context === void 0) {
6900
7326
  throw new Error("useAuth deve ser usado dentro de um AuthProvider");
6901
7327
  }
@@ -6908,9 +7334,9 @@ var ProtectedRoute = ({
6908
7334
  additionalCheck
6909
7335
  }) => {
6910
7336
  const { isAuthenticated, isLoading, ...authState } = useAuth();
6911
- const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7337
+ const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6912
7338
  if (isLoading) {
6913
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children: loadingComponent || defaultLoadingComponent });
7339
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children: loadingComponent || defaultLoadingComponent });
6914
7340
  }
6915
7341
  if (!isAuthenticated) {
6916
7342
  if (typeof window !== "undefined") {
@@ -6921,12 +7347,12 @@ var ProtectedRoute = ({
6921
7347
  return null;
6922
7348
  }
6923
7349
  }
6924
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7350
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
6925
7351
  }
6926
7352
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
6927
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7353
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
6928
7354
  }
6929
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children });
7355
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
6930
7356
  };
6931
7357
  var PublicRoute = ({
6932
7358
  children,
@@ -6936,15 +7362,15 @@ var PublicRoute = ({
6936
7362
  }) => {
6937
7363
  const { isAuthenticated, isLoading } = useAuth();
6938
7364
  if (checkAuthBeforeRender && isLoading) {
6939
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7365
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6940
7366
  }
6941
7367
  if (isAuthenticated && redirectIfAuthenticated) {
6942
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7368
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
6943
7369
  }
6944
- return /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_jsx_runtime36.Fragment, { children });
7370
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
6945
7371
  };
6946
7372
  var withAuth = (Component, options = {}) => {
6947
- return (props) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Component, { ...props }) });
7373
+ return (props) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Component, { ...props }) });
6948
7374
  };
6949
7375
  var useAuthGuard = (options = {}) => {
6950
7376
  const authState = useAuth();
@@ -6959,7 +7385,7 @@ var useAuthGuard = (options = {}) => {
6959
7385
  var useRouteAuth = (fallbackPath = "/") => {
6960
7386
  const { isAuthenticated, isLoading } = useAuth();
6961
7387
  const location = (0, import_react_router_dom.useLocation)();
6962
- const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
7388
+ const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
6963
7389
  return {
6964
7390
  isAuthenticated,
6965
7391
  isLoading,
@@ -7023,7 +7449,7 @@ function createZustandAuthAdapter(useAuthStore) {
7023
7449
  }
7024
7450
 
7025
7451
  // src/components/Auth/useUrlAuthentication.ts
7026
- var import_react23 = require("react");
7452
+ var import_react24 = require("react");
7027
7453
  var import_react_router_dom2 = require("react-router-dom");
7028
7454
  var getAuthParams = (location, extractParams) => {
7029
7455
  const searchParams = new URLSearchParams(location.search);
@@ -7071,7 +7497,7 @@ var handleUserData = (responseData, setUser) => {
7071
7497
  };
7072
7498
  function useUrlAuthentication(options) {
7073
7499
  const location = (0, import_react_router_dom2.useLocation)();
7074
- (0, import_react23.useEffect)(() => {
7500
+ (0, import_react24.useEffect)(() => {
7075
7501
  const handleAuthentication = async () => {
7076
7502
  const authParams = getAuthParams(location, options.extractParams);
7077
7503
  if (!hasValidAuthParams(authParams)) {
@@ -7110,9 +7536,9 @@ function useUrlAuthentication(options) {
7110
7536
  }
7111
7537
 
7112
7538
  // src/components/Auth/useApiConfig.ts
7113
- var import_react24 = require("react");
7539
+ var import_react25 = require("react");
7114
7540
  function useApiConfig(api) {
7115
- return (0, import_react24.useMemo)(
7541
+ return (0, import_react25.useMemo)(
7116
7542
  () => ({
7117
7543
  get: (endpoint, config) => api.get(endpoint, config)
7118
7544
  }),
@@ -7121,8 +7547,8 @@ function useApiConfig(api) {
7121
7547
  }
7122
7548
 
7123
7549
  // src/components/Quiz/Quiz.tsx
7124
- var import_phosphor_react18 = require("phosphor-react");
7125
- var import_react25 = require("react");
7550
+ var import_phosphor_react19 = require("phosphor-react");
7551
+ var import_react26 = require("react");
7126
7552
 
7127
7553
  // src/components/Quiz/useQuizStore.ts
7128
7554
  var import_zustand7 = require("zustand");
@@ -7158,6 +7584,7 @@ var useQuizStore = (0, import_zustand7.create)()(
7158
7584
  isStarted: false,
7159
7585
  isFinished: false,
7160
7586
  userId: "",
7587
+ variant: "default",
7161
7588
  // Setters
7162
7589
  setBySimulated: (simulado) => set({ bySimulated: simulado }),
7163
7590
  setByActivity: (atividade) => set({ byActivity: atividade }),
@@ -7165,6 +7592,7 @@ var useQuizStore = (0, import_zustand7.create)()(
7165
7592
  setUserId: (userId) => set({ userId }),
7166
7593
  setUserAnswers: (userAnswers) => set({ userAnswers }),
7167
7594
  getUserId: () => get().userId,
7595
+ setVariant: (variant) => set({ variant }),
7168
7596
  // Navigation
7169
7597
  goToNextQuestion: () => {
7170
7598
  const { currentQuestionIndex, getTotalQuestions } = get();
@@ -7620,13 +8048,13 @@ var simulated_result_default = "./simulated-result-QN5HCUY5.png";
7620
8048
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
7621
8049
 
7622
8050
  // src/components/Quiz/Quiz.tsx
7623
- var import_jsx_runtime37 = require("react/jsx-runtime");
8051
+ var import_jsx_runtime38 = require("react/jsx-runtime");
7624
8052
  var getStatusBadge = (status) => {
7625
8053
  switch (status) {
7626
8054
  case "correct":
7627
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.CheckCircle, {}), children: "Resposta correta" });
8055
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CheckCircle, {}), children: "Resposta correta" });
7628
8056
  case "incorrect":
7629
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.XCircle, {}), children: "Resposta incorreta" });
8057
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.XCircle, {}), children: "Resposta incorreta" });
7630
8058
  default:
7631
8059
  return null;
7632
8060
  }
@@ -7639,8 +8067,12 @@ var getStatusStyles = (variantCorrect) => {
7639
8067
  return "bg-error-background border-error-300";
7640
8068
  }
7641
8069
  };
7642
- var Quiz = (0, import_react25.forwardRef)(({ children, className, ...props }, ref) => {
7643
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8070
+ var Quiz = (0, import_react26.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
8071
+ const { setVariant } = useQuizStore();
8072
+ (0, import_react26.useEffect)(() => {
8073
+ setVariant(variant);
8074
+ }, [variant, setVariant]);
8075
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7644
8076
  "div",
7645
8077
  {
7646
8078
  ref,
@@ -7653,12 +8085,12 @@ var Quiz = (0, import_react25.forwardRef)(({ children, className, ...props }, re
7653
8085
  }
7654
8086
  );
7655
8087
  });
7656
- var QuizHeaderResult = (0, import_react25.forwardRef)(
8088
+ var QuizHeaderResult = (0, import_react26.forwardRef)(
7657
8089
  ({ className, ...props }, ref) => {
7658
8090
  const { getAllCurrentAnswer } = useQuizStore();
7659
8091
  const usersAnswer = getAllCurrentAnswer();
7660
- const [isCorrect, setIsCorrect] = (0, import_react25.useState)(false);
7661
- (0, import_react25.useEffect)(() => {
8092
+ const [isCorrect, setIsCorrect] = (0, import_react26.useState)(false);
8093
+ (0, import_react26.useEffect)(() => {
7662
8094
  if (usersAnswer) {
7663
8095
  setIsCorrect(
7664
8096
  usersAnswer.length > 0 ? usersAnswer.map(
@@ -7667,7 +8099,7 @@ var QuizHeaderResult = (0, import_react25.forwardRef)(
7667
8099
  );
7668
8100
  }
7669
8101
  }, [usersAnswer]);
7670
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8102
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
7671
8103
  "div",
7672
8104
  {
7673
8105
  ref,
@@ -7678,26 +8110,26 @@ var QuizHeaderResult = (0, import_react25.forwardRef)(
7678
8110
  ),
7679
8111
  ...props,
7680
8112
  children: [
7681
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
7682
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
8113
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
8114
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
7683
8115
  ]
7684
8116
  }
7685
8117
  );
7686
8118
  }
7687
8119
  );
7688
- var QuizTitle = (0, import_react25.forwardRef)(
8120
+ var QuizTitle = (0, import_react26.forwardRef)(
7689
8121
  ({ className, ...props }, ref) => {
7690
8122
  const {
7691
8123
  currentQuestionIndex,
7692
8124
  getTotalQuestions,
7693
8125
  getQuizTitle,
7694
8126
  timeElapsed,
7695
- formatTime,
8127
+ formatTime: formatTime2,
7696
8128
  isStarted
7697
8129
  } = useQuizStore();
7698
8130
  const totalQuestions = getTotalQuestions();
7699
8131
  const quizTitle = getQuizTitle();
7700
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8132
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
7701
8133
  "div",
7702
8134
  {
7703
8135
  ref,
@@ -7707,25 +8139,25 @@ var QuizTitle = (0, import_react25.forwardRef)(
7707
8139
  ),
7708
8140
  ...props,
7709
8141
  children: [
7710
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
7711
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
7712
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
8142
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
8143
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
8144
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
7713
8145
  ] }),
7714
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.Clock, {}), children: isStarted ? formatTime(timeElapsed) : "00:00" }) })
8146
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
7715
8147
  ]
7716
8148
  }
7717
8149
  );
7718
8150
  }
7719
8151
  );
7720
- var QuizSubTitle = (0, import_react25.forwardRef)(
8152
+ var QuizSubTitle = (0, import_react26.forwardRef)(
7721
8153
  ({ subTitle, ...props }, ref) => {
7722
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
8154
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
7723
8155
  }
7724
8156
  );
7725
8157
  var QuizHeader = () => {
7726
8158
  const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
7727
8159
  const currentQuestion = getCurrentQuestion();
7728
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8160
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7729
8161
  HeaderAlternative,
7730
8162
  {
7731
8163
  title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
@@ -7734,8 +8166,8 @@ var QuizHeader = () => {
7734
8166
  }
7735
8167
  );
7736
8168
  };
7737
- var QuizContainer = (0, import_react25.forwardRef)(({ children, className, ...props }, ref) => {
7738
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8169
+ var QuizContainer = (0, import_react26.forwardRef)(({ children, className, ...props }, ref) => {
8170
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7739
8171
  "div",
7740
8172
  {
7741
8173
  ref,
@@ -7748,8 +8180,8 @@ var QuizContainer = (0, import_react25.forwardRef)(({ children, className, ...pr
7748
8180
  }
7749
8181
  );
7750
8182
  });
7751
- var QuizContent = (0, import_react25.forwardRef)(({ variant, paddingBottom }) => {
7752
- const { getCurrentQuestion } = useQuizStore();
8183
+ var QuizContent = (0, import_react26.forwardRef)(({ paddingBottom }) => {
8184
+ const { getCurrentQuestion, variant } = useQuizStore();
7753
8185
  const currentQuestion = getCurrentQuestion();
7754
8186
  const questionComponents = {
7755
8187
  ["ALTERNATIVA" /* ALTERNATIVA */]: QuizAlternative,
@@ -7761,7 +8193,7 @@ var QuizContent = (0, import_react25.forwardRef)(({ variant, paddingBottom }) =>
7761
8193
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
7762
8194
  };
7763
8195
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.type] : null;
7764
- return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuestionComponent, { variant, paddingBottom }) : null;
8196
+ return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuestionComponent, { variant, paddingBottom }) : null;
7765
8197
  });
7766
8198
  var QuizAlternative = ({
7767
8199
  variant = "default",
@@ -7789,10 +8221,10 @@ var QuizAlternative = ({
7789
8221
  };
7790
8222
  });
7791
8223
  if (!alternatives)
7792
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
7793
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7794
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
7795
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8224
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
8225
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8226
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8227
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7796
8228
  AlternativesList,
7797
8229
  {
7798
8230
  mode: variant === "default" ? "interactive" : "readonly",
@@ -7818,15 +8250,15 @@ var QuizMultipleChoice = ({
7818
8250
  const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
7819
8251
  const currentQuestion = getCurrentQuestion();
7820
8252
  const allCurrentAnswers = getAllCurrentAnswer();
7821
- const prevSelectedValuesRef = (0, import_react25.useRef)([]);
7822
- const prevQuestionIdRef = (0, import_react25.useRef)("");
7823
- const allCurrentAnswerIds = (0, import_react25.useMemo)(() => {
8253
+ const prevSelectedValuesRef = (0, import_react26.useRef)([]);
8254
+ const prevQuestionIdRef = (0, import_react26.useRef)("");
8255
+ const allCurrentAnswerIds = (0, import_react26.useMemo)(() => {
7824
8256
  return allCurrentAnswers?.map((answer) => answer.optionId) || [];
7825
8257
  }, [allCurrentAnswers]);
7826
- const selectedValues = (0, import_react25.useMemo)(() => {
8258
+ const selectedValues = (0, import_react26.useMemo)(() => {
7827
8259
  return allCurrentAnswerIds?.filter((id) => id !== null) || [];
7828
8260
  }, [allCurrentAnswerIds]);
7829
- const stableSelectedValues = (0, import_react25.useMemo)(() => {
8261
+ const stableSelectedValues = (0, import_react26.useMemo)(() => {
7830
8262
  const currentQuestionId = currentQuestion?.id || "";
7831
8263
  const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
7832
8264
  if (hasQuestionChanged) {
@@ -7841,7 +8273,7 @@ var QuizMultipleChoice = ({
7841
8273
  }
7842
8274
  return prevSelectedValuesRef.current;
7843
8275
  }, [selectedValues, currentQuestion?.id]);
7844
- const handleSelectedValues = (0, import_react25.useCallback)(
8276
+ const handleSelectedValues = (0, import_react26.useCallback)(
7845
8277
  (values) => {
7846
8278
  if (currentQuestion) {
7847
8279
  selectMultipleAnswer(currentQuestion.id, values);
@@ -7849,7 +8281,7 @@ var QuizMultipleChoice = ({
7849
8281
  },
7850
8282
  [currentQuestion, selectMultipleAnswer]
7851
8283
  );
7852
- const questionKey = (0, import_react25.useMemo)(
8284
+ const questionKey = (0, import_react26.useMemo)(
7853
8285
  () => `question-${currentQuestion?.id || "1"}`,
7854
8286
  [currentQuestion?.id]
7855
8287
  );
@@ -7870,10 +8302,10 @@ var QuizMultipleChoice = ({
7870
8302
  };
7871
8303
  });
7872
8304
  if (!choices)
7873
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
7874
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7875
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
7876
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8305
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
8306
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8307
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8308
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7877
8309
  MultipleChoiceList,
7878
8310
  {
7879
8311
  choices,
@@ -7893,13 +8325,13 @@ var QuizDissertative = ({
7893
8325
  const { getCurrentQuestion, getCurrentAnswer, selectDissertativeAnswer } = useQuizStore();
7894
8326
  const currentQuestion = getCurrentQuestion();
7895
8327
  const currentAnswer = getCurrentAnswer();
7896
- const textareaRef = (0, import_react25.useRef)(null);
8328
+ const textareaRef = (0, import_react26.useRef)(null);
7897
8329
  const handleAnswerChange = (value) => {
7898
8330
  if (currentQuestion) {
7899
8331
  selectDissertativeAnswer(currentQuestion.id, value);
7900
8332
  }
7901
8333
  };
7902
- const adjustTextareaHeight = (0, import_react25.useCallback)(() => {
8334
+ const adjustTextareaHeight = (0, import_react26.useCallback)(() => {
7903
8335
  if (textareaRef.current) {
7904
8336
  textareaRef.current.style.height = "auto";
7905
8337
  const scrollHeight = textareaRef.current.scrollHeight;
@@ -7909,15 +8341,15 @@ var QuizDissertative = ({
7909
8341
  textareaRef.current.style.height = `${newHeight}px`;
7910
8342
  }
7911
8343
  }, []);
7912
- (0, import_react25.useEffect)(() => {
8344
+ (0, import_react26.useEffect)(() => {
7913
8345
  adjustTextareaHeight();
7914
8346
  }, [currentAnswer, adjustTextareaHeight]);
7915
8347
  if (!currentQuestion) {
7916
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
8348
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
7917
8349
  }
7918
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7919
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
7920
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8350
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8351
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
8352
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
7921
8353
  TextArea_default,
7922
8354
  {
7923
8355
  ref: textareaRef,
@@ -7927,10 +8359,10 @@ var QuizDissertative = ({
7927
8359
  rows: 4,
7928
8360
  className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
7929
8361
  }
7930
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
7931
- variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7932
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
7933
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("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." }) })
8362
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
8363
+ variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8364
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
8365
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("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." }) })
7934
8366
  ] })
7935
8367
  ] });
7936
8368
  };
@@ -7958,16 +8390,16 @@ var QuizTrueOrFalse = ({
7958
8390
  ];
7959
8391
  const getLetterByIndex = (index) => String.fromCharCode(97 + index);
7960
8392
  const isDefaultVariant = variant == "default";
7961
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7962
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
7963
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8393
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8394
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8395
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
7964
8396
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
7965
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8397
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
7966
8398
  "section",
7967
8399
  {
7968
8400
  className: "flex flex-col gap-2",
7969
8401
  children: [
7970
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8402
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
7971
8403
  "div",
7972
8404
  {
7973
8405
  className: cn(
@@ -7975,20 +8407,20 @@ var QuizTrueOrFalse = ({
7975
8407
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
7976
8408
  ),
7977
8409
  children: [
7978
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
7979
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Select_default, { size: "medium", children: [
7980
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
7981
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(SelectContent, { children: [
7982
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
7983
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: "F", children: "Falso" })
8410
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
8411
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Select_default, { size: "medium", children: [
8412
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
8413
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(SelectContent, { children: [
8414
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
8415
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "F", children: "Falso" })
7984
8416
  ] })
7985
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
8417
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
7986
8418
  ]
7987
8419
  }
7988
8420
  ),
7989
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
7990
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
7991
- !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
8421
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8422
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
8423
+ !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
7992
8424
  ] })
7993
8425
  ]
7994
8426
  },
@@ -8051,7 +8483,7 @@ var QuizConnectDots = ({
8051
8483
  isCorrect: false
8052
8484
  }
8053
8485
  ];
8054
- const [userAnswers, setUserAnswers] = (0, import_react25.useState)(() => {
8486
+ const [userAnswers, setUserAnswers] = (0, import_react26.useState)(() => {
8055
8487
  if (variant === "result") {
8056
8488
  return mockUserAnswers;
8057
8489
  }
@@ -8080,13 +8512,13 @@ var QuizConnectDots = ({
8080
8512
  const assignedDots = new Set(
8081
8513
  userAnswers.map((a) => a.dotOption).filter(Boolean)
8082
8514
  );
8083
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8084
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8085
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8515
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8516
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8517
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8086
8518
  const answer = userAnswers[index];
8087
8519
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
8088
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { className: "flex flex-col gap-2", children: [
8089
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8520
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col gap-2", children: [
8521
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8090
8522
  "div",
8091
8523
  {
8092
8524
  className: cn(
@@ -8094,30 +8526,30 @@ var QuizConnectDots = ({
8094
8526
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
8095
8527
  ),
8096
8528
  children: [
8097
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
8098
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8529
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
8530
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8099
8531
  Select_default,
8100
8532
  {
8101
8533
  size: "medium",
8102
8534
  value: answer.dotOption || void 0,
8103
8535
  onValueChange: (value) => handleSelectDot(index, value),
8104
8536
  children: [
8105
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8106
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectContent, { children: dotsOptions.filter(
8537
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8538
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectContent, { children: dotsOptions.filter(
8107
8539
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
8108
- ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
8540
+ ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
8109
8541
  ]
8110
8542
  }
8111
- ) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
8543
+ ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
8112
8544
  ]
8113
8545
  }
8114
8546
  ),
8115
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8116
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8547
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8548
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8117
8549
  "Resposta selecionada: ",
8118
8550
  answer.dotOption || "Nenhuma"
8119
8551
  ] }),
8120
- !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8552
+ !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8121
8553
  "Resposta correta: ",
8122
8554
  answer.correctOption
8123
8555
  ] })
@@ -8172,8 +8604,8 @@ var QuizFill = ({
8172
8604
  isCorrect: true
8173
8605
  }
8174
8606
  ];
8175
- const [answers, setAnswers] = (0, import_react25.useState)({});
8176
- const baseId = (0, import_react25.useId)();
8607
+ const [answers, setAnswers] = (0, import_react26.useState)({});
8608
+ const baseId = (0, import_react26.useId)();
8177
8609
  const getAvailableOptionsForSelect = (selectId) => {
8178
8610
  const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
8179
8611
  return options.filter((option) => !usedOptions.includes(option));
@@ -8186,18 +8618,18 @@ var QuizFill = ({
8186
8618
  const mockAnswer = mockUserAnswers.find(
8187
8619
  (answer) => answer.selectId === selectId
8188
8620
  );
8189
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
8621
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
8190
8622
  };
8191
8623
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
8192
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8624
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8193
8625
  Select_default,
8194
8626
  {
8195
8627
  value: selectedValue,
8196
8628
  onValueChange: (value) => handleSelectChange(selectId, value),
8197
8629
  className: "inline-flex mb-2.5",
8198
8630
  children: [
8199
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8200
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
8631
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8632
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
8201
8633
  ]
8202
8634
  },
8203
8635
  `${selectId}-${startIndex}`
@@ -8209,8 +8641,8 @@ var QuizFill = ({
8209
8641
  );
8210
8642
  if (!mockAnswer) return null;
8211
8643
  const action = mockAnswer.isCorrect ? "success" : "error";
8212
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.XCircle, {});
8213
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8644
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.XCircle, {});
8645
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8214
8646
  Badge_default,
8215
8647
  {
8216
8648
  variant: "solid",
@@ -8218,7 +8650,7 @@ var QuizFill = ({
8218
8650
  iconRight: icon,
8219
8651
  size: "large",
8220
8652
  className: "py-3 w-[180px] justify-between mb-2.5",
8221
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
8653
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
8222
8654
  },
8223
8655
  selectId
8224
8656
  );
@@ -8274,25 +8706,25 @@ var QuizFill = ({
8274
8706
  }
8275
8707
  return elements;
8276
8708
  };
8277
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8278
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8279
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8709
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8710
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8711
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8280
8712
  "div",
8281
8713
  {
8282
8714
  className: cn(
8283
8715
  "text-lg text-text-900 leading-8 h-auto",
8284
8716
  variant != "result" && paddingBottom
8285
8717
  ),
8286
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: element.element }, element.id))
8718
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: element.element }, element.id))
8287
8719
  }
8288
8720
  ) }) }),
8289
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8290
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
8291
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8721
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8722
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
8723
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8292
8724
  "div",
8293
8725
  {
8294
8726
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
8295
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { children: element.element }, element.id))
8727
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: element.element }, element.id))
8296
8728
  }
8297
8729
  ) }) })
8298
8730
  ] })
@@ -8312,7 +8744,7 @@ var QuizImageQuestion = ({
8312
8744
  };
8313
8745
  const correctRadiusRelative = calculateCorrectRadiusRelative();
8314
8746
  const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
8315
- const [clickPositionRelative, setClickPositionRelative] = (0, import_react25.useState)(variant == "result" ? mockUserAnswerRelative : null);
8747
+ const [clickPositionRelative, setClickPositionRelative] = (0, import_react26.useState)(variant == "result" ? mockUserAnswerRelative : null);
8316
8748
  const convertToRelativeCoordinates = (x, y, rect) => {
8317
8749
  const safeWidth = Math.max(rect.width, 1e-3);
8318
8750
  const safeHeight = Math.max(rect.height, 1e-3);
@@ -8348,36 +8780,36 @@ var QuizImageQuestion = ({
8348
8780
  }
8349
8781
  return "bg-success-600/70 border-white";
8350
8782
  };
8351
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8352
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
8353
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8783
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8784
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
8785
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8354
8786
  "div",
8355
8787
  {
8356
8788
  "data-testid": "quiz-image-container",
8357
8789
  className: "space-y-6 p-3 relative inline-block",
8358
8790
  children: [
8359
- variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8791
+ variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8360
8792
  "div",
8361
8793
  {
8362
8794
  "data-testid": "quiz-legend",
8363
8795
  className: "flex items-center gap-4 text-xs",
8364
8796
  children: [
8365
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-2", children: [
8366
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
8367
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
8797
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8798
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
8799
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
8368
8800
  ] }),
8369
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-2", children: [
8370
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
8371
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
8801
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8802
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
8803
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
8372
8804
  ] }),
8373
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-2", children: [
8374
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
8375
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
8805
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8806
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
8807
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
8376
8808
  ] })
8377
8809
  ]
8378
8810
  }
8379
8811
  ),
8380
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
8812
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8381
8813
  "button",
8382
8814
  {
8383
8815
  "data-testid": "quiz-image-button",
@@ -8392,7 +8824,7 @@ var QuizImageQuestion = ({
8392
8824
  },
8393
8825
  "aria-label": "\xC1rea da imagem interativa",
8394
8826
  children: [
8395
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8827
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8396
8828
  "img",
8397
8829
  {
8398
8830
  "data-testid": "quiz-image",
@@ -8401,7 +8833,7 @@ var QuizImageQuestion = ({
8401
8833
  className: "w-full h-auto rounded-md"
8402
8834
  }
8403
8835
  ),
8404
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8836
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8405
8837
  "div",
8406
8838
  {
8407
8839
  "data-testid": "quiz-correct-circle",
@@ -8416,7 +8848,7 @@ var QuizImageQuestion = ({
8416
8848
  }
8417
8849
  }
8418
8850
  ),
8419
- clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8851
+ clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8420
8852
  "div",
8421
8853
  {
8422
8854
  "data-testid": "quiz-user-circle",
@@ -8484,16 +8916,16 @@ var QuizQuestionList = ({
8484
8916
  return "Em branco";
8485
8917
  }
8486
8918
  };
8487
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
8488
- ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { className: "flex flex-col gap-2", children: [
8489
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
8490
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.BookOpen, { size: 17, className: "text-white" }) }),
8491
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
8919
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
8920
+ ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col gap-2", children: [
8921
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
8922
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.BookOpen, { size: 17, className: "text-white" }) }),
8923
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
8492
8924
  ] }),
8493
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
8925
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
8494
8926
  const status = getQuestionStatus(question.id);
8495
8927
  const questionNumber = getQuestionIndex(question.id);
8496
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8928
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8497
8929
  CardStatus,
8498
8930
  {
8499
8931
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -8509,13 +8941,12 @@ var QuizQuestionList = ({
8509
8941
  ] }, subjectId)
8510
8942
  ) });
8511
8943
  };
8512
- var QuizFooter = (0, import_react25.forwardRef)(
8944
+ var QuizFooter = (0, import_react26.forwardRef)(
8513
8945
  ({
8514
8946
  className,
8515
8947
  onGoToSimulated,
8516
8948
  onDetailResult,
8517
8949
  handleFinishSimulated,
8518
- variant = "default",
8519
8950
  ...props
8520
8951
  }, ref) => {
8521
8952
  const {
@@ -8529,6 +8960,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8529
8960
  skipQuestion,
8530
8961
  getCurrentQuestion,
8531
8962
  getQuestionStatusFromUserAnswers,
8963
+ variant,
8532
8964
  getActiveQuiz
8533
8965
  } = useQuizStore();
8534
8966
  const totalQuestions = getTotalQuestions();
@@ -8537,10 +8969,11 @@ var QuizFooter = (0, import_react25.forwardRef)(
8537
8969
  const currentAnswer = getCurrentAnswer();
8538
8970
  const currentQuestion = getCurrentQuestion();
8539
8971
  const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
8540
- const [alertDialogOpen, setAlertDialogOpen] = (0, import_react25.useState)(false);
8541
- const [modalResultOpen, setModalResultOpen] = (0, import_react25.useState)(false);
8542
- const [modalNavigateOpen, setModalNavigateOpen] = (0, import_react25.useState)(false);
8543
- const [filterType, setFilterType] = (0, import_react25.useState)("all");
8972
+ const [alertDialogOpen, setAlertDialogOpen] = (0, import_react26.useState)(false);
8973
+ const [modalResultOpen, setModalResultOpen] = (0, import_react26.useState)(false);
8974
+ const [modalNavigateOpen, setModalNavigateOpen] = (0, import_react26.useState)(false);
8975
+ const [modalResolutionOpen, setModalResolutionOpen] = (0, import_react26.useState)(false);
8976
+ const [filterType, setFilterType] = (0, import_react26.useState)("all");
8544
8977
  const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
8545
8978
  const userAnswers = getUserAnswers();
8546
8979
  const allQuestions = getTotalQuestions();
@@ -8572,8 +9005,8 @@ var QuizFooter = (0, import_react25.forwardRef)(
8572
9005
  setAlertDialogOpen(false);
8573
9006
  }
8574
9007
  };
8575
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8576
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9008
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
9009
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8577
9010
  "footer",
8578
9011
  {
8579
9012
  ref,
@@ -8582,17 +9015,17 @@ var QuizFooter = (0, import_react25.forwardRef)(
8582
9015
  className
8583
9016
  ),
8584
9017
  ...props,
8585
- children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8586
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
8587
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9018
+ children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
9019
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
9020
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8588
9021
  IconButton_default,
8589
9022
  {
8590
- icon: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.SquaresFour, { size: 24, className: "text-text-950" }),
9023
+ icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.SquaresFour, { size: 24, className: "text-text-950" }),
8591
9024
  size: "md",
8592
9025
  onClick: () => setModalNavigateOpen(true)
8593
9026
  }
8594
9027
  ),
8595
- isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9028
+ isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8596
9029
  Button_default,
8597
9030
  {
8598
9031
  variant: "outline",
@@ -8603,13 +9036,13 @@ var QuizFooter = (0, import_react25.forwardRef)(
8603
9036
  },
8604
9037
  children: "Pular"
8605
9038
  }
8606
- ) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9039
+ ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8607
9040
  Button_default,
8608
9041
  {
8609
9042
  size: "medium",
8610
9043
  variant: "link",
8611
9044
  action: "primary",
8612
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.CaretLeft, { size: 18 }),
9045
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CaretLeft, { size: 18 }),
8613
9046
  onClick: () => {
8614
9047
  goToPreviousQuestion();
8615
9048
  },
@@ -8617,7 +9050,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8617
9050
  }
8618
9051
  )
8619
9052
  ] }),
8620
- !isFirstQuestion && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9053
+ !isFirstQuestion && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8621
9054
  Button_default,
8622
9055
  {
8623
9056
  size: "small",
@@ -8630,7 +9063,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8630
9063
  children: "Pular"
8631
9064
  }
8632
9065
  ),
8633
- isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9066
+ isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8634
9067
  Button_default,
8635
9068
  {
8636
9069
  size: "medium",
@@ -8640,13 +9073,13 @@ var QuizFooter = (0, import_react25.forwardRef)(
8640
9073
  onClick: handleFinishQuiz,
8641
9074
  children: "Finalizar"
8642
9075
  }
8643
- ) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9076
+ ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8644
9077
  Button_default,
8645
9078
  {
8646
9079
  size: "medium",
8647
9080
  variant: "link",
8648
9081
  action: "primary",
8649
- iconRight: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.CaretRight, { size: 18 }),
9082
+ iconRight: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CaretRight, { size: 18 }),
8650
9083
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
8651
9084
  onClick: () => {
8652
9085
  goToNextQuestion();
@@ -8654,10 +9087,19 @@ var QuizFooter = (0, import_react25.forwardRef)(
8654
9087
  children: "Avan\xE7ar"
8655
9088
  }
8656
9089
  )
8657
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Button_default, { variant: "solid", action: "primary", size: "medium", children: "Ver Resolu\xE7\xE3o" }) })
9090
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9091
+ Button_default,
9092
+ {
9093
+ variant: "solid",
9094
+ action: "primary",
9095
+ size: "medium",
9096
+ onClick: () => setModalResolutionOpen(true),
9097
+ children: "Ver Resolu\xE7\xE3o"
9098
+ }
9099
+ ) })
8658
9100
  }
8659
9101
  ),
8660
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9102
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8661
9103
  AlertDialog,
8662
9104
  {
8663
9105
  isOpen: alertDialogOpen,
@@ -8669,7 +9111,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8669
9111
  onSubmit: handleAlertSubmit
8670
9112
  }
8671
9113
  ),
8672
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9114
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8673
9115
  Modal_default,
8674
9116
  {
8675
9117
  isOpen: modalResultOpen,
@@ -8679,8 +9121,8 @@ var QuizFooter = (0, import_react25.forwardRef)(
8679
9121
  closeOnEscape: false,
8680
9122
  hideCloseButton: true,
8681
9123
  size: "md",
8682
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
8683
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9124
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
9125
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8684
9126
  "img",
8685
9127
  {
8686
9128
  src: simulated_result_default,
@@ -8688,9 +9130,9 @@ var QuizFooter = (0, import_react25.forwardRef)(
8688
9130
  className: "w-[282px] h-auto object-cover"
8689
9131
  }
8690
9132
  ),
8691
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
8692
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
8693
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("p", { className: "text-text-500 font-sm", children: [
9133
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
9134
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
9135
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-500 font-sm", children: [
8694
9136
  "Voc\xEA acertou",
8695
9137
  " ",
8696
9138
  (() => {
@@ -8712,8 +9154,8 @@ var QuizFooter = (0, import_react25.forwardRef)(
8712
9154
  " quest\xF5es."
8713
9155
  ] })
8714
9156
  ] }),
8715
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
8716
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9157
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
9158
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8717
9159
  Button_default,
8718
9160
  {
8719
9161
  variant: "outline",
@@ -8723,31 +9165,31 @@ var QuizFooter = (0, import_react25.forwardRef)(
8723
9165
  children: "Ir para simulados"
8724
9166
  }
8725
9167
  ),
8726
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
9168
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
8727
9169
  ] })
8728
9170
  ] })
8729
9171
  }
8730
9172
  ),
8731
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9173
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8732
9174
  Modal_default,
8733
9175
  {
8734
9176
  isOpen: modalNavigateOpen,
8735
9177
  onClose: () => setModalNavigateOpen(false),
8736
9178
  title: "Quest\xF5es",
8737
9179
  size: "lg",
8738
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col w-full h-full", children: [
8739
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
8740
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
8741
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
8742
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
8743
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(SelectContent, { children: [
8744
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: "all", children: "Todas" }),
8745
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
8746
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
9180
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col w-full h-full", children: [
9181
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
9182
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
9183
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
9184
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
9185
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(SelectContent, { children: [
9186
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "all", children: "Todas" }),
9187
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
9188
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
8747
9189
  ] })
8748
9190
  ] }) })
8749
9191
  ] }),
8750
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9192
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8751
9193
  QuizQuestionList,
8752
9194
  {
8753
9195
  filterType,
@@ -8756,29 +9198,39 @@ var QuizFooter = (0, import_react25.forwardRef)(
8756
9198
  ) })
8757
9199
  ] })
8758
9200
  }
9201
+ ),
9202
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9203
+ Modal_default,
9204
+ {
9205
+ isOpen: modalResolutionOpen,
9206
+ onClose: () => setModalResolutionOpen(false),
9207
+ title: "Resolu\xE7\xE3o",
9208
+ size: "lg",
9209
+ children: currentQuestion?.answerKey
9210
+ }
8759
9211
  )
8760
9212
  ] });
8761
9213
  }
8762
9214
  );
8763
- var QuizResultHeaderTitle = (0, import_react25.forwardRef)(({ className, ...props }, ref) => {
9215
+ var QuizResultHeaderTitle = (0, import_react26.forwardRef)(({ className, ...props }, ref) => {
8764
9216
  const { bySimulated } = useQuizStore();
8765
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
9217
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8766
9218
  "div",
8767
9219
  {
8768
9220
  ref,
8769
9221
  className: cn("flex flex-row pt-4 justify-between", className),
8770
9222
  ...props,
8771
9223
  children: [
8772
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
8773
- bySimulated && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
9224
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
9225
+ bySimulated && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
8774
9226
  ]
8775
9227
  }
8776
9228
  );
8777
9229
  });
8778
- var QuizResultTitle = (0, import_react25.forwardRef)(({ className, ...props }, ref) => {
9230
+ var QuizResultTitle = (0, import_react26.forwardRef)(({ className, ...props }, ref) => {
8779
9231
  const { getQuizTitle } = useQuizStore();
8780
9232
  const quizTitle = getQuizTitle();
8781
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9233
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8782
9234
  "p",
8783
9235
  {
8784
9236
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -8788,12 +9240,12 @@ var QuizResultTitle = (0, import_react25.forwardRef)(({ className, ...props }, r
8788
9240
  }
8789
9241
  );
8790
9242
  });
8791
- var QuizResultPerformance = (0, import_react25.forwardRef)(
9243
+ var QuizResultPerformance = (0, import_react26.forwardRef)(
8792
9244
  ({ ...props }, ref) => {
8793
9245
  const {
8794
9246
  getTotalQuestions,
8795
9247
  timeElapsed,
8796
- formatTime,
9248
+ formatTime: formatTime2,
8797
9249
  bySimulated,
8798
9250
  byActivity,
8799
9251
  byQuestionary,
@@ -8834,15 +9286,15 @@ var QuizResultPerformance = (0, import_react25.forwardRef)(
8834
9286
  });
8835
9287
  }
8836
9288
  const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
8837
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
9289
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8838
9290
  "div",
8839
9291
  {
8840
9292
  className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
8841
9293
  ref,
8842
9294
  ...props,
8843
9295
  children: [
8844
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "relative", children: [
8845
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9296
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "relative", children: [
9297
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8846
9298
  ProgressCircle_default,
8847
9299
  {
8848
9300
  size: "medium",
@@ -8852,21 +9304,21 @@ var QuizResultPerformance = (0, import_react25.forwardRef)(
8852
9304
  label: ""
8853
9305
  }
8854
9306
  ),
8855
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
8856
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
8857
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
8858
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime(timeElapsed) })
9307
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
9308
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
9309
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
9310
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(timeElapsed) })
8859
9311
  ] }),
8860
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
9312
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
8861
9313
  correctAnswers,
8862
9314
  " de ",
8863
9315
  totalQuestions
8864
9316
  ] }),
8865
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
9317
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
8866
9318
  ] })
8867
9319
  ] }),
8868
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
8869
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9320
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
9321
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8870
9322
  ProgressBar_default,
8871
9323
  {
8872
9324
  className: "w-full",
@@ -8880,7 +9332,7 @@ var QuizResultPerformance = (0, import_react25.forwardRef)(
8880
9332
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
8881
9333
  }
8882
9334
  ),
8883
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9335
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8884
9336
  ProgressBar_default,
8885
9337
  {
8886
9338
  className: "w-full",
@@ -8894,7 +9346,7 @@ var QuizResultPerformance = (0, import_react25.forwardRef)(
8894
9346
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
8895
9347
  }
8896
9348
  ),
8897
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9349
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8898
9350
  ProgressBar_default,
8899
9351
  {
8900
9352
  className: "w-full",
@@ -8914,7 +9366,7 @@ var QuizResultPerformance = (0, import_react25.forwardRef)(
8914
9366
  );
8915
9367
  }
8916
9368
  );
8917
- var QuizListResult = (0, import_react25.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
9369
+ var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
8918
9370
  const {
8919
9371
  getQuestionsGroupedBySubject,
8920
9372
  isQuestionAnswered,
@@ -8943,9 +9395,9 @@ var QuizListResult = (0, import_react25.forwardRef)(({ className, onSubjectClick
8943
9395
  };
8944
9396
  }
8945
9397
  );
8946
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { ref, className, ...props, children: [
8947
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
8948
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9398
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { ref, className, ...props, children: [
9399
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
9400
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8949
9401
  CardResults,
8950
9402
  {
8951
9403
  onClick: () => onSubjectClick?.(subject.subject),
@@ -8953,7 +9405,7 @@ var QuizListResult = (0, import_react25.forwardRef)(({ className, onSubjectClick
8953
9405
  header: subject.subject,
8954
9406
  correct_answers: subject.correct,
8955
9407
  incorrect_answers: subject.incorrect,
8956
- icon: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_phosphor_react18.Book, { size: 20 }),
9408
+ icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Book, { size: 20 }),
8957
9409
  direction: "row"
8958
9410
  }
8959
9411
  ) }, subject.subject)) })
@@ -8970,13 +9422,13 @@ var QuizListResultByMateria = ({
8970
9422
  } = useQuizStore();
8971
9423
  const groupedQuestions = getQuestionsGroupedBySubject();
8972
9424
  const answeredQuestions = groupedQuestions[subject] || [];
8973
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
8974
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
8975
- /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)("section", { className: "flex flex-col ", children: [
8976
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
8977
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
9425
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
9426
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
9427
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col ", children: [
9428
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
9429
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
8978
9430
  const questionIndex = getQuestionIndex(question.id);
8979
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
9431
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8980
9432
  CardStatus,
8981
9433
  {
8982
9434
  className: "max-w-full",
@@ -9089,6 +9541,7 @@ var QuizListResultByMateria = ({
9089
9541
  TextArea,
9090
9542
  Toast,
9091
9543
  Toaster,
9544
+ VideoPlayer,
9092
9545
  createZustandAuthAdapter,
9093
9546
  getRootDomain,
9094
9547
  getStatusBadge,