analytica-frontend-lib 1.1.6 → 1.1.8

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.
Files changed (55) hide show
  1. package/dist/Auth/AuthProvider/index.js +12 -0
  2. package/dist/Auth/AuthProvider/index.js.map +1 -1
  3. package/dist/Auth/AuthProvider/index.mjs +12 -0
  4. package/dist/Auth/AuthProvider/index.mjs.map +1 -1
  5. package/dist/Auth/ProtectedRoute/index.js +12 -0
  6. package/dist/Auth/ProtectedRoute/index.js.map +1 -1
  7. package/dist/Auth/ProtectedRoute/index.mjs +12 -0
  8. package/dist/Auth/ProtectedRoute/index.mjs.map +1 -1
  9. package/dist/Auth/PublicRoute/index.js +12 -0
  10. package/dist/Auth/PublicRoute/index.js.map +1 -1
  11. package/dist/Auth/PublicRoute/index.mjs +12 -0
  12. package/dist/Auth/PublicRoute/index.mjs.map +1 -1
  13. package/dist/Auth/getRootDomain/index.js +12 -0
  14. package/dist/Auth/getRootDomain/index.js.map +1 -1
  15. package/dist/Auth/getRootDomain/index.mjs +12 -0
  16. package/dist/Auth/getRootDomain/index.mjs.map +1 -1
  17. package/dist/Auth/index.d.mts +15 -1
  18. package/dist/Auth/index.d.ts +15 -1
  19. package/dist/Auth/index.js +12 -0
  20. package/dist/Auth/index.js.map +1 -1
  21. package/dist/Auth/index.mjs +12 -0
  22. package/dist/Auth/index.mjs.map +1 -1
  23. package/dist/Auth/useAuth/index.js +12 -0
  24. package/dist/Auth/useAuth/index.js.map +1 -1
  25. package/dist/Auth/useAuth/index.mjs +12 -0
  26. package/dist/Auth/useAuth/index.mjs.map +1 -1
  27. package/dist/Auth/useAuthGuard/index.js +12 -0
  28. package/dist/Auth/useAuthGuard/index.js.map +1 -1
  29. package/dist/Auth/useAuthGuard/index.mjs +12 -0
  30. package/dist/Auth/useAuthGuard/index.mjs.map +1 -1
  31. package/dist/Auth/useRouteAuth/index.js +12 -0
  32. package/dist/Auth/useRouteAuth/index.js.map +1 -1
  33. package/dist/Auth/useRouteAuth/index.mjs +12 -0
  34. package/dist/Auth/useRouteAuth/index.mjs.map +1 -1
  35. package/dist/Auth/withAuth/index.js +12 -0
  36. package/dist/Auth/withAuth/index.js.map +1 -1
  37. package/dist/Auth/withAuth/index.mjs +12 -0
  38. package/dist/Auth/withAuth/index.mjs.map +1 -1
  39. package/dist/Whiteboard/index.d.mts +34 -0
  40. package/dist/Whiteboard/index.d.ts +34 -0
  41. package/dist/Whiteboard/index.js +151 -0
  42. package/dist/Whiteboard/index.js.map +1 -0
  43. package/dist/Whiteboard/index.mjs +130 -0
  44. package/dist/Whiteboard/index.mjs.map +1 -0
  45. package/dist/index.css +47 -0
  46. package/dist/index.css.map +1 -1
  47. package/dist/index.d.mts +1 -0
  48. package/dist/index.d.ts +1 -0
  49. package/dist/index.js +354 -222
  50. package/dist/index.js.map +1 -1
  51. package/dist/index.mjs +324 -193
  52. package/dist/index.mjs.map +1 -1
  53. package/dist/styles.css +47 -0
  54. package/dist/styles.css.map +1 -1
  55. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -122,6 +122,7 @@ __export(src_exports, {
122
122
  Toast: () => Toast_default,
123
123
  Toaster: () => Toaster_default,
124
124
  VideoPlayer: () => VideoPlayer_default,
125
+ Whiteboard: () => Whiteboard_default,
125
126
  createZustandAuthAdapter: () => createZustandAuthAdapter,
126
127
  getRootDomain: () => getRootDomain,
127
128
  getStatusBadge: () => getStatusBadge,
@@ -7245,11 +7246,129 @@ var VideoPlayer = ({
7245
7246
  };
7246
7247
  var VideoPlayer_default = VideoPlayer;
7247
7248
 
7248
- // src/components/Auth/Auth.tsx
7249
+ // src/components/Whiteboard/Whiteboard.tsx
7249
7250
  var import_react23 = require("react");
7250
- var import_react_router_dom = require("react-router-dom");
7251
+ var import_phosphor_react19 = require("phosphor-react");
7251
7252
  var import_jsx_runtime37 = require("react/jsx-runtime");
7252
- var AuthContext = (0, import_react23.createContext)(void 0);
7253
+ var IMAGE_WIDTH = 225;
7254
+ var IMAGE_HEIGHT = 90;
7255
+ var Whiteboard = ({
7256
+ images,
7257
+ showDownload = true,
7258
+ className,
7259
+ onDownload,
7260
+ imagesPerRow = 2,
7261
+ ...rest
7262
+ }) => {
7263
+ const [imageErrors, setImageErrors] = (0, import_react23.useState)(/* @__PURE__ */ new Set());
7264
+ const handleDownload = (0, import_react23.useCallback)(
7265
+ (image) => {
7266
+ if (onDownload) {
7267
+ onDownload(image);
7268
+ } else {
7269
+ const link = document.createElement("a");
7270
+ link.href = image.imageUrl;
7271
+ link.download = image.title || `whiteboard-${image.id}`;
7272
+ link.target = "_blank";
7273
+ link.rel = "noopener noreferrer";
7274
+ document.body.appendChild(link);
7275
+ link.click();
7276
+ document.body.removeChild(link);
7277
+ }
7278
+ },
7279
+ [onDownload]
7280
+ );
7281
+ const handleImageError = (0, import_react23.useCallback)((imageId) => {
7282
+ setImageErrors((prev) => new Set(prev).add(imageId));
7283
+ }, []);
7284
+ const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
7285
+ 2: "grid-cols-1 sm:grid-cols-2",
7286
+ 3: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-3",
7287
+ 4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
7288
+ }[imagesPerRow];
7289
+ if (!images || images.length === 0) {
7290
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7291
+ "div",
7292
+ {
7293
+ className: cn(
7294
+ "flex items-center justify-center p-8 bg-white border border-gray-100 rounded-xl",
7295
+ className
7296
+ ),
7297
+ ...rest,
7298
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
7299
+ }
7300
+ );
7301
+ }
7302
+ return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7303
+ "div",
7304
+ {
7305
+ className: cn(
7306
+ "flex flex-col bg-white border border-gray-100 p-4 gap-2 rounded-xl w-fit mx-auto",
7307
+ className
7308
+ ),
7309
+ ...rest,
7310
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
7311
+ "div",
7312
+ {
7313
+ className: "relative group overflow-hidden bg-gray-100 rounded-lg",
7314
+ style: {
7315
+ width: `${IMAGE_WIDTH}px`
7316
+ },
7317
+ children: [
7318
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7319
+ "div",
7320
+ {
7321
+ className: "relative",
7322
+ style: {
7323
+ width: `${IMAGE_WIDTH}px`,
7324
+ height: `${IMAGE_HEIGHT}px`
7325
+ },
7326
+ children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
7327
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7328
+ "img",
7329
+ {
7330
+ src: image.imageUrl,
7331
+ alt: image.title || `Whiteboard ${image.id}`,
7332
+ className: "absolute inset-0 w-full h-full object-cover",
7333
+ loading: "lazy",
7334
+ onError: () => handleImageError(image.id)
7335
+ }
7336
+ ),
7337
+ /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
7338
+ ] })
7339
+ }
7340
+ ),
7341
+ showDownload && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7342
+ "button",
7343
+ {
7344
+ type: "button",
7345
+ onClick: () => handleDownload(image),
7346
+ className: "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",
7347
+ "aria-label": `Download ${image.title || "imagem"}`,
7348
+ children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
7349
+ import_phosphor_react19.DownloadSimple,
7350
+ {
7351
+ size: 24,
7352
+ weight: "regular",
7353
+ className: "text-white group-hover/button:scale-110 transition-transform duration-200"
7354
+ }
7355
+ )
7356
+ }
7357
+ )
7358
+ ]
7359
+ },
7360
+ image.id
7361
+ )) })
7362
+ }
7363
+ );
7364
+ };
7365
+ var Whiteboard_default = Whiteboard;
7366
+
7367
+ // src/components/Auth/Auth.tsx
7368
+ var import_react24 = require("react");
7369
+ var import_react_router_dom = require("react-router-dom");
7370
+ var import_jsx_runtime38 = require("react/jsx-runtime");
7371
+ var AuthContext = (0, import_react24.createContext)(void 0);
7253
7372
  var AuthProvider = ({
7254
7373
  children,
7255
7374
  checkAuthFn,
@@ -7259,12 +7378,12 @@ var AuthProvider = ({
7259
7378
  getSessionFn,
7260
7379
  getTokensFn
7261
7380
  }) => {
7262
- const [authState, setAuthState] = (0, import_react23.useState)({
7381
+ const [authState, setAuthState] = (0, import_react24.useState)({
7263
7382
  isAuthenticated: false,
7264
7383
  isLoading: true,
7265
7384
  ...initialAuthState
7266
7385
  });
7267
- const checkAuth = (0, import_react23.useCallback)(async () => {
7386
+ const checkAuth = (0, import_react24.useCallback)(async () => {
7268
7387
  try {
7269
7388
  setAuthState((prev) => ({ ...prev, isLoading: true }));
7270
7389
  if (!checkAuthFn) {
@@ -7295,7 +7414,7 @@ var AuthProvider = ({
7295
7414
  return false;
7296
7415
  }
7297
7416
  }, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
7298
- const signOut = (0, import_react23.useCallback)(() => {
7417
+ const signOut = (0, import_react24.useCallback)(() => {
7299
7418
  if (signOutFn) {
7300
7419
  signOutFn();
7301
7420
  }
@@ -7307,10 +7426,10 @@ var AuthProvider = ({
7307
7426
  tokens: void 0
7308
7427
  }));
7309
7428
  }, [signOutFn]);
7310
- (0, import_react23.useEffect)(() => {
7429
+ (0, import_react24.useEffect)(() => {
7311
7430
  checkAuth();
7312
7431
  }, [checkAuth]);
7313
- const contextValue = (0, import_react23.useMemo)(
7432
+ const contextValue = (0, import_react24.useMemo)(
7314
7433
  () => ({
7315
7434
  ...authState,
7316
7435
  checkAuth,
@@ -7318,10 +7437,10 @@ var AuthProvider = ({
7318
7437
  }),
7319
7438
  [authState, checkAuth, signOut]
7320
7439
  );
7321
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(AuthContext.Provider, { value: contextValue, children });
7440
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(AuthContext.Provider, { value: contextValue, children });
7322
7441
  };
7323
7442
  var useAuth = () => {
7324
- const context = (0, import_react23.useContext)(AuthContext);
7443
+ const context = (0, import_react24.useContext)(AuthContext);
7325
7444
  if (context === void 0) {
7326
7445
  throw new Error("useAuth deve ser usado dentro de um AuthProvider");
7327
7446
  }
@@ -7334,9 +7453,9 @@ var ProtectedRoute = ({
7334
7453
  additionalCheck
7335
7454
  }) => {
7336
7455
  const { isAuthenticated, isLoading, ...authState } = useAuth();
7337
- const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7456
+ const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7338
7457
  if (isLoading) {
7339
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children: loadingComponent || defaultLoadingComponent });
7458
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children: loadingComponent || defaultLoadingComponent });
7340
7459
  }
7341
7460
  if (!isAuthenticated) {
7342
7461
  if (typeof window !== "undefined") {
@@ -7347,12 +7466,12 @@ var ProtectedRoute = ({
7347
7466
  return null;
7348
7467
  }
7349
7468
  }
7350
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7469
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7351
7470
  }
7352
7471
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
7353
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7472
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7354
7473
  }
7355
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
7474
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
7356
7475
  };
7357
7476
  var PublicRoute = ({
7358
7477
  children,
@@ -7362,15 +7481,15 @@ var PublicRoute = ({
7362
7481
  }) => {
7363
7482
  const { isAuthenticated, isLoading } = useAuth();
7364
7483
  if (checkAuthBeforeRender && isLoading) {
7365
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7484
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7366
7485
  }
7367
7486
  if (isAuthenticated && redirectIfAuthenticated) {
7368
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7487
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
7369
7488
  }
7370
- return /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_jsx_runtime37.Fragment, { children });
7489
+ return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_jsx_runtime38.Fragment, { children });
7371
7490
  };
7372
7491
  var withAuth = (Component, options = {}) => {
7373
- return (props) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Component, { ...props }) });
7492
+ return (props) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Component, { ...props }) });
7374
7493
  };
7375
7494
  var useAuthGuard = (options = {}) => {
7376
7495
  const authState = useAuth();
@@ -7385,7 +7504,7 @@ var useAuthGuard = (options = {}) => {
7385
7504
  var useRouteAuth = (fallbackPath = "/") => {
7386
7505
  const { isAuthenticated, isLoading } = useAuth();
7387
7506
  const location = (0, import_react_router_dom.useLocation)();
7388
- const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
7507
+ const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
7389
7508
  return {
7390
7509
  isAuthenticated,
7391
7510
  isLoading,
@@ -7398,7 +7517,19 @@ var getRootDomain = () => {
7398
7517
  if (hostname === "localhost") {
7399
7518
  return `${protocol}//${hostname}${portStr}`;
7400
7519
  }
7520
+ const isIPv4 = /^\d{1,3}(?:\.\d{1,3}){3}$/.test(hostname);
7521
+ const isIPv6 = hostname.includes(":");
7522
+ if (isIPv4 || isIPv6) {
7523
+ return `${protocol}//${hostname}${portStr}`;
7524
+ }
7401
7525
  const parts = hostname.split(".");
7526
+ if (parts.length >= 3 && parts[parts.length - 2] === "com" && parts[parts.length - 1] === "br") {
7527
+ if (parts.length === 3) {
7528
+ return `${protocol}//${hostname}${portStr}`;
7529
+ }
7530
+ const base = parts.slice(-3).join(".");
7531
+ return `${protocol}//${base}${portStr}`;
7532
+ }
7402
7533
  if (parts.length > 2) {
7403
7534
  const base = parts.slice(-2).join(".");
7404
7535
  return `${protocol}//${base}${portStr}`;
@@ -7449,7 +7580,7 @@ function createZustandAuthAdapter(useAuthStore) {
7449
7580
  }
7450
7581
 
7451
7582
  // src/components/Auth/useUrlAuthentication.ts
7452
- var import_react24 = require("react");
7583
+ var import_react25 = require("react");
7453
7584
  var import_react_router_dom2 = require("react-router-dom");
7454
7585
  var getAuthParams = (location, extractParams) => {
7455
7586
  const searchParams = new URLSearchParams(location.search);
@@ -7497,7 +7628,7 @@ var handleUserData = (responseData, setUser) => {
7497
7628
  };
7498
7629
  function useUrlAuthentication(options) {
7499
7630
  const location = (0, import_react_router_dom2.useLocation)();
7500
- (0, import_react24.useEffect)(() => {
7631
+ (0, import_react25.useEffect)(() => {
7501
7632
  const handleAuthentication = async () => {
7502
7633
  const authParams = getAuthParams(location, options.extractParams);
7503
7634
  if (!hasValidAuthParams(authParams)) {
@@ -7536,9 +7667,9 @@ function useUrlAuthentication(options) {
7536
7667
  }
7537
7668
 
7538
7669
  // src/components/Auth/useApiConfig.ts
7539
- var import_react25 = require("react");
7670
+ var import_react26 = require("react");
7540
7671
  function useApiConfig(api) {
7541
- return (0, import_react25.useMemo)(
7672
+ return (0, import_react26.useMemo)(
7542
7673
  () => ({
7543
7674
  get: (endpoint, config) => api.get(endpoint, config)
7544
7675
  }),
@@ -7547,8 +7678,8 @@ function useApiConfig(api) {
7547
7678
  }
7548
7679
 
7549
7680
  // src/components/Quiz/Quiz.tsx
7550
- var import_phosphor_react19 = require("phosphor-react");
7551
- var import_react26 = require("react");
7681
+ var import_phosphor_react20 = require("phosphor-react");
7682
+ var import_react27 = require("react");
7552
7683
 
7553
7684
  // src/components/Quiz/useQuizStore.ts
7554
7685
  var import_zustand7 = require("zustand");
@@ -8048,13 +8179,13 @@ var simulated_result_default = "./simulated-result-QN5HCUY5.png";
8048
8179
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
8049
8180
 
8050
8181
  // src/components/Quiz/Quiz.tsx
8051
- var import_jsx_runtime38 = require("react/jsx-runtime");
8182
+ var import_jsx_runtime39 = require("react/jsx-runtime");
8052
8183
  var getStatusBadge = (status) => {
8053
8184
  switch (status) {
8054
8185
  case "correct":
8055
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CheckCircle, {}), children: "Resposta correta" });
8186
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CheckCircle, {}), children: "Resposta correta" });
8056
8187
  case "incorrect":
8057
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.XCircle, {}), children: "Resposta incorreta" });
8188
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.XCircle, {}), children: "Resposta incorreta" });
8058
8189
  default:
8059
8190
  return null;
8060
8191
  }
@@ -8067,12 +8198,12 @@ var getStatusStyles = (variantCorrect) => {
8067
8198
  return "bg-error-background border-error-300";
8068
8199
  }
8069
8200
  };
8070
- var Quiz = (0, import_react26.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
8201
+ var Quiz = (0, import_react27.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
8071
8202
  const { setVariant } = useQuizStore();
8072
- (0, import_react26.useEffect)(() => {
8203
+ (0, import_react27.useEffect)(() => {
8073
8204
  setVariant(variant);
8074
8205
  }, [variant, setVariant]);
8075
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8206
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8076
8207
  "div",
8077
8208
  {
8078
8209
  ref,
@@ -8085,12 +8216,12 @@ var Quiz = (0, import_react26.forwardRef)(({ children, className, variant = "def
8085
8216
  }
8086
8217
  );
8087
8218
  });
8088
- var QuizHeaderResult = (0, import_react26.forwardRef)(
8219
+ var QuizHeaderResult = (0, import_react27.forwardRef)(
8089
8220
  ({ className, ...props }, ref) => {
8090
8221
  const { getAllCurrentAnswer } = useQuizStore();
8091
8222
  const usersAnswer = getAllCurrentAnswer();
8092
- const [isCorrect, setIsCorrect] = (0, import_react26.useState)(false);
8093
- (0, import_react26.useEffect)(() => {
8223
+ const [isCorrect, setIsCorrect] = (0, import_react27.useState)(false);
8224
+ (0, import_react27.useEffect)(() => {
8094
8225
  if (usersAnswer) {
8095
8226
  setIsCorrect(
8096
8227
  usersAnswer.length > 0 ? usersAnswer.map(
@@ -8099,7 +8230,7 @@ var QuizHeaderResult = (0, import_react26.forwardRef)(
8099
8230
  );
8100
8231
  }
8101
8232
  }, [usersAnswer]);
8102
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8233
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8103
8234
  "div",
8104
8235
  {
8105
8236
  ref,
@@ -8110,14 +8241,14 @@ var QuizHeaderResult = (0, import_react26.forwardRef)(
8110
8241
  ),
8111
8242
  ...props,
8112
8243
  children: [
8113
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
8114
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
8244
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
8245
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
8115
8246
  ]
8116
8247
  }
8117
8248
  );
8118
8249
  }
8119
8250
  );
8120
- var QuizTitle = (0, import_react26.forwardRef)(
8251
+ var QuizTitle = (0, import_react27.forwardRef)(
8121
8252
  ({ className, ...props }, ref) => {
8122
8253
  const {
8123
8254
  currentQuestionIndex,
@@ -8129,7 +8260,7 @@ var QuizTitle = (0, import_react26.forwardRef)(
8129
8260
  } = useQuizStore();
8130
8261
  const totalQuestions = getTotalQuestions();
8131
8262
  const quizTitle = getQuizTitle();
8132
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8263
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8133
8264
  "div",
8134
8265
  {
8135
8266
  ref,
@@ -8139,25 +8270,25 @@ var QuizTitle = (0, import_react26.forwardRef)(
8139
8270
  ),
8140
8271
  ...props,
8141
8272
  children: [
8142
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
8143
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
8144
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
8273
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
8274
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
8275
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
8145
8276
  ] }),
8146
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
8277
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "absolute right-2", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
8147
8278
  ]
8148
8279
  }
8149
8280
  );
8150
8281
  }
8151
8282
  );
8152
- var QuizSubTitle = (0, import_react26.forwardRef)(
8283
+ var QuizSubTitle = (0, import_react27.forwardRef)(
8153
8284
  ({ subTitle, ...props }, ref) => {
8154
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
8285
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
8155
8286
  }
8156
8287
  );
8157
8288
  var QuizHeader = () => {
8158
8289
  const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
8159
8290
  const currentQuestion = getCurrentQuestion();
8160
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8291
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8161
8292
  HeaderAlternative,
8162
8293
  {
8163
8294
  title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
@@ -8166,8 +8297,8 @@ var QuizHeader = () => {
8166
8297
  }
8167
8298
  );
8168
8299
  };
8169
- var QuizContainer = (0, import_react26.forwardRef)(({ children, className, ...props }, ref) => {
8170
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8300
+ var QuizContainer = (0, import_react27.forwardRef)(({ children, className, ...props }, ref) => {
8301
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8171
8302
  "div",
8172
8303
  {
8173
8304
  ref,
@@ -8180,7 +8311,7 @@ var QuizContainer = (0, import_react26.forwardRef)(({ children, className, ...pr
8180
8311
  }
8181
8312
  );
8182
8313
  });
8183
- var QuizContent = (0, import_react26.forwardRef)(({ paddingBottom }) => {
8314
+ var QuizContent = (0, import_react27.forwardRef)(({ paddingBottom }) => {
8184
8315
  const { getCurrentQuestion, variant } = useQuizStore();
8185
8316
  const currentQuestion = getCurrentQuestion();
8186
8317
  const questionComponents = {
@@ -8193,7 +8324,7 @@ var QuizContent = (0, import_react26.forwardRef)(({ paddingBottom }) => {
8193
8324
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
8194
8325
  };
8195
8326
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.type] : null;
8196
- return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuestionComponent, { variant, paddingBottom }) : null;
8327
+ return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuestionComponent, { variant, paddingBottom }) : null;
8197
8328
  });
8198
8329
  var QuizAlternative = ({
8199
8330
  variant = "default",
@@ -8221,10 +8352,10 @@ var QuizAlternative = ({
8221
8352
  };
8222
8353
  });
8223
8354
  if (!alternatives)
8224
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
8225
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8226
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8227
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8355
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
8356
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8357
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8358
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8228
8359
  AlternativesList,
8229
8360
  {
8230
8361
  mode: variant === "default" ? "interactive" : "readonly",
@@ -8250,15 +8381,15 @@ var QuizMultipleChoice = ({
8250
8381
  const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
8251
8382
  const currentQuestion = getCurrentQuestion();
8252
8383
  const allCurrentAnswers = getAllCurrentAnswer();
8253
- const prevSelectedValuesRef = (0, import_react26.useRef)([]);
8254
- const prevQuestionIdRef = (0, import_react26.useRef)("");
8255
- const allCurrentAnswerIds = (0, import_react26.useMemo)(() => {
8384
+ const prevSelectedValuesRef = (0, import_react27.useRef)([]);
8385
+ const prevQuestionIdRef = (0, import_react27.useRef)("");
8386
+ const allCurrentAnswerIds = (0, import_react27.useMemo)(() => {
8256
8387
  return allCurrentAnswers?.map((answer) => answer.optionId) || [];
8257
8388
  }, [allCurrentAnswers]);
8258
- const selectedValues = (0, import_react26.useMemo)(() => {
8389
+ const selectedValues = (0, import_react27.useMemo)(() => {
8259
8390
  return allCurrentAnswerIds?.filter((id) => id !== null) || [];
8260
8391
  }, [allCurrentAnswerIds]);
8261
- const stableSelectedValues = (0, import_react26.useMemo)(() => {
8392
+ const stableSelectedValues = (0, import_react27.useMemo)(() => {
8262
8393
  const currentQuestionId = currentQuestion?.id || "";
8263
8394
  const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
8264
8395
  if (hasQuestionChanged) {
@@ -8273,7 +8404,7 @@ var QuizMultipleChoice = ({
8273
8404
  }
8274
8405
  return prevSelectedValuesRef.current;
8275
8406
  }, [selectedValues, currentQuestion?.id]);
8276
- const handleSelectedValues = (0, import_react26.useCallback)(
8407
+ const handleSelectedValues = (0, import_react27.useCallback)(
8277
8408
  (values) => {
8278
8409
  if (currentQuestion) {
8279
8410
  selectMultipleAnswer(currentQuestion.id, values);
@@ -8281,7 +8412,7 @@ var QuizMultipleChoice = ({
8281
8412
  },
8282
8413
  [currentQuestion, selectMultipleAnswer]
8283
8414
  );
8284
- const questionKey = (0, import_react26.useMemo)(
8415
+ const questionKey = (0, import_react27.useMemo)(
8285
8416
  () => `question-${currentQuestion?.id || "1"}`,
8286
8417
  [currentQuestion?.id]
8287
8418
  );
@@ -8302,10 +8433,10 @@ var QuizMultipleChoice = ({
8302
8433
  };
8303
8434
  });
8304
8435
  if (!choices)
8305
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
8306
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8307
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8308
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8436
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
8437
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8438
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8439
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8309
8440
  MultipleChoiceList,
8310
8441
  {
8311
8442
  choices,
@@ -8325,13 +8456,13 @@ var QuizDissertative = ({
8325
8456
  const { getCurrentQuestion, getCurrentAnswer, selectDissertativeAnswer } = useQuizStore();
8326
8457
  const currentQuestion = getCurrentQuestion();
8327
8458
  const currentAnswer = getCurrentAnswer();
8328
- const textareaRef = (0, import_react26.useRef)(null);
8459
+ const textareaRef = (0, import_react27.useRef)(null);
8329
8460
  const handleAnswerChange = (value) => {
8330
8461
  if (currentQuestion) {
8331
8462
  selectDissertativeAnswer(currentQuestion.id, value);
8332
8463
  }
8333
8464
  };
8334
- const adjustTextareaHeight = (0, import_react26.useCallback)(() => {
8465
+ const adjustTextareaHeight = (0, import_react27.useCallback)(() => {
8335
8466
  if (textareaRef.current) {
8336
8467
  textareaRef.current.style.height = "auto";
8337
8468
  const scrollHeight = textareaRef.current.scrollHeight;
@@ -8341,15 +8472,15 @@ var QuizDissertative = ({
8341
8472
  textareaRef.current.style.height = `${newHeight}px`;
8342
8473
  }
8343
8474
  }, []);
8344
- (0, import_react26.useEffect)(() => {
8475
+ (0, import_react27.useEffect)(() => {
8345
8476
  adjustTextareaHeight();
8346
8477
  }, [currentAnswer, adjustTextareaHeight]);
8347
8478
  if (!currentQuestion) {
8348
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
8479
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
8349
8480
  }
8350
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8351
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
8352
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8481
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8482
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
8483
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8353
8484
  TextArea_default,
8354
8485
  {
8355
8486
  ref: textareaRef,
@@ -8359,10 +8490,10 @@ var QuizDissertative = ({
8359
8490
  rows: 4,
8360
8491
  className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
8361
8492
  }
8362
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
8363
- variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8364
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
8365
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Mauris euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim." }) })
8493
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentAnswer?.answer || "Nenhuma resposta fornecida" }) }) }) }),
8494
+ variant === "result" && currentAnswer?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8495
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
8496
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Mauris euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim." }) })
8366
8497
  ] })
8367
8498
  ] });
8368
8499
  };
@@ -8390,16 +8521,16 @@ var QuizTrueOrFalse = ({
8390
8521
  ];
8391
8522
  const getLetterByIndex = (index) => String.fromCharCode(97 + index);
8392
8523
  const isDefaultVariant = variant == "default";
8393
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8394
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8395
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8524
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8525
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8526
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8396
8527
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
8397
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8528
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8398
8529
  "section",
8399
8530
  {
8400
8531
  className: "flex flex-col gap-2",
8401
8532
  children: [
8402
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8533
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8403
8534
  "div",
8404
8535
  {
8405
8536
  className: cn(
@@ -8407,20 +8538,20 @@ var QuizTrueOrFalse = ({
8407
8538
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
8408
8539
  ),
8409
8540
  children: [
8410
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
8411
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Select_default, { size: "medium", children: [
8412
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
8413
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(SelectContent, { children: [
8414
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
8415
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "F", children: "Falso" })
8541
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
8542
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Select_default, { size: "medium", children: [
8543
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
8544
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(SelectContent, { children: [
8545
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
8546
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "F", children: "Falso" })
8416
8547
  ] })
8417
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
8548
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
8418
8549
  ]
8419
8550
  }
8420
8551
  ),
8421
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8422
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
8423
- !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
8552
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8553
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
8554
+ !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
8424
8555
  ] })
8425
8556
  ]
8426
8557
  },
@@ -8483,7 +8614,7 @@ var QuizConnectDots = ({
8483
8614
  isCorrect: false
8484
8615
  }
8485
8616
  ];
8486
- const [userAnswers, setUserAnswers] = (0, import_react26.useState)(() => {
8617
+ const [userAnswers, setUserAnswers] = (0, import_react27.useState)(() => {
8487
8618
  if (variant === "result") {
8488
8619
  return mockUserAnswers;
8489
8620
  }
@@ -8512,13 +8643,13 @@ var QuizConnectDots = ({
8512
8643
  const assignedDots = new Set(
8513
8644
  userAnswers.map((a) => a.dotOption).filter(Boolean)
8514
8645
  );
8515
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8516
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8517
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8646
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8647
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8648
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
8518
8649
  const answer = userAnswers[index];
8519
8650
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
8520
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col gap-2", children: [
8521
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8651
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col gap-2", children: [
8652
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8522
8653
  "div",
8523
8654
  {
8524
8655
  className: cn(
@@ -8526,30 +8657,30 @@ var QuizConnectDots = ({
8526
8657
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
8527
8658
  ),
8528
8659
  children: [
8529
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
8530
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8660
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
8661
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8531
8662
  Select_default,
8532
8663
  {
8533
8664
  size: "medium",
8534
8665
  value: answer.dotOption || void 0,
8535
8666
  onValueChange: (value) => handleSelectDot(index, value),
8536
8667
  children: [
8537
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8538
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectContent, { children: dotsOptions.filter(
8668
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8669
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectContent, { children: dotsOptions.filter(
8539
8670
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
8540
- ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
8671
+ ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
8541
8672
  ]
8542
8673
  }
8543
- ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
8674
+ ) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
8544
8675
  ]
8545
8676
  }
8546
8677
  ),
8547
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8548
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8678
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
8679
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8549
8680
  "Resposta selecionada: ",
8550
8681
  answer.dotOption || "Nenhuma"
8551
8682
  ] }),
8552
- !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8683
+ !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-800 text-2xs", children: [
8553
8684
  "Resposta correta: ",
8554
8685
  answer.correctOption
8555
8686
  ] })
@@ -8604,8 +8735,8 @@ var QuizFill = ({
8604
8735
  isCorrect: true
8605
8736
  }
8606
8737
  ];
8607
- const [answers, setAnswers] = (0, import_react26.useState)({});
8608
- const baseId = (0, import_react26.useId)();
8738
+ const [answers, setAnswers] = (0, import_react27.useState)({});
8739
+ const baseId = (0, import_react27.useId)();
8609
8740
  const getAvailableOptionsForSelect = (selectId) => {
8610
8741
  const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
8611
8742
  return options.filter((option) => !usedOptions.includes(option));
@@ -8618,18 +8749,18 @@ var QuizFill = ({
8618
8749
  const mockAnswer = mockUserAnswers.find(
8619
8750
  (answer) => answer.selectId === selectId
8620
8751
  );
8621
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
8752
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
8622
8753
  };
8623
8754
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
8624
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8755
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8625
8756
  Select_default,
8626
8757
  {
8627
8758
  value: selectedValue,
8628
8759
  onValueChange: (value) => handleSelectChange(selectId, value),
8629
8760
  className: "inline-flex mb-2.5",
8630
8761
  children: [
8631
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8632
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
8762
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
8763
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
8633
8764
  ]
8634
8765
  },
8635
8766
  `${selectId}-${startIndex}`
@@ -8641,8 +8772,8 @@ var QuizFill = ({
8641
8772
  );
8642
8773
  if (!mockAnswer) return null;
8643
8774
  const action = mockAnswer.isCorrect ? "success" : "error";
8644
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.XCircle, {});
8645
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8775
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.XCircle, {});
8776
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8646
8777
  Badge_default,
8647
8778
  {
8648
8779
  variant: "solid",
@@ -8650,7 +8781,7 @@ var QuizFill = ({
8650
8781
  iconRight: icon,
8651
8782
  size: "large",
8652
8783
  className: "py-3 w-[180px] justify-between mb-2.5",
8653
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
8784
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
8654
8785
  },
8655
8786
  selectId
8656
8787
  );
@@ -8706,25 +8837,25 @@ var QuizFill = ({
8706
8837
  }
8707
8838
  return elements;
8708
8839
  };
8709
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8710
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8711
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8840
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8841
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
8842
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8712
8843
  "div",
8713
8844
  {
8714
8845
  className: cn(
8715
8846
  "text-lg text-text-900 leading-8 h-auto",
8716
8847
  variant != "result" && paddingBottom
8717
8848
  ),
8718
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: element.element }, element.id))
8849
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: element.element }, element.id))
8719
8850
  }
8720
8851
  ) }) }),
8721
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8722
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
8723
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8852
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8853
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
8854
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8724
8855
  "div",
8725
8856
  {
8726
8857
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
8727
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: element.element }, element.id))
8858
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: element.element }, element.id))
8728
8859
  }
8729
8860
  ) }) })
8730
8861
  ] })
@@ -8744,7 +8875,7 @@ var QuizImageQuestion = ({
8744
8875
  };
8745
8876
  const correctRadiusRelative = calculateCorrectRadiusRelative();
8746
8877
  const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
8747
- const [clickPositionRelative, setClickPositionRelative] = (0, import_react26.useState)(variant == "result" ? mockUserAnswerRelative : null);
8878
+ const [clickPositionRelative, setClickPositionRelative] = (0, import_react27.useState)(variant == "result" ? mockUserAnswerRelative : null);
8748
8879
  const convertToRelativeCoordinates = (x, y, rect) => {
8749
8880
  const safeWidth = Math.max(rect.width, 1e-3);
8750
8881
  const safeHeight = Math.max(rect.height, 1e-3);
@@ -8780,36 +8911,36 @@ var QuizImageQuestion = ({
8780
8911
  }
8781
8912
  return "bg-success-600/70 border-white";
8782
8913
  };
8783
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
8784
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
8785
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8914
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
8915
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
8916
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8786
8917
  "div",
8787
8918
  {
8788
8919
  "data-testid": "quiz-image-container",
8789
8920
  className: "space-y-6 p-3 relative inline-block",
8790
8921
  children: [
8791
- variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8922
+ variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8792
8923
  "div",
8793
8924
  {
8794
8925
  "data-testid": "quiz-legend",
8795
8926
  className: "flex items-center gap-4 text-xs",
8796
8927
  children: [
8797
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8798
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
8799
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
8928
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
8929
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
8930
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
8800
8931
  ] }),
8801
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8802
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
8803
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
8932
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
8933
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
8934
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
8804
8935
  ] }),
8805
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-2", children: [
8806
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
8807
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
8936
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-2", children: [
8937
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
8938
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
8808
8939
  ] })
8809
8940
  ]
8810
8941
  }
8811
8942
  ),
8812
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
8943
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
8813
8944
  "button",
8814
8945
  {
8815
8946
  "data-testid": "quiz-image-button",
@@ -8824,7 +8955,7 @@ var QuizImageQuestion = ({
8824
8955
  },
8825
8956
  "aria-label": "\xC1rea da imagem interativa",
8826
8957
  children: [
8827
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8958
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8828
8959
  "img",
8829
8960
  {
8830
8961
  "data-testid": "quiz-image",
@@ -8833,7 +8964,7 @@ var QuizImageQuestion = ({
8833
8964
  className: "w-full h-auto rounded-md"
8834
8965
  }
8835
8966
  ),
8836
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8967
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8837
8968
  "div",
8838
8969
  {
8839
8970
  "data-testid": "quiz-correct-circle",
@@ -8848,7 +8979,7 @@ var QuizImageQuestion = ({
8848
8979
  }
8849
8980
  }
8850
8981
  ),
8851
- clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
8982
+ clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8852
8983
  "div",
8853
8984
  {
8854
8985
  "data-testid": "quiz-user-circle",
@@ -8916,16 +9047,16 @@ var QuizQuestionList = ({
8916
9047
  return "Em branco";
8917
9048
  }
8918
9049
  };
8919
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
8920
- ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col gap-2", children: [
8921
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
8922
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.BookOpen, { size: 17, className: "text-white" }) }),
8923
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
9050
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
9051
+ ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col gap-2", children: [
9052
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
9053
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.BookOpen, { size: 17, className: "text-white" }) }),
9054
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
8924
9055
  ] }),
8925
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
9056
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
8926
9057
  const status = getQuestionStatus(question.id);
8927
9058
  const questionNumber = getQuestionIndex(question.id);
8928
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9059
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
8929
9060
  CardStatus,
8930
9061
  {
8931
9062
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -8941,7 +9072,7 @@ var QuizQuestionList = ({
8941
9072
  ] }, subjectId)
8942
9073
  ) });
8943
9074
  };
8944
- var QuizFooter = (0, import_react26.forwardRef)(
9075
+ var QuizFooter = (0, import_react27.forwardRef)(
8945
9076
  ({
8946
9077
  className,
8947
9078
  onGoToSimulated,
@@ -8969,11 +9100,11 @@ var QuizFooter = (0, import_react26.forwardRef)(
8969
9100
  const currentAnswer = getCurrentAnswer();
8970
9101
  const currentQuestion = getCurrentQuestion();
8971
9102
  const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
8972
- const [alertDialogOpen, setAlertDialogOpen] = (0, import_react26.useState)(false);
8973
- const [modalResultOpen, setModalResultOpen] = (0, import_react26.useState)(false);
8974
- const [modalNavigateOpen, setModalNavigateOpen] = (0, import_react26.useState)(false);
8975
- const [modalResolutionOpen, setModalResolutionOpen] = (0, import_react26.useState)(false);
8976
- const [filterType, setFilterType] = (0, import_react26.useState)("all");
9103
+ const [alertDialogOpen, setAlertDialogOpen] = (0, import_react27.useState)(false);
9104
+ const [modalResultOpen, setModalResultOpen] = (0, import_react27.useState)(false);
9105
+ const [modalNavigateOpen, setModalNavigateOpen] = (0, import_react27.useState)(false);
9106
+ const [modalResolutionOpen, setModalResolutionOpen] = (0, import_react27.useState)(false);
9107
+ const [filterType, setFilterType] = (0, import_react27.useState)("all");
8977
9108
  const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
8978
9109
  const userAnswers = getUserAnswers();
8979
9110
  const allQuestions = getTotalQuestions();
@@ -9005,8 +9136,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
9005
9136
  setAlertDialogOpen(false);
9006
9137
  }
9007
9138
  };
9008
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
9009
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9139
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
9140
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9010
9141
  "footer",
9011
9142
  {
9012
9143
  ref,
@@ -9015,17 +9146,17 @@ var QuizFooter = (0, import_react26.forwardRef)(
9015
9146
  className
9016
9147
  ),
9017
9148
  ...props,
9018
- children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
9019
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
9020
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9149
+ children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
9150
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
9151
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9021
9152
  IconButton_default,
9022
9153
  {
9023
- icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.SquaresFour, { size: 24, className: "text-text-950" }),
9154
+ icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.SquaresFour, { size: 24, className: "text-text-950" }),
9024
9155
  size: "md",
9025
9156
  onClick: () => setModalNavigateOpen(true)
9026
9157
  }
9027
9158
  ),
9028
- isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9159
+ isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9029
9160
  Button_default,
9030
9161
  {
9031
9162
  variant: "outline",
@@ -9036,13 +9167,13 @@ var QuizFooter = (0, import_react26.forwardRef)(
9036
9167
  },
9037
9168
  children: "Pular"
9038
9169
  }
9039
- ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9170
+ ) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9040
9171
  Button_default,
9041
9172
  {
9042
9173
  size: "medium",
9043
9174
  variant: "link",
9044
9175
  action: "primary",
9045
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CaretLeft, { size: 18 }),
9176
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CaretLeft, { size: 18 }),
9046
9177
  onClick: () => {
9047
9178
  goToPreviousQuestion();
9048
9179
  },
@@ -9050,7 +9181,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9050
9181
  }
9051
9182
  )
9052
9183
  ] }),
