analytica-frontend-lib 1.1.49 → 1.1.51

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
@@ -5987,42 +5987,217 @@ var useMobile = () => {
5987
5987
  };
5988
5988
 
5989
5989
  // src/hooks/useTheme.ts
5990
- import { useEffect as useEffect10 } from "react";
5990
+ import { useEffect as useEffect10, useState as useState13, useCallback, useRef as useRef7 } from "react";
5991
5991
  var useTheme = () => {
5992
- useEffect10(() => {
5992
+ const [themeMode, setThemeMode] = useState13("system");
5993
+ const [isDark, setIsDark] = useState13(false);
5994
+ const themeModeRef = useRef7("system");
5995
+ const applyTheme = useCallback((mode) => {
5993
5996
  const htmlElement = document.documentElement;
5994
- const currentTheme = htmlElement.getAttribute("data-theme");
5995
- if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
5996
- htmlElement.setAttribute("data-original-theme", currentTheme);
5997
- }
5998
- const applyTheme = () => {
5999
- const isDarkMode = window.matchMedia(
5997
+ const originalTheme = htmlElement.getAttribute("data-original-theme");
5998
+ if (mode === "dark") {
5999
+ htmlElement.setAttribute("data-theme", "dark");
6000
+ setIsDark(true);
6001
+ } else if (mode === "light") {
6002
+ if (originalTheme) {
6003
+ htmlElement.setAttribute("data-theme", originalTheme);
6004
+ }
6005
+ setIsDark(false);
6006
+ } else if (mode === "system") {
6007
+ const isSystemDark = window.matchMedia(
6000
6008
  "(prefers-color-scheme: dark)"
6001
6009
  ).matches;
6002
- const originalTheme = htmlElement.getAttribute("data-original-theme");
6003
- if (isDarkMode) {
6010
+ if (isSystemDark) {
6004
6011
  htmlElement.setAttribute("data-theme", "dark");
6012
+ setIsDark(true);
6005
6013
  } else if (originalTheme) {
6006
6014
  htmlElement.setAttribute("data-theme", originalTheme);
6015
+ setIsDark(false);
6007
6016
  }
6008
- };
6009
- applyTheme();
6017
+ }
6010
6018
  }, []);
6019
+ const toggleTheme = useCallback(() => {
6020
+ let newMode;
6021
+ if (themeMode === "light") {
6022
+ newMode = "dark";
6023
+ } else if (themeMode === "dark") {
6024
+ newMode = "light";
6025
+ } else {
6026
+ newMode = "dark";
6027
+ }
6028
+ setThemeMode(newMode);
6029
+ themeModeRef.current = newMode;
6030
+ applyTheme(newMode);
6031
+ localStorage.setItem("theme-mode", newMode);
6032
+ }, [themeMode, applyTheme]);
6033
+ const setTheme = useCallback(
6034
+ (mode) => {
6035
+ setThemeMode(mode);
6036
+ themeModeRef.current = mode;
6037
+ applyTheme(mode);
6038
+ localStorage.setItem("theme-mode", mode);
6039
+ },
6040
+ [applyTheme]
6041
+ );
6042
+ useEffect10(() => {
6043
+ const htmlElement = document.documentElement;
6044
+ const currentTheme = htmlElement.getAttribute("data-theme");
6045
+ if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
6046
+ htmlElement.setAttribute("data-original-theme", currentTheme);
6047
+ }
6048
+ const savedThemeMode = localStorage.getItem("theme-mode");
6049
+ const initialMode = savedThemeMode || "system";
6050
+ if (!savedThemeMode) {
6051
+ localStorage.setItem("theme-mode", "system");
6052
+ }
6053
+ setThemeMode(initialMode);
6054
+ themeModeRef.current = initialMode;
6055
+ applyTheme(initialMode);
6056
+ const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
6057
+ const handleSystemThemeChange = () => {
6058
+ if (themeModeRef.current === "system") {
6059
+ applyTheme("system");
6060
+ }
6061
+ };
6062
+ mediaQuery.addEventListener("change", handleSystemThemeChange);
6063
+ return () => {
6064
+ mediaQuery.removeEventListener("change", handleSystemThemeChange);
6065
+ };
6066
+ }, [applyTheme]);
6067
+ return {
6068
+ themeMode,
6069
+ isDark,
6070
+ toggleTheme,
6071
+ setTheme
6072
+ };
6011
6073
  };
6012
6074
 
6075
+ // src/components/ThemeToggle/ThemeToggle.tsx
6076
+ import { forwardRef as forwardRef16 } from "react";
6077
+ import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
6078
+ var ThemeToggle = forwardRef16(
6079
+ ({
6080
+ variant = "simple",
6081
+ size = "md",
6082
+ showIcons = true,
6083
+ showLabels = true,
6084
+ className,
6085
+ children,
6086
+ ...props
6087
+ }, ref) => {
6088
+ const { themeMode, isDark, toggleTheme, setTheme } = useTheme();
6089
+ const sizeClasses = {
6090
+ sm: "text-sm px-3 py-1.5",
6091
+ md: "text-md px-4 py-2",
6092
+ lg: "text-lg px-5 py-2.5"
6093
+ };
6094
+ const activeClasses = "bg-primary-500 text-white";
6095
+ const inactiveClasses = "bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600";
6096
+ const baseButtonClasses = "inline-flex items-center justify-center gap-2 rounded-md border border-gray-300 dark:border-gray-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500";
6097
+ const smallButtonClasses = "px-3 py-1.5 rounded-md text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500";
6098
+ const renderThemeButton = (theme, icon, label, isActive, buttonSize) => {
6099
+ const buttonClasses = buttonSize ? cn(baseButtonClasses, sizeClasses[buttonSize]) : smallButtonClasses;
6100
+ const stateClasses = isActive ? activeClasses : inactiveClasses;
6101
+ return /* @__PURE__ */ jsxs26(
6102
+ "button",
6103
+ {
6104
+ type: "button",
6105
+ onClick: () => setTheme(theme),
6106
+ className: cn(buttonClasses, stateClasses),
6107
+ ...buttonSize ? props : {},
6108
+ children: [
6109
+ showIcons && icon,
6110
+ showLabels && label
6111
+ ]
6112
+ }
6113
+ );
6114
+ };
6115
+ if (variant === "simple") {
6116
+ return /* @__PURE__ */ jsx32(
6117
+ "button",
6118
+ {
6119
+ type: "button",
6120
+ ref,
6121
+ onClick: toggleTheme,
6122
+ className: cn(
6123
+ "inline-flex items-center justify-center gap-2 rounded-md border border-gray-300 dark:border-gray-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
6124
+ sizeClasses[size],
6125
+ className
6126
+ ),
6127
+ ...props,
6128
+ children: children || /* @__PURE__ */ jsxs26(Fragment6, { children: [
6129
+ showIcons && (isDark ? "\u2600\uFE0F" : "\u{1F319}"),
6130
+ showLabels && (isDark ? "Claro" : "Escuro")
6131
+ ] })
6132
+ }
6133
+ );
6134
+ }
6135
+ if (variant === "detailed") {
6136
+ const getLabel = () => {
6137
+ if (themeMode === "system") return "Sistema";
6138
+ if (isDark) return "Escuro";
6139
+ return "Claro";
6140
+ };
6141
+ return /* @__PURE__ */ jsxs26("div", { className: cn("flex flex-col gap-2", className), children: [
6142
+ /* @__PURE__ */ jsxs26("div", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
6143
+ "Tema: ",
6144
+ getLabel()
6145
+ ] }),
6146
+ /* @__PURE__ */ jsxs26("div", { className: "flex gap-1", children: [
6147
+ renderThemeButton("light", "\u2600\uFE0F ", "Claro", themeMode === "light"),
6148
+ renderThemeButton("dark", "\u{1F319} ", "Escuro", themeMode === "dark"),
6149
+ renderThemeButton(
6150
+ "system",
6151
+ "\u2699\uFE0F ",
6152
+ "Sistema",
6153
+ themeMode === "system"
6154
+ )
6155
+ ] })
6156
+ ] });
6157
+ }
6158
+ if (variant === "buttons") {
6159
+ return /* @__PURE__ */ jsxs26("div", { className: cn("flex gap-2", className), children: [
6160
+ renderThemeButton(
6161
+ "light",
6162
+ "\u2600\uFE0F",
6163
+ "Claro",
6164
+ themeMode === "light",
6165
+ size
6166
+ ),
6167
+ renderThemeButton(
6168
+ "dark",
6169
+ "\u{1F319}",
6170
+ "Escuro",
6171
+ themeMode === "dark",
6172
+ size
6173
+ ),
6174
+ renderThemeButton(
6175
+ "system",
6176
+ "\u2699\uFE0F",
6177
+ "Sistema",
6178
+ themeMode === "system",
6179
+ size
6180
+ )
6181
+ ] });
6182
+ }
6183
+ return null;
6184
+ }
6185
+ );
6186
+ ThemeToggle.displayName = "ThemeToggle";
6187
+
6013
6188
  // src/components/Select/Select.tsx
6014
6189
  import { create as create5, useStore as useStore4 } from "zustand";
6015
6190
  import {
6016
6191
  useEffect as useEffect11,
6017
- useRef as useRef7,
6018
- forwardRef as forwardRef16,
6192
+ useRef as useRef8,
6193
+ forwardRef as forwardRef17,
6019
6194
  isValidElement as isValidElement4,
6020
6195
  Children as Children4,
6021
6196
  cloneElement as cloneElement4,
6022
6197
  useId as useId9
6023
6198
  } from "react";
6024
6199
  import { CaretDown, Check as Check5, WarningCircle as WarningCircle5 } from "phosphor-react";
6025
- import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
6200
+ import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
6026
6201
  var VARIANT_CLASSES4 = {
6027
6202
  outlined: "border-2 rounded-lg focus:border-primary-950",
6028
6203
  underlined: "border-b-2 focus:border-primary-950",
@@ -6082,7 +6257,7 @@ function getLabelAsNode(children) {
6082
6257
  }
6083
6258
  const flattened = Children4.toArray(children);
6084
6259
  if (flattened.length === 1) return flattened[0];
6085
- return /* @__PURE__ */ jsx32(Fragment6, { children: flattened });
6260
+ return /* @__PURE__ */ jsx33(Fragment7, { children: flattened });
6086
6261
  }
