analytica-frontend-lib 1.1.4 → 1.1.6

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