9053
- !isFirstQuestion && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9184
+ !isFirstQuestion && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9054
9185
  Button_default,
9055
9186
  {
9056
9187
  size: "small",
@@ -9063,7 +9194,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9063
9194
  children: "Pular"
9064
9195
  }
9065
9196
  ),
9066
- isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9197
+ isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9067
9198
  Button_default,
9068
9199
  {
9069
9200
  size: "medium",
@@ -9073,13 +9204,13 @@ var QuizFooter = (0, import_react26.forwardRef)(
9073
9204
  onClick: handleFinishQuiz,
9074
9205
  children: "Finalizar"
9075
9206
  }
9076
- ) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9207
+ ) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9077
9208
  Button_default,
9078
9209
  {
9079
9210
  size: "medium",
9080
9211
  variant: "link",
9081
9212
  action: "primary",
9082
- iconRight: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.CaretRight, { size: 18 }),
9213
+ iconRight: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.CaretRight, { size: 18 }),
9083
9214
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
9084
9215
  onClick: () => {
9085
9216
  goToNextQuestion();
@@ -9087,7 +9218,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9087
9218
  children: "Avan\xE7ar"
9088
9219
  }
9089
9220
  )
9090
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9221
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9091
9222
  Button_default,
9092
9223
  {
9093
9224
  variant: "solid",
@@ -9099,7 +9230,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9099
9230
  ) })
