analytica-frontend-lib 1.2.9 → 1.2.11

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
@@ -1864,11 +1864,16 @@ var TextArea = forwardRef7(
1864
1864
  onChange,
1865
1865
  placeholder,
1866
1866
  required,
1867
+ showCharacterCount = false,
1868
+ maxLength,
1869
+ value,
1867
1870
  ...props
1868
1871
  }, ref) => {
1869
1872
  const generatedId = useId4();
1870
1873
  const inputId = id ?? `textarea-${generatedId}`;
1871
1874
  const [isFocused, setIsFocused] = useState5(false);
1875
+ const currentLength = typeof value === "string" ? value.length : 0;
1876
+ const isNearLimit = maxLength && currentLength >= maxLength * 0.8;
1872
1877
  const handleChange = (event) => {
1873
1878
  onChange?.(event);
1874
1879
  };
@@ -1923,6 +1928,8 @@ var TextArea = forwardRef7(
1923
1928
  className: textareaClasses,
1924
1929
  placeholder,
1925
1930
  required,
1931
+ maxLength,
1932
+ value,
1926
1933
  ...props
1927
1934
  }
1928
1935
  ),
@@ -1931,7 +1938,21 @@ var TextArea = forwardRef7(
1931
1938
  " ",
1932
1939
  errorMessage
1933
1940
  ] }),
1934
- helperMessage && !errorMessage && /* @__PURE__ */ jsx14(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
1941
+ !errorMessage && showCharacterCount && maxLength && /* @__PURE__ */ jsxs10(
1942
+ Text_default,
1943
+ {
1944
+ size: "sm",
1945
+ weight: "normal",
1946
+ className: `mt-1.5 ${isNearLimit ? "text-indicator-warning" : "text-text-500"}`,
1947
+ children: [
1948
+ currentLength,
1949
+ "/",
1950
+ maxLength,
1951
+ " caracteres"
1952
+ ]
1953
+ }
1954
+ ),
1955
+ !errorMessage && helperMessage && !(showCharacterCount && maxLength) && /* @__PURE__ */ jsx14(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
1935
1956
  ] });
1936
1957
  }
1937
1958
  );
