analytica-frontend-lib 1.0.85 → 1.0.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (291) hide show
  1. package/dist/Accordation/index.js +0 -1
  2. package/dist/Accordation/index.mjs +0 -1
  3. package/dist/Alert/index.js +0 -1
  4. package/dist/Alert/index.mjs +0 -1
  5. package/dist/AlertDialog/index.js +0 -1
  6. package/dist/AlertDialog/index.mjs +0 -1
  7. package/dist/Alternative/index.js +0 -1
  8. package/dist/Alternative/index.mjs +0 -1
  9. package/dist/Auth/AuthProvider/index.js +0 -1
  10. package/dist/Auth/AuthProvider/index.mjs +0 -1
  11. package/dist/Auth/ProtectedRoute/index.js +0 -1
  12. package/dist/Auth/ProtectedRoute/index.mjs +0 -1
  13. package/dist/Auth/PublicRoute/index.js +0 -1
  14. package/dist/Auth/PublicRoute/index.mjs +0 -1
  15. package/dist/Auth/getRootDomain/index.js +0 -1
  16. package/dist/Auth/getRootDomain/index.mjs +0 -1
  17. package/dist/Auth/index.js +0 -1
  18. package/dist/Auth/index.mjs +0 -1
  19. package/dist/Auth/useApiConfig/index.js +0 -1
  20. package/dist/Auth/useApiConfig/index.mjs +0 -1
  21. package/dist/Auth/useAuth/index.js +0 -1
  22. package/dist/Auth/useAuth/index.mjs +0 -1
  23. package/dist/Auth/useAuthGuard/index.js +0 -1
  24. package/dist/Auth/useAuthGuard/index.mjs +0 -1
  25. package/dist/Auth/useRouteAuth/index.js +0 -1
  26. package/dist/Auth/useRouteAuth/index.mjs +0 -1
  27. package/dist/Auth/useUrlAuthentication/index.js +0 -1
  28. package/dist/Auth/useUrlAuthentication/index.mjs +0 -1
  29. package/dist/Auth/withAuth/index.js +0 -1
  30. package/dist/Auth/withAuth/index.mjs +0 -1
  31. package/dist/Auth/zustandAuthAdapter/index.js +0 -1
  32. package/dist/Auth/zustandAuthAdapter/index.mjs +0 -1
  33. package/dist/Badge/index.js +0 -1
  34. package/dist/Badge/index.mjs +0 -1
  35. package/dist/Button/index.js +0 -1
  36. package/dist/Button/index.mjs +0 -1
  37. package/dist/Calendar/index.js +0 -1
  38. package/dist/Calendar/index.mjs +0 -1
  39. package/dist/Card/index.js +0 -1
  40. package/dist/Card/index.mjs +0 -1
  41. package/dist/CheckBox/index.js +0 -1
  42. package/dist/CheckBox/index.mjs +0 -1
  43. package/dist/Chips/index.js +0 -1
  44. package/dist/Chips/index.mjs +0 -1
  45. package/dist/Divider/index.js +0 -1
  46. package/dist/Divider/index.mjs +0 -1
  47. package/dist/DropdownMenu/index.js +0 -1
  48. package/dist/DropdownMenu/index.mjs +0 -1
  49. package/dist/IconButton/index.js +0 -1
  50. package/dist/IconButton/index.mjs +0 -1
  51. package/dist/IconRoundedButton/index.js +0 -1
  52. package/dist/IconRoundedButton/index.mjs +0 -1
  53. package/dist/Input/index.js +0 -1
  54. package/dist/Input/index.mjs +0 -1
  55. package/dist/Menu/index.js +0 -1
  56. package/dist/Menu/index.mjs +0 -1
  57. package/dist/Modal/index.js +0 -1
  58. package/dist/Modal/index.mjs +0 -1
  59. package/dist/MultipleChoice/index.js +660 -0
  60. package/dist/MultipleChoice/index.mjs +647 -0
  61. package/dist/NavButton/index.js +0 -1
  62. package/dist/NavButton/index.mjs +0 -1
  63. package/dist/NotFound/index.js +0 -1
  64. package/dist/NotFound/index.mjs +0 -1
  65. package/dist/ProgressBar/index.js +0 -1
  66. package/dist/ProgressBar/index.mjs +0 -1
  67. package/dist/ProgressCircle/index.js +0 -1
  68. package/dist/ProgressCircle/index.mjs +0 -1
  69. package/dist/Quiz/index.js +957 -298
  70. package/dist/Quiz/index.mjs +974 -297
  71. package/dist/Quiz/useQuizStore/index.js +79 -35
  72. package/dist/Quiz/useQuizStore/index.mjs +79 -35
  73. package/dist/Radio/index.js +0 -1
  74. package/dist/Radio/index.mjs +0 -1
  75. package/dist/Select/index.js +2 -3
  76. package/dist/Select/index.mjs +2 -3
  77. package/dist/SelectionButton/index.js +0 -1
  78. package/dist/SelectionButton/index.mjs +0 -1
  79. package/dist/Skeleton/index.js +0 -1
  80. package/dist/Skeleton/index.mjs +0 -1
  81. package/dist/Stepper/index.js +0 -1
  82. package/dist/Stepper/index.mjs +0 -1
  83. package/dist/Table/index.js +0 -1
  84. package/dist/Table/index.mjs +0 -1
  85. package/dist/Text/index.js +0 -1
  86. package/dist/Text/index.mjs +0 -1
  87. package/dist/TextArea/index.js +0 -1
  88. package/dist/TextArea/index.mjs +0 -1
  89. package/dist/Toast/ToastStore/index.js +0 -1
  90. package/dist/Toast/ToastStore/index.mjs +0 -1
  91. package/dist/Toast/Toaster/index.js +0 -1
  92. package/dist/Toast/Toaster/index.mjs +0 -1
  93. package/dist/Toast/index.js +0 -1
  94. package/dist/Toast/index.mjs +0 -1
  95. package/dist/index.css +46 -1
  96. package/dist/index.js +1399 -937
  97. package/dist/index.mjs +1340 -868
  98. package/dist/styles.css +46 -1
  99. package/package.json +4 -2
  100. package/dist/Accordation/index.d.mts +0 -12
  101. package/dist/Accordation/index.d.ts +0 -12
  102. package/dist/Accordation/index.js.map +0 -1
  103. package/dist/Accordation/index.mjs.map +0 -1
  104. package/dist/Alert/index.d.mts +0 -13
  105. package/dist/Alert/index.d.ts +0 -13
  106. package/dist/Alert/index.js.map +0 -1
  107. package/dist/Alert/index.mjs.map +0 -1
  108. package/dist/AlertDialog/index.d.mts +0 -36
  109. package/dist/AlertDialog/index.d.ts +0 -36
  110. package/dist/AlertDialog/index.js.map +0 -1
  111. package/dist/AlertDialog/index.mjs.map +0 -1
  112. package/dist/Alternative/index.d.mts +0 -81
  113. package/dist/Alternative/index.d.ts +0 -81
  114. package/dist/Alternative/index.js.map +0 -1
  115. package/dist/Alternative/index.mjs.map +0 -1
  116. package/dist/Auth/AuthProvider/index.d.mts +0 -3
  117. package/dist/Auth/AuthProvider/index.d.ts +0 -3
  118. package/dist/Auth/AuthProvider/index.js.map +0 -1
  119. package/dist/Auth/AuthProvider/index.mjs.map +0 -1
  120. package/dist/Auth/ProtectedRoute/index.d.mts +0 -3
  121. package/dist/Auth/ProtectedRoute/index.d.ts +0 -3
  122. package/dist/Auth/ProtectedRoute/index.js.map +0 -1
  123. package/dist/Auth/ProtectedRoute/index.mjs.map +0 -1
  124. package/dist/Auth/PublicRoute/index.d.mts +0 -3
  125. package/dist/Auth/PublicRoute/index.d.ts +0 -3
  126. package/dist/Auth/PublicRoute/index.js.map +0 -1
  127. package/dist/Auth/PublicRoute/index.mjs.map +0 -1
  128. package/dist/Auth/getRootDomain/index.d.mts +0 -3
  129. package/dist/Auth/getRootDomain/index.d.ts +0 -3
  130. package/dist/Auth/getRootDomain/index.js.map +0 -1
  131. package/dist/Auth/getRootDomain/index.mjs.map +0 -1
  132. package/dist/Auth/index.d.mts +0 -312
  133. package/dist/Auth/index.d.ts +0 -312
  134. package/dist/Auth/index.js.map +0 -1
  135. package/dist/Auth/index.mjs.map +0 -1
  136. package/dist/Auth/useApiConfig/index.d.mts +0 -43
  137. package/dist/Auth/useApiConfig/index.d.ts +0 -43
  138. package/dist/Auth/useApiConfig/index.js.map +0 -1
  139. package/dist/Auth/useApiConfig/index.mjs.map +0 -1
  140. package/dist/Auth/useAuth/index.d.mts +0 -3
  141. package/dist/Auth/useAuth/index.d.ts +0 -3
  142. package/dist/Auth/useAuth/index.js.map +0 -1
  143. package/dist/Auth/useAuth/index.mjs.map +0 -1
  144. package/dist/Auth/useAuthGuard/index.d.mts +0 -3
  145. package/dist/Auth/useAuthGuard/index.d.ts +0 -3
  146. package/dist/Auth/useAuthGuard/index.js.map +0 -1
  147. package/dist/Auth/useAuthGuard/index.mjs.map +0 -1
  148. package/dist/Auth/useRouteAuth/index.d.mts +0 -3
  149. package/dist/Auth/useRouteAuth/index.d.ts +0 -3
  150. package/dist/Auth/useRouteAuth/index.js.map +0 -1
  151. package/dist/Auth/useRouteAuth/index.mjs.map +0 -1
  152. package/dist/Auth/useUrlAuthentication/index.d.mts +0 -58
  153. package/dist/Auth/useUrlAuthentication/index.d.ts +0 -58
  154. package/dist/Auth/useUrlAuthentication/index.js.map +0 -1
  155. package/dist/Auth/useUrlAuthentication/index.mjs.map +0 -1
  156. package/dist/Auth/withAuth/index.d.mts +0 -3
  157. package/dist/Auth/withAuth/index.d.ts +0 -3
  158. package/dist/Auth/withAuth/index.js.map +0 -1
  159. package/dist/Auth/withAuth/index.mjs.map +0 -1
  160. package/dist/Auth/zustandAuthAdapter/index.d.mts +0 -75
  161. package/dist/Auth/zustandAuthAdapter/index.d.ts +0 -75
  162. package/dist/Auth/zustandAuthAdapter/index.js.map +0 -1
  163. package/dist/Auth/zustandAuthAdapter/index.mjs.map +0 -1
  164. package/dist/Badge/index.d.mts +0 -46
  165. package/dist/Badge/index.d.ts +0 -46
  166. package/dist/Badge/index.js.map +0 -1
  167. package/dist/Badge/index.mjs.map +0 -1
  168. package/dist/Button/index.d.mts +0 -45
  169. package/dist/Button/index.d.ts +0 -45
  170. package/dist/Button/index.js.map +0 -1
  171. package/dist/Button/index.mjs.map +0 -1
  172. package/dist/Calendar/index.d.mts +0 -60
  173. package/dist/Calendar/index.d.ts +0 -60
  174. package/dist/Calendar/index.js.map +0 -1
  175. package/dist/Calendar/index.mjs.map +0 -1
  176. package/dist/Card/index.d.mts +0 -150
  177. package/dist/Card/index.d.ts +0 -150
  178. package/dist/Card/index.js.map +0 -1
  179. package/dist/Card/index.mjs.map +0 -1
  180. package/dist/CheckBox/index.d.mts +0 -74
  181. package/dist/CheckBox/index.d.ts +0 -74
  182. package/dist/CheckBox/index.js.map +0 -1
  183. package/dist/CheckBox/index.mjs.map +0 -1
  184. package/dist/Chips/index.d.mts +0 -41
  185. package/dist/Chips/index.d.ts +0 -41
  186. package/dist/Chips/index.js.map +0 -1
  187. package/dist/Chips/index.mjs.map +0 -1
  188. package/dist/Divider/index.d.mts +0 -32
  189. package/dist/Divider/index.d.ts +0 -32
  190. package/dist/Divider/index.js.map +0 -1
  191. package/dist/Divider/index.mjs.map +0 -1
  192. package/dist/DropdownMenu/index.d.mts +0 -68
  193. package/dist/DropdownMenu/index.d.ts +0 -68
  194. package/dist/DropdownMenu/index.js.map +0 -1
  195. package/dist/DropdownMenu/index.mjs.map +0 -1
  196. package/dist/IconButton/index.d.mts +0 -76
  197. package/dist/IconButton/index.d.ts +0 -76
  198. package/dist/IconButton/index.js.map +0 -1
  199. package/dist/IconButton/index.mjs.map +0 -1
  200. package/dist/IconRoundedButton/index.d.mts +0 -34
  201. package/dist/IconRoundedButton/index.d.ts +0 -34
  202. package/dist/IconRoundedButton/index.js.map +0 -1
  203. package/dist/IconRoundedButton/index.mjs.map +0 -1
  204. package/dist/Input/index.d.mts +0 -27
  205. package/dist/Input/index.d.ts +0 -27
  206. package/dist/Input/index.js.map +0 -1
  207. package/dist/Input/index.mjs.map +0 -1
  208. package/dist/Menu/index.d.mts +0 -48
  209. package/dist/Menu/index.d.ts +0 -48
  210. package/dist/Menu/index.js.map +0 -1
  211. package/dist/Menu/index.mjs.map +0 -1
  212. package/dist/Modal/index.d.mts +0 -66
  213. package/dist/Modal/index.d.ts +0 -66
  214. package/dist/Modal/index.js.map +0 -1
  215. package/dist/Modal/index.mjs.map +0 -1
  216. package/dist/NavButton/index.d.mts +0 -57
  217. package/dist/NavButton/index.d.ts +0 -57
  218. package/dist/NavButton/index.js.map +0 -1
  219. package/dist/NavButton/index.mjs.map +0 -1
  220. package/dist/NotFound/index.d.mts +0 -58
  221. package/dist/NotFound/index.d.ts +0 -58
  222. package/dist/NotFound/index.js.map +0 -1
  223. package/dist/NotFound/index.mjs.map +0 -1
  224. package/dist/ProgressBar/index.d.mts +0 -95
  225. package/dist/ProgressBar/index.d.ts +0 -95
  226. package/dist/ProgressBar/index.js.map +0 -1
  227. package/dist/ProgressBar/index.mjs.map +0 -1
  228. package/dist/ProgressCircle/index.d.mts +0 -60
  229. package/dist/ProgressCircle/index.d.ts +0 -60
  230. package/dist/ProgressCircle/index.js.map +0 -1
  231. package/dist/ProgressCircle/index.mjs.map +0 -1
  232. package/dist/Quiz/index.d.mts +0 -52
  233. package/dist/Quiz/index.d.ts +0 -52
  234. package/dist/Quiz/index.js.map +0 -1
  235. package/dist/Quiz/index.mjs.map +0 -1
  236. package/dist/Quiz/useQuizStore/index.d.mts +0 -140
  237. package/dist/Quiz/useQuizStore/index.d.ts +0 -140
  238. package/dist/Quiz/useQuizStore/index.js.map +0 -1
  239. package/dist/Quiz/useQuizStore/index.mjs.map +0 -1
  240. package/dist/Radio/index.d.mts +0 -203
  241. package/dist/Radio/index.d.ts +0 -203
  242. package/dist/Radio/index.js.map +0 -1
  243. package/dist/Radio/index.mjs.map +0 -1
  244. package/dist/Select/index.d.mts +0 -58
  245. package/dist/Select/index.d.ts +0 -58
  246. package/dist/Select/index.js.map +0 -1
  247. package/dist/Select/index.mjs.map +0 -1
  248. package/dist/SelectionButton/index.d.mts +0 -57
  249. package/dist/SelectionButton/index.d.ts +0 -57
  250. package/dist/SelectionButton/index.js.map +0 -1
  251. package/dist/SelectionButton/index.mjs.map +0 -1
  252. package/dist/Skeleton/index.d.mts +0 -40
  253. package/dist/Skeleton/index.d.ts +0 -40
  254. package/dist/Skeleton/index.js.map +0 -1
  255. package/dist/Skeleton/index.mjs.map +0 -1
  256. package/dist/Stepper/index.d.mts +0 -169
  257. package/dist/Stepper/index.d.ts +0 -169
  258. package/dist/Stepper/index.js.map +0 -1
  259. package/dist/Stepper/index.mjs.map +0 -1
  260. package/dist/Table/index.d.mts +0 -17
  261. package/dist/Table/index.d.ts +0 -17
  262. package/dist/Table/index.js.map +0 -1
  263. package/dist/Table/index.mjs.map +0 -1
  264. package/dist/Text/index.d.mts +0 -58
  265. package/dist/Text/index.d.ts +0 -58
  266. package/dist/Text/index.js.map +0 -1
  267. package/dist/Text/index.mjs.map +0 -1
  268. package/dist/TextArea/index.d.mts +0 -70
  269. package/dist/TextArea/index.d.ts +0 -70
  270. package/dist/TextArea/index.js.map +0 -1
  271. package/dist/TextArea/index.mjs.map +0 -1
  272. package/dist/Toast/ToastStore/index.d.mts +0 -19
  273. package/dist/Toast/ToastStore/index.d.ts +0 -19
  274. package/dist/Toast/ToastStore/index.js.map +0 -1
  275. package/dist/Toast/ToastStore/index.mjs.map +0 -1
  276. package/dist/Toast/Toaster/index.d.mts +0 -16
  277. package/dist/Toast/Toaster/index.d.ts +0 -16
  278. package/dist/Toast/Toaster/index.js.map +0 -1
  279. package/dist/Toast/Toaster/index.mjs.map +0 -1
  280. package/dist/Toast/index.d.mts +0 -17
  281. package/dist/Toast/index.d.ts +0 -17
  282. package/dist/Toast/index.js.map +0 -1
  283. package/dist/Toast/index.mjs.map +0 -1
  284. package/dist/index.css.map +0 -1
  285. package/dist/index.d.mts +0 -41
  286. package/dist/index.d.ts +0 -41
  287. package/dist/index.js.map +0 -1
  288. package/dist/index.mjs.map +0 -1
  289. package/dist/styles.css.map +0 -1
  290. package/dist/styles.d.mts +0 -2
  291. package/dist/styles.d.ts +0 -2