9100
9231
  }
9101
9232
  ),
9102
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9233
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9103
9234
  AlertDialog,
9104
9235
  {
9105
9236
  isOpen: alertDialogOpen,
@@ -9111,7 +9242,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9111
9242
  onSubmit: handleAlertSubmit
9112
9243
  }
9113
9244
  ),
9114
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9245
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9115
9246
  Modal_default,
9116
9247
  {
9117
9248
  isOpen: modalResultOpen,
@@ -9121,8 +9252,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
9121
9252
  closeOnEscape: false,
9122
9253
  hideCloseButton: true,
9123
9254
  size: "md",
9124
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
9125
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9255
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
9256
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9126
9257
  "img",
9127
9258
  {
9128
9259
  src: simulated_result_default,
@@ -9130,9 +9261,9 @@ var QuizFooter = (0, import_react26.forwardRef)(
9130
9261
  className: "w-[282px] h-auto object-cover"
9131
9262
  }
9132
9263
  ),
9133
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
9134
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
9135
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("p", { className: "text-text-500 font-sm", children: [
9264
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
9265
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
9266
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("p", { className: "text-text-500 font-sm", children: [
9136
9267
  "Voc\xEA acertou",
9137
9268
  " ",
9138
9269
  (() => {
@@ -9154,8 +9285,8 @@ var QuizFooter = (0, import_react26.forwardRef)(
9154
9285
  " quest\xF5es."
9155
9286
  ] })
9156
9287
  ] }),
9157
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
9158
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9288
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
9289
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9159
9290
  Button_default,
9160
9291
  {
9161
9292
  variant: "outline",
@@ -9165,31 +9296,31 @@ var QuizFooter = (0, import_react26.forwardRef)(
9165
9296
  children: "Ir para simulados"
9166
9297
  }
9167
9298
  ),
9168
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
9299
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
9169
9300
  ] })
9170
9301
  ] })