6087
6262
  var injectStore4 = (children, store, size, selectId) => {
6088
6263
  return Children4.map(children, (child) => {
@@ -6120,10 +6295,10 @@ var Select = ({
6120
6295
  errorMessage,
6121
6296
  id
6122
6297
  }) => {
6123
- const storeRef = useRef7(null);
6298
+ const storeRef = useRef8(null);
6124
6299
  storeRef.current ??= createSelectStore(onValueChange);
6125
6300
  const store = storeRef.current;
6126
- const selectRef = useRef7(null);
6301
+ const selectRef = useRef8(null);
6127
6302
  const { open, setOpen, setValue, selectedLabel } = useStore4(store, (s) => s);
6128
6303
  const generatedId = useId9();
6129
6304
  const selectId = id ?? `select-${generatedId}`;
@@ -6193,8 +6368,8 @@ var Select = ({
6193
6368
  }
6194
6369
  }, [propValue]);
6195
6370
  const sizeClasses = SIZE_CLASSES12[size];
6196
- return /* @__PURE__ */ jsxs26("div", { className: cn("w-full", className), children: [
6197
- label && /* @__PURE__ */ jsx32(
6371
+ return /* @__PURE__ */ jsxs27("div", { className: cn("w-full", className), children: [
6372
+ label && /* @__PURE__ */ jsx33(
6198
6373
  "label",
6199
6374
  {
6200
6375
  htmlFor: selectId,
@@ -6202,11 +6377,11 @@ var Select = ({
6202
6377
  children: label
6203
6378
  }
6204
6379
  ),
6205
- /* @__PURE__ */ jsx32("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
6206
- (helperText || errorMessage) && /* @__PURE__ */ jsxs26("div", { className: "mt-1.5 gap-1.5", children: [
6207
- helperText && /* @__PURE__ */ jsx32("p", { className: "text-sm text-text-500", children: helperText }),
6208
- errorMessage && /* @__PURE__ */ jsxs26("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
6209
- /* @__PURE__ */ jsx32(WarningCircle5, { size: 16 }),
6380
+ /* @__PURE__ */ jsx33("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
6381
+ (helperText || errorMessage) && /* @__PURE__ */ jsxs27("div", { className: "mt-1.5 gap-1.5", children: [
6382
+ helperText && /* @__PURE__ */ jsx33("p", { className: "text-sm text-text-500", children: helperText }),
6383
+ errorMessage && /* @__PURE__ */ jsxs27("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
6384
+ /* @__PURE__ */ jsx33(WarningCircle5, { size: 16 }),
6210
6385
  " ",
6211
6386
  errorMessage
6212
6387
  ] })
@@ -6220,9 +6395,9 @@ var SelectValue = ({
6220
6395
  const store = useSelectStore(externalStore);
6221
6396
  const selectedLabel = useStore4(store, (s) => s.selectedLabel);
6222
6397
  const value = useStore4(store, (s) => s.value);
6223
- return /* @__PURE__ */ jsx32("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
6398
+ return /* @__PURE__ */ jsx33("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
6224
6399
  };
6225
- var SelectTrigger = forwardRef16(
6400
+ var SelectTrigger = forwardRef17(
6226
6401
  ({
6227
6402
  className,
6228
6403
  invalid = false,
@@ -6239,7 +6414,7 @@ var SelectTrigger = forwardRef16(
6239
6414
  const variantClasses = VARIANT_CLASSES4[variant];
6240
6415
  const heightClasses = HEIGHT_CLASSES[size];
6241
6416
  const paddingClasses = PADDING_CLASSES[size];
6242
- return /* @__PURE__ */ jsxs26(
6417
+ return /* @__PURE__ */ jsxs27(
6243
6418
  "button",
6244
6419
  {
6245
6420
  ref,
@@ -6261,7 +6436,7 @@ var SelectTrigger = forwardRef16(
6261
6436
  ...props,
6262
6437
  children: [
6263
6438
  props.children,
6264
- /* @__PURE__ */ jsx32(
6439
+ /* @__PURE__ */ jsx33(
6265
6440
  CaretDown,
6266
6441
  {
6267
6442
  className: cn(
@@ -6276,7 +6451,7 @@ var SelectTrigger = forwardRef16(
6276
6451
  }
6277
6452
  );
6278
6453
  SelectTrigger.displayName = "SelectTrigger";
6279
- var SelectContent = forwardRef16(
6454
+ var SelectContent = forwardRef17(
6280
6455
  ({
6281
6456
  children,
6282
6457
  className,
@@ -6289,7 +6464,7 @@ var SelectContent = forwardRef16(
6289
6464
  const open = useStore4(store, (s) => s.open);
6290
6465
  if (!open) return null;
6291
6466
  const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
6292
- return /* @__PURE__ */ jsx32(
6467
+ return /* @__PURE__ */ jsx33(
6293
6468
  "div",
6294
6469
  {
6295
6470
  role: "menu",
@@ -6306,7 +6481,7 @@ var SelectContent = forwardRef16(
6306
6481
  }
6307
6482
  );
6308
6483
  SelectContent.displayName = "SelectContent";
6309
- var SelectItem = forwardRef16(
6484
+ var SelectItem = forwardRef17(
6310
6485
  ({
6311
6486
  className,
6312
6487
  children,
@@ -6333,7 +6508,7 @@ var SelectItem = forwardRef16(
6333
6508
  }
6334
6509
  props.onClick?.(e);
6335
6510
  };
6336
- return /* @__PURE__ */ jsxs26(
6511
+ return /* @__PURE__ */ jsxs27(
6337
6512
  "div",
6338
6513
  {
6339
6514
  role: "menuitem",
@@ -6353,7 +6528,7 @@ var SelectItem = forwardRef16(
6353
6528
  tabIndex: disabled ? -1 : 0,
6354
6529
  ...props,
6355
6530
  children: [
6356
- /* @__PURE__ */ jsx32("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx32(Check5, { className: "" }) }),
6531
+ /* @__PURE__ */ jsx33("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx33(Check5, { className: "" }) }),
6357
6532
  children
6358
6533
  ]
6359
6534
  }
@@ -6367,15 +6542,15 @@ var Select_default = Select;
6367
6542
  import { create as create6, useStore as useStore5 } from "zustand";
6368
6543
  import {
6369
6544
  useEffect as useEffect12,
6370
- useRef as useRef8,
6371
- forwardRef as forwardRef17,
6545
+ useRef as useRef9,
6546
+ forwardRef as forwardRef18,
6372
6547
  isValidElement as isValidElement5,
6373
6548
  Children as Children5,
6374
6549
  cloneElement as cloneElement5,
6375
- useState as useState13
6550
+ useState as useState14
6376
6551
  } from "react";
6377
6552
  import { CaretLeft as CaretLeft2, CaretRight as CaretRight3 } from "phosphor-react";
6378
- import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
6553
+ import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
6379
6554
  var createMenuStore = (onValueChange) => create6((set) => ({
6380
6555
  value: "",
6381
6556
  setValue: (value) => {
@@ -6394,7 +6569,7 @@ var VARIANT_CLASSES5 = {
6394
6569
  "menu-overflow": "",
6395
6570
  breadcrumb: "bg-transparent shadow-none !px-0"
6396
6571
  };
6397
- var Menu = forwardRef17(
6572
+ var Menu = forwardRef18(
6398
6573
  ({
6399
6574
  className,
6400
6575
  children,
@@ -6404,7 +6579,7 @@ var Menu = forwardRef17(
6404
6579
  onValueChange,
6405
6580
  ...props
6406
6581
  }, ref) => {
6407
- const storeRef = useRef8(null);
6582
+ const storeRef = useRef9(null);
6408
6583
  storeRef.current ??= createMenuStore(onValueChange);
6409
6584
  const store = storeRef.current;
6410
6585
  const { setValue } = useStore5(store, (s) => s);
@@ -6413,7 +6588,7 @@ var Menu = forwardRef17(
6413
6588
  }, [defaultValue, propValue, setValue]);
6414
6589
  const baseClasses = variant === "menu-overflow" ? "w-fit py-2 flex flex-row items-center justify-center" : "w-full py-2 flex flex-row items-center justify-center";
6415
6590
  const variantClasses = VARIANT_CLASSES5[variant];
6416
- return /* @__PURE__ */ jsx33(
6591
+ return /* @__PURE__ */ jsx34(
6417
6592
  "div",
6418
6593
  {
6419
6594
  ref,
@@ -6429,11 +6604,11 @@ var Menu = forwardRef17(
6429
6604
  }
6430
6605
  );
6431
6606
  Menu.displayName = "Menu";
6432
- var MenuContent = forwardRef17(
6607
+ var MenuContent = forwardRef18(
6433
6608
  ({ className, children, variant = "menu", ...props }, ref) => {
6434
6609
  const baseClasses = "w-full flex flex-row items-center gap-2";
6435
6610
  const variantClasses = variant === "menu2" || variant === "menu-overflow" ? "overflow-x-auto scroll-smooth" : "";
6436
- return /* @__PURE__ */ jsx33(
6611
+ return /* @__PURE__ */ jsx34(
6437
6612
  "ul",
6438
6613
  {
6439
6614
  ref,
@@ -6451,7 +6626,7 @@ var MenuContent = forwardRef17(
6451
6626
  }
6452
6627
  );
6453
6628
  MenuContent.displayName = "MenuContent";
6454
- var MenuItem = forwardRef17(
6629
+ var MenuItem = forwardRef18(
6455
6630
  ({
6456
6631
  className,
6457
6632
  children,
@@ -6485,7 +6660,7 @@ var MenuItem = forwardRef17(
6485
6660
  ...props
6486
6661
  };
6487
6662
  const variants = {
6488
- menu: /* @__PURE__ */ jsx33(
6663
+ menu: /* @__PURE__ */ jsx34(
6489
6664
  "li",
6490
6665
  {
6491
6666
  "data-variant": "menu",
@@ -6500,7 +6675,7 @@ var MenuItem = forwardRef17(
6500
6675
  children
6501
6676
  }
6502
6677
  ),
6503
- menu2: /* @__PURE__ */ jsxs27(
6678
+ menu2: /* @__PURE__ */ jsxs28(
6504
6679
  "li",
6505
6680
  {
6506
6681
  "data-variant": "menu2",
@@ -6511,7 +6686,7 @@ var MenuItem = forwardRef17(
6511
6686
  `,
6512
6687
  ...commonProps,
6513
6688
  children: [
6514
- /* @__PURE__ */ jsx33(
6689
+ /* @__PURE__ */ jsx34(
6515
6690
  "span",
6516
6691
  {
6517
6692
  className: cn(
@@ -6521,11 +6696,11 @@ var MenuItem = forwardRef17(
6521
6696
  children
6522
6697
  }
6523
6698
  ),
6524
- selectedValue === value && /* @__PURE__ */ jsx33("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
6699
+ selectedValue === value && /* @__PURE__ */ jsx34("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
6525
6700
  ]
6526
6701
  }
6527
6702
  ),
6528
- "menu-overflow": /* @__PURE__ */ jsxs27(
6703
+ "menu-overflow": /* @__PURE__ */ jsxs28(
6529
6704
  "li",
6530
6705
  {
6531
6706
  "data-variant": "menu-overflow",
@@ -6536,7 +6711,7 @@ var MenuItem = forwardRef17(
6536
6711
  `,
6537
6712
  ...commonProps,
6538
6713
  children: [
6539
- /* @__PURE__ */ jsx33(
6714
+ /* @__PURE__ */ jsx34(
6540
6715
  "span",
6541
6716
  {
6542
6717
  className: cn(
@@ -6546,11 +6721,11 @@ var MenuItem = forwardRef17(
6546
6721
  children
6547
6722
  }
6548
6723
  ),
6549
- selectedValue === value && /* @__PURE__ */ jsx33("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
6724
+ selectedValue === value && /* @__PURE__ */ jsx34("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
6550
6725
  ]
6551
6726
  }
6552
6727
  ),
6553
- breadcrumb: /* @__PURE__ */ jsxs27(
6728
+ breadcrumb: /* @__PURE__ */ jsxs28(
6554
6729
  "li",
6555
6730
  {
6556
6731
  "data-variant": "breadcrumb",
@@ -6562,7 +6737,7 @@ var MenuItem = forwardRef17(
6562
6737
  `,
6563
6738
  ...commonProps,
6564
6739
  children: [
6565
- /* @__PURE__ */ jsx33(
6740
+ /* @__PURE__ */ jsx34(
6566
6741
  "span",
6567
6742
  {
6568
6743
  className: cn(
@@ -6572,7 +6747,7 @@ var MenuItem = forwardRef17(
6572
6747
  children
6573
6748
  }
6574
6749
  ),
6575
- separator && /* @__PURE__ */ jsx33(
6750
+ separator && /* @__PURE__ */ jsx34(
6576
6751
  CaretRight3,
6577
6752
  {
6578
6753
  size: 16,
@@ -6609,9 +6784,9 @@ var MenuOverflow = ({
6609
6784
  onValueChange,
6610
6785
  ...props
6611
6786
  }) => {
6612
- const containerRef = useRef8(null);
6613
- const [showLeftArrow, setShowLeftArrow] = useState13(false);
6614
- const [showRightArrow, setShowRightArrow] = useState13(false);
6787
+ const containerRef = useRef9(null);
6788
+ const [showLeftArrow, setShowLeftArrow] = useState14(false);
6789
+ const [showRightArrow, setShowRightArrow] = useState14(false);
6615
6790
  useEffect12(() => {
6616
6791
  const checkScroll = () => internalCheckScroll(
6617
6792
  containerRef.current,
@@ -6627,25 +6802,25 @@ var MenuOverflow = ({
6627
6802
  window.removeEventListener("resize", checkScroll);
6628
6803
  };
6629
6804
  }, []);
6630
- return /* @__PURE__ */ jsxs27(
6805
+ return /* @__PURE__ */ jsxs28(
6631
6806
  "div",
6632
6807
  {
6633
6808
  "data-testid": "menu-overflow-wrapper",
6634
6809
  className: cn("relative w-full overflow-hidden", className),
6635
6810
  children: [
6636
- showLeftArrow && /* @__PURE__ */ jsxs27(
6811
+ showLeftArrow && /* @__PURE__ */ jsxs28(
6637
6812
  "button",
6638
6813
  {
6639
6814
  onClick: () => internalScroll(containerRef.current, "left"),
6640
6815
  className: "absolute left-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
6641
6816
  "data-testid": "scroll-left-button",
6642
6817
  children: [
6643
- /* @__PURE__ */ jsx33(CaretLeft2, { size: 16 }),
6644
- /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Scroll left" })
6818
+ /* @__PURE__ */ jsx34(CaretLeft2, { size: 16 }),
6819
+ /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Scroll left" })
6645
6820
  ]
6646
6821
  }
6647
6822
  ),
6648
- /* @__PURE__ */ jsx33(
6823
+ /* @__PURE__ */ jsx34(
6649
6824
  Menu,
6650
6825
  {
6651
6826
  defaultValue,
@@ -6653,18 +6828,18 @@ var MenuOverflow = ({
6653
6828
  value,
6654
6829
  variant: "menu2",
6655
6830
  ...props,
6656
- children: /* @__PURE__ */ jsx33(MenuContent, { ref: containerRef, variant: "menu2", children })
6831
+ children: /* @__PURE__ */ jsx34(MenuContent, { ref: containerRef, variant: "menu2", children })
6657
6832
  }
6658
6833
  ),
6659
- showRightArrow && /* @__PURE__ */ jsxs27(
6834
+ showRightArrow && /* @__PURE__ */ jsxs28(
6660
6835
  "button",
6661
6836
  {
6662
6837
  onClick: () => internalScroll(containerRef.current, "right"),
6663
6838
  className: "absolute right-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
6664
6839
  "data-testid": "scroll-right-button",
6665
6840
  children: [
6666
- /* @__PURE__ */ jsx33(CaretRight3, { size: 16 }),
6667
- /* @__PURE__ */ jsx33("span", { className: "sr-only", children: "Scroll right" })
6841
+ /* @__PURE__ */ jsx34(CaretRight3, { size: 16 }),
6842
+ /* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Scroll right" })
6668
6843
  ]
6669
6844
  }
6670
6845
  )
@@ -6684,8 +6859,8 @@ var injectStore5 = (children, store) => Children5.map(children, (child) => {
6684
6859
  var Menu_default = Menu;
6685
6860
 
6686
6861
  // src/components/Skeleton/Skeleton.tsx
6687
- import { forwardRef as forwardRef18 } from "react";
6688
- import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
6862
+ import { forwardRef as forwardRef19 } from "react";
6863
+ import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
6689
6864
  var SKELETON_ANIMATION_CLASSES = {
6690
6865
  pulse: "animate-pulse",
6691
6866
  none: ""
@@ -6702,7 +6877,7 @@ var SPACING_CLASSES = {
6702
6877
  medium: "space-y-2",
6703
6878
  large: "space-y-3"
6704
6879
  };
6705
- var Skeleton = forwardRef18(
6880
+ var Skeleton = forwardRef19(
6706
6881
  ({
6707
6882
  variant = "text",
6708
6883
  width,
@@ -6722,13 +6897,13 @@ var Skeleton = forwardRef18(
6722
6897
  height: typeof height === "number" ? `${height}px` : height
6723
6898
  };
6724
6899
  if (variant === "text" && lines > 1) {
6725
- return /* @__PURE__ */ jsx34(
6900
+ return /* @__PURE__ */ jsx35(
6726
6901
  "div",
6727
6902
  {
6728
6903
  ref,
6729
6904
  className: cn("flex flex-col", spacingClass, className),
6730
6905
  ...props,
6731
- children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx34(
6906
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx35(
6732
6907
  "div",
6733
6908
  {
6734
6909
  className: cn(variantClass, animationClass),
@@ -6739,7 +6914,7 @@ var Skeleton = forwardRef18(
6739
6914
  }
6740
6915
  );
6741
6916
  }
6742
- return /* @__PURE__ */ jsx34(
6917
+ return /* @__PURE__ */ jsx35(
6743
6918
  "div",
6744
6919
  {
6745
6920
  ref,
@@ -6751,13 +6926,13 @@ var Skeleton = forwardRef18(
6751
6926
  );
6752
6927
  }
6753
6928
  );
6754
- var SkeletonText = forwardRef18(
6755
- (props, ref) => /* @__PURE__ */ jsx34(Skeleton, { ref, variant: "text", ...props })
6929
+ var SkeletonText = forwardRef19(
6930
+ (props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "text", ...props })
6756
6931
  );
6757
- var SkeletonCircle = forwardRef18((props, ref) => /* @__PURE__ */ jsx34(Skeleton, { ref, variant: "circular", ...props }));
6758
- var SkeletonRectangle = forwardRef18((props, ref) => /* @__PURE__ */ jsx34(Skeleton, { ref, variant: "rectangular", ...props }));
6759
- var SkeletonRounded = forwardRef18((props, ref) => /* @__PURE__ */ jsx34(Skeleton, { ref, variant: "rounded", ...props }));
6760
- var SkeletonCard = forwardRef18(
6932
+ var SkeletonCircle = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "circular", ...props }));
6933
+ var SkeletonRectangle = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "rectangular", ...props }));
6934
+ var SkeletonRounded = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "rounded", ...props }));
6935
+ var SkeletonCard = forwardRef19(
6761
6936
  ({
6762
6937
  showAvatar = true,
6763
6938
  showTitle = true,
@@ -6767,7 +6942,7 @@ var SkeletonCard = forwardRef18(
6767
6942
  className = "",
6768
6943
  ...props
6769
6944
  }, ref) => {
6770
- return /* @__PURE__ */ jsxs28(
6945
+ return /* @__PURE__ */ jsxs29(
6771
6946
  "div",
6772
6947
  {
6773
6948
  ref,
@@ -6777,23 +6952,23 @@ var SkeletonCard = forwardRef18(
6777
6952
  ),
6778
6953
  ...props,
6779
6954
  children: [
6780
- /* @__PURE__ */ jsxs28("div", { className: "flex items-start space-x-3", children: [
6781
- showAvatar && /* @__PURE__ */ jsx34(SkeletonCircle, { width: 40, height: 40 }),
6782
- /* @__PURE__ */ jsxs28("div", { className: "flex-1 space-y-2", children: [
6783
- showTitle && /* @__PURE__ */ jsx34(SkeletonText, { width: "60%", height: 20 }),
6784
- showDescription && /* @__PURE__ */ jsx34(SkeletonText, { lines, spacing: "small" })
6955
+ /* @__PURE__ */ jsxs29("div", { className: "flex items-start space-x-3", children: [
6956
+ showAvatar && /* @__PURE__ */ jsx35(SkeletonCircle, { width: 40, height: 40 }),
6957
+ /* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
6958
+ showTitle && /* @__PURE__ */ jsx35(SkeletonText, { width: "60%", height: 20 }),
6959
+ showDescription && /* @__PURE__ */ jsx35(SkeletonText, { lines, spacing: "small" })
6785
6960
  ] })
6786
6961
  ] }),
6787
- showActions && /* @__PURE__ */ jsxs28("div", { className: "flex justify-end space-x-2 mt-4", children: [
6788
- /* @__PURE__ */ jsx34(SkeletonRectangle, { width: 80, height: 32 }),
6789
- /* @__PURE__ */ jsx34(SkeletonRectangle, { width: 80, height: 32 })
6962
+ showActions && /* @__PURE__ */ jsxs29("div", { className: "flex justify-end space-x-2 mt-4", children: [
6963
+ /* @__PURE__ */ jsx35(SkeletonRectangle, { width: 80, height: 32 }),
6964
+ /* @__PURE__ */ jsx35(SkeletonRectangle, { width: 80, height: 32 })
6790
6965
  ] })
6791
6966
  ]
6792
6967
  }
6793
6968
  );
6794
6969
  }
6795
6970
  );
6796
- var SkeletonList = forwardRef18(
6971
+ var SkeletonList = forwardRef19(
6797
6972
  ({
6798
6973
  items = 3,
6799
6974
  showAvatar = true,
@@ -6803,19 +6978,19 @@ var SkeletonList = forwardRef18(
6803
6978
  className = "",
6804
6979
  ...props
6805
6980
  }, ref) => {
6806
- return /* @__PURE__ */ jsx34("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs28("div", { className: "flex items-start space-x-3 p-3", children: [
6807
- showAvatar && /* @__PURE__ */ jsx34(SkeletonCircle, { width: 32, height: 32 }),
6808
- /* @__PURE__ */ jsxs28("div", { className: "flex-1 space-y-2", children: [
6809
- showTitle && /* @__PURE__ */ jsx34(SkeletonText, { width: "40%", height: 16 }),
6810
- showDescription && /* @__PURE__ */ jsx34(SkeletonText, { lines, spacing: "small" })
6981
+ return /* @__PURE__ */ jsx35("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs29("div", { className: "flex items-start space-x-3 p-3", children: [
6982
+ showAvatar && /* @__PURE__ */ jsx35(SkeletonCircle, { width: 32, height: 32 }),
6983
+ /* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
6984
+ showTitle && /* @__PURE__ */ jsx35(SkeletonText, { width: "40%", height: 16 }),
6985
+ showDescription && /* @__PURE__ */ jsx35(SkeletonText, { lines, spacing: "small" })
6811
6986
  ] })
6812
6987
  ] }, index)) });
6813
6988
  }
6814
6989
  );
6815
- var SkeletonTable = forwardRef18(
6990
+ var SkeletonTable = forwardRef19(
6816
6991
  ({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
6817
- return /* @__PURE__ */ jsxs28("div", { ref, className: cn("w-full", className), ...props, children: [
6818
- showHeader && /* @__PURE__ */ jsx34("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx34(
6992
+ return /* @__PURE__ */ jsxs29("div", { ref, className: cn("w-full", className), ...props, children: [
6993
+ showHeader && /* @__PURE__ */ jsx35("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx35(
6819
6994
  SkeletonText,
6820
6995
  {
6821
6996
  width: `${100 / columns}%`,
@@ -6823,7 +6998,7 @@ var SkeletonTable = forwardRef18(
6823
6998
  },
6824
6999
  index
6825
7000
  )) }),
6826
- /* @__PURE__ */ jsx34("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx34("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx34(
7001
+ /* @__PURE__ */ jsx35("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx35("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx35(
6827
7002
  SkeletonText,
6828
7003
  {
6829
7004
  width: `${100 / columns}%`,
@@ -6836,7 +7011,7 @@ var SkeletonTable = forwardRef18(
6836
7011
  );
6837
7012
 
6838
7013
  // src/components/NotFound/NotFound.tsx
6839
- import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
7014
+ import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
6840
7015
  var NotFound = ({
6841
7016
  title,
6842
7017
  description,
@@ -6879,22 +7054,22 @@ var NotFound = ({
6879
7054
  const errorTitle = title || getDefaultTitle();
6880
7055
  const errorDescription = description || getDefaultDescription();
6881
7056
  const errorCode = getErrorCode();
6882
- return /* @__PURE__ */ jsx35(
7057
+ return /* @__PURE__ */ jsx36(
6883
7058
  "div",
6884
7059
  {
6885
7060
  className: cn(
6886
7061
  "flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
6887
7062
  className
6888
7063
  ),
6889
- children: /* @__PURE__ */ jsx35(
7064
+ children: /* @__PURE__ */ jsx36(
6890
7065
  "main",
6891
7066
  {
6892
7067
  role: "main",
6893
7068
  "aria-labelledby": "error-title",
6894
7069
  "aria-describedby": "error-description",
6895
7070
  className: "flex flex-col items-center text-center max-w-md space-y-6",
6896
- children: /* @__PURE__ */ jsxs29("section", { "aria-label": `Erro ${errorCode}`, children: [
6897
- /* @__PURE__ */ jsx35(
7071
+ children: /* @__PURE__ */ jsxs30("section", { "aria-label": `Erro ${errorCode}`, children: [
7072
+ /* @__PURE__ */ jsx36(
6898
7073
  "div",
6899
7074
  {
6900
7075
  className: "text-8xl font-bold text-primary-300 select-none",
@@ -6902,8 +7077,8 @@ var NotFound = ({
6902
7077
  children: errorCode
6903
7078
  }
6904
7079
  ),
6905
- /* @__PURE__ */ jsxs29("header", { className: "space-y-2", children: [
6906
- /* @__PURE__ */ jsx35(
7080
+ /* @__PURE__ */ jsxs30("header", { className: "space-y-2", children: [
7081
+ /* @__PURE__ */ jsx36(
6907
7082
  Text_default,
6908
7083
  {
6909
7084
  size: "xl",
@@ -6914,9 +7089,9 @@ var NotFound = ({
6914
7089
  children: errorTitle
6915
7090
  }
6916
7091
  ),
6917
- /* @__PURE__ */ jsx35(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
7092
+ /* @__PURE__ */ jsx36(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
6918
7093
  ] }),
6919
- onButtonClick && /* @__PURE__ */ jsx35("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx35(
7094
+ onButtonClick && /* @__PURE__ */ jsx36("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx36(
6920
7095
  Button_default,
6921
7096
  {
6922
7097
  onClick: handleButtonClick,
@@ -6938,11 +7113,12 @@ var NotFound_default = NotFound;
6938
7113
 
6939
7114
  // src/components/VideoPlayer/VideoPlayer.tsx
6940
7115
  import {
6941
- useRef as useRef9,
6942
- useState as useState14,
7116
+ useRef as useRef10,
7117
+ useState as useState15,
6943
7118
  useEffect as useEffect13,
6944
- useCallback
7119
+ useCallback as useCallback2
6945
7120
  } from "react";
7121
+ import { createPortal } from "react-dom";
6946
7122
  import {
6947
7123
  Play as Play2,
6948
7124
  Pause,
@@ -6953,7 +7129,7 @@ import {
6953
7129
  ClosedCaptioning,
6954
7130
  DotsThreeVertical as DotsThreeVertical2
6955
7131
  } from "phosphor-react";
6956
- import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
7132
+ import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
6957
7133
  var CONTROLS_HIDE_TIMEOUT = 3e3;
6958
7134
  var LEAVE_HIDE_TIMEOUT = 1e3;
6959
7135
  var INIT_DELAY = 100;
@@ -6968,7 +7144,7 @@ var ProgressBar2 = ({
6968
7144
  duration,
6969
7145
  progressPercentage,
6970
7146
  onSeek
6971
- }) => /* @__PURE__ */ jsx36("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx36(
7147
+ }) => /* @__PURE__ */ jsx37("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx37(
6972
7148
  "input",
6973
7149
  {
6974
7150
  type: "range",
@@ -6988,17 +7164,17 @@ var VolumeControls = ({
6988
7164
  isMuted,
6989
7165
  onVolumeChange,
6990
7166
  onToggleMute
6991
- }) => /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-2", children: [
6992
- /* @__PURE__ */ jsx36(
7167
+ }) => /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
7168
+ /* @__PURE__ */ jsx37(
6993
7169
  IconButton_default,
6994
7170
  {
6995
- icon: isMuted ? /* @__PURE__ */ jsx36(SpeakerSlash, { size: 24 }) : /* @__PURE__ */ jsx36(SpeakerHigh2, { size: 24 }),
7171
+ icon: isMuted ? /* @__PURE__ */ jsx37(SpeakerSlash, { size: 24 }) : /* @__PURE__ */ jsx37(SpeakerHigh2, { size: 24 }),
6996
7172
  onClick: onToggleMute,
6997
7173
  "aria-label": isMuted ? "Unmute" : "Mute",
6998
7174
  className: "!bg-transparent !text-white hover:!bg-white/20"
6999
7175
  }
7000
7176
  ),
7001
- /* @__PURE__ */ jsx36(
7177
+ /* @__PURE__ */ jsx37(
7002
7178
  "input",
7003
7179
  {
7004
7180
  type: "range",
@@ -7018,30 +7194,63 @@ var SpeedMenu = ({
7018
7194
  showSpeedMenu,
7019
7195
  playbackRate,
7020
7196
  onToggleMenu,
7021
- onSpeedChange
7022
- }) => /* @__PURE__ */ jsxs30("div", { className: "relative", children: [
7023
- /* @__PURE__ */ jsx36(
7024
- IconButton_default,
7197
+ onSpeedChange,
7198
+ isFullscreen
7199
+ }) => {
7200
+ const buttonRef = useRef10(null);
7201
+ const getMenuPosition = () => {
7202
+ if (!buttonRef.current) return { top: 0, left: 0 };
7203
+ const rect = buttonRef.current.getBoundingClientRect();
7204
+ return {
7205
+ // Fixed coords are viewport-based — no scroll offsets.
7206
+ top: Math.max(8, rect.top - 180),
7207
+ left: Math.max(8, rect.right - 80)
7208
+ };
7209
+ };
7210
+ const position = getMenuPosition();
7211
+ const menuContent = /* @__PURE__ */ jsx37(
7212
+ "div",
7025
7213
  {
7026
- icon: /* @__PURE__ */ jsx36(DotsThreeVertical2, { size: 24 }),
7027
- onClick: onToggleMenu,
7214
+ role: "menu",
7028
7215
  "aria-label": "Playback speed",
7029
- className: "!bg-transparent !text-white hover:!bg-white/20"
7216
+ className: isFullscreen ? "absolute bottom-12 right-0 bg-black/90 rounded-lg p-2 min-w-20 z-[9999]" : "fixed bg-black/90 rounded-lg p-2 min-w-20 z-[9999]",
7217
+ style: !isFullscreen ? {
7218
+ top: `${position.top}px`,
7219
+ left: `${position.left}px`
7220
+ } : void 0,
7221
+ children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs31(
7222
+ "button",
7223
+ {
7224
+ role: "menuitemradio",
7225
+ "aria-checked": playbackRate === speed,
7226
+ onClick: () => onSpeedChange(speed),
7227
+ className: `block w-full text-left px-3 py-1 text-sm rounded hover:bg-white/20 transition-colors ${playbackRate === speed ? "text-primary-400" : "text-white"}`,
7228
+ children: [
7229
+ speed,
7230
+ "x"
7231
+ ]
7232
+ },
7233
+ speed
7234
+ ))
7030
7235
  }
7031
- ),
7032
- showSpeedMenu && /* @__PURE__ */ jsx36("div", { className: "absolute bottom-12 right-0 bg-black/90 rounded-lg p-2 min-w-20", children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs30(
7033
- "button",
7034
- {
7035
- onClick: () => onSpeedChange(speed),
7036
- className: `block w-full text-left px-3 py-1 text-sm rounded hover:bg-white/20 transition-colors ${playbackRate === speed ? "text-primary-400" : "text-white"}`,
7037
- children: [
7038
- speed,
7039
- "x"
7040
- ]
7041
- },
7042
- speed
7043
- )) })
7044
- ] });
7236
+ );
7237
+ const portalContent = typeof window !== "undefined" && typeof document !== "undefined" ? createPortal(menuContent, document.body) : null;
7238
+ return /* @__PURE__ */ jsxs31("div", { className: "relative", children: [
7239
+ /* @__PURE__ */ jsx37(
7240
+ IconButton_default,
7241
+ {
7242
+ ref: buttonRef,
7243
+ icon: /* @__PURE__ */ jsx37(DotsThreeVertical2, { size: 24 }),
7244
+ onClick: onToggleMenu,
7245
+ "aria-label": "Playback speed",
7246
+ "aria-haspopup": "menu",
7247
+ "aria-expanded": showSpeedMenu,
7248
+ className: "!bg-transparent !text-white hover:!bg-white/20"
7249
+ }
7250
+ ),
7251
+ showSpeedMenu && (isFullscreen ? menuContent : portalContent)
7252
+ ] });
7253
+ };
7045
7254
  var VideoPlayer = ({
7046
7255
  src,
7047
7256
  poster,
@@ -7056,26 +7265,26 @@ var VideoPlayer = ({
7056
7265
  autoSave = true,
7057
7266
  storageKey = "video-progress"
7058
7267
  }) => {
7059
- const videoRef = useRef9(null);
7060
- const [isPlaying, setIsPlaying] = useState14(false);
7061
- const [currentTime, setCurrentTime] = useState14(0);
7062
- const [duration, setDuration] = useState14(0);
7063
- const [isMuted, setIsMuted] = useState14(false);
7064
- const [volume, setVolume] = useState14(1);
7065
- const [isFullscreen, setIsFullscreen] = useState14(false);
7066
- const [showControls, setShowControls] = useState14(true);
7067
- const [hasCompleted, setHasCompleted] = useState14(false);
7068
- const [showCaptions, setShowCaptions] = useState14(false);
7268
+ const videoRef = useRef10(null);
7269
+ const [isPlaying, setIsPlaying] = useState15(false);
7270
+ const [currentTime, setCurrentTime] = useState15(0);
7271
+ const [duration, setDuration] = useState15(0);
7272
+ const [isMuted, setIsMuted] = useState15(false);
7273
+ const [volume, setVolume] = useState15(1);
7274
+ const [isFullscreen, setIsFullscreen] = useState15(false);
7275
+ const [showControls, setShowControls] = useState15(true);
7276
+ const [hasCompleted, setHasCompleted] = useState15(false);
7277
+ const [showCaptions, setShowCaptions] = useState15(false);
7069
7278
  useEffect13(() => {
7070
7279
  setHasCompleted(false);
7071
7280
  }, [src]);
7072
- const [playbackRate, setPlaybackRate] = useState14(1);
7073
- const [showSpeedMenu, setShowSpeedMenu] = useState14(false);
7074
- const lastSaveTimeRef = useRef9(0);
7075
- const trackRef = useRef9(null);
7076
- const controlsTimeoutRef = useRef9(null);
7077
- const lastMousePositionRef = useRef9({ x: 0, y: 0 });
7078
- const isUserInteracting = useCallback(() => {
7281
+ const [playbackRate, setPlaybackRate] = useState15(1);
7282
+ const [showSpeedMenu, setShowSpeedMenu] = useState15(false);
7283
+ const lastSaveTimeRef = useRef10(0);
7284
+ const trackRef = useRef10(null);
7285
+ const controlsTimeoutRef = useRef10(null);
7286
+ const lastMousePositionRef = useRef10({ x: 0, y: 0 });
7287
+ const isUserInteracting = useCallback2(() => {
7079
7288
  if (showSpeedMenu) {
7080
7289
  return true;
7081
7290
  }
@@ -7092,13 +7301,13 @@ var VideoPlayer = ({
7092
7301
  }
7093
7302
  return false;
7094
7303
  }, [showSpeedMenu]);
7095
- const clearControlsTimeout = useCallback(() => {
7304
+ const clearControlsTimeout = useCallback2(() => {
7096
7305
  if (controlsTimeoutRef.current) {
7097
7306
  clearTimeout(controlsTimeoutRef.current);
7098
7307
  controlsTimeoutRef.current = null;
7099
7308
  }
7100
7309
  }, []);
7101
- const showControlsWithTimer = useCallback(() => {
7310
+ const showControlsWithTimer = useCallback2(() => {
7102
7311
  setShowControls(true);
7103
7312
  clearControlsTimeout();
7104
7313
  if (isFullscreen) {
@@ -7113,7 +7322,7 @@ var VideoPlayer = ({
7113
7322
  }, CONTROLS_HIDE_TIMEOUT);
7114
7323
  }
7115
7324
  }, [isFullscreen, isPlaying, clearControlsTimeout]);
7116
- const handleMouseMove = useCallback(
7325
+ const handleMouseMove = useCallback2(
7117
7326
  (event) => {
7118
7327
  const currentX = event.clientX;
7119
7328
  const currentY = event.clientY;
@@ -7126,10 +7335,10 @@ var VideoPlayer = ({
7126
7335
  },
7127
7336
  [showControlsWithTimer]
7128
7337
  );
7129
- const handleMouseEnter = useCallback(() => {
7338
+ const handleMouseEnter = useCallback2(() => {
7130
7339
  showControlsWithTimer();
7131
7340
  }, [showControlsWithTimer]);
7132
- const handleMouseLeave = useCallback(() => {
7341
+ const handleMouseLeave = useCallback2(() => {
7133
7342
  const userInteracting = isUserInteracting();
7134
7343
  clearControlsTimeout();
7135
7344
  if (!isFullscreen && !userInteracting) {
@@ -7206,7 +7415,7 @@ var VideoPlayer = ({
7206
7415
  };
7207
7416
  }
7208
7417
  }, []);
7209
- const getInitialTime = useCallback(() => {
7418
+ const getInitialTime = useCallback2(() => {
7210
7419
  if (!autoSave || !storageKey) {
7211
7420
  return Number.isFinite(initialTime) && initialTime >= 0 ? initialTime : void 0;
7212
7421
  }
@@ -7224,7 +7433,7 @@ var VideoPlayer = ({
7224
7433
  setCurrentTime(start);
7225
7434
  }
7226
7435
  }, [getInitialTime]);
7227
- const saveProgress = useCallback(
7436
+ const saveProgress = useCallback2(
7228
7437
  (time) => {
7229
7438
  if (!autoSave || !storageKey) return;
7230
7439
  const now = Date.now();
@@ -7235,7 +7444,7 @@ var VideoPlayer = ({
7235
7444
  },
7236
7445
  [autoSave, storageKey, src]
7237
7446
  );
7238
- const togglePlayPause = useCallback(async () => {
7447
+ const togglePlayPause = useCallback2(async () => {
7239
7448
  const video = videoRef.current;
7240
7449
  if (!video) return;
7241
7450
  if (!video.paused) {
@@ -7247,7 +7456,7 @@ var VideoPlayer = ({
7247
7456
  } catch {
7248
7457
  }
7249
7458
  }, []);
7250
- const handleVolumeChange = useCallback(
7459
+ const handleVolumeChange = useCallback2(
7251
7460
  (newVolume) => {
7252
7461
  const video = videoRef.current;
7253
7462
  if (!video) return;
@@ -7266,7 +7475,7 @@ var VideoPlayer = ({
7266
7475
  },
7267
7476
  [isMuted]
7268
7477
  );
7269
- const toggleMute = useCallback(() => {
7478
+ const toggleMute = useCallback2(() => {
7270
7479
  const video = videoRef.current;
7271
7480
  if (!video) return;
7272
7481
  if (isMuted) {
@@ -7280,13 +7489,13 @@ var VideoPlayer = ({
7280
7489
  setIsMuted(true);
7281
7490
  }
7282
7491
  }, [isMuted, volume]);
7283
- const handleSeek = useCallback((newTime) => {
7492
+ const handleSeek = useCallback2((newTime) => {
7284
7493
  const video = videoRef.current;
7285
7494
  if (video) {
7286
7495
  video.currentTime = newTime;
7287
7496
  }
7288
7497
  }, []);
7289
- const toggleFullscreen = useCallback(() => {
7498
+ const toggleFullscreen = useCallback2(() => {
7290
7499
  const container = videoRef.current?.parentElement;
7291
7500
  if (!container) return;
7292
7501
  if (!isFullscreen && container.requestFullscreen) {
@@ -7295,23 +7504,23 @@ var VideoPlayer = ({
7295
7504
  document.exitFullscreen();
7296
7505
  }
7297
7506
  }, [isFullscreen]);
7298
- const handleSpeedChange = useCallback((speed) => {
7507
+ const handleSpeedChange = useCallback2((speed) => {
7299
7508
  if (videoRef.current) {
7300
7509
  videoRef.current.playbackRate = speed;
7301
7510
  setPlaybackRate(speed);
7302
7511
  setShowSpeedMenu(false);
7303
7512
  }
7304
7513
  }, []);
7305
- const toggleSpeedMenu = useCallback(() => {
7514
+ const toggleSpeedMenu = useCallback2(() => {
7306
7515
  setShowSpeedMenu(!showSpeedMenu);
7307
7516
  }, [showSpeedMenu]);
7308
- const toggleCaptions = useCallback(() => {
7517
+ const toggleCaptions = useCallback2(() => {
7309
7518
  if (!trackRef.current?.track || !subtitles) return;
7310
7519
  const newShowCaptions = !showCaptions;
7311
7520
  setShowCaptions(newShowCaptions);
7312
7521
  trackRef.current.track.mode = newShowCaptions && subtitles ? "showing" : "hidden";
7313
7522
  }, [showCaptions, subtitles]);
7314
- const checkVideoCompletion = useCallback(
7523
+ const checkVideoCompletion = useCallback2(
7315
7524
  (progressPercent) => {
7316
7525
  if (progressPercent >= 95 && !hasCompleted) {
7317
7526
  setHasCompleted(true);
@@ -7320,7 +7529,7 @@ var VideoPlayer = ({
7320
7529
  },
7321
7530
  [hasCompleted, onVideoComplete]
7322
7531
  );
7323
- const handleTimeUpdate = useCallback(() => {
7532
+ const handleTimeUpdate = useCallback2(() => {
7324
7533
  const video = videoRef.current;
7325
7534
  if (!video) return;
7326
7535
  const current = video.currentTime;
@@ -7333,7 +7542,7 @@ var VideoPlayer = ({
7333
7542
  checkVideoCompletion(progressPercent);
7334
7543
  }
7335
7544
  }, [duration, saveProgress, onTimeUpdate, onProgress, checkVideoCompletion]);
7336
- const handleLoadedMetadata = useCallback(() => {
7545
+ const handleLoadedMetadata = useCallback2(() => {
7337
7546
  if (videoRef.current) {
7338
7547
  setDuration(videoRef.current.duration);
7339
7548
  }
@@ -7365,13 +7574,13 @@ var VideoPlayer = ({
7365
7574
  };
7366
7575
  }, [isPlaying, clearControlsTimeout]);
7367
7576
  const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
7368
- const getTopControlsOpacity = useCallback(() => {
7577
+ const getTopControlsOpacity = useCallback2(() => {
7369
7578
  return showControls ? "opacity-100" : "opacity-0";
7370
7579
  }, [showControls]);
7371
- const getBottomControlsOpacity = useCallback(() => {
7580
+ const getBottomControlsOpacity = useCallback2(() => {
7372
7581
  return showControls ? "opacity-100" : "opacity-0";
7373
7582
  }, [showControls]);
7374
- const handleVideoKeyDown = useCallback(
7583
+ const handleVideoKeyDown = useCallback2(
7375
7584
  (e) => {
7376
7585
  if (e.key) {
7377
7586
  e.stopPropagation();
@@ -7426,9 +7635,9 @@ var VideoPlayer = ({
7426
7635
  toggleFullscreen
7427
7636
  ]
7428
7637
  );
7429
- return /* @__PURE__ */ jsxs30("div", { className: cn("flex flex-col", className), children: [
7430
- (title || subtitleText) && /* @__PURE__ */ jsx36("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: /* @__PURE__ */ jsxs30("div", { className: "flex flex-col gap-1", children: [
7431
- title && /* @__PURE__ */ jsx36(
7638
+ return /* @__PURE__ */ jsxs31("div", { className: cn("flex flex-col", className), children: [
7639
+ (title || subtitleText) && /* @__PURE__ */ jsx37("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-1", children: [
7640
+ title && /* @__PURE__ */ jsx37(
7432
7641
  Text_default,
7433
7642
  {
7434
7643
  as: "h2",
@@ -7439,7 +7648,7 @@ var VideoPlayer = ({
7439
7648
  children: title
7440
7649
  }
7441
7650
  ),
7442
- subtitleText && /* @__PURE__ */ jsx36(
7651
+ subtitleText && /* @__PURE__ */ jsx37(
7443
7652
  Text_default,
7444
7653
  {
7445
7654
  as: "p",
@@ -7451,7 +7660,7 @@ var VideoPlayer = ({
7451
7660
  }
7452
7661
  )
7453
7662
  ] }) }),
7454
- /* @__PURE__ */ jsxs30(
7663
+ /* @__PURE__ */ jsxs31(
7455
7664
  "section",
7456
7665
  {
7457
7666
  className: cn(
@@ -7466,7 +7675,7 @@ var VideoPlayer = ({
7466
7675
  onTouchStart: handleMouseEnter,
7467
7676
  onMouseLeave: handleMouseLeave,
7468
7677
  children: [
7469
- /* @__PURE__ */ jsx36(
7678
+ /* @__PURE__ */ jsx37(
7470
7679
  "video",
7471
7680
  {
7472
7681
  ref: videoRef,
@@ -7480,7 +7689,7 @@ var VideoPlayer = ({
7480
7689
  onKeyDown: handleVideoKeyDown,
7481
7690
  tabIndex: 0,
7482
7691
  "aria-label": title ? `Video: ${title}` : "Video player",
7483
- children: /* @__PURE__ */ jsx36(
7692
+ children: /* @__PURE__ */ jsx37(
7484
7693
  "track",
7485
7694
  {
7486
7695
  ref: trackRef,
@@ -7493,26 +7702,26 @@ var VideoPlayer = ({
7493
7702
  )
7494
7703
  }
7495
7704
  ),
7496
- !isPlaying && /* @__PURE__ */ jsx36("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity", children: /* @__PURE__ */ jsx36(
7705
+ !isPlaying && /* @__PURE__ */ jsx37("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity", children: /* @__PURE__ */ jsx37(
7497
7706
  IconButton_default,
7498
7707
  {
7499
- icon: /* @__PURE__ */ jsx36(Play2, { size: 32, weight: "regular", className: "ml-1" }),
7708
+ icon: /* @__PURE__ */ jsx37(Play2, { size: 32, weight: "regular", className: "ml-1" }),
7500
7709
  onClick: togglePlayPause,
7501
7710
  "aria-label": "Play video",
7502
7711
  className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
7503
7712
  }
7504
7713
  ) }),
7505
- /* @__PURE__ */ jsx36(
7714
+ /* @__PURE__ */ jsx37(
7506
7715
  "div",
7507
7716
  {
7508
7717
  className: cn(
7509
7718
  "absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
7510
7719
  getTopControlsOpacity()
7511
7720
  ),
7512
- children: /* @__PURE__ */ jsx36("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx36(
7721
+ children: /* @__PURE__ */ jsx37("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx37(
7513
7722
  IconButton_default,
7514
7723
  {
7515
- icon: isFullscreen ? /* @__PURE__ */ jsx36(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx36(ArrowsOutSimple, { size: 24 }),
7724
+ icon: isFullscreen ? /* @__PURE__ */ jsx37(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx37(ArrowsOutSimple, { size: 24 }),
7516
7725
  onClick: toggleFullscreen,
7517
7726
  "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
7518
7727
  className: "!bg-transparent !text-white hover:!bg-white/20"
@@ -7520,7 +7729,7 @@ var VideoPlayer = ({
7520
7729
  ) })
7521
7730
  }
7522
7731
  ),
7523
- /* @__PURE__ */ jsxs30(
7732
+ /* @__PURE__ */ jsxs31(
7524
7733
  "div",
7525
7734
  {
7526
7735
  className: cn(
@@ -7528,7 +7737,7 @@ var VideoPlayer = ({
7528
7737
  getBottomControlsOpacity()
7529
7738
  ),
7530
7739
  children: [
7531
- /* @__PURE__ */ jsx36(
7740
+ /* @__PURE__ */ jsx37(
7532
7741
  ProgressBar2,
7533
7742
  {
7534
7743
  currentTime,
@@ -7537,18 +7746,18 @@ var VideoPlayer = ({
7537
7746
  onSeek: handleSeek
7538
7747
  }
7539
7748
  ),
7540
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center justify-between px-4 pb-4", children: [
7541
- /* @__PURE__ */ jsxs30("div", { className: "flex items-center gap-4", children: [
7542
- /* @__PURE__ */ jsx36(
7749
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between px-4 pb-4", children: [
7750
+ /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-4", children: [
7751
+ /* @__PURE__ */ jsx37(
7543
7752
  IconButton_default,
7544
7753
  {
7545
- icon: isPlaying ? /* @__PURE__ */ jsx36(Pause, { size: 24 }) : /* @__PURE__ */ jsx36(Play2, { size: 24 }),
7754
+ icon: isPlaying ? /* @__PURE__ */ jsx37(Pause, { size: 24 }) : /* @__PURE__ */ jsx37(Play2, { size: 24 }),
7546
7755
  onClick: togglePlayPause,
7547
7756
  "aria-label": isPlaying ? "Pause" : "Play",
7548
7757
  className: "!bg-transparent !text-white hover:!bg-white/20"
7549
7758
  }
7550
7759
  ),
7551
- /* @__PURE__ */ jsx36(
7760
+ /* @__PURE__ */ jsx37(
7552
7761
  VolumeControls,
7553
7762
  {
7554
7763
  volume,
@@ -7557,10 +7766,10 @@ var VideoPlayer = ({
7557
7766
  onToggleMute: toggleMute
7558
7767
  }
7559
7768
  ),
7560
- subtitles && /* @__PURE__ */ jsx36(
7769
+ subtitles && /* @__PURE__ */ jsx37(
7561
7770
  IconButton_default,
7562
7771
  {
7563
- icon: /* @__PURE__ */ jsx36(ClosedCaptioning, { size: 24 }),
7772
+ icon: /* @__PURE__ */ jsx37(ClosedCaptioning, { size: 24 }),
7564
7773
  onClick: toggleCaptions,
7565
7774
  "aria-label": showCaptions ? "Hide captions" : "Show captions",
7566
7775
  className: cn(
@@ -7569,19 +7778,20 @@ var VideoPlayer = ({
7569
7778
  )
7570
7779
  }
7571
7780
  ),
7572
- /* @__PURE__ */ jsxs30(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
7781
+ /* @__PURE__ */ jsxs31(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
7573
7782
  formatTime(currentTime),
7574
7783
  " / ",
7575
7784
  formatTime(duration)
7576
7785
  ] })
7577
7786
  ] }),
7578
- /* @__PURE__ */ jsx36("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx36(
7787
+ /* @__PURE__ */ jsx37("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx37(
7579
7788
  SpeedMenu,
7580
7789
  {
7581
7790
  showSpeedMenu,
7582
7791
  playbackRate,
7583
7792
  onToggleMenu: toggleSpeedMenu,
7584
- onSpeedChange: handleSpeedChange
7793
+ onSpeedChange: handleSpeedChange,
7794
+ isFullscreen
7585
7795
  }
7586
7796
  ) })
7587
7797
  ] })
@@ -7596,9 +7806,9 @@ var VideoPlayer = ({
7596
7806
  var VideoPlayer_default = VideoPlayer;
7597
7807
 
7598
7808
  // src/components/Whiteboard/Whiteboard.tsx
7599
- import { useCallback as useCallback2, useState as useState15 } from "react";
7809
+ import { useCallback as useCallback3, useState as useState16 } from "react";
7600
7810
  import { ArrowsOut } from "phosphor-react";
7601
- import { Fragment as Fragment7, jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
7811
+ import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
7602
7812
  var IMAGE_WIDTH = 225;
7603
7813
  var IMAGE_HEIGHT = 90;
7604
7814
  var Whiteboard = ({
@@ -7609,8 +7819,8 @@ var Whiteboard = ({
7609
7819
  imagesPerRow = 2,
7610
7820
  ...rest
7611
7821
  }) => {
7612
- const [imageErrors, setImageErrors] = useState15(/* @__PURE__ */ new Set());
7613
- const handleDownload = useCallback2(
7822
+ const [imageErrors, setImageErrors] = useState16(/* @__PURE__ */ new Set());
7823
+ const handleDownload = useCallback3(
7614
7824
  (image) => {
7615
7825
  if (onDownload) {
7616
7826
  onDownload(image);
@@ -7627,7 +7837,7 @@ var Whiteboard = ({
7627
7837
  },
7628
7838
  [onDownload]
7629
7839
  );
7630
- const handleImageError = useCallback2((imageId) => {
7840
+ const handleImageError = useCallback3((imageId) => {
7631
7841
  setImageErrors((prev) => new Set(prev).add(imageId));
7632
7842
  }, []);
7633
7843
  const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
@@ -7636,7 +7846,7 @@ var Whiteboard = ({
7636
7846
  4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
7637
7847
  }[imagesPerRow];
7638
7848
  if (!images || images.length === 0) {
7639
- return /* @__PURE__ */ jsx37(
7849
+ return /* @__PURE__ */ jsx38(
7640
7850
  "div",
7641
7851
  {
7642
7852
  className: cn(
@@ -7644,11 +7854,11 @@ var Whiteboard = ({
7644
7854
  className
7645
7855
  ),
7646
7856
  ...rest,
7647
- children: /* @__PURE__ */ jsx37("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
7857
+ children: /* @__PURE__ */ jsx38("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
7648
7858
  }
7649
7859
  );
7650
7860
  }
7651
- return /* @__PURE__ */ jsx37(
7861
+ return /* @__PURE__ */ jsx38(
7652
7862
  "div",
7653
7863
  {
7654
7864
  className: cn(
@@ -7656,7 +7866,7 @@ var Whiteboard = ({
7656
7866
  className
7657
7867
  ),
7658
7868
  ...rest,
7659
- children: /* @__PURE__ */ jsx37("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs31(
7869
+ children: /* @__PURE__ */ jsx38("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs32(
7660
7870
  "div",
7661
7871
  {
7662
7872
  className: "relative group overflow-hidden bg-gray-100 rounded-lg",
@@ -7664,7 +7874,7 @@ var Whiteboard = ({
7664
7874
  width: `${IMAGE_WIDTH}px`
7665
7875
  },
7666
7876
  children: [
7667
- /* @__PURE__ */ jsx37(
7877
+ /* @__PURE__ */ jsx38(
7668
7878
  "div",
7669
7879
  {
7670
7880
  className: "relative",
@@ -7672,8 +7882,8 @@ var Whiteboard = ({
7672
7882
  width: `${IMAGE_WIDTH}px`,
7673
7883
  height: `${IMAGE_HEIGHT}px`
7674
7884
  },
7675
- children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx37("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx37("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs31(Fragment7, { children: [
7676
- /* @__PURE__ */ jsx37(
7885
+ children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx38("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx38("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs32(Fragment8, { children: [
7886
+ /* @__PURE__ */ jsx38(
7677
7887
  "img",
7678
7888
  {
7679
7889
  src: image.imageUrl,
@@ -7683,18 +7893,18 @@ var Whiteboard = ({
7683
7893
  onError: () => handleImageError(image.id)
7684
7894
  }
7685
7895
  ),
7686
- /* @__PURE__ */ jsx37("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
7896
+ /* @__PURE__ */ jsx38("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
7687
7897
  ] })
7688
7898
  }
7689
7899
  ),
7690
- showDownload && /* @__PURE__ */ jsx37(
7900
+ showDownload && /* @__PURE__ */ jsx38(
7691
7901
  "button",
7692
7902
  {
7693
7903
  type: "button",
7694
7904
  onClick: () => handleDownload(image),
7695
7905
  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",
7696
7906
  "aria-label": `Download ${image.title || "imagem"}`,
7697
- children: /* @__PURE__ */ jsx37(
7907
+ children: /* @__PURE__ */ jsx38(
7698
7908
  ArrowsOut,
7699
7909
  {
7700
7910
  size: 24,
@@ -7718,12 +7928,12 @@ import {
7718
7928
  createContext,
7719
7929
  useContext,
7720
7930
  useEffect as useEffect14,
7721
- useState as useState16,
7722
- useCallback as useCallback3,
7931
+ useState as useState17,
7932
+ useCallback as useCallback4,
7723
7933
  useMemo as useMemo4
7724
7934
  } from "react";
7725
7935
  import { useLocation, Navigate } from "react-router-dom";
7726
- import { Fragment as Fragment8, jsx as jsx38 } from "react/jsx-runtime";
7936
+ import { Fragment as Fragment9, jsx as jsx39 } from "react/jsx-runtime";
7727
7937
  var AuthContext = createContext(void 0);
7728
7938
  var AuthProvider = ({
7729
7939
  children,
@@ -7734,12 +7944,12 @@ var AuthProvider = ({
7734
7944
  getSessionFn,
7735
7945
  getTokensFn
7736
7946
  }) => {
7737
- const [authState, setAuthState] = useState16({
7947
+ const [authState, setAuthState] = useState17({
7738
7948
  isAuthenticated: false,
7739
7949
  isLoading: true,
7740
7950
  ...initialAuthState
7741
7951
  });
7742
- const checkAuth = useCallback3(async () => {
7952
+ const checkAuth = useCallback4(async () => {
7743
7953
  try {
7744
7954
  setAuthState((prev) => ({ ...prev, isLoading: true }));
7745
7955
  if (!checkAuthFn) {
@@ -7770,7 +7980,7 @@ var AuthProvider = ({
7770
7980
  return false;
7771
7981
  }
7772
7982
  }, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
7773
- const signOut = useCallback3(() => {
7983
+ const signOut = useCallback4(() => {
7774
7984
  if (signOutFn) {
7775
7985
  signOutFn();
7776
7986
  }
@@ -7793,7 +8003,7 @@ var AuthProvider = ({
7793
8003
  }),
7794
8004
  [authState, checkAuth, signOut]
7795
8005
  );
7796
- return /* @__PURE__ */ jsx38(AuthContext.Provider, { value: contextValue, children });
8006
+ return /* @__PURE__ */ jsx39(AuthContext.Provider, { value: contextValue, children });
7797
8007
  };
7798
8008
  var useAuth = () => {
7799
8009
  const context = useContext(AuthContext);
@@ -7809,9 +8019,9 @@ var ProtectedRoute = ({
7809
8019
  additionalCheck
7810
8020
  }) => {
7811
8021
  const { isAuthenticated, isLoading, ...authState } = useAuth();
7812
- const defaultLoadingComponent = /* @__PURE__ */ jsx38("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx38("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
8022
+ const defaultLoadingComponent = /* @__PURE__ */ jsx39("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx39("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7813
8023
  if (isLoading) {
7814
- return /* @__PURE__ */ jsx38(Fragment8, { children: loadingComponent || defaultLoadingComponent });
8024
+ return /* @__PURE__ */ jsx39(Fragment9, { children: loadingComponent || defaultLoadingComponent });
7815
8025
  }
7816
8026
  if (!isAuthenticated) {
7817
8027
  if (typeof window !== "undefined") {
@@ -7822,12 +8032,12 @@ var ProtectedRoute = ({
7822
8032
  return null;
7823
8033
  }
7824
8034
  }
7825
- return /* @__PURE__ */ jsx38(Navigate, { to: redirectTo, replace: true });
8035
+ return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
7826
8036
  }
7827
8037
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
7828
- return /* @__PURE__ */ jsx38(Navigate, { to: redirectTo, replace: true });
8038
+ return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
7829
8039
  }
7830
- return /* @__PURE__ */ jsx38(Fragment8, { children });
8040
+ return /* @__PURE__ */ jsx39(Fragment9, { children });
7831
8041
  };
7832
8042
  var PublicRoute = ({
7833
8043
  children,
@@ -7837,15 +8047,15 @@ var PublicRoute = ({
7837
8047
  }) => {
7838
8048
  const { isAuthenticated, isLoading } = useAuth();
7839
8049
  if (checkAuthBeforeRender && isLoading) {
7840
- return /* @__PURE__ */ jsx38("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx38("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
8050
+ return /* @__PURE__ */ jsx39("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx39("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
7841
8051
  }
7842
8052
  if (isAuthenticated && redirectIfAuthenticated) {
7843
- return /* @__PURE__ */ jsx38(Navigate, { to: redirectTo, replace: true });
8053
+ return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
7844
8054
  }
7845
- return /* @__PURE__ */ jsx38(Fragment8, { children });
8055
+ return /* @__PURE__ */ jsx39(Fragment9, { children });
7846
8056
  };
7847
8057
  var withAuth = (Component, options = {}) => {
7848
- return (props) => /* @__PURE__ */ jsx38(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx38(Component, { ...props }) });
8058
+ return (props) => /* @__PURE__ */ jsx39(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx39(Component, { ...props }) });
7849
8059
  };
7850
8060
  var useAuthGuard = (options = {}) => {
7851
8061
  const authState = useAuth();
@@ -7860,7 +8070,7 @@ var useAuthGuard = (options = {}) => {
7860
8070
  var useRouteAuth = (fallbackPath = "/") => {
7861
8071
  const { isAuthenticated, isLoading } = useAuth();
7862
8072
  const location = useLocation();
7863
- const redirectToLogin = () => /* @__PURE__ */ jsx38(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
8073
+ const redirectToLogin = () => /* @__PURE__ */ jsx39(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
7864
8074
  return {
7865
8075
  isAuthenticated,
7866
8076
  isLoading,
@@ -7936,7 +8146,7 @@ function createZustandAuthAdapter(useAuthStore) {
7936
8146
  }
7937
8147
 
7938
8148
  // src/components/Auth/useUrlAuthentication.ts
7939
- import { useEffect as useEffect15, useRef as useRef10 } from "react";
8149
+ import { useEffect as useEffect15, useRef as useRef11 } from "react";
7940
8150
  import { useLocation as useLocation2 } from "react-router-dom";
7941
8151
  var getAuthParams = (location, extractParams) => {
7942
8152
  const searchParams = new URLSearchParams(location.search);
@@ -7984,7 +8194,7 @@ var handleUserData = (responseData, setUser) => {
7984
8194
  };
7985
8195
  function useUrlAuthentication(options) {
7986
8196
  const location = useLocation2();
7987
- const processedRef = useRef10(false);
8197
+ const processedRef = useRef11(false);
7988
8198
  useEffect15(() => {
7989
8199
  const handleAuthentication = async () => {
7990
8200
  if (processedRef.current) {
@@ -8077,13 +8287,13 @@ import {
8077
8287
  XCircle as XCircle5
8078
8288
  } from "phosphor-react";
8079
8289
  import {
8080
- forwardRef as forwardRef19,
8290
+ forwardRef as forwardRef20,
8081
8291
  useEffect as useEffect16,
8082
8292
  useMemo as useMemo6,
8083
8293
  useId as useId10,
8084
- useState as useState17,
8085
- useCallback as useCallback4,
8086
- useRef as useRef11
8294
+ useState as useState18,
8295
+ useCallback as useCallback5,
8296
+ useRef as useRef12
8087
8297
  } from "react";
8088
8298
 
8089
8299
  // src/components/Quiz/useQuizStore.ts
@@ -8720,13 +8930,13 @@ var useQuizStore = create7()(
8720
8930
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
8721
8931
 
8722
8932
  // src/components/Quiz/Quiz.tsx
8723
- import { Fragment as Fragment9, jsx as jsx39, jsxs as jsxs32 } from "react/jsx-runtime";
8933
+ import { Fragment as Fragment10, jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
8724
8934
  var getStatusBadge = (status) => {
8725
8935
  switch (status) {
8726
8936
  case "correct":
8727
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx39(CheckCircle6, {}), children: "Resposta correta" });
8937
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx40(CheckCircle6, {}), children: "Resposta correta" });
8728
8938
  case "incorrect":
8729
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx39(XCircle5, {}), children: "Resposta incorreta" });
8939
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx40(XCircle5, {}), children: "Resposta incorreta" });
8730
8940
  default:
8731
8941
  return null;
8732
8942
  }
@@ -8739,17 +8949,17 @@ var getStatusStyles = (variantCorrect) => {
8739
8949
  return "bg-error-background border-error-300";
8740
8950
  }
8741
8951
  };
8742
- var Quiz = forwardRef19(({ children, className, variant = "default", ...props }, ref) => {
8952
+ var Quiz = forwardRef20(({ children, className, variant = "default", ...props }, ref) => {
8743
8953
  const { setVariant } = useQuizStore();
8744
8954
  useEffect16(() => {
8745
8955
  setVariant(variant);
8746
8956
  }, [variant, setVariant]);
8747
- return /* @__PURE__ */ jsx39("div", { ref, className: cn("flex flex-col", className), ...props, children });
8957
+ return /* @__PURE__ */ jsx40("div", { ref, className: cn("flex flex-col", className), ...props, children });
8748
8958
  });
8749
- var QuizHeaderResult = forwardRef19(
8959
+ var QuizHeaderResult = forwardRef20(
8750
8960
  ({ className, ...props }, ref) => {
8751
8961
  const { getQuestionResultByQuestionId, getCurrentQuestion } = useQuizStore();
8752
- const [status, setStatus] = useState17(void 0);
8962
+ const [status, setStatus] = useState18(void 0);
8753
8963
  useEffect16(() => {
8754
8964
  const cq = getCurrentQuestion();
8755
8965
  if (!cq) {
@@ -8785,7 +8995,7 @@ var QuizHeaderResult = forwardRef19(
8785
8995
  return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
8786
8996
  }
8787
8997
  };
8788
- return /* @__PURE__ */ jsxs32(
8998
+ return /* @__PURE__ */ jsxs33(
8789
8999
  "div",
8790
9000
  {
8791
9001
  ref,
@@ -8796,14 +9006,14 @@ var QuizHeaderResult = forwardRef19(
8796
9006
  ),
8797
9007
  ...props,
8798
9008
  children: [
8799
- /* @__PURE__ */ jsx39("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
8800
- /* @__PURE__ */ jsx39("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
9009
+ /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
9010
+ /* @__PURE__ */ jsx40("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
8801
9011
  ]
8802
9012
  }
8803
9013
  );
8804
9014
  }
8805
9015
  );
8806
- var QuizTitle = forwardRef19(
9016
+ var QuizTitle = forwardRef20(
8807
9017
  ({ className, ...props }, ref) => {
8808
9018
  const {
8809
9019
  currentQuestionIndex,
@@ -8813,7 +9023,7 @@ var QuizTitle = forwardRef19(
8813
9023
  formatTime: formatTime2,
8814
9024
  isStarted
8815
9025
  } = useQuizStore();
8816
- const [showExitConfirmation, setShowExitConfirmation] = useState17(false);
9026
+ const [showExitConfirmation, setShowExitConfirmation] = useState18(false);
8817
9027
  const totalQuestions = getTotalQuestions();
8818
9028
  const quizTitle = getQuizTitle();
8819
9029
  const handleBackClick = () => {
@@ -8830,8 +9040,8 @@ var QuizTitle = forwardRef19(
8830
9040
  const handleCancelExit = () => {
8831
9041
  setShowExitConfirmation(false);
8832
9042
  };
8833
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
8834
- /* @__PURE__ */ jsxs32(
9043
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9044
+ /* @__PURE__ */ jsxs33(
8835
9045
  "div",
8836
9046
  {
8837
9047
  ref,
@@ -8841,24 +9051,24 @@ var QuizTitle = forwardRef19(
8841
9051
  ),
8842
9052
  ...props,
8843
9053
  children: [
8844
- /* @__PURE__ */ jsx39(
9054
+ /* @__PURE__ */ jsx40(
8845
9055
  IconButton_default,
8846
9056
  {
8847
- icon: /* @__PURE__ */ jsx39(CaretLeft3, { size: 24 }),
9057
+ icon: /* @__PURE__ */ jsx40(CaretLeft3, { size: 24 }),
8848
9058
  size: "md",
8849
9059
  "aria-label": "Voltar",
8850
9060
  onClick: handleBackClick
8851
9061
  }
8852
9062
  ),
8853
- /* @__PURE__ */ jsxs32("span", { className: "flex flex-col gap-2 text-center", children: [
8854
- /* @__PURE__ */ jsx39("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
8855
- /* @__PURE__ */ jsx39("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
9063
+ /* @__PURE__ */ jsxs33("span", { className: "flex flex-col gap-2 text-center", children: [
9064
+ /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
9065
+ /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
8856
9066
  ] }),
8857
- /* @__PURE__ */ jsx39("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx39(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx39(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
9067
+ /* @__PURE__ */ jsx40("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx40(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx40(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
8858
9068
  ]
8859
9069
  }
8860
9070
  ),
8861
- /* @__PURE__ */ jsx39(
9071
+ /* @__PURE__ */ jsx40(
8862
9072
  AlertDialog,
8863
9073
  {
8864
9074
  isOpen: showExitConfirmation,
@@ -8874,15 +9084,15 @@ var QuizTitle = forwardRef19(
8874
9084
  ] });
8875
9085
  }
8876
9086
  );
8877
- var QuizSubTitle = forwardRef19(
9087
+ var QuizSubTitle = forwardRef20(
8878
9088
  ({ subTitle, ...props }, ref) => {
8879
- return /* @__PURE__ */ jsx39("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx39("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
9089
+ return /* @__PURE__ */ jsx40("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx40("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
8880
9090
  }
8881
9091
  );
8882
9092
  var QuizHeader = () => {
8883
9093
  const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
8884
9094
  const currentQuestion = getCurrentQuestion();
8885
- return /* @__PURE__ */ jsx39(
9095
+ return /* @__PURE__ */ jsx40(
8886
9096
  HeaderAlternative,
8887
9097
  {
8888
9098
  title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
@@ -8891,8 +9101,8 @@ var QuizHeader = () => {
8891
9101
  }
8892
9102
  );
8893
9103
  };
8894
- var QuizContainer = forwardRef19(({ children, className, ...props }, ref) => {
8895
- return /* @__PURE__ */ jsx39(
9104
+ var QuizContainer = forwardRef20(({ children, className, ...props }, ref) => {
9105
+ return /* @__PURE__ */ jsx40(
8896
9106
  "div",
8897
9107
  {
8898
9108
  ref,
@@ -8905,7 +9115,7 @@ var QuizContainer = forwardRef19(({ children, className, ...props }, ref) => {
8905
9115
  }
8906
9116
  );
8907
9117
  });
8908
- var QuizContent = forwardRef19(({ paddingBottom }) => {
9118
+ var QuizContent = forwardRef20(({ paddingBottom }) => {
8909
9119
  const { getCurrentQuestion } = useQuizStore();
8910
9120
  const currentQuestion = getCurrentQuestion();
8911
9121
  const questionComponents = {
@@ -8918,7 +9128,7 @@ var QuizContent = forwardRef19(({ paddingBottom }) => {
8918
9128
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
8919
9129
  };
8920
9130
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
8921
- return QuestionComponent ? /* @__PURE__ */ jsx39(QuestionComponent, { paddingBottom }) : null;
9131
+ return QuestionComponent ? /* @__PURE__ */ jsx40(QuestionComponent, { paddingBottom }) : null;
8922
9132
  });
8923
9133
  var QuizAlternative = ({ paddingBottom }) => {
8924
9134
  const {
@@ -8955,10 +9165,10 @@ var QuizAlternative = ({ paddingBottom }) => {
8955
9165
  };
8956
9166
  });
8957
9167
  if (!alternatives)
8958
- return /* @__PURE__ */ jsx39("div", { children: /* @__PURE__ */ jsx39("p", { children: "N\xE3o h\xE1 Alternativas" }) });
8959
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
8960
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Alternativas" }),
8961
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx39("div", { className: "space-y-4", children: /* @__PURE__ */ jsx39(
9168
+ return /* @__PURE__ */ jsx40("div", { children: /* @__PURE__ */ jsx40("p", { children: "N\xE3o h\xE1 Alternativas" }) });
9169
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9170
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
9171
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
8962
9172
  AlternativesList,
8963
9173
  {
8964
9174
  mode: variant === "default" ? "interactive" : "readonly",
@@ -8990,8 +9200,8 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
8990
9200
  const currentQuestionResult = getQuestionResultByQuestionId(
8991
9201
  currentQuestion?.id || ""
8992
9202
  );
8993
- const prevSelectedValuesRef = useRef11([]);
8994
- const prevQuestionIdRef = useRef11("");
9203
+ const prevSelectedValuesRef = useRef12([]);
9204
+ const prevQuestionIdRef = useRef12("");
8995
9205
  const allCurrentAnswerIds = useMemo6(() => {
8996
9206
  return allCurrentAnswers?.map((answer) => answer.optionId) || [];
8997
9207
  }, [allCurrentAnswers]);
@@ -9022,7 +9232,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
9022
9232
  variant,
9023
9233
  currentQuestionResult?.selectedOptions
9024
9234
  ]);
9025
- const handleSelectedValues = useCallback4(
9235
+ const handleSelectedValues = useCallback5(
9026
9236
  (values) => {
9027
9237
  if (currentQuestion) {
9028
9238
  selectMultipleAnswer(currentQuestion.id, values);
@@ -9056,10 +9266,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
9056
9266
  };
9057
9267
  });
9058
9268
  if (!choices)
9059
- return /* @__PURE__ */ jsx39("div", { children: /* @__PURE__ */ jsx39("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
9060
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9061
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Alternativas" }),
9062
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx39("div", { className: "space-y-4", children: /* @__PURE__ */ jsx39(
9269
+ return /* @__PURE__ */ jsx40("div", { children: /* @__PURE__ */ jsx40("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
9270
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9271
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
9272
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
9063
9273
  MultipleChoiceList,
9064
9274
  {
9065
9275
  choices,
@@ -9085,13 +9295,13 @@ var QuizDissertative = ({ paddingBottom }) => {
9085
9295
  currentQuestion?.id || ""
9086
9296
  );
9087
9297
  const currentAnswer = getCurrentAnswer();
9088
- const textareaRef = useRef11(null);
9298
+ const textareaRef = useRef12(null);
9089
9299
  const handleAnswerChange = (value) => {
9090
9300
  if (currentQuestion) {
9091
9301
  selectDissertativeAnswer(currentQuestion.id, value);
9092
9302
  }
9093
9303
  };
9094
- const adjustTextareaHeight = useCallback4(() => {
9304
+ const adjustTextareaHeight = useCallback5(() => {
9095
9305
  if (textareaRef.current) {
9096
9306
  textareaRef.current.style.height = "auto";
9097
9307
  const scrollHeight = textareaRef.current.scrollHeight;
@@ -9105,12 +9315,12 @@ var QuizDissertative = ({ paddingBottom }) => {
9105
9315
  adjustTextareaHeight();
9106
9316
  }, [currentAnswer, adjustTextareaHeight]);
9107
9317
  if (!currentQuestion) {
9108
- return /* @__PURE__ */ jsx39("div", { className: "space-y-4", children: /* @__PURE__ */ jsx39("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
9318
+ return /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
9109
9319
  }
9110
9320
  const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
9111
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9112
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Resposta" }),
9113
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx39("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx39("div", { className: "space-y-4", children: /* @__PURE__ */ jsx39(
9321
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9322
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Resposta" }),
9323
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
9114
9324
  TextArea_default,
9115
9325
  {
9116
9326
  ref: textareaRef,
@@ -9120,10 +9330,10 @@ var QuizDissertative = ({ paddingBottom }) => {
9120
9330
  rows: 4,
9121
9331
  className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
9122
9332
  }
9123
- ) }) : /* @__PURE__ */ jsx39("div", { className: "space-y-4", children: /* @__PURE__ */ jsx39("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
9124
- variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs32(Fragment9, { children: [
9125
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
9126
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx39("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." }) })
9333
+ ) }) : /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
9334
+ variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs33(Fragment10, { children: [
9335
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
9336
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("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." }) })
9127
9337
  ] })
9128
9338
  ] });
9129
9339
  };
@@ -9149,16 +9359,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
9149
9359
  ];
9150
9360
  const getLetterByIndex = (index) => String.fromCharCode(97 + index);
9151
9361
  const isDefaultVariant = variant == "default";
9152
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9153
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Alternativas" }),
9154
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx39("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
9362
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9363
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
9364
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
9155
9365
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
9156
- return /* @__PURE__ */ jsxs32(
9366
+ return /* @__PURE__ */ jsxs33(
9157
9367
  "section",
9158
9368
  {
9159
9369
  className: "flex flex-col gap-2",
9160
9370
  children: [
9161
- /* @__PURE__ */ jsxs32(
9371
+ /* @__PURE__ */ jsxs33(
9162
9372
  "div",
9163
9373
  {
9164
9374
  className: cn(
@@ -9166,20 +9376,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
9166
9376
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
9167
9377
  ),
9168
9378
  children: [
9169
- /* @__PURE__ */ jsx39("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
9170
- isDefaultVariant ? /* @__PURE__ */ jsxs32(Select_default, { size: "medium", children: [
9171
- /* @__PURE__ */ jsx39(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx39(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
9172
- /* @__PURE__ */ jsxs32(SelectContent, { children: [
9173
- /* @__PURE__ */ jsx39(SelectItem, { value: "V", children: "Verdadeiro" }),
9174
- /* @__PURE__ */ jsx39(SelectItem, { value: "F", children: "Falso" })
9379
+ /* @__PURE__ */ jsx40("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
9380
+ isDefaultVariant ? /* @__PURE__ */ jsxs33(Select_default, { size: "medium", children: [
9381
+ /* @__PURE__ */ jsx40(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
9382
+ /* @__PURE__ */ jsxs33(SelectContent, { children: [
9383
+ /* @__PURE__ */ jsx40(SelectItem, { value: "V", children: "Verdadeiro" }),
9384
+ /* @__PURE__ */ jsx40(SelectItem, { value: "F", children: "Falso" })
9175
9385
  ] })
9176
- ] }) : /* @__PURE__ */ jsx39("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
9386
+ ] }) : /* @__PURE__ */ jsx40("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
9177
9387
  ]
9178
9388
  }
9179
9389
  ),
9180
- !isDefaultVariant && /* @__PURE__ */ jsxs32("span", { className: "flex flex-row gap-2 items-center", children: [
9181
- /* @__PURE__ */ jsx39("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
9182
- !option.isCorrect && /* @__PURE__ */ jsx39("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
9390
+ !isDefaultVariant && /* @__PURE__ */ jsxs33("span", { className: "flex flex-row gap-2 items-center", children: [
9391
+ /* @__PURE__ */ jsx40("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
9392
+ !option.isCorrect && /* @__PURE__ */ jsx40("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
9183
9393
  ] })
9184
9394
  ]
9185
9395
  },
@@ -9240,7 +9450,7 @@ var QuizConnectDots = ({ paddingBottom }) => {
9240
9450
  isCorrect: false
9241
9451
  }
9242
9452
  ];
9243
- const [userAnswers, setUserAnswers] = useState17(() => {
9453
+ const [userAnswers, setUserAnswers] = useState18(() => {
9244
9454
  if (variant === "result") {
9245
9455
  return mockUserAnswers;
9246
9456
  }
@@ -9269,13 +9479,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
9269
9479
  const assignedDots = new Set(
9270
9480
  userAnswers.map((a) => a.dotOption).filter(Boolean)
9271
9481
  );
9272
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9273
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Alternativas" }),
9274
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx39("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
9482
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9483
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
9484
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
9275
9485
  const answer = userAnswers[index];
9276
9486
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
9277
- return /* @__PURE__ */ jsxs32("section", { className: "flex flex-col gap-2", children: [
9278
- /* @__PURE__ */ jsxs32(
9487
+ return /* @__PURE__ */ jsxs33("section", { className: "flex flex-col gap-2", children: [
9488
+ /* @__PURE__ */ jsxs33(
9279
9489
  "div",
9280
9490
  {
9281
9491
  className: cn(
@@ -9283,30 +9493,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
9283
9493
  !isDefaultVariant ? getStatusStyles(variantCorrect) : ""
9284
9494
  ),
9285
9495
  children: [
9286
- /* @__PURE__ */ jsx39("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
9287
- isDefaultVariant ? /* @__PURE__ */ jsxs32(
9496
+ /* @__PURE__ */ jsx40("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
9497
+ isDefaultVariant ? /* @__PURE__ */ jsxs33(
9288
9498
  Select_default,
9289
9499
  {
9290
9500
  size: "medium",
9291
9501
  value: answer.dotOption || void 0,
9292
9502
  onValueChange: (value) => handleSelectDot(index, value),
9293
9503
  children: [
9294
- /* @__PURE__ */ jsx39(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx39(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
9295
- /* @__PURE__ */ jsx39(SelectContent, { children: dotsOptions.filter(
9504
+ /* @__PURE__ */ jsx40(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
9505
+ /* @__PURE__ */ jsx40(SelectContent, { children: dotsOptions.filter(
9296
9506
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
9297
- ).map((dot) => /* @__PURE__ */ jsx39(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
9507
+ ).map((dot) => /* @__PURE__ */ jsx40(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
9298
9508
  ]
9299
9509
  }
9300
- ) : /* @__PURE__ */ jsx39("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
9510
+ ) : /* @__PURE__ */ jsx40("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
9301
9511
  ]
9302
9512
  }
9303
9513
  ),
9304
- !isDefaultVariant && /* @__PURE__ */ jsxs32("span", { className: "flex flex-row gap-2 items-center", children: [
9305
- /* @__PURE__ */ jsxs32("p", { className: "text-text-800 text-2xs", children: [
9514
+ !isDefaultVariant && /* @__PURE__ */ jsxs33("span", { className: "flex flex-row gap-2 items-center", children: [
9515
+ /* @__PURE__ */ jsxs33("p", { className: "text-text-800 text-2xs", children: [
9306
9516
  "Resposta selecionada: ",
9307
9517
  answer.dotOption || "Nenhuma"
9308
9518
  ] }),
9309
- !answer.isCorrect && /* @__PURE__ */ jsxs32("p", { className: "text-text-800 text-2xs", children: [
9519
+ !answer.isCorrect && /* @__PURE__ */ jsxs33("p", { className: "text-text-800 text-2xs", children: [
9310
9520
  "Resposta correta: ",
9311
9521
  answer.correctOption
9312
9522
  ] })
@@ -9359,7 +9569,7 @@ var QuizFill = ({ paddingBottom }) => {
9359
9569
  isCorrect: true
9360
9570
  }
9361
9571
  ];
9362
- const [answers, setAnswers] = useState17({});
9572
+ const [answers, setAnswers] = useState18({});
9363
9573
  const baseId = useId10();
9364
9574
  const getAvailableOptionsForSelect = (selectId) => {
9365
9575
  const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
@@ -9373,18 +9583,18 @@ var QuizFill = ({ paddingBottom }) => {
9373
9583
  const mockAnswer = mockUserAnswers.find(
9374
9584
  (answer) => answer.selectId === selectId
9375
9585
  );
9376
- return /* @__PURE__ */ jsx39("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
9586
+ return /* @__PURE__ */ jsx40("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
9377
9587
  };
9378
9588
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
9379
- return /* @__PURE__ */ jsxs32(
9589
+ return /* @__PURE__ */ jsxs33(
9380
9590
  Select_default,
9381
9591
  {
9382
9592
  value: selectedValue,
9383
9593
  onValueChange: (value) => handleSelectChange(selectId, value),
9384
9594
  className: "inline-flex mb-2.5",
9385
9595
  children: [
9386
- /* @__PURE__ */ jsx39(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ jsx39(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
9387
- /* @__PURE__ */ jsx39(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx39(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
9596
+ /* @__PURE__ */ jsx40(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
9597
+ /* @__PURE__ */ jsx40(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx40(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
9388
9598
  ]
9389
9599
  },
9390
9600
  `${selectId}-${startIndex}`
@@ -9396,8 +9606,8 @@ var QuizFill = ({ paddingBottom }) => {
9396
9606
  );
9397
9607
  if (!mockAnswer) return null;
9398
9608
  const action = mockAnswer.isCorrect ? "success" : "error";
9399
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx39(CheckCircle6, {}) : /* @__PURE__ */ jsx39(XCircle5, {});
9400
- return /* @__PURE__ */ jsx39(
9609
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx40(CheckCircle6, {}) : /* @__PURE__ */ jsx40(XCircle5, {});
9610
+ return /* @__PURE__ */ jsx40(
9401
9611
  Badge_default,
9402
9612
  {
9403
9613
  variant: "solid",
@@ -9405,7 +9615,7 @@ var QuizFill = ({ paddingBottom }) => {
9405
9615
  iconRight: icon,
9406
9616
  size: "large",
9407
9617
  className: "py-3 w-[180px] justify-between mb-2.5",
9408
- children: /* @__PURE__ */ jsx39("span", { className: "text-text-900", children: mockAnswer.userAnswer })
9618
+ children: /* @__PURE__ */ jsx40("span", { className: "text-text-900", children: mockAnswer.userAnswer })
9409
9619
  },
9410
9620
  selectId
9411
9621
  );
@@ -9461,25 +9671,25 @@ var QuizFill = ({ paddingBottom }) => {
9461
9671
  }
9462
9672
  return elements;
9463
9673
  };
9464
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9465
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Alternativas" }),
9466
- /* @__PURE__ */ jsx39(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx39("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx39(
9674
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9675
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
9676
+ /* @__PURE__ */ jsx40(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx40("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx40(
9467
9677
  "div",
9468
9678
  {
9469
9679
  className: cn(
9470
9680
  "text-lg text-text-900 leading-8 h-auto",
9471
9681
  variant != "result" && paddingBottom
9472
9682
  ),
9473
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx39("span", { children: element.element }, element.id))
9683
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx40("span", { children: element.element }, element.id))
9474
9684
  }
9475
9685
  ) }) }),
9476
- variant === "result" && /* @__PURE__ */ jsxs32(Fragment9, { children: [
9477
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Resultado" }),
9478
- /* @__PURE__ */ jsx39(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx39("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx39(
9686
+ variant === "result" && /* @__PURE__ */ jsxs33(Fragment10, { children: [
9687
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Resultado" }),
9688
+ /* @__PURE__ */ jsx40(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx40("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx40(
9479
9689
  "div",
9480
9690
  {
9481
9691
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
9482
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx39("span", { children: element.element }, element.id))
9692
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx40("span", { children: element.element }, element.id))
9483
9693
  }
9484
9694
  ) }) })
9485
9695
  ] })
@@ -9497,7 +9707,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
9497
9707
  };
9498
9708
  const correctRadiusRelative = calculateCorrectRadiusRelative();
9499
9709
  const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
9500
- const [clickPositionRelative, setClickPositionRelative] = useState17(variant == "result" ? mockUserAnswerRelative : null);
9710
+ const [clickPositionRelative, setClickPositionRelative] = useState18(variant == "result" ? mockUserAnswerRelative : null);
9501
9711
  const convertToRelativeCoordinates = (x, y, rect) => {
9502
9712
  const safeWidth = Math.max(rect.width, 1e-3);
9503
9713
  const safeHeight = Math.max(rect.height, 1e-3);
@@ -9533,36 +9743,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
9533
9743
  }
9534
9744
  return "bg-success-600/70 border-white";
9535
9745
  };
9536
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9537
- /* @__PURE__ */ jsx39(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
9538
- /* @__PURE__ */ jsx39(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs32(
9746
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9747
+ /* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
9748
+ /* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs33(
9539
9749
  "div",
9540
9750
  {
9541
9751
  "data-testid": "quiz-image-container",
9542
9752
  className: "space-y-6 p-3 relative inline-block",
9543
9753
  children: [
9544
- variant == "result" && /* @__PURE__ */ jsxs32(
9754
+ variant == "result" && /* @__PURE__ */ jsxs33(
9545
9755
  "div",
9546
9756
  {
9547
9757
  "data-testid": "quiz-legend",
9548
9758
  className: "flex items-center gap-4 text-xs",
9549
9759
  children: [
9550
- /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
9551
- /* @__PURE__ */ jsx39("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
9552
- /* @__PURE__ */ jsx39("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
9760
+ /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
9761
+ /* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
9762
+ /* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
9553
9763
  ] }),
9554
- /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
9555
- /* @__PURE__ */ jsx39("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
9556
- /* @__PURE__ */ jsx39("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
9764
+ /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
9765
+ /* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
9766
+ /* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
9557
9767
  ] }),
9558
- /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
9559
- /* @__PURE__ */ jsx39("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
9560
- /* @__PURE__ */ jsx39("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
9768
+ /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
9769
+ /* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
9770
+ /* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
9561
9771
  ] })
9562
9772
  ]
9563
9773
  }
9564
9774
  ),
9565
- /* @__PURE__ */ jsxs32(
9775
+ /* @__PURE__ */ jsxs33(
9566
9776
  "button",
9567
9777
  {
9568
9778
  "data-testid": "quiz-image-button",
@@ -9577,7 +9787,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
9577
9787
  },
9578
9788
  "aria-label": "\xC1rea da imagem interativa",
9579
9789
  children: [
9580
- /* @__PURE__ */ jsx39(
9790
+ /* @__PURE__ */ jsx40(
9581
9791
  "img",
9582
9792
  {
9583
9793
  "data-testid": "quiz-image",
@@ -9586,7 +9796,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
9586
9796
  className: "w-full h-auto rounded-md"
9587
9797
  }
9588
9798
  ),
9589
- variant === "result" && /* @__PURE__ */ jsx39(
9799
+ variant === "result" && /* @__PURE__ */ jsx40(
9590
9800
  "div",
9591
9801
  {
9592
9802
  "data-testid": "quiz-correct-circle",
@@ -9601,7 +9811,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
9601
9811
  }
9602
9812
  }
9603
9813
  ),
9604
- clickPositionRelative && /* @__PURE__ */ jsx39(
9814
+ clickPositionRelative && /* @__PURE__ */ jsx40(
9605
9815
  "div",
9606
9816
  {
9607
9817
  "data-testid": "quiz-user-circle",
@@ -9669,18 +9879,18 @@ var QuizQuestionList = ({
9669
9879
  return "Em branco";
9670
9880
  }
9671
9881
  };
9672
- return /* @__PURE__ */ jsxs32("div", { className: "space-y-6 px-4 h-full", children: [
9673
- Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx39("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx39("p", { className: "text-lg", children: "Nenhum resultado" }) }),
9882
+ return /* @__PURE__ */ jsxs33("div", { className: "space-y-6 px-4 h-full", children: [
9883
+ Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx40("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx40("p", { className: "text-lg", children: "Nenhum resultado" }) }),
9674
9884
  Object.entries(filteredGroupedQuestions).map(
9675
- ([subjectId, questions]) => /* @__PURE__ */ jsxs32("section", { className: "flex flex-col gap-2", children: [
9676
- /* @__PURE__ */ jsxs32("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
9677
- /* @__PURE__ */ jsx39("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx39(BookOpen, { size: 17, className: "text-white" }) }),
9678
- /* @__PURE__ */ jsx39("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
9885
+ ([subjectId, questions]) => /* @__PURE__ */ jsxs33("section", { className: "flex flex-col gap-2", children: [
9886
+ /* @__PURE__ */ jsxs33("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
9887
+ /* @__PURE__ */ jsx40("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx40(BookOpen, { size: 17, className: "text-white" }) }),
9888
+ /* @__PURE__ */ jsx40("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
9679
9889
  ] }),
9680
- /* @__PURE__ */ jsx39("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
9890
+ /* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
9681
9891
  const status = getQuestionStatus(question.id);
9682
9892
  const questionNumber = getQuestionIndex(question.id);
9683
- return /* @__PURE__ */ jsx39(
9893
+ return /* @__PURE__ */ jsx40(
9684
9894
  CardStatus,
9685
9895
  {
9686
9896
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -9697,7 +9907,7 @@ var QuizQuestionList = ({
9697
9907
  )
9698
9908
  ] });
9699
9909
  };
9700
- var QuizFooter = forwardRef19(
9910
+ var QuizFooter = forwardRef20(
9701
9911
  ({
9702
9912
  className,
9703
9913
  onGoToSimulated,
@@ -9725,11 +9935,11 @@ var QuizFooter = forwardRef19(
9725
9935
  const currentAnswer = getCurrentAnswer();
9726
9936
  const currentQuestion = getCurrentQuestion();
9727
9937
  const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
9728
- const [alertDialogOpen, setAlertDialogOpen] = useState17(false);
9729
- const [modalResultOpen, setModalResultOpen] = useState17(false);
9730
- const [modalNavigateOpen, setModalNavigateOpen] = useState17(false);
9731
- const [modalResolutionOpen, setModalResolutionOpen] = useState17(false);
9732
- const [filterType, setFilterType] = useState17("all");
9938
+ const [alertDialogOpen, setAlertDialogOpen] = useState18(false);
9939
+ const [modalResultOpen, setModalResultOpen] = useState18(false);
9940
+ const [modalNavigateOpen, setModalNavigateOpen] = useState18(false);
9941
+ const [modalResolutionOpen, setModalResolutionOpen] = useState18(false);
9942
+ const [filterType, setFilterType] = useState18("all");
9733
9943
  const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
9734
9944
  const allQuestions = getTotalQuestions();
9735
9945
  const handleFinishQuiz = async () => {
@@ -9760,8 +9970,8 @@ var QuizFooter = forwardRef19(
9760
9970
  return;
9761
9971
  }
9762
9972
  };
9763
- return /* @__PURE__ */ jsxs32(Fragment9, { children: [
9764
- /* @__PURE__ */ jsx39(
9973
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
9974
+ /* @__PURE__ */ jsx40(
9765
9975
  "footer",
9766
9976
  {
9767
9977
  ref,
@@ -9770,17 +9980,17 @@ var QuizFooter = forwardRef19(
9770
9980
  className
9771
9981
  ),
9772
9982
  ...props,
9773
- children: variant === "default" ? /* @__PURE__ */ jsxs32(Fragment9, { children: [
9774
- /* @__PURE__ */ jsxs32("div", { className: "flex flex-row items-center gap-1", children: [
9775
- /* @__PURE__ */ jsx39(
9983
+ children: variant === "default" ? /* @__PURE__ */ jsxs33(Fragment10, { children: [
9984
+ /* @__PURE__ */ jsxs33("div", { className: "flex flex-row items-center gap-1", children: [
9985
+ /* @__PURE__ */ jsx40(
9776
9986
  IconButton_default,
9777
9987
  {
9778
- icon: /* @__PURE__ */ jsx39(SquaresFour, { size: 24, className: "text-text-950" }),
9988
+ icon: /* @__PURE__ */ jsx40(SquaresFour, { size: 24, className: "text-text-950" }),
9779
9989
  size: "md",
9780
9990
  onClick: () => setModalNavigateOpen(true)
9781
9991
  }
9782
9992
  ),
9783
- isFirstQuestion ? /* @__PURE__ */ jsx39(
9993
+ isFirstQuestion ? /* @__PURE__ */ jsx40(
9784
9994
  Button_default,
9785
9995
  {
9786
9996
  variant: "outline",
@@ -9791,13 +10001,13 @@ var QuizFooter = forwardRef19(
9791
10001
  },
9792
10002
  children: "Pular"
9793
10003
  }
9794
- ) : /* @__PURE__ */ jsx39(
10004
+ ) : /* @__PURE__ */ jsx40(
9795
10005
  Button_default,
9796
10006
  {
9797
10007
  size: "medium",
9798
10008
  variant: "link",
9799
10009
  action: "primary",
9800
- iconLeft: /* @__PURE__ */ jsx39(CaretLeft3, { size: 18 }),
10010
+ iconLeft: /* @__PURE__ */ jsx40(CaretLeft3, { size: 18 }),
9801
10011
  onClick: () => {
9802
10012
  goToPreviousQuestion();
9803
10013
  },
@@ -9805,7 +10015,7 @@ var QuizFooter = forwardRef19(
9805
10015
  }
9806
10016
  )
9807
10017
  ] }),
9808
- !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx39(
10018
+ !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx40(
9809
10019
  Button_default,
9810
10020
  {
9811
10021
  size: "small",
@@ -9818,7 +10028,7 @@ var QuizFooter = forwardRef19(
9818
10028
  children: "Pular"
9819
10029
  }
9820
10030
  ),
9821
- isLastQuestion ? /* @__PURE__ */ jsx39(
10031
+ isLastQuestion ? /* @__PURE__ */ jsx40(
9822
10032
  Button_default,
9823
10033
  {
9824
10034
  size: "medium",
@@ -9828,13 +10038,13 @@ var QuizFooter = forwardRef19(
9828
10038
  onClick: handleFinishQuiz,
9829
10039
  children: "Finalizar"
9830
10040
  }
9831
- ) : /* @__PURE__ */ jsx39(
10041
+ ) : /* @__PURE__ */ jsx40(
9832
10042
  Button_default,
9833
10043
  {
9834
10044
  size: "medium",
9835
10045
  variant: "link",
9836
10046
  action: "primary",
9837
- iconRight: /* @__PURE__ */ jsx39(CaretRight4, { size: 18 }),
10047
+ iconRight: /* @__PURE__ */ jsx40(CaretRight4, { size: 18 }),
9838
10048
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
9839
10049
  onClick: () => {
9840
10050
  goToNextQuestion();
@@ -9842,7 +10052,7 @@ var QuizFooter = forwardRef19(
9842
10052
  children: "Avan\xE7ar"
9843
10053
  }
9844
10054
  )
9845
- ] }) : /* @__PURE__ */ jsx39("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx39(
10055
+ ] }) : /* @__PURE__ */ jsx40("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx40(
9846
10056
  Button_default,
9847
10057
  {
9848
10058
  variant: "solid",
@@ -9854,7 +10064,7 @@ var QuizFooter = forwardRef19(
9854
10064
  ) })
9855
10065
  }
9856
10066
  ),
9857
- /* @__PURE__ */ jsx39(
10067
+ /* @__PURE__ */ jsx40(
9858
10068
  AlertDialog,
9859
10069
  {
9860
10070
  isOpen: alertDialogOpen,
@@ -9866,7 +10076,7 @@ var QuizFooter = forwardRef19(
9866
10076
  onSubmit: handleAlertSubmit
9867
10077
  }
9868
10078
  ),
9869
- /* @__PURE__ */ jsx39(
10079
+ /* @__PURE__ */ jsx40(
9870
10080
  Modal_default,
9871
10081
  {
9872
10082
  isOpen: modalResultOpen,
@@ -9876,11 +10086,11 @@ var QuizFooter = forwardRef19(
9876
10086
  closeOnEscape: false,
9877
10087
  hideCloseButton: true,
9878
10088
  size: "md",
9879
- children: /* @__PURE__ */ jsxs32("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
9880
- resultImageComponent ? /* @__PURE__ */ jsx39("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx39("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx39("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
9881
- /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-2 text-center", children: [
9882
- /* @__PURE__ */ jsx39("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
9883
- /* @__PURE__ */ jsxs32("p", { className: "text-text-500 font-sm", children: [
10089
+ children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
10090
+ resultImageComponent ? /* @__PURE__ */ jsx40("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx40("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx40("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
10091
+ /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-2 text-center", children: [
10092
+ /* @__PURE__ */ jsx40("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
10093
+ /* @__PURE__ */ jsxs33("p", { className: "text-text-500 font-sm", children: [
9884
10094
  "Voc\xEA acertou",
9885
10095
  " ",
9886
10096
  getQuestionResultStatistics()?.correctAnswers ?? "--",
@@ -9890,8 +10100,8 @@ var QuizFooter = forwardRef19(
9890
10100
  " quest\xF5es."
9891
10101
  ] })
9892
10102
  ] }),
9893
- /* @__PURE__ */ jsxs32("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
9894
- /* @__PURE__ */ jsx39(
10103
+ /* @__PURE__ */ jsxs33("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
10104
+ /* @__PURE__ */ jsx40(
9895
10105
  Button_default,
9896
10106
  {
9897
10107
  variant: "outline",
@@ -9901,38 +10111,38 @@ var QuizFooter = forwardRef19(
9901
10111
  children: "Ir para simulados"
9902
10112
  }
9903
10113
  ),
9904
- /* @__PURE__ */ jsx39(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
10114
+ /* @__PURE__ */ jsx40(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
9905
10115
  ] })
9906
10116
  ] })
9907
10117
  }
9908
10118
  ),
9909
- /* @__PURE__ */ jsx39(
10119
+ /* @__PURE__ */ jsx40(
9910
10120
  Modal_default,
9911
10121
  {
9912
10122
  isOpen: modalNavigateOpen,
9913
10123
  onClose: () => setModalNavigateOpen(false),
9914
10124
  title: "Quest\xF5es",
9915
10125
  size: "lg",
9916
- children: /* @__PURE__ */ jsxs32("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
9917
- /* @__PURE__ */ jsxs32("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
9918
- /* @__PURE__ */ jsx39("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
9919
- /* @__PURE__ */ jsx39("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs32(Select_default, { value: filterType, onValueChange: setFilterType, children: [
9920
- /* @__PURE__ */ jsx39(
10126
+ children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
10127
+ /* @__PURE__ */ jsxs33("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
10128
+ /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
10129
+ /* @__PURE__ */ jsx40("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs33(Select_default, { value: filterType, onValueChange: setFilterType, children: [
10130
+ /* @__PURE__ */ jsx40(
9921
10131
  SelectTrigger,
9922
10132
  {
9923
10133
  variant: "rounded",
9924
10134
  className: "max-w-[266px] min-w-[160px]",
9925
- children: /* @__PURE__ */ jsx39(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
10135
+ children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
9926
10136
  }
9927
10137
  ),
9928
- /* @__PURE__ */ jsxs32(SelectContent, { children: [
9929
- /* @__PURE__ */ jsx39(SelectItem, { value: "all", children: "Todas" }),
9930
- /* @__PURE__ */ jsx39(SelectItem, { value: "unanswered", children: "Em branco" }),
9931
- /* @__PURE__ */ jsx39(SelectItem, { value: "answered", children: "Respondidas" })
10138
+ /* @__PURE__ */ jsxs33(SelectContent, { children: [
10139
+ /* @__PURE__ */ jsx40(SelectItem, { value: "all", children: "Todas" }),
10140
+ /* @__PURE__ */ jsx40(SelectItem, { value: "unanswered", children: "Em branco" }),
10141
+ /* @__PURE__ */ jsx40(SelectItem, { value: "answered", children: "Respondidas" })
9932
10142
  ] })
9933
10143
  ] }) })
9934
10144
  ] }),
9935
- /* @__PURE__ */ jsx39("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx39(
10145
+ /* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx40(
9936
10146
  QuizQuestionList,
9937
10147
  {
9938
10148
  filterType,
@@ -9942,7 +10152,7 @@ var QuizFooter = forwardRef19(
9942
10152
  ] })
9943
10153
  }
9944
10154
  ),
9945
- /* @__PURE__ */ jsx39(
10155
+ /* @__PURE__ */ jsx40(
9946
10156
  Modal_default,
9947
10157
  {
9948
10158
  isOpen: modalResolutionOpen,
@@ -9960,40 +10170,40 @@ var QuizBadge = ({
9960
10170
  }) => {
9961
10171
  switch (subtype) {
9962
10172
  case "PROVA" /* PROVA */:
9963
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
10173
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
9964
10174
  case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
9965
10175
  case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
9966
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
10176
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
9967
10177
  case "VESTIBULAR" /* VESTIBULAR */:
9968
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
10178
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
9969
10179
  case "SIMULADO" /* SIMULADO */:
9970
10180
  case "SIMULADAO" /* SIMULADAO */:
9971
10181
  case void 0:
9972
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
10182
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
9973
10183
  default:
9974
- return /* @__PURE__ */ jsx39(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
10184
+ return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
9975
10185
  }
9976
10186
  };
9977
- var QuizResultHeaderTitle = forwardRef19(({ className, ...props }, ref) => {
10187
+ var QuizResultHeaderTitle = forwardRef20(({ className, ...props }, ref) => {
9978
10188
  const { getActiveQuiz } = useQuizStore();
9979
10189
  const activeQuiz = getActiveQuiz();
9980
- return /* @__PURE__ */ jsxs32(
10190
+ return /* @__PURE__ */ jsxs33(
9981
10191
  "div",
9982
10192
  {
9983
10193
  ref,
9984
10194
  className: cn("flex flex-row pt-4 justify-between", className),
9985
10195
  ...props,
9986
10196
  children: [
9987
- /* @__PURE__ */ jsx39("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
9988
- /* @__PURE__ */ jsx39(QuizBadge, { subtype: activeQuiz?.quiz.subtype || void 0 })
10197
+ /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
10198
+ /* @__PURE__ */ jsx40(QuizBadge, { subtype: activeQuiz?.quiz.subtype || void 0 })
9989
10199
  ]
9990
10200
  }
9991
10201
  );
9992
10202
  });
9993
- var QuizResultTitle = forwardRef19(({ className, ...props }, ref) => {
10203
+ var QuizResultTitle = forwardRef20(({ className, ...props }, ref) => {
9994
10204
  const { getQuizTitle } = useQuizStore();
9995
10205
  const quizTitle = getQuizTitle();
9996
- return /* @__PURE__ */ jsx39(
10206
+ return /* @__PURE__ */ jsx40(
9997
10207
  "p",
9998
10208
  {
9999
10209
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -10003,7 +10213,7 @@ var QuizResultTitle = forwardRef19(({ className, ...props }, ref) => {
10003
10213
  }
10004
10214
  );
10005
10215
  });
10006
- var QuizResultPerformance = forwardRef19(
10216
+ var QuizResultPerformance = forwardRef20(
10007
10217
  ({ ...props }, ref) => {
10008
10218
  const {
10009
10219
  getTotalQuestions,
@@ -10045,15 +10255,15 @@ var QuizResultPerformance = forwardRef19(
10045
10255
  });
10046
10256
  }
10047
10257
  const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
10048
- return /* @__PURE__ */ jsxs32(
10258
+ return /* @__PURE__ */ jsxs33(
10049
10259
  "div",
10050
10260
  {
10051
10261
  className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
10052
10262
  ref,
10053
10263
  ...props,
10054
10264
  children: [
10055
- /* @__PURE__ */ jsxs32("div", { className: "relative", children: [
10056
- /* @__PURE__ */ jsx39(
10265
+ /* @__PURE__ */ jsxs33("div", { className: "relative", children: [
10266
+ /* @__PURE__ */ jsx40(
10057
10267
  ProgressCircle_default,
10058
10268
  {
10059
10269
  size: "medium",
@@ -10063,24 +10273,24 @@ var QuizResultPerformance = forwardRef19(
10063
10273
  label: ""
10064
10274
  }
10065
10275
  ),
10066
- /* @__PURE__ */ jsxs32("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
10067
- /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-1 mb-1", children: [
10068
- /* @__PURE__ */ jsx39(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
10069
- /* @__PURE__ */ jsx39("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
10276
+ /* @__PURE__ */ jsxs33("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
10277
+ /* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-1 mb-1", children: [
10278
+ /* @__PURE__ */ jsx40(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
10279
+ /* @__PURE__ */ jsx40("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
10070
10280
  (getQuestionResultStatistics()?.timeSpent ?? 0) * 60
10071
10281
  ) })
10072
10282
  ] }),
10073
- /* @__PURE__ */ jsxs32("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
10283
+ /* @__PURE__ */ jsxs33("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
10074
10284
  getQuestionResultStatistics()?.correctAnswers ?? "--",
10075
10285
  " de",
10076
10286
  " ",
10077
10287
  totalQuestions
10078
10288
  ] }),
10079
- /* @__PURE__ */ jsx39("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
10289
+ /* @__PURE__ */ jsx40("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
10080
10290
  ] })
10081
10291
  ] }),
10082
- /* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-4 w-full", children: [
10083
- /* @__PURE__ */ jsx39(
10292
+ /* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-4 w-full", children: [
10293
+ /* @__PURE__ */ jsx40(
10084
10294
  ProgressBar_default,
10085
10295
  {
10086
10296
  className: "w-full",
@@ -10094,7 +10304,7 @@ var QuizResultPerformance = forwardRef19(
10094
10304
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
10095
10305
  }
10096
10306
  ),
10097
- /* @__PURE__ */ jsx39(
10307
+ /* @__PURE__ */ jsx40(
10098
10308
  ProgressBar_default,
10099
10309
  {
10100
10310
  className: "w-full",
@@ -10108,7 +10318,7 @@ var QuizResultPerformance = forwardRef19(
10108
10318
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
10109
10319
  }
10110
10320
  ),
10111
- /* @__PURE__ */ jsx39(
10321
+ /* @__PURE__ */ jsx40(
10112
10322
  ProgressBar_default,
10113
10323
  {
10114
10324
  className: "w-full",
@@ -10128,7 +10338,7 @@ var QuizResultPerformance = forwardRef19(
10128
10338
  );
10129
10339
  }
10130
10340
  );
10131
- var QuizListResult = forwardRef19(({ className, onSubjectClick, ...props }, ref) => {
10341
+ var QuizListResult = forwardRef20(({ className, onSubjectClick, ...props }, ref) => {
10132
10342
  const { getQuestionsGroupedBySubject } = useQuizStore();
10133
10343
  const groupedQuestions = getQuestionsGroupedBySubject();
10134
10344
  const subjectsStats = Object.entries(groupedQuestions).map(
@@ -10155,9 +10365,9 @@ var QuizListResult = forwardRef19(({ className, onSubjectClick, ...props }, ref)
10155
10365
  };
10156
10366
  }
10157
10367
  );
10158
- return /* @__PURE__ */ jsxs32("section", { ref, className, ...props, children: [
10159
- /* @__PURE__ */ jsx39("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
10160
- /* @__PURE__ */ jsx39("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsx39(
10368
+ return /* @__PURE__ */ jsxs33("section", { ref, className, ...props, children: [
10369
+ /* @__PURE__ */ jsx40("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
10370
+ /* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx40("li", { children: /* @__PURE__ */ jsx40(
10161
10371
  CardResults,
10162
10372
  {
10163
10373
  onClick: () => onSubjectClick?.(subject.subject.id),
@@ -10179,16 +10389,16 @@ var QuizListResultByMateria = ({
10179
10389
  const { getQuestionsGroupedBySubject, getQuestionIndex } = useQuizStore();
10180
10390
  const groupedQuestions = getQuestionsGroupedBySubject();
10181
10391
  const answeredQuestions = groupedQuestions[subject] || [];
10182
- return /* @__PURE__ */ jsxs32("div", { className: "flex flex-col", children: [
10183
- /* @__PURE__ */ jsx39("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx39("p", { className: "text-text-950 font-bold text-2xl", children: answeredQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" }) }),
10184
- /* @__PURE__ */ jsxs32("section", { className: "flex flex-col ", children: [
10185
- /* @__PURE__ */ jsx39("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
10186
- /* @__PURE__ */ jsx39("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
10392
+ return /* @__PURE__ */ jsxs33("div", { className: "flex flex-col", children: [
10393
+ /* @__PURE__ */ jsx40("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-2xl", children: answeredQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" }) }),
10394
+ /* @__PURE__ */ jsxs33("section", { className: "flex flex-col ", children: [
10395
+ /* @__PURE__ */ jsx40("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
10396
+ /* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
10187
10397
  const questionIndex = getQuestionIndex(
10188
10398
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10189
10399
  question.questionId ?? question.id
10190
10400
  );
10191
- return /* @__PURE__ */ jsx39("li", { children: /* @__PURE__ */ jsx39(
10401
+ return /* @__PURE__ */ jsx40("li", { children: /* @__PURE__ */ jsx40(
10192
10402
  CardStatus,
10193
10403
  {
10194
10404
  className: "max-w-full",
@@ -10211,12 +10421,12 @@ var QuizListResultByMateria = ({
10211
10421
  };
10212
10422
 
10213
10423
  // src/components/LoadingModal/loadingModal.tsx
10214
- import { forwardRef as forwardRef20 } from "react";
10215
- import { jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
10216
- var LoadingModal = forwardRef20(
10424
+ import { forwardRef as forwardRef21 } from "react";
10425
+ import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
10426
+ var LoadingModal = forwardRef21(
10217
10427
  ({ open, title = "Titulo...", subtitle = "Subtitulo...", ...props }, ref) => {
10218
10428
  if (!open) return null;
10219
- return /* @__PURE__ */ jsx40(
10429
+ return /* @__PURE__ */ jsx41(
10220
10430
  "div",
10221
10431
  {
10222
10432
  ref,
@@ -10225,8 +10435,8 @@ var LoadingModal = forwardRef20(
10225
10435
  "aria-describedby": "loading-modal-subtitle",
10226
10436
  className: "fixed inset-0 z-50 flex items-center justify-center bg-background/90 backdrop-blur-xs",
10227
10437
  ...props,
10228
- children: /* @__PURE__ */ jsxs33("div", { className: "w-full max-w-[364px] flex flex-col items-center justify-center gap-14", children: [
10229
- /* @__PURE__ */ jsx40("span", { className: "animate-spin", "aria-hidden": "true", children: /* @__PURE__ */ jsxs33(
10438
+ children: /* @__PURE__ */ jsxs34("div", { className: "w-full max-w-[364px] flex flex-col items-center justify-center gap-14", children: [
10439
+ /* @__PURE__ */ jsx41("span", { className: "animate-spin", "aria-hidden": "true", children: /* @__PURE__ */ jsxs34(
10230
10440
  "svg",
10231
10441
  {
10232
10442
  width: "102",
@@ -10237,14 +10447,14 @@ var LoadingModal = forwardRef20(
10237
10447
  "aria-hidden": "true",
10238
10448
  focusable: false,
10239
10449
  children: [
10240
- /* @__PURE__ */ jsx40(
10450
+ /* @__PURE__ */ jsx41(
10241
10451
  "path",
10242
10452
  {
10243
10453
  d: "M101.5 51C101.5 78.8904 78.8904 101.5 51 101.5C23.1096 101.5 0.5 78.8904 0.5 51C0.5 23.1096 23.1096 0.5 51 0.5C78.8904 0.5 101.5 23.1096 101.5 51ZM8.62286 51C8.62286 74.4043 27.5957 93.3771 51 93.3771C74.4043 93.3771 93.3771 74.4043 93.3771 51C93.3771 27.5957 74.4043 8.62286 51 8.62286C27.5957 8.62286 8.62286 27.5957 8.62286 51Z",
10244
10454
  className: "fill-primary-100"
10245
10455
  }
10246
10456
  ),
10247
- /* @__PURE__ */ jsx40(
10457
+ /* @__PURE__ */ jsx41(
10248
10458
  "path",
10249
10459
  {
10250
10460
  d: "M97.4386 51C99.6816 51 101.517 52.8213 101.337 55.0571C100.754 62.2833 98.6212 69.3162 95.0643 75.6696C90.8444 83.207 84.7616 89.536 77.3975 94.0514C70.0333 98.5668 61.6339 101.118 53.0024 101.46C44.371 101.803 35.7959 99.9255 28.0971 96.0078C20.3982 92.0902 13.833 86.2631 9.02917 79.0838C4.22529 71.9045 1.34332 63.6129 0.658804 55.0017C-0.0257159 46.3906 1.51009 37.7479 5.1194 29.8997C8.16173 23.2845 12.5915 17.4202 18.0904 12.6959C19.7917 11.2341 22.3444 11.6457 23.6647 13.459C24.9851 15.2723 24.5702 17.7988 22.8916 19.2866C18.5048 23.1747 14.9608 27.9413 12.4992 33.2937C9.47048 39.8794 8.1817 47.132 8.75612 54.3581C9.33053 61.5841 11.7489 68.542 15.7801 74.5666C19.8113 80.5911 25.3205 85.4809 31.781 88.7684C38.2414 92.0559 45.4372 93.6312 52.6804 93.3438C59.9235 93.0564 66.9718 90.9158 73.1515 87.1267C79.3311 83.3375 84.4355 78.0266 87.9766 71.7015C90.8546 66.561 92.6217 60.8903 93.1827 55.0553C93.3973 52.8225 95.1955 51 97.4386 51Z",
@@ -10254,9 +10464,9 @@ var LoadingModal = forwardRef20(
10254
10464
  ]
10255
10465
  }
10256
10466
  ) }),
10257
- /* @__PURE__ */ jsxs33("span", { className: "flex flex-col gap-4 text-center", children: [
10258
- /* @__PURE__ */ jsx40("p", { id: "loading-modal-title", className: "text-text-950 text-lg", children: title }),
10259
- /* @__PURE__ */ jsx40("p", { id: "loading-modal-subtitle", className: "text-text-600 text-lg", children: subtitle })
10467
+ /* @__PURE__ */ jsxs34("span", { className: "flex flex-col gap-4 text-center", children: [
10468
+ /* @__PURE__ */ jsx41("p", { id: "loading-modal-title", className: "text-text-950 text-lg", children: title }),
10469
+ /* @__PURE__ */ jsx41("p", { id: "loading-modal-subtitle", className: "text-text-600 text-lg", children: subtitle })
10260
10470
  ] })
10261
10471
  ] })
10262
10472
  }
@@ -10267,7 +10477,7 @@ var loadingModal_default = LoadingModal;
10267
10477
 
10268
10478
  // src/components/NotificationCard/NotificationCard.tsx
10269
10479
  import { DotsThreeVertical as DotsThreeVertical3, Bell as Bell2 } from "phosphor-react";
10270
- import { useState as useState18, useEffect as useEffect17 } from "react";
10480
+ import { useState as useState19, useEffect as useEffect17 } from "react";
10271
10481
 
10272
10482
  // src/store/notificationStore.ts
10273
10483
  import { create as create8 } from "zustand";
@@ -10510,14 +10720,14 @@ var createNotificationStore = (apiClient) => {
10510
10720
  };
10511
10721
 
10512
10722
  // src/components/NotificationCard/NotificationCard.tsx
10513
- import { Fragment as Fragment10, jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
10723
+ import { Fragment as Fragment11, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
10514
10724
  var NotificationEmpty = ({
10515
10725
  emptyStateImage,
10516
10726
  emptyStateTitle = "Nenhuma notifica\xE7\xE3o no momento",
10517
10727
  emptyStateDescription = "Voc\xEA est\xE1 em dia com todas as novidades. Volte depois para conferir atualiza\xE7\xF5es!"
10518
10728
  }) => {
10519
- return /* @__PURE__ */ jsxs34("div", { className: "flex flex-col items-center justify-center gap-4 p-6 w-full", children: [
10520
- emptyStateImage && /* @__PURE__ */ jsx41("div", { className: "w-20 h-20 flex items-center justify-center", children: /* @__PURE__ */ jsx41(
10729
+ return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-center justify-center gap-4 p-6 w-full", children: [
10730
+ emptyStateImage && /* @__PURE__ */ jsx42("div", { className: "w-20 h-20 flex items-center justify-center", children: /* @__PURE__ */ jsx42(
10521
10731
  "img",
10522
10732
  {
10523
10733
  src: emptyStateImage,
@@ -10527,17 +10737,17 @@ var NotificationEmpty = ({
10527
10737
  className: "object-contain"
10528
10738
  }
10529
10739
  ) }),
10530
- /* @__PURE__ */ jsx41("h3", { className: "text-xl font-semibold text-text-950 text-center leading-[23px]", children: emptyStateTitle }),
10531
- /* @__PURE__ */ jsx41("p", { className: "text-sm font-normal text-text-400 text-center max-w-[316px] leading-[21px]", children: emptyStateDescription })
10740
+ /* @__PURE__ */ jsx42("h3", { className: "text-xl font-semibold text-text-950 text-center leading-[23px]", children: emptyStateTitle }),
10741
+ /* @__PURE__ */ jsx42("p", { className: "text-sm font-normal text-text-400 text-center max-w-[316px] leading-[21px]", children: emptyStateDescription })
10532
10742
  ] });
10533
10743
  };
10534
10744
  var NotificationHeader = ({
10535
10745
  unreadCount,
10536
10746
  variant = "modal"
10537
10747
  }) => {
10538
- return /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
10539
- variant === "modal" ? /* @__PURE__ */ jsx41(Text_default, { size: "sm", weight: "bold", className: "text-text-950", children: "Notifica\xE7\xF5es" }) : /* @__PURE__ */ jsx41("h3", { className: "text-sm font-semibold text-text-950", children: "Notifica\xE7\xF5es" }),
10540
- unreadCount > 0 && /* @__PURE__ */ jsxs34("span", { className: "px-2 py-1 bg-info-100 text-info-700 text-xs rounded-full", children: [
10748
+ return /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
10749
+ variant === "modal" ? /* @__PURE__ */ jsx42(Text_default, { size: "sm", weight: "bold", className: "text-text-950", children: "Notifica\xE7\xF5es" }) : /* @__PURE__ */ jsx42("h3", { className: "text-sm font-semibold text-text-950", children: "Notifica\xE7\xF5es" }),
10750
+ unreadCount > 0 && /* @__PURE__ */ jsxs35("span", { className: "px-2 py-1 bg-info-100 text-info-700 text-xs rounded-full", children: [
10541
10751
  unreadCount,
10542
10752
  " n\xE3o lidas"
10543
10753
  ] })
@@ -10572,7 +10782,7 @@ var SingleNotificationCard = ({
10572
10782
  onNavigate();
10573
10783
  }
10574
10784
  };
10575
- return /* @__PURE__ */ jsxs34(
10785
+ return /* @__PURE__ */ jsxs35(
10576
10786
  "div",
10577
10787
  {
10578
10788
  className: cn(
@@ -10581,20 +10791,20 @@ var SingleNotificationCard = ({
10581
10791
  className
10582
10792
  ),
10583
10793
  children: [
10584
- /* @__PURE__ */ jsxs34("div", { className: "flex items-center gap-2 w-full", children: [
10585
- !isRead && /* @__PURE__ */ jsx41("div", { className: "w-[7px] h-[7px] bg-info-300 rounded-full flex-shrink-0" }),
10586
- /* @__PURE__ */ jsx41("h3", { className: "font-bold text-sm leading-4 text-text-950 flex-grow", children: title }),
10587
- /* @__PURE__ */ jsxs34(DropdownMenu_default, { children: [
10588
- /* @__PURE__ */ jsx41(
10794
+ /* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 w-full", children: [
10795
+ !isRead && /* @__PURE__ */ jsx42("div", { className: "w-[7px] h-[7px] bg-info-300 rounded-full flex-shrink-0" }),
10796
+ /* @__PURE__ */ jsx42("h3", { className: "font-bold text-sm leading-4 text-text-950 flex-grow", children: title }),
10797
+ /* @__PURE__ */ jsxs35(DropdownMenu_default, { children: [
10798
+ /* @__PURE__ */ jsx42(
10589
10799
  DropdownMenuTrigger,
10590
10800
  {
10591
10801
  className: "flex-shrink-0 inline-flex items-center justify-center font-medium bg-transparent text-text-950 cursor-pointer hover:bg-info-50 w-6 h-6 rounded-lg",
10592
10802
  "aria-label": "Menu de a\xE7\xF5es",
10593
- children: /* @__PURE__ */ jsx41(DotsThreeVertical3, { size: 24 })
10803
+ children: /* @__PURE__ */ jsx42(DotsThreeVertical3, { size: 24 })
10594
10804
  }
10595
10805
  ),
10596
- /* @__PURE__ */ jsxs34(DropdownMenuContent, { align: "end", className: "min-w-[160px]", children: [
10597
- !isRead && /* @__PURE__ */ jsx41(
10806
+ /* @__PURE__ */ jsxs35(DropdownMenuContent, { align: "end", className: "min-w-[160px]", children: [
10807
+ !isRead && /* @__PURE__ */ jsx42(
10598
10808
  DropdownMenuItem,
10599
10809
  {
10600
10810
  onClick: handleMarkAsRead,
@@ -10602,14 +10812,14 @@ var SingleNotificationCard = ({
10602
10812
  children: "Marcar como lida"
10603
10813
  }
10604
10814
  ),
10605
- /* @__PURE__ */ jsx41(DropdownMenuItem, { onClick: handleDelete, className: "text-error-600", children: "Deletar" })
10815
+ /* @__PURE__ */ jsx42(DropdownMenuItem, { onClick: handleDelete, className: "text-error-600", children: "Deletar" })
10606
10816
  ] })
10607
10817
  ] })
10608
10818
  ] }),
10609
- /* @__PURE__ */ jsx41("p", { className: "text-sm leading-[21px] text-text-800 w-full", children: message }),
10610
- /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between w-full", children: [
10611
- /* @__PURE__ */ jsx41("span", { className: "text-sm font-medium text-text-400", children: time }),
10612
- onNavigate && actionLabel && /* @__PURE__ */ jsx41(
10819
+ /* @__PURE__ */ jsx42("p", { className: "text-sm leading-[21px] text-text-800 w-full", children: message }),
10820
+ /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between w-full", children: [
10821
+ /* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-text-400", children: time }),
10822
+ onNavigate && actionLabel && /* @__PURE__ */ jsx42(
10613
10823
  "button",
10614
10824
  {
10615
10825
  type: "button",
@@ -10636,9 +10846,9 @@ var NotificationList = ({
10636
10846
  className
10637
10847
  }) => {
10638
10848
  if (error) {
10639
- return /* @__PURE__ */ jsxs34("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: [
10640
- /* @__PURE__ */ jsx41("p", { className: "text-sm text-error-600", children: error }),
10641
- onRetry && /* @__PURE__ */ jsx41(
10849
+ return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: [
10850
+ /* @__PURE__ */ jsx42("p", { className: "text-sm text-error-600", children: error }),
10851
+ onRetry && /* @__PURE__ */ jsx42(
10642
10852
  "button",
10643
10853
  {
10644
10854
  type: "button",
@@ -10650,8 +10860,8 @@ var NotificationList = ({
10650
10860
  ] });
10651
10861
  }
10652
10862
  if (loading) {
10653
- return /* @__PURE__ */ jsx41("div", { className: "flex flex-col gap-0 w-full", children: ["skeleton-first", "skeleton-second", "skeleton-third"].map(
10654
- (skeletonId) => /* @__PURE__ */ jsx41(
10863
+ return /* @__PURE__ */ jsx42("div", { className: "flex flex-col gap-0 w-full", children: ["skeleton-first", "skeleton-second", "skeleton-third"].map(
10864
+ (skeletonId) => /* @__PURE__ */ jsx42(
10655
10865
  SkeletonCard,
10656
10866
  {
10657
10867
  className: "p-4 border-b border-border-200"
@@ -10661,11 +10871,11 @@ var NotificationList = ({
10661
10871
  ) });
10662
10872
  }
10663
10873
  if (!groupedNotifications || groupedNotifications.length === 0) {
10664
- return renderEmpty ? /* @__PURE__ */ jsx41("div", { className: "w-full", children: renderEmpty() }) : /* @__PURE__ */ jsx41(NotificationEmpty, {});
10874
+ return renderEmpty ? /* @__PURE__ */ jsx42("div", { className: "w-full", children: renderEmpty() }) : /* @__PURE__ */ jsx42(NotificationEmpty, {});
10665
10875
  }
10666
- return /* @__PURE__ */ jsx41("div", { className: cn("flex flex-col gap-0 w-full", className), children: groupedNotifications.map((group, idx) => /* @__PURE__ */ jsxs34("div", { className: "flex flex-col", children: [
10667
- /* @__PURE__ */ jsx41("div", { className: "flex items-end px-4 py-6 pb-4", children: /* @__PURE__ */ jsx41("h4", { className: "text-lg font-bold text-text-500 flex-grow", children: group.label }) }),
10668
- group.notifications.map((notification) => /* @__PURE__ */ jsx41(
10876
+ return /* @__PURE__ */ jsx42("div", { className: cn("flex flex-col gap-0 w-full", className), children: groupedNotifications.map((group, idx) => /* @__PURE__ */ jsxs35("div", { className: "flex flex-col", children: [
10877
+ /* @__PURE__ */ jsx42("div", { className: "flex items-end px-4 py-6 pb-4", children: /* @__PURE__ */ jsx42("h4", { className: "text-lg font-bold text-text-500 flex-grow", children: group.label }) }),
10878
+ group.notifications.map((notification) => /* @__PURE__ */ jsx42(
10669
10879
  SingleNotificationCard,
10670
10880
  {
10671
10881
  title: notification.title,
@@ -10706,7 +10916,7 @@ var NotificationCenter = ({
10706
10916
  className
10707
10917
  }) => {
10708
10918
  const { isMobile } = useMobile();
10709
- const [isModalOpen, setIsModalOpen] = useState18(false);
10919
+ const [isModalOpen, setIsModalOpen] = useState19(false);
10710
10920
  const handleMobileClick = () => {
10711
10921
  setIsModalOpen(true);
10712
10922
  onFetchNotifications?.();
@@ -10723,7 +10933,7 @@ var NotificationCenter = ({
10723
10933
  onCleanup?.();
10724
10934
  onNavigateById?.(entityType, entityId);
10725
10935
  };
10726
- const renderEmptyState = () => /* @__PURE__ */ jsx41(
10936
+ const renderEmptyState = () => /* @__PURE__ */ jsx42(
10727
10937
  NotificationEmpty,
10728
10938
  {
10729
10939
  emptyStateImage,
@@ -10732,17 +10942,17 @@ var NotificationCenter = ({
10732
10942
  }
10733
10943
  );
10734
10944
  if (isMobile) {
10735
- return /* @__PURE__ */ jsxs34(Fragment10, { children: [
10736
- /* @__PURE__ */ jsx41(
10945
+ return /* @__PURE__ */ jsxs35(Fragment11, { children: [
10946
+ /* @__PURE__ */ jsx42(
10737
10947
  IconButton_default,
10738
10948
  {
10739
10949
  active: isModalOpen,
10740
10950
  onClick: handleMobileClick,
10741
- icon: /* @__PURE__ */ jsx41(Bell2, { size: 24, className: "text-primary" }),
10951
+ icon: /* @__PURE__ */ jsx42(Bell2, { size: 24, className: "text-primary" }),
10742
10952
  className
10743
10953
  }
10744
10954
  ),
10745
- /* @__PURE__ */ jsx41(
10955
+ /* @__PURE__ */ jsx42(
10746
10956
  Modal_default,
10747
10957
  {
10748
10958
  isOpen: isModalOpen,
@@ -10752,10 +10962,10 @@ var NotificationCenter = ({
10752
10962
  hideCloseButton: false,
10753
10963
  closeOnBackdropClick: true,
10754
10964
  closeOnEscape: true,
10755
- children: /* @__PURE__ */ jsxs34("div", { className: "flex flex-col h-full max-h-[80vh]", children: [
10756
- /* @__PURE__ */ jsx41("div", { className: "px-0 pb-3 border-b border-border-200", children: /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
10757
- /* @__PURE__ */ jsx41(NotificationHeader, { unreadCount, variant: "modal" }),
10758
- unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx41(
10965
+ children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col h-full max-h-[80vh]", children: [
10966
+ /* @__PURE__ */ jsx42("div", { className: "px-0 pb-3 border-b border-border-200", children: /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
10967
+ /* @__PURE__ */ jsx42(NotificationHeader, { unreadCount, variant: "modal" }),
10968
+ unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx42(
10759
10969
  "button",
10760
10970
  {
10761
10971
  type: "button",
@@ -10765,7 +10975,7 @@ var NotificationCenter = ({
10765
10975
  }
10766
10976
  )
10767
10977
  ] }) }),
10768
- /* @__PURE__ */ jsx41("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx41(
10978
+ /* @__PURE__ */ jsx42("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx42(
10769
10979
  NotificationList,
10770
10980
  {
10771
10981
  groupedNotifications,
@@ -10788,13 +10998,13 @@ var NotificationCenter = ({
10788
10998
  )
10789
10999
  ] });
10790
11000
  }
10791
- return /* @__PURE__ */ jsxs34(DropdownMenu_default, { children: [
10792
- /* @__PURE__ */ jsx41(DropdownMenuTrigger, { className: "text-primary cursor-pointer", children: /* @__PURE__ */ jsx41(
11001
+ return /* @__PURE__ */ jsxs35(DropdownMenu_default, { children: [
11002
+ /* @__PURE__ */ jsx42(DropdownMenuTrigger, { className: "text-primary cursor-pointer", children: /* @__PURE__ */ jsx42(
10793
11003
  IconButton_default,
10794
11004
  {
10795
11005
  active: isActive,
10796
11006
  onClick: handleDesktopClick,
10797
- icon: /* @__PURE__ */ jsx41(
11007
+ icon: /* @__PURE__ */ jsx42(
10798
11008
  Bell2,
10799
11009
  {
10800
11010
  size: 24,
@@ -10804,22 +11014,22 @@ var NotificationCenter = ({
10804
11014
  className
10805
11015
  }
10806
11016
  ) }),
10807
- /* @__PURE__ */ jsx41(
11017
+ /* @__PURE__ */ jsx42(
10808
11018
  DropdownMenuContent,
10809
11019
  {
10810
11020
  className: "min-w-[320px] max-w-[400px] max-h-[500px] overflow-hidden",
10811
11021
  side: "bottom",
10812
11022
  align: "end",
10813
- children: /* @__PURE__ */ jsxs34("div", { className: "flex flex-col", children: [
10814
- /* @__PURE__ */ jsx41("div", { className: "px-4 py-3 border-b border-border-200", children: /* @__PURE__ */ jsxs34("div", { className: "flex items-center justify-between", children: [
10815
- /* @__PURE__ */ jsx41(
11023
+ children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col", children: [
11024
+ /* @__PURE__ */ jsx42("div", { className: "px-4 py-3 border-b border-border-200", children: /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
11025
+ /* @__PURE__ */ jsx42(
10816
11026
  NotificationHeader,
10817
11027
  {
10818
11028
  unreadCount,
10819
11029
  variant: "dropdown"
10820
11030
  }
10821
11031
  ),
10822
- unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx41(
11032
+ unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx42(
10823
11033
  "button",
10824
11034
  {
10825
11035
  type: "button",
@@ -10829,7 +11039,7 @@ var NotificationCenter = ({
10829
11039
  }
10830
11040
  )
10831
11041
  ] }) }),
10832
- /* @__PURE__ */ jsx41("div", { className: "max-h-[350px] overflow-y-auto", children: /* @__PURE__ */ jsx41(
11042
+ /* @__PURE__ */ jsx42("div", { className: "max-h-[350px] overflow-y-auto", children: /* @__PURE__ */ jsx42(
10833
11043
  NotificationList,
10834
11044
  {
10835
11045
  groupedNotifications,
@@ -10851,7 +11061,7 @@ var NotificationCenter = ({
10851
11061
  var NotificationCard = (props) => {
10852
11062
  switch (props.mode) {
10853
11063
  case "single":
10854
- return /* @__PURE__ */ jsx41(
11064
+ return /* @__PURE__ */ jsx42(
10855
11065
  SingleNotificationCard,
10856
11066
  {
10857
11067
  title: props.title,
@@ -10866,7 +11076,7 @@ var NotificationCard = (props) => {
10866
11076
  }
10867
11077
  );
10868
11078
  case "list":
10869
- return /* @__PURE__ */ jsx41(
11079
+ return /* @__PURE__ */ jsx42(
10870
11080
  NotificationList,
10871
11081
  {
10872
11082
  groupedNotifications: props.groupedNotifications ?? (props.notifications ? [
@@ -10887,9 +11097,9 @@ var NotificationCard = (props) => {
10887
11097
  }
10888
11098
  );
10889
11099
  case "center":
10890
- return /* @__PURE__ */ jsx41(NotificationCenter, { ...props });
11100
+ return /* @__PURE__ */ jsx42(NotificationCenter, { ...props });
10891
11101
  default:
10892
- return /* @__PURE__ */ jsx41("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: /* @__PURE__ */ jsx41("p", { className: "text-sm text-text-600", children: "Modo de notifica\xE7\xE3o n\xE3o reconhecido" }) });
11102
+ return /* @__PURE__ */ jsx42("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: /* @__PURE__ */ jsx42("p", { className: "text-sm text-text-600", children: "Modo de notifica\xE7\xE3o n\xE3o reconhecido" }) });
10893
11103
  }
10894
11104
  };
10895
11105
  var NotificationCard_default = NotificationCard;
@@ -10900,7 +11110,7 @@ var createUseNotificationStore = (apiClient) => {
10900
11110
  };
10901
11111
 
10902
11112
  // src/hooks/useNotifications.ts
10903
- import { useCallback as useCallback5 } from "react";
11113
+ import { useCallback as useCallback6 } from "react";
10904
11114
  var createUseNotifications = (apiClient) => {
10905
11115
  const useNotificationStore = createUseNotificationStore(apiClient);
10906
11116
  return () => {
@@ -10919,7 +11129,7 @@ var createUseNotifications = (apiClient) => {
10919
11129
  resetError,
10920
11130
  getGroupedNotifications
10921
11131
  } = useNotificationStore();
10922
- const handleNavigate = useCallback5(
11132
+ const handleNavigate = useCallback6(
10923
11133
  (entityType, entityId, onAfterNavigate) => {
10924
11134
  if (entityType && entityId) {
10925
11135
  switch (entityType.toUpperCase()) {
@@ -10937,7 +11147,7 @@ var createUseNotifications = (apiClient) => {
10937
11147
  },
10938
11148
  []
10939
11149
  );
10940
- const getActionLabel = useCallback5(
11150
+ const getActionLabel = useCallback6(
10941
11151
  (entityType) => {
10942
11152
  if (!entityType) return void 0;
10943
11153
  switch (entityType.toUpperCase()) {
@@ -10951,7 +11161,7 @@ var createUseNotifications = (apiClient) => {
10951
11161
  },
10952
11162
  []
10953
11163
  );
10954
- const markAsReadAndNavigate = useCallback5(
11164
+ const markAsReadAndNavigate = useCallback6(
10955
11165
  async (id, entityType, entityId, onAfterNavigate) => {
10956
11166
  await markAsRead(id);
10957
11167
  if (entityType && entityId) {
@@ -10960,11 +11170,11 @@ var createUseNotifications = (apiClient) => {
10960
11170
  },
10961
11171
  [markAsRead, handleNavigate]
10962
11172
  );
10963
- const refreshNotifications = useCallback5(async () => {
11173
+ const refreshNotifications = useCallback6(async () => {
10964
11174
  resetError();
10965
11175
  await fetchNotifications();
10966
11176
  }, [resetError, fetchNotifications]);
10967
- const formatNotification = useCallback5(
11177
+ const formatNotification = useCallback6(
10968
11178
  (notification) => ({
10969
11179
  ...notification,
10970
11180
  time: formatTimeAgo(notification.createdAt),
@@ -10973,7 +11183,7 @@ var createUseNotifications = (apiClient) => {
10973
11183
  }),
10974
11184
  []
10975
11185
  );
10976
- const getFormattedGroupedNotifications = useCallback5(() => {
11186
+ const getFormattedGroupedNotifications = useCallback6(() => {
10977
11187
  const groups = getGroupedNotifications();
10978
11188
  return groups.map((group) => ({
10979
11189
  ...group,
@@ -11108,6 +11318,7 @@ export {
11108
11318
  Table_default as Table,
11109
11319
  Text_default as Text,
11110
11320
  TextArea_default as TextArea,
11321
+ ThemeToggle,
11111
11322
  Toast_default as Toast,
11112
11323
  Toaster_default as Toaster,
11113
11324
  VideoPlayer_default as VideoPlayer,