package/dist/index.mjs CHANGED
@@ -803,10 +803,9 @@ var CheckBox = forwardRef5(
803
803
  CheckBox.displayName = "CheckBox";
804
804
  var CheckBox_default = CheckBox;
805
805
 
806
- // src/components/Radio/Radio.tsx
806
+ // src/components/CheckBox/CheckboxList.tsx
807
807
  import {
808
808
  forwardRef as forwardRef6,
809
- useState as useState2,
810
809
  useId as useId2,
811
810
  useEffect,
812
811
  useRef,
@@ -815,7 +814,152 @@ import {
815
814
  isValidElement
816
815
  } from "react";
817
816
  import { create, useStore } from "zustand";
818
- import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
817
+ import { jsx as jsx11 } from "react/jsx-runtime";
818
+ var createCheckboxListStore = (name, defaultValues, disabled, onValuesChange) => create((set, get) => ({
819
+ values: defaultValues,
820
+ setValues: (values) => {
821
+ if (!get().disabled) {
822
+ set({ values });
823
+ get().onValuesChange?.(values);
824
+ }
825
+ },
826
+ toggleValue: (value) => {
827
+ if (!get().disabled) {
828
+ const currentValues = get().values;
829
+ const newValues = currentValues.includes(value) ? currentValues.filter((v) => v !== value) : [...currentValues, value];
830
+ set({ values: newValues });
831
+ get().onValuesChange?.(newValues);
832
+ }
833
+ },
834
+ onValuesChange,
835
+ disabled,
836
+ name
837
+ }));
838
+ var useCheckboxListStore = (externalStore) => {
839
+ if (!externalStore) {
840
+ throw new Error("CheckboxListItem must be used within a CheckboxList");
841
+ }
842
+ return externalStore;
843
+ };
844
+ var injectStore = (children, store) => Children.map(children, (child) => {
845
+ if (!isValidElement(child)) return child;
846
+ const typedChild = child;
847
+ const shouldInject = typedChild.type === CheckboxListItem;
848
+ return cloneElement(typedChild, {
849
+ ...shouldInject ? { store } : {},
850
+ ...typedChild.props.children ? { children: injectStore(typedChild.props.children, store) } : {}
851
+ });
852
+ });
853
+ var CheckboxList = forwardRef6(
854
+ ({
855
+ values: propValues,
856
+ defaultValues = [],
857
+ onValuesChange,
858
+ name: propName,
859
+ disabled = false,
860
+ className = "",
861
+ children,
862
+ ...props
863
+ }, ref) => {
864
+ const generatedId = useId2();
865
+ const name = propName || `checkbox-list-${generatedId}`;
866
+ const storeRef = useRef(null);
867
+ storeRef.current ??= createCheckboxListStore(
868
+ name,
869
+ defaultValues,
870
+ disabled,
871
+ onValuesChange
872
+ );
873
+ const store = storeRef.current;
874
+ const { setValues } = useStore(store, (s) => s);
875
+ useEffect(() => {
876
+ const currentValues = store.getState().values;
877
+ if (currentValues.length > 0 && onValuesChange) {
878
+ onValuesChange(currentValues);
879
+ }
880
+ }, []);
881
+ useEffect(() => {
882
+ if (propValues !== void 0) {
883
+ setValues(propValues);
884
+ }
885
+ }, [propValues, setValues]);
886
+ useEffect(() => {
887
+ store.setState({ disabled });
888
+ }, [disabled, store]);
889
+ return /* @__PURE__ */ jsx11(
890
+ "div",
891
+ {
892
+ ref,
893
+ className: cn("flex flex-col gap-2 w-full", className),
894
+ "aria-label": name,
895
+ ...props,
896
+ children: injectStore(children, store)
897
+ }
898
+ );
899
+ }
900
+ );
901
+ CheckboxList.displayName = "CheckboxList";
902
+ var CheckboxListItem = forwardRef6(
903
+ ({
904
+ value,
905
+ store: externalStore,
906
+ disabled: itemDisabled,
907
+ size = "medium",
908
+ state = "default",
909
+ className = "",
910
+ id,
911
+ ...props
912
+ }, ref) => {
913
+ const store = useCheckboxListStore(externalStore);
914
+ const {
915
+ values: groupValues,
916
+ toggleValue,
917
+ disabled: groupDisabled,
918
+ name
919
+ } = useStore(store);
920
+ const generatedId = useId2();
921
+ const inputId = id ?? `checkbox-item-${generatedId}`;
922
+ const isChecked = groupValues.includes(value);
923
+ const isDisabled = groupDisabled || itemDisabled;
924
+ const currentState = isDisabled ? "disabled" : state;
925
+ return /* @__PURE__ */ jsx11(
926
+ CheckBox_default,
927
+ {
928
+ ref,
929
+ id: inputId,
930
+ name,
931
+ value,
932
+ checked: isChecked,
933
+ disabled: isDisabled,
934
+ size,
935
+ state: currentState,
936
+ className,
937
+ onChange: () => {
938
+ if (!isDisabled) {
939
+ toggleValue(value);
940
+ }
941
+ },
942
+ ...props
943
+ }
944
+ );
945
+ }
946
+ );
947
+ CheckboxListItem.displayName = "CheckboxListItem";
948
+ var CheckboxList_default = CheckboxList;
949
+
950
+ // src/components/Radio/Radio.tsx
951
+ import {
952
+ forwardRef as forwardRef7,
953
+ useState as useState2,
954
+ useId as useId3,
955
+ useEffect as useEffect2,
956
+ useRef as useRef2,
957
+ Children as Children2,
958
+ cloneElement as cloneElement2,
959
+ isValidElement as isValidElement2
960
+ } from "react";
961
+ import { create as create2, useStore as useStore2 } from "zustand";
962
+ import { jsx as jsx12, jsxs as jsxs8 } from "react/jsx-runtime";
819
963
  var SIZE_CLASSES4 = {
820
964
  small: {
821
965
  radio: "w-5 h-5",
@@ -880,7 +1024,7 @@ var DOT_CLASSES = {
880
1024
  invalid: "bg-primary-950",
881
1025
  disabled: "bg-primary-950"
882
1026
  };
883
- var Radio = forwardRef6(
1027
+ var Radio = forwardRef7(
884
1028
  ({
885
1029
  label,
886
1030
  size = "medium",
@@ -898,9 +1042,9 @@ var Radio = forwardRef6(
898
1042
  onChange,
899
1043
  ...props
900
1044
  }, ref) => {
901
- const generatedId = useId2();
1045
+ const generatedId = useId3();
902
1046
  const inputId = id ?? `radio-${generatedId}`;
903
- const inputRef = useRef(null);
1047
+ const inputRef = useRef2(null);
904
1048
  const [internalChecked, setInternalChecked] = useState2(defaultChecked);
905
1049
  const isControlled = checkedProp !== void 0;
906
1050
  const checked = isControlled ? checkedProp : internalChecked;
@@ -964,7 +1108,7 @@ var Radio = forwardRef6(
964
1108
  disabled ? "opacity-40" : ""
965
1109
  ),
966
1110
  children: [
967
- /* @__PURE__ */ jsx11(
1111
+ /* @__PURE__ */ jsx12(
968
1112
  "input",
969
1113
  {
970
1114
  ref: (node) => {
@@ -988,7 +1132,7 @@ var Radio = forwardRef6(
988
1132
  ...props
989
1133
  }
990
1134
  ),
991
- /* @__PURE__ */ jsx11(
1135
+ /* @__PURE__ */ jsx12(
992
1136
  "button",
993
1137
  {
994
1138
  type: "button",
@@ -1013,10 +1157,10 @@ var Radio = forwardRef6(
1013
1157
  }
1014
1158
  }
1015
1159
  },
1016
- children: checked && /* @__PURE__ */ jsx11("div", { className: dotClasses })
1160
+ children: checked && /* @__PURE__ */ jsx12("div", { className: dotClasses })
1017
1161
  }
1018
1162
  ),
1019
- label && /* @__PURE__ */ jsx11(
1163
+ label && /* @__PURE__ */ jsx12(
1020
1164
  "div",
1021
1165
  {
1022
1166
  className: cn(
@@ -1024,7 +1168,7 @@ var Radio = forwardRef6(
1024
1168
  sizeClasses.labelHeight,
1025
1169
  "flex-1 min-w-0"
1026
1170
  ),
1027
- children: /* @__PURE__ */ jsx11(
1171
+ children: /* @__PURE__ */ jsx12(
1028
1172
  Text_default,
1029
1173
  {
1030
1174
  as: "label",
@@ -1045,7 +1189,7 @@ var Radio = forwardRef6(
1045
1189
  ]
1046
1190
  }
1047
1191
  ),
1048
- errorMessage && /* @__PURE__ */ jsx11(
1192
+ errorMessage && /* @__PURE__ */ jsx12(
1049
1193
  Text_default,
1050
1194
  {
1051
1195
  size: "sm",
@@ -1055,7 +1199,7 @@ var Radio = forwardRef6(
1055
1199
  children: errorMessage
1056
1200
  }
1057
1201
  ),
1058
- helperText && !errorMessage && /* @__PURE__ */ jsx11(
1202
+ helperText && !errorMessage && /* @__PURE__ */ jsx12(
1059
1203
  Text_default,
1060
1204
  {
1061
1205
  size: "sm",
@@ -1069,7 +1213,7 @@ var Radio = forwardRef6(
1069
1213
  }
1070
1214
  );
1071
1215
  Radio.displayName = "Radio";
1072
- var createRadioGroupStore = (name, defaultValue, disabled, onValueChange) => create((set, get) => ({
1216
+ var createRadioGroupStore = (name, defaultValue, disabled, onValueChange) => create2((set, get) => ({
1073
1217
  value: defaultValue,
1074
1218
  setValue: (value) => {
1075
1219
  if (!get().disabled) {
@@ -1087,16 +1231,16 @@ var useRadioGroupStore = (externalStore) => {
1087
1231
  }
1088
1232
  return externalStore;
1089
1233
  };
1090
- var injectStore = (children, store) => Children.map(children, (child) => {
1091
- if (!isValidElement(child)) return child;
1234
+ var injectStore2 = (children, store) => Children2.map(children, (child) => {
1235
+ if (!isValidElement2(child)) return child;
1092
1236
  const typedChild = child;
1093
1237
  const shouldInject = typedChild.type === RadioGroupItem;
1094
- return cloneElement(typedChild, {
1238
+ return cloneElement2(typedChild, {
1095
1239
  ...shouldInject ? { store } : {},
1096
- ...typedChild.props.children ? { children: injectStore(typedChild.props.children, store) } : {}
1240
+ ...typedChild.props.children ? { children: injectStore2(typedChild.props.children, store) } : {}
1097
1241
  });
1098
1242
  });
1099
- var RadioGroup = forwardRef6(
1243
+ var RadioGroup = forwardRef7(
1100
1244
  ({
1101
1245
  value: propValue,
1102
1246
  defaultValue = "",
@@ -1107,9 +1251,9 @@ var RadioGroup = forwardRef6(
1107
1251
  children,
1108
1252
  ...props
1109
1253
  }, ref) => {
1110
- const generatedId = useId2();
1254
+ const generatedId = useId3();
1111
1255
  const name = propName || `radio-group-${generatedId}`;
1112
- const storeRef = useRef(null);
1256
+ const storeRef = useRef2(null);
1113
1257
  storeRef.current ??= createRadioGroupStore(
1114
1258
  name,
1115
1259
  defaultValue,
@@ -1117,22 +1261,22 @@ var RadioGroup = forwardRef6(
1117
1261
  onValueChange
1118
1262
  );
1119
1263
  const store = storeRef.current;
1120
- const { setValue } = useStore(store, (s) => s);
1121
- useEffect(() => {
1264
+ const { setValue } = useStore2(store, (s) => s);
1265
+ useEffect2(() => {
1122
1266
  const currentValue = store.getState().value;
1123
1267
  if (currentValue && onValueChange) {
1124
1268
  onValueChange(currentValue);
1125
1269
  }
1126
1270
  }, []);
1127
- useEffect(() => {
1271
+ useEffect2(() => {
1128
1272
  if (propValue !== void 0) {
1129
1273
  setValue(propValue);
1130
1274
  }
1131
1275
  }, [propValue, setValue]);
1132
- useEffect(() => {
1276
+ useEffect2(() => {
1133
1277
  store.setState({ disabled });
1134
1278
  }, [disabled, store]);
1135
- return /* @__PURE__ */ jsx11(
1279
+ return /* @__PURE__ */ jsx12(
1136
1280
  "div",
1137
1281
  {
1138
1282
  ref,
@@ -1140,13 +1284,13 @@ var RadioGroup = forwardRef6(
1140
1284
  role: "radiogroup",
1141
1285
  "aria-label": name,
1142
1286
  ...props,
1143
- children: injectStore(children, store)
1287
+ children: injectStore2(children, store)
1144
1288
  }
1145
1289
  );
1146
1290
  }
1147
1291
  );
1148
1292
  RadioGroup.displayName = "RadioGroup";
1149
- var RadioGroupItem = forwardRef6(
1293
+ var RadioGroupItem = forwardRef7(
1150
1294
  ({
1151
1295
  value,
1152
1296
  store: externalStore,
@@ -1163,13 +1307,13 @@ var RadioGroupItem = forwardRef6(
1163
1307
  setValue,
1164
1308
  disabled: groupDisabled,
1165
1309
  name
1166
- } = useStore(store);
1167
- const generatedId = useId2();
1310
+ } = useStore2(store);
1311
+ const generatedId = useId3();
1168
1312
  const inputId = id ?? `radio-item-${generatedId}`;
1169
1313
  const isChecked = groupValue === value;
1170
1314
  const isDisabled = groupDisabled || itemDisabled;
1171
1315
  const currentState = isDisabled ? "disabled" : state;
1172
- return /* @__PURE__ */ jsx11(
1316
+ return /* @__PURE__ */ jsx12(
1173
1317
  Radio,
1174
1318
  {
1175
1319
  ref,
@@ -1196,12 +1340,12 @@ var Radio_default = Radio;
1196
1340
 
1197
1341
  // src/components/TextArea/TextArea.tsx
1198
1342
  import {
1199
- forwardRef as forwardRef7,
1343
+ forwardRef as forwardRef8,
1200
1344
  useState as useState3,
1201
- useId as useId3
1345
+ useId as useId4
1202
1346
  } from "react";
1203
1347
  import { WarningCircle as WarningCircle2 } from "phosphor-react";
1204
- import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
1348
+ import { jsx as jsx13, jsxs as jsxs9 } from "react/jsx-runtime";
1205
1349
  var SIZE_CLASSES5 = {
1206
1350
  small: {
1207
1351
  textarea: "h-24 text-sm",
@@ -1252,7 +1396,7 @@ var STATE_CLASSES3 = {
1252
1396
  focus: ""
1253
1397
  }
1254
1398
  };
1255
- var TextArea = forwardRef7(
1399
+ var TextArea = forwardRef8(
1256
1400
  ({
1257
1401
  label,
1258
1402
  size = "medium",
@@ -1267,7 +1411,7 @@ var TextArea = forwardRef7(
1267
1411
  placeholder,
1268
1412
  ...props
1269
1413
  }, ref) => {
1270
- const generatedId = useId3();
1414
+ const generatedId = useId4();
1271
1415
  const inputId = id ?? `textarea-${generatedId}`;
1272
1416
  const [isFocused, setIsFocused] = useState3(false);
1273
1417
  const handleChange = (event) => {
@@ -1296,7 +1440,7 @@ var TextArea = forwardRef7(
1296
1440
  className
1297
1441
  );
1298
1442
  return /* @__PURE__ */ jsxs9("div", { className: `flex flex-col`, children: [
1299
- label && /* @__PURE__ */ jsx12(
1443
+ label && /* @__PURE__ */ jsx13(
1300
1444
  Text_default,
1301
1445
  {
1302
1446
  as: "label",
@@ -1308,7 +1452,7 @@ var TextArea = forwardRef7(
1308
1452
  children: label
1309
1453
  }
1310
1454
  ),
1311
- /* @__PURE__ */ jsx12(
1455
+ /* @__PURE__ */ jsx13(
1312
1456
  "textarea",
1313
1457
  {
1314
1458
  ref,
@@ -1323,11 +1467,11 @@ var TextArea = forwardRef7(
1323
1467
  }
1324
1468
  ),
1325
1469
  errorMessage && /* @__PURE__ */ jsxs9("p", { className: "flex gap-1 items-center text-sm text-indicator-error mt-1.5", children: [
1326
- /* @__PURE__ */ jsx12(WarningCircle2, { size: 16 }),
1470
+ /* @__PURE__ */ jsx13(WarningCircle2, { size: 16 }),
1327
1471
  " ",
1328
1472
  errorMessage
1329
1473
  ] }),
1330
- helperMessage && !errorMessage && /* @__PURE__ */ jsx12(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
1474
+ helperMessage && !errorMessage && /* @__PURE__ */ jsx13(Text_default, { size: "sm", weight: "normal", className: "mt-1.5 text-text-500", children: helperMessage })
1331
1475
  ] });
1332
1476
  }
1333
1477
  );
@@ -1336,7 +1480,7 @@ var TextArea_default = TextArea;
1336
1480
 
1337
1481
  // src/components/Toast/Toast.tsx
1338
1482
  import { CheckCircle as CheckCircle2, WarningCircle as WarningCircle3, Info as Info2, X } from "phosphor-react";
1339
- import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
1483
+ import { jsx as jsx14, jsxs as jsxs10 } from "react/jsx-runtime";
1340
1484
  var VARIANT_ACTION_CLASSES4 = {
1341
1485
  solid: {
1342
1486
  warning: "bg-warning text-warning-600 border-none focus-visible:outline-none",
@@ -1391,19 +1535,19 @@ var Toast = ({
1391
1535
  ...props,
1392
1536
  children: [
1393
1537
  /* @__PURE__ */ jsxs10("div", { className: "flex flex-row items-start gap-3", children: [
1394
- /* @__PURE__ */ jsx13("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ jsx13(IconAction, {}) }),
1538
+ /* @__PURE__ */ jsx14("span", { className: "mt-1", "data-testid": `toast-icon-${action}`, children: /* @__PURE__ */ jsx14(IconAction, {}) }),
1395
1539
  /* @__PURE__ */ jsxs10("div", { className: "flex flex-col items-start justify-start", children: [
1396
- /* @__PURE__ */ jsx13("p", { className: "font-semibold text-md", children: title }),
1397
- description && /* @__PURE__ */ jsx13("p", { className: "text-md text-text-900", children: description })
1540
+ /* @__PURE__ */ jsx14("p", { className: "font-semibold text-md", children: title }),
1541
+ description && /* @__PURE__ */ jsx14("p", { className: "text-md text-text-900", children: description })
1398
1542
  ] })
1399
1543
  ] }),
1400
- /* @__PURE__ */ jsx13(
1544
+ /* @__PURE__ */ jsx14(
1401
1545
  "button",
1402
1546
  {
1403
1547
  onClick: onClose,
1404
1548
  "aria-label": "Dismiss notification",
1405
1549
  className: "text-background-500 cursor-pointer opacity-0 group-hover:opacity-100 transition-opacity",
1406
- children: /* @__PURE__ */ jsx13(X, {})
1550
+ children: /* @__PURE__ */ jsx14(X, {})
1407
1551
  }
1408
1552
  )
1409
1553
  ]
@@ -1413,8 +1557,8 @@ var Toast = ({
1413
1557
  var Toast_default = Toast;
1414
1558
 
1415
1559
  // src/components/Toast/utils/ToastStore.ts
1416
- import { create as create2 } from "zustand";
1417
- var useToastStore = create2((set) => ({
1560
+ import { create as create3 } from "zustand";
1561
+ var useToastStore = create3((set) => ({
1418
1562
  toasts: [],
1419
1563
  addToast: (toast) => {
1420
1564
  const id = crypto.randomUUID();
@@ -1431,11 +1575,11 @@ var useToastStore = create2((set) => ({
1431
1575
  var ToastStore_default = useToastStore;
1432
1576
 
1433
1577
  // src/components/Toast/utils/Toaster.tsx
1434
- import { Fragment, jsx as jsx14 } from "react/jsx-runtime";
1578
+ import { Fragment, jsx as jsx15 } from "react/jsx-runtime";
1435
1579
  var Toaster = () => {
1436
1580
  const toasts = ToastStore_default((state) => state.toasts);
1437
1581
  const removeToast = ToastStore_default((state) => state.removeToast);
1438
- return /* @__PURE__ */ jsx14(Fragment, { children: toasts.map((toast) => /* @__PURE__ */ jsx14(
1582
+ return /* @__PURE__ */ jsx15(Fragment, { children: toasts.map((toast) => /* @__PURE__ */ jsx15(
1439
1583
  Toast_default,
1440
1584
  {
1441
1585
  title: toast.title,
@@ -1451,7 +1595,7 @@ var Toaster = () => {
1451
1595
  var Toaster_default = Toaster;
1452
1596
 
1453
1597
  // src/components/Divider/Divider.tsx
1454
- import { jsx as jsx15 } from "react/jsx-runtime";
1598
+ import { jsx as jsx16 } from "react/jsx-runtime";
1455
1599
  var Divider = ({
1456
1600
  orientation = "horizontal",
1457
1601
  className = "",
@@ -1462,7 +1606,7 @@ var Divider = ({
1462
1606
  horizontal: "w-full h-px",
1463
1607
  vertical: "h-full w-px"
1464
1608
  };
1465
- return /* @__PURE__ */ jsx15(
1609
+ return /* @__PURE__ */ jsx16(
1466
1610
  "hr",
1467
1611
  {
1468
1612
  className: cn(baseClasses, orientationClasses[orientation], className),
@@ -1476,12 +1620,12 @@ var Divider_default = Divider;
1476
1620
  // src/components/Input/Input.tsx
1477
1621
  import { WarningCircle as WarningCircle4, Eye, EyeSlash } from "phosphor-react";
1478
1622
  import {
1479
- forwardRef as forwardRef8,
1623
+ forwardRef as forwardRef9,
1480
1624
  useState as useState4,
1481
- useId as useId4,
1625
+ useId as useId5,
1482
1626
  useMemo
1483
1627
  } from "react";
1484
- import { jsx as jsx16, jsxs as jsxs11 } from "react/jsx-runtime";
1628
+ import { jsx as jsx17, jsxs as jsxs11 } from "react/jsx-runtime";
1485
1629
  var SIZE_CLASSES6 = {
1486
1630
  small: "text-sm",
1487
1631
  medium: "text-md",
@@ -1520,7 +1664,7 @@ var getPasswordToggleConfig = (type, disabled, readOnly, showPassword, iconRight
1520
1664
  let actualIconRight = iconRight;
1521
1665
  let ariaLabel;
1522
1666
  if (shouldShowPasswordToggle) {
1523
- actualIconRight = showPassword ? /* @__PURE__ */ jsx16(EyeSlash, {}) : /* @__PURE__ */ jsx16(Eye, {});
1667
+ actualIconRight = showPassword ? /* @__PURE__ */ jsx17(EyeSlash, {}) : /* @__PURE__ */ jsx17(Eye, {});
1524
1668
  ariaLabel = showPassword ? "Ocultar senha" : "Mostrar senha";
1525
1669
  }
1526
1670
  return { shouldShowPasswordToggle, actualIconRight, ariaLabel };
@@ -1536,7 +1680,7 @@ var getCombinedClasses = (actualState, variant) => {
1536
1680
  }
1537
1681
  return `${stateClasses} ${variantClasses}`;
1538
1682
  };
1539
- var Input = forwardRef8(
1683
+ var Input = forwardRef9(
1540
1684
  ({
1541
1685
  label,
1542
1686
  helperText,
@@ -1565,7 +1709,7 @@ var Input = forwardRef8(
1565
1709
  );
1566
1710
  const iconSize = getIconSize(size);
1567
1711
  const baseClasses = `bg-background w-full py-2 ${actualState === "read-only" ? "px-0" : "px-3"} font-normal text-text-900 focus:outline-primary-950`;
1568
- const generatedId = useId4();
1712
+ const generatedId = useId5();
1569
1713
  const inputId = id ?? `input-${generatedId}`;
1570
1714
  const togglePasswordVisibility = () => setShowPassword(!showPassword);
1571
1715
  const { shouldShowPasswordToggle, actualIconRight, ariaLabel } = getPasswordToggleConfig(
@@ -1576,7 +1720,7 @@ var Input = forwardRef8(
1576
1720
  iconRight
1577
1721
  );
1578
1722
  return /* @__PURE__ */ jsxs11("div", { className: `${containerClassName}`, children: [
1579
- label && /* @__PURE__ */ jsx16(
1723
+ label && /* @__PURE__ */ jsx17(
1580
1724
  "label",
1581
1725
  {
1582
1726
  htmlFor: inputId,
@@ -1585,14 +1729,14 @@ var Input = forwardRef8(
1585
1729
  }
1586
1730
  ),
1587
1731
  /* @__PURE__ */ jsxs11("div", { className: "relative", children: [
1588
- iconLeft && /* @__PURE__ */ jsx16("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx16(
1732
+ iconLeft && /* @__PURE__ */ jsx17("div", { className: "absolute left-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx17(
1589
1733
  "span",
1590
1734
  {
1591
1735
  className: `${iconSize} text-text-400 flex items-center justify-center`,
1592
1736
  children: iconLeft
1593
1737
  }
1594
1738
  ) }),
1595
- /* @__PURE__ */ jsx16(
1739
+ /* @__PURE__ */ jsx17(
1596
1740
  "input",
1597
1741
  {
1598
1742
  ref,
@@ -1605,14 +1749,14 @@ var Input = forwardRef8(
1605
1749
  ...props
1606
1750
  }
1607
1751
  ),
1608
- actualIconRight && (shouldShowPasswordToggle ? /* @__PURE__ */ jsx16(
1752
+ actualIconRight && (shouldShowPasswordToggle ? /* @__PURE__ */ jsx17(
1609
1753
  "button",
1610
1754
  {
1611
1755
  type: "button",
1612
1756
  className: "absolute right-3 top-1/2 transform -translate-y-1/2 cursor-pointer border-0 bg-transparent p-0",
1613
1757
  onClick: togglePasswordVisibility,
1614
1758
  "aria-label": ariaLabel,
1615
- children: /* @__PURE__ */ jsx16(
1759
+ children: /* @__PURE__ */ jsx17(
1616
1760
  "span",
1617
1761
  {
1618
1762
  className: `${iconSize} text-text-400 flex items-center justify-center hover:text-text-600 transition-colors`,
@@ -1620,7 +1764,7 @@ var Input = forwardRef8(
1620
1764
  }
1621
1765
  )
1622
1766
  }
1623
- ) : /* @__PURE__ */ jsx16("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx16(
1767
+ ) : /* @__PURE__ */ jsx17("div", { className: "absolute right-3 top-1/2 transform -translate-y-1/2 pointer-events-none", children: /* @__PURE__ */ jsx17(
1624
1768
  "span",
1625
1769
  {
1626
1770
  className: `${iconSize} text-text-400 flex items-center justify-center`,
@@ -1629,9 +1773,9 @@ var Input = forwardRef8(
1629
1773
  ) }))
1630
1774
  ] }),
1631
1775
  /* @__PURE__ */ jsxs11("div", { className: "mt-1.5 gap-1.5", children: [
1632
- helperText && /* @__PURE__ */ jsx16("p", { className: "text-sm text-text-500", children: helperText }),
1776
+ helperText && /* @__PURE__ */ jsx17("p", { className: "text-sm text-text-500", children: helperText }),
1633
1777
  errorMessage && /* @__PURE__ */ jsxs11("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
1634
- /* @__PURE__ */ jsx16(WarningCircle4, { size: 16 }),
1778
+ /* @__PURE__ */ jsx17(WarningCircle4, { size: 16 }),
1635
1779
  " ",
1636
1780
  errorMessage
1637
1781
  ] })
@@ -1643,7 +1787,7 @@ var Input_default = Input;
1643
1787
 
1644
1788
  // src/components/Chips/Chips.tsx
1645
1789
  import { Check as Check2 } from "phosphor-react";
1646
- import { jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
1790
+ import { jsx as jsx18, jsxs as jsxs12 } from "react/jsx-runtime";
1647
1791
  var STATE_CLASSES5 = {
1648
1792
  default: "bg-background text-text-950 border border-border-100 hover:bg-secondary-50 hover:border-border-300",
1649
1793
  selected: "bg-info-background text-primary-950 border-2 border-primary-950 hover:bg-secondary-50 focus-visible:border-0"
@@ -1666,8 +1810,8 @@ var Chips = ({
1666
1810
  type,
1667
1811
  ...props,
1668
1812
  children: [
1669
- selected && /* @__PURE__ */ jsx17("span", { className: `flex items-center`, children: /* @__PURE__ */ jsx17(Check2, { weight: "bold", size: 16 }) }),
1670
- /* @__PURE__ */ jsx17("span", { className: "flex-1", children })
1813
+ selected && /* @__PURE__ */ jsx18("span", { className: `flex items-center`, children: /* @__PURE__ */ jsx18(Check2, { weight: "bold", size: 16 }) }),
1814
+ /* @__PURE__ */ jsx18("span", { className: "flex-1", children })
1671
1815
  ]
1672
1816
  }
1673
1817
  );
@@ -1675,7 +1819,7 @@ var Chips = ({
1675
1819
  var Chips_default = Chips;
1676
1820
 
1677
1821
  // src/components/ProgressBar/ProgressBar.tsx
1678
- import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
1822
+ import { Fragment as Fragment2, jsx as jsx19, jsxs as jsxs13 } from "react/jsx-runtime";
1679
1823
  var SIZE_CLASSES7 = {
1680
1824
  small: {
1681
1825
  container: "h-1",
@@ -1787,7 +1931,7 @@ var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue,
1787
1931
  max,
1788
1932
  percentage
1789
1933
  );
1790
- return /* @__PURE__ */ jsx18(
1934
+ return /* @__PURE__ */ jsx19(
1791
1935
  "div",
1792
1936
  {
1793
1937
  className: cn(
@@ -1795,7 +1939,7 @@ var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue,
1795
1939
  percentageClassName
1796
1940
  ),
1797
1941
  children: displayPriority.type === "hitCount" ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
1798
- /* @__PURE__ */ jsx18("span", { className: "text-success-200", children: Math.round(clampedValue) }),
1942
+ /* @__PURE__ */ jsx19("span", { className: "text-success-200", children: Math.round(clampedValue) }),
1799
1943
  /* @__PURE__ */ jsxs13("span", { className: "text-text-600", children: [
1800
1944
  " de ",
1801
1945
  max
@@ -1824,7 +1968,7 @@ var ProgressBarBase = ({
1824
1968
  "overflow-hidden relative"
1825
1969
  ),
1826
1970
  children: [
1827
- /* @__PURE__ */ jsx18(
1971
+ /* @__PURE__ */ jsx19(
1828
1972
  "progress",
1829
1973
  {
1830
1974
  value: clampedValue,
@@ -1833,7 +1977,7 @@ var ProgressBarBase = ({
1833
1977
  className: "absolute inset-0 w-full h-full opacity-0"
1834
1978
  }
1835
1979
  ),
1836
- /* @__PURE__ */ jsx18(
1980
+ /* @__PURE__ */ jsx19(
1837
1981
  "div",
1838
1982
  {
1839
1983
  className: cn(
@@ -1870,7 +2014,7 @@ var StackedLayout = ({
1870
2014
  ),
1871
2015
  children: [
1872
2016
  shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row justify-between items-center w-full h-[19px]", children: [
1873
- label && /* @__PURE__ */ jsx18(
2017
+ label && /* @__PURE__ */ jsx19(
1874
2018
  Text_default,
1875
2019
  {
1876
2020
  as: "div",
@@ -1889,7 +2033,7 @@ var StackedLayout = ({
1889
2033
  percentageClassName
1890
2034
  )
1891
2035
  ] }),
1892
- /* @__PURE__ */ jsx18(
2036
+ /* @__PURE__ */ jsx19(
1893
2037
  ProgressBarBase,
1894
2038
  {
1895
2039
  clampedValue,
@@ -1941,7 +2085,7 @@ var CompactLayout = ({
1941
2085
  className
1942
2086
  ),
1943
2087
  children: [
1944
- shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsx18(
2088
+ shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsx19(
1945
2089
  Text_default,
1946
2090
  {
1947
2091
  as: "div",
@@ -1952,7 +2096,7 @@ var CompactLayout = ({
1952
2096
  children: content
1953
2097
  }
1954
2098
  ),
1955
- /* @__PURE__ */ jsx18(
2099
+ /* @__PURE__ */ jsx19(
1956
2100
  ProgressBarBase,
1957
2101
  {
1958
2102
  clampedValue,
@@ -1990,7 +2134,7 @@ var DefaultLayout = ({
1990
2134
  );
1991
2135
  return /* @__PURE__ */ jsxs13("div", { className: cn("flex", sizeClasses.layout, gapClass, className), children: [
1992
2136
  displayConfig.showHeader && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row items-center justify-between w-full", children: [
1993
- label && /* @__PURE__ */ jsx18(
2137
+ label && /* @__PURE__ */ jsx19(
1994
2138
  Text_default,
1995
2139
  {
1996
2140
  as: "div",
@@ -2019,7 +2163,7 @@ var DefaultLayout = ({
2019
2163
  }
2020
2164
  )
2021
2165
  ] }),
2022
- /* @__PURE__ */ jsx18(
2166
+ /* @__PURE__ */ jsx19(
2023
2167
  ProgressBarBase,
2024
2168
  {
2025
2169
  clampedValue,
@@ -2054,7 +2198,7 @@ var DefaultLayout = ({
2054
2198
  ]
2055
2199
  }
2056
2200
  ),
2057
- displayConfig.showLabel && /* @__PURE__ */ jsx18(
2201
+ displayConfig.showLabel && /* @__PURE__ */ jsx19(
2058
2202
  Text_default,
2059
2203
  {
2060
2204
  as: "div",
@@ -2090,7 +2234,7 @@ var ProgressBar = ({
2090
2234
  const sizeClasses = SIZE_CLASSES7[size];
2091
2235
  const variantClasses = VARIANT_CLASSES2[variant];
2092
2236
  if (layout === "stacked") {
2093
- return /* @__PURE__ */ jsx18(
2237
+ return /* @__PURE__ */ jsx19(
2094
2238
  StackedLayout,
2095
2239
  {
2096
2240
  className,
@@ -2111,7 +2255,7 @@ var ProgressBar = ({
2111
2255
  );
2112
2256
  }
2113
2257
  if (layout === "compact") {
2114
- return /* @__PURE__ */ jsx18(
2258
+ return /* @__PURE__ */ jsx19(
2115
2259
  CompactLayout,
2116
2260
  {
2117
2261
  className,
@@ -2131,7 +2275,7 @@ var ProgressBar = ({
2131
2275
  }
2132
2276
  );
2133
2277
  }
2134
- return /* @__PURE__ */ jsx18(
2278
+ return /* @__PURE__ */ jsx19(
2135
2279
  DefaultLayout,
2136
2280
  {
2137
2281
  className,
@@ -2151,7 +2295,7 @@ var ProgressBar = ({
2151
2295
  var ProgressBar_default = ProgressBar;
2152
2296
 
2153
2297
  // src/components/ProgressCircle/ProgressCircle.tsx
2154
- import { jsx as jsx19, jsxs as jsxs14 } from "react/jsx-runtime";
2298
+ import { jsx as jsx20, jsxs as jsxs14 } from "react/jsx-runtime";
2155
2299
  var SIZE_CLASSES8 = {
2156
2300
  small: {
2157
2301
  container: "w-[90px] h-[90px]",
@@ -2252,7 +2396,7 @@ var ProgressCircle = ({
2252
2396
  viewBox: `0 0 ${svgSize} ${svgSize}`,
2253
2397
  "aria-hidden": "true",
2254
2398
  children: [
2255
- /* @__PURE__ */ jsx19(
2399
+ /* @__PURE__ */ jsx20(
2256
2400
  "circle",
2257
2401
  {
2258
2402
  cx: center,
@@ -2263,7 +2407,7 @@ var ProgressCircle = ({
2263
2407
  className: cn(variantClasses.background, "rounded-lg")
2264
2408
  }
2265
2409
  ),
2266
- /* @__PURE__ */ jsx19(
2410
+ /* @__PURE__ */ jsx20(
2267
2411
  "circle",
2268
2412
  {
2269
2413
  cx: center,
@@ -2283,7 +2427,7 @@ var ProgressCircle = ({
2283
2427
  ]
2284
2428
  }
2285
2429
  ),
2286
- /* @__PURE__ */ jsx19(
2430
+ /* @__PURE__ */ jsx20(
2287
2431
  "progress",
2288
2432
  {
2289
2433
  value: clampedValue,
@@ -2317,7 +2461,7 @@ var ProgressCircle = ({
2317
2461
  ]
2318
2462
  }
2319
2463
  ),
2320
- label && /* @__PURE__ */ jsx19(
2464
+ label && /* @__PURE__ */ jsx20(
2321
2465
  Text_default,
2322
2466
  {
2323
2467
  as: "span",
@@ -2342,7 +2486,7 @@ var ProgressCircle_default = ProgressCircle;
2342
2486
 
2343
2487
  // src/components/Stepper/Stepper.tsx
2344
2488
  import { Check as Check3 } from "phosphor-react";
2345
- import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
2489
+ import { jsx as jsx21, jsxs as jsxs15 } from "react/jsx-runtime";
2346
2490
  var SIZE_CLASSES9 = {
2347
2491
  small: {
2348
2492
  container: "gap-2",
@@ -2482,7 +2626,7 @@ var Step = ({
2482
2626
  overflow-visible
2483
2627
  `,
2484
2628
  children: [
2485
- /* @__PURE__ */ jsx20(
2629
+ /* @__PURE__ */ jsx21(
2486
2630
  "div",
2487
2631
  {
2488
2632
  className: `
@@ -2501,7 +2645,7 @@ var Step = ({
2501
2645
  overflow-visible
2502
2646
  `,
2503
2647
  children: [
2504
- /* @__PURE__ */ jsx20(
2648
+ /* @__PURE__ */ jsx21(
2505
2649
  "div",
2506
2650
  {
2507
2651
  className: `
@@ -2511,7 +2655,7 @@ var Step = ({
2511
2655
  w-4 h-4 sm:w-5 sm:h-5 md:w-5 md:h-5 lg:w-6 lg:h-6
2512
2656
  `,
2513
2657
  "aria-label": getAriaLabel(),
2514
- children: isCompleted ? /* @__PURE__ */ jsx20(
2658
+ children: isCompleted ? /* @__PURE__ */ jsx21(
2515
2659
  Check3,
2516
2660
  {
2517
2661
  weight: "bold",
@@ -2520,7 +2664,7 @@ var Step = ({
2520
2664
  w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3 md:h-3 lg:w-3.5 lg:h-3.5
2521
2665
  `
2522
2666
  }
2523
- ) : /* @__PURE__ */ jsx20(
2667
+ ) : /* @__PURE__ */ jsx21(
2524
2668
  Text_default,
2525
2669
  {
2526
2670
  size: sizeClasses.indicatorTextSize,
@@ -2535,7 +2679,7 @@ var Step = ({
2535
2679
  )
2536
2680
  }
2537
2681
  ),
2538
- /* @__PURE__ */ jsx20(
2682
+ /* @__PURE__ */ jsx21(
2539
2683
  Text_default,
2540
2684
  {
2541
2685
  size: sizeClasses.labelTextSize,
@@ -2596,8 +2740,8 @@ var Stepper = ({
2596
2740
  "border-0 p-0 m-0"
2597
2741
  ),
2598
2742
  children: [
2599
- /* @__PURE__ */ jsx20("legend", { className: "absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children: "Stepper de formul\xE1rio" }),
2600
- showProgress && currentStep !== void 0 && /* @__PURE__ */ jsx20(
2743
+ /* @__PURE__ */ jsx21("legend", { className: "absolute w-px h-px p-0 -m-px overflow-hidden whitespace-nowrap border-0", children: "Stepper de formul\xE1rio" }),
2744
+ showProgress && currentStep !== void 0 && /* @__PURE__ */ jsx21(
2601
2745
  Text_default,
2602
2746
  {
2603
2747
  size: "sm",
@@ -2606,7 +2750,7 @@ var Stepper = ({
2606
2750
  children: getProgressText(currentStep, steps.length, progressText)
2607
2751
  }
2608
2752
  ),
2609
- /* @__PURE__ */ jsx20(
2753
+ /* @__PURE__ */ jsx21(
2610
2754
  "div",
2611
2755
  {
2612
2756
  className: cn(
@@ -2619,7 +2763,7 @@ var Stepper = ({
2619
2763
  "aria-label": "Progress steps",
2620
2764
  children: steps.map((step, index) => {
2621
2765
  const stateClasses = STATE_CLASSES6[step.state];
2622
- return /* @__PURE__ */ jsx20(
2766
+ return /* @__PURE__ */ jsx21(
2623
2767
  Step,
2624
2768
  {
2625
2769
  step,
@@ -2645,10 +2789,10 @@ var Stepper_default = Stepper;
2645
2789
  import {
2646
2790
  useState as useState5,
2647
2791
  useMemo as useMemo2,
2648
- useEffect as useEffect2,
2649
- useRef as useRef2
2792
+ useEffect as useEffect3,
2793
+ useRef as useRef3
2650
2794
  } from "react";
2651
- import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
2795
+ import { jsx as jsx22, jsxs as jsxs16 } from "react/jsx-runtime";
2652
2796
  var WEEK_DAYS = ["SEG", "TER", "QUA", "QUI", "SEX", "S\xC1B", "DOM"];
2653
2797
  var WEEK_DAYS_SHORT = ["S", "T", "Q", "Q", "S", "S", "D"];
2654
2798
  var MONTH_NAMES = [
@@ -2678,8 +2822,8 @@ var MonthYearPicker = ({
2678
2822
  className: "absolute top-full left-0 z-50 mt-1 bg-white rounded-lg shadow-lg border border-border-200 p-4 min-w-[280px]",
2679
2823
  children: [
2680
2824
  /* @__PURE__ */ jsxs16("div", { className: "mb-4", children: [
2681
- /* @__PURE__ */ jsx21("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
2682
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ jsx21(
2825
+ /* @__PURE__ */ jsx22("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
2826
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ jsx22(
2683
2827
  "button",
2684
2828
  {
2685
2829
  onClick: () => onYearChange(year),
@@ -2693,8 +2837,8 @@ var MonthYearPicker = ({
2693
2837
  )) })
2694
2838
  ] }),
2695
2839
  /* @__PURE__ */ jsxs16("div", { children: [
2696
- /* @__PURE__ */ jsx21("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
2697
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ jsx21(
2840
+ /* @__PURE__ */ jsx22("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
2841
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ jsx22(
2698
2842
  "button",
2699
2843
  {
2700
2844
  onClick: () => onMonthChange(index, currentDate.getFullYear()),
@@ -2749,9 +2893,9 @@ var Calendar = ({
2749
2893
  }) => {
2750
2894
  const [currentDate, setCurrentDate] = useState5(selectedDate || /* @__PURE__ */ new Date());
2751
2895
  const [isMonthPickerOpen, setIsMonthPickerOpen] = useState5(false);
2752
- const monthPickerRef = useRef2(null);
2753
- const monthPickerContainerRef = useRef2(null);
2754
- useEffect2(() => {
2896
+ const monthPickerRef = useRef3(null);
2897
+ const monthPickerContainerRef = useRef3(null);
2898
+ useEffect3(() => {
2755
2899
  const handleClickOutside = (event) => {
2756
2900
  if (monthPickerContainerRef.current && !monthPickerContainerRef.current.contains(event.target)) {
2757
2901
  setIsMonthPickerOpen(false);
@@ -2840,14 +2984,14 @@ var Calendar = ({
2840
2984
  " ",
2841
2985
  currentDate.getFullYear()
2842
2986
  ] }),
2843
- /* @__PURE__ */ jsx21(
2987
+ /* @__PURE__ */ jsx22(
2844
2988
  "svg",
2845
2989
  {
2846
2990
  className: `w-4 h-4 text-primary-950 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
2847
2991
  fill: "none",
2848
2992
  stroke: "currentColor",
2849
2993
  viewBox: "0 0 24 24",
2850
- children: /* @__PURE__ */ jsx21(
2994
+ children: /* @__PURE__ */ jsx22(
2851
2995
  "path",
2852
2996
  {
2853
2997
  strokeLinecap: "round",
@@ -2861,7 +3005,7 @@ var Calendar = ({
2861
3005
  ]
2862
3006
  }
2863
3007
  ),
2864
- isMonthPickerOpen && /* @__PURE__ */ jsx21(
3008
+ isMonthPickerOpen && /* @__PURE__ */ jsx22(
2865
3009
  MonthYearPicker,
2866
3010
  {
2867
3011
  monthPickerRef,
@@ -2873,20 +3017,20 @@ var Calendar = ({
2873
3017
  )
2874
3018
  ] }),
2875
3019
  /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-10", children: [
2876
- /* @__PURE__ */ jsx21(
3020
+ /* @__PURE__ */ jsx22(
2877
3021
  "button",
2878
3022
  {
2879
3023
  onClick: goToPreviousMonth,
2880
3024
  className: "p-1 rounded hover:bg-background-100 transition-colors",
2881
3025
  "aria-label": "M\xEAs anterior",
2882
- children: /* @__PURE__ */ jsx21(
3026
+ children: /* @__PURE__ */ jsx22(
2883
3027
  "svg",
2884
3028
  {
2885
3029
  className: "w-6 h-6 text-primary-950",
2886
3030
  fill: "none",
2887
3031
  stroke: "currentColor",
2888
3032
  viewBox: "0 0 24 24",
2889
- children: /* @__PURE__ */ jsx21(
3033
+ children: /* @__PURE__ */ jsx22(
2890
3034
  "path",
2891
3035
  {
2892
3036
  strokeLinecap: "round",
@@ -2899,20 +3043,20 @@ var Calendar = ({
2899
3043
  )
2900
3044
  }
2901
3045
  ),
2902
- /* @__PURE__ */ jsx21(
3046
+ /* @__PURE__ */ jsx22(
2903
3047
  "button",
2904
3048
  {
2905
3049
  onClick: goToNextMonth,
2906
3050
  className: "p-1 rounded hover:bg-background-100 transition-colors",
2907
3051
  "aria-label": "Pr\xF3ximo m\xEAs",
2908
- children: /* @__PURE__ */ jsx21(
3052
+ children: /* @__PURE__ */ jsx22(
2909
3053
  "svg",
2910
3054
  {
2911
3055
  className: "w-6 h-6 text-primary-950",
2912
3056
  fill: "none",
2913
3057
  stroke: "currentColor",
2914
3058
  viewBox: "0 0 24 24",
2915
- children: /* @__PURE__ */ jsx21(
3059
+ children: /* @__PURE__ */ jsx22(
2916
3060
  "path",
2917
3061
  {
2918
3062
  strokeLinecap: "round",
@@ -2927,7 +3071,7 @@ var Calendar = ({
2927
3071
  )
2928
3072
  ] })
2929
3073
  ] }),
2930
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 gap-1 mb-2 px-3", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ jsx21(
3074
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 gap-1 mb-2 px-3", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ jsx22(
2931
3075
  "div",
2932
3076
  {
2933
3077
  className: "h-9 flex items-center justify-center text-xs font-normal text-text-600",
@@ -2935,13 +3079,13 @@ var Calendar = ({
2935
3079
  },
2936
3080
  `${day}-${index}`
2937
3081
  )) }),
2938
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 gap-1 px-3", children: calendarData.map((day) => {
3082
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 gap-1 px-3", children: calendarData.map((day) => {
2939
3083
  if (!day.isCurrentMonth) {
2940
- return /* @__PURE__ */ jsx21(
3084
+ return /* @__PURE__ */ jsx22(
2941
3085
  "div",
2942
3086
  {
2943
3087
  className: "flex items-center justify-center",
2944
- children: /* @__PURE__ */ jsx21("div", { className: "w-9 h-9" })
3088
+ children: /* @__PURE__ */ jsx22("div", { className: "w-9 h-9" })
2945
3089
  },
2946
3090
  day.date.getTime()
2947
3091
  );
@@ -2957,11 +3101,11 @@ var Calendar = ({
2957
3101
  } else if (day.isSelected) {
2958
3102
  spanClass = "h-6 w-6 rounded-full bg-primary-950 text-text";
2959
3103
  }
2960
- return /* @__PURE__ */ jsx21(
3104
+ return /* @__PURE__ */ jsx22(
2961
3105
  "div",
2962
3106
  {
2963
3107
  className: "flex items-center justify-center",
2964
- children: /* @__PURE__ */ jsx21(
3108
+ children: /* @__PURE__ */ jsx22(
2965
3109
  "button",
2966
3110
  {
2967
3111
  className: `
@@ -2977,7 +3121,7 @@ var Calendar = ({
2977
3121
  "aria-label": `${day.date.getDate()} de ${MONTH_NAMES[day.date.getMonth()]}`,
2978
3122
  "aria-current": day.isToday ? "date" : void 0,
2979
3123
  tabIndex: 0,
2980
- children: /* @__PURE__ */ jsx21("span", { className: spanClass, children: day.date.getDate() })
3124
+ children: /* @__PURE__ */ jsx22("span", { className: spanClass, children: day.date.getDate() })
2981
3125
  }
2982
3126
  )
2983
3127
  },
@@ -3000,14 +3144,14 @@ var Calendar = ({
3000
3144
  " ",
3001
3145
  currentDate.getFullYear()
3002
3146
  ] }),
3003
- /* @__PURE__ */ jsx21(
3147
+ /* @__PURE__ */ jsx22(
3004
3148
  "svg",
3005
3149
  {
3006
3150
  className: `w-4 h-4 text-text-400 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
3007
3151
  fill: "none",
3008
3152
  stroke: "currentColor",
3009
3153
  viewBox: "0 0 24 24",
3010
- children: /* @__PURE__ */ jsx21(
3154
+ children: /* @__PURE__ */ jsx22(
3011
3155
  "path",
3012
3156
  {
3013
3157
  strokeLinecap: "round",
@@ -3021,7 +3165,7 @@ var Calendar = ({
3021
3165
  ]
3022
3166
  }
3023
3167
  ),
3024
- isMonthPickerOpen && /* @__PURE__ */ jsx21(
3168
+ isMonthPickerOpen && /* @__PURE__ */ jsx22(
3025
3169
  MonthYearPicker,
3026
3170
  {
3027
3171
  monthPickerRef,
@@ -3033,20 +3177,20 @@ var Calendar = ({
3033
3177
  )
3034
3178
  ] }),
3035
3179
  /* @__PURE__ */ jsxs16("div", { className: "flex items-center gap-1", children: [
3036
- /* @__PURE__ */ jsx21(
3180
+ /* @__PURE__ */ jsx22(
3037
3181
  "button",
3038
3182
  {
3039
3183
  onClick: goToPreviousMonth,
3040
3184
  className: "p-1 rounded-md hover:bg-background-100 transition-colors",
3041
3185
  "aria-label": "M\xEAs anterior",
3042
- children: /* @__PURE__ */ jsx21(
3186
+ children: /* @__PURE__ */ jsx22(
3043
3187
  "svg",
3044
3188
  {
3045
3189
  className: "w-6 h-6 text-primary-950",
3046
3190
  fill: "none",
3047
3191
  stroke: "currentColor",
3048
3192
  viewBox: "0 0 24 24",
3049
- children: /* @__PURE__ */ jsx21(
3193
+ children: /* @__PURE__ */ jsx22(
3050
3194
  "path",
3051
3195
  {
3052
3196
  strokeLinecap: "round",
@@ -3059,20 +3203,20 @@ var Calendar = ({
3059
3203
  )
3060
3204
  }
3061
3205
  ),
3062
- /* @__PURE__ */ jsx21(
3206
+ /* @__PURE__ */ jsx22(
3063
3207
  "button",
3064
3208
  {
3065
3209
  onClick: goToNextMonth,
3066
3210
  className: "p-1 rounded-md hover:bg-background-100 transition-colors",
3067
3211
  "aria-label": "Pr\xF3ximo m\xEAs",
3068
- children: /* @__PURE__ */ jsx21(
3212
+ children: /* @__PURE__ */ jsx22(
3069
3213
  "svg",
3070
3214
  {
3071
3215
  className: "w-6 h-6 text-primary-950",
3072
3216
  fill: "none",
3073
3217
  stroke: "currentColor",
3074
3218
  viewBox: "0 0 24 24",
3075
- children: /* @__PURE__ */ jsx21(
3219
+ children: /* @__PURE__ */ jsx22(
3076
3220
  "path",
3077
3221
  {
3078
3222
  strokeLinecap: "round",
@@ -3087,7 +3231,7 @@ var Calendar = ({
3087
3231
  )
3088
3232
  ] })
3089
3233
  ] }),
3090
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ jsx21(
3234
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ jsx22(
3091
3235
  "div",
3092
3236
  {
3093
3237
  className: "h-4 flex items-center justify-center text-xs font-semibold text-text-500",
@@ -3095,13 +3239,13 @@ var Calendar = ({
3095
3239
  },
3096
3240
  day
3097
3241
  )) }),
3098
- /* @__PURE__ */ jsx21("div", { className: "grid grid-cols-7", children: calendarData.map((day) => {
3242
+ /* @__PURE__ */ jsx22("div", { className: "grid grid-cols-7", children: calendarData.map((day) => {
3099
3243
  if (!day.isCurrentMonth) {
3100
- return /* @__PURE__ */ jsx21(
3244
+ return /* @__PURE__ */ jsx22(
3101
3245
  "div",
3102
3246
  {
3103
3247
  className: "flex items-center justify-center",
3104
- children: /* @__PURE__ */ jsx21("div", { className: "w-10 h-10" })
3248
+ children: /* @__PURE__ */ jsx22("div", { className: "w-10 h-10" })
3105
3249
  },
3106
3250
  day.date.getTime()
3107
3251
  );
@@ -3111,11 +3255,11 @@ var Calendar = ({
3111
3255
  variant,
3112
3256
  showActivities
3113
3257
  );
3114
- return /* @__PURE__ */ jsx21(
3258
+ return /* @__PURE__ */ jsx22(
3115
3259
  "div",
3116
3260
  {
3117
3261
  className: "flex items-center justify-center",
3118
- children: /* @__PURE__ */ jsx21(
3262
+ children: /* @__PURE__ */ jsx22(
3119
3263
  "button",
3120
3264
  {
3121
3265
  className: `
@@ -3144,9 +3288,9 @@ var Calendar = ({
3144
3288
  var Calendar_default = Calendar;
3145
3289
 
3146
3290
  // src/components/Modal/Modal.tsx
3147
- import { useEffect as useEffect3 } from "react";
3291
+ import { useEffect as useEffect4 } from "react";
3148
3292
  import { X as X2 } from "phosphor-react";
3149
- import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
3293
+ import { jsx as jsx23, jsxs as jsxs17 } from "react/jsx-runtime";
3150
3294
  var SIZE_CLASSES10 = {
3151
3295
  xs: "max-w-[360px]",
3152
3296
  sm: "max-w-[420px]",
@@ -3166,7 +3310,7 @@ var Modal = ({
3166
3310
  footer,
3167
3311
  hideCloseButton = false
3168
3312
  }) => {
3169
- useEffect3(() => {
3313
+ useEffect4(() => {
3170
3314
  if (!isOpen || !closeOnEscape) return;
3171
3315
  const handleEscape = (event) => {
3172
3316
  if (event.key === "Escape") {
@@ -3176,7 +3320,7 @@ var Modal = ({
3176
3320
  document.addEventListener("keydown", handleEscape);
3177
3321
  return () => document.removeEventListener("keydown", handleEscape);
3178
3322
  }, [isOpen, closeOnEscape, onClose]);
3179
- useEffect3(() => {
3323
+ useEffect4(() => {
3180
3324
  const originalOverflow = document.body.style.overflow;
3181
3325
  if (isOpen) {
3182
3326
  document.body.style.overflow = "hidden";
@@ -3207,7 +3351,7 @@ var Modal = ({
3207
3351
  dialogResetClasses,
3208
3352
  className
3209
3353
  );
3210
- return /* @__PURE__ */ jsx22(
3354
+ return /* @__PURE__ */ jsx23(
3211
3355
  "div",
3212
3356
  {
3213
3357
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs",
@@ -3218,19 +3362,19 @@ var Modal = ({
3218
3362
  "aria-label": "Fechar modal clicando no fundo",
3219
3363
  children: /* @__PURE__ */ jsxs17("dialog", { className: modalClasses, "aria-labelledby": "modal-title", open: true, children: [
3220
3364
  /* @__PURE__ */ jsxs17("div", { className: "flex items-center justify-between px-6 py-6", children: [
3221
- /* @__PURE__ */ jsx22("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
3222
- !hideCloseButton && /* @__PURE__ */ jsx22(
3365
+ /* @__PURE__ */ jsx23("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
3366
+ !hideCloseButton && /* @__PURE__ */ jsx23(
3223
3367
  "button",
3224
3368
  {
3225
3369
  onClick: onClose,
3226
3370
  className: "p-1 text-text-500 hover:text-text-700 hover:bg-background-50 rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-indicator-info focus:ring-offset-2",
3227
3371
  "aria-label": "Fechar modal",
3228
- children: /* @__PURE__ */ jsx22(X2, { size: 18 })
3372
+ children: /* @__PURE__ */ jsx23(X2, { size: 18 })
3229
3373
  }
3230
3374
  )
3231
3375
  ] }),
3232
- /* @__PURE__ */ jsx22("div", { className: "px-6 pb-6", children: /* @__PURE__ */ jsx22("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
3233
- footer && /* @__PURE__ */ jsx22("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
3376
+ /* @__PURE__ */ jsx23("div", { className: "px-6 pb-6", children: /* @__PURE__ */ jsx23("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
3377
+ footer && /* @__PURE__ */ jsx23("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
3234
3378
  ] })
3235
3379
  }
3236
3380
  );
@@ -3239,17 +3383,17 @@ var Modal_default = Modal;
3239
3383
 
3240
3384
  // src/components/Accordation/Accordation.tsx
3241
3385
  import {
3242
- forwardRef as forwardRef10,
3243
- useId as useId5,
3386
+ forwardRef as forwardRef11,
3387
+ useId as useId6,
3244
3388
  useState as useState7
3245
3389
  } from "react";
3246
3390
 
3247
3391
  // src/components/Card/Card.tsx
3248
3392
  import {
3249
- forwardRef as forwardRef9,
3393
+ forwardRef as forwardRef10,
3250
3394
  Fragment as Fragment3,
3251
3395
  useState as useState6,
3252
- useRef as useRef3
3396
+ useRef as useRef4
3253
3397
  } from "react";
3254
3398
  import {
3255
3399
  CaretRight,
@@ -3263,7 +3407,7 @@ import {
3263
3407
  SpeakerSimpleX,
3264
3408
  XCircle as XCircle2
3265
3409
  } from "phosphor-react";
3266
- import { Fragment as Fragment4, jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
3410
+ import { Fragment as Fragment4, jsx as jsx24, jsxs as jsxs18 } from "react/jsx-runtime";
3267
3411
  var CARD_BASE_CLASSES = {
3268
3412
  default: "w-full bg-background border border-border-50 rounded-xl",
3269
3413
  compact: "w-full bg-background border border-border-50 rounded-lg",
@@ -3289,7 +3433,7 @@ var CARD_CURSOR_CLASSES = {
3289
3433
  default: "",
3290
3434
  pointer: "cursor-pointer"
3291
3435
  };
3292
- var CardBase = forwardRef9(
3436
+ var CardBase = forwardRef10(
3293
3437
  ({
3294
3438
  children,
3295
3439
  variant = "default",
@@ -3313,7 +3457,7 @@ var CardBase = forwardRef9(
3313
3457
  cursorClasses,
3314
3458
  className
3315
3459
  ].filter(Boolean).join(" ");
3316
- return /* @__PURE__ */ jsx23("div", { ref, className: combinedClasses, ...props, children });
3460
+ return /* @__PURE__ */ jsx24("div", { ref, className: combinedClasses, ...props, children });
3317
3461
  }
3318
3462
  );
3319
3463
  var ACTION_CARD_CLASSES = {
@@ -3340,7 +3484,7 @@ var ACTION_HEADER_CLASSES = {
3340
3484
  error: "text-error-300",
3341
3485
  info: "text-info-300"
3342
3486
  };
3343
- var CardActivitiesResults = forwardRef9(
3487
+ var CardActivitiesResults = forwardRef10(
3344
3488
  ({
3345
3489
  icon,
3346
3490
  title,
@@ -3375,7 +3519,7 @@ var CardActivitiesResults = forwardRef9(
3375
3519
  extended ? "rounded-t-xl" : "rounded-xl"
3376
3520
  ),
3377
3521
  children: [
3378
- /* @__PURE__ */ jsx23(
3522
+ /* @__PURE__ */ jsx24(
3379
3523
  "span",
3380
3524
  {
3381
3525
  className: cn(
@@ -3385,7 +3529,7 @@ var CardActivitiesResults = forwardRef9(
3385
3529
  children: icon
3386
3530
  }
3387
3531
  ),
3388
- /* @__PURE__ */ jsx23(
3532
+ /* @__PURE__ */ jsx24(
3389
3533
  Text_default,
3390
3534
  {
3391
3535
  size: "2xs",
@@ -3394,7 +3538,7 @@ var CardActivitiesResults = forwardRef9(
3394
3538
  children: title
3395
3539
  }
3396
3540
  ),
3397
- /* @__PURE__ */ jsx23(
3541
+ /* @__PURE__ */ jsx24(
3398
3542
  "p",
3399
3543
  {
3400
3544
  className: cn("text-lg font-bold truncate", actionSubTitleClasses),
@@ -3405,7 +3549,7 @@ var CardActivitiesResults = forwardRef9(
3405
3549
  }
3406
3550
  ),
3407
3551
  extended && /* @__PURE__ */ jsxs18("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
3408
- /* @__PURE__ */ jsx23(
3552
+ /* @__PURE__ */ jsx24(
3409
3553
  "p",
3410
3554
  {
3411
3555
  className: cn(
@@ -3415,14 +3559,14 @@ var CardActivitiesResults = forwardRef9(
3415
3559
  children: header
3416
3560
  }
3417
3561
  ),
3418
- /* @__PURE__ */ jsx23(Badge_default, { size: "large", action: "info", children: description })
3562
+ /* @__PURE__ */ jsx24(Badge_default, { size: "large", action: "info", children: description })
3419
3563
  ] })
3420
3564
  ]
3421
3565
  }
3422
3566
  );
3423
3567
  }
3424
3568
  );
3425
- var CardQuestions = forwardRef9(
3569
+ var CardQuestions = forwardRef10(
3426
3570
  ({
3427
3571
  header,
3428
3572
  state = "undone",
@@ -3445,9 +3589,9 @@ var CardQuestions = forwardRef9(
3445
3589
  ...props,
3446
3590
  children: [
3447
3591
  /* @__PURE__ */ jsxs18("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
3448
- /* @__PURE__ */ jsx23("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
3592
+ /* @__PURE__ */ jsx24("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
3449
3593
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-6 items-center", children: [
3450
- /* @__PURE__ */ jsx23(
3594
+ /* @__PURE__ */ jsx24(
3451
3595
  Badge_default,
3452
3596
  {
3453
3597
  size: "medium",
@@ -3458,11 +3602,11 @@ var CardQuestions = forwardRef9(
3458
3602
  ),
3459
3603
  /* @__PURE__ */ jsxs18("span", { className: "flex flex-row items-center gap-1 text-text-700 text-xs", children: [
3460
3604
  isDone ? "Nota" : "Sem nota",
3461
- isDone && /* @__PURE__ */ jsx23(Badge_default, { size: "medium", action: "success", children: "00" })
3605
+ isDone && /* @__PURE__ */ jsx24(Badge_default, { size: "medium", action: "success", children: "00" })
3462
3606
  ] })
3463
3607
  ] })
3464
3608
  ] }),
3465
- /* @__PURE__ */ jsx23("span", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx23(
3609
+ /* @__PURE__ */ jsx24("span", { className: "flex-shrink-0", children: /* @__PURE__ */ jsx24(
3466
3610
  Button_default,
3467
3611
  {
3468
3612
  size: "extra-small",
@@ -3476,7 +3620,7 @@ var CardQuestions = forwardRef9(
3476
3620
  );
3477
3621
  }
3478
3622
  );
3479
- var CardProgress = forwardRef9(
3623
+ var CardProgress = forwardRef10(
3480
3624
  ({
3481
3625
  header,
3482
3626
  subhead,
@@ -3496,16 +3640,16 @@ var CardProgress = forwardRef9(
3496
3640
  horizontal: /* @__PURE__ */ jsxs18(Fragment4, { children: [
3497
3641
  showDates && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-6 items-center", children: [
3498
3642
  initialDate && /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
3499
- /* @__PURE__ */ jsx23("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
3500
- /* @__PURE__ */ jsx23("p", { className: "text-text-600", children: initialDate })
3643
+ /* @__PURE__ */ jsx24("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
3644
+ /* @__PURE__ */ jsx24("p", { className: "text-text-600", children: initialDate })
3501
3645
  ] }),
3502
3646
  endDate && /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
3503
- /* @__PURE__ */ jsx23("p", { className: "text-text-800 font-semibold", children: "Fim" }),
3504
- /* @__PURE__ */ jsx23("p", { className: "text-text-600", children: endDate })
3647
+ /* @__PURE__ */ jsx24("p", { className: "text-text-800 font-semibold", children: "Fim" }),
3648
+ /* @__PURE__ */ jsx24("p", { className: "text-text-600", children: endDate })
3505
3649
  ] })
3506
3650
  ] }),
3507
3651
  /* @__PURE__ */ jsxs18("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
3508
- /* @__PURE__ */ jsx23(
3652
+ /* @__PURE__ */ jsx24(
3509
3653
  ProgressBar_default,
3510
3654
  {
3511
3655
  size: "small",
@@ -3530,7 +3674,7 @@ var CardProgress = forwardRef9(
3530
3674
  )
3531
3675
  ] })
3532
3676
  ] }),
3533
- vertical: /* @__PURE__ */ jsx23("p", { className: "text-sm text-text-800", children: subhead })
3677
+ vertical: /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-800", children: subhead })
3534
3678
  };
3535
3679
  return /* @__PURE__ */ jsxs18(
3536
3680
  CardBase,
@@ -3543,7 +3687,7 @@ var CardProgress = forwardRef9(
3543
3687
  className: cn(isHorizontal ? "h-20" : "", className),
3544
3688
  ...props,
3545
3689
  children: [
3546
- /* @__PURE__ */ jsx23(
3690
+ /* @__PURE__ */ jsx24(
3547
3691
  "div",
3548
3692
  {
3549
3693
  className: cn(
@@ -3564,7 +3708,7 @@ var CardProgress = forwardRef9(
3564
3708
  !isHorizontal && "gap-4"
3565
3709
  ),
3566
3710
  children: [
3567
- /* @__PURE__ */ jsx23(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
3711
+ /* @__PURE__ */ jsx24(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
3568
3712
  contentComponent[direction]
3569
3713
  ]
3570
3714
  }
@@ -3574,7 +3718,7 @@ var CardProgress = forwardRef9(
3574
3718
  );
3575
3719
  }
3576
3720
  );
3577
- var CardTopic = forwardRef9(
3721
+ var CardTopic = forwardRef10(
3578
3722
  ({
3579
3723
  header,
3580
3724
  subHead,
@@ -3595,13 +3739,13 @@ var CardTopic = forwardRef9(
3595
3739
  className: cn("justify-center gap-2 py-2 px-4", className),
3596
3740
  ...props,
3597
3741
  children: [
3598
- subHead && /* @__PURE__ */ jsx23("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ jsxs18(Fragment3, { children: [
3599
- /* @__PURE__ */ jsx23("p", { children: text }),
3600
- index < subHead.length - 1 && /* @__PURE__ */ jsx23("p", { children: "\u2022" })
3742
+ subHead && /* @__PURE__ */ jsx24("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ jsxs18(Fragment3, { children: [
3743
+ /* @__PURE__ */ jsx24("p", { children: text }),
3744
+ index < subHead.length - 1 && /* @__PURE__ */ jsx24("p", { children: "\u2022" })
3601
3745
  ] }, `${text} - ${index}`)) }),
3602
- /* @__PURE__ */ jsx23("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
3746
+ /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
3603
3747
  /* @__PURE__ */ jsxs18("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
3604
- /* @__PURE__ */ jsx23(
3748
+ /* @__PURE__ */ jsx24(
3605
3749
  ProgressBar_default,
3606
3750
  {
3607
3751
  size: "small",
@@ -3630,7 +3774,7 @@ var CardTopic = forwardRef9(
3630
3774
  );
3631
3775
  }
3632
3776
  );
3633
- var CardPerformance = forwardRef9(
3777
+ var CardPerformance = forwardRef10(
3634
3778
  ({
3635
3779
  header,
3636
3780
  progress,
@@ -3660,8 +3804,8 @@ var CardPerformance = forwardRef9(
3660
3804
  children: [
3661
3805
  /* @__PURE__ */ jsxs18("div", { className: "w-full flex flex-col justify-between gap-2", children: [
3662
3806
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-between items-center gap-2", children: [
3663
- /* @__PURE__ */ jsx23("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3664
- actionVariant === "button" && /* @__PURE__ */ jsx23(
3807
+ /* @__PURE__ */ jsx24("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3808
+ actionVariant === "button" && /* @__PURE__ */ jsx24(
3665
3809
  Button_default,
3666
3810
  {
3667
3811
  variant: "outline",
@@ -3672,16 +3816,16 @@ var CardPerformance = forwardRef9(
3672
3816
  }
3673
3817
  )
3674
3818
  ] }),
3675
- /* @__PURE__ */ jsx23("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ jsx23(
3819
+ /* @__PURE__ */ jsx24("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ jsx24(
3676
3820
  ProgressBar_default,
3677
3821
  {
3678
3822
  value: progress,
3679
3823
  label: `${progress}% ${labelProgress}`,
3680
3824
  variant: progressVariant
3681
3825
  }
3682
- ) : /* @__PURE__ */ jsx23("p", { className: "text-xs text-text-600 truncate", children: description }) })
3826
+ ) : /* @__PURE__ */ jsx24("p", { className: "text-xs text-text-600 truncate", children: description }) })
3683
3827
  ] }),
3684
- actionVariant == "caret" && /* @__PURE__ */ jsx23(
3828
+ actionVariant == "caret" && /* @__PURE__ */ jsx24(
3685
3829
  CaretRight,
3686
3830
  {
3687
3831
  className: "size-4.5 text-text-800 cursor-pointer",
@@ -3693,7 +3837,7 @@ var CardPerformance = forwardRef9(
3693
3837
  );
3694
3838
  }
3695
3839
  );
3696
- var CardResults = forwardRef9(
3840
+ var CardResults = forwardRef10(
3697
3841
  ({
3698
3842
  header,
3699
3843
  correct_answers,
@@ -3715,7 +3859,7 @@ var CardResults = forwardRef9(
3715
3859
  className: cn("items-center cursor-pointer pr-4", className),
3716
3860
  ...props,
3717
3861
  children: [
3718
- /* @__PURE__ */ jsx23(
3862
+ /* @__PURE__ */ jsx24(
3719
3863
  "div",
3720
3864
  {
3721
3865
  className: cn(
@@ -3735,7 +3879,7 @@ var CardResults = forwardRef9(
3735
3879
  isRow ? "flex-row items-center gap-2" : "flex-col"
3736
3880
  ),
3737
3881
  children: [
3738
- /* @__PURE__ */ jsx23("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3882
+ /* @__PURE__ */ jsx24("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3739
3883
  /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center", children: [
3740
3884
  /* @__PURE__ */ jsxs18(
3741
3885
  Badge_default,
@@ -3743,7 +3887,7 @@ var CardResults = forwardRef9(
3743
3887
  action: "success",
3744
3888
  variant: "solid",
3745
3889
  size: "large",
3746
- iconLeft: /* @__PURE__ */ jsx23(CheckCircle3, {}),
3890
+ iconLeft: /* @__PURE__ */ jsx24(CheckCircle3, {}),
3747
3891
  children: [
3748
3892
  correct_answers,
3749
3893
  " Corretas"
@@ -3756,7 +3900,7 @@ var CardResults = forwardRef9(
3756
3900
  action: "error",
3757
3901
  variant: "solid",
3758
3902
  size: "large",
3759
- iconLeft: /* @__PURE__ */ jsx23(XCircle2, {}),
3903
+ iconLeft: /* @__PURE__ */ jsx24(XCircle2, {}),
3760
3904
  children: [
3761
3905
  incorrect_answers,
3762
3906
  " Incorretas"
@@ -3767,15 +3911,15 @@ var CardResults = forwardRef9(
3767
3911
  ]
3768
3912
  }
3769
3913
  ),
3770
- /* @__PURE__ */ jsx23(CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
3914
+ /* @__PURE__ */ jsx24(CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
3771
3915
  ]
3772
3916
  }
3773
3917
  );
3774
3918
  }
3775
3919
  );
3776
- var CardStatus = forwardRef9(
3920
+ var CardStatus = forwardRef10(
3777
3921
  ({ header, className, status, label, ...props }, ref) => {
3778
- return /* @__PURE__ */ jsx23(
3922
+ return /* @__PURE__ */ jsx24(
3779
3923
  CardBase,
3780
3924
  {
3781
3925
  ref,
@@ -3785,27 +3929,27 @@ var CardStatus = forwardRef9(
3785
3929
  className: cn("items-center cursor-pointer", className),
3786
3930
  ...props,
3787
3931
  children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
3788
- /* @__PURE__ */ jsx23("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3932
+ /* @__PURE__ */ jsx24("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
3789
3933
  /* @__PURE__ */ jsxs18("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
3790
- status && /* @__PURE__ */ jsx23(
3934
+ status && /* @__PURE__ */ jsx24(
3791
3935
  Badge_default,
3792
3936
  {
3793
3937
  action: status == "correct" ? "success" : "error",
3794
3938
  variant: "solid",
3795
3939
  size: "medium",
3796
- iconLeft: /* @__PURE__ */ jsx23(CheckCircle3, {}),
3940
+ iconLeft: /* @__PURE__ */ jsx24(CheckCircle3, {}),
3797
3941
  children: status == "correct" ? "Correta" : "Incorreta"
3798
3942
  }
3799
3943
  ),
3800
- label && /* @__PURE__ */ jsx23("p", { className: "text-sm text-text-800", children: label })
3944
+ label && /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-800", children: label })
3801
3945
  ] }),
3802
- /* @__PURE__ */ jsx23(CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
3946
+ /* @__PURE__ */ jsx24(CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
3803
3947
  ] })
3804
3948
  }
3805
3949
  );
3806
3950
  }
3807
3951
  );
3808
- var CardSettings = forwardRef9(
3952
+ var CardSettings = forwardRef10(
3809
3953
  ({ header, className, icon, ...props }, ref) => {
3810
3954
  return /* @__PURE__ */ jsxs18(
3811
3955
  CardBase,
@@ -3820,15 +3964,15 @@ var CardSettings = forwardRef9(
3820
3964
  ),
3821
3965
  ...props,
3822
3966
  children: [
3823
- /* @__PURE__ */ jsx23("span", { className: "[&>svg]:size-6", children: icon }),
3824
- /* @__PURE__ */ jsx23("p", { className: "w-full text-sm truncate", children: header }),
3825
- /* @__PURE__ */ jsx23(CaretRight, { size: 24, className: "cursor-pointer" })
3967
+ /* @__PURE__ */ jsx24("span", { className: "[&>svg]:size-6", children: icon }),
3968
+ /* @__PURE__ */ jsx24("p", { className: "w-full text-sm truncate", children: header }),
3969
+ /* @__PURE__ */ jsx24(CaretRight, { size: 24, className: "cursor-pointer" })
3826
3970
  ]
3827
3971
  }
3828
3972
  );
3829
3973
  }
3830
3974
  );
3831
- var CardSupport = forwardRef9(
3975
+ var CardSupport = forwardRef10(
3832
3976
  ({ header, className, direction = "col", children, ...props }, ref) => {
3833
3977
  return /* @__PURE__ */ jsxs18(
3834
3978
  CardBase,
@@ -3851,18 +3995,18 @@ var CardSupport = forwardRef9(
3851
3995
  direction == "col" ? "flex-col" : "flex-row items-center"
3852
3996
  ),
3853
3997
  children: [
3854
- /* @__PURE__ */ jsx23("span", { className: "w-full min-w-0", children: /* @__PURE__ */ jsx23("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
3855
- /* @__PURE__ */ jsx23("span", { className: "flex flex-row gap-1", children })
3998
+ /* @__PURE__ */ jsx24("span", { className: "w-full min-w-0", children: /* @__PURE__ */ jsx24("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
3999
+ /* @__PURE__ */ jsx24("span", { className: "flex flex-row gap-1", children })
3856
4000
  ]
3857
4001
  }
3858
4002
  ),
3859
- /* @__PURE__ */ jsx23(CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
4003
+ /* @__PURE__ */ jsx24(CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
3860
4004
  ]
3861
4005
  }
3862
4006
  );
3863
4007
  }
3864
4008
  );
3865
- var CardForum = forwardRef9(
4009
+ var CardForum = forwardRef10(
3866
4010
  ({
3867
4011
  title,
3868
4012
  content,
@@ -3887,7 +4031,7 @@ var CardForum = forwardRef9(
3887
4031
  className: cn("w-auto h-auto gap-3", className),
3888
4032
  ...props,
3889
4033
  children: [
3890
- /* @__PURE__ */ jsx23(
4034
+ /* @__PURE__ */ jsx24(
3891
4035
  "button",
3892
4036
  {
3893
4037
  type: "button",
@@ -3898,7 +4042,7 @@ var CardForum = forwardRef9(
3898
4042
  ),
3899
4043
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
3900
4044
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
3901
- /* @__PURE__ */ jsx23("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
4045
+ /* @__PURE__ */ jsx24("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
3902
4046
  /* @__PURE__ */ jsxs18("p", { className: "text-xs text-text-600", children: [
3903
4047
  "\u2022 ",
3904
4048
  date,
@@ -3906,7 +4050,7 @@ var CardForum = forwardRef9(
3906
4050
  hour
3907
4051
  ] })
3908
4052
  ] }),
3909
- /* @__PURE__ */ jsx23("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
4053
+ /* @__PURE__ */ jsx24("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
3910
4054
  /* @__PURE__ */ jsxs18(
3911
4055
  "button",
3912
4056
  {
@@ -3915,7 +4059,7 @@ var CardForum = forwardRef9(
3915
4059
  onClick: () => onClickComments?.(valueComments),
3916
4060
  className: "text-text-600 flex flex-row gap-2 items-center",
3917
4061
  children: [
3918
- /* @__PURE__ */ jsx23(ChatCircleText, { "aria-hidden": "true", size: 16 }),
4062
+ /* @__PURE__ */ jsx24(ChatCircleText, { "aria-hidden": "true", size: 16 }),
3919
4063
  /* @__PURE__ */ jsxs18("p", { className: "text-xs", children: [
3920
4064
  comments,
3921
4065
  " respostas"
@@ -3929,7 +4073,7 @@ var CardForum = forwardRef9(
3929
4073
  );
3930
4074
  }
3931
4075
  );
3932
- var CardAudio = forwardRef9(
4076
+ var CardAudio = forwardRef10(
3933
4077
  ({
3934
4078
  src,
3935
4079
  title,
@@ -3948,7 +4092,7 @@ var CardAudio = forwardRef9(
3948
4092
  const [duration, setDuration] = useState6(0);
3949
4093
  const [volume, setVolume] = useState6(1);
3950
4094
  const [showVolumeControl, setShowVolumeControl] = useState6(false);
3951
- const audioRef = useRef3(null);
4095
+ const audioRef = useRef4(null);
3952
4096
  const formatTime = (time) => {
3953
4097
  const minutes = Math.floor(time / 60);
3954
4098
  const seconds = Math.floor(time % 60);
@@ -4003,12 +4147,12 @@ var CardAudio = forwardRef9(
4003
4147
  };
4004
4148
  const getVolumeIcon = () => {
4005
4149
  if (volume === 0) {
4006
- return /* @__PURE__ */ jsx23(SpeakerSimpleX, {});
4150
+ return /* @__PURE__ */ jsx24(SpeakerSimpleX, {});
4007
4151
  }
4008
4152
  if (volume < 0.5) {
4009
- return /* @__PURE__ */ jsx23(SpeakerLow, {});
4153
+ return /* @__PURE__ */ jsx24(SpeakerLow, {});
4010
4154
  }
4011
- return /* @__PURE__ */ jsx23(SpeakerHigh, {});
4155
+ return /* @__PURE__ */ jsx24(SpeakerHigh, {});
4012
4156
  };
4013
4157
  return /* @__PURE__ */ jsxs18(
4014
4158
  CardBase,
@@ -4020,7 +4164,7 @@ var CardAudio = forwardRef9(
4020
4164
  className: cn("w-auto h-14 items-center gap-2", className),
4021
4165
  ...props,
4022
4166
  children: [
4023
- /* @__PURE__ */ jsx23(
4167
+ /* @__PURE__ */ jsx24(
4024
4168
  "audio",
4025
4169
  {
4026
4170
  ref: audioRef,
@@ -4032,7 +4176,7 @@ var CardAudio = forwardRef9(
4032
4176
  onEnded: handleEnded,
4033
4177
  "data-testid": "audio-element",
4034
4178
  "aria-label": title,
4035
- children: tracks ? tracks.map((track) => /* @__PURE__ */ jsx23(
4179
+ children: tracks ? tracks.map((track) => /* @__PURE__ */ jsx24(
4036
4180
  "track",
4037
4181
  {
4038
4182
  kind: track.kind,
@@ -4042,7 +4186,7 @@ var CardAudio = forwardRef9(
4042
4186
  default: track.default
4043
4187
  },
4044
4188
  track.src
4045
- )) : /* @__PURE__ */ jsx23(
4189
+ )) : /* @__PURE__ */ jsx24(
4046
4190
  "track",
4047
4191
  {
4048
4192
  kind: "captions",
@@ -4053,7 +4197,7 @@ var CardAudio = forwardRef9(
4053
4197
  )
4054
4198
  }
4055
4199
  ),
4056
- /* @__PURE__ */ jsx23(
4200
+ /* @__PURE__ */ jsx24(
4057
4201
  "button",
4058
4202
  {
4059
4203
  type: "button",
@@ -4061,14 +4205,14 @@ var CardAudio = forwardRef9(
4061
4205
  disabled: !src,
4062
4206
  className: "cursor-pointer text-text-950 hover:text-primary-600 disabled:text-text-400 disabled:cursor-not-allowed",
4063
4207
  "aria-label": isPlaying ? "Pausar" : "Reproduzir",
4064
- children: isPlaying ? /* @__PURE__ */ jsx23("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ jsxs18("div", { className: "flex gap-0.5", children: [
4065
- /* @__PURE__ */ jsx23("div", { className: "w-1 h-4 bg-current rounded-sm" }),
4066
- /* @__PURE__ */ jsx23("div", { className: "w-1 h-4 bg-current rounded-sm" })
4067
- ] }) }) : /* @__PURE__ */ jsx23(Play, { size: 24 })
4208
+ children: isPlaying ? /* @__PURE__ */ jsx24("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ jsxs18("div", { className: "flex gap-0.5", children: [
4209
+ /* @__PURE__ */ jsx24("div", { className: "w-1 h-4 bg-current rounded-sm" }),
4210
+ /* @__PURE__ */ jsx24("div", { className: "w-1 h-4 bg-current rounded-sm" })
4211
+ ] }) }) : /* @__PURE__ */ jsx24(Play, { size: 24 })
4068
4212
  }
4069
4213
  ),
4070
- /* @__PURE__ */ jsx23("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(currentTime) }),
4071
- /* @__PURE__ */ jsx23("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ jsx23(
4214
+ /* @__PURE__ */ jsx24("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(currentTime) }),
4215
+ /* @__PURE__ */ jsx24("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ jsx24(
4072
4216
  "button",
4073
4217
  {
4074
4218
  type: "button",
@@ -4083,7 +4227,7 @@ var CardAudio = forwardRef9(
4083
4227
  }
4084
4228
  },
4085
4229
  "aria-label": "Barra de progresso do \xE1udio",
4086
- children: /* @__PURE__ */ jsx23(
4230
+ children: /* @__PURE__ */ jsx24(
4087
4231
  "div",
4088
4232
  {
4089
4233
  className: "h-full bg-primary-600 rounded-full transition-all duration-100",
@@ -4094,19 +4238,19 @@ var CardAudio = forwardRef9(
4094
4238
  )
4095
4239
  }
4096
4240
  ) }),
4097
- /* @__PURE__ */ jsx23("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(duration) }),
4241
+ /* @__PURE__ */ jsx24("p", { className: "text-text-800 text-sm font-medium min-w-[2.5rem]", children: formatTime(duration) }),
4098
4242
  /* @__PURE__ */ jsxs18("div", { className: "relative", children: [
4099
- /* @__PURE__ */ jsx23(
4243
+ /* @__PURE__ */ jsx24(
4100
4244
  "button",
4101
4245
  {
4102
4246
  type: "button",
4103
4247
  onClick: toggleVolumeControl,
4104
4248
  className: "cursor-pointer text-text-950 hover:text-primary-600",
4105
4249
  "aria-label": "Controle de volume",
4106
- children: /* @__PURE__ */ jsx23("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
4250
+ children: /* @__PURE__ */ jsx24("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
4107
4251
  }
4108
4252
  ),
4109
- showVolumeControl && /* @__PURE__ */ jsx23(
4253
+ showVolumeControl && /* @__PURE__ */ jsx24(
4110
4254
  "button",
4111
4255
  {
4112
4256
  type: "button",
@@ -4116,7 +4260,7 @@ var CardAudio = forwardRef9(
4116
4260
  setShowVolumeControl(false);
4117
4261
  }
4118
4262
  },
4119
- children: /* @__PURE__ */ jsx23(
4263
+ children: /* @__PURE__ */ jsx24(
4120
4264
  "input",
4121
4265
  {
4122
4266
  type: "range",
@@ -4157,7 +4301,7 @@ var CardAudio = forwardRef9(
4157
4301
  }
4158
4302
  )
4159
4303
  ] }),
4160
- /* @__PURE__ */ jsx23(
4304
+ /* @__PURE__ */ jsx24(
4161
4305
  DotsThreeVertical,
4162
4306
  {
4163
4307
  size: 24,
@@ -4175,10 +4319,10 @@ var SIMULADO_BACKGROUND_CLASSES = {
4175
4319
  simuladao: "bg-exam-3",
4176
4320
  vestibular: "bg-exam-4"
4177
4321
  };
4178
- var CardSimulado = forwardRef9(
4322
+ var CardSimulado = forwardRef10(
4179
4323
  ({ title, duration, info, backgroundColor, className, ...props }, ref) => {
4180
4324
  const backgroundClass = SIMULADO_BACKGROUND_CLASSES[backgroundColor];
4181
- return /* @__PURE__ */ jsx23(
4325
+ return /* @__PURE__ */ jsx24(
4182
4326
  CardBase,
4183
4327
  {
4184
4328
  ref,
@@ -4193,16 +4337,16 @@ var CardSimulado = forwardRef9(
4193
4337
  ...props,
4194
4338
  children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center w-full gap-4", children: [
4195
4339
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
4196
- /* @__PURE__ */ jsx23(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
4340
+ /* @__PURE__ */ jsx24(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
4197
4341
  /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-4 text-text-700", children: [
4198
4342
  duration && /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-1", children: [
4199
- /* @__PURE__ */ jsx23(Clock, { size: 16, className: "flex-shrink-0" }),
4200
- /* @__PURE__ */ jsx23(Text_default, { size: "sm", children: duration })
4343
+ /* @__PURE__ */ jsx24(Clock, { size: 16, className: "flex-shrink-0" }),
4344
+ /* @__PURE__ */ jsx24(Text_default, { size: "sm", children: duration })
4201
4345
  ] }),
4202
- /* @__PURE__ */ jsx23(Text_default, { size: "sm", className: "truncate", children: info })
4346
+ /* @__PURE__ */ jsx24(Text_default, { size: "sm", className: "truncate", children: info })
4203
4347
  ] })
4204
4348
  ] }),
4205
- /* @__PURE__ */ jsx23(
4349
+ /* @__PURE__ */ jsx24(
4206
4350
  CaretRight,
4207
4351
  {
4208
4352
  size: 24,
@@ -4215,7 +4359,7 @@ var CardSimulado = forwardRef9(
4215
4359
  );
4216
4360
  }
4217
4361
  );
4218
- var CardTest = forwardRef9(
4362
+ var CardTest = forwardRef10(
4219
4363
  ({
4220
4364
  title,
4221
4365
  duration,
@@ -4247,7 +4391,7 @@ var CardTest = forwardRef9(
4247
4391
  const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
4248
4392
  const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
4249
4393
  if (isSelectable) {
4250
- return /* @__PURE__ */ jsx23(
4394
+ return /* @__PURE__ */ jsx24(
4251
4395
  "button",
4252
4396
  {
4253
4397
  ref,
@@ -4260,7 +4404,7 @@ var CardTest = forwardRef9(
4260
4404
  "aria-pressed": selected,
4261
4405
  ...props,
4262
4406
  children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
4263
- /* @__PURE__ */ jsx23(
4407
+ /* @__PURE__ */ jsx24(
4264
4408
  Text_default,
4265
4409
  {
4266
4410
  size: "md",
@@ -4271,8 +4415,8 @@ var CardTest = forwardRef9(
4271
4415
  ),
4272
4416
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
4273
4417
  duration && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
4274
- /* @__PURE__ */ jsx23(Clock, { size: 16, className: "text-text-700" }),
4275
- /* @__PURE__ */ jsx23(
4418
+ /* @__PURE__ */ jsx24(Clock, { size: 16, className: "text-text-700" }),
4419
+ /* @__PURE__ */ jsx24(
4276
4420
  Text_default,
4277
4421
  {
4278
4422
  size: "sm",
@@ -4281,7 +4425,7 @@ var CardTest = forwardRef9(
4281
4425
  }
4282
4426
  )
4283
4427
  ] }),
4284
- /* @__PURE__ */ jsx23(
4428
+ /* @__PURE__ */ jsx24(
4285
4429
  Text_default,
4286
4430
  {
4287
4431
  size: "sm",
@@ -4294,14 +4438,14 @@ var CardTest = forwardRef9(
4294
4438
  }
4295
4439
  );
4296
4440
  }
4297
- return /* @__PURE__ */ jsx23(
4441
+ return /* @__PURE__ */ jsx24(
4298
4442
  "div",
4299
4443
  {
4300
4444
  ref,
4301
4445
  className: cn(`${baseClasses} ${className}`.trim()),
4302
4446
  ...props,
4303
4447
  children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
4304
- /* @__PURE__ */ jsx23(
4448
+ /* @__PURE__ */ jsx24(
4305
4449
  Text_default,
4306
4450
  {
4307
4451
  size: "md",
@@ -4312,8 +4456,8 @@ var CardTest = forwardRef9(
4312
4456
  ),
4313
4457
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
4314
4458
  duration && /* @__PURE__ */ jsxs18("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
4315
- /* @__PURE__ */ jsx23(Clock, { size: 16, className: "text-text-700" }),
4316
- /* @__PURE__ */ jsx23(
4459
+ /* @__PURE__ */ jsx24(Clock, { size: 16, className: "text-text-700" }),
4460
+ /* @__PURE__ */ jsx24(
4317
4461
  Text_default,
4318
4462
  {
4319
4463
  size: "sm",
@@ -4322,7 +4466,7 @@ var CardTest = forwardRef9(
4322
4466
  }
4323
4467
  )
4324
4468
  ] }),
4325
- /* @__PURE__ */ jsx23(
4469
+ /* @__PURE__ */ jsx24(
4326
4470
  Text_default,
4327
4471
  {
4328
4472
  size: "sm",
@@ -4358,15 +4502,15 @@ var SIMULATION_TYPE_STYLES = {
4358
4502
  text: "Vestibular"
4359
4503
  }
4360
4504
  };
4361
- var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, ...props }, ref) => {
4362
- return /* @__PURE__ */ jsx23(
4505
+ var CardSimulationHistory = forwardRef10(({ data, onSimulationClick, className, ...props }, ref) => {
4506
+ return /* @__PURE__ */ jsx24(
4363
4507
  "div",
4364
4508
  {
4365
4509
  ref,
4366
4510
  className: cn("w-full max-w-[992px] h-auto", className),
4367
4511
  ...props,
4368
4512
  children: /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-0", children: [
4369
- data.map((section, sectionIndex) => /* @__PURE__ */ jsx23("div", { className: "flex flex-col", children: /* @__PURE__ */ jsxs18(
4513
+ data.map((section, sectionIndex) => /* @__PURE__ */ jsx24("div", { className: "flex flex-col", children: /* @__PURE__ */ jsxs18(
4370
4514
  "div",
4371
4515
  {
4372
4516
  className: cn(
@@ -4374,7 +4518,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4374
4518
  sectionIndex === 0 ? "rounded-t-3xl" : ""
4375
4519
  ),
4376
4520
  children: [
4377
- /* @__PURE__ */ jsx23(
4521
+ /* @__PURE__ */ jsx24(
4378
4522
  Text_default,
4379
4523
  {
4380
4524
  size: "xs",
@@ -4383,9 +4527,9 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4383
4527
  children: section.date
4384
4528
  }
4385
4529
  ),
4386
- /* @__PURE__ */ jsx23("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
4530
+ /* @__PURE__ */ jsx24("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
4387
4531
  const typeStyles = SIMULATION_TYPE_STYLES[simulation.type];
4388
- return /* @__PURE__ */ jsx23(
4532
+ return /* @__PURE__ */ jsx24(
4389
4533
  CardBase,
4390
4534
  {
4391
4535
  layout: "horizontal",
@@ -4399,7 +4543,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4399
4543
  onClick: () => onSimulationClick?.(simulation),
4400
4544
  children: /* @__PURE__ */ jsxs18("div", { className: "flex justify-between items-center w-full gap-2", children: [
4401
4545
  /* @__PURE__ */ jsxs18("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
4402
- /* @__PURE__ */ jsx23(
4546
+ /* @__PURE__ */ jsx24(
4403
4547
  Text_default,
4404
4548
  {
4405
4549
  size: "lg",
@@ -4409,7 +4553,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4409
4553
  }
4410
4554
  ),
4411
4555
  /* @__PURE__ */ jsxs18("div", { className: "flex items-center gap-2", children: [
4412
- /* @__PURE__ */ jsx23(
4556
+ /* @__PURE__ */ jsx24(
4413
4557
  Badge_default,
4414
4558
  {
4415
4559
  variant: "examsOutlined",
@@ -4418,10 +4562,10 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4418
4562
  children: typeStyles.text
4419
4563
  }
4420
4564
  ),
4421
- /* @__PURE__ */ jsx23(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
4565
+ /* @__PURE__ */ jsx24(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
4422
4566
  ] })
4423
4567
  ] }),
4424
- /* @__PURE__ */ jsx23(
4568
+ /* @__PURE__ */ jsx24(
4425
4569
  CaretRight,
4426
4570
  {
4427
4571
  size: 24,
@@ -4437,7 +4581,7 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4437
4581
  ]
4438
4582
  }
4439
4583
  ) }, section.date)),
4440
- data.length > 0 && /* @__PURE__ */ jsx23("div", { className: "w-full h-6 bg-white rounded-b-3xl" })
4584
+ data.length > 0 && /* @__PURE__ */ jsx24("div", { className: "w-full h-6 bg-white rounded-b-3xl" })
4441
4585
  ] })
4442
4586
  }
4443
4587
  );
@@ -4445,8 +4589,8 @@ var CardSimulationHistory = forwardRef9(({ data, onSimulationClick, className, .
4445
4589
 
4446
4590
  // src/components/Accordation/Accordation.tsx
4447
4591
  import { CaretRight as CaretRight2 } from "phosphor-react";
4448
- import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
4449
- var CardAccordation = forwardRef10(
4592
+ import { jsx as jsx25, jsxs as jsxs19 } from "react/jsx-runtime";
4593
+ var CardAccordation = forwardRef11(
4450
4594
  ({
4451
4595
  trigger,
4452
4596
  children,
@@ -4456,7 +4600,7 @@ var CardAccordation = forwardRef10(
4456
4600
  ...props
4457
4601
  }, ref) => {
4458
4602
  const [isExpanded, setIsExpanded] = useState7(defaultExpanded);
4459
- const contentId = useId5();
4603
+ const contentId = useId6();
4460
4604
  const handleToggle = () => {
4461
4605
  const newExpanded = !isExpanded;
4462
4606
  setIsExpanded(newExpanded);
@@ -4488,7 +4632,7 @@ var CardAccordation = forwardRef10(
4488
4632
  "aria-controls": "accordion-content",
4489
4633
  children: [
4490
4634
  trigger,
4491
- /* @__PURE__ */ jsx24(
4635
+ /* @__PURE__ */ jsx25(
4492
4636
  CaretRight2,
4493
4637
  {
4494
4638
  size: 20,
@@ -4502,7 +4646,7 @@ var CardAccordation = forwardRef10(
4502
4646
  ]
4503
4647
  }
4504
4648
  ),
4505
- /* @__PURE__ */ jsx24(
4649
+ /* @__PURE__ */ jsx25(
4506
4650
  "div",
4507
4651
  {
4508
4652
  id: contentId,
@@ -4511,7 +4655,7 @@ var CardAccordation = forwardRef10(
4511
4655
  isExpanded ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
4512
4656
  ),
4513
4657
  "data-testid": "accordion-content",
4514
- children: /* @__PURE__ */ jsx24("div", { className: "p-4 pt-0 border-border-50", children })
4658
+ children: /* @__PURE__ */ jsx25("div", { className: "p-4 pt-0 border-border-50", children })
4515
4659
  }
4516
4660
  )
4517
4661
  ]
@@ -4522,8 +4666,8 @@ var CardAccordation = forwardRef10(
4522
4666
 
4523
4667
  // src/components/Alternative/Alternative.tsx
4524
4668
  import { CheckCircle as CheckCircle4, XCircle as XCircle3 } from "phosphor-react";
4525
- import { forwardRef as forwardRef11, useId as useId6, useState as useState8 } from "react";
4526
- import { jsx as jsx25, jsxs as jsxs20 } from "react/jsx-runtime";
4669
+ import { forwardRef as forwardRef12, useId as useId7, useState as useState8 } from "react";
4670
+ import { jsx as jsx26, jsxs as jsxs20 } from "react/jsx-runtime";
4527
4671
  var AlternativesList = ({
4528
4672
  alternatives,
4529
4673
  name,
@@ -4536,7 +4680,7 @@ var AlternativesList = ({
4536
4680
  mode = "interactive",
4537
4681
  selectedValue
4538
4682
  }) => {
4539
- const uniqueId = useId6();
4683
+ const uniqueId = useId7();
4540
4684
  const groupName = name || `alternatives-${uniqueId}`;
4541
4685
  const [actualValue, setActualValue] = useState8(value);
4542
4686
  const isReadonly = mode === "readonly";
@@ -4554,9 +4698,9 @@ var AlternativesList = ({
4554
4698
  const getStatusBadge = (status) => {
4555
4699
  switch (status) {
4556
4700
  case "correct":
4557
- return /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx25(CheckCircle4, {}), children: "Resposta correta" });
4701
+ return /* @__PURE__ */ jsx26(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx26(CheckCircle4, {}), children: "Resposta correta" });
4558
4702
  case "incorrect":
4559
- return /* @__PURE__ */ jsx25(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx25(XCircle3, {}), children: "Resposta incorreta" });
4703
+ return /* @__PURE__ */ jsx26(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx26(XCircle3, {}), children: "Resposta incorreta" });
4560
4704
  default:
4561
4705
  return null;
4562
4706
  }
@@ -4586,10 +4730,10 @@ var AlternativesList = ({
4586
4730
  const renderRadio = () => {
4587
4731
  const radioClasses = `w-6 h-6 rounded-full border-2 cursor-default transition-all duration-200 flex items-center justify-center ${isUserSelected ? "border-primary-950 bg-background" : "border-border-400 bg-background"}`;
4588
4732
  const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
4589
- return /* @__PURE__ */ jsx25("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx25("div", { className: dotClasses }) });
4733
+ return /* @__PURE__ */ jsx26("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx26("div", { className: dotClasses }) });
4590
4734
  };
4591
4735
  if (layout === "detailed") {
4592
- return /* @__PURE__ */ jsx25(
4736
+ return /* @__PURE__ */ jsx26(
4593
4737
  "div",
4594
4738
  {
4595
4739
  className: cn(
@@ -4599,9 +4743,9 @@ var AlternativesList = ({
4599
4743
  ),
4600
4744
  children: /* @__PURE__ */ jsxs20("div", { className: "flex items-start justify-between gap-3", children: [
4601
4745
  /* @__PURE__ */ jsxs20("div", { className: "flex items-start gap-3 flex-1", children: [
4602
- /* @__PURE__ */ jsx25("div", { className: "mt-1", children: renderRadio() }),
4746
+ /* @__PURE__ */ jsx26("div", { className: "mt-1", children: renderRadio() }),
4603
4747
  /* @__PURE__ */ jsxs20("div", { className: "flex-1", children: [
4604
- /* @__PURE__ */ jsx25(
4748
+ /* @__PURE__ */ jsx26(
4605
4749
  "p",
4606
4750
  {
4607
4751
  className: cn(
@@ -4611,10 +4755,10 @@ var AlternativesList = ({
4611
4755
  children: alternative.label
4612
4756
  }
4613
4757
  ),
4614
- alternative.description && /* @__PURE__ */ jsx25("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
4758
+ alternative.description && /* @__PURE__ */ jsx26("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
4615
4759
  ] })
4616
4760
  ] }),
4617
- statusBadge && /* @__PURE__ */ jsx25("div", { className: "flex-shrink-0", children: statusBadge })
4761
+ statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
4618
4762
  ] })
4619
4763
  },
4620
4764
  alternativeId
@@ -4631,7 +4775,7 @@ var AlternativesList = ({
4631
4775
  children: [
4632
4776
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 flex-1", children: [
4633
4777
  renderRadio(),
4634
- /* @__PURE__ */ jsx25(
4778
+ /* @__PURE__ */ jsx26(
4635
4779
  "span",
4636
4780
  {
4637
4781
  className: cn(
@@ -4642,14 +4786,14 @@ var AlternativesList = ({
4642
4786
  }
4643
4787
  )
4644
4788
  ] }),
4645
- statusBadge && /* @__PURE__ */ jsx25("div", { className: "flex-shrink-0", children: statusBadge })
4789
+ statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
4646
4790
  ]
4647
4791
  },
4648
4792
  alternativeId
4649
4793
  );
4650
4794
  };
4651
4795
  if (isReadonly) {
4652
- return /* @__PURE__ */ jsx25(
4796
+ return /* @__PURE__ */ jsx26(
4653
4797
  "div",
4654
4798
  {
4655
4799
  className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
@@ -4659,7 +4803,7 @@ var AlternativesList = ({
4659
4803
  }
4660
4804
  );
4661
4805
  }
4662
- return /* @__PURE__ */ jsx25(
4806
+ return /* @__PURE__ */ jsx26(
4663
4807
  RadioGroup,
4664
4808
  {
4665
4809
  name: groupName,
@@ -4676,7 +4820,7 @@ var AlternativesList = ({
4676
4820
  const statusStyles = getStatusStyles(alternative.status, false);
4677
4821
  const statusBadge = getStatusBadge(alternative.status);
4678
4822
  if (layout === "detailed") {
4679
- return /* @__PURE__ */ jsx25(
4823
+ return /* @__PURE__ */ jsx26(
4680
4824
  "div",
4681
4825
  {
4682
4826
  className: cn(
@@ -4686,7 +4830,7 @@ var AlternativesList = ({
4686
4830
  ),
4687
4831
  children: /* @__PURE__ */ jsxs20("div", { className: "flex items-start justify-between gap-3", children: [
4688
4832
  /* @__PURE__ */ jsxs20("div", { className: "flex items-start gap-3 flex-1", children: [
4689
- /* @__PURE__ */ jsx25(
4833
+ /* @__PURE__ */ jsx26(
4690
4834
  RadioGroupItem,
4691
4835
  {
4692
4836
  value: alternative.value,
@@ -4696,7 +4840,7 @@ var AlternativesList = ({
4696
4840
  }
4697
4841
  ),
4698
4842
  /* @__PURE__ */ jsxs20("div", { className: "flex-1", children: [
4699
- /* @__PURE__ */ jsx25(
4843
+ /* @__PURE__ */ jsx26(
4700
4844
  "label",
4701
4845
  {
4702
4846
  htmlFor: alternativeId,
@@ -4708,10 +4852,10 @@ var AlternativesList = ({
4708
4852
  children: alternative.label
4709
4853
  }
4710
4854
  ),
4711
- alternative.description && /* @__PURE__ */ jsx25("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
4855
+ alternative.description && /* @__PURE__ */ jsx26("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
4712
4856
  ] })
4713
4857
  ] }),
4714
- statusBadge && /* @__PURE__ */ jsx25("div", { className: "flex-shrink-0", children: statusBadge })
4858
+ statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
4715
4859
  ] })
4716
4860
  },
4717
4861
  alternativeId
@@ -4727,7 +4871,7 @@ var AlternativesList = ({
4727
4871
  ),
4728
4872
  children: [
4729
4873
  /* @__PURE__ */ jsxs20("div", { className: "flex items-center gap-2 flex-1", children: [
4730
- /* @__PURE__ */ jsx25(
4874
+ /* @__PURE__ */ jsx26(
4731
4875
  RadioGroupItem,
4732
4876
  {
4733
4877
  value: alternative.value,
@@ -4735,7 +4879,7 @@ var AlternativesList = ({
4735
4879
  disabled: alternative.disabled
4736
4880
  }
4737
4881
  ),
4738
- /* @__PURE__ */ jsx25(
4882
+ /* @__PURE__ */ jsx26(
4739
4883
  "label",
4740
4884
  {
4741
4885
  htmlFor: alternativeId,
@@ -4748,7 +4892,7 @@ var AlternativesList = ({
4748
4892
  }
4749
4893
  )
4750
4894
  ] }),
4751
- statusBadge && /* @__PURE__ */ jsx25("div", { className: "flex-shrink-0", children: statusBadge })
4895
+ statusBadge && /* @__PURE__ */ jsx26("div", { className: "flex-shrink-0", children: statusBadge })
4752
4896
  ]
4753
4897
  },
4754
4898
  alternativeId
@@ -4757,7 +4901,7 @@ var AlternativesList = ({
4757
4901
  }
4758
4902
  );
4759
4903
  };
4760
- var HeaderAlternative = forwardRef11(
4904
+ var HeaderAlternative = forwardRef12(
4761
4905
  ({ className, title, subTitle, content, ...props }, ref) => {
4762
4906
  return /* @__PURE__ */ jsxs20(
4763
4907
  "div",
@@ -4770,10 +4914,10 @@ var HeaderAlternative = forwardRef11(
4770
4914
  ...props,
4771
4915
  children: [
4772
4916
  /* @__PURE__ */ jsxs20("span", { className: "flex flex-col", children: [
4773
- /* @__PURE__ */ jsx25("p", { className: "text-text-950 font-bold text-lg", children: title }),
4774
- /* @__PURE__ */ jsx25("p", { className: "text-text-700 text-sm ", children: subTitle })
4917
+ /* @__PURE__ */ jsx26("p", { className: "text-text-950 font-bold text-lg", children: title }),
4918
+ /* @__PURE__ */ jsx26("p", { className: "text-text-700 text-sm ", children: subTitle })
4775
4919
  ] }),
4776
- /* @__PURE__ */ jsx25("p", { className: "text-text-950 text-md", children: content })
4920
+ /* @__PURE__ */ jsx26("p", { className: "text-text-950 text-md", children: content })
4777
4921
  ]
4778
4922
  }
4779
4923
  );
@@ -4782,10 +4926,10 @@ var HeaderAlternative = forwardRef11(
4782
4926
 
4783
4927
  // src/components/AlertDialog/AlertDialog.tsx
4784
4928
  import {
4785
- forwardRef as forwardRef12,
4786
- useEffect as useEffect4
4929
+ forwardRef as forwardRef13,
4930
+ useEffect as useEffect5
4787
4931
  } from "react";
4788
- import { Fragment as Fragment5, jsx as jsx26, jsxs as jsxs21 } from "react/jsx-runtime";
4932
+ import { Fragment as Fragment5, jsx as jsx27, jsxs as jsxs21 } from "react/jsx-runtime";
4789
4933
  var SIZE_CLASSES11 = {
4790
4934
  "extra-small": "w-screen max-w-[324px]",
4791
4935
  small: "w-screen max-w-[378px]",
@@ -4793,7 +4937,7 @@ var SIZE_CLASSES11 = {
4793
4937
  large: "w-screen max-w-[578px]",
4794
4938
  "extra-large": "w-screen max-w-[912px]"
4795
4939
  };
4796
- var AlertDialog = forwardRef12(
4940
+ var AlertDialog = forwardRef13(
4797
4941
  ({
4798
4942
  description,
4799
4943
  cancelButtonLabel = "Cancelar",
@@ -4811,7 +4955,7 @@ var AlertDialog = forwardRef12(
4811
4955
  size = "medium",
4812
4956
  ...props
4813
4957
  }, ref) => {
4814
- useEffect4(() => {
4958
+ useEffect5(() => {
4815
4959
  if (!isOpen || !closeOnEscape) return;
4816
4960
  const handleEscape = (event) => {
4817
4961
  if (event.key === "Escape") {
@@ -4821,7 +4965,7 @@ var AlertDialog = forwardRef12(
4821
4965
  document.addEventListener("keydown", handleEscape);
4822
4966
  return () => document.removeEventListener("keydown", handleEscape);
4823
4967
  }, [isOpen, closeOnEscape]);
4824
- useEffect4(() => {
4968
+ useEffect5(() => {
4825
4969
  if (isOpen) {
4826
4970
  document.body.style.overflow = "hidden";
4827
4971
  } else {
@@ -4850,7 +4994,7 @@ var AlertDialog = forwardRef12(
4850
4994
  onCancel?.(cancelValue);
4851
4995
  };
4852
4996
  const sizeClasses = SIZE_CLASSES11[size];
4853
- return /* @__PURE__ */ jsx26(Fragment5, { children: isOpen && /* @__PURE__ */ jsx26(
4997
+ return /* @__PURE__ */ jsx27(Fragment5, { children: isOpen && /* @__PURE__ */ jsx27(
4854
4998
  "div",
4855
4999
  {
4856
5000
  className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 backdrop-blur-sm",
@@ -4868,7 +5012,7 @@ var AlertDialog = forwardRef12(
4868
5012
  ),
4869
5013
  ...props,
4870
5014
  children: [
4871
- /* @__PURE__ */ jsx26(
5015
+ /* @__PURE__ */ jsx27(
4872
5016
  "h2",
4873
5017
  {
4874
5018
  id: "alert-dialog-title",
@@ -4876,7 +5020,7 @@ var AlertDialog = forwardRef12(
4876
5020
  children: title
4877
5021
  }
4878
5022
  ),
4879
- /* @__PURE__ */ jsx26(
5023
+ /* @__PURE__ */ jsx27(
4880
5024
  "p",
4881
5025
  {
4882
5026
  id: "alert-dialog-description",
@@ -4885,8 +5029,8 @@ var AlertDialog = forwardRef12(
4885
5029
  }
4886
5030
  ),
4887
5031
  /* @__PURE__ */ jsxs21("div", { className: "flex flex-row items-center justify-end pt-4 gap-3", children: [
4888
- /* @__PURE__ */ jsx26(Button_default, { variant: "outline", size: "small", onClick: handleCancel, children: cancelButtonLabel }),
4889
- /* @__PURE__ */ jsx26(
5032
+ /* @__PURE__ */ jsx27(Button_default, { variant: "outline", size: "small", onClick: handleCancel, children: cancelButtonLabel }),
5033
+ /* @__PURE__ */ jsx27(
4890
5034
  Button_default,
4891
5035
  {
4892
5036
  variant: "solid",
@@ -4906,85 +5050,218 @@ var AlertDialog = forwardRef12(
4906
5050
  );
4907
5051
  AlertDialog.displayName = "AlertDialog";
4908
5052
 
4909
- // src/components/DropdownMenu/DropdownMenu.tsx
4910
- import { SignOut, User } from "phosphor-react";
4911
- import {
4912
- forwardRef as forwardRef13,
4913
- useEffect as useEffect5,
4914
- useRef as useRef4,
4915
- isValidElement as isValidElement2,
4916
- Children as Children2,
4917
- cloneElement as cloneElement2,
4918
- useState as useState9
4919
- } from "react";
4920
- import { create as create3, useStore as useStore2 } from "zustand";
4921
- import { jsx as jsx27, jsxs as jsxs22 } from "react/jsx-runtime";
4922
- function createDropdownStore() {
4923
- return create3((set) => ({
4924
- open: false,
4925
- setOpen: (open) => set({ open })
4926
- }));
4927
- }
4928
- var useDropdownStore = (externalStore) => {
4929
- if (!externalStore) {
4930
- throw new Error(
4931
- "Component must be used within a DropdownMenu (store is missing)"
4932
- );
4933
- }
4934
- return externalStore;
4935
- };
4936
- var injectStore2 = (children, store) => {
4937
- return Children2.map(children, (child) => {
4938
- if (isValidElement2(child)) {
4939
- const typedChild = child;
4940
- const newProps = {
4941
- store
4942
- };
4943
- if (typedChild.props.children) {
4944
- newProps.children = injectStore2(typedChild.props.children, store);
4945
- }
4946
- return cloneElement2(typedChild, newProps);
4947
- }
4948
- return child;
4949
- });
4950
- };
4951
- var DropdownMenu = ({
4952
- children,
4953
- open: propOpen,
4954
- onOpenChange
5053
+ // src/components/MultipleChoice/MultipleChoice.tsx
5054
+ import { useEffect as useEffect6, useState as useState9 } from "react";
5055
+ import { CheckCircle as CheckCircle5, XCircle as XCircle4, Check as Check4 } from "phosphor-react";
5056
+ import { jsx as jsx28, jsxs as jsxs22 } from "react/jsx-runtime";
5057
+ var MultipleChoiceList = ({
5058
+ disabled = false,
5059
+ className = "",
5060
+ choices,
5061
+ name,
5062
+ selectedValues,
5063
+ onHandleSelectedValues,
5064
+ mode = "interactive"
4955
5065
  }) => {
4956
- const storeRef = useRef4(null);
4957
- storeRef.current ??= createDropdownStore();
4958
- const store = storeRef.current;
4959
- const { open, setOpen: storeSetOpen } = useStore2(store, (s) => s);
4960
- const setOpen = (newOpen) => {
4961
- storeSetOpen(newOpen);
5066
+ const [actualValue, setActualValue] = useState9(selectedValues);
5067
+ useEffect6(() => {
5068
+ setActualValue(selectedValues);
5069
+ }, [selectedValues]);
5070
+ const getStatusBadge = (status) => {
5071
+ switch (status) {
5072
+ case "correct":
5073
+ return /* @__PURE__ */ jsx28(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx28(CheckCircle5, {}), children: "Resposta correta" });
5074
+ case "incorrect":
5075
+ return /* @__PURE__ */ jsx28(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx28(XCircle4, {}), children: "Resposta incorreta" });
5076
+ default:
5077
+ return null;
5078
+ }
4962
5079
  };
4963
- const menuRef = useRef4(null);
4964
- const handleArrowDownOrArrowUp = (event) => {
4965
- const menuContent = menuRef.current?.querySelector('[role="menu"]');
4966
- if (menuContent) {
4967
- event.preventDefault();
4968
- const items = Array.from(
4969
- menuContent.querySelectorAll(
4970
- '[role="menuitem"]:not([aria-disabled="true"])'
4971
- )
4972
- ).filter((el) => el instanceof HTMLElement);
4973
- if (items.length === 0) return;
4974
- const focusedItem = document.activeElement;
4975
- const currentIndex = items.findIndex((item) => item === focusedItem);
4976
- let nextIndex;
4977
- if (event.key === "ArrowDown") {
4978
- nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
4979
- } else {
4980
- nextIndex = currentIndex === -1 ? items.length - 1 : (currentIndex - 1 + items.length) % items.length;
4981
- }
4982
- items[nextIndex]?.focus();
5080
+ const getStatusStyles = (status) => {
5081
+ switch (status) {
5082
+ case "correct":
5083
+ return "bg-success-background border-success-300";
5084
+ case "incorrect":
5085
+ return "bg-error-background border-error-300";
5086
+ default:
5087
+ return `bg-background border-border-100`;
4983
5088
  }
4984
5089
  };
4985
- const handleDownkey = (event) => {
4986
- if (event.key === "Escape") {
4987
- setOpen(false);
5090
+ const renderVisualCheckbox = (isSelected, isDisabled) => {
5091
+ const checkboxClasses = cn(
5092
+ "w-5 h-5 rounded border-2 cursor-default transition-all duration-200 flex items-center justify-center",
5093
+ isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
5094
+ isDisabled && "opacity-40 cursor-not-allowed"
5095
+ );
5096
+ return /* @__PURE__ */ jsx28("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ jsx28(Check4, { size: 16, weight: "bold" }) });
5097
+ };
5098
+ if (mode === "readonly") {
5099
+ return /* @__PURE__ */ jsx28("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
5100
+ const isSelected = actualValue?.includes(choice.value) || false;
5101
+ const statusStyles = getStatusStyles(choice.status);
5102
+ const statusBadge = getStatusBadge(choice.status);
5103
+ return /* @__PURE__ */ jsxs22(
5104
+ "div",
5105
+ {
5106
+ className: cn(
5107
+ "flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all",
5108
+ statusStyles,
5109
+ choice.disabled ? "opacity-50 cursor-not-allowed" : ""
5110
+ ),
5111
+ children: [
5112
+ /* @__PURE__ */ jsxs22("div", { className: "flex items-center gap-2 flex-1", children: [
5113
+ renderVisualCheckbox(isSelected, choice.disabled || disabled),
5114
+ /* @__PURE__ */ jsx28(
5115
+ "span",
5116
+ {
5117
+ className: cn(
5118
+ "flex-1",
5119
+ isSelected || choice.status && choice.status != "neutral" ? "text-text-950" : "text-text-600",
5120
+ choice.disabled || disabled ? "cursor-not-allowed" : "cursor-default"
5121
+ ),
5122
+ children: choice.label
5123
+ }
5124
+ )
5125
+ ] }),
5126
+ statusBadge && /* @__PURE__ */ jsx28("div", { className: "flex-shrink-0", children: statusBadge })
5127
+ ]
5128
+ },
5129
+ `readonly-${choice.value}-${i}`
5130
+ );
5131
+ }) });
5132
+ }
5133
+ return /* @__PURE__ */ jsx28(
5134
+ "div",
5135
+ {
5136
+ className: cn(
5137
+ "flex flex-row justify-between gap-2 items-start p-2 rounded-lg transition-all",
5138
+ disabled ? "opacity-50 cursor-not-allowed" : "",
5139
+ className
5140
+ ),
5141
+ children: /* @__PURE__ */ jsx28(
5142
+ CheckboxList_default,
5143
+ {
5144
+ name,
5145
+ values: actualValue,
5146
+ onValuesChange: (v) => {
5147
+ setActualValue(v);
5148
+ onHandleSelectedValues?.(v);
5149
+ },
5150
+ disabled,
5151
+ children: choices.map((choice, i) => /* @__PURE__ */ jsxs22(
5152
+ "div",
5153
+ {
5154
+ className: "flex flex-row gap-2 items-center",
5155
+ children: [
5156
+ /* @__PURE__ */ jsx28(
5157
+ CheckboxListItem,
5158
+ {
5159
+ value: choice.value,
5160
+ id: `interactive-${choice.value}-${i}`,
5161
+ disabled: choice.disabled || disabled
5162
+ }
5163
+ ),
5164
+ /* @__PURE__ */ jsx28(
5165
+ "label",
5166
+ {
5167
+ htmlFor: `interactive-${choice.value}-${i}`,
5168
+ className: cn(
5169
+ "flex-1",
5170
+ actualValue?.includes(choice.value) ? "text-text-950" : "text-text-600",
5171
+ choice.disabled || disabled ? "cursor-not-allowed" : "cursor-pointer"
5172
+ ),
5173
+ children: choice.label
5174
+ }
5175
+ )
5176
+ ]
5177
+ },
5178
+ `interactive-${choice.value}-${i}`
5179
+ ))
5180
+ }
5181
+ )
5182
+ }
5183
+ );
5184
+ };
5185
+
5186
+ // src/components/DropdownMenu/DropdownMenu.tsx
5187
+ import { SignOut, User } from "phosphor-react";
5188
+ import {
5189
+ forwardRef as forwardRef14,
5190
+ useEffect as useEffect7,
5191
+ useRef as useRef5,
5192
+ isValidElement as isValidElement3,
5193
+ Children as Children3,
5194
+ cloneElement as cloneElement3,
5195
+ useState as useState10
5196
+ } from "react";
5197
+ import { create as create4, useStore as useStore3 } from "zustand";
5198
+ import { jsx as jsx29, jsxs as jsxs23 } from "react/jsx-runtime";
5199
+ function createDropdownStore() {
5200
+ return create4((set) => ({
5201
+ open: false,
5202
+ setOpen: (open) => set({ open })
5203
+ }));
5204
+ }
5205
+ var useDropdownStore = (externalStore) => {
5206
+ if (!externalStore) {
5207
+ throw new Error(
5208
+ "Component must be used within a DropdownMenu (store is missing)"
5209
+ );
5210
+ }
5211
+ return externalStore;
5212
+ };
5213
+ var injectStore3 = (children, store) => {
5214
+ return Children3.map(children, (child) => {
5215
+ if (isValidElement3(child)) {
5216
+ const typedChild = child;
5217
+ const newProps = {
5218
+ store
5219
+ };
5220
+ if (typedChild.props.children) {
5221
+ newProps.children = injectStore3(typedChild.props.children, store);
5222
+ }
5223
+ return cloneElement3(typedChild, newProps);
5224
+ }
5225
+ return child;
5226
+ });
5227
+ };
5228
+ var DropdownMenu = ({
5229
+ children,
5230
+ open: propOpen,
5231
+ onOpenChange
5232
+ }) => {
5233
+ const storeRef = useRef5(null);
5234
+ storeRef.current ??= createDropdownStore();
5235
+ const store = storeRef.current;
5236
+ const { open, setOpen: storeSetOpen } = useStore3(store, (s) => s);
5237
+ const setOpen = (newOpen) => {
5238
+ storeSetOpen(newOpen);
5239
+ };
5240
+ const menuRef = useRef5(null);
5241
+ const handleArrowDownOrArrowUp = (event) => {
5242
+ const menuContent = menuRef.current?.querySelector('[role="menu"]');
5243
+ if (menuContent) {
5244
+ event.preventDefault();
5245
+ const items = Array.from(
5246
+ menuContent.querySelectorAll(
5247
+ '[role="menuitem"]:not([aria-disabled="true"])'
5248
+ )
5249
+ ).filter((el) => el instanceof HTMLElement);
5250
+ if (items.length === 0) return;
5251
+ const focusedItem = document.activeElement;
5252
+ const currentIndex = items.findIndex((item) => item === focusedItem);
5253
+ let nextIndex;
5254
+ if (event.key === "ArrowDown") {
5255
+ nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
5256
+ } else {
5257
+ nextIndex = currentIndex === -1 ? items.length - 1 : (currentIndex - 1 + items.length) % items.length;
5258
+ }
5259
+ items[nextIndex]?.focus();
5260
+ }
5261
+ };
5262
+ const handleDownkey = (event) => {
5263
+ if (event.key === "Escape") {
5264
+ setOpen(false);
4988
5265
  } else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
4989
5266
  handleArrowDownOrArrowUp(event);
4990
5267
  }
@@ -4994,7 +5271,7 @@ var DropdownMenu = ({
4994
5271
  setOpen(false);
4995
5272
  }
4996
5273
  };
4997
- useEffect5(() => {
5274
+ useEffect7(() => {
4998
5275
  if (open) {
4999
5276
  document.addEventListener("mousedown", handleClickOutside);
5000
5277
  document.addEventListener("keydown", handleDownkey);
@@ -5004,16 +5281,16 @@ var DropdownMenu = ({
5004
5281
  document.removeEventListener("keydown", handleDownkey);
5005
5282
  };
5006
5283
  }, [open]);
5007
- useEffect5(() => {
5284
+ useEffect7(() => {
5008
5285
  setOpen(open);
5009
5286
  onOpenChange?.(open);
5010
5287
  }, [open, onOpenChange]);
5011
- useEffect5(() => {
5288
+ useEffect7(() => {
5012
5289
  if (propOpen) {
5013
5290
  setOpen(propOpen);
5014
5291
  }
5015
5292
  }, [propOpen]);
5016
- return /* @__PURE__ */ jsx27("div", { className: "relative", ref: menuRef, children: injectStore2(children, store) });
5293
+ return /* @__PURE__ */ jsx29("div", { className: "relative", ref: menuRef, children: injectStore3(children, store) });
5017
5294
  };
5018
5295
  var DropdownMenuTrigger = ({
5019
5296
  className,
@@ -5023,9 +5300,9 @@ var DropdownMenuTrigger = ({
5023
5300
  ...props
5024
5301
  }) => {
5025
5302
  const store = useDropdownStore(externalStore);
5026
- const open = useStore2(store, (s) => s.open);
5303
+ const open = useStore3(store, (s) => s.open);
5027
5304
  const toggleOpen = () => store.setState({ open: !open });
5028
- return /* @__PURE__ */ jsx27(
5305
+ return /* @__PURE__ */ jsx29(
5029
5306
  "button",
5030
5307
  {
5031
5308
  onClick: (e) => {
@@ -5060,8 +5337,8 @@ var MENUCONTENT_VARIANT_CLASSES = {
5060
5337
  menu: "p-1",
5061
5338
  profile: "p-6"
5062
5339
  };
5063
- var MenuLabel = forwardRef13(({ className, inset, store: _store, ...props }, ref) => {
5064
- return /* @__PURE__ */ jsx27(
5340
+ var MenuLabel = forwardRef14(({ className, inset, store: _store, ...props }, ref) => {
5341
+ return /* @__PURE__ */ jsx29(
5065
5342
  "div",
5066
5343
  {
5067
5344
  ref,
@@ -5071,7 +5348,7 @@ var MenuLabel = forwardRef13(({ className, inset, store: _store, ...props }, ref
5071
5348
  );
5072
5349
  });
5073
5350
  MenuLabel.displayName = "MenuLabel";
5074
- var DropdownMenuContent = forwardRef13(
5351
+ var DropdownMenuContent = forwardRef14(
5075
5352
  ({
5076
5353
  className,
5077
5354
  align = "start",
@@ -5083,9 +5360,9 @@ var DropdownMenuContent = forwardRef13(
5083
5360
  ...props
5084
5361
  }, ref) => {
5085
5362
  const store = useDropdownStore(externalStore);
5086
- const open = useStore2(store, (s) => s.open);
5087
- const [isVisible, setIsVisible] = useState9(open);
5088
- useEffect5(() => {
5363
+ const open = useStore3(store, (s) => s.open);
5364
+ const [isVisible, setIsVisible] = useState10(open);
5365
+ useEffect7(() => {
5089
5366
  if (open) {
5090
5367
  setIsVisible(true);
5091
5368
  } else {
@@ -5100,7 +5377,7 @@ var DropdownMenuContent = forwardRef13(
5100
5377
  return `absolute ${vertical} ${horizontal}`;
5101
5378
  };
5102
5379
  const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
5103
- return /* @__PURE__ */ jsx27(
5380
+ return /* @__PURE__ */ jsx29(
5104
5381
  "div",
5105
5382
  {
5106
5383
  ref,
@@ -5125,7 +5402,7 @@ var DropdownMenuContent = forwardRef13(
5125
5402
  }
5126
5403
  );
5127
5404
  DropdownMenuContent.displayName = "DropdownMenuContent";
5128
- var DropdownMenuItem = forwardRef13(
5405
+ var DropdownMenuItem = forwardRef14(
5129
5406
  ({
5130
5407
  className,
5131
5408
  size = "small",
@@ -5139,7 +5416,7 @@ var DropdownMenuItem = forwardRef13(
5139
5416
  ...props
5140
5417
  }, ref) => {
5141
5418
  const store = useDropdownStore(externalStore);
5142
- const setOpen = useStore2(store, (s) => s.setOpen);
5419
+ const setOpen = useStore3(store, (s) => s.setOpen);
5143
5420
  const sizeClasses = ITEM_SIZE_CLASSES[size];
5144
5421
  const handleClick = (e) => {
5145
5422
  if (disabled) {
@@ -5159,7 +5436,7 @@ var DropdownMenuItem = forwardRef13(
5159
5436
  const getVariantProps = () => {
5160
5437
  return variant === "profile" ? { "data-variant": "profile" } : {};
5161
5438
  };
5162
- return /* @__PURE__ */ jsxs22(
5439
+ return /* @__PURE__ */ jsxs23(
5163
5440
  "div",
5164
5441
  {
5165
5442
  ref,
@@ -5181,7 +5458,7 @@ var DropdownMenuItem = forwardRef13(
5181
5458
  ...props,
5182
5459
  children: [
5183
5460
  iconLeft,
5184
- /* @__PURE__ */ jsx27("span", { className: "w-full text-md", children }),
5461
+ /* @__PURE__ */ jsx29("span", { className: "w-full text-md", children }),
5185
5462
  iconRight
5186
5463
  ]
5187
5464
  }
@@ -5189,7 +5466,7 @@ var DropdownMenuItem = forwardRef13(
5189
5466
  }
5190
5467
  );
5191
5468
  DropdownMenuItem.displayName = "DropdownMenuItem";
5192
- var DropdownMenuSeparator = forwardRef13(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ jsx27(
5469
+ var DropdownMenuSeparator = forwardRef14(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ jsx29(
5193
5470
  "div",
5194
5471
  {
5195
5472
  ref,
@@ -5198,11 +5475,11 @@ var DropdownMenuSeparator = forwardRef13(({ className, store: _store, ...props }
5198
5475
  }
5199
5476
  ));
5200
5477
  DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
5201
- var ProfileMenuTrigger = forwardRef13(({ className, onClick, store: externalStore, ...props }, ref) => {
5478
+ var ProfileMenuTrigger = forwardRef14(({ className, onClick, store: externalStore, ...props }, ref) => {
5202
5479
  const store = useDropdownStore(externalStore);
5203
- const open = useStore2(store, (s) => s.open);
5480
+ const open = useStore3(store, (s) => s.open);
5204
5481
  const toggleOpen = () => store.setState({ open: !open });
5205
- return /* @__PURE__ */ jsx27(
5482
+ return /* @__PURE__ */ jsx29(
5206
5483
  "button",
5207
5484
  {
5208
5485
  ref,
@@ -5217,13 +5494,13 @@ var ProfileMenuTrigger = forwardRef13(({ className, onClick, store: externalStor
5217
5494
  },
5218
5495
  "aria-expanded": open,
5219
5496
  ...props,
5220
- children: /* @__PURE__ */ jsx27("span", { className: "size-6 rounded-full bg-primary-100 flex items-center justify-center", children: /* @__PURE__ */ jsx27(User, { className: "text-primary-950", size: 18 }) })
5497
+ children: /* @__PURE__ */ jsx29("span", { className: "size-6 rounded-full bg-primary-100 flex items-center justify-center", children: /* @__PURE__ */ jsx29(User, { className: "text-primary-950", size: 18 }) })
5221
5498
  }
5222
5499
  );
5223
5500
  });
5224
5501
  ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
5225
- var ProfileMenuHeader = forwardRef13(({ className, name, email, store: _store, ...props }, ref) => {
5226
- return /* @__PURE__ */ jsxs22(
5502
+ var ProfileMenuHeader = forwardRef14(({ className, name, email, store: _store, ...props }, ref) => {
5503
+ return /* @__PURE__ */ jsxs23(
5227
5504
  "div",
5228
5505
  {
5229
5506
  ref,
@@ -5231,18 +5508,18 @@ var ProfileMenuHeader = forwardRef13(({ className, name, email, store: _store, .
5231
5508
  className: cn("flex flex-row gap-4 items-center", className),
5232
5509
  ...props,
5233
5510
  children: [
5234
- /* @__PURE__ */ jsx27("span", { className: "size-16 bg-primary-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx27(User, { size: 34, className: "text-primary-950" }) }),
5235
- /* @__PURE__ */ jsxs22("div", { className: "flex flex-col ", children: [
5236
- /* @__PURE__ */ jsx27("p", { className: "text-xl font-bold text-text-950", children: name }),
5237
- /* @__PURE__ */ jsx27("p", { className: "text-md text-text-600", children: email })
5511
+ /* @__PURE__ */ jsx29("span", { className: "size-16 bg-primary-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx29(User, { size: 34, className: "text-primary-950" }) }),
5512
+ /* @__PURE__ */ jsxs23("div", { className: "flex flex-col ", children: [
5513
+ /* @__PURE__ */ jsx29("p", { className: "text-xl font-bold text-text-950", children: name }),
5514
+ /* @__PURE__ */ jsx29("p", { className: "text-md text-text-600", children: email })
5238
5515
  ] })
5239
5516
  ]
5240
5517
  }
5241
5518
  );
5242
5519
  });
5243
5520
  ProfileMenuHeader.displayName = "ProfileMenuHeader";
5244
- var ProfileMenuSection = forwardRef13(({ className, children, store: _store, ...props }, ref) => {
5245
- return /* @__PURE__ */ jsx27("div", { ref, className: cn("flex flex-col p-2", className), ...props, children });
5521
+ var ProfileMenuSection = forwardRef14(({ className, children, store: _store, ...props }, ref) => {
5522
+ return /* @__PURE__ */ jsx29("div", { ref, className: cn("flex flex-col p-2", className), ...props, children });
5246
5523
  });
5247
5524
  ProfileMenuSection.displayName = "ProfileMenuSection";
5248
5525
  var ProfileMenuFooter = ({
@@ -5253,8 +5530,8 @@ var ProfileMenuFooter = ({
5253
5530
  ...props
5254
5531
  }) => {
5255
5532
  const store = useDropdownStore(externalStore);
5256
- const setOpen = useStore2(store, (s) => s.setOpen);
5257
- return /* @__PURE__ */ jsxs22(
5533
+ const setOpen = useStore3(store, (s) => s.setOpen);
5534
+ return /* @__PURE__ */ jsxs23(
5258
5535
  Button_default,
5259
5536
  {
5260
5537
  variant: "outline",
@@ -5266,8 +5543,8 @@ var ProfileMenuFooter = ({
5266
5543
  },
5267
5544
  ...props,
5268
5545
  children: [
5269
- /* @__PURE__ */ jsx27("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ jsx27(SignOut, {}) }),
5270
- /* @__PURE__ */ jsx27("span", { children: "Sair" })
5546
+ /* @__PURE__ */ jsx29("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ jsx29(SignOut, {}) }),
5547
+ /* @__PURE__ */ jsx29("span", { children: "Sair" })
5271
5548
  ]
5272
5549
  }
5273
5550
  );
@@ -5276,18 +5553,18 @@ ProfileMenuFooter.displayName = "ProfileMenuFooter";
5276
5553
  var DropdownMenu_default = DropdownMenu;
5277
5554
 
5278
5555
  // src/components/Select/Select.tsx
5279
- import { create as create4, useStore as useStore3 } from "zustand";
5556
+ import { create as create5, useStore as useStore4 } from "zustand";
5280
5557
  import {
5281
- useEffect as useEffect6,
5282
- useRef as useRef5,
5283
- forwardRef as forwardRef14,
5284
- isValidElement as isValidElement3,
5285
- Children as Children3,
5286
- cloneElement as cloneElement3,
5287
- useId as useId7
5558
+ useEffect as useEffect8,
5559
+ useRef as useRef6,
5560
+ forwardRef as forwardRef15,
5561
+ isValidElement as isValidElement4,
5562
+ Children as Children4,
5563
+ cloneElement as cloneElement4,
5564
+ useId as useId8
5288
5565
  } from "react";
5289
- import { CaretDown, Check as Check4, WarningCircle as WarningCircle5 } from "phosphor-react";
5290
- import { Fragment as Fragment6, jsx as jsx28, jsxs as jsxs23 } from "react/jsx-runtime";
5566
+ import { CaretDown, Check as Check5, WarningCircle as WarningCircle5 } from "phosphor-react";
5567
+ import { Fragment as Fragment6, jsx as jsx30, jsxs as jsxs24 } from "react/jsx-runtime";
5291
5568
  var VARIANT_CLASSES4 = {
5292
5569
  outlined: "border rounded-lg focus:border-primary-950",
5293
5570
  underlined: "border-b focus:border-primary-950",
@@ -5323,7 +5600,7 @@ var ALIGN_CLASSES2 = {
5323
5600
  end: "right-0"
5324
5601
  };
5325
5602
  function createSelectStore(onValueChange) {
5326
- return create4((set) => ({
5603
+ return create5((set) => ({
5327
5604
  open: false,
5328
5605
  setOpen: (open) => set({ open }),
5329
5606
  value: "",
@@ -5345,13 +5622,13 @@ function getLabelAsNode(children) {
5345
5622
  if (typeof children === "string" || typeof children === "number") {
5346
5623
  return children;
5347
5624
  }
5348
- const flattened = Children3.toArray(children);
5625
+ const flattened = Children4.toArray(children);
5349
5626
  if (flattened.length === 1) return flattened[0];
5350
- return /* @__PURE__ */ jsx28(Fragment6, { children: flattened });
5627
+ return /* @__PURE__ */ jsx30(Fragment6, { children: flattened });
5351
5628
  }
5352
- var injectStore3 = (children, store, size, selectId) => {
5353
- return Children3.map(children, (child) => {
5354
- if (isValidElement3(child)) {
5629
+ var injectStore4 = (children, store, size, selectId) => {
5630
+ return Children4.map(children, (child) => {
5631
+ if (isValidElement4(child)) {
5355
5632
  const typedChild = child;
5356
5633
  const newProps = {
5357
5634
  store
@@ -5361,14 +5638,14 @@ var injectStore3 = (children, store, size, selectId) => {
5361
5638
  newProps.selectId = selectId;
5362
5639
  }
5363
5640
  if (typedChild.props.children) {
5364
- newProps.children = injectStore3(
5641
+ newProps.children = injectStore4(
5365
5642
  typedChild.props.children,
5366
5643
  store,
5367
5644
  size,
5368
5645
  selectId
5369
5646
  );
5370
5647
  }
5371
- return cloneElement3(typedChild, newProps);
5648
+ return cloneElement4(typedChild, newProps);
5372
5649
  }
5373
5650
  return child;
5374
5651
  });
@@ -5384,18 +5661,18 @@ var Select = ({
5384
5661
  errorMessage,
5385
5662
  id
5386
5663
  }) => {
5387
- const storeRef = useRef5(null);
5664
+ const storeRef = useRef6(null);
5388
5665
  storeRef.current ??= createSelectStore(onValueChange);
5389
5666
  const store = storeRef.current;
5390
- const selectRef = useRef5(null);
5391
- const { open, setOpen, setValue, selectedLabel } = useStore3(store, (s) => s);
5392
- const generatedId = useId7();
5667
+ const selectRef = useRef6(null);
5668
+ const { open, setOpen, setValue, selectedLabel } = useStore4(store, (s) => s);
5669
+ const generatedId = useId8();
5393
5670
  const selectId = id ?? `select-${generatedId}`;
5394
5671
  const findLabelForValue = (children2, targetValue) => {
5395
5672
  let found = null;
5396
5673
  const search = (nodes) => {
5397
- Children3.forEach(nodes, (child) => {
5398
- if (!isValidElement3(child)) return;
5674
+ Children4.forEach(nodes, (child) => {
5675
+ if (!isValidElement4(child)) return;
5399
5676
  const typedChild = child;
5400
5677
  if (typedChild.type === SelectItem && typedChild.props.value === targetValue) {
5401
5678
  if (typeof typedChild.props.children === "string")
@@ -5408,13 +5685,13 @@ var Select = ({
5408
5685
  search(children2);
5409
5686
  return found;
5410
5687
  };
5411
- useEffect6(() => {
5688
+ useEffect8(() => {
5412
5689
  if (!selectedLabel && defaultValue) {
5413
5690
  const label2 = findLabelForValue(children, defaultValue);
5414
5691
  if (label2) store.setState({ selectedLabel: label2 });
5415
5692
  }
5416
5693
  }, [children, defaultValue, selectedLabel]);
5417
- useEffect6(() => {
5694
+ useEffect8(() => {
5418
5695
  const handleClickOutside = (event) => {
5419
5696
  if (selectRef.current && !selectRef.current.contains(event.target)) {
5420
5697
  setOpen(false);
@@ -5449,7 +5726,7 @@ var Select = ({
5449
5726
  document.removeEventListener("keydown", handleArrowKeys);
5450
5727
  };
5451
5728
  }, [open]);
5452
- useEffect6(() => {
5729
+ useEffect8(() => {
5453
5730
  if (propValue) {
5454
5731
  setValue(propValue);
5455
5732
  const label2 = findLabelForValue(children, propValue);
@@ -5457,8 +5734,8 @@ var Select = ({
5457
5734
  }
5458
5735
  }, [propValue]);
5459
5736
  const sizeClasses = SIZE_CLASSES12[size];
5460
- return /* @__PURE__ */ jsxs23("div", { className: "w-full", children: [
5461
- label && /* @__PURE__ */ jsx28(
5737
+ return /* @__PURE__ */ jsxs24("div", { className: "w-full", children: [
5738
+ label && /* @__PURE__ */ jsx30(
5462
5739
  "label",
5463
5740
  {
5464
5741
  htmlFor: selectId,
@@ -5466,11 +5743,11 @@ var Select = ({
5466
5743
  children: label
5467
5744
  }
5468
5745
  ),
5469
- /* @__PURE__ */ jsx28("div", { className: cn("relative", sizeClasses), ref: selectRef, children: injectStore3(children, store, size, selectId) }),
5470
- /* @__PURE__ */ jsxs23("div", { className: "mt-1.5 gap-1.5", children: [
5471
- helperText && /* @__PURE__ */ jsx28("p", { className: "text-sm text-text-500", children: helperText }),
5472
- errorMessage && /* @__PURE__ */ jsxs23("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
5473
- /* @__PURE__ */ jsx28(WarningCircle5, { size: 16 }),
5746
+ /* @__PURE__ */ jsx30("div", { className: cn("relative", sizeClasses), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
5747
+ /* @__PURE__ */ jsxs24("div", { className: "mt-1.5 gap-1.5", children: [
5748
+ helperText && /* @__PURE__ */ jsx30("p", { className: "text-sm text-text-500", children: helperText }),
5749
+ errorMessage && /* @__PURE__ */ jsxs24("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
5750
+ /* @__PURE__ */ jsx30(WarningCircle5, { size: 16 }),
5474
5751
  " ",
5475
5752
  errorMessage
5476
5753
  ] })
@@ -5482,11 +5759,11 @@ var SelectValue = ({
5482
5759
  store: externalStore
5483
5760
  }) => {
5484
5761
  const store = useSelectStore(externalStore);
5485
- const selectedLabel = useStore3(store, (s) => s.selectedLabel);
5486
- const value = useStore3(store, (s) => s.value);
5487
- return /* @__PURE__ */ jsx28("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
5762
+ const selectedLabel = useStore4(store, (s) => s.selectedLabel);
5763
+ const value = useStore4(store, (s) => s.value);
5764
+ return /* @__PURE__ */ jsx30("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
5488
5765
  };
5489
- var SelectTrigger = forwardRef14(
5766
+ var SelectTrigger = forwardRef15(
5490
5767
  ({
5491
5768
  className,
5492
5769
  invalid = false,
@@ -5498,12 +5775,12 @@ var SelectTrigger = forwardRef14(
5498
5775
  ...props
5499
5776
  }, ref) => {
5500
5777
  const store = useSelectStore(externalStore);
5501
- const open = useStore3(store, (s) => s.open);
5778
+ const open = useStore4(store, (s) => s.open);
5502
5779
  const toggleOpen = () => store.setState({ open: !open });
5503
5780
  const variantClasses = VARIANT_CLASSES4[variant];
5504
5781
  const heightClasses = HEIGHT_CLASSES[size];
5505
5782
  const paddingClasses = PADDING_CLASSES[size];
5506
- return /* @__PURE__ */ jsxs23(
5783
+ return /* @__PURE__ */ jsxs24(
5507
5784
  "button",
5508
5785
  {
5509
5786
  ref,
@@ -5524,7 +5801,7 @@ var SelectTrigger = forwardRef14(
5524
5801
  ...props,
5525
5802
  children: [
5526
5803
  props.children,
5527
- /* @__PURE__ */ jsx28(
5804
+ /* @__PURE__ */ jsx30(
5528
5805
  CaretDown,
5529
5806
  {
5530
5807
  className: cn(
@@ -5539,7 +5816,7 @@ var SelectTrigger = forwardRef14(
5539
5816
  }
5540
5817
  );
5541
5818
  SelectTrigger.displayName = "SelectTrigger";
5542
- var SelectContent = forwardRef14(
5819
+ var SelectContent = forwardRef15(
5543
5820
  ({
5544
5821
  children,
5545
5822
  className,
@@ -5549,16 +5826,16 @@ var SelectContent = forwardRef14(
5549
5826
  ...props
5550
5827
  }, ref) => {
5551
5828
  const store = useSelectStore(externalStore);
5552
- const open = useStore3(store, (s) => s.open);
5829
+ const open = useStore4(store, (s) => s.open);
5553
5830
  if (!open) return null;
5554
5831
  const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
5555
- return /* @__PURE__ */ jsx28(
5832
+ return /* @__PURE__ */ jsx30(
5556
5833
  "div",
5557
5834
  {
5558
5835
  role: "menu",
5559
5836
  ref,
5560
5837
  className: cn(
5561
- "bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md border-border-100",
5838
+ "bg-secondary z-50 min-w-[210px] overflow-hidden rounded-md border p-1 shadow-md border-border-100",
5562
5839
  getPositionClasses(),
5563
5840
  className
5564
5841
  ),
@@ -5569,7 +5846,7 @@ var SelectContent = forwardRef14(
5569
5846
  }
5570
5847
  );
5571
5848
  SelectContent.displayName = "SelectContent";
5572
- var SelectItem = forwardRef14(
5849
+ var SelectItem = forwardRef15(
5573
5850
  ({
5574
5851
  className,
5575
5852
  children,
@@ -5585,7 +5862,7 @@ var SelectItem = forwardRef14(
5585
5862
  setOpen,
5586
5863
  setSelectedLabel,
5587
5864
  onValueChange
5588
- } = useStore3(store, (s) => s);
5865
+ } = useStore4(store, (s) => s);
5589
5866
  const handleClick = (e) => {
5590
5867
  const labelNode = getLabelAsNode(children);
5591
5868
  if (!disabled) {
@@ -5596,14 +5873,14 @@ var SelectItem = forwardRef14(
5596
5873
  }
5597
5874
  props.onClick?.(e);
5598
5875
  };
5599
- return /* @__PURE__ */ jsxs23(
5876
+ return /* @__PURE__ */ jsxs24(
5600
5877
  "div",
5601
5878
  {
5602
5879
  role: "menuitem",
5603
5880
  "aria-disabled": disabled,
5604
5881
  ref,
5605
5882
  className: `
5606
- focus-visible:bg-background-50
5883
+ bg-secondary focus-visible:bg-background-50
5607
5884
  relative flex select-none items-center gap-2 rounded-sm p-3 outline-none transition-colors [&>svg]:size-4 [&>svg]:shrink-0
5608
5885
  ${className}
5609
5886
  ${disabled ? "cursor-not-allowed text-text-400 pointer-events-none opacity-50" : "cursor-pointer hover:bg-background-50 text-text-700 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground"}
@@ -5616,7 +5893,7 @@ var SelectItem = forwardRef14(
5616
5893
  tabIndex: disabled ? -1 : 0,
5617
5894
  ...props,
5618
5895
  children: [
5619
- /* @__PURE__ */ jsx28("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx28(Check4, { className: "" }) }),
5896
+ /* @__PURE__ */ jsx30("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx30(Check5, { className: "" }) }),
5620
5897
  children
5621
5898
  ]
5622
5899
  }
@@ -5627,19 +5904,19 @@ SelectItem.displayName = "SelectItem";
5627
5904
  var Select_default = Select;
5628
5905
 
5629
5906
  // src/components/Menu/Menu.tsx
5630
- import { create as create5, useStore as useStore4 } from "zustand";
5907
+ import { create as create6, useStore as useStore5 } from "zustand";
5631
5908
  import {
5632
- useEffect as useEffect7,
5633
- useRef as useRef6,
5634
- forwardRef as forwardRef15,
5635
- isValidElement as isValidElement4,
5636
- Children as Children4,
5637
- cloneElement as cloneElement4,
5638
- useState as useState10
5909
+ useEffect as useEffect9,
5910
+ useRef as useRef7,
5911
+ forwardRef as forwardRef16,
5912
+ isValidElement as isValidElement5,
5913
+ Children as Children5,
5914
+ cloneElement as cloneElement5,
5915
+ useState as useState11
5639
5916
  } from "react";
5640
5917
  import { CaretLeft, CaretRight as CaretRight3 } from "phosphor-react";
5641
- import { jsx as jsx29, jsxs as jsxs24 } from "react/jsx-runtime";
5642
- var createMenuStore = (onValueChange) => create5((set) => ({
5918
+ import { jsx as jsx31, jsxs as jsxs25 } from "react/jsx-runtime";
5919
+ var createMenuStore = (onValueChange) => create6((set) => ({
5643
5920
  value: "",
5644
5921
  setValue: (value) => {
5645
5922
  set({ value });
@@ -5656,7 +5933,7 @@ var VARIANT_CLASSES5 = {
5656
5933
  menu2: "",
5657
5934
  breadcrumb: ""
5658
5935
  };
5659
- var Menu = forwardRef15(
5936
+ var Menu = forwardRef16(
5660
5937
  ({
5661
5938
  className,
5662
5939
  children,
@@ -5666,16 +5943,16 @@ var Menu = forwardRef15(
5666
5943
  onValueChange,
5667
5944
  ...props
5668
5945
  }, ref) => {
5669
- const storeRef = useRef6(null);
5946
+ const storeRef = useRef7(null);
5670
5947
  storeRef.current ??= createMenuStore(onValueChange);
5671
5948
  const store = storeRef.current;
5672
- const { setValue } = useStore4(store, (s) => s);
5673
- useEffect7(() => {
5949
+ const { setValue } = useStore5(store, (s) => s);
5950
+ useEffect9(() => {
5674
5951
  setValue(propValue ?? defaultValue);
5675
5952
  }, [defaultValue, propValue, setValue]);
5676
5953
  const baseClasses = "w-full py-2 flex flex-row items-center justify-center";
5677
5954
  const variantClasses = VARIANT_CLASSES5[variant];
5678
- return /* @__PURE__ */ jsx29(
5955
+ return /* @__PURE__ */ jsx31(
5679
5956
  "div",
5680
5957
  {
5681
5958
  ref,
@@ -5685,17 +5962,17 @@ var Menu = forwardRef15(
5685
5962
  ${className ?? ""}
5686
5963
  `,
5687
5964
  ...props,
5688
- children: injectStore4(children, store)
5965
+ children: injectStore5(children, store)
5689
5966
  }
5690
5967
  );
5691
5968
  }
5692
5969
  );
5693
5970
  Menu.displayName = "Menu";
5694
- var MenuContent = forwardRef15(
5971
+ var MenuContent = forwardRef16(
5695
5972
  ({ className, children, variant = "menu", ...props }, ref) => {
5696
5973
  const baseClasses = "w-full flex flex-row items-center gap-2";
5697
5974
  const variantClasses = variant === "menu2" ? "overflow-x-auto scroll-smooth" : "";
5698
- return /* @__PURE__ */ jsx29(
5975
+ return /* @__PURE__ */ jsx31(
5699
5976
  "ul",
5700
5977
  {
5701
5978
  ref,
@@ -5713,7 +5990,7 @@ var MenuContent = forwardRef15(
5713
5990
  }
5714
5991
  );
5715
5992
  MenuContent.displayName = "MenuContent";
5716
- var MenuItem = forwardRef15(
5993
+ var MenuItem = forwardRef16(
5717
5994
  ({
5718
5995
  className,
5719
5996
  children,
@@ -5725,7 +6002,7 @@ var MenuItem = forwardRef15(
5725
6002
  ...props
5726
6003
  }, ref) => {
5727
6004
  const store = useMenuStore(externalStore);
5728
- const { value: selectedValue, setValue } = useStore4(store, (s) => s);
6005
+ const { value: selectedValue, setValue } = useStore5(store, (s) => s);
5729
6006
  const handleClick = (e) => {
5730
6007
  if (!disabled) {
5731
6008
  setValue(value);
@@ -5747,7 +6024,7 @@ var MenuItem = forwardRef15(
5747
6024
  ...props
5748
6025
  };
5749
6026
  const variants = {
5750
- menu: /* @__PURE__ */ jsx29(
6027
+ menu: /* @__PURE__ */ jsx31(
5751
6028
  "li",
5752
6029
  {
5753
6030
  "data-variant": "menu",
@@ -5762,7 +6039,7 @@ var MenuItem = forwardRef15(
5762
6039
  children
5763
6040
  }
5764
6041
  ),
5765
- menu2: /* @__PURE__ */ jsxs24(
6042
+ menu2: /* @__PURE__ */ jsxs25(
5766
6043
  "li",
5767
6044
  {
5768
6045
  "data-variant": "menu2",
@@ -5773,7 +6050,7 @@ var MenuItem = forwardRef15(
5773
6050
  `,
5774
6051
  ...commonProps,
5775
6052
  children: [
5776
- /* @__PURE__ */ jsx29(
6053
+ /* @__PURE__ */ jsx31(
5777
6054
  "span",
5778
6055
  {
5779
6056
  className: cn(
@@ -5783,11 +6060,11 @@ var MenuItem = forwardRef15(
5783
6060
  children
5784
6061
  }
5785
6062
  ),
5786
- selectedValue === value && /* @__PURE__ */ jsx29("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
6063
+ selectedValue === value && /* @__PURE__ */ jsx31("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
5787
6064
  ]
5788
6065
  }
5789
6066
  ),
5790
- breadcrumb: /* @__PURE__ */ jsxs24(
6067
+ breadcrumb: /* @__PURE__ */ jsxs25(
5791
6068
  "li",
5792
6069
  {
5793
6070
  "data-variant": "breadcrumb",
@@ -5799,7 +6076,7 @@ var MenuItem = forwardRef15(
5799
6076
  `,
5800
6077
  ...commonProps,
5801
6078
  children: [
5802
- /* @__PURE__ */ jsx29(
6079
+ /* @__PURE__ */ jsx31(
5803
6080
  "span",
5804
6081
  {
5805
6082
  className: cn(
@@ -5809,7 +6086,7 @@ var MenuItem = forwardRef15(
5809
6086
  children
5810
6087
  }
5811
6088
  ),
5812
- separator && /* @__PURE__ */ jsx29(
6089
+ separator && /* @__PURE__ */ jsx31(
5813
6090
  CaretRight3,
5814
6091
  {
5815
6092
  size: 16,
@@ -5846,10 +6123,10 @@ var MenuOverflow = ({
5846
6123
  onValueChange,
5847
6124
  ...props
5848
6125
  }) => {
5849
- const containerRef = useRef6(null);
5850
- const [showLeftArrow, setShowLeftArrow] = useState10(false);
5851
- const [showRightArrow, setShowRightArrow] = useState10(false);
5852
- useEffect7(() => {
6126
+ const containerRef = useRef7(null);
6127
+ const [showLeftArrow, setShowLeftArrow] = useState11(false);
6128
+ const [showRightArrow, setShowRightArrow] = useState11(false);
6129
+ useEffect9(() => {
5853
6130
  const checkScroll = () => internalCheckScroll(
5854
6131
  containerRef.current,
5855
6132
  setShowLeftArrow,
@@ -5864,25 +6141,25 @@ var MenuOverflow = ({
5864
6141
  window.removeEventListener("resize", checkScroll);
5865
6142
  };
5866
6143
  }, []);
5867
- return /* @__PURE__ */ jsxs24(
6144
+ return /* @__PURE__ */ jsxs25(
5868
6145
  "div",
5869
6146
  {
5870
6147
  "data-testid": "menu-overflow-wrapper",
5871
6148
  className: cn("relative w-full overflow-hidden", className),
5872
6149
  children: [
5873
- showLeftArrow && /* @__PURE__ */ jsxs24(
6150
+ showLeftArrow && /* @__PURE__ */ jsxs25(
5874
6151
  "button",
5875
6152
  {
5876
6153
  onClick: () => internalScroll(containerRef.current, "left"),
5877
6154
  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",
5878
6155
  "data-testid": "scroll-left-button",
5879
6156
  children: [
5880
- /* @__PURE__ */ jsx29(CaretLeft, { size: 16 }),
5881
- /* @__PURE__ */ jsx29("span", { className: "sr-only", children: "Scroll left" })
6157
+ /* @__PURE__ */ jsx31(CaretLeft, { size: 16 }),
6158
+ /* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Scroll left" })
5882
6159
  ]
5883
6160
  }
5884
6161
  ),
5885
- /* @__PURE__ */ jsx29(
6162
+ /* @__PURE__ */ jsx31(
5886
6163
  Menu,
5887
6164
  {
5888
6165
  defaultValue,
@@ -5890,18 +6167,18 @@ var MenuOverflow = ({
5890
6167
  value,
5891
6168
  variant: "menu2",
5892
6169
  ...props,
5893
- children: /* @__PURE__ */ jsx29(MenuContent, { ref: containerRef, variant: "menu2", children })
6170
+ children: /* @__PURE__ */ jsx31(MenuContent, { ref: containerRef, variant: "menu2", children })
5894
6171
  }
5895
6172
  ),
5896
- showRightArrow && /* @__PURE__ */ jsxs24(
6173
+ showRightArrow && /* @__PURE__ */ jsxs25(
5897
6174
  "button",
5898
6175
  {
5899
6176
  onClick: () => internalScroll(containerRef.current, "right"),
5900
6177
  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",
5901
6178
  "data-testid": "scroll-right-button",
5902
6179
  children: [
5903
- /* @__PURE__ */ jsx29(CaretRight3, { size: 16 }),
5904
- /* @__PURE__ */ jsx29("span", { className: "sr-only", children: "Scroll right" })
6180
+ /* @__PURE__ */ jsx31(CaretRight3, { size: 16 }),
6181
+ /* @__PURE__ */ jsx31("span", { className: "sr-only", children: "Scroll right" })
5905
6182
  ]
5906
6183
  }
5907
6184
  )
@@ -5909,20 +6186,20 @@ var MenuOverflow = ({
5909
6186
  }
5910
6187
  );
5911
6188
  };
5912
- var injectStore4 = (children, store) => Children4.map(children, (child) => {
5913
- if (!isValidElement4(child)) return child;
6189
+ var injectStore5 = (children, store) => Children5.map(children, (child) => {
6190
+ if (!isValidElement5(child)) return child;
5914
6191
  const typedChild = child;
5915
6192
  const shouldInject = typedChild.type === MenuItem;
5916
- return cloneElement4(typedChild, {
6193
+ return cloneElement5(typedChild, {
5917
6194
  ...shouldInject ? { store } : {},
5918
- ...typedChild.props.children ? { children: injectStore4(typedChild.props.children, store) } : {}
6195
+ ...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
5919
6196
  });
5920
6197
  });
5921
6198
  var Menu_default = Menu;
5922
6199
 
5923
6200
  // src/components/Skeleton/Skeleton.tsx
5924
- import { forwardRef as forwardRef16 } from "react";
5925
- import { jsx as jsx30, jsxs as jsxs25 } from "react/jsx-runtime";
6201
+ import { forwardRef as forwardRef17 } from "react";
6202
+ import { jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
5926
6203
  var SKELETON_ANIMATION_CLASSES = {
5927
6204
  pulse: "animate-pulse",
5928
6205
  none: ""
@@ -5939,7 +6216,7 @@ var SPACING_CLASSES = {
5939
6216
  medium: "space-y-2",
5940
6217
  large: "space-y-3"
5941
6218
  };
5942
- var Skeleton = forwardRef16(
6219
+ var Skeleton = forwardRef17(
5943
6220
  ({
5944
6221
  variant = "text",
5945
6222
  width,
@@ -5959,13 +6236,13 @@ var Skeleton = forwardRef16(
5959
6236
  height: typeof height === "number" ? `${height}px` : height
5960
6237
  };
5961
6238
  if (variant === "text" && lines > 1) {
5962
- return /* @__PURE__ */ jsx30(
6239
+ return /* @__PURE__ */ jsx32(
5963
6240
  "div",
5964
6241
  {
5965
6242
  ref,
5966
6243
  className: cn("flex flex-col", spacingClass, className),
5967
6244
  ...props,
5968
- children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx30(
6245
+ children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx32(
5969
6246
  "div",
5970
6247
  {
5971
6248
  className: cn(variantClass, animationClass),
@@ -5976,7 +6253,7 @@ var Skeleton = forwardRef16(
5976
6253
  }
5977
6254
  );
5978
6255
  }
5979
- return /* @__PURE__ */ jsx30(
6256
+ return /* @__PURE__ */ jsx32(
5980
6257
  "div",
5981
6258
  {
5982
6259
  ref,
@@ -5988,13 +6265,13 @@ var Skeleton = forwardRef16(
5988
6265
  );
5989
6266
  }
5990
6267
  );
5991
- var SkeletonText = forwardRef16(
5992
- (props, ref) => /* @__PURE__ */ jsx30(Skeleton, { ref, variant: "text", ...props })
6268
+ var SkeletonText = forwardRef17(
6269
+ (props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "text", ...props })
5993
6270
  );
5994
- var SkeletonCircle = forwardRef16((props, ref) => /* @__PURE__ */ jsx30(Skeleton, { ref, variant: "circular", ...props }));
5995
- var SkeletonRectangle = forwardRef16((props, ref) => /* @__PURE__ */ jsx30(Skeleton, { ref, variant: "rectangular", ...props }));
5996
- var SkeletonRounded = forwardRef16((props, ref) => /* @__PURE__ */ jsx30(Skeleton, { ref, variant: "rounded", ...props }));
5997
- var SkeletonCard = forwardRef16(
6271
+ var SkeletonCircle = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "circular", ...props }));
6272
+ var SkeletonRectangle = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "rectangular", ...props }));
6273
+ var SkeletonRounded = forwardRef17((props, ref) => /* @__PURE__ */ jsx32(Skeleton, { ref, variant: "rounded", ...props }));
6274
+ var SkeletonCard = forwardRef17(
5998
6275
  ({
5999
6276
  showAvatar = true,
6000
6277
  showTitle = true,
@@ -6004,7 +6281,7 @@ var SkeletonCard = forwardRef16(
6004
6281
  className = "",
6005
6282
  ...props
6006
6283
  }, ref) => {
6007
- return /* @__PURE__ */ jsxs25(
6284
+ return /* @__PURE__ */ jsxs26(
6008
6285
  "div",
6009
6286
  {
6010
6287
  ref,
@@ -6014,23 +6291,23 @@ var SkeletonCard = forwardRef16(
6014
6291
  ),
6015
6292
  ...props,
6016
6293
  children: [
6017
- /* @__PURE__ */ jsxs25("div", { className: "flex items-start space-x-3", children: [
6018
- showAvatar && /* @__PURE__ */ jsx30(SkeletonCircle, { width: 40, height: 40 }),
6019
- /* @__PURE__ */ jsxs25("div", { className: "flex-1 space-y-2", children: [
6020
- showTitle && /* @__PURE__ */ jsx30(SkeletonText, { width: "60%", height: 20 }),
6021
- showDescription && /* @__PURE__ */ jsx30(SkeletonText, { lines, spacing: "small" })
6294
+ /* @__PURE__ */ jsxs26("div", { className: "flex items-start space-x-3", children: [
6295
+ showAvatar && /* @__PURE__ */ jsx32(SkeletonCircle, { width: 40, height: 40 }),
6296
+ /* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
6297
+ showTitle && /* @__PURE__ */ jsx32(SkeletonText, { width: "60%", height: 20 }),
6298
+ showDescription && /* @__PURE__ */ jsx32(SkeletonText, { lines, spacing: "small" })
6022
6299
  ] })
6023
6300
  ] }),
6024
- showActions && /* @__PURE__ */ jsxs25("div", { className: "flex justify-end space-x-2 mt-4", children: [
6025
- /* @__PURE__ */ jsx30(SkeletonRectangle, { width: 80, height: 32 }),
6026
- /* @__PURE__ */ jsx30(SkeletonRectangle, { width: 80, height: 32 })
6301
+ showActions && /* @__PURE__ */ jsxs26("div", { className: "flex justify-end space-x-2 mt-4", children: [
6302
+ /* @__PURE__ */ jsx32(SkeletonRectangle, { width: 80, height: 32 }),
6303
+ /* @__PURE__ */ jsx32(SkeletonRectangle, { width: 80, height: 32 })
6027
6304
  ] })
6028
6305
  ]
6029
6306
  }
6030
6307
  );
6031
6308
  }
6032
6309
  );
6033
- var SkeletonList = forwardRef16(
6310
+ var SkeletonList = forwardRef17(
6034
6311
  ({
6035
6312
  items = 3,
6036
6313
  showAvatar = true,
@@ -6040,19 +6317,19 @@ var SkeletonList = forwardRef16(
6040
6317
  className = "",
6041
6318
  ...props
6042
6319
  }, ref) => {
6043
- return /* @__PURE__ */ jsx30("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs25("div", { className: "flex items-start space-x-3 p-3", children: [
6044
- showAvatar && /* @__PURE__ */ jsx30(SkeletonCircle, { width: 32, height: 32 }),
6045
- /* @__PURE__ */ jsxs25("div", { className: "flex-1 space-y-2", children: [
6046
- showTitle && /* @__PURE__ */ jsx30(SkeletonText, { width: "40%", height: 16 }),
6047
- showDescription && /* @__PURE__ */ jsx30(SkeletonText, { lines, spacing: "small" })
6320
+ return /* @__PURE__ */ jsx32("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs26("div", { className: "flex items-start space-x-3 p-3", children: [
6321
+ showAvatar && /* @__PURE__ */ jsx32(SkeletonCircle, { width: 32, height: 32 }),
6322
+ /* @__PURE__ */ jsxs26("div", { className: "flex-1 space-y-2", children: [
6323
+ showTitle && /* @__PURE__ */ jsx32(SkeletonText, { width: "40%", height: 16 }),
6324
+ showDescription && /* @__PURE__ */ jsx32(SkeletonText, { lines, spacing: "small" })
6048
6325
  ] })
6049
6326
  ] }, index)) });
6050
6327
  }
6051
6328
  );
6052
- var SkeletonTable = forwardRef16(
6329
+ var SkeletonTable = forwardRef17(
6053
6330
  ({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
6054
- return /* @__PURE__ */ jsxs25("div", { ref, className: cn("w-full", className), ...props, children: [
6055
- showHeader && /* @__PURE__ */ jsx30("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx30(
6331
+ return /* @__PURE__ */ jsxs26("div", { ref, className: cn("w-full", className), ...props, children: [
6332
+ showHeader && /* @__PURE__ */ jsx32("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx32(
6056
6333
  SkeletonText,
6057
6334
  {
6058
6335
  width: `${100 / columns}%`,
@@ -6060,7 +6337,7 @@ var SkeletonTable = forwardRef16(
6060
6337
  },
6061
6338
  index
6062
6339
  )) }),
6063
- /* @__PURE__ */ jsx30("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx30("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx30(
6340
+ /* @__PURE__ */ jsx32("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx32("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx32(
6064
6341
  SkeletonText,
6065
6342
  {
6066
6343
  width: `${100 / columns}%`,
@@ -6073,7 +6350,7 @@ var SkeletonTable = forwardRef16(
6073
6350
  );
6074
6351
 
6075
6352
  // src/components/NotFound/NotFound.tsx
6076
- import { jsx as jsx31, jsxs as jsxs26 } from "react/jsx-runtime";
6353
+ import { jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
6077
6354
  var NotFound = ({
6078
6355
  title,
6079
6356
  description,
@@ -6116,22 +6393,22 @@ var NotFound = ({
6116
6393
  const errorTitle = title || getDefaultTitle();
6117
6394
  const errorDescription = description || getDefaultDescription();
6118
6395
  const errorCode = getErrorCode();
6119
- return /* @__PURE__ */ jsx31(
6396
+ return /* @__PURE__ */ jsx33(
6120
6397
  "div",
6121
6398
  {
6122
6399
  className: cn(
6123
6400
  "flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
6124
6401
  className
6125
6402
  ),
6126
- children: /* @__PURE__ */ jsx31(
6403
+ children: /* @__PURE__ */ jsx33(
6127
6404
  "main",
6128
6405
  {
6129
6406
  role: "main",
6130
6407
  "aria-labelledby": "error-title",
6131
6408
  "aria-describedby": "error-description",
6132
6409
  className: "flex flex-col items-center text-center max-w-md space-y-6",
6133
- children: /* @__PURE__ */ jsxs26("section", { "aria-label": `Erro ${errorCode}`, children: [
6134
- /* @__PURE__ */ jsx31(
6410
+ children: /* @__PURE__ */ jsxs27("section", { "aria-label": `Erro ${errorCode}`, children: [
6411
+ /* @__PURE__ */ jsx33(
6135
6412
  "div",
6136
6413
  {
6137
6414
  className: "text-8xl font-bold text-primary-300 select-none",
@@ -6139,8 +6416,8 @@ var NotFound = ({
6139
6416
  children: errorCode
6140
6417
  }
6141
6418
  ),
6142
- /* @__PURE__ */ jsxs26("header", { className: "space-y-2", children: [
6143
- /* @__PURE__ */ jsx31(
6419
+ /* @__PURE__ */ jsxs27("header", { className: "space-y-2", children: [
6420
+ /* @__PURE__ */ jsx33(
6144
6421
  Text_default,
6145
6422
  {
6146
6423
  size: "xl",
@@ -6151,9 +6428,9 @@ var NotFound = ({
6151
6428
  children: errorTitle
6152
6429
  }
6153
6430
  ),
6154
- /* @__PURE__ */ jsx31(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
6431
+ /* @__PURE__ */ jsx33(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
6155
6432
  ] }),
6156
- onButtonClick && /* @__PURE__ */ jsx31("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx31(
6433
+ onButtonClick && /* @__PURE__ */ jsx33("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx33(
6157
6434
  Button_default,
6158
6435
  {
6159
6436
  onClick: handleButtonClick,
@@ -6177,13 +6454,13 @@ var NotFound_default = NotFound;
6177
6454
  import {
6178
6455
  createContext,
6179
6456
  useContext,
6180
- useEffect as useEffect8,
6181
- useState as useState11,
6457
+ useEffect as useEffect10,
6458
+ useState as useState12,
6182
6459
  useCallback,
6183
6460
  useMemo as useMemo3
6184
6461
  } from "react";
6185
6462
  import { useLocation, Navigate } from "react-router-dom";
6186
- import { Fragment as Fragment7, jsx as jsx32 } from "react/jsx-runtime";
6463
+ import { Fragment as Fragment7, jsx as jsx34 } from "react/jsx-runtime";
6187
6464
  var AuthContext = createContext(void 0);
6188
6465
  var AuthProvider = ({
6189
6466
  children,
@@ -6194,7 +6471,7 @@ var AuthProvider = ({
6194
6471
  getSessionFn,
6195
6472
  getTokensFn
6196
6473
  }) => {
6197
- const [authState, setAuthState] = useState11({
6474
+ const [authState, setAuthState] = useState12({
6198
6475
  isAuthenticated: false,
6199
6476
  isLoading: true,
6200
6477
  ...initialAuthState
@@ -6242,7 +6519,7 @@ var AuthProvider = ({
6242
6519
  tokens: void 0
6243
6520
  }));
6244
6521
  }, [signOutFn]);
6245
- useEffect8(() => {
6522
+ useEffect10(() => {
6246
6523
  checkAuth();
6247
6524
  }, [checkAuth]);
6248
6525
  const contextValue = useMemo3(
@@ -6253,7 +6530,7 @@ var AuthProvider = ({
6253
6530
  }),
6254
6531
  [authState, checkAuth, signOut]
6255
6532
  );
6256
- return /* @__PURE__ */ jsx32(AuthContext.Provider, { value: contextValue, children });
6533
+ return /* @__PURE__ */ jsx34(AuthContext.Provider, { value: contextValue, children });
6257
6534
  };
6258
6535
  var useAuth = () => {
6259
6536
  const context = useContext(AuthContext);
@@ -6269,9 +6546,9 @@ var ProtectedRoute = ({
6269
6546
  additionalCheck
6270
6547
  }) => {
6271
6548
  const { isAuthenticated, isLoading, ...authState } = useAuth();
6272
- const defaultLoadingComponent = /* @__PURE__ */ jsx32("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx32("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6549
+ const defaultLoadingComponent = /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx34("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6273
6550
  if (isLoading) {
6274
- return /* @__PURE__ */ jsx32(Fragment7, { children: loadingComponent || defaultLoadingComponent });
6551
+ return /* @__PURE__ */ jsx34(Fragment7, { children: loadingComponent || defaultLoadingComponent });
6275
6552
  }
6276
6553
  if (!isAuthenticated) {
6277
6554
  if (typeof window !== "undefined") {
@@ -6282,12 +6559,12 @@ var ProtectedRoute = ({
6282
6559
  return null;
6283
6560
  }
6284
6561
  }
6285
- return /* @__PURE__ */ jsx32(Navigate, { to: redirectTo, replace: true });
6562
+ return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
6286
6563
  }
6287
6564
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
6288
- return /* @__PURE__ */ jsx32(Navigate, { to: redirectTo, replace: true });
6565
+ return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
6289
6566
  }
6290
- return /* @__PURE__ */ jsx32(Fragment7, { children });
6567
+ return /* @__PURE__ */ jsx34(Fragment7, { children });
6291
6568
  };
6292
6569
  var PublicRoute = ({
6293
6570
  children,
@@ -6297,15 +6574,15 @@ var PublicRoute = ({
6297
6574
  }) => {
6298
6575
  const { isAuthenticated, isLoading } = useAuth();
6299
6576
  if (checkAuthBeforeRender && isLoading) {
6300
- return /* @__PURE__ */ jsx32("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx32("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6577
+ return /* @__PURE__ */ jsx34("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx34("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
6301
6578
  }
6302
6579
  if (isAuthenticated && redirectIfAuthenticated) {
6303
- return /* @__PURE__ */ jsx32(Navigate, { to: redirectTo, replace: true });
6580
+ return /* @__PURE__ */ jsx34(Navigate, { to: redirectTo, replace: true });
6304
6581
  }
6305
- return /* @__PURE__ */ jsx32(Fragment7, { children });
6582
+ return /* @__PURE__ */ jsx34(Fragment7, { children });
6306
6583
  };
6307
6584
  var withAuth = (Component, options = {}) => {
6308
- return (props) => /* @__PURE__ */ jsx32(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx32(Component, { ...props }) });
6585
+ return (props) => /* @__PURE__ */ jsx34(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx34(Component, { ...props }) });
6309
6586
  };
6310
6587
  var useAuthGuard = (options = {}) => {
6311
6588
  const authState = useAuth();
@@ -6320,7 +6597,7 @@ var useAuthGuard = (options = {}) => {
6320
6597
  var useRouteAuth = (fallbackPath = "/") => {
6321
6598
  const { isAuthenticated, isLoading } = useAuth();
6322
6599
  const location = useLocation();
6323
- const redirectToLogin = () => /* @__PURE__ */ jsx32(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
6600
+ const redirectToLogin = () => /* @__PURE__ */ jsx34(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
6324
6601
  return {
6325
6602
  isAuthenticated,
6326
6603
  isLoading,
@@ -6384,7 +6661,7 @@ function createZustandAuthAdapter(useAuthStore) {
6384
6661
  }
6385
6662
 
6386
6663
  // src/components/Auth/useUrlAuthentication.ts
6387
- import { useEffect as useEffect9 } from "react";
6664
+ import { useEffect as useEffect11 } from "react";
6388
6665
  import { useLocation as useLocation2 } from "react-router-dom";
6389
6666
  var getAuthParams = (location, extractParams) => {
6390
6667
  const searchParams = new URLSearchParams(location.search);
@@ -6413,7 +6690,7 @@ var handleProfileSelection = (responseData, setSelectedProfile) => {
6413
6690
  };
6414
6691
  function useUrlAuthentication(options) {
6415
6692
  const location = useLocation2();
6416
- useEffect9(() => {
6693
+ useEffect11(() => {
6417
6694
  const handleAuthentication = async () => {
6418
6695
  const authParams = getAuthParams(location, options.extractParams);
6419
6696
  if (!hasValidAuthParams(authParams)) {
@@ -6469,12 +6746,19 @@ import {
6469
6746
  BookOpen,
6470
6747
  Book
6471
6748
  } from "phosphor-react";
6472
- import { forwardRef as forwardRef17, useState as useState12 } from "react";
6749
+ import {
6750
+ forwardRef as forwardRef18,
6751
+ useEffect as useEffect12,
6752
+ useMemo as useMemo5,
6753
+ useState as useState13,
6754
+ useCallback as useCallback2,
6755
+ useRef as useRef8
6756
+ } from "react";
6473
6757
 
6474
6758
  // src/components/Quiz/useQuizStore.ts
6475
- import { create as create6 } from "zustand";
6759
+ import { create as create7 } from "zustand";
6476
6760
  import { devtools } from "zustand/middleware";
6477
- var useQuizStore = create6()(
6761
+ var useQuizStore = create7()(
6478
6762
  devtools(
6479
6763
  (set, get) => {
6480
6764
  let timerInterval = null;
@@ -6510,6 +6794,7 @@ var useQuizStore = create6()(
6510
6794
  setByActivity: (atividade) => set({ byActivity: atividade }),
6511
6795
  setByQuestionary: (aula) => set({ byQuestionary: aula }),
6512
6796
  setUserId: (userId) => set({ userId }),
6797
+ setUserAnswers: (userAnswers) => set({ userAnswers }),
6513
6798
  getUserId: () => get().userId,
6514
6799
  // Navigation
6515
6800
  goToNextQuestion: () => {
@@ -6546,16 +6831,9 @@ var useQuizStore = create6()(
6546
6831
  const { getActiveQuiz, userAnswers } = get();
6547
6832
  const activeQuiz = getActiveQuiz();
6548
6833
  if (!activeQuiz) return;
6549
- const updatedQuestions = activeQuiz.quiz.questions.map(
6550
- (question) => question.id === questionId ? { ...question, answerKey: answerId } : question
6551
- );
6552
- const updatedQuiz = {
6553
- ...activeQuiz.quiz,
6554
- questions: updatedQuestions
6555
- };
6556
6834
  const activityId = activeQuiz.quiz.id;
6557
6835
  const userId = get().getUserId();
6558
- if (!userId) {
6836
+ if (!userId || userId === "") {
6559
6837
  console.warn("selectAnswer called before userId is set");
6560
6838
  return;
6561
6839
  }
@@ -6566,7 +6844,7 @@ var useQuizStore = create6()(
6566
6844
  questionId,
6567
6845
  activityId,
6568
6846
  userId,
6569
- answer: answerId,
6847
+ answer: null,
6570
6848
  optionId: answerId
6571
6849
  };
6572
6850
  let updatedUserAnswers;
@@ -6577,7 +6855,36 @@ var useQuizStore = create6()(
6577
6855
  updatedUserAnswers = [...userAnswers, newUserAnswer];
6578
6856
  }
6579
6857
  set({
6580
- [activeQuiz.type]: updatedQuiz,
6858
+ userAnswers: updatedUserAnswers
6859
+ });
6860
+ },
6861
+ selectMultipleAnswer: (questionId, answerIds) => {
6862
+ const { getActiveQuiz, userAnswers } = get();
6863
+ const activeQuiz = getActiveQuiz();
6864
+ if (!activeQuiz) return;
6865
+ const activityId = activeQuiz.quiz.id;
6866
+ const userId = get().getUserId();
6867
+ if (!userId || userId === "") {
6868
+ console.warn("selectMultipleAnswer called before userId is set");
6869
+ return;
6870
+ }
6871
+ const filteredUserAnswers = userAnswers.filter(
6872
+ (answer) => answer.questionId !== questionId
6873
+ );
6874
+ const newUserAnswers = answerIds.map(
6875
+ (answerId) => ({
6876
+ questionId,
6877
+ activityId,
6878
+ userId,
6879
+ answer: null,
6880
+ optionId: answerId
6881
+ })
6882
+ );
6883
+ const updatedUserAnswers = [
6884
+ ...filteredUserAnswers,
6885
+ ...newUserAnswers
6886
+ ];
6887
+ set({
6581
6888
  userAnswers: updatedUserAnswers
6582
6889
  });
6583
6890
  },
@@ -6589,6 +6896,10 @@ var useQuizStore = create6()(
6589
6896
  if (currentQuestion) {
6590
6897
  const activityId = activeQuiz.quiz.id;
6591
6898
  const userId = get().getUserId();
6899
+ if (!userId || userId === "") {
6900
+ console.warn("skipQuestion called before userId is set");
6901
+ return;
6902
+ }
6592
6903
  const existingAnswerIndex = userAnswers.findIndex(
6593
6904
  (answer) => answer.questionId === currentQuestion.id
6594
6905
  );
@@ -6617,6 +6928,10 @@ var useQuizStore = create6()(
6617
6928
  if (!activeQuiz) return;
6618
6929
  const activityId = activeQuiz.quiz.id;
6619
6930
  const userId = get().getUserId();
6931
+ if (!userId || userId === "") {
6932
+ console.warn("addUserAnswer called before userId is set");
6933
+ return;
6934
+ }
6620
6935
  const existingAnswerIndex = userAnswers.findIndex(
6621
6936
  (answer) => answer.questionId === questionId
6622
6937
  );
@@ -6624,7 +6939,7 @@ var useQuizStore = create6()(
6624
6939
  questionId,
6625
6940
  activityId,
6626
6941
  userId,
6627
- answer: answerId || null,
6942
+ answer: null,
6628
6943
  optionId: answerId || null
6629
6944
  };
6630
6945
  if (existingAnswerIndex !== -1) {
@@ -6675,7 +6990,7 @@ var useQuizStore = create6()(
6675
6990
  },
6676
6991
  getAnsweredQuestions: () => {
6677
6992
  const { userAnswers } = get();
6678
- return userAnswers.filter((answer) => answer.answer !== null).length;
6993
+ return userAnswers.filter((answer) => answer.optionId !== null).length;
6679
6994
  },
6680
6995
  getUnansweredQuestions: () => {
6681
6996
  const { getActiveQuiz, userAnswers } = get();
@@ -6686,8 +7001,8 @@ var useQuizStore = create6()(
6686
7001
  const userAnswer = userAnswers.find(
6687
7002
  (answer) => answer.questionId === question.id
6688
7003
  );
6689
- const isAnswered = userAnswer && userAnswer.answer !== null;
6690
- const isSkipped = userAnswer && userAnswer.answer === null;
7004
+ const isAnswered = userAnswer && userAnswer.optionId !== null;
7005
+ const isSkipped = userAnswer && userAnswer.optionId === null;
6691
7006
  if (!isAnswered && !isSkipped) {
6692
7007
  unansweredQuestions.push(index + 1);
6693
7008
  }
@@ -6696,7 +7011,7 @@ var useQuizStore = create6()(
6696
7011
  },
6697
7012
  getSkippedQuestions: () => {
6698
7013
  const { userAnswers } = get();
6699
- return userAnswers.filter((answer) => answer.answer === null).length;
7014
+ return userAnswers.filter((answer) => answer.optionId === null).length;
6700
7015
  },
6701
7016
  getProgress: () => {
6702
7017
  const { getTotalQuestions, getAnsweredQuestions } = get();
@@ -6709,14 +7024,14 @@ var useQuizStore = create6()(
6709
7024
  const userAnswer = userAnswers.find(
6710
7025
  (answer) => answer.questionId === questionId
6711
7026
  );
6712
- return userAnswer ? userAnswer.answer !== null : false;
7027
+ return userAnswer ? userAnswer.optionId !== null : false;
6713
7028
  },
6714
7029
  isQuestionSkipped: (questionId) => {
6715
7030
  const { userAnswers } = get();
6716
7031
  const userAnswer = userAnswers.find(
6717
7032
  (answer) => answer.questionId === questionId
6718
7033
  );
6719
- return userAnswer ? userAnswer.answer === null : false;
7034
+ return userAnswer ? userAnswer.optionId === null : false;
6720
7035
  },
6721
7036
  getCurrentAnswer: () => {
6722
7037
  const { getCurrentQuestion, userAnswers } = get();
@@ -6725,7 +7040,16 @@ var useQuizStore = create6()(
6725
7040
  const userAnswer = userAnswers.find(
6726
7041
  (answer) => answer.questionId === currentQuestion.id
6727
7042
  );
6728
- return userAnswer?.answer;
7043
+ return userAnswer?.optionId;
7044
+ },
7045
+ getAllCurrentAnswer: () => {
7046
+ const { getCurrentQuestion, userAnswers } = get();
7047
+ const currentQuestion = getCurrentQuestion();
7048
+ if (!currentQuestion) return void 0;
7049
+ const userAnswer = userAnswers.filter(
7050
+ (answer) => answer.questionId === currentQuestion.id
7051
+ );
7052
+ return userAnswer;
6729
7053
  },
6730
7054
  getQuizTitle: () => {
6731
7055
  const { getActiveQuiz } = get();
@@ -6738,18 +7062,8 @@ var useQuizStore = create6()(
6738
7062
  return `${minutes.toString().padStart(2, "0")}:${remainingSeconds.toString().padStart(2, "0")}`;
6739
7063
  },
6740
7064
  getUserAnswers: () => {
6741
- const { getActiveQuiz, userAnswers } = get();
6742
- const activeQuiz = getActiveQuiz();
6743
- if (!activeQuiz) return [];
6744
- return activeQuiz.quiz.questions.map((question) => {
6745
- const userAnswer = userAnswers.find(
6746
- (answer) => answer.questionId === question.id
6747
- );
6748
- return {
6749
- ...question,
6750
- isSkipped: userAnswer ? userAnswer.answer === null : false
6751
- };
6752
- });
7065
+ const { userAnswers } = get();
7066
+ return userAnswers;
6753
7067
  },
6754
7068
  getUnansweredQuestionsFromUserAnswers: () => {
6755
7069
  const { getActiveQuiz, userAnswers } = get();
@@ -6760,8 +7074,8 @@ var useQuizStore = create6()(
6760
7074
  const userAnswer = userAnswers.find(
6761
7075
  (answer) => answer.questionId === question.id
6762
7076
  );
6763
- const hasAnswer = userAnswer && userAnswer.answer !== null;
6764
- const isSkipped = userAnswer && userAnswer.answer === null;
7077
+ const hasAnswer = userAnswer && userAnswer.optionId !== null;
7078
+ const isSkipped = userAnswer && userAnswer.optionId === null;
6765
7079
  if (!hasAnswer || isSkipped) {
6766
7080
  unansweredQuestions.push(index + 1);
6767
7081
  }
@@ -6792,7 +7106,7 @@ var useQuizStore = create6()(
6792
7106
  const answer = userAnswers.find(
6793
7107
  (answer2) => answer2.questionId === questionId
6794
7108
  );
6795
- return answer ? answer.answer !== null : false;
7109
+ return answer ? answer.optionId !== null : false;
6796
7110
  },
6797
7111
  getQuestionStatusFromUserAnswers: (questionId) => {
6798
7112
  const { userAnswers } = get();
@@ -6800,12 +7114,27 @@ var useQuizStore = create6()(
6800
7114
  (answer2) => answer2.questionId === questionId
6801
7115
  );
6802
7116
  if (!answer) return "unanswered";
6803
- if (answer.answer === null) return "skipped";
7117
+ if (answer.optionId === null) return "skipped";
6804
7118
  return "answered";
6805
7119
  },
6806
7120
  getUserAnswersForActivity: () => {
6807
7121
  const { userAnswers } = get();
6808
7122
  return userAnswers;
7123
+ },
7124
+ setCurrentQuestion: (question) => {
7125
+ const { getActiveQuiz } = get();
7126
+ const activeQuiz = getActiveQuiz();
7127
+ if (!activeQuiz) return;
7128
+ const questionIndex = activeQuiz.quiz.questions.findIndex(
7129
+ (q) => q.id === question.id
7130
+ );
7131
+ if (questionIndex === -1) {
7132
+ console.warn(
7133
+ `Question with id "${question.id}" not found in active quiz`
7134
+ );
7135
+ return;
7136
+ }
7137
+ set({ currentQuestionIndex: questionIndex });
6809
7138
  }
6810
7139
  };
6811
7140
  },
@@ -6819,9 +7148,9 @@ var useQuizStore = create6()(
6819
7148
  var simulated_result_default = "./simulated-result-QN5HCUY5.png";
6820
7149
 
6821
7150
  // src/components/Quiz/Quiz.tsx
6822
- import { Fragment as Fragment8, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
6823
- var Quiz = forwardRef17(({ children, className, ...props }, ref) => {
6824
- return /* @__PURE__ */ jsx33(
7151
+ import { Fragment as Fragment8, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
7152
+ var Quiz = forwardRef18(({ children, className, ...props }, ref) => {
7153
+ return /* @__PURE__ */ jsx35(
6825
7154
  "div",
6826
7155
  {
6827
7156
  ref,
@@ -6834,31 +7163,56 @@ var Quiz = forwardRef17(({ children, className, ...props }, ref) => {
6834
7163
  }
6835
7164
  );
6836
7165
  });
6837
- var QuizHeaderResult = forwardRef17(
7166
+ var QuizHeaderResult = forwardRef18(
6838
7167
  ({ className, ...props }, ref) => {
6839
- const { getCurrentQuestion, getCurrentAnswer } = useQuizStore();
7168
+ const { getCurrentQuestion, getCurrentAnswer, getAllCurrentAnswer } = useQuizStore();
6840
7169
  const currentQuestion = getCurrentQuestion();
6841
7170
  const userAnswer = getCurrentAnswer();
6842
- const isCorrect = userAnswer === currentQuestion?.correctOptionId;
6843
- return /* @__PURE__ */ jsxs27(
7171
+ const [isCorrect, setIsCorrect] = useState13(false);
7172
+ useEffect12(() => {
7173
+ if (currentQuestion?.type === "MULTIPLA_CHOICE" /* MULTIPLA_CHOICE */) {
7174
+ const allCurrentAnswers = getAllCurrentAnswer();
7175
+ const isCorrectOption = currentQuestion.options.filter(
7176
+ (op) => op.isCorrect
7177
+ );
7178
+ if (allCurrentAnswers?.length !== isCorrectOption.length) {
7179
+ setIsCorrect(false);
7180
+ return;
7181
+ }
7182
+ setIsCorrect(true);
7183
+ allCurrentAnswers.forEach((answer) => {
7184
+ const findInCorrectOptions = isCorrectOption.find(
7185
+ (op) => op.id === answer.optionId
7186
+ );
7187
+ if (!findInCorrectOptions) {
7188
+ setIsCorrect(false);
7189
+ }
7190
+ });
7191
+ } else {
7192
+ setIsCorrect(
7193
+ currentQuestion?.options.find((op) => op.id === userAnswer)?.isCorrect || false
7194
+ );
7195
+ }
7196
+ }, [currentQuestion, getAllCurrentAnswer]);
7197
+ return /* @__PURE__ */ jsxs28(
6844
7198
  "div",
6845
7199
  {
6846
7200
  ref,
6847
7201
  className: cn(
6848
- "flex flex-row items-center gap-10 p-3.5 rounded-xl",
7202
+ "flex flex-row items-center gap-10 p-3.5 rounded-xl mb-4",
6849
7203
  isCorrect ? "bg-success-background" : "bg-error-background",
6850
7204
  className
6851
7205
  ),
6852
7206
  ...props,
6853
7207
  children: [
6854
- /* @__PURE__ */ jsx33("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
6855
- /* @__PURE__ */ jsx33("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
7208
+ /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
7209
+ /* @__PURE__ */ jsx35("p", { className: "text-text-700 text-md", children: isCorrect ? "\u{1F389} Parab\xE9ns!!" : "N\xE3o foi dessa vez..." })
6856
7210
  ]
6857
7211
  }
6858
7212
  );
6859
7213
  }
6860
7214
  );
6861
- var QuizTitle = forwardRef17(
7215
+ var QuizTitle = forwardRef18(
6862
7216
  ({ className, ...props }, ref) => {
6863
7217
  const {
6864
7218
  currentQuestionIndex,
@@ -6870,7 +7224,7 @@ var QuizTitle = forwardRef17(
6870
7224
  } = useQuizStore();
6871
7225
  const totalQuestions = getTotalQuestions();
6872
7226
  const quizTitle = getQuizTitle();
6873
- return /* @__PURE__ */ jsxs27(
7227
+ return /* @__PURE__ */ jsxs28(
6874
7228
  "div",
6875
7229
  {
6876
7230
  ref,
@@ -6880,11 +7234,11 @@ var QuizTitle = forwardRef17(
6880
7234
  ),
6881
7235
  ...props,
6882
7236
  children: [
6883
- /* @__PURE__ */ jsxs27("span", { className: "flex flex-col gap-2 text-center", children: [
6884
- /* @__PURE__ */ jsx33("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
6885
- /* @__PURE__ */ jsx33("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
7237
+ /* @__PURE__ */ jsxs28("span", { className: "flex flex-col gap-2 text-center", children: [
7238
+ /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
7239
+ /* @__PURE__ */ jsx35("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
6886
7240
  ] }),
6887
- /* @__PURE__ */ jsx33("span", { className: "absolute right-2", children: /* @__PURE__ */ jsx33(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx33(Clock2, {}), children: isStarted ? formatTime(timeElapsed) : "00:00" }) })
7241
+ /* @__PURE__ */ jsx35("span", { className: "absolute right-2", children: /* @__PURE__ */ jsx35(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx35(Clock2, {}), children: isStarted ? formatTime(timeElapsed) : "00:00" }) })
6888
7242
  ]
6889
7243
  }
6890
7244
  );
@@ -6893,7 +7247,7 @@ var QuizTitle = forwardRef17(
6893
7247
  var QuizHeader = () => {
6894
7248
  const { getCurrentQuestion } = useQuizStore();
6895
7249
  const currentQuestion = getCurrentQuestion();
6896
- return /* @__PURE__ */ jsx33(
7250
+ return /* @__PURE__ */ jsx35(
6897
7251
  HeaderAlternative,
6898
7252
  {
6899
7253
  title: currentQuestion ? `Quest\xE3o ${currentQuestion.id}` : "Quest\xE3o",
@@ -6902,10 +7256,12 @@ var QuizHeader = () => {
6902
7256
  }
6903
7257
  );
6904
7258
  };
6905
- var QuizContent = forwardRef17(({ type = "Alternativas", children, className, ...props }, ref) => {
6906
- return /* @__PURE__ */ jsxs27(Fragment8, { children: [
6907
- /* @__PURE__ */ jsx33("div", { className: "px-4 pb-2 pt-6", children: /* @__PURE__ */ jsx33("p", { className: "font-bold text-lg text-text-950", children: type }) }),
6908
- /* @__PURE__ */ jsx33(
7259
+ var QuizContent = forwardRef18(({ type = "Alternativas", className, variant, ...props }, ref) => {
7260
+ const { getCurrentQuestion } = useQuizStore();
7261
+ const currentQuestion = getCurrentQuestion();
7262
+ return /* @__PURE__ */ jsxs28(Fragment8, { children: [
7263
+ /* @__PURE__ */ jsx35("div", { className: "px-4 pb-2 pt-6", children: /* @__PURE__ */ jsx35("p", { className: "font-bold text-lg text-text-950", children: type }) }),
7264
+ /* @__PURE__ */ jsx35(
6909
7265
  "div",
6910
7266
  {
6911
7267
  ref,
@@ -6914,7 +7270,11 @@ var QuizContent = forwardRef17(({ type = "Alternativas", children, className, ..
6914
7270
  className
6915
7271
  ),
6916
7272
  ...props,
6917
- children
7273
+ children: currentQuestion && /* @__PURE__ */ jsxs28(Fragment8, { children: [
7274
+ currentQuestion.type === "ALTERNATIVA" /* ALTERNATIVA */ && /* @__PURE__ */ jsx35(QuizAlternative, { variant }),
7275
+ currentQuestion.type === "MULTIPLA_CHOICE" /* MULTIPLA_CHOICE */ && /* @__PURE__ */ jsx35(QuizMultipleChoice, { variant }),
7276
+ currentQuestion.type === "DISSERTATIVA" /* DISSERTATIVA */ && /* @__PURE__ */ jsx35("div", { children: "Componente de dissertativa" })
7277
+ ] })
6918
7278
  }
6919
7279
  )
6920
7280
  ] });
@@ -6926,9 +7286,12 @@ var QuizAlternative = ({ variant = "default" }) => {
6926
7286
  const alternatives = currentQuestion?.options?.map((option) => {
6927
7287
  let status = "neutral" /* NEUTRAL */;
6928
7288
  if (variant === "result") {
6929
- if (option.id === currentQuestion.correctOptionId) {
7289
+ const isCorrectOption = currentQuestion.options.find(
7290
+ (op) => op.isCorrect
7291
+ );
7292
+ if (isCorrectOption?.id === option.id) {
6930
7293
  status = "correct" /* CORRECT */;
6931
- } else if (currentAnswer === option.id && option.id !== currentQuestion.correctOptionId) {
7294
+ } else if (currentAnswer === option.id && option.id !== isCorrectOption?.id) {
6932
7295
  status = "incorrect" /* INCORRECT */;
6933
7296
  }
6934
7297
  }
@@ -6939,8 +7302,8 @@ var QuizAlternative = ({ variant = "default" }) => {
6939
7302
  };
6940
7303
  });
6941
7304
  if (!alternatives)
6942
- return /* @__PURE__ */ jsx33("div", { children: /* @__PURE__ */ jsx33("p", { children: "N\xE3o h\xE1 Alternativas" }) });
6943
- return /* @__PURE__ */ jsx33("div", { className: "space-y-4", children: /* @__PURE__ */ jsx33(
7305
+ return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35("p", { children: "N\xE3o h\xE1 Alternativas" }) });
7306
+ return /* @__PURE__ */ jsx35("div", { className: "space-y-4", children: /* @__PURE__ */ jsx35(
6944
7307
  AlternativesList,
6945
7308
  {
6946
7309
  mode: variant === "default" ? "interactive" : "readonly",
@@ -6958,6 +7321,77 @@ var QuizAlternative = ({ variant = "default" }) => {
6958
7321
  `question-${currentQuestion?.id || "1"}`
6959
7322
  ) });
6960
7323
  };
7324
+ var QuizMultipleChoice = ({
7325
+ variant = "default"
7326
+ }) => {
7327
+ const { getCurrentQuestion, selectMultipleAnswer, getAllCurrentAnswer } = useQuizStore();
7328
+ const currentQuestion = getCurrentQuestion();
7329
+ const allCurrentAnswers = getAllCurrentAnswer();
7330
+ const prevSelectedValuesRef = useRef8([]);
7331
+ const prevQuestionIdRef = useRef8("");
7332
+ const allCurrentAnswerIds = useMemo5(() => {
7333
+ return allCurrentAnswers?.map((answer) => answer.optionId) || [];
7334
+ }, [allCurrentAnswers]);
7335
+ const selectedValues = useMemo5(() => {
7336
+ return allCurrentAnswerIds?.filter((id) => id !== null) || [];
7337
+ }, [allCurrentAnswerIds]);
7338
+ const stableSelectedValues = useMemo5(() => {
7339
+ const currentQuestionId = currentQuestion?.id || "";
7340
+ const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
7341
+ if (hasQuestionChanged) {
7342
+ prevQuestionIdRef.current = currentQuestionId;
7343
+ prevSelectedValuesRef.current = selectedValues;
7344
+ return selectedValues;
7345
+ }
7346
+ const hasValuesChanged = JSON.stringify(prevSelectedValuesRef.current) !== JSON.stringify(selectedValues);
7347
+ if (hasValuesChanged) {
7348
+ prevSelectedValuesRef.current = selectedValues;
7349
+ return selectedValues;
7350
+ }
7351
+ return prevSelectedValuesRef.current;
7352
+ }, [selectedValues, currentQuestion?.id]);
7353
+ const handleSelectedValues = useCallback2(
7354
+ (values) => {
7355
+ if (currentQuestion) {
7356
+ selectMultipleAnswer(currentQuestion.id, values);
7357
+ }
7358
+ },
7359
+ [currentQuestion, selectMultipleAnswer]
7360
+ );
7361
+ const questionKey = useMemo5(
7362
+ () => `question-${currentQuestion?.id || "1"}`,
7363
+ [currentQuestion?.id]
7364
+ );
7365
+ const choices = currentQuestion?.options?.map((option) => {
7366
+ let status = "neutral" /* NEUTRAL */;
7367
+ if (variant === "result") {
7368
+ const isAllCorrectOptionId = currentQuestion.options.filter((op) => op.isCorrect).map((op) => op.id);
7369
+ if (isAllCorrectOptionId.includes(option.id)) {
7370
+ status = "correct" /* CORRECT */;
7371
+ } else if (allCurrentAnswerIds?.includes(option.id) && !isAllCorrectOptionId.includes(option.id)) {
7372
+ status = "incorrect" /* INCORRECT */;
7373
+ }
7374
+ }
7375
+ return {
7376
+ label: option.option,
7377
+ value: option.id,
7378
+ status
7379
+ };
7380
+ });
7381
+ if (!choices)
7382
+ return /* @__PURE__ */ jsx35("div", { children: /* @__PURE__ */ jsx35("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
7383
+ return /* @__PURE__ */ jsx35("div", { className: "space-y-4", children: /* @__PURE__ */ jsx35(
7384
+ MultipleChoiceList,
7385
+ {
7386
+ choices,
7387
+ name: questionKey,
7388
+ selectedValues: stableSelectedValues,
7389
+ onHandleSelectedValues: handleSelectedValues,
7390
+ mode: variant === "default" ? "interactive" : "readonly"
7391
+ },
7392
+ questionKey
7393
+ ) });
7394
+ };
6961
7395
  var QuizQuestionList = ({
6962
7396
  filterType = "all",
6963
7397
  onQuestionClick
@@ -7009,16 +7443,16 @@ var QuizQuestionList = ({
7009
7443
  return "Em branco";
7010
7444
  }
7011
7445
  };
7012
- return /* @__PURE__ */ jsx33("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
7013
- ([subjectId, questions]) => /* @__PURE__ */ jsxs27("section", { className: "flex flex-col gap-2", children: [
7014
- /* @__PURE__ */ jsxs27("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
7015
- /* @__PURE__ */ jsx33("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx33(BookOpen, { size: 17, className: "text-white" }) }),
7016
- /* @__PURE__ */ jsx33("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
7446
+ return /* @__PURE__ */ jsx35("div", { className: "space-y-6 px-4", children: Object.entries(filteredGroupedQuestions).map(
7447
+ ([subjectId, questions]) => /* @__PURE__ */ jsxs28("section", { className: "flex flex-col gap-2", children: [
7448
+ /* @__PURE__ */ jsxs28("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
7449
+ /* @__PURE__ */ jsx35("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx35(BookOpen, { size: 17, className: "text-white" }) }),
7450
+ /* @__PURE__ */ jsx35("p", { className: "text-text-800 font-bold text-lg", children: subjectId })
7017
7451
  ] }),
7018
- /* @__PURE__ */ jsx33("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
7452
+ /* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
7019
7453
  const status = getQuestionStatus(question.id);
7020
7454
  const questionNumber = getQuestionIndex(question.id);
7021
- return /* @__PURE__ */ jsx33(
7455
+ return /* @__PURE__ */ jsx35(
7022
7456
  CardStatus,
7023
7457
  {
7024
7458
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -7034,236 +7468,255 @@ var QuizQuestionList = ({
7034
7468
  ] }, subjectId)
7035
7469
  ) });
7036
7470
  };
7037
- var QuizFooter = forwardRef17(({ className, onGoToSimulated, onDetailResult, ...props }, ref) => {
7038
- const {
7039
- currentQuestionIndex,
7040
- getUserAnswers,
7041
- getTotalQuestions,
7042
- goToNextQuestion,
7043
- goToPreviousQuestion,
7044
- getUnansweredQuestionsFromUserAnswers,
7045
- getCurrentAnswer,
7046
- skipQuestion,
7047
- getCurrentQuestion,
7048
- getQuestionStatusFromUserAnswers
7049
- } = useQuizStore();
7050
- const totalQuestions = getTotalQuestions();
7051
- const isFirstQuestion = currentQuestionIndex === 0;
7052
- const isLastQuestion = currentQuestionIndex === totalQuestions - 1;
7053
- const currentAnswer = getCurrentAnswer();
7054
- const currentQuestion = getCurrentQuestion();
7055
- const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
7056
- const [alertDialogOpen, setAlertDialogOpen] = useState12(false);
7057
- const [modalResultOpen, setModalResultOpen] = useState12(false);
7058
- const [modalNavigateOpen, setModalNavigateOpen] = useState12(false);
7059
- const [filterType, setFilterType] = useState12("all");
7060
- const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
7061
- const userAnswers = getUserAnswers();
7062
- const allQuestions = getTotalQuestions();
7063
- return /* @__PURE__ */ jsxs27(Fragment8, { children: [
7064
- /* @__PURE__ */ jsxs27(
7065
- "footer",
7066
- {
7067
- ref,
7068
- className: cn(
7069
- "w-full px-2 bg-background lg:max-w-[1000px] not-lg:max-w-[calc(100vw-32px)] border-t border-border-50 fixed bottom-0 min-h-[80px] flex flex-row justify-between items-center",
7070
- className
7071
- ),
7072
- ...props,
7073
- children: [
7074
- /* @__PURE__ */ jsxs27("div", { className: "flex flex-row items-center gap-1", children: [
7075
- /* @__PURE__ */ jsx33(
7076
- IconButton_default,
7077
- {
7078
- icon: /* @__PURE__ */ jsx33(SquaresFour, { size: 24, className: "text-text-950" }),
7079
- size: "md",
7080
- onClick: () => setModalNavigateOpen(true)
7081
- }
7082
- ),
7083
- isFirstQuestion ? /* @__PURE__ */ jsx33(
7471
+ var QuizFooter = forwardRef18(
7472
+ ({
7473
+ className,
7474
+ onGoToSimulated,
7475
+ onDetailResult,
7476
+ variant = "default",
7477
+ ...props
7478
+ }, ref) => {
7479
+ const {
7480
+ currentQuestionIndex,
7481
+ getUserAnswers,
7482
+ getTotalQuestions,
7483
+ goToNextQuestion,
7484
+ goToPreviousQuestion,
7485
+ getUnansweredQuestionsFromUserAnswers,
7486
+ getCurrentAnswer,
7487
+ skipQuestion,
7488
+ getCurrentQuestion,
7489
+ getQuestionStatusFromUserAnswers,
7490
+ getActiveQuiz
7491
+ } = useQuizStore();
7492
+ const totalQuestions = getTotalQuestions();
7493
+ const isFirstQuestion = currentQuestionIndex === 0;
7494
+ const isLastQuestion = currentQuestionIndex === totalQuestions - 1;
7495
+ const currentAnswer = getCurrentAnswer();
7496
+ const currentQuestion = getCurrentQuestion();
7497
+ const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
7498
+ const [alertDialogOpen, setAlertDialogOpen] = useState13(false);
7499
+ const [modalResultOpen, setModalResultOpen] = useState13(false);
7500
+ const [modalNavigateOpen, setModalNavigateOpen] = useState13(false);
7501
+ const [filterType, setFilterType] = useState13("all");
7502
+ const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
7503
+ const userAnswers = getUserAnswers();
7504
+ const allQuestions = getTotalQuestions();
7505
+ return /* @__PURE__ */ jsxs28(Fragment8, { children: [
7506
+ /* @__PURE__ */ jsx35(
7507
+ "footer",
7508
+ {
7509
+ ref,
7510
+ className: cn(
7511
+ "w-full px-2 bg-background lg:max-w-[1000px] not-lg:max-w-[calc(100vw-32px)] border-t border-border-50 fixed bottom-0 min-h-[80px] flex flex-row justify-between items-center",
7512
+ className
7513
+ ),
7514
+ ...props,
7515
+ children: variant === "default" ? /* @__PURE__ */ jsxs28(Fragment8, { children: [
7516
+ /* @__PURE__ */ jsxs28("div", { className: "flex flex-row items-center gap-1", children: [
7517
+ /* @__PURE__ */ jsx35(
7518
+ IconButton_default,
7519
+ {
7520
+ icon: /* @__PURE__ */ jsx35(SquaresFour, { size: 24, className: "text-text-950" }),
7521
+ size: "md",
7522
+ onClick: () => setModalNavigateOpen(true)
7523
+ }
7524
+ ),
7525
+ isFirstQuestion ? /* @__PURE__ */ jsx35(
7526
+ Button_default,
7527
+ {
7528
+ variant: "outline",
7529
+ size: "small",
7530
+ onClick: () => {
7531
+ skipQuestion();
7532
+ goToNextQuestion();
7533
+ },
7534
+ children: "Pular"
7535
+ }
7536
+ ) : /* @__PURE__ */ jsx35(
7537
+ Button_default,
7538
+ {
7539
+ size: "medium",
7540
+ variant: "link",
7541
+ action: "primary",
7542
+ iconLeft: /* @__PURE__ */ jsx35(CaretLeft2, { size: 18 }),
7543
+ onClick: () => {
7544
+ goToPreviousQuestion();
7545
+ },
7546
+ children: "Voltar"
7547
+ }
7548
+ )
7549
+ ] }),
7550
+ !isFirstQuestion && /* @__PURE__ */ jsx35(
7084
7551
  Button_default,
7085
7552
  {
7086
- variant: "outline",
7087
7553
  size: "small",
7554
+ variant: "outline",
7555
+ action: "primary",
7088
7556
  onClick: () => {
7089
7557
  skipQuestion();
7090
7558
  goToNextQuestion();
7091
7559
  },
7092
7560
  children: "Pular"
7093
7561
  }
7094
- ) : /* @__PURE__ */ jsx33(
7562
+ ),
7563
+ isLastQuestion ? /* @__PURE__ */ jsx35(
7564
+ Button_default,
7565
+ {
7566
+ size: "medium",
7567
+ variant: "solid",
7568
+ action: "primary",
7569
+ disabled: !currentAnswer && !isCurrentQuestionSkipped,
7570
+ onClick: () => {
7571
+ if (unansweredQuestions.length > 0) {
7572
+ setAlertDialogOpen(true);
7573
+ } else {
7574
+ setModalResultOpen(true);
7575
+ }
7576
+ },
7577
+ children: "Finalizar"
7578
+ }
7579
+ ) : /* @__PURE__ */ jsx35(
7095
7580
  Button_default,
7096
7581
  {
7097
7582
  size: "medium",
7098
7583
  variant: "link",
7099
7584
  action: "primary",
7100
- iconLeft: /* @__PURE__ */ jsx33(CaretLeft2, { size: 18 }),
7585
+ iconRight: /* @__PURE__ */ jsx35(CaretRight4, { size: 18 }),
7586
+ disabled: !currentAnswer && !isCurrentQuestionSkipped,
7101
7587
  onClick: () => {
7102
- goToPreviousQuestion();
7588
+ goToNextQuestion();
7103
7589
  },
7104
- children: "Voltar"
7590
+ children: "Avan\xE7ar"
7105
7591
  }
7106
7592
  )
7107
- ] }),
7108
- !isFirstQuestion && /* @__PURE__ */ jsx33(
7109
- Button_default,
7110
- {
7111
- size: "small",
7112
- variant: "outline",
7113
- action: "primary",
7114
- onClick: () => {
7115
- skipQuestion();
7116
- goToNextQuestion();
7117
- },
7118
- children: "Pular"
7119
- }
7120
- ),
7121
- isLastQuestion ? /* @__PURE__ */ jsx33(
7122
- Button_default,
7123
- {
7124
- size: "medium",
7125
- variant: "solid",
7126
- action: "primary",
7127
- disabled: !currentAnswer && !isCurrentQuestionSkipped,
7128
- onClick: () => {
7129
- if (unansweredQuestions.length > 0) {
7130
- setAlertDialogOpen(true);
7131
- } else {
7132
- setModalResultOpen(true);
7133
- }
7134
- },
7135
- children: "Finalizar"
7136
- }
7137
- ) : /* @__PURE__ */ jsx33(
7138
- Button_default,
7139
- {
7140
- size: "medium",
7141
- variant: "link",
7142
- action: "primary",
7143
- iconRight: /* @__PURE__ */ jsx33(CaretRight4, { size: 18 }),
7144
- disabled: !currentAnswer && !isCurrentQuestionSkipped,
7145
- onClick: () => {
7146
- goToNextQuestion();
7147
- },
7148
- children: "Avan\xE7ar"
7149
- }
7150
- )
7151
- ]
7152
- }
7153
- ),
7154
- /* @__PURE__ */ jsx33(
7155
- AlertDialog,
7156
- {
7157
- isOpen: alertDialogOpen,
7158
- onChangeOpen: setAlertDialogOpen,
7159
- title: "Finalizar simulado?",
7160
- description: unansweredQuestions.length > 0 ? `Voc\xEA deixou as quest\xF5es ${unansweredQuestions.join(", ")} sem resposta. Finalizar agora pode impactar seu desempenho.` : "Tem certeza que deseja finalizar o simulado?",
7161
- cancelButtonLabel: "Voltar e revisar",
7162
- submitButtonLabel: "Finalizar Mesmo Assim",
7163
- onSubmit: () => {
7164
- setModalResultOpen(true);
7593
+ ] }) : /* @__PURE__ */ jsx35("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx35(Button_default, { variant: "solid", action: "primary", size: "medium", children: "Ver Resolu\xE7\xE3o" }) })
7165
7594
  }
7166
- }
7167
- ),
7168
- /* @__PURE__ */ jsx33(
7169
- Modal_default,
7170
- {
7171
- isOpen: modalResultOpen,
7172
- onClose: () => setModalResultOpen(false),
7173
- title: "",
7174
- closeOnBackdropClick: false,
7175
- closeOnEscape: false,
7176
- hideCloseButton: true,
7177
- size: "md",
7178
- children: /* @__PURE__ */ jsxs27("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
7179
- /* @__PURE__ */ jsx33(
7180
- "img",
7181
- {
7182
- src: simulated_result_default,
7183
- alt: "Simulated Result",
7184
- className: "w-[282px] h-auto object-cover"
7185
- }
7186
- ),
7187
- /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-2 text-center", children: [
7188
- /* @__PURE__ */ jsx33("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
7189
- /* @__PURE__ */ jsxs27("p", { className: "text-text-500 font-sm", children: [
7190
- "Voc\xEA acertou",
7191
- " ",
7192
- userAnswers.filter(
7193
- (answer) => answer.answerKey === answer.correctOptionId
7194
- ).length,
7195
- " ",
7196
- "de ",
7197
- allQuestions,
7198
- " quest\xF5es."
7199
- ] })
7200
- ] }),
7201
- /* @__PURE__ */ jsxs27("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
7202
- /* @__PURE__ */ jsx33(
7203
- Button_default,
7595
+ ),
7596
+ /* @__PURE__ */ jsx35(
7597
+ AlertDialog,
7598
+ {
7599
+ isOpen: alertDialogOpen,
7600
+ onChangeOpen: setAlertDialogOpen,
7601
+ title: "Finalizar simulado?",
7602
+ description: unansweredQuestions.length > 0 ? `Voc\xEA deixou as quest\xF5es ${unansweredQuestions.join(", ")} sem resposta. Finalizar agora pode impactar seu desempenho.` : "Tem certeza que deseja finalizar o simulado?",
7603
+ cancelButtonLabel: "Voltar e revisar",
7604
+ submitButtonLabel: "Finalizar Mesmo Assim",
7605
+ onSubmit: () => {
7606
+ setModalResultOpen(true);
7607
+ }
7608
+ }
7609
+ ),
7610
+ /* @__PURE__ */ jsx35(
7611
+ Modal_default,
7612
+ {
7613
+ isOpen: modalResultOpen,
7614
+ onClose: () => setModalResultOpen(false),
7615
+ title: "",
7616
+ closeOnBackdropClick: false,
7617
+ closeOnEscape: false,
7618
+ hideCloseButton: true,
7619
+ size: "md",
7620
+ children: /* @__PURE__ */ jsxs28("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
7621
+ /* @__PURE__ */ jsx35(
7622
+ "img",
7204
7623
  {
7205
- variant: "outline",
7206
- className: "w-full",
7207
- size: "small",
7208
- onClick: onGoToSimulated,
7209
- children: "Ir para simulados"
7624
+ src: simulated_result_default,
7625
+ alt: "Simulated Result",
7626
+ className: "w-[282px] h-auto object-cover"
7210
7627
  }
7211
7628
  ),
7212
- /* @__PURE__ */ jsx33(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
7213
- ] })
7214
- ] })
7215
- }
7216
- ),
7217
- /* @__PURE__ */ jsx33(
7218
- Modal_default,
7219
- {
7220
- isOpen: modalNavigateOpen,
7221
- onClose: () => setModalNavigateOpen(false),
7222
- title: "Quest\xF5es",
7223
- size: "lg",
7224
- children: /* @__PURE__ */ jsxs27("div", { className: "flex flex-col w-full h-full", children: [
7225
- /* @__PURE__ */ jsxs27("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
7226
- /* @__PURE__ */ jsx33("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
7227
- /* @__PURE__ */ jsx33("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs27(Select_default, { value: filterType, onValueChange: setFilterType, children: [
7228
- /* @__PURE__ */ jsx33(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ jsx33(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
7229
- /* @__PURE__ */ jsxs27(SelectContent, { children: [
7230
- /* @__PURE__ */ jsx33(SelectItem, { value: "all", children: "Todas" }),
7231
- /* @__PURE__ */ jsx33(SelectItem, { value: "unanswered", children: "Em branco" }),
7232
- /* @__PURE__ */ jsx33(SelectItem, { value: "answered", children: "Respondidas" })
7629
+ /* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-2 text-center", children: [
7630
+ /* @__PURE__ */ jsx35("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
7631
+ /* @__PURE__ */ jsxs28("p", { className: "text-text-500 font-sm", children: [
7632
+ "Voc\xEA acertou",
7633
+ " ",
7634
+ (() => {
7635
+ const activeQuiz = getActiveQuiz();
7636
+ if (!activeQuiz) return 0;
7637
+ return userAnswers.filter((answer) => {
7638
+ const question = activeQuiz.quiz.questions.find(
7639
+ (q) => q.id === answer.questionId
7640
+ );
7641
+ const isCorrectOption = question?.options.find(
7642
+ (op) => op.isCorrect
7643
+ );
7644
+ return question && answer.optionId === isCorrectOption?.id;
7645
+ }).length;
7646
+ })(),
7647
+ " ",
7648
+ "de ",
7649
+ allQuestions,
7650
+ " quest\xF5es."
7233
7651
  ] })
7234
- ] }) })
7235
- ] }),
7236
- /* @__PURE__ */ jsx33("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ jsx33(
7237
- QuizQuestionList,
7238
- {
7239
- filterType,
7240
- onQuestionClick: () => setModalNavigateOpen(false)
7241
- }
7242
- ) })
7243
- ] })
7244
- }
7245
- )
7246
- ] });
7247
- });
7248
- var QuizResultHeaderTitle = forwardRef17(({ className, ...props }, ref) => {
7652
+ ] }),
7653
+ /* @__PURE__ */ jsxs28("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
7654
+ /* @__PURE__ */ jsx35(
7655
+ Button_default,
7656
+ {
7657
+ variant: "outline",
7658
+ className: "w-full",
7659
+ size: "small",
7660
+ onClick: onGoToSimulated,
7661
+ children: "Ir para simulados"
7662
+ }
7663
+ ),
7664
+ /* @__PURE__ */ jsx35(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
7665
+ ] })
7666
+ ] })
7667
+ }
7668
+ ),
7669
+ /* @__PURE__ */ jsx35(
7670
+ Modal_default,
7671
+ {
7672
+ isOpen: modalNavigateOpen,
7673
+ onClose: () => setModalNavigateOpen(false),
7674
+ title: "Quest\xF5es",
7675
+ size: "lg",
7676
+ children: /* @__PURE__ */ jsxs28("div", { className: "flex flex-col w-full h-full", children: [
7677
+ /* @__PURE__ */ jsxs28("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200", children: [
7678
+ /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
7679
+ /* @__PURE__ */ jsx35("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs28(Select_default, { value: filterType, onValueChange: setFilterType, children: [
7680
+ /* @__PURE__ */ jsx35(SelectTrigger, { variant: "rounded", className: "max-w-[266px]", children: /* @__PURE__ */ jsx35(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" }) }),
7681
+ /* @__PURE__ */ jsxs28(SelectContent, { children: [
7682
+ /* @__PURE__ */ jsx35(SelectItem, { value: "all", children: "Todas" }),
7683
+ /* @__PURE__ */ jsx35(SelectItem, { value: "unanswered", children: "Em branco" }),
7684
+ /* @__PURE__ */ jsx35(SelectItem, { value: "answered", children: "Respondidas" })
7685
+ ] })
7686
+ ] }) })
7687
+ ] }),
7688
+ /* @__PURE__ */ jsx35("div", { className: "flex flex-col gap-2 not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] overflow-y-auto", children: /* @__PURE__ */ jsx35(
7689
+ QuizQuestionList,
7690
+ {
7691
+ filterType,
7692
+ onQuestionClick: () => setModalNavigateOpen(false)
7693
+ }
7694
+ ) })
7695
+ ] })
7696
+ }
7697
+ )
7698
+ ] });
7699
+ }
7700
+ );
7701
+ var QuizResultHeaderTitle = forwardRef18(({ className, ...props }, ref) => {
7249
7702
  const { bySimulated } = useQuizStore();
7250
- return /* @__PURE__ */ jsxs27(
7703
+ return /* @__PURE__ */ jsxs28(
7251
7704
  "div",
7252
7705
  {
7253
7706
  ref,
7254
7707
  className: cn("flex flex-row pt-4 justify-between", className),
7255
7708
  ...props,
7256
7709
  children: [
7257
- /* @__PURE__ */ jsx33("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
7258
- bySimulated && /* @__PURE__ */ jsx33(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
7710
+ /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
7711
+ bySimulated && /* @__PURE__ */ jsx35(Badge_default, { variant: "solid", action: "info", children: bySimulated.category })
7259
7712
  ]
7260
7713
  }
7261
7714
  );
7262
7715
  });
7263
- var QuizResultTitle = forwardRef17(({ className, ...props }, ref) => {
7716
+ var QuizResultTitle = forwardRef18(({ className, ...props }, ref) => {
7264
7717
  const { getQuizTitle } = useQuizStore();
7265
7718
  const quizTitle = getQuizTitle();
7266
- return /* @__PURE__ */ jsx33(
7719
+ return /* @__PURE__ */ jsx35(
7267
7720
  "p",
7268
7721
  {
7269
7722
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -7273,7 +7726,7 @@ var QuizResultTitle = forwardRef17(({ className, ...props }, ref) => {
7273
7726
  }
7274
7727
  );
7275
7728
  });
7276
- var QuizResultPerformance = forwardRef17(
7729
+ var QuizResultPerformance = forwardRef18(
7277
7730
  ({ ...props }, ref) => {
7278
7731
  const {
7279
7732
  getTotalQuestions,
@@ -7281,7 +7734,8 @@ var QuizResultPerformance = forwardRef17(
7281
7734
  formatTime,
7282
7735
  bySimulated,
7283
7736
  byActivity,
7284
- byQuestionary
7737
+ byQuestionary,
7738
+ getUserAnswerByQuestionId
7285
7739
  } = useQuizStore();
7286
7740
  const totalQuestions = getTotalQuestions();
7287
7741
  const quiz = bySimulated || byActivity || byQuestionary;
@@ -7294,8 +7748,10 @@ var QuizResultPerformance = forwardRef17(
7294
7748
  let totalDifficultQuestions = 0;
7295
7749
  if (quiz) {
7296
7750
  quiz.questions.forEach((question) => {
7297
- const userAnswer = question.answerKey;
7298
- const isCorrect = userAnswer && userAnswer === question.correctOptionId;
7751
+ const userAnswerItem = getUserAnswerByQuestionId(question.id);
7752
+ const userAnswer = userAnswerItem?.optionId;
7753
+ const isCorrectOption = question?.options.find((op) => op.isCorrect);
7754
+ const isCorrect = userAnswer && userAnswer === isCorrectOption?.id;
7299
7755
  if (isCorrect) {
7300
7756
  correctAnswers++;
7301
7757
  }
@@ -7318,15 +7774,15 @@ var QuizResultPerformance = forwardRef17(
7318
7774
  });
7319
7775
  }
7320
7776
  const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
7321
- return /* @__PURE__ */ jsxs27(
7777
+ return /* @__PURE__ */ jsxs28(
7322
7778
  "div",
7323
7779
  {
7324
7780
  className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
7325
7781
  ref,
7326
7782
  ...props,
7327
7783
  children: [
7328
- /* @__PURE__ */ jsxs27("div", { className: "relative", children: [
7329
- /* @__PURE__ */ jsx33(
7784
+ /* @__PURE__ */ jsxs28("div", { className: "relative", children: [
7785
+ /* @__PURE__ */ jsx35(
7330
7786
  ProgressCircle_default,
7331
7787
  {
7332
7788
  size: "medium",
@@ -7336,21 +7792,21 @@ var QuizResultPerformance = forwardRef17(
7336
7792
  label: ""
7337
7793
  }
7338
7794
  ),
7339
- /* @__PURE__ */ jsxs27("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
7340
- /* @__PURE__ */ jsxs27("div", { className: "flex items-center gap-1 mb-1", children: [
7341
- /* @__PURE__ */ jsx33(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
7342
- /* @__PURE__ */ jsx33("span", { className: "text-2xs font-medium text-text-800", children: formatTime(timeElapsed) })
7795
+ /* @__PURE__ */ jsxs28("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
7796
+ /* @__PURE__ */ jsxs28("div", { className: "flex items-center gap-1 mb-1", children: [
7797
+ /* @__PURE__ */ jsx35(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
7798
+ /* @__PURE__ */ jsx35("span", { className: "text-2xs font-medium text-text-800", children: formatTime(timeElapsed) })
7343
7799
  ] }),
7344
- /* @__PURE__ */ jsxs27("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
7800
+ /* @__PURE__ */ jsxs28("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
7345
7801
  correctAnswers,
7346
7802
  " de ",
7347
7803
  totalQuestions
7348
7804
  ] }),
7349
- /* @__PURE__ */ jsx33("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
7805
+ /* @__PURE__ */ jsx35("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
7350
7806
  ] })
7351
7807
  ] }),
7352
- /* @__PURE__ */ jsxs27("div", { className: "flex flex-col gap-4 w-full", children: [
7353
- /* @__PURE__ */ jsx33(
7808
+ /* @__PURE__ */ jsxs28("div", { className: "flex flex-col gap-4 w-full", children: [
7809
+ /* @__PURE__ */ jsx35(
7354
7810
  ProgressBar_default,
7355
7811
  {
7356
7812
  className: "w-full",
@@ -7364,7 +7820,7 @@ var QuizResultPerformance = forwardRef17(
7364
7820
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
7365
7821
  }
7366
7822
  ),
7367
- /* @__PURE__ */ jsx33(
7823
+ /* @__PURE__ */ jsx35(
7368
7824
  ProgressBar_default,
7369
7825
  {
7370
7826
  className: "w-full",
@@ -7378,7 +7834,7 @@ var QuizResultPerformance = forwardRef17(
7378
7834
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
7379
7835
  }
7380
7836
  ),
7381
- /* @__PURE__ */ jsx33(
7837
+ /* @__PURE__ */ jsx35(
7382
7838
  ProgressBar_default,
7383
7839
  {
7384
7840
  className: "w-full",
@@ -7398,8 +7854,12 @@ var QuizResultPerformance = forwardRef17(
7398
7854
  );
7399
7855
  }
7400
7856
  );
7401
- var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref) => {
7402
- const { getQuestionsGroupedBySubject, isQuestionAnswered } = useQuizStore();
7857
+ var QuizListResult = forwardRef18(({ className, onSubjectClick, ...props }, ref) => {
7858
+ const {
7859
+ getQuestionsGroupedBySubject,
7860
+ isQuestionAnswered,
7861
+ getUserAnswerByQuestionId
7862
+ } = useQuizStore();
7403
7863
  const groupedQuestions = getQuestionsGroupedBySubject();
7404
7864
  const subjectsStats = Object.entries(groupedQuestions).map(
7405
7865
  ([subjectId, questions]) => {
@@ -7407,8 +7867,10 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
7407
7867
  let incorrect = 0;
7408
7868
  questions.forEach((question) => {
7409
7869
  if (isQuestionAnswered(question.id)) {
7410
- const userAnswer = question.answerKey;
7411
- if (userAnswer === question.correctOptionId) {
7870
+ const userAnswerItem = getUserAnswerByQuestionId(question.id);
7871
+ const userAnswer = userAnswerItem?.optionId;
7872
+ const isCorrectOption = question?.options.find((op) => op.isCorrect);
7873
+ if (userAnswer === isCorrectOption?.id) {
7412
7874
  correct++;
7413
7875
  } else {
7414
7876
  incorrect++;
@@ -7423,9 +7885,9 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
7423
7885
  };
7424
7886
  }
7425
7887
  );
7426
- return /* @__PURE__ */ jsxs27("section", { ref, className, ...props, children: [
7427
- /* @__PURE__ */ jsx33("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
7428
- /* @__PURE__ */ jsx33("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx33("li", { children: /* @__PURE__ */ jsx33(
7888
+ return /* @__PURE__ */ jsxs28("section", { ref, className, ...props, children: [
7889
+ /* @__PURE__ */ jsx35("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
7890
+ /* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx35("li", { children: /* @__PURE__ */ jsx35(
7429
7891
  CardResults,
7430
7892
  {
7431
7893
  onClick: () => onSubjectClick?.(subject.subject),
@@ -7433,7 +7895,7 @@ var QuizListResult = forwardRef17(({ className, onSubjectClick, ...props }, ref)
7433
7895
  header: subject.subject,
7434
7896
  correct_answers: subject.correct,
7435
7897
  incorrect_answers: subject.incorrect,
7436
- icon: /* @__PURE__ */ jsx33(Book, { size: 20 }),
7898
+ icon: /* @__PURE__ */ jsx35(Book, { size: 20 }),
7437
7899
  direction: "row"
7438
7900
  }
7439
7901
  ) }, subject.subject)) })
@@ -7443,19 +7905,25 @@ var QuizListResultByMateria = ({
7443
7905
  subject,
7444
7906
  onQuestionClick
7445
7907
  }) => {
7446
- const { getQuestionsGroupedBySubject } = useQuizStore();
7908
+ const { getQuestionsGroupedBySubject, getUserAnswerByQuestionId } = useQuizStore();
7447
7909
  const groupedQuestions = getQuestionsGroupedBySubject();
7448
7910
  const answeredQuestions = groupedQuestions[subject] || [];
7449
- return /* @__PURE__ */ jsxs27("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
7450
- /* @__PURE__ */ jsx33("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx33("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
7451
- /* @__PURE__ */ jsxs27("section", { className: "flex flex-col ", children: [
7452
- /* @__PURE__ */ jsx33("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
7453
- /* @__PURE__ */ jsx33("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => /* @__PURE__ */ jsx33("li", { children: /* @__PURE__ */ jsx33(
7911
+ return /* @__PURE__ */ jsxs28("div", { className: "w-full max-w-[1000px] flex flex-col mx-auto h-full relative not-lg:px-6", children: [
7912
+ /* @__PURE__ */ jsx35("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx35("p", { className: "text-text-950 font-bold text-2xl", children: subject }) }),
7913
+ /* @__PURE__ */ jsxs28("section", { className: "flex flex-col ", children: [
7914
+ /* @__PURE__ */ jsx35("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
7915
+ /* @__PURE__ */ jsx35("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => /* @__PURE__ */ jsx35("li", { children: /* @__PURE__ */ jsx35(
7454
7916
  CardStatus,
7455
7917
  {
7456
7918
  className: "max-w-full",
7457
7919
  header: `Quest\xE3o ${question.id}`,
7458
- status: question.answerKey === question.correctOptionId ? "correct" : "incorrect",
7920
+ status: (() => {
7921
+ const userAnswer = getUserAnswerByQuestionId(question.id);
7922
+ const isCorrectOption = question?.options.find(
7923
+ (op) => op.isCorrect
7924
+ );
7925
+ return userAnswer && userAnswer.optionId === isCorrectOption?.id ? "correct" : "incorrect";
7926
+ })(),
7459
7927
  onClick: () => onQuestionClick?.(question)
7460
7928
  }
7461
7929
  ) }, question.id)) })
@@ -7482,6 +7950,8 @@ export {
7482
7950
  CardTest,
7483
7951
  CardTopic,
7484
7952
  CheckBox_default as CheckBox,
7953
+ CheckboxList_default as CheckboxList,
7954
+ CheckboxListItem,
7485
7955
  Chips_default as Chips,
7486
7956
  Divider_default as Divider,
7487
7957
  DropdownMenu_default as DropdownMenu,
@@ -7498,6 +7968,7 @@ export {
7498
7968
  MenuLabel,
7499
7969
  MenuOverflow,
7500
7970
  Modal_default as Modal,
7971
+ MultipleChoiceList,
7501
7972
  NavButton_default as NavButton,
7502
7973
  NotFound_default as NotFound,
7503
7974
  ProfileMenuFooter,
@@ -7513,6 +7984,8 @@ export {
7513
7984
  QuizContent,
7514
7985
  QuizFooter,
7515
7986
  QuizHeader,
7987
+ QuizHeaderResult,
7988
+ QuizListResult,
7516
7989
  QuizListResultByMateria,
7517
7990
  QuizQuestionList,
7518
7991
  QuizResultHeaderTitle,
@@ -7553,4 +8026,3 @@ export {
7553
8026
  useUrlAuthentication,
7554
8027
  withAuth
7555
8028
  };
7556
- //# sourceMappingURL=index.mjs.map