9171
9302
  }
9172
9303
  ),
9173
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9304
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9174
9305
  Modal_default,
9175
9306
  {
9176
9307
  isOpen: modalNavigateOpen,
9177
9308
  onClose: () => setModalNavigateOpen(false),
9178
9309
  title: "Quest\xF5es",
9179
9310
  size: "lg",
9180
- children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col w-full h-full", children: [
9181
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
9182
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
9183
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
9184
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
9185
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(SelectContent, { children: [
9186
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "all", children: "Todas" }),
9187
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
9188
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
9311
+ children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col w-full h-full", children: [
9312
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
9313
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
9314
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
9315
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
9316
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(SelectContent, { children: [
9317
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "all", children: "Todas" }),
9318
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
9319
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
9189
9320
  ] })
9190
9321
  ] }) })
9191
9322
  ] }),
9192
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9323
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9193
9324
  QuizQuestionList,
9194
9325
  {
9195
9326
  filterType,
@@ -9199,7 +9330,7 @@ var QuizFooter = (0, import_react26.forwardRef)(
9199
9330
  ] })
9200
9331
  }
9201
9332
  ),
9202
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9333
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9203
9334
  Modal_default,
9204
9335
  {
9205
9336
  isOpen: modalResolutionOpen,
@@ -9212,25 +9343,25 @@ var QuizFooter = (0, import_react26.forwardRef)(
9212
9343
  ] });