@@ -9004,6 +9025,35 @@ var NotFound = ({
9004
9025
  };
9005
9026
  var NotFound_default = NotFound;
9006
9027
 
9028
+ // src/components/NoSearchResult/NoSearchResult.tsx
9029
+ import { jsx as jsx46, jsxs as jsxs34 } from "react/jsx-runtime";
9030
+ var NoSearchResult = ({ image, title, description }) => {
9031
+ const displayTitle = title || "Nenhum resultado encontrado";
9032
+ const displayDescription = description || "N\xE3o encontramos nenhum resultado com esse nome. Tente revisar a busca ou usar outra palavra-chave.";
9033
+ return /* @__PURE__ */ jsxs34("div", { className: "flex flex-row justify-center items-center gap-8 w-full max-w-4xl min-h-96", children: [
9034
+ /* @__PURE__ */ jsx46("div", { className: "w-72 h-72 flex-shrink-0 relative", children: /* @__PURE__ */ jsx46(
9035
+ "img",
9036
+ {
9037
+ src: image,
9038
+ alt: "No search results",
9039
+ className: "w-full h-full object-contain"
9040
+ }
9041
+ ) }),
9042
+ /* @__PURE__ */ jsxs34("div", { className: "flex flex-col items-start w-full max-w-md", children: [
9043
+ /* @__PURE__ */ jsx46("div", { className: "flex flex-row justify-between items-end px-6 pt-6 pb-4 w-full rounded-t-xl", children: /* @__PURE__ */ jsx46(
9044
+ Text_default,
9045
+ {
9046
+ as: "h2",
9047
+ className: "text-text-950 font-semibold text-3xl leading-tight w-full flex items-center",
9048
+ children: displayTitle
9049
+ }
9050
+ ) }),
9051
+ /* @__PURE__ */ jsx46("div", { className: "flex flex-row justify-center items-center px-6 gap-2 w-full", children: /* @__PURE__ */ jsx46(Text_default, { className: "text-text-600 font-normal text-lg leading-relaxed w-full text-justify", children: displayDescription }) })
9052
+ ] })
9053
+ ] });
9054
+ };
9055
+ var NoSearchResult_default = NoSearchResult;
9056
+
9007
9057
  // src/components/VideoPlayer/VideoPlayer.tsx
9008
9058
  import {
9009
9059
  useRef as useRef11,
@@ -9026,7 +9076,7 @@ import {
9026
9076
  // src/components/DownloadButton/DownloadButton.tsx
9027
9077
  import { useCallback as useCallback2, useState as useState16 } from "react";
9028
9078
  import { DownloadSimple } from "phosphor-react";
9029
- import { jsx as jsx46 } from "react/jsx-runtime";
9079
+ import { jsx as jsx47 } from "react/jsx-runtime";
9030
9080
  var getMimeType = (url) => {
9031
9081
  const extension = getFileExtension(url);
9032
9082
  const mimeTypes = {
@@ -9183,10 +9233,10 @@ var DownloadButton = ({
9183
9233
  if (!hasContent) {
9184
9234
  return null;
9185
9235
  }
9186
- return /* @__PURE__ */ jsx46("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ jsx46(
9236
+ return /* @__PURE__ */ jsx47("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ jsx47(
9187
9237
  IconButton_default,
9188
9238
  {
9189
- icon: /* @__PURE__ */ jsx46(DownloadSimple, { size: 24 }),
9239
+ icon: /* @__PURE__ */ jsx47(DownloadSimple, { size: 24 }),
9190
9240
  onClick: handleDownload,
9191
9241
  disabled: disabled || isDownloading,
9192
9242
  "aria-label": (() => {
@@ -9207,7 +9257,7 @@ var DownloadButton = ({
9207
9257
  var DownloadButton_default = DownloadButton;
9208
9258
 
9209
9259
  // src/components/VideoPlayer/VideoPlayer.tsx
9210
- import { jsx as jsx47, jsxs as jsxs34 } from "react/jsx-runtime";
9260
+ import { jsx as jsx48, jsxs as jsxs35 } from "react/jsx-runtime";
9211
9261
  var CONTROLS_HIDE_TIMEOUT = 3e3;
9212
9262
  var LEAVE_HIDE_TIMEOUT = 1e3;
9213
9263
  var INIT_DELAY = 100;
@@ -9223,7 +9273,7 @@ var ProgressBar2 = ({
9223
9273
  progressPercentage,
9224
9274
  onSeek,
9225
9275
  className = "px-4 pb-2"
9226
- }) => /* @__PURE__ */ jsx47("div", { className, children: /* @__PURE__ */ jsx47(
9276
+ }) => /* @__PURE__ */ jsx48("div", { className, children: /* @__PURE__ */ jsx48(
9227
9277
  "input",
9228
9278
  {
9229
9279
  type: "range",
@@ -9245,17 +9295,17 @@ var VolumeControls = ({
9245
9295
  onToggleMute,
9246
9296
  iconSize = 24,
9247
9297
  showSlider = true
9248
- }) => /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2", children: [
9249
- /* @__PURE__ */ jsx47(
9298
+ }) => /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2", children: [
9299
+ /* @__PURE__ */ jsx48(
9250
9300
  IconButton_default,
9251
9301
  {
9252
- icon: isMuted ? /* @__PURE__ */ jsx47(SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ jsx47(SpeakerHigh2, { size: iconSize }),
9302
+ icon: isMuted ? /* @__PURE__ */ jsx48(SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ jsx48(SpeakerHigh2, { size: iconSize }),
9253
9303
  onClick: onToggleMute,
9254
9304
  "aria-label": isMuted ? "Unmute" : "Mute",
9255
9305
  className: "!bg-transparent !text-white hover:!bg-white/20"
9256
9306
  }
9257
9307
  ),
9258
- showSlider && /* @__PURE__ */ jsx47(
9308
+ showSlider && /* @__PURE__ */ jsx48(
9259
9309
  "input",
9260
9310
  {
9261
9311
  type: "range",
@@ -9312,7 +9362,7 @@ var SpeedMenu = ({
9312
9362
  document.removeEventListener("mousedown", handleClickOutside);
9313
9363
  };
9314
9364
  }, [showSpeedMenu, onToggleMenu]);
9315
- const menuContent = /* @__PURE__ */ jsx47(
9365
+ const menuContent = /* @__PURE__ */ jsx48(
9316
9366
  "div",
9317
9367
  {
9318
9368
  ref: speedMenuRef,
@@ -9323,7 +9373,7 @@ var SpeedMenu = ({
9323
9373
  top: `${position.top}px`,
9324
9374
  left: `${position.left}px`
9325
9375
  },
9326
- children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs34(
9376
+ children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs35(
9327
9377
  "button",
9328
9378
  {
9329
9379
  role: "menuitemradio",
@@ -9340,12 +9390,12 @@ var SpeedMenu = ({
9340
9390
  }
9341
9391
  );
9342
9392
  const portalContent = showSpeedMenu && globalThis.window !== void 0 && globalThis.document !== void 0 && !!globalThis.document?.body ? createPortal(menuContent, globalThis.document.body) : null;
9343
- return /* @__PURE__ */ jsxs34("div", { className: "relative", ref: speedMenuContainerRef, children: [
9344
- /* @__PURE__ */ jsx47(
9393
+ return /* @__PURE__ */ jsxs35("div", { className: "relative", ref: speedMenuContainerRef, children: [
9394
+ /* @__PURE__ */ jsx48(
9345
9395
  IconButton_default,
9346
9396
  {
9347
9397
  ref: buttonRef,
9348
- icon: /* @__PURE__ */ jsx47(DotsThreeVertical3, { size: iconSize }),
9398
+ icon: /* @__PURE__ */ jsx48(DotsThreeVertical3, { size: iconSize }),
9349
9399
  onClick: onToggleMenu,
9350
9400
  "aria-label": "Playback speed",
9351
9401
  "aria-haspopup": "menu",
@@ -9861,10 +9911,10 @@ var VideoPlayer = ({
9861
9911
  ]
9862
9912
  );
9863
9913
  const groupedSubTitleValid = subtitles && subtitlesValidation === "valid";
9864
- return /* @__PURE__ */ jsxs34("div", { className: cn("flex flex-col", className), children: [
9865
- (title || subtitleText) && /* @__PURE__ */ jsxs34("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
9866
- /* @__PURE__ */ jsxs34("div", { className: "flex flex-col gap-1", children: [
9867
- title && /* @__PURE__ */ jsx47(
9914
+ return /* @__PURE__ */ jsxs35("div", { className: cn("flex flex-col", className), children: [
9915
+ (title || subtitleText) && /* @__PURE__ */ jsxs35("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
9916
+ /* @__PURE__ */ jsxs35("div", { className: "flex flex-col gap-1", children: [
9917
+ title && /* @__PURE__ */ jsx48(
9868
9918
  Text_default,
9869
9919
  {
9870
9920
  as: "h2",
@@ -9875,7 +9925,7 @@ var VideoPlayer = ({
9875
9925
  children: title
9876
9926
  }
9877
9927
  ),
9878
- subtitleText && /* @__PURE__ */ jsx47(
9928
+ subtitleText && /* @__PURE__ */ jsx48(
9879
9929
  Text_default,
9880
9930
  {
9881
9931
  as: "p",
@@ -9887,7 +9937,7 @@ var VideoPlayer = ({
9887
9937
  }
9888
9938
  )
9889
9939
  ] }),
9890
- showDownloadButton && downloadContent && /* @__PURE__ */ jsx47(
9940
+ showDownloadButton && downloadContent && /* @__PURE__ */ jsx48(
9891
9941
  DownloadButton_default,
9892
9942
  {
9893
9943
  content: downloadContent,
@@ -9899,7 +9949,7 @@ var VideoPlayer = ({
9899
9949
  }
9900
9950
  )
9901
9951
  ] }),
9902
- /* @__PURE__ */ jsxs34(
9952
+ /* @__PURE__ */ jsxs35(
9903
9953
  "section",
9904
9954
  {
9905
9955
  className: cn(
@@ -9914,7 +9964,7 @@ var VideoPlayer = ({
9914
9964
  onTouchStart: handleMouseEnter,
9915
9965
  onMouseLeave: handleMouseLeave,
9916
9966
  children: [
9917
- /* @__PURE__ */ jsx47(
9967
+ /* @__PURE__ */ jsx48(
9918
9968
  "video",
9919
9969
  {
9920
9970
  ref: videoRef,
@@ -9929,7 +9979,7 @@ var VideoPlayer = ({
9929
9979
  onKeyDown: handleVideoKeyDown,
9930
9980
  tabIndex: 0,
9931
9981
  "aria-label": title ? `Video: ${title}` : "Video player",
9932
- children: /* @__PURE__ */ jsx47(
9982
+ children: /* @__PURE__ */ jsx48(
9933
9983
  "track",
9934
9984
  {
9935
9985
  ref: trackRef,
@@ -9942,17 +9992,17 @@ var VideoPlayer = ({
9942
9992
  )
9943
9993
  }
9944
9994
  ),
9945
- !isPlaying && /* @__PURE__ */ jsx47(
9995
+ !isPlaying && /* @__PURE__ */ jsx48(
9946
9996
  "div",
9947
9997
  {
9948
9998
  className: cn(
9949
9999
  "absolute inset-0 flex bg-black/30 transition-opacity",
9950
10000
  getCenterPlayButtonPosition()
9951
10001
  ),
9952
- children: /* @__PURE__ */ jsx47(
10002
+ children: /* @__PURE__ */ jsx48(
9953
10003
  IconButton_default,
9954
10004
  {
9955
- icon: /* @__PURE__ */ jsx47(Play2, { size: 32, weight: "regular", className: "ml-1" }),
10005
+ icon: /* @__PURE__ */ jsx48(Play2, { size: 32, weight: "regular", className: "ml-1" }),
9956
10006
  onClick: togglePlayPause,
9957
10007
  "aria-label": "Play video",
9958
10008
  className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
@@ -9960,17 +10010,17 @@ var VideoPlayer = ({
9960
10010
  )
9961
10011
  }
9962
10012
  ),
9963
- /* @__PURE__ */ jsx47(
10013
+ /* @__PURE__ */ jsx48(
9964
10014
  "div",
9965
10015
  {
9966
10016
  className: cn(
9967
10017
  "absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
9968
10018
  getTopControlsOpacity()
9969
10019
  ),
9970
- children: /* @__PURE__ */ jsx47("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx47(
10020
+ children: /* @__PURE__ */ jsx48("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx48(
9971
10021
  IconButton_default,
9972
10022
  {
9973
- icon: isFullscreen ? /* @__PURE__ */ jsx47(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx47(ArrowsOutSimple, { size: 24 }),
10023
+ icon: isFullscreen ? /* @__PURE__ */ jsx48(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx48(ArrowsOutSimple, { size: 24 }),
9974
10024
  onClick: toggleFullscreen,
9975
10025
  "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
9976
10026
  className: "!bg-transparent !text-white hover:!bg-white/20"
@@ -9978,7 +10028,7 @@ var VideoPlayer = ({
9978
10028
  ) })
9979
10029
  }
9980
10030
  ),
9981
- /* @__PURE__ */ jsxs34(
10031
+ /* @__PURE__ */ jsxs35(
9982
10032
  "div",
9983
10033
  {
9984
10034
  className: cn(
@@ -9986,7 +10036,7 @@ var VideoPlayer = ({
9986
10036
  getBottomControlsOpacity()
9987
10037
  ),
9988
10038
  children: [
9989
- /* @__PURE__ */ jsx47(
10039
+ /* @__PURE__ */ jsx48(
9990
10040
  ProgressBar2,
9991
10041
  {
9992
10042
  currentTime,
@@ -9996,7 +10046,7 @@ var VideoPlayer = ({
9996
10046
  className: getProgressBarPadding()
9997
10047
  }
9998
10048
  ),
9999
- /* @__PURE__ */ jsxs34(
10049
+ /* @__PURE__ */ jsxs35(
10000
10050
  "div",
10001
10051
  {
10002
10052
  className: cn(
@@ -10004,17 +10054,17 @@ var VideoPlayer = ({
10004
10054
  getControlsPadding()
10005
10055
  ),
10006
10056
  children: [
10007
- /* @__PURE__ */ jsxs34("div", { className: cn("flex items-center", getControlsGap()), children: [
10008
- /* @__PURE__ */ jsx47(
10057
+ /* @__PURE__ */ jsxs35("div", { className: cn("flex items-center", getControlsGap()), children: [
10058
+ /* @__PURE__ */ jsx48(
10009
10059
  IconButton_default,
10010
10060
  {
10011
- icon: isPlaying ? /* @__PURE__ */ jsx47(Pause, { size: getIconSize2() }) : /* @__PURE__ */ jsx47(Play2, { size: getIconSize2() }),
10061
+ icon: isPlaying ? /* @__PURE__ */ jsx48(Pause, { size: getIconSize2() }) : /* @__PURE__ */ jsx48(Play2, { size: getIconSize2() }),
10012
10062
  onClick: togglePlayPause,
10013
10063
  "aria-label": isPlaying ? "Pause" : "Play",
10014
10064
  className: "!bg-transparent !text-white hover:!bg-white/20"
10015
10065
  }
10016
10066
  ),
10017
- /* @__PURE__ */ jsx47(
10067
+ /* @__PURE__ */ jsx48(
10018
10068
  VolumeControls,
10019
10069
  {
10020
10070
  volume,
@@ -10025,10 +10075,10 @@ var VideoPlayer = ({
10025
10075
  showSlider: !isUltraSmallMobile
10026
10076
  }
10027
10077
  ),
10028
- groupedSubTitleValid && /* @__PURE__ */ jsx47(
10078
+ groupedSubTitleValid && /* @__PURE__ */ jsx48(
10029
10079
  IconButton_default,
10030
10080
  {
10031
- icon: /* @__PURE__ */ jsx47(ClosedCaptioning, { size: getIconSize2() }),
10081
+ icon: /* @__PURE__ */ jsx48(ClosedCaptioning, { size: getIconSize2() }),
10032
10082
  onClick: toggleCaptions,
10033
10083
  "aria-label": showCaptions ? "Hide captions" : "Show captions",
10034
10084
  className: cn(
@@ -10037,13 +10087,13 @@ var VideoPlayer = ({
10037
10087
  )
10038
10088
  }
10039
10089
  ),
10040
- /* @__PURE__ */ jsxs34(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
10090
+ /* @__PURE__ */ jsxs35(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
10041
10091
  formatTime(currentTime),
10042
10092
  " / ",
10043
10093
  formatTime(duration)
10044
10094
  ] })
10045
10095
  ] }),
10046
- /* @__PURE__ */ jsx47("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx47(
10096
+ /* @__PURE__ */ jsx48("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx48(
10047
10097
  SpeedMenu,
10048
10098
  {
10049
10099
  showSpeedMenu,
@@ -10071,7 +10121,7 @@ var VideoPlayer_default = VideoPlayer;
10071
10121
  // src/components/Whiteboard/Whiteboard.tsx
10072
10122
  import { useCallback as useCallback4, useState as useState18 } from "react";
10073
10123
  import { ArrowsOut } from "phosphor-react";
10074
- import { Fragment as Fragment9, jsx as jsx48, jsxs as jsxs35 } from "react/jsx-runtime";
10124
+ import { Fragment as Fragment9, jsx as jsx49, jsxs as jsxs36 } from "react/jsx-runtime";
10075
10125
  var IMAGE_WIDTH = 225;
10076
10126
  var IMAGE_HEIGHT = 90;
10077
10127
  var Whiteboard = ({
@@ -10109,7 +10159,7 @@ var Whiteboard = ({
10109
10159
  4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
10110
10160
  }[imagesPerRow];
10111
10161
  if (!images || images.length === 0) {
10112
- return /* @__PURE__ */ jsx48(
10162
+ return /* @__PURE__ */ jsx49(
10113
10163
  "div",
10114
10164
  {
10115
10165
  className: cn(
@@ -10117,11 +10167,11 @@ var Whiteboard = ({
10117
10167
  className
10118
10168
  ),
10119
10169
  ...rest,
10120
- children: /* @__PURE__ */ jsx48("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
10170
+ children: /* @__PURE__ */ jsx49("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
10121
10171
  }
10122
10172
  );
10123
10173
  }
10124
- return /* @__PURE__ */ jsx48(
10174
+ return /* @__PURE__ */ jsx49(
10125
10175
  "div",
10126
10176
  {
10127
10177
  className: cn(
@@ -10129,7 +10179,7 @@ var Whiteboard = ({
10129
10179
  className
10130
10180
  ),
10131
10181
  ...rest,
10132
- children: /* @__PURE__ */ jsx48("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs35(
10182
+ children: /* @__PURE__ */ jsx49("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs36(
10133
10183
  "div",
10134
10184
  {
10135
10185
  className: "relative group overflow-hidden bg-gray-100 rounded-lg",
@@ -10137,7 +10187,7 @@ var Whiteboard = ({
10137
10187
  width: `${IMAGE_WIDTH}px`
10138
10188
  },
10139
10189
  children: [
10140
- /* @__PURE__ */ jsx48(
10190
+ /* @__PURE__ */ jsx49(
10141
10191
  "div",
10142
10192
  {
10143
10193
  className: "relative",
@@ -10145,8 +10195,8 @@ var Whiteboard = ({
10145
10195
  width: `${IMAGE_WIDTH}px`,
10146
10196
  height: `${IMAGE_HEIGHT}px`
10147
10197
  },
10148
- children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx48("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx48("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs35(Fragment9, { children: [
10149
- /* @__PURE__ */ jsx48(
10198
+ children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx49("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx49("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs36(Fragment9, { children: [
10199
+ /* @__PURE__ */ jsx49(
10150
10200
  "img",
10151
10201
  {
10152
10202
  src: image.imageUrl,
@@ -10156,18 +10206,18 @@ var Whiteboard = ({
10156
10206
  onError: () => handleImageError(image.id)
10157
10207
  }
10158
10208
  ),
10159
- /* @__PURE__ */ jsx48("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
10209
+ /* @__PURE__ */ jsx49("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
10160
10210
  ] })
10161
10211
  }
10162
10212
  ),
10163
- showDownload && /* @__PURE__ */ jsx48(
10213
+ showDownload && /* @__PURE__ */ jsx49(
10164
10214
  "button",
10165
10215
  {
10166
10216
  type: "button",
10167
10217
  onClick: () => handleDownload(image),
10168
10218
  className: "cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
10169
10219
  "aria-label": `Download ${image.title || "imagem"}`,
10170
- children: /* @__PURE__ */ jsx48(
10220
+ children: /* @__PURE__ */ jsx49(
10171
10221
  ArrowsOut,
10172
10222
  {
10173
10223
  size: 24,
@@ -10196,7 +10246,7 @@ import {
10196
10246
  useMemo as useMemo6
10197
10247
  } from "react";
10198
10248
  import { useLocation, Navigate } from "react-router-dom";
10199
- import { Fragment as Fragment10, jsx as jsx49 } from "react/jsx-runtime";
10249
+ import { Fragment as Fragment10, jsx as jsx50 } from "react/jsx-runtime";
10200
10250
  var AuthContext = createContext(void 0);
10201
10251
  var AuthProvider = ({
10202
10252
  children,
@@ -10266,7 +10316,7 @@ var AuthProvider = ({
10266
10316
  }),
10267
10317
  [authState, checkAuth, signOut]
10268
10318
  );
10269
- return /* @__PURE__ */ jsx49(AuthContext.Provider, { value: contextValue, children });
10319
+ return /* @__PURE__ */ jsx50(AuthContext.Provider, { value: contextValue, children });
10270
10320
  };
10271
10321
  var useAuth = () => {
10272
10322
  const context = useContext(AuthContext);
@@ -10282,9 +10332,9 @@ var ProtectedRoute = ({
10282
10332
  additionalCheck
10283
10333
  }) => {
10284
10334
  const { isAuthenticated, isLoading, ...authState } = useAuth();
10285
- const defaultLoadingComponent = /* @__PURE__ */ jsx49("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx49("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10335
+ const defaultLoadingComponent = /* @__PURE__ */ jsx50("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx50("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10286
10336
  if (isLoading) {
10287
- return /* @__PURE__ */ jsx49(Fragment10, { children: loadingComponent || defaultLoadingComponent });
10337
+ return /* @__PURE__ */ jsx50(Fragment10, { children: loadingComponent || defaultLoadingComponent });
10288
10338
  }
10289
10339
  if (!isAuthenticated) {
10290
10340
  if (typeof window !== "undefined") {
@@ -10295,12 +10345,12 @@ var ProtectedRoute = ({
10295
10345
  return null;
10296
10346
  }
10297
10347
  }
10298
- return /* @__PURE__ */ jsx49(Navigate, { to: redirectTo, replace: true });
10348
+ return /* @__PURE__ */ jsx50(Navigate, { to: redirectTo, replace: true });
10299
10349
  }
10300
10350
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
10301
- return /* @__PURE__ */ jsx49(Navigate, { to: redirectTo, replace: true });
10351
+ return /* @__PURE__ */ jsx50(Navigate, { to: redirectTo, replace: true });
10302
10352
  }
10303
- return /* @__PURE__ */ jsx49(Fragment10, { children });
10353
+ return /* @__PURE__ */ jsx50(Fragment10, { children });
10304
10354
  };
10305
10355
  var PublicRoute = ({
10306
10356
  children,
@@ -10310,15 +10360,15 @@ var PublicRoute = ({
10310
10360
  }) => {
10311
10361
  const { isAuthenticated, isLoading } = useAuth();
10312
10362
  if (checkAuthBeforeRender && isLoading) {
10313
- return /* @__PURE__ */ jsx49("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx49("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10363
+ return /* @__PURE__ */ jsx50("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx50("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10314
10364
  }
10315
10365
  if (isAuthenticated && redirectIfAuthenticated) {
10316
- return /* @__PURE__ */ jsx49(Navigate, { to: redirectTo, replace: true });
10366
+ return /* @__PURE__ */ jsx50(Navigate, { to: redirectTo, replace: true });
10317
10367
  }
10318
- return /* @__PURE__ */ jsx49(Fragment10, { children });
10368
+ return /* @__PURE__ */ jsx50(Fragment10, { children });
10319
10369
  };
10320
10370
  var withAuth = (Component, options = {}) => {
10321
- return (props) => /* @__PURE__ */ jsx49(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx49(Component, { ...props }) });
10371
+ return (props) => /* @__PURE__ */ jsx50(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx50(Component, { ...props }) });
10322
10372
  };
10323
10373
  var useAuthGuard = (options = {}) => {
10324
10374
  const authState = useAuth();
@@ -10333,7 +10383,7 @@ var useAuthGuard = (options = {}) => {
10333
10383
  var useRouteAuth = (fallbackPath = "/") => {
10334
10384
  const { isAuthenticated, isLoading } = useAuth();
10335
10385
  const location = useLocation();
10336
- const redirectToLogin = () => /* @__PURE__ */ jsx49(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
10386
+ const redirectToLogin = () => /* @__PURE__ */ jsx50(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
10337
10387
  return {
10338
10388
  isAuthenticated,
10339
10389
  isLoading,
@@ -10374,7 +10424,7 @@ import {
10374
10424
  useEffect as useEffect19
10375
10425
  } from "react";
10376
10426
  import { CaretRight as CaretRight4 } from "phosphor-react";
10377
- import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
10427
+ import { jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
10378
10428
  var CardAccordation = forwardRef18(
10379
10429
  ({
10380
10430
  trigger,
@@ -10413,7 +10463,7 @@ var CardAccordation = forwardRef18(
10413
10463
  handleToggle();
10414
10464
  }
10415
10465
  };
10416
- return /* @__PURE__ */ jsxs36(
10466
+ return /* @__PURE__ */ jsxs37(
10417
10467
  CardBase,
10418
10468
  {
10419
10469
  ref,
@@ -10423,7 +10473,7 @@ var CardAccordation = forwardRef18(
10423
10473
  className: cn("overflow-hidden", className),
10424
10474
  ...props,
10425
10475
  children: [
10426
- /* @__PURE__ */ jsxs36(
10476
+ /* @__PURE__ */ jsxs37(
10427
10477
  "button",
10428
10478
  {
10429
10479
  id: headerId,
@@ -10441,7 +10491,7 @@ var CardAccordation = forwardRef18(
10441
10491
  "data-value": value,
10442
10492
  children: [
10443
10493
  trigger,
10444
- /* @__PURE__ */ jsx50(
10494
+ /* @__PURE__ */ jsx51(
10445
10495
  CaretRight4,
10446
10496
  {
10447
10497
  size: 20,
@@ -10456,7 +10506,7 @@ var CardAccordation = forwardRef18(
10456
10506
  ]
10457
10507
  }
10458
10508
  ),
10459
- /* @__PURE__ */ jsx50(
10509
+ /* @__PURE__ */ jsx51(
10460
10510
  "section",
10461
10511
  {
10462
10512
  id: contentId,
@@ -10468,7 +10518,7 @@ var CardAccordation = forwardRef18(
10468
10518
  ),
10469
10519
  "data-testid": "accordion-content",
10470
10520
  "data-value": value,
10471
- children: /* @__PURE__ */ jsx50("div", { className: "p-4 pt-0", children })
10521
+ children: /* @__PURE__ */ jsx51("div", { className: "p-4 pt-0", children })
10472
10522
  }
10473
10523
  )
10474
10524
  ]
@@ -10489,7 +10539,7 @@ import {
10489
10539
  useState as useState21
10490
10540
  } from "react";
10491
10541
  import { create as create9 } from "zustand";
10492
- import { jsx as jsx51 } from "react/jsx-runtime";
10542
+ import { jsx as jsx52 } from "react/jsx-runtime";
10493
10543
  function createAccordionGroupStore(type, initialValue, collapsible) {
10494
10544
  return create9((set, get) => ({
10495
10545
  type,
@@ -10629,7 +10679,7 @@ var AccordionGroup = forwardRef19(
10629
10679
  indexRef,
10630
10680
  handleItemToggle
10631
10681
  );
10632
- return /* @__PURE__ */ jsx51("div", { ref, className, ...props, children: enhancedChildren });
10682
+ return /* @__PURE__ */ jsx52("div", { ref, className, ...props, children: enhancedChildren });
10633
10683
  }
10634
10684
  );
10635
10685
  AccordionGroup.displayName = "AccordionGroup";
@@ -10637,7 +10687,7 @@ AccordionGroup.displayName = "AccordionGroup";
10637
10687
  // src/components/Alternative/Alternative.tsx
10638
10688
  import { CheckCircle as CheckCircle4, XCircle as XCircle3 } from "phosphor-react";
10639
10689
  import { forwardRef as forwardRef20, useId as useId10, useState as useState22 } from "react";
10640
- import { jsx as jsx52, jsxs as jsxs37 } from "react/jsx-runtime";
10690
+ import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
10641
10691
  var AlternativesList = ({
10642
10692
  alternatives,
10643
10693
  name,
@@ -10668,9 +10718,9 @@ var AlternativesList = ({
10668
10718
  const getStatusBadge2 = (status) => {
10669
10719
  switch (status) {
10670
10720
  case "correct":
10671
- return /* @__PURE__ */ jsx52(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx52(CheckCircle4, {}), children: "Resposta correta" });
10721
+ return /* @__PURE__ */ jsx53(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx53(CheckCircle4, {}), children: "Resposta correta" });
10672
10722
  case "incorrect":
10673
- return /* @__PURE__ */ jsx52(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx52(XCircle3, {}), children: "Resposta incorreta" });
10723
+ return /* @__PURE__ */ jsx53(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx53(XCircle3, {}), children: "Resposta incorreta" });
10674
10724
  default:
10675
10725
  return null;
10676
10726
  }
@@ -10700,10 +10750,10 @@ var AlternativesList = ({
10700
10750
  const renderRadio = () => {
10701
10751
  const radioClasses = `w-6 h-6 rounded-full border-2 cursor-default transition-all duration-200 flex items-center justify-center ${isUserSelected ? "border-primary-950 bg-background" : "border-border-400 bg-background"}`;
10702
10752
  const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
10703
- return /* @__PURE__ */ jsx52("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx52("div", { className: dotClasses }) });
10753
+ return /* @__PURE__ */ jsx53("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx53("div", { className: dotClasses }) });
10704
10754
  };
10705
10755
  if (layout === "detailed") {
10706
- return /* @__PURE__ */ jsx52(
10756
+ return /* @__PURE__ */ jsx53(
10707
10757
  "div",
10708
10758
  {
10709
10759
  className: cn(
@@ -10711,11 +10761,11 @@ var AlternativesList = ({
10711
10761
  statusStyles,
10712
10762
  alternative.disabled ? "opacity-50" : ""
10713
10763
  ),
10714
- children: /* @__PURE__ */ jsxs37("div", { className: "flex items-start justify-between gap-3", children: [
10715
- /* @__PURE__ */ jsxs37("div", { className: "flex items-start gap-3 flex-1", children: [
10716
- /* @__PURE__ */ jsx52("div", { className: "mt-1", children: renderRadio() }),
10717
- /* @__PURE__ */ jsxs37("div", { className: "flex-1", children: [
10718
- /* @__PURE__ */ jsx52(
10764
+ children: /* @__PURE__ */ jsxs38("div", { className: "flex items-start justify-between gap-3", children: [
10765
+ /* @__PURE__ */ jsxs38("div", { className: "flex items-start gap-3 flex-1", children: [
10766
+ /* @__PURE__ */ jsx53("div", { className: "mt-1", children: renderRadio() }),
10767
+ /* @__PURE__ */ jsxs38("div", { className: "flex-1", children: [
10768
+ /* @__PURE__ */ jsx53(
10719
10769
  "p",
10720
10770
  {
10721
10771
  className: cn(
@@ -10725,16 +10775,16 @@ var AlternativesList = ({
10725
10775
  children: alternative.label
10726
10776
  }
10727
10777
  ),
10728
- alternative.description && /* @__PURE__ */ jsx52("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10778
+ alternative.description && /* @__PURE__ */ jsx53("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10729
10779
  ] })
10730
10780
  ] }),
10731
- statusBadge && /* @__PURE__ */ jsx52("div", { className: "flex-shrink-0", children: statusBadge })
10781
+ statusBadge && /* @__PURE__ */ jsx53("div", { className: "flex-shrink-0", children: statusBadge })
10732
10782
  ] })
10733
10783
  },
10734
10784
  alternativeId
10735
10785
  );
10736
10786
  }
10737
- return /* @__PURE__ */ jsxs37(
10787
+ return /* @__PURE__ */ jsxs38(
10738
10788
  "div",
10739
10789
  {
10740
10790
  className: cn(
@@ -10743,9 +10793,9 @@ var AlternativesList = ({
10743
10793
  alternative.disabled ? "opacity-50" : ""
10744
10794
  ),
10745
10795
  children: [
10746
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2 flex-1", children: [
10796
+ /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2 flex-1", children: [
10747
10797
  renderRadio(),
10748
- /* @__PURE__ */ jsx52(
10798
+ /* @__PURE__ */ jsx53(
10749
10799
  "span",
10750
10800
  {
10751
10801
  className: cn(
@@ -10756,14 +10806,14 @@ var AlternativesList = ({
10756
10806
  }
10757
10807
  )
10758
10808
  ] }),
10759
- statusBadge && /* @__PURE__ */ jsx52("div", { className: "flex-shrink-0", children: statusBadge })
10809
+ statusBadge && /* @__PURE__ */ jsx53("div", { className: "flex-shrink-0", children: statusBadge })
10760
10810
  ]
10761
10811
  },
10762
10812
  alternativeId
10763
10813
  );
10764
10814
  };
10765
10815
  if (isReadonly) {
10766
- return /* @__PURE__ */ jsx52(
10816
+ return /* @__PURE__ */ jsx53(
10767
10817
  "div",
10768
10818
  {
10769
10819
  className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
@@ -10773,7 +10823,7 @@ var AlternativesList = ({
10773
10823
  }
10774
10824
  );
10775
10825
  }
10776
- return /* @__PURE__ */ jsx52(
10826
+ return /* @__PURE__ */ jsx53(
10777
10827
  RadioGroup,
10778
10828
  {
10779
10829
  name: groupName,
@@ -10790,7 +10840,7 @@ var AlternativesList = ({
10790
10840
  const statusStyles = getStatusStyles2(alternative.status, false);
10791
10841
  const statusBadge = getStatusBadge2(alternative.status);
10792
10842
  if (layout === "detailed") {
10793
- return /* @__PURE__ */ jsx52(
10843
+ return /* @__PURE__ */ jsx53(
10794
10844
  "div",
10795
10845
  {
10796
10846
  className: cn(
@@ -10798,9 +10848,9 @@ var AlternativesList = ({
10798
10848
  statusStyles,
10799
10849
  alternative.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
10800
10850
  ),
10801
- children: /* @__PURE__ */ jsxs37("div", { className: "flex items-start justify-between gap-3", children: [
10802
- /* @__PURE__ */ jsxs37("div", { className: "flex items-start gap-3 flex-1", children: [
10803
- /* @__PURE__ */ jsx52(
10851
+ children: /* @__PURE__ */ jsxs38("div", { className: "flex items-start justify-between gap-3", children: [
10852
+ /* @__PURE__ */ jsxs38("div", { className: "flex items-start gap-3 flex-1", children: [
10853
+ /* @__PURE__ */ jsx53(
10804
10854
  RadioGroupItem,
10805
10855
  {
10806
10856
  value: alternative.value,
@@ -10809,8 +10859,8 @@ var AlternativesList = ({
10809
10859
  className: "mt-1"
10810
10860
  }
10811
10861
  ),
10812
- /* @__PURE__ */ jsxs37("div", { className: "flex-1", children: [
10813
- /* @__PURE__ */ jsx52(
10862
+ /* @__PURE__ */ jsxs38("div", { className: "flex-1", children: [
10863
+ /* @__PURE__ */ jsx53(
10814
10864
  "label",
10815
10865
  {
10816
10866
  htmlFor: alternativeId,
@@ -10822,16 +10872,16 @@ var AlternativesList = ({
10822
10872
  children: alternative.label
10823
10873
  }
10824
10874
  ),
10825
- alternative.description && /* @__PURE__ */ jsx52("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10875
+ alternative.description && /* @__PURE__ */ jsx53("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10826
10876
  ] })
10827
10877
  ] }),
10828
- statusBadge && /* @__PURE__ */ jsx52("div", { className: "flex-shrink-0", children: statusBadge })
10878
+ statusBadge && /* @__PURE__ */ jsx53("div", { className: "flex-shrink-0", children: statusBadge })
10829
10879
  ] })
10830
10880
  },
10831
10881
  alternativeId
10832
10882
  );
10833
10883
  }
10834
- return /* @__PURE__ */ jsxs37(
10884
+ return /* @__PURE__ */ jsxs38(
10835
10885
  "div",
10836
10886
  {
10837
10887
  className: cn(
@@ -10840,8 +10890,8 @@ var AlternativesList = ({
10840
10890
  alternative.disabled ? "opacity-50 cursor-not-allowed" : ""
10841
10891
  ),
10842
10892
  children: [
10843
- /* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2 flex-1", children: [
10844
- /* @__PURE__ */ jsx52(
10893
+ /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2 flex-1", children: [
10894
+ /* @__PURE__ */ jsx53(
10845
10895
  RadioGroupItem,
10846
10896
  {
10847
10897
  value: alternative.value,
@@ -10849,7 +10899,7 @@ var AlternativesList = ({
10849
10899
  disabled: alternative.disabled
10850
10900
  }
10851
10901
  ),
10852
- /* @__PURE__ */ jsx52(
10902
+ /* @__PURE__ */ jsx53(
10853
10903
  "label",
10854
10904
  {
10855
10905
  htmlFor: alternativeId,
@@ -10862,7 +10912,7 @@ var AlternativesList = ({
10862
10912
  }
10863
10913
  )
10864
10914
  ] }),
10865
- statusBadge && /* @__PURE__ */ jsx52("div", { className: "flex-shrink-0", children: statusBadge })
10915
+ statusBadge && /* @__PURE__ */ jsx53("div", { className: "flex-shrink-0", children: statusBadge })
10866
10916
  ]
10867
10917
  },
10868
10918
  alternativeId
@@ -10873,7 +10923,7 @@ var AlternativesList = ({
10873
10923
  };
10874
10924
  var HeaderAlternative = forwardRef20(
10875
10925
  ({ className, title, subTitle, content, ...props }, ref) => {
10876
- return /* @__PURE__ */ jsxs37(
10926
+ return /* @__PURE__ */ jsxs38(
10877
10927
  "div",
10878
10928
  {
10879
10929
  ref,
@@ -10883,11 +10933,11 @@ var HeaderAlternative = forwardRef20(
10883
10933
  ),
10884
10934
  ...props,
10885
10935
  children: [
10886
- /* @__PURE__ */ jsxs37("span", { className: "flex flex-col", children: [
10887
- /* @__PURE__ */ jsx52("p", { className: "text-text-950 font-bold text-lg", children: title }),
10888
- /* @__PURE__ */ jsx52("p", { className: "text-text-700 text-sm ", children: subTitle })
10936
+ /* @__PURE__ */ jsxs38("span", { className: "flex flex-col", children: [
10937
+ /* @__PURE__ */ jsx53("p", { className: "text-text-950 font-bold text-lg", children: title }),
10938
+ /* @__PURE__ */ jsx53("p", { className: "text-text-700 text-sm ", children: subTitle })
10889
10939
  ] }),
10890
- /* @__PURE__ */ jsx52("p", { className: "text-text-950 text-md", children: content })
10940
+ /* @__PURE__ */ jsx53("p", { className: "text-text-950 text-md", children: content })
10891
10941
  ]
10892
10942
  }
10893
10943
  );
@@ -11194,6 +11244,7 @@ var useQuizStore = create10()(
11194
11244
  userId: "",
11195
11245
  variant: "default",
11196
11246
  minuteCallback: null,
11247
+ dissertativeCharLimit: void 0,
11197
11248
  questionsResult: null,
11198
11249
  currentQuestionResult: null,
11199
11250
  // Setters
@@ -11203,6 +11254,8 @@ var useQuizStore = create10()(
11203
11254
  getUserId: () => get().userId,
11204
11255
  setVariant: (variant) => set({ variant }),
11205
11256
  setQuestionResult: (questionsResult) => set({ questionsResult }),
11257
+ setDissertativeCharLimit: (limit) => set({ dissertativeCharLimit: limit }),
11258
+ getDissertativeCharLimit: () => get().dissertativeCharLimit,
11206
11259
  // Navigation
11207
11260
  goToNextQuestion: () => {
11208
11261
  const { currentQuestionIndex, getTotalQuestions } = get();
@@ -11292,7 +11345,7 @@ var useQuizStore = create10()(
11292
11345
  });
11293
11346
  },
11294
11347
  selectDissertativeAnswer: (questionId, answer) => {
11295
- const { quiz, userAnswers } = get();
11348
+ const { quiz, userAnswers, dissertativeCharLimit } = get();
11296
11349
  if (!quiz) return;
11297
11350
  const activityId = quiz.id;
11298
11351
  const userId = get().getUserId();
@@ -11303,6 +11356,10 @@ var useQuizStore = create10()(
11303
11356
  if (!question || question.questionType !== "DISSERTATIVA" /* DISSERTATIVA */) {
11304
11357
  return;
11305
11358
  }
11359
+ let validatedAnswer = answer;
11360
+ if (dissertativeCharLimit !== void 0 && answer.length > dissertativeCharLimit) {
11361
+ validatedAnswer = answer.substring(0, dissertativeCharLimit);
11362
+ }
11306
11363
  const existingAnswerIndex = userAnswers.findIndex(
11307
11364
  (answerItem) => answerItem.questionId === questionId
11308
11365
  );
@@ -11310,7 +11367,7 @@ var useQuizStore = create10()(
11310
11367
  questionId,
11311
11368
  activityId,
11312
11369
  userId,
11313
- answer,
11370
+ answer: validatedAnswer,
11314
11371
  optionId: null,
11315
11372
  questionType: "DISSERTATIVA" /* DISSERTATIVA */,
11316
11373
  answerStatus: "PENDENTE_AVALIACAO" /* PENDENTE_AVALIACAO */
@@ -11423,6 +11480,7 @@ var useQuizStore = create10()(
11423
11480
  userId: "",
11424
11481
  variant: "default",
11425
11482
  minuteCallback: null,
11483
+ dissertativeCharLimit: void 0,
11426
11484
  questionsResult: null,
11427
11485
  currentQuestionResult: null
11428
11486
  });
@@ -11694,7 +11752,7 @@ import {
11694
11752
  // src/components/MultipleChoice/MultipleChoice.tsx
11695
11753
  import { useEffect as useEffect22, useState as useState23 } from "react";
11696
11754
  import { CheckCircle as CheckCircle5, XCircle as XCircle4, Check as Check5 } from "phosphor-react";
11697
- import { jsx as jsx53, jsxs as jsxs38 } from "react/jsx-runtime";
11755
+ import { jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
11698
11756
  var MultipleChoiceList = ({
11699
11757
  disabled = false,
11700
11758
  className = "",
@@ -11711,9 +11769,9 @@ var MultipleChoiceList = ({
11711
11769
  const getStatusBadge2 = (status) => {
11712
11770
  switch (status) {
11713
11771
  case "correct":
11714
- return /* @__PURE__ */ jsx53(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx53(CheckCircle5, {}), children: "Resposta correta" });
11772
+ return /* @__PURE__ */ jsx54(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx54(CheckCircle5, {}), children: "Resposta correta" });
11715
11773
  case "incorrect":
11716
- return /* @__PURE__ */ jsx53(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx53(XCircle4, {}), children: "Resposta incorreta" });
11774
+ return /* @__PURE__ */ jsx54(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx54(XCircle4, {}), children: "Resposta incorreta" });
11717
11775
  default:
11718
11776
  return null;
11719
11777
  }
@@ -11734,14 +11792,14 @@ var MultipleChoiceList = ({
11734
11792
  isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
11735
11793
  isDisabled && "opacity-40 cursor-not-allowed"
11736
11794
  );
11737
- return /* @__PURE__ */ jsx53("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ jsx53(Check5, { size: 16, weight: "bold" }) });
11795
+ return /* @__PURE__ */ jsx54("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ jsx54(Check5, { size: 16, weight: "bold" }) });
11738
11796
  };
11739
11797
  if (mode === "readonly") {
11740
- return /* @__PURE__ */ jsx53("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
11798
+ return /* @__PURE__ */ jsx54("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
11741
11799
  const isSelected = actualValue?.includes(choice.value) || false;
11742
11800
  const statusStyles = getStatusStyles2(choice.status);
11743
11801
  const statusBadge = getStatusBadge2(choice.status);
11744
- return /* @__PURE__ */ jsxs38(
11802
+ return /* @__PURE__ */ jsxs39(
11745
11803
  "div",
11746
11804
  {
11747
11805
  className: cn(
@@ -11750,9 +11808,9 @@ var MultipleChoiceList = ({
11750
11808
  choice.disabled ? "opacity-50 cursor-not-allowed" : ""
11751
11809
  ),
11752
11810
  children: [
11753
- /* @__PURE__ */ jsxs38("div", { className: "flex items-center gap-2 flex-1", children: [
11811
+ /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2 flex-1", children: [
11754
11812
  renderVisualCheckbox(isSelected, choice.disabled || disabled),
11755
- /* @__PURE__ */ jsx53(
11813
+ /* @__PURE__ */ jsx54(
11756
11814
  "span",
11757
11815
  {
11758
11816
  className: cn(
@@ -11764,14 +11822,14 @@ var MultipleChoiceList = ({
11764
11822
  }
11765
11823
  )
11766
11824
  ] }),
11767
- statusBadge && /* @__PURE__ */ jsx53("div", { className: "flex-shrink-0", children: statusBadge })
11825
+ statusBadge && /* @__PURE__ */ jsx54("div", { className: "flex-shrink-0", children: statusBadge })
11768
11826
  ]
11769
11827
  },
11770
11828
  `readonly-${choice.value}-${i}`
11771
11829
  );
11772
11830
  }) });
11773
11831
  }
11774
- return /* @__PURE__ */ jsx53(
11832
+ return /* @__PURE__ */ jsx54(
11775
11833
  "div",
11776
11834
  {
11777
11835
  className: cn(
@@ -11779,7 +11837,7 @@ var MultipleChoiceList = ({
11779
11837
  disabled ? "opacity-50 cursor-not-allowed" : "",
11780
11838
  className
11781
11839
  ),
11782
- children: /* @__PURE__ */ jsx53(
11840
+ children: /* @__PURE__ */ jsx54(
11783
11841
  CheckboxList_default,
11784
11842
  {
11785
11843
  name,
@@ -11789,12 +11847,12 @@ var MultipleChoiceList = ({
11789
11847
  onHandleSelectedValues?.(v);
11790
11848
  },
11791
11849
  disabled,
11792
- children: choices.map((choice, i) => /* @__PURE__ */ jsxs38(
11850
+ children: choices.map((choice, i) => /* @__PURE__ */ jsxs39(
11793
11851
  "div",
11794
11852
  {
11795
11853
  className: "flex flex-row gap-2 items-center",
11796
11854
  children: [
11797
- /* @__PURE__ */ jsx53(
11855
+ /* @__PURE__ */ jsx54(
11798
11856
  CheckboxListItem,
11799
11857
  {
11800
11858
  value: choice.value,
@@ -11802,7 +11860,7 @@ var MultipleChoiceList = ({
11802
11860
  disabled: choice.disabled || disabled
11803
11861
  }
11804
11862
  ),
11805
- /* @__PURE__ */ jsx53(
11863
+ /* @__PURE__ */ jsx54(
11806
11864
  "label",
11807
11865
  {
11808
11866
  htmlFor: `interactive-${choice.value}-${i}`,
@@ -11831,13 +11889,13 @@ import { CheckCircle as CheckCircle6, XCircle as XCircle5 } from "phosphor-react
11831
11889
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
11832
11890
 
11833
11891
  // src/components/Quiz/QuizContent.tsx
11834
- import { Fragment as Fragment11, jsx as jsx54, jsxs as jsxs39 } from "react/jsx-runtime";
11892
+ import { Fragment as Fragment11, jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
11835
11893
  var getStatusBadge = (status) => {
11836
11894
  switch (status) {
11837
11895
  case "correct":
11838
- return /* @__PURE__ */ jsx54(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx54(CheckCircle6, {}), children: "Resposta correta" });
11896
+ return /* @__PURE__ */ jsx55(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx55(CheckCircle6, {}), children: "Resposta correta" });
11839
11897
  case "incorrect":
11840
- return /* @__PURE__ */ jsx54(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx54(XCircle5, {}), children: "Resposta incorreta" });
11898
+ return /* @__PURE__ */ jsx55(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx55(XCircle5, {}), children: "Resposta incorreta" });
11841
11899
  default:
11842
11900
  return null;
11843
11901
  }
@@ -11852,11 +11910,11 @@ var getStatusStyles = (variantCorrect) => {
11852
11910
  };
11853
11911
  var QuizSubTitle = forwardRef21(
11854
11912
  ({ subTitle, ...props }, ref) => {
11855
- return /* @__PURE__ */ jsx54("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx54("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
11913
+ return /* @__PURE__ */ jsx55("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx55("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
11856
11914
  }
11857
11915
  );
11858
11916
  var QuizContainer = forwardRef21(({ children, className, ...props }, ref) => {
11859
- return /* @__PURE__ */ jsx54(
11917
+ return /* @__PURE__ */ jsx55(
11860
11918
  "div",
11861
11919
  {
11862
11920
  ref,
@@ -11909,10 +11967,10 @@ var QuizAlternative = ({ paddingBottom }) => {
11909
11967
  };
11910
11968
  });
11911
11969
  if (!alternatives)
11912
- return /* @__PURE__ */ jsx54("div", { children: /* @__PURE__ */ jsx54("p", { children: "N\xE3o h\xE1 Alternativas" }) });
11913
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
11914
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Alternativas" }),
11915
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx54("div", { className: "space-y-4", children: /* @__PURE__ */ jsx54(
11970
+ return /* @__PURE__ */ jsx55("div", { children: /* @__PURE__ */ jsx55("p", { children: "N\xE3o h\xE1 Alternativas" }) });
11971
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
11972
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Alternativas" }),
11973
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx55("div", { className: "space-y-4", children: /* @__PURE__ */ jsx55(
11916
11974
  AlternativesList,
11917
11975
  {
11918
11976
  mode: variant === "default" ? "interactive" : "readonly",
@@ -12015,10 +12073,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
12015
12073
  };
12016
12074
  });
12017
12075
  if (!choices)
12018
- return /* @__PURE__ */ jsx54("div", { children: /* @__PURE__ */ jsx54("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
12019
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12020
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Alternativas" }),
12021
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx54("div", { className: "space-y-4", children: /* @__PURE__ */ jsx54(
12076
+ return /* @__PURE__ */ jsx55("div", { children: /* @__PURE__ */ jsx55("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
12077
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12078
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Alternativas" }),
12079
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx55("div", { className: "space-y-4", children: /* @__PURE__ */ jsx55(
12022
12080
  MultipleChoiceList,
12023
12081
  {
12024
12082
  choices,
@@ -12037,7 +12095,8 @@ var QuizDissertative = ({ paddingBottom }) => {
12037
12095
  getCurrentAnswer,
12038
12096
  selectDissertativeAnswer,
12039
12097
  getQuestionResultByQuestionId,
12040
- variant
12098
+ variant,
12099
+ getDissertativeCharLimit
12041
12100
  } = useQuizStore();
12042
12101
  const currentQuestion = getCurrentQuestion();
12043
12102
  const currentQuestionResult = getQuestionResultByQuestionId(
@@ -12045,6 +12104,7 @@ var QuizDissertative = ({ paddingBottom }) => {
12045
12104
  );
12046
12105
  const currentAnswer = getCurrentAnswer();
12047
12106
  const textareaRef = useRef14(null);
12107
+ const charLimit = getDissertativeCharLimit();
12048
12108
  const handleAnswerChange = (value) => {
12049
12109
  if (currentQuestion) {
12050
12110
  selectDissertativeAnswer(currentQuestion.id, value);
@@ -12064,12 +12124,12 @@ var QuizDissertative = ({ paddingBottom }) => {
12064
12124
  adjustTextareaHeight();
12065
12125
  }, [currentAnswer, adjustTextareaHeight]);
12066
12126
  if (!currentQuestion) {
12067
- return /* @__PURE__ */ jsx54("div", { className: "space-y-4", children: /* @__PURE__ */ jsx54("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
12127
+ return /* @__PURE__ */ jsx55("div", { className: "space-y-4", children: /* @__PURE__ */ jsx55("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
12068
12128
  }
12069
12129
  const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
12070
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12071
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Resposta" }),
12072
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx54("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx54("div", { className: "space-y-4", children: /* @__PURE__ */ jsx54(
12130
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12131
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Resposta" }),
12132
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx55("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx55("div", { className: "space-y-4", children: /* @__PURE__ */ jsx55(
12073
12133
  TextArea_default,
12074
12134
  {
12075
12135
  ref: textareaRef,
@@ -12077,12 +12137,14 @@ var QuizDissertative = ({ paddingBottom }) => {
12077
12137
  value: localAnswer,
12078
12138
  onChange: (e) => handleAnswerChange(e.target.value),
12079
12139
  rows: 4,
12080
- className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
12081
- }
12082
- ) }) : /* @__PURE__ */ jsx54("div", { className: "space-y-4", children: /* @__PURE__ */ jsx54("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
12083
- variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs39(Fragment11, { children: [
12084
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
12085
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx54("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
12140
+ className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto",
12141
+ maxLength: charLimit,
12142
+ showCharacterCount: !!charLimit
12143
+ }
12144
+ ) }) : /* @__PURE__ */ jsx55("div", { className: "space-y-4", children: /* @__PURE__ */ jsx55("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
12145
+ variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs40(Fragment11, { children: [
12146
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
12147
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx55("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
12086
12148
  ] })
12087
12149
  ] });
12088
12150
  };
@@ -12108,16 +12170,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
12108
12170
  ];
12109
12171
  const getLetterByIndex = (index) => String.fromCodePoint(97 + index);
12110
12172
  const isDefaultVariant = variant === "default";
12111
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12112
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Alternativas" }),
12113
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx54("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12173
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12174
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Alternativas" }),
12175
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx55("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12114
12176
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
12115
- return /* @__PURE__ */ jsxs39(
12177
+ return /* @__PURE__ */ jsxs40(
12116
12178
  "section",
12117
12179
  {
12118
12180
  className: "flex flex-col gap-2",
12119
12181
  children: [
12120
- /* @__PURE__ */ jsxs39(
12182
+ /* @__PURE__ */ jsxs40(
12121
12183
  "div",
12122
12184
  {
12123
12185
  className: cn(
@@ -12125,20 +12187,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
12125
12187
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
12126
12188
  ),
12127
12189
  children: [
12128
- /* @__PURE__ */ jsx54("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
12129
- isDefaultVariant ? /* @__PURE__ */ jsxs39(Select_default, { size: "medium", children: [
12130
- /* @__PURE__ */ jsx54(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx54(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
12131
- /* @__PURE__ */ jsxs39(SelectContent, { children: [
12132
- /* @__PURE__ */ jsx54(SelectItem, { value: "V", children: "Verdadeiro" }),
12133
- /* @__PURE__ */ jsx54(SelectItem, { value: "F", children: "Falso" })
12190
+ /* @__PURE__ */ jsx55("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
12191
+ isDefaultVariant ? /* @__PURE__ */ jsxs40(Select_default, { size: "medium", children: [
12192
+ /* @__PURE__ */ jsx55(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx55(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
12193
+ /* @__PURE__ */ jsxs40(SelectContent, { children: [
12194
+ /* @__PURE__ */ jsx55(SelectItem, { value: "V", children: "Verdadeiro" }),
12195
+ /* @__PURE__ */ jsx55(SelectItem, { value: "F", children: "Falso" })
12134
12196
  ] })
12135
- ] }) : /* @__PURE__ */ jsx54("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
12197
+ ] }) : /* @__PURE__ */ jsx55("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
12136
12198
  ]
12137
12199
  }
12138
12200
  ),
12139
- !isDefaultVariant && /* @__PURE__ */ jsxs39("span", { className: "flex flex-row gap-2 items-center", children: [
12140
- /* @__PURE__ */ jsx54("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
12141
- !option.isCorrect && /* @__PURE__ */ jsx54("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
12201
+ !isDefaultVariant && /* @__PURE__ */ jsxs40("span", { className: "flex flex-row gap-2 items-center", children: [
12202
+ /* @__PURE__ */ jsx55("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
12203
+ !option.isCorrect && /* @__PURE__ */ jsx55("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
12142
12204
  ] })
12143
12205
  ]
12144
12206
  },
@@ -12228,13 +12290,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
12228
12290
  const assignedDots = new Set(
12229
12291
  userAnswers.map((a) => a.dotOption).filter(Boolean)
12230
12292
  );
12231
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12232
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Alternativas" }),
12233
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx54("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12293
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12294
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Alternativas" }),
12295
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx55("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12234
12296
  const answer = userAnswers[index];
12235
12297
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
12236
- return /* @__PURE__ */ jsxs39("section", { className: "flex flex-col gap-2", children: [
12237
- /* @__PURE__ */ jsxs39(
12298
+ return /* @__PURE__ */ jsxs40("section", { className: "flex flex-col gap-2", children: [
12299
+ /* @__PURE__ */ jsxs40(
12238
12300
  "div",
12239
12301
  {
12240
12302
  className: cn(
@@ -12242,30 +12304,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
12242
12304
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
12243
12305
  ),
12244
12306
  children: [
12245
- /* @__PURE__ */ jsx54("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
12246
- isDefaultVariant ? /* @__PURE__ */ jsxs39(
12307
+ /* @__PURE__ */ jsx55("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
12308
+ isDefaultVariant ? /* @__PURE__ */ jsxs40(
12247
12309
  Select_default,
12248
12310
  {
12249
12311
  size: "medium",
12250
12312
  value: answer.dotOption || void 0,
12251
12313
  onValueChange: (value) => handleSelectDot(index, value),
12252
12314
  children: [
12253
- /* @__PURE__ */ jsx54(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx54(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12254
- /* @__PURE__ */ jsx54(SelectContent, { children: dotsOptions.filter(
12315
+ /* @__PURE__ */ jsx55(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx55(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12316
+ /* @__PURE__ */ jsx55(SelectContent, { children: dotsOptions.filter(
12255
12317
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
12256
- ).map((dot) => /* @__PURE__ */ jsx54(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
12318
+ ).map((dot) => /* @__PURE__ */ jsx55(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
12257
12319
  ]
12258
12320
  }
12259
- ) : /* @__PURE__ */ jsx54("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
12321
+ ) : /* @__PURE__ */ jsx55("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
12260
12322
  ]
12261
12323
  }
12262
12324
  ),
12263
- !isDefaultVariant && /* @__PURE__ */ jsxs39("span", { className: "flex flex-row gap-2 items-center", children: [
12264
- /* @__PURE__ */ jsxs39("p", { className: "text-text-800 text-2xs", children: [
12325
+ !isDefaultVariant && /* @__PURE__ */ jsxs40("span", { className: "flex flex-row gap-2 items-center", children: [
12326
+ /* @__PURE__ */ jsxs40("p", { className: "text-text-800 text-2xs", children: [
12265
12327
  "Resposta selecionada: ",
12266
12328
  answer.dotOption || "Nenhuma"
12267
12329
  ] }),
12268
- !answer.isCorrect && /* @__PURE__ */ jsxs39("p", { className: "text-text-800 text-2xs", children: [
12330
+ !answer.isCorrect && /* @__PURE__ */ jsxs40("p", { className: "text-text-800 text-2xs", children: [
12269
12331
  "Resposta correta: ",
12270
12332
  answer.correctOption
12271
12333
  ] })
@@ -12334,18 +12396,18 @@ var QuizFill = ({ paddingBottom }) => {
12334
12396
  const mockAnswer = mockUserAnswers.find(
12335
12397
  (answer) => answer.selectId === selectId
12336
12398
  );
12337
- return /* @__PURE__ */ jsx54("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
12399
+ return /* @__PURE__ */ jsx55("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
12338
12400
  };
12339
12401
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
12340
- return /* @__PURE__ */ jsxs39(
12402
+ return /* @__PURE__ */ jsxs40(
12341
12403
  Select_default,
12342
12404
  {
12343
12405
  value: selectedValue,
12344
12406
  onValueChange: (value) => handleSelectChange(selectId, value),
12345
12407
  className: "inline-flex mb-2.5",
12346
12408
  children: [
12347
- /* @__PURE__ */ jsx54(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ jsx54(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12348
- /* @__PURE__ */ jsx54(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx54(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
12409
+ /* @__PURE__ */ jsx55(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ jsx55(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12410
+ /* @__PURE__ */ jsx55(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx55(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
12349
12411
  ]
12350
12412
  },
12351
12413
  `${selectId}-${startIndex}`
@@ -12357,8 +12419,8 @@ var QuizFill = ({ paddingBottom }) => {
12357
12419
  );
12358
12420
  if (!mockAnswer) return null;
12359
12421
  const action = mockAnswer.isCorrect ? "success" : "error";
12360
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx54(CheckCircle6, {}) : /* @__PURE__ */ jsx54(XCircle5, {});
12361
- return /* @__PURE__ */ jsx54(
12422
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx55(CheckCircle6, {}) : /* @__PURE__ */ jsx55(XCircle5, {});
12423
+ return /* @__PURE__ */ jsx55(
12362
12424
  Badge_default,
12363
12425
  {
12364
12426
  variant: "solid",
@@ -12366,7 +12428,7 @@ var QuizFill = ({ paddingBottom }) => {
12366
12428
  iconRight: icon,
12367
12429
  size: "large",
12368
12430
  className: "py-3 w-[180px] justify-between mb-2.5",
12369
- children: /* @__PURE__ */ jsx54("span", { className: "text-text-900", children: mockAnswer.userAnswer })
12431
+ children: /* @__PURE__ */ jsx55("span", { className: "text-text-900", children: mockAnswer.userAnswer })
12370
12432
  },
12371
12433
  selectId
12372
12434
  );
@@ -12422,25 +12484,25 @@ var QuizFill = ({ paddingBottom }) => {
12422
12484
  }
12423
12485
  return elements;
12424
12486
  };
12425
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12426
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Alternativas" }),
12427
- /* @__PURE__ */ jsx54(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx54("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx54(
12487
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12488
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Alternativas" }),
12489
+ /* @__PURE__ */ jsx55(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx55("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx55(
12428
12490
  "div",
12429
12491
  {
12430
12492
  className: cn(
12431
12493
  "text-lg text-text-900 leading-8 h-auto",
12432
12494
  variant != "result" && paddingBottom
12433
12495
  ),
12434
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx54("span", { children: element.element }, element.id))
12496
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx55("span", { children: element.element }, element.id))
12435
12497
  }
12436
12498
  ) }) }),
12437
- variant === "result" && /* @__PURE__ */ jsxs39(Fragment11, { children: [
12438
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Resultado" }),
12439
- /* @__PURE__ */ jsx54(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx54("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx54(
12499
+ variant === "result" && /* @__PURE__ */ jsxs40(Fragment11, { children: [
12500
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Resultado" }),
12501
+ /* @__PURE__ */ jsx55(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx55("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx55(
12440
12502
  "div",
12441
12503
  {
12442
12504
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
12443
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx54("span", { children: element.element }, element.id))
12505
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx55("span", { children: element.element }, element.id))
12444
12506
  }
12445
12507
  ) }) })
12446
12508
  ] })
@@ -12494,36 +12556,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12494
12556
  }
12495
12557
  return "bg-success-600/70 border-white";
12496
12558
  };
12497
- return /* @__PURE__ */ jsxs39(Fragment11, { children: [
12498
- /* @__PURE__ */ jsx54(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
12499
- /* @__PURE__ */ jsx54(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs39(
12559
+ return /* @__PURE__ */ jsxs40(Fragment11, { children: [
12560
+ /* @__PURE__ */ jsx55(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
12561
+ /* @__PURE__ */ jsx55(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs40(
12500
12562
  "div",
12501
12563
  {
12502
12564
  "data-testid": "quiz-image-container",
12503
12565
  className: "space-y-6 p-3 relative inline-block",
12504
12566
  children: [
12505
- variant == "result" && /* @__PURE__ */ jsxs39(
12567
+ variant == "result" && /* @__PURE__ */ jsxs40(
12506
12568
  "div",
12507
12569
  {
12508
12570
  "data-testid": "quiz-legend",
12509
12571
  className: "flex items-center gap-4 text-xs",
12510
12572
  children: [
12511
- /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
12512
- /* @__PURE__ */ jsx54("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
12513
- /* @__PURE__ */ jsx54("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
12573
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-2", children: [
12574
+ /* @__PURE__ */ jsx55("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
12575
+ /* @__PURE__ */ jsx55("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
12514
12576
  ] }),
12515
- /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
12516
- /* @__PURE__ */ jsx54("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
12517
- /* @__PURE__ */ jsx54("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
12577
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-2", children: [
12578
+ /* @__PURE__ */ jsx55("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
12579
+ /* @__PURE__ */ jsx55("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
12518
12580
  ] }),
12519
- /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-2", children: [
12520
- /* @__PURE__ */ jsx54("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
12521
- /* @__PURE__ */ jsx54("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
12581
+ /* @__PURE__ */ jsxs40("div", { className: "flex items-center gap-2", children: [
12582
+ /* @__PURE__ */ jsx55("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
12583
+ /* @__PURE__ */ jsx55("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
12522
12584
  ] })
12523
12585
  ]
12524
12586
  }
12525
12587
  ),
12526
- /* @__PURE__ */ jsxs39(
12588
+ /* @__PURE__ */ jsxs40(
12527
12589
  "button",
12528
12590
  {
12529
12591
  "data-testid": "quiz-image-button",
@@ -12538,7 +12600,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12538
12600
  },
12539
12601
  "aria-label": "\xC1rea da imagem interativa",
12540
12602
  children: [
12541
- /* @__PURE__ */ jsx54(
12603
+ /* @__PURE__ */ jsx55(
12542
12604
  "img",
12543
12605
  {
12544
12606
  "data-testid": "quiz-image",
@@ -12547,7 +12609,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12547
12609
  className: "w-full h-auto rounded-md"
12548
12610
  }
12549
12611
  ),
12550
- variant === "result" && /* @__PURE__ */ jsx54(
12612
+ variant === "result" && /* @__PURE__ */ jsx55(
12551
12613
  "div",
12552
12614
  {
12553
12615
  "data-testid": "quiz-correct-circle",
@@ -12562,7 +12624,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12562
12624
  }
12563
12625
  }
12564
12626
  ),
12565
- clickPositionRelative && /* @__PURE__ */ jsx54(
12627
+ clickPositionRelative && /* @__PURE__ */ jsx55(
12566
12628
  "div",
12567
12629
  {
12568
12630
  "data-testid": "quiz-user-circle",
@@ -12587,7 +12649,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12587
12649
  };
12588
12650
 
12589
12651
  // src/components/Quiz/Quiz.tsx
12590
- import { Fragment as Fragment12, jsx as jsx55, jsxs as jsxs40 } from "react/jsx-runtime";
12652
+ import { Fragment as Fragment12, jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
12591
12653
  var getQuizTypeConfig = (type) => {
12592
12654
  const QUIZ_TYPE_CONFIG = {
12593
12655
  ["SIMULADO" /* SIMULADO */]: {
@@ -12629,7 +12691,7 @@ var Quiz = forwardRef22(({ children, className, variant = "default", ...props },
12629
12691
  useEffect24(() => {
12630
12692
  setVariant(variant);
12631
12693
  }, [variant, setVariant]);
12632
- return /* @__PURE__ */ jsx55("div", { ref, className: cn("flex flex-col", className), ...props, children });
12694
+ return /* @__PURE__ */ jsx56("div", { ref, className: cn("flex flex-col", className), ...props, children });
12633
12695
  });
12634
12696
  var QuizTitle = forwardRef22(({ className, onBack, ...props }, ref) => {
12635
12697
  const {
@@ -12665,8 +12727,8 @@ var QuizTitle = forwardRef22(({ className, onBack, ...props }, ref) => {
12665
12727
  const handleCancelExit = () => {
12666
12728
  setShowExitConfirmation(false);
12667
12729
  };
12668
- return /* @__PURE__ */ jsxs40(Fragment12, { children: [
12669
- /* @__PURE__ */ jsxs40(
12730
+ return /* @__PURE__ */ jsxs41(Fragment12, { children: [
12731
+ /* @__PURE__ */ jsxs41(
12670
12732
  "div",
12671
12733
  {
12672
12734
  ref,
@@ -12676,24 +12738,24 @@ var QuizTitle = forwardRef22(({ className, onBack, ...props }, ref) => {
12676
12738
  ),
12677
12739
  ...props,
12678
12740
  children: [
12679
- /* @__PURE__ */ jsx55(
12741
+ /* @__PURE__ */ jsx56(
12680
12742
  IconButton_default,
12681
12743
  {
12682
- icon: /* @__PURE__ */ jsx55(CaretLeft2, { size: 24 }),
12744
+ icon: /* @__PURE__ */ jsx56(CaretLeft2, { size: 24 }),
12683
12745
  size: "md",
12684
12746
  "aria-label": "Voltar",
12685
12747
  onClick: handleBackClick
12686
12748
  }
12687
12749
  ),
12688
- /* @__PURE__ */ jsxs40("span", { className: "flex flex-col gap-2 text-center", children: [
12689
- /* @__PURE__ */ jsx55("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
12690
- /* @__PURE__ */ jsx55("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
12750
+ /* @__PURE__ */ jsxs41("span", { className: "flex flex-col gap-2 text-center", children: [
12751
+ /* @__PURE__ */ jsx56("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
12752
+ /* @__PURE__ */ jsx56("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
12691
12753
  ] }),
12692
- /* @__PURE__ */ jsx55("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx55(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx55(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
12754
+ /* @__PURE__ */ jsx56("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx56(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx56(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
12693
12755
  ]
12694
12756
  }
12695
12757
  ),
12696
- /* @__PURE__ */ jsx55(
12758
+ /* @__PURE__ */ jsx56(
12697
12759
  AlertDialog,
12698
12760
  {
12699
12761
  isOpen: showExitConfirmation,
@@ -12713,7 +12775,7 @@ var QuizHeader = () => {
12713
12775
  const currentQuestion = getCurrentQuestion();
12714
12776
  let currentId = currentQuestion && "questionId" in currentQuestion ? currentQuestion.questionId : currentQuestion?.id;
12715
12777
  const questionIndex = getQuestionIndex(currentId);
12716
- return /* @__PURE__ */ jsx55(
12778
+ return /* @__PURE__ */ jsx56(
12717
12779
  HeaderAlternative,
12718
12780
  {
12719
12781
  title: currentQuestion ? `Quest\xE3o ${questionIndex.toString().padStart(2, "0")}` : "Quest\xE3o",
@@ -12735,7 +12797,7 @@ var QuizContent = ({ paddingBottom }) => {
12735
12797
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
12736
12798
  };
12737
12799
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
12738
- return QuestionComponent ? /* @__PURE__ */ jsx55(QuestionComponent, { paddingBottom }) : null;
12800
+ return QuestionComponent ? /* @__PURE__ */ jsx56(QuestionComponent, { paddingBottom }) : null;
12739
12801
  };
12740
12802
  var QuizQuestionList = ({
12741
12803
  filterType = "all",
@@ -12782,18 +12844,18 @@ var QuizQuestionList = ({
12782
12844
  return "Em branco";
12783
12845
  }
12784
12846
  };
12785
- return /* @__PURE__ */ jsxs40("div", { className: "space-y-6 px-4 h-full", children: [
12786
- Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx55("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx55("p", { className: "text-lg", children: "Nenhum resultado" }) }),
12847
+ return /* @__PURE__ */ jsxs41("div", { className: "space-y-6 px-4 h-full", children: [
12848
+ Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx56("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx56("p", { className: "text-lg", children: "Nenhum resultado" }) }),
12787
12849
  Object.entries(filteredGroupedQuestions).map(
12788
- ([subjectId, questions]) => /* @__PURE__ */ jsxs40("section", { className: "flex flex-col gap-2", children: [
12789
- /* @__PURE__ */ jsxs40("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
12790
- /* @__PURE__ */ jsx55("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx55(BookOpen, { size: 17, className: "text-white" }) }),
12791
- /* @__PURE__ */ jsx55("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
12850
+ ([subjectId, questions]) => /* @__PURE__ */ jsxs41("section", { className: "flex flex-col gap-2", children: [
12851
+ /* @__PURE__ */ jsxs41("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
12852
+ /* @__PURE__ */ jsx56("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx56(BookOpen, { size: 17, className: "text-white" }) }),
12853
+ /* @__PURE__ */ jsx56("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
12792
12854
  ] }),
12793
- /* @__PURE__ */ jsx55("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
12855
+ /* @__PURE__ */ jsx56("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
12794
12856
  const status = getQuestionStatus(question.id);
12795
12857
  const questionNumber = getQuestionIndex(question.id);
12796
- return /* @__PURE__ */ jsx55(
12858
+ return /* @__PURE__ */ jsx56(
12797
12859
  CardStatus,
12798
12860
  {
12799
12861
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -12900,8 +12962,8 @@ var QuizFooter = forwardRef22(
12900
12962
  return;
12901
12963
  }
12902
12964
  };
12903
- return /* @__PURE__ */ jsxs40(Fragment12, { children: [
12904
- /* @__PURE__ */ jsx55(
12965
+ return /* @__PURE__ */ jsxs41(Fragment12, { children: [
12966
+ /* @__PURE__ */ jsx56(
12905
12967
  "footer",
12906
12968
  {
12907
12969
  ref,
@@ -12910,17 +12972,17 @@ var QuizFooter = forwardRef22(
12910
12972
  className
12911
12973
  ),
12912
12974
  ...props,
12913
- children: variant === "default" ? /* @__PURE__ */ jsxs40(Fragment12, { children: [
12914
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-row items-center gap-1", children: [
12915
- /* @__PURE__ */ jsx55(
12975
+ children: variant === "default" ? /* @__PURE__ */ jsxs41(Fragment12, { children: [
12976
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-row items-center gap-1", children: [
12977
+ /* @__PURE__ */ jsx56(
12916
12978
  IconButton_default,
12917
12979
  {
12918
- icon: /* @__PURE__ */ jsx55(SquaresFour, { size: 24, className: "text-text-950" }),
12980
+ icon: /* @__PURE__ */ jsx56(SquaresFour, { size: 24, className: "text-text-950" }),
12919
12981
  size: "md",
12920
12982
  onClick: () => openModal("modalNavigate")
12921
12983
  }
12922
12984
  ),
12923
- isFirstQuestion ? /* @__PURE__ */ jsx55(
12985
+ isFirstQuestion ? /* @__PURE__ */ jsx56(
12924
12986
  Button_default,
12925
12987
  {
12926
12988
  variant: "outline",
@@ -12931,13 +12993,13 @@ var QuizFooter = forwardRef22(
12931
12993
  },
12932
12994
  children: "Pular"
12933
12995
  }
12934
- ) : /* @__PURE__ */ jsx55(
12996
+ ) : /* @__PURE__ */ jsx56(
12935
12997
  Button_default,
12936
12998
  {
12937
12999
  size: "medium",
12938
13000
  variant: "link",
12939
13001
  action: "primary",
12940
- iconLeft: /* @__PURE__ */ jsx55(CaretLeft2, { size: 18 }),
13002
+ iconLeft: /* @__PURE__ */ jsx56(CaretLeft2, { size: 18 }),
12941
13003
  onClick: () => {
12942
13004
  goToPreviousQuestion();
12943
13005
  },
@@ -12945,7 +13007,7 @@ var QuizFooter = forwardRef22(
12945
13007
  }
12946
13008
  )
12947
13009
  ] }),
12948
- !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx55(
13010
+ !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx56(
12949
13011
  Button_default,
12950
13012
  {
12951
13013
  size: "small",
@@ -12958,7 +13020,7 @@ var QuizFooter = forwardRef22(
12958
13020
  children: "Pular"
12959
13021
  }
12960
13022
  ),
12961
- isLastQuestion ? /* @__PURE__ */ jsx55(
13023
+ isLastQuestion ? /* @__PURE__ */ jsx56(
12962
13024
  Button_default,
12963
13025
  {
12964
13026
  size: "medium",
@@ -12967,13 +13029,13 @@ var QuizFooter = forwardRef22(
12967
13029
  onClick: handleFinishQuiz,
12968
13030
  children: "Finalizar"
12969
13031
  }
12970
- ) : /* @__PURE__ */ jsx55(
13032
+ ) : /* @__PURE__ */ jsx56(
12971
13033
  Button_default,
12972
13034
  {
12973
13035
  size: "medium",
12974
13036
  variant: "link",
12975
13037
  action: "primary",
12976
- iconRight: /* @__PURE__ */ jsx55(CaretRight5, { size: 18 }),
13038
+ iconRight: /* @__PURE__ */ jsx56(CaretRight5, { size: 18 }),
12977
13039
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
12978
13040
  onClick: () => {
12979
13041
  goToNextQuestion();
@@ -12981,7 +13043,7 @@ var QuizFooter = forwardRef22(
12981
13043
  children: "Avan\xE7ar"
12982
13044
  }
12983
13045
  )
12984
- ] }) : /* @__PURE__ */ jsx55("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ jsx55(
13046
+ ] }) : /* @__PURE__ */ jsx56("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ jsx56(
12985
13047
  Button_default,
12986
13048
  {
12987
13049
  variant: "link",
@@ -12993,7 +13055,7 @@ var QuizFooter = forwardRef22(
12993
13055
  ) })
12994
13056
  }
12995
13057
  ),
12996
- /* @__PURE__ */ jsx55(
13058
+ /* @__PURE__ */ jsx56(
12997
13059
  AlertDialog,
12998
13060
  {
12999
13061
  isOpen: isModalOpen("alertDialog"),
@@ -13005,7 +13067,7 @@ var QuizFooter = forwardRef22(
13005
13067
  onSubmit: handleAlertSubmit
13006
13068
  }
13007
13069
  ),
13008
- /* @__PURE__ */ jsx55(
13070
+ /* @__PURE__ */ jsx56(
13009
13071
  Modal_default,
13010
13072
  {
13011
13073
  isOpen: isModalOpen("modalResult"),
@@ -13014,11 +13076,11 @@ var QuizFooter = forwardRef22(
13014
13076
  closeOnEscape: false,
13015
13077
  hideCloseButton: true,
13016
13078
  size: "md",
13017
- children: /* @__PURE__ */ jsxs40("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13018
- resultImageComponent ? /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx55("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13019
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-col gap-2 text-center", children: [
13020
- /* @__PURE__ */ jsx55("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
13021
- /* @__PURE__ */ jsxs40("p", { className: "text-text-500 font-sm", children: [
13079
+ children: /* @__PURE__ */ jsxs41("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13080
+ resultImageComponent ? /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx56("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13081
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-2 text-center", children: [
13082
+ /* @__PURE__ */ jsx56("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
13083
+ /* @__PURE__ */ jsxs41("p", { className: "text-text-500 font-sm", children: [
13022
13084
  "Voc\xEA acertou ",
13023
13085
  correctAnswers ?? "--",
13024
13086
  " de ",
@@ -13027,8 +13089,8 @@ var QuizFooter = forwardRef22(
13027
13089
  "quest\xF5es."
13028
13090
  ] })
13029
13091
  ] }),
13030
- /* @__PURE__ */ jsxs40("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
13031
- /* @__PURE__ */ jsx55(
13092
+ /* @__PURE__ */ jsxs41("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
13093
+ /* @__PURE__ */ jsx56(
13032
13094
  Button_default,
13033
13095
  {
13034
13096
  variant: "outline",
@@ -13038,38 +13100,38 @@ var QuizFooter = forwardRef22(
13038
13100
  children: quizTypeLabel === "Question\xE1rio" ? "Ir para aulas" : `Ir para ${quizTypeLabel.toLocaleLowerCase()}s`
13039
13101
  }
13040
13102
  ),
13041
- /* @__PURE__ */ jsx55(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
13103
+ /* @__PURE__ */ jsx56(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
13042
13104
  ] })
13043
13105
  ] })
13044
13106
  }
13045
13107
  ),
13046
- /* @__PURE__ */ jsx55(
13108
+ /* @__PURE__ */ jsx56(
13047
13109
  Modal_default,
13048
13110
  {
13049
13111
  isOpen: isModalOpen("modalNavigate"),
13050
13112
  onClose: closeModal,
13051
13113
  title: "Quest\xF5es",
13052
13114
  size: "lg",
13053
- children: /* @__PURE__ */ jsxs40("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
13054
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
13055
- /* @__PURE__ */ jsx55("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
13056
- /* @__PURE__ */ jsx55("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs40(Select_default, { value: filterType, onValueChange: setFilterType, children: [
13057
- /* @__PURE__ */ jsx55(
13115
+ children: /* @__PURE__ */ jsxs41("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
13116
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
13117
+ /* @__PURE__ */ jsx56("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
13118
+ /* @__PURE__ */ jsx56("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs41(Select_default, { value: filterType, onValueChange: setFilterType, children: [
13119
+ /* @__PURE__ */ jsx56(
13058
13120
  SelectTrigger,
13059
13121
  {
13060
13122
  variant: "rounded",
13061
13123
  className: "max-w-[266px] min-w-[160px]",
13062
- children: /* @__PURE__ */ jsx55(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
13124
+ children: /* @__PURE__ */ jsx56(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
13063
13125
  }
13064
13126
  ),
13065
- /* @__PURE__ */ jsxs40(SelectContent, { children: [
13066
- /* @__PURE__ */ jsx55(SelectItem, { value: "all", children: "Todas" }),
13067
- /* @__PURE__ */ jsx55(SelectItem, { value: "unanswered", children: "Em branco" }),
13068
- /* @__PURE__ */ jsx55(SelectItem, { value: "answered", children: "Respondidas" })
13127
+ /* @__PURE__ */ jsxs41(SelectContent, { children: [
13128
+ /* @__PURE__ */ jsx56(SelectItem, { value: "all", children: "Todas" }),
13129
+ /* @__PURE__ */ jsx56(SelectItem, { value: "unanswered", children: "Em branco" }),
13130
+ /* @__PURE__ */ jsx56(SelectItem, { value: "answered", children: "Respondidas" })
13069
13131
  ] })
13070
13132
  ] }) })
13071
13133
  ] }),
13072
- /* @__PURE__ */ jsx55("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx55(
13134
+ /* @__PURE__ */ jsx56("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx56(
13073
13135
  QuizQuestionList,
13074
13136
  {
13075
13137
  filterType,
@@ -13079,7 +13141,7 @@ var QuizFooter = forwardRef22(
13079
13141
  ] })
13080
13142
  }
13081
13143
  ),
13082
- /* @__PURE__ */ jsx55(
13144
+ /* @__PURE__ */ jsx56(
13083
13145
  Modal_default,
13084
13146
  {
13085
13147
  isOpen: isModalOpen("modalResolution"),
@@ -13089,7 +13151,7 @@ var QuizFooter = forwardRef22(
13089
13151
  children: currentQuestion?.solutionExplanation
13090
13152
  }
13091
13153
  ),
13092
- /* @__PURE__ */ jsx55(
13154
+ /* @__PURE__ */ jsx56(
13093
13155
  Modal_default,
13094
13156
  {
13095
13157
  isOpen: isModalOpen("modalQuestionnaireAllCorrect"),
@@ -13098,17 +13160,17 @@ var QuizFooter = forwardRef22(
13098
13160
  closeOnEscape: false,
13099
13161
  hideCloseButton: true,
13100
13162
  size: "md",
13101
- children: /* @__PURE__ */ jsxs40("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13102
- resultImageComponent ? /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx55("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13103
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-col gap-2 text-center", children: [
13104
- /* @__PURE__ */ jsx55("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
13105
- /* @__PURE__ */ jsx55("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
13163
+ children: /* @__PURE__ */ jsxs41("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13164
+ resultImageComponent ? /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx56("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13165
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-2 text-center", children: [
13166
+ /* @__PURE__ */ jsx56("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
13167
+ /* @__PURE__ */ jsx56("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
13106
13168
  ] }),
13107
- /* @__PURE__ */ jsx55("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ jsx55(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
13169
+ /* @__PURE__ */ jsx56("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ jsx56(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
13108
13170
  ] })
13109
13171
  }
13110
13172
  ),
13111
- /* @__PURE__ */ jsx55(
13173
+ /* @__PURE__ */ jsx56(
13112
13174
  Modal_default,
13113
13175
  {
13114
13176
  isOpen: isModalOpen("modalQuestionnaireAllIncorrect"),
@@ -13117,16 +13179,16 @@ var QuizFooter = forwardRef22(
13117
13179
  closeOnEscape: false,
13118
13180
  hideCloseButton: true,
13119
13181
  size: "md",
13120
- children: /* @__PURE__ */ jsxs40("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13121
- resultIncorrectImageComponent ? /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ jsx55("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx55("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13122
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-col gap-2 text-center", children: [
13123
- /* @__PURE__ */ jsx55("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
13124
- /* @__PURE__ */ jsx55("p", { className: "text-text-500 font-sm", children: "Voc\xEA tirou 0 no question\xE1rio, mas n\xE3o se preocupe! Isso \xE9 apenas uma oportunidade de aprendizado." }),
13125
- /* @__PURE__ */ jsx55("p", { className: "text-text-500 font-sm", children: "Que tal tentar novamente para melhorar sua nota? Estamos aqui para te ajudar a entender o conte\xFAdo e evoluir." }),
13126
- /* @__PURE__ */ jsx55("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
13182
+ children: /* @__PURE__ */ jsxs41("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13183
+ resultIncorrectImageComponent ? /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ jsx56("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx56("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13184
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-2 text-center", children: [
13185
+ /* @__PURE__ */ jsx56("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
13186
+ /* @__PURE__ */ jsx56("p", { className: "text-text-500 font-sm", children: "Voc\xEA tirou 0 no question\xE1rio, mas n\xE3o se preocupe! Isso \xE9 apenas uma oportunidade de aprendizado." }),
13187
+ /* @__PURE__ */ jsx56("p", { className: "text-text-500 font-sm", children: "Que tal tentar novamente para melhorar sua nota? Estamos aqui para te ajudar a entender o conte\xFAdo e evoluir." }),
13188
+ /* @__PURE__ */ jsx56("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
13127
13189
  ] }),
13128
- /* @__PURE__ */ jsxs40("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
13129
- /* @__PURE__ */ jsx55(
13190
+ /* @__PURE__ */ jsxs41("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
13191
+ /* @__PURE__ */ jsx56(
13130
13192
  Button_default,
13131
13193
  {
13132
13194
  type: "button",
@@ -13140,7 +13202,7 @@ var QuizFooter = forwardRef22(
13140
13202
  children: "Tentar depois"
13141
13203
  }
13142
13204
  ),
13143
- /* @__PURE__ */ jsx55(
13205
+ /* @__PURE__ */ jsx56(
13144
13206
  Button_default,
13145
13207
  {
13146
13208
  variant: "outline",
@@ -13150,7 +13212,7 @@ var QuizFooter = forwardRef22(
13150
13212
  children: "Detalhar resultado"
13151
13213
  }
13152
13214
  ),
13153
- /* @__PURE__ */ jsx55(
13215
+ /* @__PURE__ */ jsx56(
13154
13216
  Button_default,
13155
13217
  {
13156
13218
  className: "w-auto",
@@ -13163,7 +13225,7 @@ var QuizFooter = forwardRef22(
13163
13225
  ] })
13164
13226
  }
13165
13227
  ),
13166
- /* @__PURE__ */ jsx55(
13228
+ /* @__PURE__ */ jsx56(
13167
13229
  AlertDialog,
13168
13230
  {
13169
13231
  isOpen: isModalOpen("alertDialogTryLater"),
@@ -13189,24 +13251,24 @@ var QuizFooter = forwardRef22(
13189
13251
  // src/components/Quiz/QuizResult.tsx
13190
13252
  import { forwardRef as forwardRef23, useEffect as useEffect25, useState as useState26 } from "react";
13191
13253
  import { Clock as Clock3 } from "phosphor-react";
13192
- import { jsx as jsx56, jsxs as jsxs41 } from "react/jsx-runtime";
13254
+ import { jsx as jsx57, jsxs as jsxs42 } from "react/jsx-runtime";
13193
13255
  var QuizBadge = ({
13194
13256
  subtype
13195
13257
  }) => {
13196
13258
  switch (subtype) {
13197
13259
  case "PROVA" /* PROVA */:
13198
- return /* @__PURE__ */ jsx56(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
13260
+ return /* @__PURE__ */ jsx57(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
13199
13261
  case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
13200
13262
  case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
13201
- return /* @__PURE__ */ jsx56(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
13263
+ return /* @__PURE__ */ jsx57(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
13202
13264
  case "VESTIBULAR" /* VESTIBULAR */:
13203
- return /* @__PURE__ */ jsx56(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
13265
+ return /* @__PURE__ */ jsx57(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
13204
13266
  case "SIMULADO" /* SIMULADO */:
13205
13267
  case "SIMULADAO" /* SIMULADAO */:
13206
13268
  case void 0:
13207
- return /* @__PURE__ */ jsx56(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
13269
+ return /* @__PURE__ */ jsx57(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
13208
13270
  default:
13209
- return /* @__PURE__ */ jsx56(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
13271
+ return /* @__PURE__ */ jsx57(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
13210
13272
  }
13211
13273
  };
13212
13274
  var QuizHeaderResult = forwardRef23(
@@ -13263,7 +13325,7 @@ var QuizHeaderResult = forwardRef23(
13263
13325
  return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
13264
13326
  }
13265
13327
  };
13266
- return /* @__PURE__ */ jsxs41(
13328
+ return /* @__PURE__ */ jsxs42(
13267
13329
  "div",
13268
13330
  {
13269
13331
  ref,
@@ -13274,8 +13336,8 @@ var QuizHeaderResult = forwardRef23(
13274
13336
  ),
13275
13337
  ...props,
13276
13338
  children: [
13277
- /* @__PURE__ */ jsx56("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
13278
- /* @__PURE__ */ jsx56("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
13339
+ /* @__PURE__ */ jsx57("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
13340
+ /* @__PURE__ */ jsx57("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
13279
13341
  ]
13280
13342
  }
13281
13343
  );
@@ -13283,7 +13345,7 @@ var QuizHeaderResult = forwardRef23(
13283
13345
  );
13284
13346
  var QuizResultHeaderTitle = forwardRef23(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
13285
13347
  const { quiz } = useQuizStore();
13286
- return /* @__PURE__ */ jsxs41(
13348
+ return /* @__PURE__ */ jsxs42(
13287
13349
  "div",
13288
13350
  {
13289
13351
  ref,
@@ -13293,9 +13355,9 @@ var QuizResultHeaderTitle = forwardRef23(({ className, showBadge = true, onRepea
13293
13355
  ),
13294
13356
  ...props,
13295
13357
  children: [
13296
- /* @__PURE__ */ jsx56("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
13297
- /* @__PURE__ */ jsxs41("div", { className: "flex flex-row gap-3 items-center", children: [
13298
- canRetry && onRepeat && /* @__PURE__ */ jsx56(
13358
+ /* @__PURE__ */ jsx57("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
13359
+ /* @__PURE__ */ jsxs42("div", { className: "flex flex-row gap-3 items-center", children: [
13360
+ canRetry && onRepeat && /* @__PURE__ */ jsx57(
13299
13361
  Button_default,
13300
13362
  {
13301
13363
  variant: "solid",
@@ -13305,7 +13367,7 @@ var QuizResultHeaderTitle = forwardRef23(({ className, showBadge = true, onRepea
13305
13367
  children: "Repetir question\xE1rio"
13306
13368
  }
13307
13369
  ),
13308
- showBadge && /* @__PURE__ */ jsx56(QuizBadge, { subtype: quiz?.subtype || void 0 })
13370
+ showBadge && /* @__PURE__ */ jsx57(QuizBadge, { subtype: quiz?.subtype || void 0 })
13309
13371
  ] })
13310
13372
  ]
13311
13373
  }
@@ -13314,7 +13376,7 @@ var QuizResultHeaderTitle = forwardRef23(({ className, showBadge = true, onRepea
13314
13376
  var QuizResultTitle = forwardRef23(({ className, ...props }, ref) => {
13315
13377
  const { getQuizTitle } = useQuizStore();
13316
13378
  const quizTitle = getQuizTitle();
13317
- return /* @__PURE__ */ jsx56(
13379
+ return /* @__PURE__ */ jsx57(
13318
13380
  "p",
13319
13381
  {
13320
13382
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -13375,7 +13437,7 @@ var QuizResultPerformance = forwardRef23(({ showDetails = true, ...props }, ref)
13375
13437
  };
13376
13438
  const percentage = totalQuestions > 0 ? Math.round(stats.correctAnswers / totalQuestions * 100) : 0;
13377
13439
  const classesJustifyBetween = showDetails ? "justify-between" : "justify-center";
13378
- return /* @__PURE__ */ jsxs41(
13440
+ return /* @__PURE__ */ jsxs42(
13379
13441
  "div",
13380
13442
  {
13381
13443
  className: cn(
@@ -13385,8 +13447,8 @@ var QuizResultPerformance = forwardRef23(({ showDetails = true, ...props }, ref)
13385
13447
  ref,
13386
13448
  ...props,
13387
13449
  children: [
13388
- /* @__PURE__ */ jsxs41("div", { className: "relative", children: [
13389
- /* @__PURE__ */ jsx56(
13450
+ /* @__PURE__ */ jsxs42("div", { className: "relative", children: [
13451
+ /* @__PURE__ */ jsx57(
13390
13452
  ProgressCircle_default,
13391
13453
  {
13392
13454
  size: "medium",
@@ -13396,24 +13458,24 @@ var QuizResultPerformance = forwardRef23(({ showDetails = true, ...props }, ref)
13396
13458
  label: ""
13397
13459
  }
13398
13460
  ),
13399
- /* @__PURE__ */ jsxs41("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
13400
- showDetails && /* @__PURE__ */ jsxs41("div", { className: "flex items-center gap-1 mb-1", children: [
13401
- /* @__PURE__ */ jsx56(Clock3, { size: 12, weight: "regular", className: "text-text-800" }),
13402
- /* @__PURE__ */ jsx56("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
13461
+ /* @__PURE__ */ jsxs42("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
13462
+ showDetails && /* @__PURE__ */ jsxs42("div", { className: "flex items-center gap-1 mb-1", children: [
13463
+ /* @__PURE__ */ jsx57(Clock3, { size: 12, weight: "regular", className: "text-text-800" }),
13464
+ /* @__PURE__ */ jsx57("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
13403
13465
  (getQuestionResultStatistics()?.timeSpent ?? 0) * 60
13404
13466
  ) })
13405
13467
  ] }),
13406
- /* @__PURE__ */ jsxs41("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
13468
+ /* @__PURE__ */ jsxs42("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
13407
13469
  getQuestionResultStatistics()?.correctAnswers ?? "--",
13408
13470
  " de",
13409
13471
  " ",
13410
13472
  totalQuestions
13411
13473
  ] }),
13412
- /* @__PURE__ */ jsx56("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
13474
+ /* @__PURE__ */ jsx57("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
13413
13475
  ] })
13414
13476
  ] }),
13415
- showDetails && /* @__PURE__ */ jsxs41("div", { className: "flex flex-col gap-4 w-full", children: [
13416
- /* @__PURE__ */ jsx56(
13477
+ showDetails && /* @__PURE__ */ jsxs42("div", { className: "flex flex-col gap-4 w-full", children: [
13478
+ /* @__PURE__ */ jsx57(
13417
13479
  ProgressBar_default,
13418
13480
  {
13419
13481
  className: "w-full",
@@ -13427,7 +13489,7 @@ var QuizResultPerformance = forwardRef23(({ showDetails = true, ...props }, ref)
13427
13489
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
13428
13490
  }
13429
13491
  ),
13430
- /* @__PURE__ */ jsx56(
13492
+ /* @__PURE__ */ jsx57(
13431
13493
  ProgressBar_default,
13432
13494
  {
13433
13495
  className: "w-full",
@@ -13441,7 +13503,7 @@ var QuizResultPerformance = forwardRef23(({ showDetails = true, ...props }, ref)
13441
13503
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
13442
13504
  }
13443
13505
  ),
13444
- /* @__PURE__ */ jsx56(
13506
+ /* @__PURE__ */ jsx57(
13445
13507
  ProgressBar_default,
13446
13508
  {
13447
13509
  className: "w-full",
@@ -13488,9 +13550,9 @@ var QuizListResult = forwardRef23(({ className, onSubjectClick, ...props }, ref)
13488
13550
  };
13489
13551
  }
13490
13552
  );
13491
- return /* @__PURE__ */ jsxs41("section", { ref, className, ...props, children: [
13492
- /* @__PURE__ */ jsx56("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
13493
- /* @__PURE__ */ jsx56("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */ jsx56(
13553
+ return /* @__PURE__ */ jsxs42("section", { ref, className, ...props, children: [
13554
+ /* @__PURE__ */ jsx57("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
13555
+ /* @__PURE__ */ jsx57("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx57("li", { children: /* @__PURE__ */ jsx57(
13494
13556
  CardResults,
13495
13557
  {
13496
13558
  onClick: () => onSubjectClick?.(subject.subject.id),
@@ -13514,16 +13576,16 @@ var QuizListResultByMateria = ({
13514
13576
  const groupedQuestions = getQuestionsGroupedBySubject();
13515
13577
  const answeredQuestions = groupedQuestions[subject] || [];
13516
13578
  const formattedQuestions = subject == "all" ? Object.values(groupedQuestions).flat() : answeredQuestions;
13517
- return /* @__PURE__ */ jsxs41("div", { className: "flex flex-col", children: [
13518
- /* @__PURE__ */ jsx56("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx56("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
13519
- /* @__PURE__ */ jsxs41("section", { className: "flex flex-col ", children: [
13520
- /* @__PURE__ */ jsx56("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
13521
- /* @__PURE__ */ jsx56("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
13579
+ return /* @__PURE__ */ jsxs42("div", { className: "flex flex-col", children: [
13580
+ /* @__PURE__ */ jsx57("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx57("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
13581
+ /* @__PURE__ */ jsxs42("section", { className: "flex flex-col ", children: [
13582
+ /* @__PURE__ */ jsx57("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
13583
+ /* @__PURE__ */ jsx57("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
13522
13584
  const questionIndex = getQuestionIndex(
13523
13585
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13524
13586
  question.questionId ?? question.id
13525
13587
  );
13526
- return /* @__PURE__ */ jsx56("li", { children: /* @__PURE__ */ jsx56(
13588
+ return /* @__PURE__ */ jsx57("li", { children: /* @__PURE__ */ jsx57(
13527
13589
  CardStatus,
13528
13590
  {
13529
13591
  className: "max-w-full",
@@ -13549,7 +13611,7 @@ var QuizListResultByMateria = ({
13549
13611
 
13550
13612
  // src/components/BreadcrumbMenu/BreadcrumbMenu.tsx
13551
13613
  import { useNavigate } from "react-router-dom";
13552
- import { jsx as jsx57 } from "react/jsx-runtime";
13614
+ import { jsx as jsx58 } from "react/jsx-runtime";
13553
13615
  var BreadcrumbMenu = ({
13554
13616
  breadcrumbs,
13555
13617
  onBreadcrumbClick,
@@ -13562,17 +13624,17 @@ var BreadcrumbMenu = ({
13562
13624
  }
13563
13625
  navigate(breadcrumb.url);
13564
13626
  };
13565
- return /* @__PURE__ */ jsx57(
13627
+ return /* @__PURE__ */ jsx58(
13566
13628
  Menu,
13567
13629
  {
13568
13630
  value: `breadcrumb-${breadcrumbs.length - 1}`,
13569
13631
  defaultValue: "breadcrumb-0",
13570
13632
  variant: "breadcrumb",
13571
13633
  className,
13572
- children: /* @__PURE__ */ jsx57(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
13634
+ children: /* @__PURE__ */ jsx58(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
13573
13635
  const isLast = index === breadcrumbs.length - 1;
13574
13636
  const hasSeparator = !isLast;
13575
- return /* @__PURE__ */ jsx57(
13637
+ return /* @__PURE__ */ jsx58(
13576
13638
  MenuItem,
13577
13639
  {
13578
13640
  variant: "breadcrumb",
@@ -14117,6 +14179,7 @@ export {
14117
14179
  Modal_default as Modal,
14118
14180
  MultipleChoiceList,
14119
14181
  NavButton_default as NavButton,
14182
+ NoSearchResult_default as NoSearchResult,
14120
14183
  NotFound_default as NotFound,
14121
14184
  NotificationCard_default as NotificationCard,
14122
14185
  NotificationEntityType,