9213
9344
  }
9214
9345
  );
9215
- var QuizResultHeaderTitle = (0, import_react26.forwardRef)(({ className, ...props }, ref) => {
9346
+ var QuizResultHeaderTitle = (0, import_react27.forwardRef)(({ className, ...props }, ref) => {
9216
9347
  const { bySimulated } = useQuizStore();
9217
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
9348
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
9218
9349
  "div",
9219
9350
  {
9220
9351
  ref,
9221
9352
  className: cn("flex flex-row pt-4 justify-between", className),
9222
9353
  ...props,
9223
9354
  children: [
9224
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
9225
- bySimulated && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
9355
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
9356
+ bySimulated && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
9226
9357
  ]
9227
9358
  }
9228
9359
  );
9229
9360
  });
9230
- var QuizResultTitle = (0, import_react26.forwardRef)(({ className, ...props }, ref) => {
9361
+ var QuizResultTitle = (0, import_react27.forwardRef)(({ className, ...props }, ref) => {
9231
9362
  const { getQuizTitle } = useQuizStore();
9232
9363
  const quizTitle = getQuizTitle();
9233
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9364
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9234
9365
  "p",
9235
9366
  {
9236
9367
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -9240,7 +9371,7 @@ var QuizResultTitle = (0, import_react26.forwardRef)(({ className, ...props }, r
9240
9371
  }
9241
9372
  );
9242
9373
  });
9243
- var QuizResultPerformance = (0, import_react26.forwardRef)(
9374
+ var QuizResultPerformance = (0, import_react27.forwardRef)(
9244
9375
  ({ ...props }, ref) => {
9245
9376
  const {
9246
9377
  getTotalQuestions,
@@ -9286,15 +9417,15 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
9286
9417
  });
9287
9418
  }
9288
9419
  const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
9289
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
9420
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
9290
9421
  "div",
9291
9422
  {
9292
9423
  className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
9293
9424
  ref,
9294
9425
  ...props,
9295
9426
  children: [
9296
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "relative", children: [
9297
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9427
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "relative", children: [
9428
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9298
9429
  ProgressCircle_default,
9299
9430
  {
9300
9431
  size: "medium",
@@ -9304,21 +9435,21 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
9304
9435
  label: ""
9305
9436
  }
9306
9437
  ),
9307
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
9308
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
9309
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
9310
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(timeElapsed) })
9438
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
9439
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
9440
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
9441
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(timeElapsed) })
9311
9442
  ] }),
9312
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
9443
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
9313
9444
  correctAnswers,
9314
9445
  " de ",
9315
9446
  totalQuestions
9316
9447
  ] }),
9317
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
9448
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
9318
9449
  ] })
9319
9450
  ] }),
9320
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
9321
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9451
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
9452
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9322
9453
  ProgressBar_default,
9323
9454
  {
9324
9455
  className: "w-full",
@@ -9332,7 +9463,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
9332
9463
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
9333
9464
  }
9334
9465
  ),
9335
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9466
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9336
9467
  ProgressBar_default,
9337
9468
  {
9338
9469
  className: "w-full",
@@ -9346,7 +9477,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
9346
9477
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
9347
9478
  }
9348
9479
  ),
9349
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9480
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9350
9481
  ProgressBar_default,
9351
9482
  {
9352
9483
  className: "w-full",
@@ -9366,7 +9497,7 @@ var QuizResultPerformance = (0, import_react26.forwardRef)(
9366
9497
  );
9367
9498
  }
9368
9499
  );
9369
- var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
9500
+ var QuizListResult = (0, import_react27.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
9370
9501
  const {
9371
9502
  getQuestionsGroupedBySubject,
9372
9503
  isQuestionAnswered,
@@ -9395,9 +9526,9 @@ var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick
9395
9526
  };
9396
9527
  }
9397
9528
  );
9398
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { ref, className, ...props, children: [
9399
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
9400
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9529
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { ref, className, ...props, children: [
9530
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
9531
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9401
9532
  CardResults,
9402
9533
  {
9403
9534
  onClick: () => onSubjectClick?.(subject.subject),
@@ -9405,7 +9536,7 @@ var QuizListResult = (0, import_react26.forwardRef)(({ className, onSubjectClick
9405
9536
  header: subject.subject,
9406
9537
  correct_answers: subject.correct,
9407
9538
  incorrect_answers: subject.incorrect,
9408
- icon: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(import_phosphor_react19.Book, { size: 20 }),
9539
+ icon: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(import_phosphor_react20.Book, { size: 20 }),
9409
9540
  direction: "row"
9410
9541
  }
9411
9542
  ) }, subject.subject)) })
@@ -9422,13 +9553,13 @@ var QuizListResultByMateria = ({
9422
9553
  } = useQuizStore();
9423
9554
  const groupedQuestions = getQuestionsGroupedBySubject();
9424
9555
  const answeredQuestions = groupedQuestions[subject] || [];
9425
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
9426
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
9427
- /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("section", { className: "flex flex-col ", children: [
9428
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
9429
- /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
9556
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
9557
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
9558
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("section", { className: "flex flex-col ", children: [
9559
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
9560
+ /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
9430
9561
  const questionIndex = getQuestionIndex(question.id);
9431
- return /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
9562
+ return /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(
9432
9563
  CardStatus,
9433
9564
  {
9434
9565
  className: "max-w-full",
@@ -9542,6 +9673,7 @@ var QuizListResultByMateria = ({
9542
9673
  Toast,
9543
9674
  Toaster,
9544
9675
  VideoPlayer,
9676
+ Whiteboard,
9545
9677
  createZustandAuthAdapter,
9546
9678
  getRootDomain,
9547
9679
  getStatusBadge,