analytica-frontend-lib 1.2.10 → 1.2.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -64,6 +64,7 @@ __export(src_exports, {
64
64
  DropdownMenuItem: () => DropdownMenuItem,
65
65
  DropdownMenuSeparator: () => DropdownMenuSeparator,
66
66
  DropdownMenuTrigger: () => DropdownMenuTrigger,
67
+ FilterModal: () => FilterModal,
67
68
  IconButton: () => IconButton_default,
68
69
  IconRender: () => IconRender_default,
69
70
  IconRoundedButton: () => IconRoundedButton_default,
@@ -78,6 +79,7 @@ __export(src_exports, {
78
79
  Modal: () => Modal_default,
79
80
  MultipleChoiceList: () => MultipleChoiceList,
80
81
  NavButton: () => NavButton_default,
82
+ NoSearchResult: () => NoSearchResult_default,
81
83
  NotFound: () => NotFound_default,
82
84
  NotificationCard: () => NotificationCard_default,
83
85
  NotificationEntityType: () => NotificationEntityType,
@@ -179,6 +181,7 @@ __export(src_exports, {
179
181
  useMobile: () => useMobile,
180
182
  useQuizStore: () => useQuizStore,
181
183
  useRouteAuth: () => useRouteAuth,
184
+ useTableFilter: () => useTableFilter,
182
185
  useTableSort: () => useTableSort,
183
186
  useTheme: () => useTheme,
184
187
  useThemeStore: () => useThemeStore,
@@ -1321,7 +1324,7 @@ var CheckboxGroup = ({
1321
1324
  return depCat?.selectedIds && depCat.selectedIds.length > 0;
1322
1325
  });
1323
1326
  if (!isEnabled) {
1324
- return [{ itens: category?.itens || [] }];
1327
+ return [{ itens: [] }];
1325
1328
  }
1326
1329
  const filters = category.filteredBy || [];
1327
1330
  if (filters.length === 0) {
@@ -1436,9 +1439,10 @@ var CheckboxGroup = ({
1436
1439
  const formattedItems = getFormattedItems(categoryKey);
1437
1440
  const filteredItems = formattedItems.flatMap((group) => group.itens || []);
1438
1441
  const filteredItemIds = filteredItems.map((item) => item.id);
1439
- const allFilteredSelected = filteredItemIds.every(
1442
+ const selectedFilteredCount = filteredItemIds.filter(
1440
1443
  (itemId) => category.selectedIds?.includes(itemId)
1441
- );
1444
+ ).length;
1445
+ const allFilteredSelected = selectedFilteredCount === filteredItemIds.length;
1442
1446
  const newSelection = allFilteredSelected ? category.selectedIds?.filter((id) => !filteredItemIds.includes(id)) || [] : [
1443
1447
  ...category.selectedIds || [],
1444
1448
  ...filteredItemIds.filter(
@@ -1476,24 +1480,27 @@ var CheckboxGroup = ({
1476
1480
  }
1477
1481
  onCategoriesChange(updatedCategories);
1478
1482
  };
1479
- const renderCheckboxItem = (item, categoryKey) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-3 px-2", children: [
1480
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1481
- CheckBox_default,
1482
- {
1483
- id: item.id,
1484
- checked: isCheckBoxIsSelected(categoryKey, item.id),
1485
- onChange: () => toggleItem(categoryKey, item.id)
1486
- }
1487
- ),
1488
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1489
- "label",
1490
- {
1491
- htmlFor: item.id,
1492
- className: "text-sm text-text-950 cursor-pointer select-none",
1493
- children: item.name
1494
- }
1495
- )
1496
- ] }, item.id);
1483
+ const renderCheckboxItem = (item, categoryKey) => {
1484
+ const uniqueId = `${categoryKey}-${item.id}`;
1485
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex items-center gap-3 px-2", children: [
1486
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1487
+ CheckBox_default,
1488
+ {
1489
+ id: uniqueId,
1490
+ checked: isCheckBoxIsSelected(categoryKey, item.id),
1491
+ onChange: () => toggleItem(categoryKey, item.id)
1492
+ }
1493
+ ),
1494
+ /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1495
+ "label",
1496
+ {
1497
+ htmlFor: uniqueId,
1498
+ className: "text-sm text-text-950 cursor-pointer select-none",
1499
+ children: item.name
1500
+ }
1501
+ )
1502
+ ] }, item.id);
1503
+ };
1497
1504
  const renderFormattedGroup = (formattedGroup, idx, categoryKey) => /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1498
1505
  "div",
1499
1506
  {
@@ -1565,13 +1572,38 @@ var CheckboxGroup = ({
1565
1572
  openAccordion !== category.key && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(Divider_default, {})
1566
1573
  ] }, category.key);
1567
1574
  };
1575
+ (0, import_react7.useEffect)(() => {
1576
+ if (!openAccordion) return;
1577
+ const category = categories.find((c) => c.key === openAccordion);
1578
+ if (!category) return;
1579
+ const isEnabled = !category.dependsOn || category.dependsOn.every((depKey) => {
1580
+ const depCat = categories.find((c) => c.key === depKey);
1581
+ return depCat?.selectedIds && depCat.selectedIds.length > 0;
1582
+ });
1583
+ if (!isEnabled) {
1584
+ setTimeout(() => {
1585
+ setOpenAccordion("");
1586
+ }, 0);
1587
+ }
1588
+ }, [categories, openAccordion]);
1568
1589
  return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
1569
1590
  AccordionGroup,
1570
1591
  {
1571
1592
  type: "single",
1593
+ collapsible: true,
1572
1594
  value: openAccordion,
1573
1595
  onValueChange: (value) => {
1574
1596
  if (typeof value === "string") {
1597
+ if (value) {
1598
+ const category = categories.find((c) => c.key === value);
1599
+ const isEnabled = !category?.dependsOn || category.dependsOn.every((depKey) => {
1600
+ const depCat = categories.find((c) => c.key === depKey);
1601
+ return depCat?.selectedIds && depCat.selectedIds.length > 0;
1602
+ });
1603
+ if (!isEnabled) {
1604
+ return;
1605
+ }
1606
+ }
1575
1607
  setOpenAccordion(value);
1576
1608
  }
1577
1609
  },
@@ -6892,11 +6924,247 @@ var TableCaption = (0, import_react23.forwardRef)(({ className, ...props }, ref)
6892
6924
  TableCaption.displayName = "TableCaption";
6893
6925
  var Table_default = Table;
6894
6926
 
6927
+ // src/components/Filter/FilterModal.tsx
6928
+ var import_jsx_runtime40 = require("react/jsx-runtime");
6929
+ var FilterModal = ({
6930
+ isOpen,
6931
+ onClose,
6932
+ filterConfigs,
6933
+ onFiltersChange,
6934
+ onApply,
6935
+ onClear,
6936
+ title = "Filtros",
6937
+ size = "md",
6938
+ applyLabel = "Aplicar",
6939
+ clearLabel = "Limpar filtros"
6940
+ }) => {
6941
+ const handleCategoryChange = (configIndex, updatedCategories) => {
6942
+ const newConfigs = [...filterConfigs];
6943
+ newConfigs[configIndex] = {
6944
+ ...newConfigs[configIndex],
6945
+ categories: updatedCategories
6946
+ };
6947
+ onFiltersChange(newConfigs);
6948
+ };
6949
+ const handleApply = () => {
6950
+ onApply();
6951
+ onClose();
6952
+ };
6953
+ const handleClear = () => {
6954
+ onClear();
6955
+ };
6956
+ return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
6957
+ Modal_default,
6958
+ {
6959
+ isOpen,
6960
+ onClose,
6961
+ title,
6962
+ size,
6963
+ footer: /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex gap-3 justify-end w-full", children: [
6964
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button_default, { variant: "outline", onClick: handleClear, children: clearLabel }),
6965
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(Button_default, { onClick: handleApply, children: applyLabel })
6966
+ ] }),
6967
+ children: /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "flex flex-col gap-6", children: filterConfigs.map((config, index) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex flex-col gap-4", children: [
6968
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "flex items-center gap-2 text-text-400 text-sm font-medium uppercase", children: [
6969
+ config.key === "academic" && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
6970
+ "svg",
6971
+ {
6972
+ width: "16",
6973
+ height: "16",
6974
+ viewBox: "0 0 16 16",
6975
+ fill: "none",
6976
+ xmlns: "http://www.w3.org/2000/svg",
6977
+ className: "text-text-400",
6978
+ children: [
6979
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
6980
+ "path",
6981
+ {
6982
+ d: "M8 2L2 5.33333L8 8.66667L14 5.33333L8 2Z",
6983
+ stroke: "currentColor",
6984
+ strokeWidth: "1.5",
6985
+ strokeLinecap: "round",
6986
+ strokeLinejoin: "round"
6987
+ }
6988
+ ),
6989
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
6990
+ "path",
6991
+ {
6992
+ d: "M2 10.6667L8 14L14 10.6667",
6993
+ stroke: "currentColor",
6994
+ strokeWidth: "1.5",
6995
+ strokeLinecap: "round",
6996
+ strokeLinejoin: "round"
6997
+ }
6998
+ ),
6999
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7000
+ "path",
7001
+ {
7002
+ d: "M2 8L8 11.3333L14 8",
7003
+ stroke: "currentColor",
7004
+ strokeWidth: "1.5",
7005
+ strokeLinecap: "round",
7006
+ strokeLinejoin: "round"
7007
+ }
7008
+ )
7009
+ ]
7010
+ }
7011
+ ),
7012
+ config.key === "content" && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
7013
+ "svg",
7014
+ {
7015
+ width: "16",
7016
+ height: "16",
7017
+ viewBox: "0 0 16 16",
7018
+ fill: "none",
7019
+ xmlns: "http://www.w3.org/2000/svg",
7020
+ className: "text-text-400",
7021
+ children: [
7022
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7023
+ "path",
7024
+ {
7025
+ d: "M3.33333 2H12.6667C13.403 2 14 2.59695 14 3.33333V12.6667C14 13.403 13.403 14 12.6667 14H3.33333C2.59695 14 2 13.403 2 12.6667V3.33333C2 2.59695 2.59695 2 3.33333 2Z",
7026
+ stroke: "currentColor",
7027
+ strokeWidth: "1.5",
7028
+ strokeLinecap: "round",
7029
+ strokeLinejoin: "round"
7030
+ }
7031
+ ),
7032
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7033
+ "path",
7034
+ {
7035
+ d: "M2 6H14",
7036
+ stroke: "currentColor",
7037
+ strokeWidth: "1.5",
7038
+ strokeLinecap: "round",
7039
+ strokeLinejoin: "round"
7040
+ }
7041
+ ),
7042
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7043
+ "path",
7044
+ {
7045
+ d: "M6 2V14",
7046
+ stroke: "currentColor",
7047
+ strokeWidth: "1.5",
7048
+ strokeLinecap: "round",
7049
+ strokeLinejoin: "round"
7050
+ }
7051
+ )
7052
+ ]
7053
+ }
7054
+ ),
7055
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: config.label })
7056
+ ] }),
7057
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7058
+ CheckboxGroup,
7059
+ {
7060
+ categories: config.categories,
7061
+ onCategoriesChange: (updatedCategories) => handleCategoryChange(index, updatedCategories)
7062
+ }
7063
+ )
7064
+ ] }, config.key)) })
7065
+ }
7066
+ );
7067
+ };
7068
+
7069
+ // src/components/Filter/useTableFilter.ts
7070
+ var import_react24 = require("react");
7071
+ var useTableFilter = (initialConfigs, options = {}) => {
7072
+ const { syncWithUrl = false } = options;
7073
+ const getInitialState = (0, import_react24.useCallback)(() => {
7074
+ if (!syncWithUrl || globalThis.window === void 0) {
7075
+ return initialConfigs;
7076
+ }
7077
+ const params = new URLSearchParams(globalThis.window.location.search);
7078
+ const configsWithUrlState = initialConfigs.map((config) => ({
7079
+ ...config,
7080
+ categories: config.categories.map((category) => {
7081
+ const urlValue = params.get(`filter_${category.key}`);
7082
+ const selectedIds = urlValue ? urlValue.split(",").filter(Boolean) : [];
7083
+ return {
7084
+ ...category,
7085
+ selectedIds
7086
+ };
7087
+ })
7088
+ }));
7089
+ return configsWithUrlState;
7090
+ }, [initialConfigs, syncWithUrl]);
7091
+ const [filterConfigs, setFilterConfigs] = (0, import_react24.useState)(getInitialState);
7092
+ const activeFilters = {};
7093
+ let hasActiveFilters = false;
7094
+ for (const config of filterConfigs) {
7095
+ for (const category of config.categories) {
7096
+ if (category.selectedIds && category.selectedIds.length > 0) {
7097
+ activeFilters[category.key] = category.selectedIds;
7098
+ hasActiveFilters = true;
7099
+ }
7100
+ }
7101
+ }
7102
+ const updateFilters = (0, import_react24.useCallback)((configs) => {
7103
+ setFilterConfigs(configs);
7104
+ }, []);
7105
+ const applyFilters = (0, import_react24.useCallback)(() => {
7106
+ if (!syncWithUrl || globalThis.window === void 0) {
7107
+ return;
7108
+ }
7109
+ const url = new URL(globalThis.window.location.href);
7110
+ const params = url.searchParams;
7111
+ for (const config of filterConfigs) {
7112
+ for (const category of config.categories) {
7113
+ const paramKey = `filter_${category.key}`;
7114
+ if (category.selectedIds && category.selectedIds.length > 0) {
7115
+ params.set(paramKey, category.selectedIds.join(","));
7116
+ } else {
7117
+ params.delete(paramKey);
7118
+ }
7119
+ }
7120
+ }
7121
+ globalThis.window.history.replaceState({}, "", url.toString());
7122
+ }, [filterConfigs, syncWithUrl]);
7123
+ const clearFilters = (0, import_react24.useCallback)(() => {
7124
+ const clearedConfigs = filterConfigs.map((config) => ({
7125
+ ...config,
7126
+ categories: config.categories.map((category) => ({
7127
+ ...category,
7128
+ selectedIds: []
7129
+ }))
7130
+ }));
7131
+ setFilterConfigs(clearedConfigs);
7132
+ if (syncWithUrl && globalThis.window !== void 0) {
7133
+ const url = new URL(globalThis.window.location.href);
7134
+ const params = url.searchParams;
7135
+ for (const config of filterConfigs) {
7136
+ for (const category of config.categories) {
7137
+ params.delete(`filter_${category.key}`);
7138
+ }
7139
+ }
7140
+ globalThis.window.history.replaceState({}, "", url.toString());
7141
+ }
7142
+ }, [filterConfigs, syncWithUrl]);
7143
+ (0, import_react24.useEffect)(() => {
7144
+ if (!syncWithUrl || globalThis.window === void 0) {
7145
+ return;
7146
+ }
7147
+ const handlePopState = () => {
7148
+ setFilterConfigs(getInitialState());
7149
+ };
7150
+ globalThis.window.addEventListener("popstate", handlePopState);
7151
+ return () => globalThis.window.removeEventListener("popstate", handlePopState);
7152
+ }, [syncWithUrl, getInitialState]);
7153
+ return {
7154
+ filterConfigs,
7155
+ activeFilters,
7156
+ hasActiveFilters,
7157
+ updateFilters,
7158
+ applyFilters,
7159
+ clearFilters
7160
+ };
7161
+ };
7162
+
6895
7163
  // src/components/Select/Select.tsx
6896
7164
  var import_zustand7 = require("zustand");
6897
- var import_react24 = require("react");
7165
+ var import_react25 = require("react");
6898
7166
  var import_phosphor_react17 = require("phosphor-react");
6899
- var import_jsx_runtime40 = require("react/jsx-runtime");
7167
+ var import_jsx_runtime41 = require("react/jsx-runtime");
6900
7168
  var VARIANT_CLASSES4 = {
6901
7169
  outlined: "border-2 rounded-lg focus:border-primary-950",
6902
7170
  underlined: "border-b-2 focus:border-primary-950",
@@ -6954,13 +7222,13 @@ function getLabelAsNode(children) {
6954
7222
  if (typeof children === "string" || typeof children === "number") {
6955
7223
  return children;
6956
7224
  }
6957
- const flattened = import_react24.Children.toArray(children);
7225
+ const flattened = import_react25.Children.toArray(children);
6958
7226
  if (flattened.length === 1) return flattened[0];
6959
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_jsx_runtime40.Fragment, { children: flattened });
7227
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_jsx_runtime41.Fragment, { children: flattened });
6960
7228
  }
6961
7229
  var injectStore4 = (children, store, size, selectId) => {
6962
- return import_react24.Children.map(children, (child) => {
6963
- if ((0, import_react24.isValidElement)(child)) {
7230
+ return import_react25.Children.map(children, (child) => {
7231
+ if ((0, import_react25.isValidElement)(child)) {
6964
7232
  const typedChild = child;
6965
7233
  const newProps = {
6966
7234
  store
@@ -6977,7 +7245,7 @@ var injectStore4 = (children, store, size, selectId) => {
6977
7245
  selectId
6978
7246
  );
6979
7247
  }
6980
- return (0, import_react24.cloneElement)(typedChild, newProps);
7248
+ return (0, import_react25.cloneElement)(typedChild, newProps);
6981
7249
  }
6982
7250
  return child;
6983
7251
  });
@@ -6994,18 +7262,18 @@ var Select = ({
6994
7262
  errorMessage,
6995
7263
  id
6996
7264
  }) => {
6997
- const storeRef = (0, import_react24.useRef)(null);
7265
+ const storeRef = (0, import_react25.useRef)(null);
6998
7266
  storeRef.current ??= createSelectStore(onValueChange);
6999
7267
  const store = storeRef.current;
7000
- const selectRef = (0, import_react24.useRef)(null);
7268
+ const selectRef = (0, import_react25.useRef)(null);
7001
7269
  const { open, setOpen, setValue, selectedLabel } = (0, import_zustand7.useStore)(store, (s) => s);
7002
- const generatedId = (0, import_react24.useId)();
7270
+ const generatedId = (0, import_react25.useId)();
7003
7271
  const selectId = id ?? `select-${generatedId}`;
7004
7272
  const findLabelForValue = (children2, targetValue) => {
7005
7273
  let found = null;
7006
7274
  const search = (nodes) => {
7007
- import_react24.Children.forEach(nodes, (child) => {
7008
- if (!(0, import_react24.isValidElement)(child)) return;
7275
+ import_react25.Children.forEach(nodes, (child) => {
7276
+ if (!(0, import_react25.isValidElement)(child)) return;
7009
7277
  const typedChild = child;
7010
7278
  if (typedChild.type === SelectItem && typedChild.props.value === targetValue) {
7011
7279
  if (typeof typedChild.props.children === "string")
@@ -7018,13 +7286,13 @@ var Select = ({
7018
7286
  search(children2);
7019
7287
  return found;
7020
7288
  };
7021
- (0, import_react24.useEffect)(() => {
7289
+ (0, import_react25.useEffect)(() => {
7022
7290
  if (!selectedLabel && defaultValue) {
7023
7291
  const label2 = findLabelForValue(children, defaultValue);
7024
7292
  if (label2) store.setState({ selectedLabel: label2 });
7025
7293
  }
7026
7294
  }, [children, defaultValue, selectedLabel]);
7027
- (0, import_react24.useEffect)(() => {
7295
+ (0, import_react25.useEffect)(() => {
7028
7296
  const handleClickOutside = (event) => {
7029
7297
  if (selectRef.current && !selectRef.current.contains(event.target)) {
7030
7298
  setOpen(false);
@@ -7059,7 +7327,7 @@ var Select = ({
7059
7327
  document.removeEventListener("keydown", handleArrowKeys);
7060
7328
  };
7061
7329
  }, [open]);
7062
- (0, import_react24.useEffect)(() => {
7330
+ (0, import_react25.useEffect)(() => {
7063
7331
  if (propValue) {
7064
7332
  setValue(propValue);
7065
7333
  const label2 = findLabelForValue(children, propValue);
@@ -7067,8 +7335,8 @@ var Select = ({
7067
7335
  }
7068
7336
  }, [propValue]);
7069
7337
  const sizeClasses = SIZE_CLASSES12[size];
7070
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: cn("w-full", className), children: [
7071
- label && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7338
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: cn("w-full", className), children: [
7339
+ label && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7072
7340
  "label",
7073
7341
  {
7074
7342
  htmlFor: selectId,
@@ -7076,11 +7344,11 @@ var Select = ({
7076
7344
  children: label
7077
7345
  }
7078
7346
  ),
7079
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
7080
- (helperText || errorMessage) && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { className: "mt-1.5 gap-1.5", children: [
7081
- helperText && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("p", { className: "text-sm text-text-500", children: helperText }),
7082
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
7083
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_phosphor_react17.WarningCircle, { size: 16 }),
7347
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
7348
+ (helperText || errorMessage) && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { className: "mt-1.5 gap-1.5", children: [
7349
+ helperText && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("p", { className: "text-sm text-text-500", children: helperText }),
7350
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
7351
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_phosphor_react17.WarningCircle, { size: 16 }),
7084
7352
  " ",
7085
7353
  errorMessage
7086
7354
  ] })
@@ -7094,9 +7362,9 @@ var SelectValue = ({
7094
7362
  const store = useSelectStore(externalStore);
7095
7363
  const selectedLabel = (0, import_zustand7.useStore)(store, (s) => s.selectedLabel);
7096
7364
  const value = (0, import_zustand7.useStore)(store, (s) => s.value);
7097
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
7365
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
7098
7366
  };
7099
- var SelectTrigger = (0, import_react24.forwardRef)(
7367
+ var SelectTrigger = (0, import_react25.forwardRef)(
7100
7368
  ({
7101
7369
  className,
7102
7370
  invalid = false,
@@ -7113,7 +7381,7 @@ var SelectTrigger = (0, import_react24.forwardRef)(
7113
7381
  const variantClasses = VARIANT_CLASSES4[variant];
7114
7382
  const heightClasses = HEIGHT_CLASSES[size];
7115
7383
  const paddingClasses = PADDING_CLASSES[size];
7116
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
7384
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7117
7385
  "button",
7118
7386
  {
7119
7387
  ref,
@@ -7135,7 +7403,7 @@ var SelectTrigger = (0, import_react24.forwardRef)(
7135
7403
  ...props,
7136
7404
  children: [
7137
7405
  props.children,
7138
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7406
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7139
7407
  import_phosphor_react17.CaretDown,
7140
7408
  {
7141
7409
  className: cn(
@@ -7150,7 +7418,7 @@ var SelectTrigger = (0, import_react24.forwardRef)(
7150
7418
  }
7151
7419
  );
7152
7420
  SelectTrigger.displayName = "SelectTrigger";
7153
- var SelectContent = (0, import_react24.forwardRef)(
7421
+ var SelectContent = (0, import_react25.forwardRef)(
7154
7422
  ({
7155
7423
  children,
7156
7424
  className,
@@ -7163,7 +7431,7 @@ var SelectContent = (0, import_react24.forwardRef)(
7163
7431
  const open = (0, import_zustand7.useStore)(store, (s) => s.open);
7164
7432
  if (!open) return null;
7165
7433
  const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
7166
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(
7434
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7167
7435
  "div",
7168
7436
  {
7169
7437
  role: "menu",
@@ -7180,7 +7448,7 @@ var SelectContent = (0, import_react24.forwardRef)(
7180
7448
  }
7181
7449
  );
7182
7450
  SelectContent.displayName = "SelectContent";
7183
- var SelectItem = (0, import_react24.forwardRef)(
7451
+ var SelectItem = (0, import_react25.forwardRef)(
7184
7452
  ({
7185
7453
  className,
7186
7454
  children,
@@ -7207,7 +7475,7 @@ var SelectItem = (0, import_react24.forwardRef)(
7207
7475
  }
7208
7476
  props.onClick?.(e);
7209
7477
  };
7210
- return /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(
7478
+ return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7211
7479
  "div",
7212
7480
  {
7213
7481
  role: "menuitem",
@@ -7227,7 +7495,7 @@ var SelectItem = (0, import_react24.forwardRef)(
7227
7495
  tabIndex: disabled ? -1 : 0,
7228
7496
  ...props,
7229
7497
  children: [
7230
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(import_phosphor_react17.Check, { className: "" }) }),
7498
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_phosphor_react17.Check, { className: "" }) }),
7231
7499
  children
7232
7500
  ]
7233
7501
  }
@@ -7239,9 +7507,9 @@ var Select_default = Select;
7239
7507
 
7240
7508
  // src/components/Menu/Menu.tsx
7241
7509
  var import_zustand8 = require("zustand");
7242
- var import_react25 = require("react");
7510
+ var import_react26 = require("react");
7243
7511
  var import_phosphor_react18 = require("phosphor-react");
7244
- var import_jsx_runtime41 = require("react/jsx-runtime");
7512
+ var import_jsx_runtime42 = require("react/jsx-runtime");
7245
7513
  var createMenuStore = (onValueChange) => (0, import_zustand8.create)((set) => ({
7246
7514
  value: "",
7247
7515
  setValue: (value) => {
@@ -7260,7 +7528,7 @@ var VARIANT_CLASSES5 = {
7260
7528
  "menu-overflow": "",
7261
7529
  breadcrumb: "bg-transparent shadow-none !px-0"
7262
7530
  };
7263
- var Menu = (0, import_react25.forwardRef)(
7531
+ var Menu = (0, import_react26.forwardRef)(
7264
7532
  ({
7265
7533
  className,
7266
7534
  children,
@@ -7270,16 +7538,16 @@ var Menu = (0, import_react25.forwardRef)(
7270
7538
  onValueChange,
7271
7539
  ...props
7272
7540
  }, ref) => {
7273
- const storeRef = (0, import_react25.useRef)(null);
7541
+ const storeRef = (0, import_react26.useRef)(null);
7274
7542
  storeRef.current ??= createMenuStore(onValueChange);
7275
7543
  const store = storeRef.current;
7276
7544
  const { setValue } = (0, import_zustand8.useStore)(store, (s) => s);
7277
- (0, import_react25.useEffect)(() => {
7545
+ (0, import_react26.useEffect)(() => {
7278
7546
  setValue(propValue ?? defaultValue);
7279
7547
  }, [defaultValue, propValue, setValue]);
7280
7548
  const baseClasses = variant === "menu-overflow" ? "w-fit py-2 flex flex-row items-center justify-center" : "w-full py-2 flex flex-row items-center justify-center";
7281
7549
  const variantClasses = VARIANT_CLASSES5[variant];
7282
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7550
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7283
7551
  "div",
7284
7552
  {
7285
7553
  ref,
@@ -7295,11 +7563,11 @@ var Menu = (0, import_react25.forwardRef)(
7295
7563
  }
7296
7564
  );
7297
7565
  Menu.displayName = "Menu";
7298
- var MenuContent = (0, import_react25.forwardRef)(
7566
+ var MenuContent = (0, import_react26.forwardRef)(
7299
7567
  ({ className, children, variant = "menu", ...props }, ref) => {
7300
7568
  const baseClasses = "w-full flex flex-row items-center gap-2";
7301
7569
  const variantClasses = variant === "menu2" || variant === "menu-overflow" ? "overflow-x-auto scroll-smooth" : "";
7302
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7570
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7303
7571
  "ul",
7304
7572
  {
7305
7573
  ref,
@@ -7317,7 +7585,7 @@ var MenuContent = (0, import_react25.forwardRef)(
7317
7585
  }
7318
7586
  );
7319
7587
  MenuContent.displayName = "MenuContent";
7320
- var MenuItem = (0, import_react25.forwardRef)(
7588
+ var MenuItem = (0, import_react26.forwardRef)(
7321
7589
  ({
7322
7590
  className,
7323
7591
  children,
@@ -7351,7 +7619,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7351
7619
  ...props
7352
7620
  };
7353
7621
  const variants = {
7354
- menu: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7622
+ menu: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7355
7623
  "li",
7356
7624
  {
7357
7625
  "data-variant": "menu",
@@ -7366,7 +7634,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7366
7634
  children
7367
7635
  }
7368
7636
  ),
7369
- menu2: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7637
+ menu2: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7370
7638
  "li",
7371
7639
  {
7372
7640
  "data-variant": "menu2",
@@ -7377,7 +7645,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7377
7645
  `,
7378
7646
  ...commonProps,
7379
7647
  children: [
7380
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7648
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7381
7649
  "span",
7382
7650
  {
7383
7651
  className: cn(
@@ -7387,11 +7655,11 @@ var MenuItem = (0, import_react25.forwardRef)(
7387
7655
  children
7388
7656
  }
7389
7657
  ),
7390
- selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
7658
+ selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
7391
7659
  ]
7392
7660
  }
7393
7661
  ),
7394
- "menu-overflow": /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7662
+ "menu-overflow": /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7395
7663
  "li",
7396
7664
  {
7397
7665
  "data-variant": "menu-overflow",
@@ -7402,7 +7670,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7402
7670
  `,
7403
7671
  ...commonProps,
7404
7672
  children: [
7405
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7673
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7406
7674
  "span",
7407
7675
  {
7408
7676
  className: cn(
@@ -7412,11 +7680,11 @@ var MenuItem = (0, import_react25.forwardRef)(
7412
7680
  children
7413
7681
  }
7414
7682
  ),
7415
- selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
7683
+ selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
7416
7684
  ]
7417
7685
  }
7418
7686
  ),
7419
- breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7687
+ breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7420
7688
  "li",
7421
7689
  {
7422
7690
  "data-variant": "breadcrumb",
@@ -7428,7 +7696,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7428
7696
  `,
7429
7697
  ...commonProps,
7430
7698
  children: [
7431
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7699
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7432
7700
  "span",
7433
7701
  {
7434
7702
  className: cn(
@@ -7438,7 +7706,7 @@ var MenuItem = (0, import_react25.forwardRef)(
7438
7706
  children
7439
7707
  }
7440
7708
  ),
7441
- separator && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7709
+ separator && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7442
7710
  import_phosphor_react18.CaretRight,
7443
7711
  {
7444
7712
  size: 16,
@@ -7475,10 +7743,10 @@ var MenuOverflow = ({
7475
7743
  onValueChange,
7476
7744
  ...props
7477
7745
  }) => {
7478
- const containerRef = (0, import_react25.useRef)(null);
7479
- const [showLeftArrow, setShowLeftArrow] = (0, import_react25.useState)(false);
7480
- const [showRightArrow, setShowRightArrow] = (0, import_react25.useState)(false);
7481
- (0, import_react25.useEffect)(() => {
7746
+ const containerRef = (0, import_react26.useRef)(null);
7747
+ const [showLeftArrow, setShowLeftArrow] = (0, import_react26.useState)(false);
7748
+ const [showRightArrow, setShowRightArrow] = (0, import_react26.useState)(false);
7749
+ (0, import_react26.useEffect)(() => {
7482
7750
  const checkScroll = () => internalCheckScroll(
7483
7751
  containerRef.current,
7484
7752
  setShowLeftArrow,
@@ -7493,25 +7761,25 @@ var MenuOverflow = ({
7493
7761
  window.removeEventListener("resize", checkScroll);
7494
7762
  };
7495
7763
  }, []);
7496
- return /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7764
+ return /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7497
7765
  "div",
7498
7766
  {
7499
7767
  "data-testid": "menu-overflow-wrapper",
7500
7768
  className: cn("relative w-full overflow-hidden", className),
7501
7769
  children: [
7502
- showLeftArrow && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7770
+ showLeftArrow && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7503
7771
  "button",
7504
7772
  {
7505
7773
  onClick: () => internalScroll(containerRef.current, "left"),
7506
7774
  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",
7507
7775
  "data-testid": "scroll-left-button",
7508
7776
  children: [
7509
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_phosphor_react18.CaretLeft, { size: 16 }),
7510
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "sr-only", children: "Scroll left" })
7777
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_phosphor_react18.CaretLeft, { size: 16 }),
7778
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "Scroll left" })
7511
7779
  ]
7512
7780
  }
7513
7781
  ),
7514
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
7782
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
7515
7783
  Menu,
7516
7784
  {
7517
7785
  defaultValue,
@@ -7519,18 +7787,18 @@ var MenuOverflow = ({
7519
7787
  value,
7520
7788
  variant: "menu2",
7521
7789
  ...props,
7522
- children: /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(MenuContent, { ref: containerRef, variant: "menu2", children })
7790
+ children: /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(MenuContent, { ref: containerRef, variant: "menu2", children })
7523
7791
  }
7524
7792
  ),
7525
- showRightArrow && /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)(
7793
+ showRightArrow && /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)(
7526
7794
  "button",
7527
7795
  {
7528
7796
  onClick: () => internalScroll(containerRef.current, "right"),
7529
7797
  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",
7530
7798
  "data-testid": "scroll-right-button",
7531
7799
  children: [
7532
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(import_phosphor_react18.CaretRight, { size: 16 }),
7533
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "sr-only", children: "Scroll right" })
7800
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(import_phosphor_react18.CaretRight, { size: 16 }),
7801
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("span", { className: "sr-only", children: "Scroll right" })
7534
7802
  ]
7535
7803
  }
7536
7804
  )
@@ -7538,11 +7806,11 @@ var MenuOverflow = ({
7538
7806
  }
7539
7807
  );
7540
7808
  };
7541
- var injectStore5 = (children, store) => import_react25.Children.map(children, (child) => {
7542
- if (!(0, import_react25.isValidElement)(child)) return child;
7809
+ var injectStore5 = (children, store) => import_react26.Children.map(children, (child) => {
7810
+ if (!(0, import_react26.isValidElement)(child)) return child;
7543
7811
  const typedChild = child;
7544
7812
  const shouldInject = typedChild.type === MenuItem;
7545
- return (0, import_react25.cloneElement)(typedChild, {
7813
+ return (0, import_react26.cloneElement)(typedChild, {
7546
7814
  ...shouldInject ? { store } : {},
7547
7815
  ...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
7548
7816
  });
@@ -7550,13 +7818,13 @@ var injectStore5 = (children, store) => import_react25.Children.map(children, (c
7550
7818
  var Menu_default = Menu;
7551
7819
 
7552
7820
  // src/components/Card/Card.tsx
7553
- var import_react27 = require("react");
7821
+ var import_react28 = require("react");
7554
7822
  var import_phosphor_react19 = require("phosphor-react");
7555
7823
 
7556
7824
  // src/components/IconRender/IconRender.tsx
7557
- var import_react26 = require("react");
7825
+ var import_react27 = require("react");
7558
7826
  var PhosphorIcons = __toESM(require("phosphor-react"));
7559
- var import_jsx_runtime42 = require("react/jsx-runtime");
7827
+ var import_jsx_runtime43 = require("react/jsx-runtime");
7560
7828
  var IconRender = ({
7561
7829
  iconName,
7562
7830
  color = "#000000",
@@ -7566,18 +7834,18 @@ var IconRender = ({
7566
7834
  if (typeof iconName === "string") {
7567
7835
  switch (iconName) {
7568
7836
  case "Chat_PT":
7569
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChatPT, { size, color });
7837
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ChatPT, { size, color });
7570
7838
  case "Chat_EN":
7571
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChatEN, { size, color });
7839
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ChatEN, { size, color });
7572
7840
  case "Chat_ES":
7573
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(ChatES, { size, color });
7841
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(ChatES, { size, color });
7574
7842
  default: {
7575
7843
  const IconComponent = PhosphorIcons[iconName] || PhosphorIcons.Question;
7576
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(IconComponent, { size, color, weight });
7844
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(IconComponent, { size, color, weight });
7577
7845
  }
7578
7846
  }
7579
7847
  } else {
7580
- return (0, import_react26.cloneElement)(iconName, {
7848
+ return (0, import_react27.cloneElement)(iconName, {
7581
7849
  size,
7582
7850
  color: "currentColor"
7583
7851
  });
@@ -7586,7 +7854,7 @@ var IconRender = ({
7586
7854
  var IconRender_default = IconRender;
7587
7855
 
7588
7856
  // src/components/Card/Card.tsx
7589
- var import_jsx_runtime43 = require("react/jsx-runtime");
7857
+ var import_jsx_runtime44 = require("react/jsx-runtime");
7590
7858
  var CARD_BASE_CLASSES = {
7591
7859
  default: "w-full bg-background border border-border-50 rounded-xl",
7592
7860
  compact: "w-full bg-background border border-border-50 rounded-lg",
@@ -7612,7 +7880,7 @@ var CARD_CURSOR_CLASSES = {
7612
7880
  default: "",
7613
7881
  pointer: "cursor-pointer"
7614
7882
  };
7615
- var CardBase = (0, import_react27.forwardRef)(
7883
+ var CardBase = (0, import_react28.forwardRef)(
7616
7884
  ({
7617
7885
  children,
7618
7886
  variant = "default",
@@ -7628,7 +7896,7 @@ var CardBase = (0, import_react27.forwardRef)(
7628
7896
  const minHeightClasses = CARD_MIN_HEIGHT_CLASSES[minHeight];
7629
7897
  const layoutClasses = CARD_LAYOUT_CLASSES[layout];
7630
7898
  const cursorClasses = CARD_CURSOR_CLASSES[cursor];
7631
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7899
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7632
7900
  "div",
7633
7901
  {
7634
7902
  ref,
@@ -7670,7 +7938,7 @@ var ACTION_HEADER_CLASSES = {
7670
7938
  error: "text-error-300",
7671
7939
  info: "text-info-300"
7672
7940
  };
7673
- var CardActivitiesResults = (0, import_react27.forwardRef)(
7941
+ var CardActivitiesResults = (0, import_react28.forwardRef)(
7674
7942
  ({
7675
7943
  icon,
7676
7944
  title,
@@ -7686,7 +7954,7 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7686
7954
  const actionIconClasses = ACTION_ICON_CLASSES[action];
7687
7955
  const actionSubTitleClasses = ACTION_SUBTITLE_CLASSES[action];
7688
7956
  const actionHeaderClasses = ACTION_HEADER_CLASSES[action];
7689
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
7957
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7690
7958
  "div",
7691
7959
  {
7692
7960
  ref,
@@ -7696,7 +7964,7 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7696
7964
  ),
7697
7965
  ...props,
7698
7966
  children: [
7699
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
7967
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7700
7968
  "div",
7701
7969
  {
7702
7970
  className: cn(
@@ -7705,7 +7973,7 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7705
7973
  extended ? "rounded-t-xl" : "rounded-xl"
7706
7974
  ),
7707
7975
  children: [
7708
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7976
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7709
7977
  "span",
7710
7978
  {
7711
7979
  className: cn(
@@ -7715,7 +7983,7 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7715
7983
  children: icon
7716
7984
  }
7717
7985
  ),
7718
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7986
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7719
7987
  Text_default,
7720
7988
  {
7721
7989
  size: "2xs",
@@ -7724,7 +7992,7 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7724
7992
  children: title
7725
7993
  }
7726
7994
  ),
7727
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
7995
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7728
7996
  "p",
7729
7997
  {
7730
7998
  className: cn("text-lg font-bold truncate", actionSubTitleClasses),
@@ -7734,8 +8002,8 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7734
8002
  ]
7735
8003
  }
7736
8004
  ),
7737
- extended && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
7738
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8005
+ extended && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
8006
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7739
8007
  "p",
7740
8008
  {
7741
8009
  className: cn(
@@ -7745,14 +8013,14 @@ var CardActivitiesResults = (0, import_react27.forwardRef)(
7745
8013
  children: header
7746
8014
  }
7747
8015
  ),
7748
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Badge_default, { size: "large", action: "info", children: description })
8016
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Badge_default, { size: "large", action: "info", children: description })
7749
8017
  ] })
7750
8018
  ]
7751
8019
  }
7752
8020
  );
7753
8021
  }
7754
8022
  );
7755
- var CardQuestions = (0, import_react27.forwardRef)(
8023
+ var CardQuestions = (0, import_react28.forwardRef)(
7756
8024
  ({
7757
8025
  header,
7758
8026
  state = "undone",
@@ -7764,7 +8032,7 @@ var CardQuestions = (0, import_react27.forwardRef)(
7764
8032
  const isDone = state === "done";
7765
8033
  const stateLabel = isDone ? "Realizado" : "N\xE3o Realizado";
7766
8034
  const buttonLabel = isDone ? "Ver Resultado" : "Responder";
7767
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8035
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7768
8036
  CardBase,
7769
8037
  {
7770
8038
  ref,
@@ -7774,9 +8042,9 @@ var CardQuestions = (0, import_react27.forwardRef)(
7774
8042
  className: cn("justify-between gap-4", className),
7775
8043
  ...props,
7776
8044
  children: [
7777
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
7778
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
7779
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-row gap-6 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8045
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
8046
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
8047
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex flex-row gap-6 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7780
8048
  Badge_default,
7781
8049
  {
7782
8050
  size: "medium",
@@ -7786,7 +8054,7 @@ var CardQuestions = (0, import_react27.forwardRef)(
7786
8054
  }
7787
8055
  ) })
7788
8056
  ] }),
7789
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8057
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7790
8058
  Button_default,
7791
8059
  {
7792
8060
  size: "extra-small",
@@ -7800,7 +8068,7 @@ var CardQuestions = (0, import_react27.forwardRef)(
7800
8068
  );
7801
8069
  }
7802
8070
  );
7803
- var CardProgress = (0, import_react27.forwardRef)(
8071
+ var CardProgress = (0, import_react28.forwardRef)(
7804
8072
  ({
7805
8073
  header,
7806
8074
  subhead,
@@ -7817,19 +8085,19 @@ var CardProgress = (0, import_react27.forwardRef)(
7817
8085
  }, ref) => {
7818
8086
  const isHorizontal = direction === "horizontal";
7819
8087
  const contentComponent = {
7820
- horizontal: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_jsx_runtime43.Fragment, { children: [
7821
- showDates && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
7822
- initialDate && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
7823
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
7824
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-600", children: initialDate })
8088
+ horizontal: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_jsx_runtime44.Fragment, { children: [
8089
+ showDates && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
8090
+ initialDate && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
8091
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
8092
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-600", children: initialDate })
7825
8093
  ] }),
7826
- endDate && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
7827
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
7828
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-600", children: endDate })
8094
+ endDate && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
8095
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
8096
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-600", children: endDate })
7829
8097
  ] })
7830
8098
  ] }),
7831
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
7832
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8099
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
8100
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7833
8101
  ProgressBar_default,
7834
8102
  {
7835
8103
  size: "small",
@@ -7838,7 +8106,7 @@ var CardProgress = (0, import_react27.forwardRef)(
7838
8106
  "data-testid": "progress-bar"
7839
8107
  }
7840
8108
  ),
7841
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8109
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7842
8110
  Text_default,
7843
8111
  {
7844
8112
  size: "xs",
@@ -7854,9 +8122,9 @@ var CardProgress = (0, import_react27.forwardRef)(
7854
8122
  )
7855
8123
  ] })
7856
8124
  ] }),
7857
- vertical: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm text-text-800", children: subhead })
8125
+ vertical: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm text-text-800", children: subhead })
7858
8126
  };
7859
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8127
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7860
8128
  CardBase,
7861
8129
  {
7862
8130
  ref,
@@ -7867,7 +8135,7 @@ var CardProgress = (0, import_react27.forwardRef)(
7867
8135
  className: cn(isHorizontal ? "h-20" : "", className),
7868
8136
  ...props,
7869
8137
  children: [
7870
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8138
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7871
8139
  "div",
7872
8140
  {
7873
8141
  className: cn(
@@ -7880,7 +8148,7 @@ var CardProgress = (0, import_react27.forwardRef)(
7880
8148
  children: icon
7881
8149
  }
7882
8150
  ),
7883
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8151
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7884
8152
  "div",
7885
8153
  {
7886
8154
  className: cn(
@@ -7888,7 +8156,7 @@ var CardProgress = (0, import_react27.forwardRef)(
7888
8156
  !isHorizontal && "gap-4"
7889
8157
  ),
7890
8158
  children: [
7891
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
8159
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
7892
8160
  contentComponent[direction]
7893
8161
  ]
7894
8162
  }
@@ -7898,7 +8166,7 @@ var CardProgress = (0, import_react27.forwardRef)(
7898
8166
  );
7899
8167
  }
7900
8168
  );
7901
- var CardTopic = (0, import_react27.forwardRef)(
8169
+ var CardTopic = (0, import_react28.forwardRef)(
7902
8170
  ({
7903
8171
  header,
7904
8172
  subHead,
@@ -7908,7 +8176,7 @@ var CardTopic = (0, import_react27.forwardRef)(
7908
8176
  className = "",
7909
8177
  ...props
7910
8178
  }, ref) => {
7911
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8179
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7912
8180
  CardBase,
7913
8181
  {
7914
8182
  ref,
@@ -7919,13 +8187,13 @@ var CardTopic = (0, import_react27.forwardRef)(
7919
8187
  className: cn("justify-center gap-2 py-2 px-4", className),
7920
8188
  ...props,
7921
8189
  children: [
7922
- subHead && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(import_react27.Fragment, { children: [
7923
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { children: text }),
7924
- index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { children: "\u2022" })
8190
+ subHead && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(import_react28.Fragment, { children: [
8191
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { children: text }),
8192
+ index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { children: "\u2022" })
7925
8193
  ] }, `${text} - ${index}`)) }),
7926
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
7927
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
7928
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8194
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
8195
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
8196
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7929
8197
  ProgressBar_default,
7930
8198
  {
7931
8199
  size: "small",
@@ -7934,7 +8202,7 @@ var CardTopic = (0, import_react27.forwardRef)(
7934
8202
  "data-testid": "progress-bar"
7935
8203
  }
7936
8204
  ),
7937
- showPercentage && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8205
+ showPercentage && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7938
8206
  Text_default,
7939
8207
  {
7940
8208
  size: "xs",
@@ -7954,7 +8222,7 @@ var CardTopic = (0, import_react27.forwardRef)(
7954
8222
  );
7955
8223
  }
7956
8224
  );
7957
- var CardPerformance = (0, import_react27.forwardRef)(
8225
+ var CardPerformance = (0, import_react28.forwardRef)(
7958
8226
  ({
7959
8227
  header,
7960
8228
  progress,
@@ -7968,7 +8236,7 @@ var CardPerformance = (0, import_react27.forwardRef)(
7968
8236
  ...props
7969
8237
  }, ref) => {
7970
8238
  const hasProgress = progress !== void 0;
7971
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8239
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
7972
8240
  CardBase,
7973
8241
  {
7974
8242
  ref,
@@ -7982,10 +8250,10 @@ var CardPerformance = (0, import_react27.forwardRef)(
7982
8250
  onClick: () => actionVariant == "caret" && onClickButton?.(valueButton),
7983
8251
  ...props,
7984
8252
  children: [
7985
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
7986
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row justify-between items-center gap-2", children: [
7987
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
7988
- actionVariant === "button" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8253
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
8254
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row justify-between items-center gap-2", children: [
8255
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
8256
+ actionVariant === "button" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
7989
8257
  Button_default,
7990
8258
  {
7991
8259
  variant: "outline",
@@ -7996,16 +8264,16 @@ var CardPerformance = (0, import_react27.forwardRef)(
7996
8264
  }
7997
8265
  )
7998
8266
  ] }),
7999
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8267
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8000
8268
  ProgressBar_default,
8001
8269
  {
8002
8270
  value: progress,
8003
8271
  label: `${progress}% ${labelProgress}`,
8004
8272
  variant: progressVariant
8005
8273
  }
8006
- ) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-xs text-text-600 truncate", children: description }) })
8274
+ ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-xs text-text-600 truncate", children: description }) })
8007
8275
  ] }),
8008
- actionVariant == "caret" && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8276
+ actionVariant == "caret" && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8009
8277
  import_phosphor_react19.CaretRight,
8010
8278
  {
8011
8279
  className: "size-4.5 text-text-800 cursor-pointer",
@@ -8017,7 +8285,7 @@ var CardPerformance = (0, import_react27.forwardRef)(
8017
8285
  );
8018
8286
  }
8019
8287
  );
8020
- var CardResults = (0, import_react27.forwardRef)(
8288
+ var CardResults = (0, import_react28.forwardRef)(
8021
8289
  ({
8022
8290
  header,
8023
8291
  correct_answers,
@@ -8029,7 +8297,7 @@ var CardResults = (0, import_react27.forwardRef)(
8029
8297
  ...props
8030
8298
  }, ref) => {
8031
8299
  const isRow = direction == "row";
8032
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8300
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8033
8301
  CardBase,
8034
8302
  {
8035
8303
  ref,
@@ -8039,7 +8307,7 @@ var CardResults = (0, import_react27.forwardRef)(
8039
8307
  className: cn("items-stretch cursor-pointer pr-4", className),
8040
8308
  ...props,
8041
8309
  children: [
8042
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8310
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8043
8311
  "div",
8044
8312
  {
8045
8313
  className: cn(
@@ -8048,11 +8316,11 @@ var CardResults = (0, import_react27.forwardRef)(
8048
8316
  style: {
8049
8317
  backgroundColor: color
8050
8318
  },
8051
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(IconRender_default, { iconName: icon, color: "currentColor", size: 20 })
8319
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(IconRender_default, { iconName: icon, color: "currentColor", size: 20 })
8052
8320
  }
8053
8321
  ),
8054
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "w-full flex flex-row justify-between items-center", children: [
8055
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8322
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "w-full flex flex-row justify-between items-center", children: [
8323
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8056
8324
  "div",
8057
8325
  {
8058
8326
  className: cn(
@@ -8060,28 +8328,28 @@ var CardResults = (0, import_react27.forwardRef)(
8060
8328
  isRow ? "flex-row items-center gap-2" : "flex-col"
8061
8329
  ),
8062
8330
  children: [
8063
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm font-bold text-text-950 flex-1", children: header }),
8064
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "flex flex-wrap flex-row gap-1 items-center", children: [
8065
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8331
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm font-bold text-text-950 flex-1", children: header }),
8332
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "flex flex-wrap flex-row gap-1 items-center", children: [
8333
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8066
8334
  Badge_default,
8067
8335
  {
8068
8336
  action: "success",
8069
8337
  variant: "solid",
8070
8338
  size: "large",
8071
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CheckCircle, {}),
8339
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CheckCircle, {}),
8072
8340
  children: [
8073
8341
  correct_answers,
8074
8342
  " Corretas"
8075
8343
  ]
8076
8344
  }
8077
8345
  ),
8078
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8346
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8079
8347
  Badge_default,
8080
8348
  {
8081
8349
  action: "error",
8082
8350
  variant: "solid",
8083
8351
  size: "large",
8084
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.XCircle, {}),
8352
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.XCircle, {}),
8085
8353
  children: [
8086
8354
  incorrect_answers,
8087
8355
  " Incorretas"
@@ -8092,14 +8360,14 @@ var CardResults = (0, import_react27.forwardRef)(
8092
8360
  ]
8093
8361
  }
8094
8362
  ),
8095
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
8363
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
8096
8364
  ] })
8097
8365
  ]
8098
8366
  }
8099
8367
  );
8100
8368
  }
8101
8369
  );
8102
- var CardStatus = (0, import_react27.forwardRef)(
8370
+ var CardStatus = (0, import_react28.forwardRef)(
8103
8371
  ({ header, className, status, label, ...props }, ref) => {
8104
8372
  const getLabelBadge = (status2) => {
8105
8373
  switch (status2) {
@@ -8118,13 +8386,13 @@ var CardStatus = (0, import_react27.forwardRef)(
8118
8386
  const getIconBadge = (status2) => {
8119
8387
  switch (status2) {
8120
8388
  case "correct":
8121
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CheckCircle, {});
8389
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CheckCircle, {});
8122
8390
  case "incorrect":
8123
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.XCircle, {});
8391
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.XCircle, {});
8124
8392
  case "pending":
8125
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.Clock, {});
8393
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.Clock, {});
8126
8394
  default:
8127
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.XCircle, {});
8395
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.XCircle, {});
8128
8396
  }
8129
8397
  };
8130
8398
  const getActionBadge = (status2) => {
@@ -8139,7 +8407,7 @@ var CardStatus = (0, import_react27.forwardRef)(
8139
8407
  return "info";
8140
8408
  }
8141
8409
  };
8142
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8410
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8143
8411
  CardBase,
8144
8412
  {
8145
8413
  ref,
@@ -8148,10 +8416,10 @@ var CardStatus = (0, import_react27.forwardRef)(
8148
8416
  minHeight: "medium",
8149
8417
  className: cn("items-center cursor-pointer", className),
8150
8418
  ...props,
8151
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
8152
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
8153
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
8154
- status && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8419
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
8420
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
8421
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
8422
+ status && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8155
8423
  Badge_default,
8156
8424
  {
8157
8425
  action: getActionBadge(status),
@@ -8161,17 +8429,17 @@ var CardStatus = (0, import_react27.forwardRef)(
8161
8429
  children: getLabelBadge(status)
8162
8430
  }
8163
8431
  ),
8164
- label && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm text-text-800", children: label })
8432
+ label && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm text-text-800", children: label })
8165
8433
  ] }),
8166
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
8434
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
8167
8435
  ] })
8168
8436
  }
8169
8437
  );
8170
8438
  }
8171
8439
  );
8172
- var CardSettings = (0, import_react27.forwardRef)(
8440
+ var CardSettings = (0, import_react28.forwardRef)(
8173
8441
  ({ header, className, icon, ...props }, ref) => {
8174
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8442
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8175
8443
  CardBase,
8176
8444
  {
8177
8445
  ref,
@@ -8184,17 +8452,17 @@ var CardSettings = (0, import_react27.forwardRef)(
8184
8452
  ),
8185
8453
  ...props,
8186
8454
  children: [
8187
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
8188
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "w-full text-sm truncate", children: header }),
8189
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CaretRight, { size: 24, className: "cursor-pointer" })
8455
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
8456
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "w-full text-sm truncate", children: header }),
8457
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CaretRight, { size: 24, className: "cursor-pointer" })
8190
8458
  ]
8191
8459
  }
8192
8460
  );
8193
8461
  }
8194
8462
  );
8195
- var CardSupport = (0, import_react27.forwardRef)(
8463
+ var CardSupport = (0, import_react28.forwardRef)(
8196
8464
  ({ header, className, direction = "col", children, ...props }, ref) => {
8197
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8465
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8198
8466
  CardBase,
8199
8467
  {
8200
8468
  ref,
@@ -8207,7 +8475,7 @@ var CardSupport = (0, import_react27.forwardRef)(
8207
8475
  ),
8208
8476
  ...props,
8209
8477
  children: [
8210
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8478
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8211
8479
  "div",
8212
8480
  {
8213
8481
  className: cn(
@@ -8215,18 +8483,18 @@ var CardSupport = (0, import_react27.forwardRef)(
8215
8483
  direction == "col" ? "flex-col" : "flex-row items-center"
8216
8484
  ),
8217
8485
  children: [
8218
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "w-full min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
8219
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("span", { className: "flex flex-row gap-1", children })
8486
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "w-full min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
8487
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { className: "flex flex-row gap-1", children })
8220
8488
  ]
8221
8489
  }
8222
8490
  ),
8223
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
8491
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
8224
8492
  ]
8225
8493
  }
8226
8494
  );
8227
8495
  }
8228
8496
  );
8229
- var CardForum = (0, import_react27.forwardRef)(
8497
+ var CardForum = (0, import_react28.forwardRef)(
8230
8498
  ({
8231
8499
  title,
8232
8500
  content,
@@ -8240,7 +8508,7 @@ var CardForum = (0, import_react27.forwardRef)(
8240
8508
  hour,
8241
8509
  ...props
8242
8510
  }, ref) => {
8243
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8511
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8244
8512
  CardBase,
8245
8513
  {
8246
8514
  ref,
@@ -8251,7 +8519,7 @@ var CardForum = (0, import_react27.forwardRef)(
8251
8519
  className: cn("w-auto h-auto gap-3", className),
8252
8520
  ...props,
8253
8521
  children: [
8254
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8522
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8255
8523
  "button",
8256
8524
  {
8257
8525
  type: "button",
@@ -8260,18 +8528,18 @@ var CardForum = (0, import_react27.forwardRef)(
8260
8528
  className: "min-w-8 h-8 rounded-full bg-background-950"
8261
8529
  }
8262
8530
  ),
8263
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
8264
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
8265
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
8266
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("p", { className: "text-xs text-text-600", children: [
8531
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
8532
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
8533
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
8534
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("p", { className: "text-xs text-text-600", children: [
8267
8535
  "\u2022 ",
8268
8536
  date,
8269
8537
  " \u2022 ",
8270
8538
  hour
8271
8539
  ] })
8272
8540
  ] }),
8273
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
8274
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8541
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
8542
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8275
8543
  "button",
8276
8544
  {
8277
8545
  type: "button",
@@ -8279,8 +8547,8 @@ var CardForum = (0, import_react27.forwardRef)(
8279
8547
  onClick: () => onClickComments?.(valueComments),
8280
8548
  className: "text-text-600 flex flex-row gap-2 items-center",
8281
8549
  children: [
8282
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.ChatCircleText, { "aria-hidden": "true", size: 16 }),
8283
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("p", { className: "text-xs", children: [
8550
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.ChatCircleText, { "aria-hidden": "true", size: 16 }),
8551
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("p", { className: "text-xs", children: [
8284
8552
  comments,
8285
8553
  " respostas"
8286
8554
  ] })
@@ -8293,7 +8561,7 @@ var CardForum = (0, import_react27.forwardRef)(
8293
8561
  );
8294
8562
  }
8295
8563
  );
8296
- var CardAudio = (0, import_react27.forwardRef)(
8564
+ var CardAudio = (0, import_react28.forwardRef)(
8297
8565
  ({
8298
8566
  src,
8299
8567
  title,
@@ -8307,16 +8575,16 @@ var CardAudio = (0, import_react27.forwardRef)(
8307
8575
  className,
8308
8576
  ...props
8309
8577
  }, ref) => {
8310
- const [isPlaying, setIsPlaying] = (0, import_react27.useState)(false);
8311
- const [currentTime, setCurrentTime] = (0, import_react27.useState)(0);
8312
- const [duration, setDuration] = (0, import_react27.useState)(0);
8313
- const [volume, setVolume] = (0, import_react27.useState)(1);
8314
- const [showVolumeControl, setShowVolumeControl] = (0, import_react27.useState)(false);
8315
- const [showSpeedMenu, setShowSpeedMenu] = (0, import_react27.useState)(false);
8316
- const [playbackRate, setPlaybackRate] = (0, import_react27.useState)(1);
8317
- const audioRef = (0, import_react27.useRef)(null);
8318
- const volumeControlRef = (0, import_react27.useRef)(null);
8319
- const speedMenuRef = (0, import_react27.useRef)(null);
8578
+ const [isPlaying, setIsPlaying] = (0, import_react28.useState)(false);
8579
+ const [currentTime, setCurrentTime] = (0, import_react28.useState)(0);
8580
+ const [duration, setDuration] = (0, import_react28.useState)(0);
8581
+ const [volume, setVolume] = (0, import_react28.useState)(1);
8582
+ const [showVolumeControl, setShowVolumeControl] = (0, import_react28.useState)(false);
8583
+ const [showSpeedMenu, setShowSpeedMenu] = (0, import_react28.useState)(false);
8584
+ const [playbackRate, setPlaybackRate] = (0, import_react28.useState)(1);
8585
+ const audioRef = (0, import_react28.useRef)(null);
8586
+ const volumeControlRef = (0, import_react28.useRef)(null);
8587
+ const speedMenuRef = (0, import_react28.useRef)(null);
8320
8588
  const formatTime2 = (time) => {
8321
8589
  const minutes = Math.floor(time / 60);
8322
8590
  const seconds = Math.floor(time % 60);
@@ -8383,14 +8651,14 @@ var CardAudio = (0, import_react27.forwardRef)(
8383
8651
  };
8384
8652
  const getVolumeIcon = () => {
8385
8653
  if (volume === 0) {
8386
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.SpeakerSimpleX, { size: 24 });
8654
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.SpeakerSimpleX, { size: 24 });
8387
8655
  }
8388
8656
  if (volume < 0.5) {
8389
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.SpeakerLow, { size: 24 });
8657
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.SpeakerLow, { size: 24 });
8390
8658
  }
8391
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.SpeakerHigh, { size: 24 });
8659
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.SpeakerHigh, { size: 24 });
8392
8660
  };
8393
- (0, import_react27.useEffect)(() => {
8661
+ (0, import_react28.useEffect)(() => {
8394
8662
  const handleClickOutside = (event) => {
8395
8663
  if (volumeControlRef.current && !volumeControlRef.current.contains(event.target)) {
8396
8664
  setShowVolumeControl(false);
@@ -8404,7 +8672,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8404
8672
  document.removeEventListener("mousedown", handleClickOutside);
8405
8673
  };
8406
8674
  }, []);
8407
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
8675
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8408
8676
  CardBase,
8409
8677
  {
8410
8678
  ref,
@@ -8417,7 +8685,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8417
8685
  ),
8418
8686
  ...props,
8419
8687
  children: [
8420
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8688
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8421
8689
  "audio",
8422
8690
  {
8423
8691
  ref: audioRef,
@@ -8429,7 +8697,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8429
8697
  onEnded: handleEnded,
8430
8698
  "data-testid": "audio-element",
8431
8699
  "aria-label": title,
8432
- children: tracks ? tracks.map((track) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8700
+ children: tracks ? tracks.map((track) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8433
8701
  "track",
8434
8702
  {
8435
8703
  kind: track.kind,
@@ -8439,7 +8707,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8439
8707
  default: track.default
8440
8708
  },
8441
8709
  track.src
8442
- )) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8710
+ )) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8443
8711
  "track",
8444
8712
  {
8445
8713
  kind: "captions",
@@ -8450,7 +8718,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8450
8718
  )
8451
8719
  }
8452
8720
  ),
8453
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8721
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8454
8722
  "button",
8455
8723
  {
8456
8724
  type: "button",
@@ -8458,14 +8726,14 @@ var CardAudio = (0, import_react27.forwardRef)(
8458
8726
  disabled: !src,
8459
8727
  className: "cursor-pointer text-text-950 hover:text-primary-600 disabled:text-text-400 disabled:cursor-not-allowed",
8460
8728
  "aria-label": isPlaying ? "Pausar" : "Reproduzir",
8461
- children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex gap-0.5", children: [
8462
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" }),
8463
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" })
8464
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.Play, { size: 24 })
8729
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex gap-0.5", children: [
8730
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" }),
8731
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" })
8732
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.Play, { size: 24 })
8465
8733
  }
8466
8734
  ),
8467
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
8468
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8735
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
8736
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8469
8737
  "button",
8470
8738
  {
8471
8739
  type: "button",
@@ -8480,7 +8748,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8480
8748
  }
8481
8749
  },
8482
8750
  "aria-label": "Barra de progresso do \xE1udio",
8483
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8751
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8484
8752
  "div",
8485
8753
  {
8486
8754
  className: "h-full bg-primary-600 rounded-full transition-all duration-100",
@@ -8491,19 +8759,19 @@ var CardAudio = (0, import_react27.forwardRef)(
8491
8759
  )
8492
8760
  }
8493
8761
  ) }),
8494
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
8495
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "relative h-6", ref: volumeControlRef, children: [
8496
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8762
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
8763
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative h-6", ref: volumeControlRef, children: [
8764
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8497
8765
  "button",
8498
8766
  {
8499
8767
  type: "button",
8500
8768
  onClick: toggleVolumeControl,
8501
8769
  className: "cursor-pointer text-text-950 hover:text-primary-600",
8502
8770
  "aria-label": "Controle de volume",
8503
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
8771
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
8504
8772
  }
8505
8773
  ),
8506
- showVolumeControl && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8774
+ showVolumeControl && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8507
8775
  "button",
8508
8776
  {
8509
8777
  type: "button",
@@ -8513,7 +8781,7 @@ var CardAudio = (0, import_react27.forwardRef)(
8513
8781
  setShowVolumeControl(false);
8514
8782
  }
8515
8783
  },
8516
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8784
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8517
8785
  "input",
8518
8786
  {
8519
8787
  type: "range",
@@ -8554,22 +8822,22 @@ var CardAudio = (0, import_react27.forwardRef)(
8554
8822
  }
8555
8823
  )
8556
8824
  ] }),
8557
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "relative h-6", ref: speedMenuRef, children: [
8558
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8825
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "relative h-6", ref: speedMenuRef, children: [
8826
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8559
8827
  "button",
8560
8828
  {
8561
8829
  type: "button",
8562
8830
  onClick: toggleSpeedMenu,
8563
8831
  className: "cursor-pointer text-text-950 hover:text-primary-600",
8564
8832
  "aria-label": "Op\xE7\xF5es de velocidade",
8565
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.DotsThreeVertical, { size: 24 })
8833
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.DotsThreeVertical, { size: 24 })
8566
8834
  }
8567
8835
  ),
8568
- showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "absolute bottom-full right-0 mb-2 p-2 bg-background border border-border-100 rounded-lg shadow-lg min-w-24 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-col gap-1", children: [
8836
+ showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "absolute bottom-full right-0 mb-2 p-2 bg-background border border-border-100 rounded-lg shadow-lg min-w-24 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex flex-col gap-1", children: [
8569
8837
  { speed: 1, label: "1x" },
8570
8838
  { speed: 1.5, label: "1.5x" },
8571
8839
  { speed: 2, label: "2x" }
8572
- ].map(({ speed, label }) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8840
+ ].map(({ speed, label }) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8573
8841
  "button",
8574
8842
  {
8575
8843
  type: "button",
@@ -8594,10 +8862,10 @@ var SIMULADO_BACKGROUND_CLASSES = {
8594
8862
  simuladao: "bg-exam-3",
8595
8863
  vestibular: "bg-exam-4"
8596
8864
  };
8597
- var CardSimulado = (0, import_react27.forwardRef)(
8865
+ var CardSimulado = (0, import_react28.forwardRef)(
8598
8866
  ({ title, duration, info, backgroundColor, className, ...props }, ref) => {
8599
8867
  const backgroundClass = SIMULADO_BACKGROUND_CLASSES[backgroundColor];
8600
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8868
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8601
8869
  CardBase,
8602
8870
  {
8603
8871
  ref,
@@ -8610,18 +8878,18 @@ var CardSimulado = (0, import_react27.forwardRef)(
8610
8878
  className
8611
8879
  ),
8612
8880
  ...props,
8613
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex justify-between items-center w-full gap-4", children: [
8614
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
8615
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
8616
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center gap-4 text-text-700", children: [
8617
- duration && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center gap-1", children: [
8618
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.Clock, { size: 16, className: "flex-shrink-0" }),
8619
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text_default, { size: "sm", children: duration })
8881
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex justify-between items-center w-full gap-4", children: [
8882
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
8883
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
8884
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center gap-4 text-text-700", children: [
8885
+ duration && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center gap-1", children: [
8886
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.Clock, { size: 16, className: "flex-shrink-0" }),
8887
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text_default, { size: "sm", children: duration })
8620
8888
  ] }),
8621
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text_default, { size: "sm", className: "truncate", children: info })
8889
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text_default, { size: "sm", className: "truncate", children: info })
8622
8890
  ] })
8623
8891
  ] }),
8624
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8892
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8625
8893
  import_phosphor_react19.CaretRight,
8626
8894
  {
8627
8895
  size: 24,
@@ -8634,7 +8902,7 @@ var CardSimulado = (0, import_react27.forwardRef)(
8634
8902
  );
8635
8903
  }
8636
8904
  );
8637
- var CardTest = (0, import_react27.forwardRef)(
8905
+ var CardTest = (0, import_react28.forwardRef)(
8638
8906
  ({
8639
8907
  title,
8640
8908
  duration,
@@ -8666,7 +8934,7 @@ var CardTest = (0, import_react27.forwardRef)(
8666
8934
  const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
8667
8935
  const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
8668
8936
  if (isSelectable) {
8669
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8937
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8670
8938
  "button",
8671
8939
  {
8672
8940
  ref,
@@ -8678,8 +8946,8 @@ var CardTest = (0, import_react27.forwardRef)(
8678
8946
  onKeyDown: handleKeyDown,
8679
8947
  "aria-pressed": selected,
8680
8948
  ...props,
8681
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
8682
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8949
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
8950
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8683
8951
  Text_default,
8684
8952
  {
8685
8953
  size: "md",
@@ -8688,10 +8956,10 @@ var CardTest = (0, import_react27.forwardRef)(
8688
8956
  children: title
8689
8957
  }
8690
8958
  ),
8691
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
8692
- duration && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
8693
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.Clock, { size: 16, className: "text-text-700" }),
8694
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8959
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
8960
+ duration && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
8961
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.Clock, { size: 16, className: "text-text-700" }),
8962
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8695
8963
  Text_default,
8696
8964
  {
8697
8965
  size: "sm",
@@ -8700,7 +8968,7 @@ var CardTest = (0, import_react27.forwardRef)(
8700
8968
  }
8701
8969
  )
8702
8970
  ] }),
8703
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8971
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8704
8972
  Text_default,
8705
8973
  {
8706
8974
  size: "sm",
@@ -8713,14 +8981,14 @@ var CardTest = (0, import_react27.forwardRef)(
8713
8981
  }
8714
8982
  );
8715
8983
  }
8716
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8984
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8717
8985
  "div",
8718
8986
  {
8719
8987
  ref,
8720
8988
  className: cn(`${baseClasses} ${className}`.trim()),
8721
8989
  ...props,
8722
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
8723
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
8990
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
8991
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8724
8992
  Text_default,
8725
8993
  {
8726
8994
  size: "md",
@@ -8729,10 +8997,10 @@ var CardTest = (0, import_react27.forwardRef)(
8729
8997
  children: title
8730
8998
  }
8731
8999
  ),
8732
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
8733
- duration && /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
8734
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(import_phosphor_react19.Clock, { size: 16, className: "text-text-700" }),
8735
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9000
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
9001
+ duration && /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
9002
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react19.Clock, { size: 16, className: "text-text-700" }),
9003
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8736
9004
  Text_default,
8737
9005
  {
8738
9006
  size: "sm",
@@ -8741,7 +9009,7 @@ var CardTest = (0, import_react27.forwardRef)(
8741
9009
  }
8742
9010
  )
8743
9011
  ] }),
8744
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9012
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8745
9013
  Text_default,
8746
9014
  {
8747
9015
  size: "sm",
@@ -8777,15 +9045,15 @@ var SIMULATION_TYPE_STYLES = {
8777
9045
  text: "Vestibular"
8778
9046
  }
8779
9047
  };
8780
- var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulationClick, className, ...props }, ref) => {
8781
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9048
+ var CardSimulationHistory = (0, import_react28.forwardRef)(({ data, onSimulationClick, className, ...props }, ref) => {
9049
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8782
9050
  "div",
8783
9051
  {
8784
9052
  ref,
8785
9053
  className: cn("w-full max-w-[992px] h-auto", className),
8786
9054
  ...props,
8787
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-col gap-0", children: [
8788
- data.map((section, sectionIndex) => /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
9055
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-col gap-0", children: [
9056
+ data.map((section, sectionIndex) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
8789
9057
  "div",
8790
9058
  {
8791
9059
  className: cn(
@@ -8793,7 +9061,7 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8793
9061
  sectionIndex === 0 ? "rounded-t-3xl" : ""
8794
9062
  ),
8795
9063
  children: [
8796
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9064
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8797
9065
  Text_default,
8798
9066
  {
8799
9067
  size: "xs",
@@ -8802,9 +9070,9 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8802
9070
  children: section.date
8803
9071
  }
8804
9072
  ),
8805
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
9073
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
8806
9074
  const typeStyles = SIMULATION_TYPE_STYLES[simulation.type];
8807
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9075
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8808
9076
  CardBase,
8809
9077
  {
8810
9078
  layout: "horizontal",
@@ -8816,9 +9084,9 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8816
9084
  transition-shadow duration-200 h-auto min-h-[61px]`
8817
9085
  ),
8818
9086
  onClick: () => onSimulationClick?.(simulation),
8819
- children: /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex justify-between items-center w-full gap-2", children: [
8820
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex flex-wrap flex-col justify-between sm:flex-row gap-2 flex-1 min-w-0", children: [
8821
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9087
+ children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex justify-between items-center w-full gap-2", children: [
9088
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-wrap flex-col justify-between sm:flex-row gap-2 flex-1 min-w-0", children: [
9089
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8822
9090
  Text_default,
8823
9091
  {
8824
9092
  size: "lg",
@@ -8827,8 +9095,8 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8827
9095
  children: simulation.title
8828
9096
  }
8829
9097
  ),
8830
- /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("div", { className: "flex items-center gap-2", children: [
8831
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9098
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex items-center gap-2", children: [
9099
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8832
9100
  Badge_default,
8833
9101
  {
8834
9102
  variant: "examsOutlined",
@@ -8837,10 +9105,10 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8837
9105
  children: typeStyles.text
8838
9106
  }
8839
9107
  ),
8840
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
9108
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
8841
9109
  ] })
8842
9110
  ] }),
8843
- /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
9111
+ /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
8844
9112
  import_phosphor_react19.CaretRight,
8845
9113
  {
8846
9114
  size: 24,
@@ -8856,7 +9124,7 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8856
9124
  ]
8857
9125
  }
8858
9126
  ) }, section.date)),
8859
- data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("div", { className: "w-full h-6 bg-background rounded-b-3xl" })
9127
+ data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-full h-6 bg-background rounded-b-3xl" })
8860
9128
  ] })
8861
9129
  }
8862
9130
  );
@@ -8864,7 +9132,7 @@ var CardSimulationHistory = (0, import_react27.forwardRef)(({ data, onSimulation
8864
9132
 
8865
9133
  // src/components/StatisticsCard/StatisticsCard.tsx
8866
9134
  var import_phosphor_react20 = require("phosphor-react");
8867
- var import_jsx_runtime44 = require("react/jsx-runtime");
9135
+ var import_jsx_runtime45 = require("react/jsx-runtime");
8868
9136
  var VARIANT_STYLES = {
8869
9137
  high: "bg-success-background",
8870
9138
  medium: "bg-warning-background",
@@ -8878,12 +9146,12 @@ var VALUE_TEXT_COLORS = {
8878
9146
  total: "text-info-700"
8879
9147
  };
8880
9148
  var StatCard = ({ item, showPlaceholder = false }) => {
8881
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
9149
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
8882
9150
  "div",
8883
9151
  {
8884
9152
  className: `rounded-xl py-[17px] px-6 min-h-[105px] flex flex-col justify-center items-start gap-1 ${VARIANT_STYLES[item.variant]}`,
8885
9153
  children: [
8886
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9154
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8887
9155
  Text_default,
8888
9156
  {
8889
9157
  size: "4xl",
@@ -8892,7 +9160,7 @@ var StatCard = ({ item, showPlaceholder = false }) => {
8892
9160
  children: showPlaceholder ? "-" : item.value
8893
9161
  }
8894
9162
  ),
8895
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9163
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8896
9164
  Text_default,
8897
9165
  {
8898
9166
  size: "xs",
@@ -8927,13 +9195,13 @@ var StatisticsCard = ({
8927
9195
  }) => {
8928
9196
  const hasData = data && data.length > 0;
8929
9197
  const gridColumnsClass = hasData ? getGridColumnsClass(data.length) : "";
8930
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
9198
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
8931
9199
  "div",
8932
9200
  {
8933
9201
  className: `bg-background rounded-xl p-4 h-auto lg:h-[185px] flex flex-col gap-2 ${className}`,
8934
9202
  children: [
8935
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "flex flex-row justify-between items-center gap-4", children: [
8936
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9203
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "flex flex-row justify-between items-center gap-4", children: [
9204
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8937
9205
  Text_default,
8938
9206
  {
8939
9207
  as: "h3",
@@ -8944,22 +9212,22 @@ var StatisticsCard = ({
8944
9212
  children: title
8945
9213
  }
8946
9214
  ),
8947
- dropdownOptions && dropdownOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { className: "w-[120px] min-w-[90px] sm:shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
9215
+ dropdownOptions && dropdownOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { className: "w-[120px] min-w-[90px] sm:shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
8948
9216
  Select_default,
8949
9217
  {
8950
9218
  value: selectedDropdownValue,
8951
9219
  onValueChange: onDropdownChange,
8952
9220
  size: "medium",
8953
9221
  children: [
8954
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9222
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8955
9223
  SelectTrigger,
8956
9224
  {
8957
9225
  className: "border border-border-300 rounded [&>span]:whitespace-nowrap [&>span]:overflow-hidden [&>span]:text-ellipsis",
8958
9226
  "aria-label": dropdownAriaLabel,
8959
- children: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectValue, { placeholder: selectPlaceholder })
9227
+ children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectValue, { placeholder: selectPlaceholder })
8960
9228
  }
8961
9229
  ),
8962
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(SelectContent, { className: "min-w-[120px]", children: dropdownOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9230
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(SelectContent, { className: "min-w-[120px]", children: dropdownOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8963
9231
  SelectItem,
8964
9232
  {
8965
9233
  value: option.value,
@@ -8972,11 +9240,11 @@ var StatisticsCard = ({
8972
9240
  }
8973
9241
  ) })
8974
9242
  ] }),
8975
- hasData ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9243
+ hasData ? /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8976
9244
  "div",
8977
9245
  {
8978
9246
  className: `grid grid-cols-1 sm:grid-cols-2 gap-[13px] ${gridColumnsClass}`,
8979
- children: data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9247
+ children: data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8980
9248
  StatCard,
8981
9249
  {
8982
9250
  item,
@@ -8985,8 +9253,8 @@ var StatisticsCard = ({
8985
9253
  `${item.variant}-${item.label}-${index}`
8986
9254
  ))
8987
9255
  }
8988
- ) : /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("div", { className: "border border-dashed border-border-300 rounded-lg p-6 min-h-[105px] flex flex-col items-center justify-center gap-2", children: [
8989
- /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9256
+ ) : /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("div", { className: "border border-dashed border-border-300 rounded-lg p-6 min-h-[105px] flex flex-col items-center justify-center gap-2", children: [
9257
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8990
9258
  Text_default,
8991
9259
  {
8992
9260
  size: "sm",
@@ -8995,14 +9263,14 @@ var StatisticsCard = ({
8995
9263
  children: emptyStateMessage
8996
9264
  }
8997
9265
  ),
8998
- onEmptyStateButtonClick && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
9266
+ onEmptyStateButtonClick && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
8999
9267
  Button_default,
9000
9268
  {
9001
9269
  variant: "outline",
9002
9270
  action: "primary",
9003
9271
  size: "small",
9004
9272
  onClick: onEmptyStateButtonClick,
9005
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(import_phosphor_react20.Plus, { size: 16, weight: "bold" }),
9273
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(import_phosphor_react20.Plus, { size: 16, weight: "bold" }),
9006
9274
  children: emptyStateButtonText
9007
9275
  }
9008
9276
  )
@@ -9013,7 +9281,7 @@ var StatisticsCard = ({
9013
9281
  };
9014
9282
 
9015
9283
  // src/components/NotFound/NotFound.tsx
9016
- var import_jsx_runtime45 = require("react/jsx-runtime");
9284
+ var import_jsx_runtime46 = require("react/jsx-runtime");
9017
9285
  var NotFound = ({
9018
9286
  title,
9019
9287
  description,
@@ -9056,22 +9324,22 @@ var NotFound = ({
9056
9324
  const errorTitle = title || getDefaultTitle();
9057
9325
  const errorDescription = description || getDefaultDescription();
9058
9326
  const errorCode = getErrorCode();
9059
- return /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9327
+ return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9060
9328
  "div",
9061
9329
  {
9062
9330
  className: cn(
9063
9331
  "flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
9064
9332
  className
9065
9333
  ),
9066
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9334
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9067
9335
  "main",
9068
9336
  {
9069
9337
  role: "main",
9070
9338
  "aria-labelledby": "error-title",
9071
9339
  "aria-describedby": "error-description",
9072
9340
  className: "flex flex-col items-center text-center max-w-md space-y-6",
9073
- children: /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("section", { "aria-label": `Erro ${errorCode}`, children: [
9074
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9341
+ children: /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("section", { "aria-label": `Erro ${errorCode}`, children: [
9342
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9075
9343
  "div",
9076
9344
  {
9077
9345
  className: "text-8xl font-bold text-primary-300 select-none",
@@ -9079,8 +9347,8 @@ var NotFound = ({
9079
9347
  children: errorCode
9080
9348
  }
9081
9349
  ),
9082
- /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("header", { className: "space-y-2", children: [
9083
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9350
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)("header", { className: "space-y-2", children: [
9351
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9084
9352
  Text_default,
9085
9353
  {
9086
9354
  size: "xl",
@@ -9091,9 +9359,9 @@ var NotFound = ({
9091
9359
  children: errorTitle
9092
9360
  }
9093
9361
  ),
9094
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
9362
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
9095
9363
  ] }),
9096
- onButtonClick && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ (0, import_jsx_runtime45.jsx)(
9364
+ onButtonClick && /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9097
9365
  Button_default,
9098
9366
  {
9099
9367
  onClick: handleButtonClick,
@@ -9113,15 +9381,44 @@ var NotFound = ({
9113
9381
  };
9114
9382
  var NotFound_default = NotFound;
9115
9383
 
9384
+ // src/components/NoSearchResult/NoSearchResult.tsx
9385
+ var import_jsx_runtime47 = require("react/jsx-runtime");
9386
+ var NoSearchResult = ({ image, title, description }) => {
9387
+ const displayTitle = title || "Nenhum resultado encontrado";
9388
+ const displayDescription = description || "N\xE3o encontramos nenhum resultado com esse nome. Tente revisar a busca ou usar outra palavra-chave.";
9389
+ return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-row justify-center items-center gap-8 w-full max-w-4xl min-h-96", children: [
9390
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "w-72 h-72 flex-shrink-0 relative", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9391
+ "img",
9392
+ {
9393
+ src: image,
9394
+ alt: "No search results",
9395
+ className: "w-full h-full object-contain"
9396
+ }
9397
+ ) }),
9398
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col items-start w-full max-w-md", children: [
9399
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-row justify-between items-end px-6 pt-6 pb-4 w-full rounded-t-xl", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9400
+ Text_default,
9401
+ {
9402
+ as: "h2",
9403
+ className: "text-text-950 font-semibold text-3xl leading-tight w-full flex items-center",
9404
+ children: displayTitle
9405
+ }
9406
+ ) }),
9407
+ /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex flex-row justify-center items-center px-6 gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(Text_default, { className: "text-text-600 font-normal text-lg leading-relaxed w-full text-justify", children: displayDescription }) })
9408
+ ] })
9409
+ ] });
9410
+ };
9411
+ var NoSearchResult_default = NoSearchResult;
9412
+
9116
9413
  // src/components/VideoPlayer/VideoPlayer.tsx
9117
- var import_react29 = require("react");
9414
+ var import_react30 = require("react");
9118
9415
  var import_react_dom = require("react-dom");
9119
9416
  var import_phosphor_react22 = require("phosphor-react");
9120
9417
 
9121
9418
  // src/components/DownloadButton/DownloadButton.tsx
9122
- var import_react28 = require("react");
9419
+ var import_react29 = require("react");
9123
9420
  var import_phosphor_react21 = require("phosphor-react");
9124
- var import_jsx_runtime46 = require("react/jsx-runtime");
9421
+ var import_jsx_runtime48 = require("react/jsx-runtime");
9125
9422
  var getMimeType = (url) => {
9126
9423
  const extension = getFileExtension(url);
9127
9424
  const mimeTypes = {
@@ -9196,13 +9493,13 @@ var DownloadButton = ({
9196
9493
  lessonTitle = "aula",
9197
9494
  disabled = false
9198
9495
  }) => {
9199
- const [isDownloading, setIsDownloading] = (0, import_react28.useState)(false);
9200
- const isValidUrl = (0, import_react28.useCallback)((url) => {
9496
+ const [isDownloading, setIsDownloading] = (0, import_react29.useState)(false);
9497
+ const isValidUrl = (0, import_react29.useCallback)((url) => {
9201
9498
  return Boolean(
9202
9499
  url && url.trim() !== "" && url !== "undefined" && url !== "null"
9203
9500
  );
9204
9501
  }, []);
9205
- const getAvailableContent = (0, import_react28.useCallback)(() => {
9502
+ const getAvailableContent = (0, import_react29.useCallback)(() => {
9206
9503
  const downloads = [];
9207
9504
  if (isValidUrl(content.urlDoc)) {
9208
9505
  downloads.push({
@@ -9237,7 +9534,7 @@ var DownloadButton = ({
9237
9534
  }
9238
9535
  return downloads;
9239
9536
  }, [content, isValidUrl]);
9240
- const handleDownload = (0, import_react28.useCallback)(async () => {
9537
+ const handleDownload = (0, import_react29.useCallback)(async () => {
9241
9538
  if (disabled || isDownloading) return;
9242
9539
  const availableContent = getAvailableContent();
9243
9540
  if (availableContent.length === 0) {
@@ -9278,10 +9575,10 @@ var DownloadButton = ({
9278
9575
  if (!hasContent) {
9279
9576
  return null;
9280
9577
  }
9281
- return /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(
9578
+ return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
9282
9579
  IconButton_default,
9283
9580
  {
9284
- icon: /* @__PURE__ */ (0, import_jsx_runtime46.jsx)(import_phosphor_react21.DownloadSimple, { size: 24 }),
9581
+ icon: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(import_phosphor_react21.DownloadSimple, { size: 24 }),
9285
9582
  onClick: handleDownload,
9286
9583
  disabled: disabled || isDownloading,
9287
9584
  "aria-label": (() => {
@@ -9302,7 +9599,7 @@ var DownloadButton = ({
9302
9599
  var DownloadButton_default = DownloadButton;
9303
9600
 
9304
9601
  // src/components/VideoPlayer/VideoPlayer.tsx
9305
- var import_jsx_runtime47 = require("react/jsx-runtime");
9602
+ var import_jsx_runtime49 = require("react/jsx-runtime");
9306
9603
  var CONTROLS_HIDE_TIMEOUT = 3e3;
9307
9604
  var LEAVE_HIDE_TIMEOUT = 1e3;
9308
9605
  var INIT_DELAY = 100;
@@ -9318,7 +9615,7 @@ var ProgressBar2 = ({
9318
9615
  progressPercentage,
9319
9616
  onSeek,
9320
9617
  className = "px-4 pb-2"
9321
- }) => /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className, children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9618
+ }) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9322
9619
  "input",
9323
9620
  {
9324
9621
  type: "range",
@@ -9340,17 +9637,17 @@ var VolumeControls = ({
9340
9637
  onToggleMute,
9341
9638
  iconSize = 24,
9342
9639
  showSlider = true
9343
- }) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex items-center gap-2", children: [
9344
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9640
+ }) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-2", children: [
9641
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9345
9642
  IconButton_default,
9346
9643
  {
9347
- icon: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.SpeakerHigh, { size: iconSize }),
9644
+ icon: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.SpeakerHigh, { size: iconSize }),
9348
9645
  onClick: onToggleMute,
9349
9646
  "aria-label": isMuted ? "Unmute" : "Mute",
9350
9647
  className: "!bg-transparent !text-white hover:!bg-white/20"
9351
9648
  }
9352
9649
  ),
9353
- showSlider && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9650
+ showSlider && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9354
9651
  "input",
9355
9652
  {
9356
9653
  type: "range",
@@ -9375,9 +9672,9 @@ var SpeedMenu = ({
9375
9672
  iconSize = 24,
9376
9673
  isTinyMobile = false
9377
9674
  }) => {
9378
- const buttonRef = (0, import_react29.useRef)(null);
9379
- const speedMenuContainerRef = (0, import_react29.useRef)(null);
9380
- const speedMenuRef = (0, import_react29.useRef)(null);
9675
+ const buttonRef = (0, import_react30.useRef)(null);
9676
+ const speedMenuContainerRef = (0, import_react30.useRef)(null);
9677
+ const speedMenuRef = (0, import_react30.useRef)(null);
9381
9678
  const getMenuPosition = () => {
9382
9679
  if (!buttonRef.current) return { top: 0, left: 0 };
9383
9680
  const rect = buttonRef.current.getBoundingClientRect();
@@ -9391,7 +9688,7 @@ var SpeedMenu = ({
9391
9688
  };
9392
9689
  };
9393
9690
  const position = getMenuPosition();
9394
- (0, import_react29.useEffect)(() => {
9691
+ (0, import_react30.useEffect)(() => {
9395
9692
  const handleClickOutside = (event) => {
9396
9693
  const target = event.target;
9397
9694
  const isOutsideContainer = speedMenuContainerRef.current && !speedMenuContainerRef.current.contains(target);
@@ -9407,7 +9704,7 @@ var SpeedMenu = ({
9407
9704
  document.removeEventListener("mousedown", handleClickOutside);
9408
9705
  };
9409
9706
  }, [showSpeedMenu, onToggleMenu]);
9410
- const menuContent = /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9707
+ const menuContent = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9411
9708
  "div",
9412
9709
  {
9413
9710
  ref: speedMenuRef,
@@ -9418,7 +9715,7 @@ var SpeedMenu = ({
9418
9715
  top: `${position.top}px`,
9419
9716
  left: `${position.left}px`
9420
9717
  },
9421
- children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
9718
+ children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9422
9719
  "button",
9423
9720
  {
9424
9721
  role: "menuitemradio",
@@ -9435,12 +9732,12 @@ var SpeedMenu = ({
9435
9732
  }
9436
9733
  );
9437
9734
  const portalContent = showSpeedMenu && globalThis.window !== void 0 && globalThis.document !== void 0 && !!globalThis.document?.body ? (0, import_react_dom.createPortal)(menuContent, globalThis.document.body) : null;
9438
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "relative", ref: speedMenuContainerRef, children: [
9439
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
9735
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "relative", ref: speedMenuContainerRef, children: [
9736
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9440
9737
  IconButton_default,
9441
9738
  {
9442
9739
  ref: buttonRef,
9443
- icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.DotsThreeVertical, { size: iconSize }),
9740
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.DotsThreeVertical, { size: iconSize }),
9444
9741
  onClick: onToggleMenu,
9445
9742
  "aria-label": "Playback speed",
9446
9743
  "aria-haspopup": "menu",
@@ -9470,28 +9767,28 @@ var VideoPlayer = ({
9470
9767
  onDownloadComplete,
9471
9768
  onDownloadError
9472
9769
  }) => {
9473
- const videoRef = (0, import_react29.useRef)(null);
9770
+ const videoRef = (0, import_react30.useRef)(null);
9474
9771
  const { isUltraSmallMobile, isTinyMobile } = useMobile();
9475
- const [isPlaying, setIsPlaying] = (0, import_react29.useState)(false);
9476
- const [currentTime, setCurrentTime] = (0, import_react29.useState)(0);
9477
- const [duration, setDuration] = (0, import_react29.useState)(0);
9478
- const [isMuted, setIsMuted] = (0, import_react29.useState)(false);
9479
- const [volume, setVolume] = (0, import_react29.useState)(1);
9480
- const [isFullscreen, setIsFullscreen] = (0, import_react29.useState)(false);
9481
- const [showControls, setShowControls] = (0, import_react29.useState)(true);
9482
- const [hasCompleted, setHasCompleted] = (0, import_react29.useState)(false);
9483
- const [showCaptions, setShowCaptions] = (0, import_react29.useState)(false);
9484
- const [subtitlesValidation, setSubtitlesValidation] = (0, import_react29.useState)("idle");
9485
- (0, import_react29.useEffect)(() => {
9772
+ const [isPlaying, setIsPlaying] = (0, import_react30.useState)(false);
9773
+ const [currentTime, setCurrentTime] = (0, import_react30.useState)(0);
9774
+ const [duration, setDuration] = (0, import_react30.useState)(0);
9775
+ const [isMuted, setIsMuted] = (0, import_react30.useState)(false);
9776
+ const [volume, setVolume] = (0, import_react30.useState)(1);
9777
+ const [isFullscreen, setIsFullscreen] = (0, import_react30.useState)(false);
9778
+ const [showControls, setShowControls] = (0, import_react30.useState)(true);
9779
+ const [hasCompleted, setHasCompleted] = (0, import_react30.useState)(false);
9780
+ const [showCaptions, setShowCaptions] = (0, import_react30.useState)(false);
9781
+ const [subtitlesValidation, setSubtitlesValidation] = (0, import_react30.useState)("idle");
9782
+ (0, import_react30.useEffect)(() => {
9486
9783
  setHasCompleted(false);
9487
9784
  }, [src]);
9488
- const [playbackRate, setPlaybackRate] = (0, import_react29.useState)(1);
9489
- const [showSpeedMenu, setShowSpeedMenu] = (0, import_react29.useState)(false);
9490
- const lastSaveTimeRef = (0, import_react29.useRef)(0);
9491
- const trackRef = (0, import_react29.useRef)(null);
9492
- const controlsTimeoutRef = (0, import_react29.useRef)(null);
9493
- const lastMousePositionRef = (0, import_react29.useRef)({ x: 0, y: 0 });
9494
- const isUserInteracting = (0, import_react29.useCallback)(() => {
9785
+ const [playbackRate, setPlaybackRate] = (0, import_react30.useState)(1);
9786
+ const [showSpeedMenu, setShowSpeedMenu] = (0, import_react30.useState)(false);
9787
+ const lastSaveTimeRef = (0, import_react30.useRef)(0);
9788
+ const trackRef = (0, import_react30.useRef)(null);
9789
+ const controlsTimeoutRef = (0, import_react30.useRef)(null);
9790
+ const lastMousePositionRef = (0, import_react30.useRef)({ x: 0, y: 0 });
9791
+ const isUserInteracting = (0, import_react30.useCallback)(() => {
9495
9792
  if (showSpeedMenu) {
9496
9793
  return true;
9497
9794
  }
@@ -9508,13 +9805,13 @@ var VideoPlayer = ({
9508
9805
  }
9509
9806
  return false;
9510
9807
  }, [showSpeedMenu]);
9511
- const clearControlsTimeout = (0, import_react29.useCallback)(() => {
9808
+ const clearControlsTimeout = (0, import_react30.useCallback)(() => {
9512
9809
  if (controlsTimeoutRef.current) {
9513
9810
  clearTimeout(controlsTimeoutRef.current);
9514
9811
  controlsTimeoutRef.current = null;
9515
9812
  }
9516
9813
  }, []);
9517
- const showControlsWithTimer = (0, import_react29.useCallback)(() => {
9814
+ const showControlsWithTimer = (0, import_react30.useCallback)(() => {
9518
9815
  setShowControls(true);
9519
9816
  clearControlsTimeout();
9520
9817
  if (isFullscreen) {
@@ -9529,7 +9826,7 @@ var VideoPlayer = ({
9529
9826
  }, CONTROLS_HIDE_TIMEOUT);
9530
9827
  }
9531
9828
  }, [isFullscreen, isPlaying, clearControlsTimeout]);
9532
- const handleMouseMove = (0, import_react29.useCallback)(
9829
+ const handleMouseMove = (0, import_react30.useCallback)(
9533
9830
  (event) => {
9534
9831
  const currentX = event.clientX;
9535
9832
  const currentY = event.clientY;
@@ -9542,10 +9839,10 @@ var VideoPlayer = ({
9542
9839
  },
9543
9840
  [showControlsWithTimer]
9544
9841
  );
9545
- const handleMouseEnter = (0, import_react29.useCallback)(() => {
9842
+ const handleMouseEnter = (0, import_react30.useCallback)(() => {
9546
9843
  showControlsWithTimer();
9547
9844
  }, [showControlsWithTimer]);
9548
- const handleMouseLeave = (0, import_react29.useCallback)(() => {
9845
+ const handleMouseLeave = (0, import_react30.useCallback)(() => {
9549
9846
  const userInteracting = isUserInteracting();
9550
9847
  clearControlsTimeout();
9551
9848
  if (!isFullscreen && !userInteracting) {
@@ -9554,13 +9851,13 @@ var VideoPlayer = ({
9554
9851
  }, LEAVE_HIDE_TIMEOUT);
9555
9852
  }
9556
9853
  }, [isFullscreen, clearControlsTimeout, isUserInteracting]);
9557
- (0, import_react29.useEffect)(() => {
9854
+ (0, import_react30.useEffect)(() => {
9558
9855
  if (videoRef.current) {
9559
9856
  videoRef.current.volume = volume;
9560
9857
  videoRef.current.muted = isMuted;
9561
9858
  }
9562
9859
  }, [volume, isMuted]);
9563
- (0, import_react29.useEffect)(() => {
9860
+ (0, import_react30.useEffect)(() => {
9564
9861
  const video = videoRef.current;
9565
9862
  if (!video) return;
9566
9863
  const onPlay = () => setIsPlaying(true);
@@ -9575,13 +9872,13 @@ var VideoPlayer = ({
9575
9872
  video.removeEventListener("ended", onEnded);
9576
9873
  };
9577
9874
  }, []);
9578
- (0, import_react29.useEffect)(() => {
9875
+ (0, import_react30.useEffect)(() => {
9579
9876
  const video = videoRef.current;
9580
9877
  if (!video) return;
9581
9878
  video.setAttribute("playsinline", "");
9582
9879
  video.setAttribute("webkit-playsinline", "");
9583
9880
  }, []);
9584
- (0, import_react29.useEffect)(() => {
9881
+ (0, import_react30.useEffect)(() => {
9585
9882
  if (isPlaying) {
9586
9883
  showControlsWithTimer();
9587
9884
  } else {
@@ -9593,7 +9890,7 @@ var VideoPlayer = ({
9593
9890
  }
9594
9891
  }
9595
9892
  }, [isPlaying, isFullscreen, showControlsWithTimer, clearControlsTimeout]);
9596
- (0, import_react29.useEffect)(() => {
9893
+ (0, import_react30.useEffect)(() => {
9597
9894
  const video = videoRef.current;
9598
9895
  if (!video) return;
9599
9896
  const handleFullscreenChange = () => {
@@ -9628,7 +9925,7 @@ var VideoPlayer = ({
9628
9925
  );
9629
9926
  };
9630
9927
  }, [showControlsWithTimer]);
9631
- (0, import_react29.useEffect)(() => {
9928
+ (0, import_react30.useEffect)(() => {
9632
9929
  const init = () => {
9633
9930
  if (!isFullscreen) {
9634
9931
  showControlsWithTimer();
@@ -9650,7 +9947,7 @@ var VideoPlayer = ({
9650
9947
  };
9651
9948
  }
9652
9949
  }, []);
9653
- const getInitialTime = (0, import_react29.useCallback)(() => {
9950
+ const getInitialTime = (0, import_react30.useCallback)(() => {
9654
9951
  if (!autoSave || !storageKey) {
9655
9952
  return Number.isFinite(initialTime) && initialTime >= 0 ? initialTime : void 0;
9656
9953
  }
@@ -9663,14 +9960,14 @@ var VideoPlayer = ({
9663
9960
  if (hasValidSaved) return saved;
9664
9961
  return void 0;
9665
9962
  }, [autoSave, storageKey, src, initialTime]);
9666
- (0, import_react29.useEffect)(() => {
9963
+ (0, import_react30.useEffect)(() => {
9667
9964
  const start = getInitialTime();
9668
9965
  if (start !== void 0 && videoRef.current) {
9669
9966
  videoRef.current.currentTime = start;
9670
9967
  setCurrentTime(start);
9671
9968
  }
9672
9969
  }, [getInitialTime]);
9673
- const saveProgress = (0, import_react29.useCallback)(
9970
+ const saveProgress = (0, import_react30.useCallback)(
9674
9971
  (time) => {
9675
9972
  if (!autoSave || !storageKey) return;
9676
9973
  const now = Date.now();
@@ -9681,7 +9978,7 @@ var VideoPlayer = ({
9681
9978
  },
9682
9979
  [autoSave, storageKey, src]
9683
9980
  );
9684
- const togglePlayPause = (0, import_react29.useCallback)(async () => {
9981
+ const togglePlayPause = (0, import_react30.useCallback)(async () => {
9685
9982
  const video = videoRef.current;
9686
9983
  if (!video) return;
9687
9984
  if (!video.paused) {
@@ -9693,7 +9990,7 @@ var VideoPlayer = ({
9693
9990
  } catch {
9694
9991
  }
9695
9992
  }, []);
9696
- const handleVolumeChange = (0, import_react29.useCallback)(
9993
+ const handleVolumeChange = (0, import_react30.useCallback)(
9697
9994
  (newVolume) => {
9698
9995
  const video = videoRef.current;
9699
9996
  if (!video) return;
@@ -9712,7 +10009,7 @@ var VideoPlayer = ({
9712
10009
  },
9713
10010
  [isMuted]
9714
10011
  );
9715
- const toggleMute = (0, import_react29.useCallback)(() => {
10012
+ const toggleMute = (0, import_react30.useCallback)(() => {
9716
10013
  const video = videoRef.current;
9717
10014
  if (!video) return;
9718
10015
  if (isMuted) {
@@ -9726,20 +10023,20 @@ var VideoPlayer = ({
9726
10023
  setIsMuted(true);
9727
10024
  }
9728
10025
  }, [isMuted, volume]);
9729
- const handleSeek = (0, import_react29.useCallback)((newTime) => {
10026
+ const handleSeek = (0, import_react30.useCallback)((newTime) => {
9730
10027
  const video = videoRef.current;
9731
10028
  if (video) {
9732
10029
  video.currentTime = newTime;
9733
10030
  }
9734
10031
  }, []);
9735
- const isSafariIOS = (0, import_react29.useCallback)(() => {
10032
+ const isSafariIOS = (0, import_react30.useCallback)(() => {
9736
10033
  const ua = navigator.userAgent;
9737
10034
  const isIOS = /iPad|iPhone|iPod/.test(ua);
9738
10035
  const isWebKit = /WebKit/.test(ua);
9739
10036
  const isNotChrome = !/CriOS|Chrome/.test(ua);
9740
10037
  return isIOS && isWebKit && isNotChrome;
9741
10038
  }, []);
9742
- const toggleFullscreen = (0, import_react29.useCallback)(() => {
10039
+ const toggleFullscreen = (0, import_react30.useCallback)(() => {
9743
10040
  const video = videoRef.current;
9744
10041
  const container = video?.parentElement;
9745
10042
  if (!video || !container) return;
@@ -9756,24 +10053,24 @@ var VideoPlayer = ({
9756
10053
  document.exitFullscreen();
9757
10054
  }
9758
10055
  }, [isFullscreen, isSafariIOS]);
9759
- const handleSpeedChange = (0, import_react29.useCallback)((speed) => {
10056
+ const handleSpeedChange = (0, import_react30.useCallback)((speed) => {
9760
10057
  if (videoRef.current) {
9761
10058
  videoRef.current.playbackRate = speed;
9762
10059
  setPlaybackRate(speed);
9763
10060
  setShowSpeedMenu(false);
9764
10061
  }
9765
10062
  }, []);
9766
- const toggleSpeedMenu = (0, import_react29.useCallback)(() => {
10063
+ const toggleSpeedMenu = (0, import_react30.useCallback)(() => {
9767
10064
  setShowSpeedMenu(!showSpeedMenu);
9768
10065
  }, [showSpeedMenu]);
9769
- const toggleCaptions = (0, import_react29.useCallback)(() => {
10066
+ const toggleCaptions = (0, import_react30.useCallback)(() => {
9770
10067
  if (!trackRef.current?.track || !subtitles || subtitlesValidation !== "valid")
9771
10068
  return;
9772
10069
  const newShowCaptions = !showCaptions;
9773
10070
  setShowCaptions(newShowCaptions);
9774
10071
  trackRef.current.track.mode = newShowCaptions ? "showing" : "hidden";
9775
10072
  }, [showCaptions, subtitles, subtitlesValidation]);
9776
- const checkVideoCompletion = (0, import_react29.useCallback)(
10073
+ const checkVideoCompletion = (0, import_react30.useCallback)(
9777
10074
  (progressPercent) => {
9778
10075
  if (progressPercent >= 95 && !hasCompleted) {
9779
10076
  setHasCompleted(true);
@@ -9782,7 +10079,7 @@ var VideoPlayer = ({
9782
10079
  },
9783
10080
  [hasCompleted, onVideoComplete]
9784
10081
  );
9785
- const handleTimeUpdate = (0, import_react29.useCallback)(() => {
10082
+ const handleTimeUpdate = (0, import_react30.useCallback)(() => {
9786
10083
  const video = videoRef.current;
9787
10084
  if (!video) return;
9788
10085
  const current = video.currentTime;
@@ -9795,12 +10092,12 @@ var VideoPlayer = ({
9795
10092
  checkVideoCompletion(progressPercent);
9796
10093
  }
9797
10094
  }, [duration, saveProgress, onTimeUpdate, onProgress, checkVideoCompletion]);
9798
- const handleLoadedMetadata = (0, import_react29.useCallback)(() => {
10095
+ const handleLoadedMetadata = (0, import_react30.useCallback)(() => {
9799
10096
  if (videoRef.current) {
9800
10097
  setDuration(videoRef.current.duration);
9801
10098
  }
9802
10099
  }, []);
9803
- (0, import_react29.useEffect)(() => {
10100
+ (0, import_react30.useEffect)(() => {
9804
10101
  const controller = new AbortController();
9805
10102
  const validateSubtitles = async () => {
9806
10103
  if (!subtitles) {
@@ -9847,12 +10144,12 @@ var VideoPlayer = ({
9847
10144
  controller.abort();
9848
10145
  };
9849
10146
  }, [subtitles]);
9850
- (0, import_react29.useEffect)(() => {
10147
+ (0, import_react30.useEffect)(() => {
9851
10148
  if (trackRef.current?.track) {
9852
10149
  trackRef.current.track.mode = showCaptions && subtitles && subtitlesValidation === "valid" ? "showing" : "hidden";
9853
10150
  }
9854
10151
  }, [subtitles, showCaptions, subtitlesValidation]);
9855
- (0, import_react29.useEffect)(() => {
10152
+ (0, import_react30.useEffect)(() => {
9856
10153
  const handleVisibilityChange = () => {
9857
10154
  if (document.hidden && isPlaying && videoRef.current) {
9858
10155
  videoRef.current.pause();
@@ -9874,54 +10171,54 @@ var VideoPlayer = ({
9874
10171
  };
9875
10172
  }, [isPlaying, clearControlsTimeout]);
9876
10173
  const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
9877
- const getIconSize2 = (0, import_react29.useCallback)(() => {
10174
+ const getIconSize2 = (0, import_react30.useCallback)(() => {
9878
10175
  if (isTinyMobile) return 18;
9879
10176
  if (isUltraSmallMobile) return 20;
9880
10177
  return 24;
9881
10178
  }, [isTinyMobile, isUltraSmallMobile]);
9882
- const getControlsPadding = (0, import_react29.useCallback)(() => {
10179
+ const getControlsPadding = (0, import_react30.useCallback)(() => {
9883
10180
  if (isTinyMobile) return "px-2 pb-2 pt-1";
9884
10181
  if (isUltraSmallMobile) return "px-3 pb-3 pt-1";
9885
10182
  return "px-4 pb-4";
9886
10183
  }, [isTinyMobile, isUltraSmallMobile]);
9887
- const getControlsGap = (0, import_react29.useCallback)(() => {
10184
+ const getControlsGap = (0, import_react30.useCallback)(() => {
9888
10185
  if (isTinyMobile) return "gap-1";
9889
10186
  if (isUltraSmallMobile) return "gap-2";
9890
10187
  return "gap-4";
9891
10188
  }, [isTinyMobile, isUltraSmallMobile]);
9892
- const getProgressBarPadding = (0, import_react29.useCallback)(() => {
10189
+ const getProgressBarPadding = (0, import_react30.useCallback)(() => {
9893
10190
  if (isTinyMobile) return "px-2 pb-1";
9894
10191
  if (isUltraSmallMobile) return "px-3 pb-1";
9895
10192
  return "px-4 pb-2";
9896
10193
  }, [isTinyMobile, isUltraSmallMobile]);
9897
- const getCenterPlayButtonPosition = (0, import_react29.useCallback)(() => {
10194
+ const getCenterPlayButtonPosition = (0, import_react30.useCallback)(() => {
9898
10195
  if (isTinyMobile) return "items-center justify-center -translate-y-12";
9899
10196
  if (isUltraSmallMobile) return "items-center justify-center -translate-y-8";
9900
10197
  return "items-center justify-center";
9901
10198
  }, [isTinyMobile, isUltraSmallMobile]);
9902
- const getTopControlsOpacity = (0, import_react29.useCallback)(() => {
10199
+ const getTopControlsOpacity = (0, import_react30.useCallback)(() => {
9903
10200
  return showControls ? "opacity-100" : "opacity-0";
9904
10201
  }, [showControls]);
9905
- const getBottomControlsOpacity = (0, import_react29.useCallback)(() => {
10202
+ const getBottomControlsOpacity = (0, import_react30.useCallback)(() => {
9906
10203
  return showControls ? "opacity-100" : "opacity-0";
9907
10204
  }, [showControls]);
9908
- const seekBackward = (0, import_react29.useCallback)(() => {
10205
+ const seekBackward = (0, import_react30.useCallback)(() => {
9909
10206
  if (videoRef.current) {
9910
10207
  videoRef.current.currentTime -= 10;
9911
10208
  }
9912
10209
  }, []);
9913
- const seekForward = (0, import_react29.useCallback)(() => {
10210
+ const seekForward = (0, import_react30.useCallback)(() => {
9914
10211
  if (videoRef.current) {
9915
10212
  videoRef.current.currentTime += 10;
9916
10213
  }
9917
10214
  }, []);
9918
- const increaseVolume = (0, import_react29.useCallback)(() => {
10215
+ const increaseVolume = (0, import_react30.useCallback)(() => {
9919
10216
  handleVolumeChange(Math.min(100, volume * 100 + 10));
9920
10217
  }, [handleVolumeChange, volume]);
9921
- const decreaseVolume = (0, import_react29.useCallback)(() => {
10218
+ const decreaseVolume = (0, import_react30.useCallback)(() => {
9922
10219
  handleVolumeChange(Math.max(0, volume * 100 - 10));
9923
10220
  }, [handleVolumeChange, volume]);
9924
- const handleVideoKeyDown = (0, import_react29.useCallback)(
10221
+ const handleVideoKeyDown = (0, import_react30.useCallback)(
9925
10222
  (e) => {
9926
10223
  if (!e.key) return;
9927
10224
  e.stopPropagation();
@@ -9956,10 +10253,10 @@ var VideoPlayer = ({
9956
10253
  ]
9957
10254
  );
9958
10255
  const groupedSubTitleValid = subtitles && subtitlesValidation === "valid";
9959
- return /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("flex flex-col", className), children: [
9960
- (title || subtitleText) && /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
9961
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: "flex flex-col gap-1", children: [
9962
- title && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10256
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: cn("flex flex-col", className), children: [
10257
+ (title || subtitleText) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
10258
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex flex-col gap-1", children: [
10259
+ title && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9963
10260
  Text_default,
9964
10261
  {
9965
10262
  as: "h2",
@@ -9970,7 +10267,7 @@ var VideoPlayer = ({
9970
10267
  children: title
9971
10268
  }
9972
10269
  ),
9973
- subtitleText && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10270
+ subtitleText && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9974
10271
  Text_default,
9975
10272
  {
9976
10273
  as: "p",
@@ -9982,7 +10279,7 @@ var VideoPlayer = ({
9982
10279
  }
9983
10280
  )
9984
10281
  ] }),
9985
- showDownloadButton && downloadContent && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10282
+ showDownloadButton && downloadContent && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
9986
10283
  DownloadButton_default,
9987
10284
  {
9988
10285
  content: downloadContent,
@@ -9994,7 +10291,7 @@ var VideoPlayer = ({
9994
10291
  }
9995
10292
  )
9996
10293
  ] }),
9997
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
10294
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
9998
10295
  "section",
9999
10296
  {
10000
10297
  className: cn(
@@ -10009,7 +10306,7 @@ var VideoPlayer = ({
10009
10306
  onTouchStart: handleMouseEnter,
10010
10307
  onMouseLeave: handleMouseLeave,
10011
10308
  children: [
10012
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10309
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10013
10310
  "video",
10014
10311
  {
10015
10312
  ref: videoRef,
@@ -10024,7 +10321,7 @@ var VideoPlayer = ({
10024
10321
  onKeyDown: handleVideoKeyDown,
10025
10322
  tabIndex: 0,
10026
10323
  "aria-label": title ? `Video: ${title}` : "Video player",
10027
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10324
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10028
10325
  "track",
10029
10326
  {
10030
10327
  ref: trackRef,
@@ -10037,17 +10334,17 @@ var VideoPlayer = ({
10037
10334
  )
10038
10335
  }
10039
10336
  ),
10040
- !isPlaying && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10337
+ !isPlaying && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10041
10338
  "div",
10042
10339
  {
10043
10340
  className: cn(
10044
10341
  "absolute inset-0 flex bg-black/30 transition-opacity",
10045
10342
  getCenterPlayButtonPosition()
10046
10343
  ),
10047
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10344
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10048
10345
  IconButton_default,
10049
10346
  {
10050
- icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.Play, { size: 32, weight: "regular", className: "ml-1" }),
10347
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.Play, { size: 32, weight: "regular", className: "ml-1" }),
10051
10348
  onClick: togglePlayPause,
10052
10349
  "aria-label": "Play video",
10053
10350
  className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
@@ -10055,17 +10352,17 @@ var VideoPlayer = ({
10055
10352
  )
10056
10353
  }
10057
10354
  ),
10058
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10355
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10059
10356
  "div",
10060
10357
  {
10061
10358
  className: cn(
10062
10359
  "absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
10063
10360
  getTopControlsOpacity()
10064
10361
  ),
10065
- children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10362
+ children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10066
10363
  IconButton_default,
10067
10364
  {
10068
- icon: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.ArrowsOutSimple, { size: 24 }),
10365
+ icon: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.ArrowsOutSimple, { size: 24 }),
10069
10366
  onClick: toggleFullscreen,
10070
10367
  "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
10071
10368
  className: "!bg-transparent !text-white hover:!bg-white/20"
@@ -10073,7 +10370,7 @@ var VideoPlayer = ({
10073
10370
  ) })
10074
10371
  }
10075
10372
  ),
10076
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
10373
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10077
10374
  "div",
10078
10375
  {
10079
10376
  className: cn(
@@ -10081,7 +10378,7 @@ var VideoPlayer = ({
10081
10378
  getBottomControlsOpacity()
10082
10379
  ),
10083
10380
  children: [
10084
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10381
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10085
10382
  ProgressBar2,
10086
10383
  {
10087
10384
  currentTime,
@@ -10091,7 +10388,7 @@ var VideoPlayer = ({
10091
10388
  className: getProgressBarPadding()
10092
10389
  }
10093
10390
  ),
10094
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(
10391
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
10095
10392
  "div",
10096
10393
  {
10097
10394
  className: cn(
@@ -10099,17 +10396,17 @@ var VideoPlayer = ({
10099
10396
  getControlsPadding()
10100
10397
  ),
10101
10398
  children: [
10102
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)("div", { className: cn("flex items-center", getControlsGap()), children: [
10103
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10399
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: cn("flex items-center", getControlsGap()), children: [
10400
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10104
10401
  IconButton_default,
10105
10402
  {
10106
- icon: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.Pause, { size: getIconSize2() }) : /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.Play, { size: getIconSize2() }),
10403
+ icon: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.Pause, { size: getIconSize2() }) : /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.Play, { size: getIconSize2() }),
10107
10404
  onClick: togglePlayPause,
10108
10405
  "aria-label": isPlaying ? "Pause" : "Play",
10109
10406
  className: "!bg-transparent !text-white hover:!bg-white/20"
10110
10407
  }
10111
10408
  ),
10112
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10409
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10113
10410
  VolumeControls,
10114
10411
  {
10115
10412
  volume,
@@ -10120,10 +10417,10 @@ var VideoPlayer = ({
10120
10417
  showSlider: !isUltraSmallMobile
10121
10418
  }
10122
10419
  ),
10123
- groupedSubTitleValid && /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10420
+ groupedSubTitleValid && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10124
10421
  IconButton_default,
10125
10422
  {
10126
- icon: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(import_phosphor_react22.ClosedCaptioning, { size: getIconSize2() }),
10423
+ icon: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react22.ClosedCaptioning, { size: getIconSize2() }),
10127
10424
  onClick: toggleCaptions,
10128
10425
  "aria-label": showCaptions ? "Hide captions" : "Show captions",
10129
10426
  className: cn(
@@ -10132,13 +10429,13 @@ var VideoPlayer = ({
10132
10429
  )
10133
10430
  }
10134
10431
  ),
10135
- /* @__PURE__ */ (0, import_jsx_runtime47.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
10432
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
10136
10433
  formatTime(currentTime),
10137
10434
  " / ",
10138
10435
  formatTime(duration)
10139
10436
  ] })
10140
10437
  ] }),
10141
- /* @__PURE__ */ (0, import_jsx_runtime47.jsx)("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime47.jsx)(
10438
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
10142
10439
  SpeedMenu,
10143
10440
  {
10144
10441
  showSpeedMenu,
@@ -10164,9 +10461,9 @@ var VideoPlayer = ({
10164
10461
  var VideoPlayer_default = VideoPlayer;
10165
10462
 
10166
10463
  // src/components/Whiteboard/Whiteboard.tsx
10167
- var import_react30 = require("react");
10464
+ var import_react31 = require("react");
10168
10465
  var import_phosphor_react23 = require("phosphor-react");
10169
- var import_jsx_runtime48 = require("react/jsx-runtime");
10466
+ var import_jsx_runtime50 = require("react/jsx-runtime");
10170
10467
  var IMAGE_WIDTH = 225;
10171
10468
  var IMAGE_HEIGHT = 90;
10172
10469
  var Whiteboard = ({
@@ -10177,8 +10474,8 @@ var Whiteboard = ({
10177
10474
  imagesPerRow = 2,
10178
10475
  ...rest
10179
10476
  }) => {
10180
- const [imageErrors, setImageErrors] = (0, import_react30.useState)(/* @__PURE__ */ new Set());
10181
- const handleDownload = (0, import_react30.useCallback)(
10477
+ const [imageErrors, setImageErrors] = (0, import_react31.useState)(/* @__PURE__ */ new Set());
10478
+ const handleDownload = (0, import_react31.useCallback)(
10182
10479
  (image) => {
10183
10480
  if (onDownload) {
10184
10481
  onDownload(image);
@@ -10195,7 +10492,7 @@ var Whiteboard = ({
10195
10492
  },
10196
10493
  [onDownload]
10197
10494
  );
10198
- const handleImageError = (0, import_react30.useCallback)((imageId) => {
10495
+ const handleImageError = (0, import_react31.useCallback)((imageId) => {
10199
10496
  setImageErrors((prev) => new Set(prev).add(imageId));
10200
10497
  }, []);
10201
10498
  const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
@@ -10204,7 +10501,7 @@ var Whiteboard = ({
10204
10501
  4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
10205
10502
  }[imagesPerRow];
10206
10503
  if (!images || images.length === 0) {
10207
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10504
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10208
10505
  "div",
10209
10506
  {
10210
10507
  className: cn(
@@ -10212,11 +10509,11 @@ var Whiteboard = ({
10212
10509
  className
10213
10510
  ),
10214
10511
  ...rest,
10215
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
10512
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
10216
10513
  }
10217
10514
  );
10218
10515
  }
10219
- return /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10516
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10220
10517
  "div",
10221
10518
  {
10222
10519
  className: cn(
@@ -10224,7 +10521,7 @@ var Whiteboard = ({
10224
10521
  className
10225
10522
  ),
10226
10523
  ...rest,
10227
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(
10524
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
10228
10525
  "div",
10229
10526
  {
10230
10527
  className: "relative group overflow-hidden bg-gray-100 rounded-lg",
@@ -10232,7 +10529,7 @@ var Whiteboard = ({
10232
10529
  width: `${IMAGE_WIDTH}px`
10233
10530
  },
10234
10531
  children: [
10235
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10532
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10236
10533
  "div",
10237
10534
  {
10238
10535
  className: "relative",
@@ -10240,8 +10537,8 @@ var Whiteboard = ({
10240
10537
  width: `${IMAGE_WIDTH}px`,
10241
10538
  height: `${IMAGE_HEIGHT}px`
10242
10539
  },
10243
- children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime48.jsxs)(import_jsx_runtime48.Fragment, { children: [
10244
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10540
+ children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(import_jsx_runtime50.Fragment, { children: [
10541
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10245
10542
  "img",
10246
10543
  {
10247
10544
  src: image.imageUrl,
@@ -10251,18 +10548,18 @@ var Whiteboard = ({
10251
10548
  onError: () => handleImageError(image.id)
10252
10549
  }
10253
10550
  ),
10254
- /* @__PURE__ */ (0, import_jsx_runtime48.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
10551
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
10255
10552
  ] })
10256
10553
  }
10257
10554
  ),
10258
- showDownload && /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10555
+ showDownload && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10259
10556
  "button",
10260
10557
  {
10261
10558
  type: "button",
10262
10559
  onClick: () => handleDownload(image),
10263
10560
  className: "cursor-pointer absolute bottom-3 right-3 flex items-center justify-center bg-black/20 backdrop-blur-sm rounded hover:bg-black/30 transition-colors duration-200 group/button w-6 h-6",
10264
10561
  "aria-label": `Download ${image.title || "imagem"}`,
10265
- children: /* @__PURE__ */ (0, import_jsx_runtime48.jsx)(
10562
+ children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10266
10563
  import_phosphor_react23.ArrowsOut,
10267
10564
  {
10268
10565
  size: 24,
@@ -10282,10 +10579,10 @@ var Whiteboard = ({
10282
10579
  var Whiteboard_default = Whiteboard;
10283
10580
 
10284
10581
  // src/components/Auth/Auth.tsx
10285
- var import_react31 = require("react");
10582
+ var import_react32 = require("react");
10286
10583
  var import_react_router_dom = require("react-router-dom");
10287
- var import_jsx_runtime49 = require("react/jsx-runtime");
10288
- var AuthContext = (0, import_react31.createContext)(void 0);
10584
+ var import_jsx_runtime51 = require("react/jsx-runtime");
10585
+ var AuthContext = (0, import_react32.createContext)(void 0);
10289
10586
  var AuthProvider = ({
10290
10587
  children,
10291
10588
  checkAuthFn,
@@ -10295,12 +10592,12 @@ var AuthProvider = ({
10295
10592
  getSessionFn,
10296
10593
  getTokensFn
10297
10594
  }) => {
10298
- const [authState, setAuthState] = (0, import_react31.useState)({
10595
+ const [authState, setAuthState] = (0, import_react32.useState)({
10299
10596
  isAuthenticated: false,
10300
10597
  isLoading: true,
10301
10598
  ...initialAuthState
10302
10599
  });
10303
- const checkAuth = (0, import_react31.useCallback)(async () => {
10600
+ const checkAuth = (0, import_react32.useCallback)(async () => {
10304
10601
  try {
10305
10602
  setAuthState((prev) => ({ ...prev, isLoading: true }));
10306
10603
  if (!checkAuthFn) {
@@ -10331,7 +10628,7 @@ var AuthProvider = ({
10331
10628
  return false;
10332
10629
  }
10333
10630
  }, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
10334
- const signOut = (0, import_react31.useCallback)(() => {
10631
+ const signOut = (0, import_react32.useCallback)(() => {
10335
10632
  if (signOutFn) {
10336
10633
  signOutFn();
10337
10634
  }
@@ -10343,10 +10640,10 @@ var AuthProvider = ({
10343
10640
  tokens: void 0
10344
10641
  }));
10345
10642
  }, [signOutFn]);
10346
- (0, import_react31.useEffect)(() => {
10643
+ (0, import_react32.useEffect)(() => {
10347
10644
  checkAuth();
10348
10645
  }, [checkAuth]);
10349
- const contextValue = (0, import_react31.useMemo)(
10646
+ const contextValue = (0, import_react32.useMemo)(
10350
10647
  () => ({
10351
10648
  ...authState,
10352
10649
  checkAuth,
@@ -10354,10 +10651,10 @@ var AuthProvider = ({
10354
10651
  }),
10355
10652
  [authState, checkAuth, signOut]
10356
10653
  );
10357
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(AuthContext.Provider, { value: contextValue, children });
10654
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(AuthContext.Provider, { value: contextValue, children });
10358
10655
  };
10359
10656
  var useAuth = () => {
10360
- const context = (0, import_react31.useContext)(AuthContext);
10657
+ const context = (0, import_react32.useContext)(AuthContext);
10361
10658
  if (context === void 0) {
10362
10659
  throw new Error("useAuth deve ser usado dentro de um AuthProvider");
10363
10660
  }
@@ -10370,9 +10667,9 @@ var ProtectedRoute = ({
10370
10667
  additionalCheck
10371
10668
  }) => {
10372
10669
  const { isAuthenticated, isLoading, ...authState } = useAuth();
10373
- const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10670
+ const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10374
10671
  if (isLoading) {
10375
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: loadingComponent || defaultLoadingComponent });
10672
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children: loadingComponent || defaultLoadingComponent });
10376
10673
  }
10377
10674
  if (!isAuthenticated) {
10378
10675
  if (typeof window !== "undefined") {
@@ -10383,12 +10680,12 @@ var ProtectedRoute = ({
10383
10680
  return null;
10384
10681
  }
10385
10682
  }
10386
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10683
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10387
10684
  }
10388
10685
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
10389
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10686
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10390
10687
  }
10391
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children });
10688
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children });
10392
10689
  };
10393
10690
  var PublicRoute = ({
10394
10691
  children,
@@ -10398,15 +10695,15 @@ var PublicRoute = ({
10398
10695
  }) => {
10399
10696
  const { isAuthenticated, isLoading } = useAuth();
10400
10697
  if (checkAuthBeforeRender && isLoading) {
10401
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10698
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
10402
10699
  }
10403
10700
  if (isAuthenticated && redirectIfAuthenticated) {
10404
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10701
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
10405
10702
  }
10406
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children });
10703
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_jsx_runtime51.Fragment, { children });
10407
10704
  };
10408
10705
  var withAuth = (Component, options = {}) => {
10409
- return (props) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(Component, { ...props }) });
10706
+ return (props) => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(Component, { ...props }) });
10410
10707
  };
10411
10708
  var useAuthGuard = (options = {}) => {
10412
10709
  const authState = useAuth();
@@ -10421,7 +10718,7 @@ var useAuthGuard = (options = {}) => {
10421
10718
  var useRouteAuth = (fallbackPath = "/") => {
10422
10719
  const { isAuthenticated, isLoading } = useAuth();
10423
10720
  const location = (0, import_react_router_dom.useLocation)();
10424
- const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
10721
+ const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
10425
10722
  return {
10426
10723
  isAuthenticated,
10427
10724
  isLoading,
@@ -10455,10 +10752,10 @@ var getRootDomain = () => {
10455
10752
  };
10456
10753
 
10457
10754
  // src/components/Accordation/Accordation.tsx
10458
- var import_react32 = require("react");
10755
+ var import_react33 = require("react");
10459
10756
  var import_phosphor_react24 = require("phosphor-react");
10460
- var import_jsx_runtime50 = require("react/jsx-runtime");
10461
- var CardAccordation = (0, import_react32.forwardRef)(
10757
+ var import_jsx_runtime52 = require("react/jsx-runtime");
10758
+ var CardAccordation = (0, import_react33.forwardRef)(
10462
10759
  ({
10463
10760
  trigger,
10464
10761
  children,
@@ -10470,13 +10767,13 @@ var CardAccordation = (0, import_react32.forwardRef)(
10470
10767
  disabled = false,
10471
10768
  ...props
10472
10769
  }, ref) => {
10473
- const [internalExpanded, setInternalExpanded] = (0, import_react32.useState)(defaultExpanded);
10474
- const generatedId = (0, import_react32.useId)();
10770
+ const [internalExpanded, setInternalExpanded] = (0, import_react33.useState)(defaultExpanded);
10771
+ const generatedId = (0, import_react33.useId)();
10475
10772
  const contentId = value ? `accordion-content-${value}` : generatedId;
10476
10773
  const headerId = value ? `accordion-header-${value}` : `${generatedId}-header`;
10477
10774
  const isControlled = controlledExpanded !== void 0;
10478
10775
  const isExpanded = isControlled ? controlledExpanded : internalExpanded;
10479
- (0, import_react32.useEffect)(() => {
10776
+ (0, import_react33.useEffect)(() => {
10480
10777
  if (isControlled) {
10481
10778
  setInternalExpanded(controlledExpanded);
10482
10779
  }
@@ -10496,7 +10793,7 @@ var CardAccordation = (0, import_react32.forwardRef)(
10496
10793
  handleToggle();
10497
10794
  }
10498
10795
  };
10499
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
10796
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
10500
10797
  CardBase,
10501
10798
  {
10502
10799
  ref,
@@ -10506,7 +10803,7 @@ var CardAccordation = (0, import_react32.forwardRef)(
10506
10803
  className: cn("overflow-hidden", className),
10507
10804
  ...props,
10508
10805
  children: [
10509
- /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
10806
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
10510
10807
  "button",
10511
10808
  {
10512
10809
  id: headerId,
@@ -10524,7 +10821,7 @@ var CardAccordation = (0, import_react32.forwardRef)(
10524
10821
  "data-value": value,
10525
10822
  children: [
10526
10823
  trigger,
10527
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10824
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10528
10825
  import_phosphor_react24.CaretRight,
10529
10826
  {
10530
10827
  size: 20,
@@ -10539,7 +10836,7 @@ var CardAccordation = (0, import_react32.forwardRef)(
10539
10836
  ]
10540
10837
  }
10541
10838
  ),
10542
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
10839
+ /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10543
10840
  "section",
10544
10841
  {
10545
10842
  id: contentId,
@@ -10551,7 +10848,7 @@ var CardAccordation = (0, import_react32.forwardRef)(
10551
10848
  ),
10552
10849
  "data-testid": "accordion-content",
10553
10850
  "data-value": value,
10554
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "p-4 pt-0", children })
10851
+ children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "p-4 pt-0", children })
10555
10852
  }
10556
10853
  )
10557
10854
  ]
@@ -10562,9 +10859,9 @@ var CardAccordation = (0, import_react32.forwardRef)(
10562
10859
  CardAccordation.displayName = "CardAccordation";
10563
10860
 
10564
10861
  // src/components/Accordation/AccordionGroup.tsx
10565
- var import_react33 = require("react");
10862
+ var import_react34 = require("react");
10566
10863
  var import_zustand9 = require("zustand");
10567
- var import_jsx_runtime51 = require("react/jsx-runtime");
10864
+ var import_jsx_runtime53 = require("react/jsx-runtime");
10568
10865
  function createAccordionGroupStore(type, initialValue, collapsible) {
10569
10866
  return (0, import_zustand9.create)((set, get) => ({
10570
10867
  type,
@@ -10582,8 +10879,8 @@ function createAccordionGroupStore(type, initialValue, collapsible) {
10582
10879
  }));
10583
10880
  }
10584
10881
  var injectStore6 = (children, store, indexRef, onItemToggle) => {
10585
- return import_react33.Children.map(children, (child) => {
10586
- if (!(0, import_react33.isValidElement)(child)) {
10882
+ return import_react34.Children.map(children, (child) => {
10883
+ if (!(0, import_react34.isValidElement)(child)) {
10587
10884
  return child;
10588
10885
  }
10589
10886
  const typedChild = child;
@@ -10610,16 +10907,16 @@ var injectStore6 = (children, store, indexRef, onItemToggle) => {
10610
10907
  if (displayName === "CardAccordation") {
10611
10908
  newProps.children = processedChildren;
10612
10909
  } else if (processedChildren !== typedChild.props.children) {
10613
- return (0, import_react33.cloneElement)(typedChild, { children: processedChildren });
10910
+ return (0, import_react34.cloneElement)(typedChild, { children: processedChildren });
10614
10911
  }
10615
10912
  }
10616
10913
  if (Object.keys(newProps).length > 0) {
10617
- return (0, import_react33.cloneElement)(typedChild, newProps);
10914
+ return (0, import_react34.cloneElement)(typedChild, newProps);
10618
10915
  }
10619
10916
  return child;
10620
10917
  });
10621
10918
  };
10622
- var AccordionGroup = (0, import_react33.forwardRef)(
10919
+ var AccordionGroup = (0, import_react34.forwardRef)(
10623
10920
  ({
10624
10921
  type = "single",
10625
10922
  defaultValue,
@@ -10630,12 +10927,12 @@ var AccordionGroup = (0, import_react33.forwardRef)(
10630
10927
  className,
10631
10928
  ...props
10632
10929
  }, ref) => {
10633
- const [internalValue, setInternalValue] = (0, import_react33.useState)(
10930
+ const [internalValue, setInternalValue] = (0, import_react34.useState)(
10634
10931
  defaultValue || (type === "single" ? "" : [])
10635
10932
  );
10636
10933
  const isControlled = controlledValue !== void 0;
10637
10934
  const currentValue = isControlled ? controlledValue : internalValue;
10638
- const storeRef = (0, import_react33.useRef)(null);
10935
+ const storeRef = (0, import_react34.useRef)(null);
10639
10936
  if (storeRef.current) {
10640
10937
  storeRef.current.setState((prev) => {
10641
10938
  const nextState = {};
@@ -10655,10 +10952,10 @@ var AccordionGroup = (0, import_react33.forwardRef)(
10655
10952
  );
10656
10953
  }
10657
10954
  const store = storeRef.current;
10658
- (0, import_react33.useEffect)(() => {
10955
+ (0, import_react34.useEffect)(() => {
10659
10956
  store.setState({ value: currentValue });
10660
10957
  }, [currentValue, store]);
10661
- (0, import_react33.useEffect)(() => {
10958
+ (0, import_react34.useEffect)(() => {
10662
10959
  if (!isControlled) {
10663
10960
  setInternalValue((prev) => {
10664
10961
  if (type === "single") {
@@ -10704,15 +11001,15 @@ var AccordionGroup = (0, import_react33.forwardRef)(
10704
11001
  indexRef,
10705
11002
  handleItemToggle
10706
11003
  );
10707
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { ref, className, ...props, children: enhancedChildren });
11004
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { ref, className, ...props, children: enhancedChildren });
10708
11005
  }
10709
11006
  );
10710
11007
  AccordionGroup.displayName = "AccordionGroup";
10711
11008
 
10712
11009
  // src/components/Alternative/Alternative.tsx
10713
11010
  var import_phosphor_react25 = require("phosphor-react");
10714
- var import_react34 = require("react");
10715
- var import_jsx_runtime52 = require("react/jsx-runtime");
11011
+ var import_react35 = require("react");
11012
+ var import_jsx_runtime54 = require("react/jsx-runtime");
10716
11013
  var AlternativesList = ({
10717
11014
  alternatives,
10718
11015
  name,
@@ -10725,9 +11022,9 @@ var AlternativesList = ({
10725
11022
  mode = "interactive",
10726
11023
  selectedValue
10727
11024
  }) => {
10728
- const uniqueId = (0, import_react34.useId)();
11025
+ const uniqueId = (0, import_react35.useId)();
10729
11026
  const groupName = name || `alternatives-${uniqueId}`;
10730
- const [actualValue, setActualValue] = (0, import_react34.useState)(value);
11027
+ const [actualValue, setActualValue] = (0, import_react35.useState)(value);
10731
11028
  const isReadonly = mode === "readonly";
10732
11029
  const getStatusStyles2 = (status, isReadonly2) => {
10733
11030
  const hoverClass = isReadonly2 ? "" : "hover:bg-background-50";
@@ -10743,9 +11040,9 @@ var AlternativesList = ({
10743
11040
  const getStatusBadge2 = (status) => {
10744
11041
  switch (status) {
10745
11042
  case "correct":
10746
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react25.CheckCircle, {}), children: "Resposta correta" });
11043
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react25.CheckCircle, {}), children: "Resposta correta" });
10747
11044
  case "incorrect":
10748
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react25.XCircle, {}), children: "Resposta incorreta" });
11045
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react25.XCircle, {}), children: "Resposta incorreta" });
10749
11046
  default:
10750
11047
  return null;
10751
11048
  }
@@ -10775,10 +11072,10 @@ var AlternativesList = ({
10775
11072
  const renderRadio = () => {
10776
11073
  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"}`;
10777
11074
  const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
10778
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: dotClasses }) });
11075
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: dotClasses }) });
10779
11076
  };
10780
11077
  if (layout === "detailed") {
10781
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11078
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10782
11079
  "div",
10783
11080
  {
10784
11081
  className: cn(
@@ -10786,11 +11083,11 @@ var AlternativesList = ({
10786
11083
  statusStyles,
10787
11084
  alternative.disabled ? "opacity-50" : ""
10788
11085
  ),
10789
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
10790
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
10791
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "mt-1", children: renderRadio() }),
10792
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex-1", children: [
10793
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11086
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
11087
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
11088
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "mt-1", children: renderRadio() }),
11089
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex-1", children: [
11090
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10794
11091
  "p",
10795
11092
  {
10796
11093
  className: cn(
@@ -10800,16 +11097,16 @@ var AlternativesList = ({
10800
11097
  children: alternative.label
10801
11098
  }
10802
11099
  ),
10803
- alternative.description && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
11100
+ alternative.description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10804
11101
  ] })
10805
11102
  ] }),
10806
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
11103
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
10807
11104
  ] })
10808
11105
  },
10809
11106
  alternativeId
10810
11107
  );
10811
11108
  }
10812
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
11109
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10813
11110
  "div",
10814
11111
  {
10815
11112
  className: cn(
@@ -10818,9 +11115,9 @@ var AlternativesList = ({
10818
11115
  alternative.disabled ? "opacity-50" : ""
10819
11116
  ),
10820
11117
  children: [
10821
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
11118
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
10822
11119
  renderRadio(),
10823
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11120
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10824
11121
  "span",
10825
11122
  {
10826
11123
  className: cn(
@@ -10831,14 +11128,14 @@ var AlternativesList = ({
10831
11128
  }
10832
11129
  )
10833
11130
  ] }),
10834
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
11131
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
10835
11132
  ]
10836
11133
  },
10837
11134
  alternativeId
10838
11135
  );
10839
11136
  };
10840
11137
  if (isReadonly) {
10841
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11138
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10842
11139
  "div",
10843
11140
  {
10844
11141
  className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
@@ -10848,7 +11145,7 @@ var AlternativesList = ({
10848
11145
  }
10849
11146
  );
10850
11147
  }
10851
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11148
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10852
11149
  RadioGroup,
10853
11150
  {
10854
11151
  name: groupName,
@@ -10865,7 +11162,7 @@ var AlternativesList = ({
10865
11162
  const statusStyles = getStatusStyles2(alternative.status, false);
10866
11163
  const statusBadge = getStatusBadge2(alternative.status);
10867
11164
  if (layout === "detailed") {
10868
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11165
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10869
11166
  "div",
10870
11167
  {
10871
11168
  className: cn(
@@ -10873,9 +11170,9 @@ var AlternativesList = ({
10873
11170
  statusStyles,
10874
11171
  alternative.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
10875
11172
  ),
10876
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
10877
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
10878
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11173
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
11174
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
11175
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10879
11176
  RadioGroupItem,
10880
11177
  {
10881
11178
  value: alternative.value,
@@ -10884,8 +11181,8 @@ var AlternativesList = ({
10884
11181
  className: "mt-1"
10885
11182
  }
10886
11183
  ),
10887
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex-1", children: [
10888
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11184
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex-1", children: [
11185
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10889
11186
  "label",
10890
11187
  {
10891
11188
  htmlFor: alternativeId,
@@ -10897,16 +11194,16 @@ var AlternativesList = ({
10897
11194
  children: alternative.label
10898
11195
  }
10899
11196
  ),
10900
- alternative.description && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
11197
+ alternative.description && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
10901
11198
  ] })
10902
11199
  ] }),
10903
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
11200
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
10904
11201
  ] })
10905
11202
  },
10906
11203
  alternativeId
10907
11204
  );
10908
11205
  }
10909
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
11206
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10910
11207
  "div",
10911
11208
  {
10912
11209
  className: cn(
@@ -10915,8 +11212,8 @@ var AlternativesList = ({
10915
11212
  alternative.disabled ? "opacity-50 cursor-not-allowed" : ""
10916
11213
  ),
10917
11214
  children: [
10918
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
10919
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11215
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
11216
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10920
11217
  RadioGroupItem,
10921
11218
  {
10922
11219
  value: alternative.value,
@@ -10924,7 +11221,7 @@ var AlternativesList = ({
10924
11221
  disabled: alternative.disabled
10925
11222
  }
10926
11223
  ),
10927
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
11224
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10928
11225
  "label",
10929
11226
  {
10930
11227
  htmlFor: alternativeId,
@@ -10937,7 +11234,7 @@ var AlternativesList = ({
10937
11234
  }
10938
11235
  )
10939
11236
  ] }),
10940
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
11237
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
10941
11238
  ]
10942
11239
  },
10943
11240
  alternativeId
@@ -10946,9 +11243,9 @@ var AlternativesList = ({
10946
11243
  }
10947
11244
  );
10948
11245
  };
10949
- var HeaderAlternative = (0, import_react34.forwardRef)(
11246
+ var HeaderAlternative = (0, import_react35.forwardRef)(
10950
11247
  ({ className, title, subTitle, content, ...props }, ref) => {
10951
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
11248
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10952
11249
  "div",
10953
11250
  {
10954
11251
  ref,
@@ -10958,11 +11255,11 @@ var HeaderAlternative = (0, import_react34.forwardRef)(
10958
11255
  ),
10959
11256
  ...props,
10960
11257
  children: [
10961
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "flex flex-col", children: [
10962
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-950 font-bold text-lg", children: title }),
10963
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-700 text-sm ", children: subTitle })
11258
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { className: "flex flex-col", children: [
11259
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-950 font-bold text-lg", children: title }),
11260
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-700 text-sm ", children: subTitle })
10964
11261
  ] }),
10965
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-950 text-md", children: content })
11262
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-950 text-md", children: content })
10966
11263
  ]
10967
11264
  }
10968
11265
  );
@@ -11012,7 +11309,7 @@ function createZustandAuthAdapter(useAuthStore2) {
11012
11309
  }
11013
11310
 
11014
11311
  // src/components/Auth/useUrlAuthentication.ts
11015
- var import_react35 = require("react");
11312
+ var import_react36 = require("react");
11016
11313
  var import_react_router_dom2 = require("react-router-dom");
11017
11314
  var getAuthParams = (location, extractParams) => {
11018
11315
  const searchParams = new URLSearchParams(location.search);
@@ -11060,8 +11357,8 @@ var handleUserData = (responseData, setUser) => {
11060
11357
  };
11061
11358
  function useUrlAuthentication(options) {
11062
11359
  const location = (0, import_react_router_dom2.useLocation)();
11063
- const processedRef = (0, import_react35.useRef)(false);
11064
- (0, import_react35.useEffect)(() => {
11360
+ const processedRef = (0, import_react36.useRef)(false);
11361
+ (0, import_react36.useEffect)(() => {
11065
11362
  const handleAuthentication = async () => {
11066
11363
  if (processedRef.current) {
11067
11364
  return;
@@ -11132,9 +11429,9 @@ function useUrlAuthentication(options) {
11132
11429
  }
11133
11430
 
11134
11431
  // src/components/Auth/useApiConfig.ts
11135
- var import_react36 = require("react");
11432
+ var import_react37 = require("react");
11136
11433
  function useApiConfig(api) {
11137
- return (0, import_react36.useMemo)(
11434
+ return (0, import_react37.useMemo)(
11138
11435
  () => ({
11139
11436
  get: (endpoint, config) => api.get(endpoint, config)
11140
11437
  }),
@@ -11144,7 +11441,7 @@ function useApiConfig(api) {
11144
11441
 
11145
11442
  // src/components/Quiz/Quiz.tsx
11146
11443
  var import_phosphor_react28 = require("phosphor-react");
11147
- var import_react39 = require("react");
11444
+ var import_react40 = require("react");
11148
11445
 
11149
11446
  // src/components/Quiz/useQuizStore.ts
11150
11447
  var import_zustand10 = require("zustand");
@@ -11754,12 +12051,12 @@ var useQuizStore = (0, import_zustand10.create)()(
11754
12051
  );
11755
12052
 
11756
12053
  // src/components/Quiz/QuizContent.tsx
11757
- var import_react38 = require("react");
12054
+ var import_react39 = require("react");
11758
12055
 
11759
12056
  // src/components/MultipleChoice/MultipleChoice.tsx
11760
- var import_react37 = require("react");
12057
+ var import_react38 = require("react");
11761
12058
  var import_phosphor_react26 = require("phosphor-react");
11762
- var import_jsx_runtime53 = require("react/jsx-runtime");
12059
+ var import_jsx_runtime55 = require("react/jsx-runtime");
11763
12060
  var MultipleChoiceList = ({
11764
12061
  disabled = false,
11765
12062
  className = "",
@@ -11769,16 +12066,16 @@ var MultipleChoiceList = ({
11769
12066
  onHandleSelectedValues,
11770
12067
  mode = "interactive"
11771
12068
  }) => {
11772
- const [actualValue, setActualValue] = (0, import_react37.useState)(selectedValues);
11773
- (0, import_react37.useEffect)(() => {
12069
+ const [actualValue, setActualValue] = (0, import_react38.useState)(selectedValues);
12070
+ (0, import_react38.useEffect)(() => {
11774
12071
  setActualValue(selectedValues);
11775
12072
  }, [selectedValues]);
11776
12073
  const getStatusBadge2 = (status) => {
11777
12074
  switch (status) {
11778
12075
  case "correct":
11779
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react26.CheckCircle, {}), children: "Resposta correta" });
12076
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react26.CheckCircle, {}), children: "Resposta correta" });
11780
12077
  case "incorrect":
11781
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react26.XCircle, {}), children: "Resposta incorreta" });
12078
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react26.XCircle, {}), children: "Resposta incorreta" });
11782
12079
  default:
11783
12080
  return null;
11784
12081
  }
@@ -11799,14 +12096,14 @@ var MultipleChoiceList = ({
11799
12096
  isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
11800
12097
  isDisabled && "opacity-40 cursor-not-allowed"
11801
12098
  );
11802
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react26.Check, { size: 16, weight: "bold" }) });
12099
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react26.Check, { size: 16, weight: "bold" }) });
11803
12100
  };
11804
12101
  if (mode === "readonly") {
11805
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
12102
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
11806
12103
  const isSelected = actualValue?.includes(choice.value) || false;
11807
12104
  const statusStyles = getStatusStyles2(choice.status);
11808
12105
  const statusBadge = getStatusBadge2(choice.status);
11809
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
12106
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11810
12107
  "div",
11811
12108
  {
11812
12109
  className: cn(
@@ -11815,9 +12112,9 @@ var MultipleChoiceList = ({
11815
12112
  choice.disabled ? "opacity-50 cursor-not-allowed" : ""
11816
12113
  ),
11817
12114
  children: [
11818
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
12115
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
11819
12116
  renderVisualCheckbox(isSelected, choice.disabled || disabled),
11820
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12117
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11821
12118
  "span",
11822
12119
  {
11823
12120
  className: cn(
@@ -11829,14 +12126,14 @@ var MultipleChoiceList = ({
11829
12126
  }
11830
12127
  )
11831
12128
  ] }),
11832
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12129
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
11833
12130
  ]
11834
12131
  },
11835
12132
  `readonly-${choice.value}-${i}`
11836
12133
  );
11837
12134
  }) });
11838
12135
  }
11839
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12136
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11840
12137
  "div",
11841
12138
  {
11842
12139
  className: cn(
@@ -11844,7 +12141,7 @@ var MultipleChoiceList = ({
11844
12141
  disabled ? "opacity-50 cursor-not-allowed" : "",
11845
12142
  className
11846
12143
  ),
11847
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12144
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11848
12145
  CheckboxList_default,
11849
12146
  {
11850
12147
  name,
@@ -11854,12 +12151,12 @@ var MultipleChoiceList = ({
11854
12151
  onHandleSelectedValues?.(v);
11855
12152
  },
11856
12153
  disabled,
11857
- children: choices.map((choice, i) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
12154
+ children: choices.map((choice, i) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
11858
12155
  "div",
11859
12156
  {
11860
12157
  className: "flex flex-row gap-2 items-center",
11861
12158
  children: [
11862
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12159
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11863
12160
  CheckboxListItem,
11864
12161
  {
11865
12162
  value: choice.value,
@@ -11867,7 +12164,7 @@ var MultipleChoiceList = ({
11867
12164
  disabled: choice.disabled || disabled
11868
12165
  }
11869
12166
  ),
11870
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
12167
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11871
12168
  "label",
11872
12169
  {
11873
12170
  htmlFor: `interactive-${choice.value}-${i}`,
@@ -11896,13 +12193,13 @@ var import_phosphor_react27 = require("phosphor-react");
11896
12193
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
11897
12194
 
11898
12195
  // src/components/Quiz/QuizContent.tsx
11899
- var import_jsx_runtime54 = require("react/jsx-runtime");
12196
+ var import_jsx_runtime56 = require("react/jsx-runtime");
11900
12197
  var getStatusBadge = (status) => {
11901
12198
  switch (status) {
11902
12199
  case "correct":
11903
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react27.CheckCircle, {}), children: "Resposta correta" });
12200
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react27.CheckCircle, {}), children: "Resposta correta" });
11904
12201
  case "incorrect":
11905
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react27.XCircle, {}), children: "Resposta incorreta" });
12202
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react27.XCircle, {}), children: "Resposta incorreta" });
11906
12203
  default:
11907
12204
  return null;
11908
12205
  }
@@ -11915,13 +12212,13 @@ var getStatusStyles = (variantCorrect) => {
11915
12212
  return "bg-error-background border-error-300";
11916
12213
  }
11917
12214
  };
11918
- var QuizSubTitle = (0, import_react38.forwardRef)(
12215
+ var QuizSubTitle = (0, import_react39.forwardRef)(
11919
12216
  ({ subTitle, ...props }, ref) => {
11920
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
12217
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
11921
12218
  }
11922
12219
  );
11923
- var QuizContainer = (0, import_react38.forwardRef)(({ children, className, ...props }, ref) => {
11924
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12220
+ var QuizContainer = (0, import_react39.forwardRef)(({ children, className, ...props }, ref) => {
12221
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11925
12222
  "div",
11926
12223
  {
11927
12224
  ref,
@@ -11974,10 +12271,10 @@ var QuizAlternative = ({ paddingBottom }) => {
11974
12271
  };
11975
12272
  });
11976
12273
  if (!alternatives)
11977
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
11978
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
11979
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
11980
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12274
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
12275
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12276
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12277
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11981
12278
  AlternativesList,
11982
12279
  {
11983
12280
  mode: variant === "default" ? "interactive" : "readonly",
@@ -12009,15 +12306,15 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
12009
12306
  const currentQuestionResult = getQuestionResultByQuestionId(
12010
12307
  currentQuestion?.id || ""
12011
12308
  );
12012
- const prevSelectedValuesRef = (0, import_react38.useRef)([]);
12013
- const prevQuestionIdRef = (0, import_react38.useRef)("");
12014
- const allCurrentAnswerIds = (0, import_react38.useMemo)(() => {
12309
+ const prevSelectedValuesRef = (0, import_react39.useRef)([]);
12310
+ const prevQuestionIdRef = (0, import_react39.useRef)("");
12311
+ const allCurrentAnswerIds = (0, import_react39.useMemo)(() => {
12015
12312
  return allCurrentAnswers?.map((answer) => answer.optionId) || [];
12016
12313
  }, [allCurrentAnswers]);
12017
- const selectedValues = (0, import_react38.useMemo)(() => {
12314
+ const selectedValues = (0, import_react39.useMemo)(() => {
12018
12315
  return allCurrentAnswerIds?.filter((id) => id !== null) || [];
12019
12316
  }, [allCurrentAnswerIds]);
12020
- const stableSelectedValues = (0, import_react38.useMemo)(() => {
12317
+ const stableSelectedValues = (0, import_react39.useMemo)(() => {
12021
12318
  const currentQuestionId = currentQuestion?.id || "";
12022
12319
  const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
12023
12320
  if (hasQuestionChanged) {
@@ -12041,7 +12338,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
12041
12338
  variant,
12042
12339
  currentQuestionResult?.selectedOptions
12043
12340
  ]);
12044
- const handleSelectedValues = (0, import_react38.useCallback)(
12341
+ const handleSelectedValues = (0, import_react39.useCallback)(
12045
12342
  (values) => {
12046
12343
  if (currentQuestion) {
12047
12344
  selectMultipleAnswer(currentQuestion.id, values);
@@ -12049,7 +12346,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
12049
12346
  },
12050
12347
  [currentQuestion, selectMultipleAnswer]
12051
12348
  );
12052
- const questionKey = (0, import_react38.useMemo)(
12349
+ const questionKey = (0, import_react39.useMemo)(
12053
12350
  () => `question-${currentQuestion?.id || "1"}`,
12054
12351
  [currentQuestion?.id]
12055
12352
  );
@@ -12080,10 +12377,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
12080
12377
  };
12081
12378
  });
12082
12379
  if (!choices)
12083
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
12084
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12085
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12086
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12380
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
12381
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12382
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12383
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12087
12384
  MultipleChoiceList,
12088
12385
  {
12089
12386
  choices,
@@ -12110,14 +12407,14 @@ var QuizDissertative = ({ paddingBottom }) => {
12110
12407
  currentQuestion?.id || ""
12111
12408
  );
12112
12409
  const currentAnswer = getCurrentAnswer();
12113
- const textareaRef = (0, import_react38.useRef)(null);
12410
+ const textareaRef = (0, import_react39.useRef)(null);
12114
12411
  const charLimit = getDissertativeCharLimit();
12115
12412
  const handleAnswerChange = (value) => {
12116
12413
  if (currentQuestion) {
12117
12414
  selectDissertativeAnswer(currentQuestion.id, value);
12118
12415
  }
12119
12416
  };
12120
- const adjustTextareaHeight = (0, import_react38.useCallback)(() => {
12417
+ const adjustTextareaHeight = (0, import_react39.useCallback)(() => {
12121
12418
  if (textareaRef.current) {
12122
12419
  textareaRef.current.style.height = "auto";
12123
12420
  const scrollHeight = textareaRef.current.scrollHeight;
@@ -12127,16 +12424,16 @@ var QuizDissertative = ({ paddingBottom }) => {
12127
12424
  textareaRef.current.style.height = `${newHeight}px`;
12128
12425
  }
12129
12426
  }, []);
12130
- (0, import_react38.useEffect)(() => {
12427
+ (0, import_react39.useEffect)(() => {
12131
12428
  adjustTextareaHeight();
12132
12429
  }, [currentAnswer, adjustTextareaHeight]);
12133
12430
  if (!currentQuestion) {
12134
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
12431
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
12135
12432
  }
12136
12433
  const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
12137
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12138
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
12139
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12434
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12435
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
12436
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12140
12437
  TextArea_default,
12141
12438
  {
12142
12439
  ref: textareaRef,
@@ -12148,10 +12445,10 @@ var QuizDissertative = ({ paddingBottom }) => {
12148
12445
  maxLength: charLimit,
12149
12446
  showCharacterCount: !!charLimit
12150
12447
  }
12151
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
12152
- variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12153
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
12154
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
12448
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
12449
+ variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12450
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
12451
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
12155
12452
  ] })
12156
12453
  ] });
12157
12454
  };
@@ -12177,16 +12474,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
12177
12474
  ];
12178
12475
  const getLetterByIndex = (index) => String.fromCodePoint(97 + index);
12179
12476
  const isDefaultVariant = variant === "default";
12180
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12181
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12182
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12477
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12478
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12479
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12183
12480
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
12184
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12481
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12185
12482
  "section",
12186
12483
  {
12187
12484
  className: "flex flex-col gap-2",
12188
12485
  children: [
12189
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12486
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12190
12487
  "div",
12191
12488
  {
12192
12489
  className: cn(
@@ -12194,20 +12491,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
12194
12491
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
12195
12492
  ),
12196
12493
  children: [
12197
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
12198
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(Select_default, { size: "medium", children: [
12199
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
12200
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(SelectContent, { children: [
12201
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
12202
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectItem, { value: "F", children: "Falso" })
12494
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
12495
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Select_default, { size: "medium", children: [
12496
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
12497
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(SelectContent, { children: [
12498
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
12499
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectItem, { value: "F", children: "Falso" })
12203
12500
  ] })
12204
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
12501
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
12205
12502
  ]
12206
12503
  }
12207
12504
  ),
12208
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
12209
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
12210
- !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
12505
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
12506
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
12507
+ !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
12211
12508
  ] })
12212
12509
  ]
12213
12510
  },
@@ -12268,7 +12565,7 @@ var QuizConnectDots = ({ paddingBottom }) => {
12268
12565
  isCorrect: false
12269
12566
  }
12270
12567
  ];
12271
- const [userAnswers, setUserAnswers] = (0, import_react38.useState)(() => {
12568
+ const [userAnswers, setUserAnswers] = (0, import_react39.useState)(() => {
12272
12569
  if (variant === "result") {
12273
12570
  return mockUserAnswers;
12274
12571
  }
@@ -12297,13 +12594,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
12297
12594
  const assignedDots = new Set(
12298
12595
  userAnswers.map((a) => a.dotOption).filter(Boolean)
12299
12596
  );
12300
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12301
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12302
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12597
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12598
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12599
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
12303
12600
  const answer = userAnswers[index];
12304
12601
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
12305
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("section", { className: "flex flex-col gap-2", children: [
12306
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12602
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("section", { className: "flex flex-col gap-2", children: [
12603
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12307
12604
  "div",
12308
12605
  {
12309
12606
  className: cn(
@@ -12311,30 +12608,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
12311
12608
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
12312
12609
  ),
12313
12610
  children: [
12314
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
12315
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12611
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
12612
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12316
12613
  Select_default,
12317
12614
  {
12318
12615
  size: "medium",
12319
12616
  value: answer.dotOption || void 0,
12320
12617
  onValueChange: (value) => handleSelectDot(index, value),
12321
12618
  children: [
12322
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12323
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectContent, { children: dotsOptions.filter(
12619
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12620
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectContent, { children: dotsOptions.filter(
12324
12621
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
12325
- ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
12622
+ ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
12326
12623
  ]
12327
12624
  }
12328
- ) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
12625
+ ) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
12329
12626
  ]
12330
12627
  }
12331
12628
  ),
12332
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
12333
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "text-text-800 text-2xs", children: [
12629
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
12630
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("p", { className: "text-text-800 text-2xs", children: [
12334
12631
  "Resposta selecionada: ",
12335
12632
  answer.dotOption || "Nenhuma"
12336
12633
  ] }),
12337
- !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("p", { className: "text-text-800 text-2xs", children: [
12634
+ !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("p", { className: "text-text-800 text-2xs", children: [
12338
12635
  "Resposta correta: ",
12339
12636
  answer.correctOption
12340
12637
  ] })
@@ -12387,8 +12684,8 @@ var QuizFill = ({ paddingBottom }) => {
12387
12684
  isCorrect: true
12388
12685
  }
12389
12686
  ];
12390
- const [answers, setAnswers] = (0, import_react38.useState)({});
12391
- const baseId = (0, import_react38.useId)();
12687
+ const [answers, setAnswers] = (0, import_react39.useState)({});
12688
+ const baseId = (0, import_react39.useId)();
12392
12689
  const getAvailableOptionsForSelect = (selectId) => {
12393
12690
  const usedOptions = new Set(
12394
12691
  Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value)
@@ -12403,18 +12700,18 @@ var QuizFill = ({ paddingBottom }) => {
12403
12700
  const mockAnswer = mockUserAnswers.find(
12404
12701
  (answer) => answer.selectId === selectId
12405
12702
  );
12406
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
12703
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
12407
12704
  };
12408
12705
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
12409
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12706
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12410
12707
  Select_default,
12411
12708
  {
12412
12709
  value: selectedValue,
12413
12710
  onValueChange: (value) => handleSelectChange(selectId, value),
12414
12711
  className: "inline-flex mb-2.5",
12415
12712
  children: [
12416
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12417
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
12713
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
12714
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
12418
12715
  ]
12419
12716
  },
12420
12717
  `${selectId}-${startIndex}`
@@ -12426,8 +12723,8 @@ var QuizFill = ({ paddingBottom }) => {
12426
12723
  );
12427
12724
  if (!mockAnswer) return null;
12428
12725
  const action = mockAnswer.isCorrect ? "success" : "error";
12429
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react27.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react27.XCircle, {});
12430
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12726
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react27.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react27.XCircle, {});
12727
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12431
12728
  Badge_default,
12432
12729
  {
12433
12730
  variant: "solid",
@@ -12435,7 +12732,7 @@ var QuizFill = ({ paddingBottom }) => {
12435
12732
  iconRight: icon,
12436
12733
  size: "large",
12437
12734
  className: "py-3 w-[180px] justify-between mb-2.5",
12438
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
12735
+ children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
12439
12736
  },
12440
12737
  selectId
12441
12738
  );
@@ -12491,25 +12788,25 @@ var QuizFill = ({ paddingBottom }) => {
12491
12788
  }
12492
12789
  return elements;
12493
12790
  };
12494
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12495
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12496
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12791
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12792
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
12793
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12497
12794
  "div",
12498
12795
  {
12499
12796
  className: cn(
12500
12797
  "text-lg text-text-900 leading-8 h-auto",
12501
12798
  variant != "result" && paddingBottom
12502
12799
  ),
12503
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: element.element }, element.id))
12800
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: element.element }, element.id))
12504
12801
  }
12505
12802
  ) }) }),
12506
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12507
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
12508
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12803
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12804
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
12805
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12509
12806
  "div",
12510
12807
  {
12511
12808
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
12512
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { children: element.element }, element.id))
12809
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { children: element.element }, element.id))
12513
12810
  }
12514
12811
  ) }) })
12515
12812
  ] })
@@ -12527,7 +12824,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12527
12824
  };
12528
12825
  const correctRadiusRelative = calculateCorrectRadiusRelative();
12529
12826
  const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
12530
- const [clickPositionRelative, setClickPositionRelative] = (0, import_react38.useState)(variant == "result" ? mockUserAnswerRelative : null);
12827
+ const [clickPositionRelative, setClickPositionRelative] = (0, import_react39.useState)(variant == "result" ? mockUserAnswerRelative : null);
12531
12828
  const convertToRelativeCoordinates = (x, y, rect) => {
12532
12829
  const safeWidth = Math.max(rect.width, 1e-3);
12533
12830
  const safeHeight = Math.max(rect.height, 1e-3);
@@ -12563,36 +12860,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12563
12860
  }
12564
12861
  return "bg-success-600/70 border-white";
12565
12862
  };
12566
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(import_jsx_runtime54.Fragment, { children: [
12567
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
12568
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12863
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(import_jsx_runtime56.Fragment, { children: [
12864
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
12865
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12569
12866
  "div",
12570
12867
  {
12571
12868
  "data-testid": "quiz-image-container",
12572
12869
  className: "space-y-6 p-3 relative inline-block",
12573
12870
  children: [
12574
- variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12871
+ variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12575
12872
  "div",
12576
12873
  {
12577
12874
  "data-testid": "quiz-legend",
12578
12875
  className: "flex items-center gap-4 text-xs",
12579
12876
  children: [
12580
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2", children: [
12581
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
12582
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
12877
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-2", children: [
12878
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
12879
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
12583
12880
  ] }),
12584
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2", children: [
12585
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
12586
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
12881
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-2", children: [
12882
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
12883
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
12587
12884
  ] }),
12588
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex items-center gap-2", children: [
12589
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
12590
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
12885
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-2", children: [
12886
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
12887
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
12591
12888
  ] })
12592
12889
  ]
12593
12890
  }
12594
12891
  ),
12595
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
12892
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
12596
12893
  "button",
12597
12894
  {
12598
12895
  "data-testid": "quiz-image-button",
@@ -12607,7 +12904,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12607
12904
  },
12608
12905
  "aria-label": "\xC1rea da imagem interativa",
12609
12906
  children: [
12610
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12907
+ /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12611
12908
  "img",
12612
12909
  {
12613
12910
  "data-testid": "quiz-image",
@@ -12616,7 +12913,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12616
12913
  className: "w-full h-auto rounded-md"
12617
12914
  }
12618
12915
  ),
12619
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12916
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12620
12917
  "div",
12621
12918
  {
12622
12919
  "data-testid": "quiz-correct-circle",
@@ -12631,7 +12928,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12631
12928
  }
12632
12929
  }
12633
12930
  ),
12634
- clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
12931
+ clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
12635
12932
  "div",
12636
12933
  {
12637
12934
  "data-testid": "quiz-user-circle",
@@ -12656,7 +12953,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
12656
12953
  };
12657
12954
 
12658
12955
  // src/components/Quiz/Quiz.tsx
12659
- var import_jsx_runtime55 = require("react/jsx-runtime");
12956
+ var import_jsx_runtime57 = require("react/jsx-runtime");
12660
12957
  var getQuizTypeConfig = (type) => {
12661
12958
  const QUIZ_TYPE_CONFIG = {
12662
12959
  ["SIMULADO" /* SIMULADO */]: {
@@ -12693,14 +12990,14 @@ var getFinishConfirmationText = (type) => {
12693
12990
  const config = getQuizTypeConfig(type);
12694
12991
  return `Tem certeza que deseja finalizar ${config.article} ${config.label.toLowerCase()}?`;
12695
12992
  };
12696
- var Quiz = (0, import_react39.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
12993
+ var Quiz = (0, import_react40.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
12697
12994
  const { setVariant } = useQuizStore();
12698
- (0, import_react39.useEffect)(() => {
12995
+ (0, import_react40.useEffect)(() => {
12699
12996
  setVariant(variant);
12700
12997
  }, [variant, setVariant]);
12701
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { ref, className: cn("flex flex-col", className), ...props, children });
12998
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { ref, className: cn("flex flex-col", className), ...props, children });
12702
12999
  });
12703
- var QuizTitle = (0, import_react39.forwardRef)(({ className, onBack, ...props }, ref) => {
13000
+ var QuizTitle = (0, import_react40.forwardRef)(({ className, onBack, ...props }, ref) => {
12704
13001
  const {
12705
13002
  quiz,
12706
13003
  currentQuestionIndex,
@@ -12710,7 +13007,7 @@ var QuizTitle = (0, import_react39.forwardRef)(({ className, onBack, ...props },
12710
13007
  formatTime: formatTime2,
12711
13008
  isStarted
12712
13009
  } = useQuizStore();
12713
- const [showExitConfirmation, setShowExitConfirmation] = (0, import_react39.useState)(false);
13010
+ const [showExitConfirmation, setShowExitConfirmation] = (0, import_react40.useState)(false);
12714
13011
  const totalQuestions = getTotalQuestions();
12715
13012
  const quizTitle = getQuizTitle();
12716
13013
  const handleBackClick = () => {
@@ -12734,8 +13031,8 @@ var QuizTitle = (0, import_react39.forwardRef)(({ className, onBack, ...props },
12734
13031
  const handleCancelExit = () => {
12735
13032
  setShowExitConfirmation(false);
12736
13033
  };
12737
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
12738
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(
13034
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
13035
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
12739
13036
  "div",
12740
13037
  {
12741
13038
  ref,
@@ -12745,24 +13042,24 @@ var QuizTitle = (0, import_react39.forwardRef)(({ className, onBack, ...props },
12745
13042
  ),
12746
13043
  ...props,
12747
13044
  children: [
12748
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13045
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12749
13046
  IconButton_default,
12750
13047
  {
12751
- icon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.CaretLeft, { size: 24 }),
13048
+ icon: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.CaretLeft, { size: 24 }),
12752
13049
  size: "md",
12753
13050
  "aria-label": "Voltar",
12754
13051
  onClick: handleBackClick
12755
13052
  }
12756
13053
  ),
12757
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
12758
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
12759
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
13054
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
13055
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
13056
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
12760
13057
  ] }),
12761
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
13058
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
12762
13059
  ]
12763
13060
  }
12764
13061
  ),
12765
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13062
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12766
13063
  AlertDialog,
12767
13064
  {
12768
13065
  isOpen: showExitConfirmation,
@@ -12782,7 +13079,7 @@ var QuizHeader = () => {
12782
13079
  const currentQuestion = getCurrentQuestion();
12783
13080
  let currentId = currentQuestion && "questionId" in currentQuestion ? currentQuestion.questionId : currentQuestion?.id;
12784
13081
  const questionIndex = getQuestionIndex(currentId);
12785
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13082
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12786
13083
  HeaderAlternative,
12787
13084
  {
12788
13085
  title: currentQuestion ? `Quest\xE3o ${questionIndex.toString().padStart(2, "0")}` : "Quest\xE3o",
@@ -12804,7 +13101,7 @@ var QuizContent = ({ paddingBottom }) => {
12804
13101
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
12805
13102
  };
12806
13103
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
12807
- return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(QuestionComponent, { paddingBottom }) : null;
13104
+ return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(QuestionComponent, { paddingBottom }) : null;
12808
13105
  };
12809
13106
  var QuizQuestionList = ({
12810
13107
  filterType = "all",
@@ -12851,18 +13148,18 @@ var QuizQuestionList = ({
12851
13148
  return "Em branco";
12852
13149
  }
12853
13150
  };
12854
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "space-y-6 px-4 h-full", children: [
12855
- Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-lg", children: "Nenhum resultado" }) }),
13151
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "space-y-6 px-4 h-full", children: [
13152
+ Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-lg", children: "Nenhum resultado" }) }),
12856
13153
  Object.entries(filteredGroupedQuestions).map(
12857
- ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("section", { className: "flex flex-col gap-2", children: [
12858
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
12859
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.BookOpen, { size: 17, className: "text-white" }) }),
12860
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
13154
+ ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("section", { className: "flex flex-col gap-2", children: [
13155
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
13156
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.BookOpen, { size: 17, className: "text-white" }) }),
13157
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
12861
13158
  ] }),
12862
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
13159
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
12863
13160
  const status = getQuestionStatus(question.id);
12864
13161
  const questionNumber = getQuestionIndex(question.id);
12865
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13162
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12866
13163
  CardStatus,
12867
13164
  {
12868
13165
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -12879,7 +13176,7 @@ var QuizQuestionList = ({
12879
13176
  )
12880
13177
  ] });
12881
13178
  };
12882
- var QuizFooter = (0, import_react39.forwardRef)(
13179
+ var QuizFooter = (0, import_react40.forwardRef)(
12883
13180
  ({
12884
13181
  className,
12885
13182
  onGoToSimulated,
@@ -12913,8 +13210,8 @@ var QuizFooter = (0, import_react39.forwardRef)(
12913
13210
  const currentAnswer = getCurrentAnswer();
12914
13211
  const currentQuestion = getCurrentQuestion();
12915
13212
  const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
12916
- const [activeModal, setActiveModal] = (0, import_react39.useState)(null);
12917
- const [filterType, setFilterType] = (0, import_react39.useState)("all");
13213
+ const [activeModal, setActiveModal] = (0, import_react40.useState)(null);
13214
+ const [filterType, setFilterType] = (0, import_react40.useState)("all");
12918
13215
  const openModal = (modalName) => setActiveModal(modalName);
12919
13216
  const closeModal = () => setActiveModal(null);
12920
13217
  const isModalOpen = (modalName) => activeModal === modalName;
@@ -12969,8 +13266,8 @@ var QuizFooter = (0, import_react39.forwardRef)(
12969
13266
  return;
12970
13267
  }
12971
13268
  };
12972
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
12973
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13269
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
13270
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12974
13271
  "footer",
12975
13272
  {
12976
13273
  ref,
@@ -12979,17 +13276,17 @@ var QuizFooter = (0, import_react39.forwardRef)(
12979
13276
  className
12980
13277
  ),
12981
13278
  ...props,
12982
- children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(import_jsx_runtime55.Fragment, { children: [
12983
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
12984
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13279
+ children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
13280
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
13281
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12985
13282
  IconButton_default,
12986
13283
  {
12987
- icon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.SquaresFour, { size: 24, className: "text-text-950" }),
13284
+ icon: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.SquaresFour, { size: 24, className: "text-text-950" }),
12988
13285
  size: "md",
12989
13286
  onClick: () => openModal("modalNavigate")
12990
13287
  }
12991
13288
  ),
12992
- isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13289
+ isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
12993
13290
  Button_default,
12994
13291
  {
12995
13292
  variant: "outline",
@@ -13000,13 +13297,13 @@ var QuizFooter = (0, import_react39.forwardRef)(
13000
13297
  },
13001
13298
  children: "Pular"
13002
13299
  }
13003
- ) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13300
+ ) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13004
13301
  Button_default,
13005
13302
  {
13006
13303
  size: "medium",
13007
13304
  variant: "link",
13008
13305
  action: "primary",
13009
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.CaretLeft, { size: 18 }),
13306
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.CaretLeft, { size: 18 }),
13010
13307
  onClick: () => {
13011
13308
  goToPreviousQuestion();
13012
13309
  },
@@ -13014,7 +13311,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13014
13311
  }
13015
13312
  )
13016
13313
  ] }),
13017
- !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13314
+ !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13018
13315
  Button_default,
13019
13316
  {
13020
13317
  size: "small",
@@ -13027,7 +13324,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13027
13324
  children: "Pular"
13028
13325
  }
13029
13326
  ),
13030
- isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13327
+ isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13031
13328
  Button_default,
13032
13329
  {
13033
13330
  size: "medium",
@@ -13036,13 +13333,13 @@ var QuizFooter = (0, import_react39.forwardRef)(
13036
13333
  onClick: handleFinishQuiz,
13037
13334
  children: "Finalizar"
13038
13335
  }
13039
- ) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13336
+ ) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13040
13337
  Button_default,
13041
13338
  {
13042
13339
  size: "medium",
13043
13340
  variant: "link",
13044
13341
  action: "primary",
13045
- iconRight: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react28.CaretRight, { size: 18 }),
13342
+ iconRight: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react28.CaretRight, { size: 18 }),
13046
13343
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
13047
13344
  onClick: () => {
13048
13345
  goToNextQuestion();
@@ -13050,7 +13347,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13050
13347
  children: "Avan\xE7ar"
13051
13348
  }
13052
13349
  )
13053
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13350
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13054
13351
  Button_default,
13055
13352
  {
13056
13353
  variant: "link",
@@ -13062,7 +13359,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13062
13359
  ) })
13063
13360
  }
13064
13361
  ),
13065
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13362
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13066
13363
  AlertDialog,
13067
13364
  {
13068
13365
  isOpen: isModalOpen("alertDialog"),
@@ -13074,7 +13371,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13074
13371
  onSubmit: handleAlertSubmit
13075
13372
  }
13076
13373
  ),
13077
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13374
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13078
13375
  Modal_default,
13079
13376
  {
13080
13377
  isOpen: isModalOpen("modalResult"),
@@ -13083,11 +13380,11 @@ var QuizFooter = (0, import_react39.forwardRef)(
13083
13380
  closeOnEscape: false,
13084
13381
  hideCloseButton: true,
13085
13382
  size: "md",
13086
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13087
- resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13088
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13089
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
13090
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("p", { className: "text-text-500 font-sm", children: [
13383
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13384
+ resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13385
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13386
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
13387
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("p", { className: "text-text-500 font-sm", children: [
13091
13388
  "Voc\xEA acertou ",
13092
13389
  correctAnswers ?? "--",
13093
13390
  " de ",
@@ -13096,8 +13393,8 @@ var QuizFooter = (0, import_react39.forwardRef)(
13096
13393
  "quest\xF5es."
13097
13394
  ] })
13098
13395
  ] }),
13099
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
13100
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13396
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
13397
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13101
13398
  Button_default,
13102
13399
  {
13103
13400
  variant: "outline",
@@ -13107,38 +13404,38 @@ var QuizFooter = (0, import_react39.forwardRef)(
13107
13404
  children: quizTypeLabel === "Question\xE1rio" ? "Ir para aulas" : `Ir para ${quizTypeLabel.toLocaleLowerCase()}s`
13108
13405
  }
13109
13406
  ),
13110
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
13407
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
13111
13408
  ] })
13112
13409
  ] })
13113
13410
  }
13114
13411
  ),
13115
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13412
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13116
13413
  Modal_default,
13117
13414
  {
13118
13415
  isOpen: isModalOpen("modalNavigate"),
13119
13416
  onClose: closeModal,
13120
13417
  title: "Quest\xF5es",
13121
13418
  size: "lg",
13122
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
13123
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
13124
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
13125
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
13126
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13419
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
13420
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
13421
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
13422
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
13423
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13127
13424
  SelectTrigger,
13128
13425
  {
13129
13426
  variant: "rounded",
13130
13427
  className: "max-w-[266px] min-w-[160px]",
13131
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
13428
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
13132
13429
  }
13133
13430
  ),
13134
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)(SelectContent, { children: [
13135
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SelectItem, { value: "all", children: "Todas" }),
13136
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
13137
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
13431
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(SelectContent, { children: [
13432
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SelectItem, { value: "all", children: "Todas" }),
13433
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
13434
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
13138
13435
  ] })
13139
13436
  ] }) })
13140
13437
  ] }),
13141
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13438
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13142
13439
  QuizQuestionList,
13143
13440
  {
13144
13441
  filterType,
@@ -13148,7 +13445,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13148
13445
  ] })
13149
13446
  }
13150
13447
  ),
13151
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13448
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13152
13449
  Modal_default,
13153
13450
  {
13154
13451
  isOpen: isModalOpen("modalResolution"),
@@ -13158,7 +13455,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13158
13455
  children: currentQuestion?.solutionExplanation
13159
13456
  }
13160
13457
  ),
13161
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13458
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13162
13459
  Modal_default,
13163
13460
  {
13164
13461
  isOpen: isModalOpen("modalQuestionnaireAllCorrect"),
@@ -13167,17 +13464,17 @@ var QuizFooter = (0, import_react39.forwardRef)(
13167
13464
  closeOnEscape: false,
13168
13465
  hideCloseButton: true,
13169
13466
  size: "md",
13170
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13171
- resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13172
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13173
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
13174
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
13467
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13468
+ resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13469
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13470
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
13471
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
13175
13472
  ] }),
13176
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
13473
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
13177
13474
  ] })
13178
13475
  }
13179
13476
  ),
13180
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13477
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13181
13478
  Modal_default,
13182
13479
  {
13183
13480
  isOpen: isModalOpen("modalQuestionnaireAllIncorrect"),
@@ -13186,16 +13483,16 @@ var QuizFooter = (0, import_react39.forwardRef)(
13186
13483
  closeOnEscape: false,
13187
13484
  hideCloseButton: true,
13188
13485
  size: "md",
13189
- children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13190
- resultIncorrectImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13191
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13192
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
13193
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA tirou 0 no question\xE1rio, mas n\xE3o se preocupe! Isso \xE9 apenas uma oportunidade de aprendizado." }),
13194
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-500 font-sm", children: "Que tal tentar novamente para melhorar sua nota? Estamos aqui para te ajudar a entender o conte\xFAdo e evoluir." }),
13195
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
13486
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
13487
+ resultIncorrectImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
13488
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
13489
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
13490
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA tirou 0 no question\xE1rio, mas n\xE3o se preocupe! Isso \xE9 apenas uma oportunidade de aprendizado." }),
13491
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-500 font-sm", children: "Que tal tentar novamente para melhorar sua nota? Estamos aqui para te ajudar a entender o conte\xFAdo e evoluir." }),
13492
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
13196
13493
  ] }),
13197
- /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
13198
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13494
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
13495
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13199
13496
  Button_default,
13200
13497
  {
13201
13498
  type: "button",
@@ -13209,7 +13506,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13209
13506
  children: "Tentar depois"
13210
13507
  }
13211
13508
  ),
13212
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13509
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13213
13510
  Button_default,
13214
13511
  {
13215
13512
  variant: "outline",
@@ -13219,7 +13516,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13219
13516
  children: "Detalhar resultado"
13220
13517
  }
13221
13518
  ),
13222
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13519
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13223
13520
  Button_default,
13224
13521
  {
13225
13522
  className: "w-auto",
@@ -13232,7 +13529,7 @@ var QuizFooter = (0, import_react39.forwardRef)(
13232
13529
  ] })
13233
13530
  }
13234
13531
  ),
13235
- /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
13532
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13236
13533
  AlertDialog,
13237
13534
  {
13238
13535
  isOpen: isModalOpen("alertDialogTryLater"),
@@ -13256,37 +13553,37 @@ var QuizFooter = (0, import_react39.forwardRef)(
13256
13553
  );
13257
13554
 
13258
13555
  // src/components/Quiz/QuizResult.tsx
13259
- var import_react40 = require("react");
13556
+ var import_react41 = require("react");
13260
13557
  var import_phosphor_react29 = require("phosphor-react");
13261
- var import_jsx_runtime56 = require("react/jsx-runtime");
13558
+ var import_jsx_runtime58 = require("react/jsx-runtime");
13262
13559
  var QuizBadge = ({
13263
13560
  subtype
13264
13561
  }) => {
13265
13562
  switch (subtype) {
13266
13563
  case "PROVA" /* PROVA */:
13267
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
13564
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
13268
13565
  case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
13269
13566
  case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
13270
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
13567
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
13271
13568
  case "VESTIBULAR" /* VESTIBULAR */:
13272
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
13569
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
13273
13570
  case "SIMULADO" /* SIMULADO */:
13274
13571
  case "SIMULADAO" /* SIMULADAO */:
13275
13572
  case void 0:
13276
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
13573
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
13277
13574
  default:
13278
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
13575
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
13279
13576
  }
13280
13577
  };
13281
- var QuizHeaderResult = (0, import_react40.forwardRef)(
13578
+ var QuizHeaderResult = (0, import_react41.forwardRef)(
13282
13579
  ({ className, ...props }, ref) => {
13283
13580
  const {
13284
13581
  getQuestionResultByQuestionId,
13285
13582
  getCurrentQuestion,
13286
13583
  questionsResult
13287
13584
  } = useQuizStore();
13288
- const [status, setStatus] = (0, import_react40.useState)(void 0);
13289
- (0, import_react40.useEffect)(() => {
13585
+ const [status, setStatus] = (0, import_react41.useState)(void 0);
13586
+ (0, import_react41.useEffect)(() => {
13290
13587
  const cq = getCurrentQuestion();
13291
13588
  if (!cq) {
13292
13589
  setStatus(void 0);
@@ -13332,7 +13629,7 @@ var QuizHeaderResult = (0, import_react40.forwardRef)(
13332
13629
  return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
13333
13630
  }
13334
13631
  };
13335
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
13632
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
13336
13633
  "div",
13337
13634
  {
13338
13635
  ref,
@@ -13343,16 +13640,16 @@ var QuizHeaderResult = (0, import_react40.forwardRef)(
13343
13640
  ),
13344
13641
  ...props,
13345
13642
  children: [
13346
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
13347
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
13643
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
13644
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
13348
13645
  ]
13349
13646
  }
13350
13647
  );
13351
13648
  }
13352
13649
  );
13353
- var QuizResultHeaderTitle = (0, import_react40.forwardRef)(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
13650
+ var QuizResultHeaderTitle = (0, import_react41.forwardRef)(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
13354
13651
  const { quiz } = useQuizStore();
13355
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
13652
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
13356
13653
  "div",
13357
13654
  {
13358
13655
  ref,
@@ -13362,9 +13659,9 @@ var QuizResultHeaderTitle = (0, import_react40.forwardRef)(({ className, showBad
13362
13659
  ),
13363
13660
  ...props,
13364
13661
  children: [
13365
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
13366
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-row gap-3 items-center", children: [
13367
- canRetry && onRepeat && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13662
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
13663
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-row gap-3 items-center", children: [
13664
+ canRetry && onRepeat && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13368
13665
  Button_default,
13369
13666
  {
13370
13667
  variant: "solid",
@@ -13374,16 +13671,16 @@ var QuizResultHeaderTitle = (0, import_react40.forwardRef)(({ className, showBad
13374
13671
  children: "Repetir question\xE1rio"
13375
13672
  }
13376
13673
  ),
13377
- showBadge && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(QuizBadge, { subtype: quiz?.subtype || void 0 })
13674
+ showBadge && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(QuizBadge, { subtype: quiz?.subtype || void 0 })
13378
13675
  ] })
13379
13676
  ]
13380
13677
  }
13381
13678
  );
13382
13679
  });
13383
- var QuizResultTitle = (0, import_react40.forwardRef)(({ className, ...props }, ref) => {
13680
+ var QuizResultTitle = (0, import_react41.forwardRef)(({ className, ...props }, ref) => {
13384
13681
  const { getQuizTitle } = useQuizStore();
13385
13682
  const quizTitle = getQuizTitle();
13386
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13683
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13387
13684
  "p",
13388
13685
  {
13389
13686
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -13424,7 +13721,7 @@ var calculateAnswerStatistics = (answers) => {
13424
13721
  }
13425
13722
  return stats;
13426
13723
  };
13427
- var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true, ...props }, ref) => {
13724
+ var QuizResultPerformance = (0, import_react41.forwardRef)(({ showDetails = true, ...props }, ref) => {
13428
13725
  const {
13429
13726
  getTotalQuestions,
13430
13727
  formatTime: formatTime2,
@@ -13444,7 +13741,7 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13444
13741
  };
13445
13742
  const percentage = totalQuestions > 0 ? Math.round(stats.correctAnswers / totalQuestions * 100) : 0;
13446
13743
  const classesJustifyBetween = showDetails ? "justify-between" : "justify-center";
13447
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
13744
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
13448
13745
  "div",
13449
13746
  {
13450
13747
  className: cn(
@@ -13454,8 +13751,8 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13454
13751
  ref,
13455
13752
  ...props,
13456
13753
  children: [
13457
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "relative", children: [
13458
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13754
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "relative", children: [
13755
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13459
13756
  ProgressCircle_default,
13460
13757
  {
13461
13758
  size: "medium",
@@ -13465,24 +13762,24 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13465
13762
  label: ""
13466
13763
  }
13467
13764
  ),
13468
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
13469
- showDetails && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
13470
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react29.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
13471
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
13765
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
13766
+ showDetails && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
13767
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_phosphor_react29.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
13768
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
13472
13769
  (getQuestionResultStatistics()?.timeSpent ?? 0) * 60
13473
13770
  ) })
13474
13771
  ] }),
13475
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
13772
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
13476
13773
  getQuestionResultStatistics()?.correctAnswers ?? "--",
13477
13774
  " de",
13478
13775
  " ",
13479
13776
  totalQuestions
13480
13777
  ] }),
13481
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
13778
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
13482
13779
  ] })
13483
13780
  ] }),
13484
- showDetails && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
13485
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13781
+ showDetails && /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
13782
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13486
13783
  ProgressBar_default,
13487
13784
  {
13488
13785
  className: "w-full",
@@ -13496,7 +13793,7 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13496
13793
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
13497
13794
  }
13498
13795
  ),
13499
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13796
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13500
13797
  ProgressBar_default,
13501
13798
  {
13502
13799
  className: "w-full",
@@ -13510,7 +13807,7 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13510
13807
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
13511
13808
  }
13512
13809
  ),
13513
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13810
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13514
13811
  ProgressBar_default,
13515
13812
  {
13516
13813
  className: "w-full",
@@ -13529,7 +13826,7 @@ var QuizResultPerformance = (0, import_react40.forwardRef)(({ showDetails = true
13529
13826
  }
13530
13827
  );
13531
13828
  });
13532
- var QuizListResult = (0, import_react40.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
13829
+ var QuizListResult = (0, import_react41.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
13533
13830
  const { getQuestionsGroupedBySubject } = useQuizStore();
13534
13831
  const { isDark } = useTheme();
13535
13832
  const groupedQuestions = getQuestionsGroupedBySubject();
@@ -13557,9 +13854,9 @@ var QuizListResult = (0, import_react40.forwardRef)(({ className, onSubjectClick
13557
13854
  };
13558
13855
  }
13559
13856
  );
13560
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("section", { ref, className, ...props, children: [
13561
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
13562
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13857
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("section", { ref, className, ...props, children: [
13858
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
13859
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13563
13860
  CardResults,
13564
13861
  {
13565
13862
  onClick: () => onSubjectClick?.(subject.subject.id),
@@ -13583,16 +13880,16 @@ var QuizListResultByMateria = ({
13583
13880
  const groupedQuestions = getQuestionsGroupedBySubject();
13584
13881
  const answeredQuestions = groupedQuestions[subject] || [];
13585
13882
  const formattedQuestions = subject == "all" ? Object.values(groupedQuestions).flat() : answeredQuestions;
13586
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col", children: [
13587
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
13588
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("section", { className: "flex flex-col ", children: [
13589
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
13590
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
13883
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("div", { className: "flex flex-col", children: [
13884
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
13885
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)("section", { className: "flex flex-col ", children: [
13886
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
13887
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
13591
13888
  const questionIndex = getQuestionIndex(
13592
13889
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13593
13890
  question.questionId ?? question.id
13594
13891
  );
13595
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
13892
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
13596
13893
  CardStatus,
13597
13894
  {
13598
13895
  className: "max-w-full",
@@ -13618,7 +13915,7 @@ var QuizListResultByMateria = ({
13618
13915
 
13619
13916
  // src/components/BreadcrumbMenu/BreadcrumbMenu.tsx
13620
13917
  var import_react_router_dom3 = require("react-router-dom");
13621
- var import_jsx_runtime57 = require("react/jsx-runtime");
13918
+ var import_jsx_runtime59 = require("react/jsx-runtime");
13622
13919
  var BreadcrumbMenu = ({
13623
13920
  breadcrumbs,
13624
13921
  onBreadcrumbClick,
@@ -13631,17 +13928,17 @@ var BreadcrumbMenu = ({
13631
13928
  }
13632
13929
  navigate(breadcrumb.url);
13633
13930
  };
13634
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13931
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
13635
13932
  Menu,
13636
13933
  {
13637
13934
  value: `breadcrumb-${breadcrumbs.length - 1}`,
13638
13935
  defaultValue: "breadcrumb-0",
13639
13936
  variant: "breadcrumb",
13640
13937
  className,
13641
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
13938
+ children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
13642
13939
  const isLast = index === breadcrumbs.length - 1;
13643
13940
  const hasSeparator = !isLast;
13644
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
13941
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
13645
13942
  MenuItem,
13646
13943
  {
13647
13944
  variant: "breadcrumb",
@@ -13659,7 +13956,7 @@ var BreadcrumbMenu = ({
13659
13956
  };
13660
13957
 
13661
13958
  // src/components/BreadcrumbMenu/useBreadcrumbBuilder.ts
13662
- var import_react41 = require("react");
13959
+ var import_react42 = require("react");
13663
13960
 
13664
13961
  // src/components/BreadcrumbMenu/breadcrumbStore.ts
13665
13962
  var import_zustand11 = require("zustand");
@@ -13788,7 +14085,7 @@ var useBreadcrumbBuilder = (config) => {
13788
14085
  (level) => isBreadcrumbWithData(level) ? level.data : null
13789
14086
  );
13790
14087
  const levelUrlIds = levels.map((level) => level.urlId);
13791
- (0, import_react41.useEffect)(() => {
14088
+ (0, import_react42.useEffect)(() => {
13792
14089
  const newBreadcrumbs = [root];
13793
14090
  const previousIds = [];
13794
14091
  for (const level of levels) {
@@ -13820,11 +14117,11 @@ var useBreadcrumbBuilder = (config) => {
13820
14117
  };
13821
14118
 
13822
14119
  // src/components/BreadcrumbMenu/useUrlParams.ts
13823
- var import_react42 = require("react");
14120
+ var import_react43 = require("react");
13824
14121
  var import_react_router_dom4 = require("react-router-dom");
13825
14122
  var useUrlParams = (config) => {
13826
14123
  const location = (0, import_react_router_dom4.useLocation)();
13827
- return (0, import_react42.useMemo)(() => {
14124
+ return (0, import_react43.useMemo)(() => {
13828
14125
  const segments = location.pathname.split("/").filter(Boolean);
13829
14126
  const params = {};
13830
14127
  for (const [key, index] of Object.entries(config)) {
@@ -13835,15 +14132,15 @@ var useUrlParams = (config) => {
13835
14132
  };
13836
14133
 
13837
14134
  // src/hooks/useAppInitialization.ts
13838
- var import_react44 = require("react");
14135
+ var import_react45 = require("react");
13839
14136
 
13840
14137
  // src/hooks/useInstitution.ts
13841
- var import_react43 = require("react");
14138
+ var import_react44 = require("react");
13842
14139
  function useInstitutionId() {
13843
- const [institutionId, setInstitutionId] = (0, import_react43.useState)(() => {
14140
+ const [institutionId, setInstitutionId] = (0, import_react44.useState)(() => {
13844
14141
  return document.querySelector('meta[name="institution-id"]')?.getAttribute("content") ?? null;
13845
14142
  });
13846
- (0, import_react43.useEffect)(() => {
14143
+ (0, import_react44.useEffect)(() => {
13847
14144
  const metaTag = document.querySelector('meta[name="institution-id"]');
13848
14145
  if (!metaTag) return;
13849
14146
  const observer = new MutationObserver(() => {
@@ -14010,7 +14307,7 @@ var useAuthStore = (0, import_zustand13.create)()(
14010
14307
  function useAppInitialization() {
14011
14308
  const getInstitutionId = useInstitutionId();
14012
14309
  const { initialize, initialized, institutionId } = useAppStore();
14013
- const authFunctions = (0, import_react44.useMemo)(
14310
+ const authFunctions = (0, import_react45.useMemo)(
14014
14311
  () => ({
14015
14312
  checkAuth: async () => {
14016
14313
  const { sessionInfo, tokens } = useAuthStore.getState();
@@ -14047,7 +14344,7 @@ function useAppInitialization() {
14047
14344
  }
14048
14345
 
14049
14346
  // src/hooks/useAppContent.ts
14050
- var import_react45 = require("react");
14347
+ var import_react46 = require("react");
14051
14348
  var import_react_router_dom5 = require("react-router-dom");
14052
14349
  function useAppContent(config) {
14053
14350
  const navigate = (0, import_react_router_dom5.useNavigate)();
@@ -14073,20 +14370,20 @@ function useAppContent(config) {
14073
14370
  navigate("/painel");
14074
14371
  }
14075
14372
  };
14076
- const handleSetSelectedProfile = (0, import_react45.useCallback)(
14373
+ const handleSetSelectedProfile = (0, import_react46.useCallback)(
14077
14374
  (profile) => {
14078
14375
  setSelectedProfile(profile);
14079
14376
  },
14080
14377
  [setSelectedProfile]
14081
14378
  );
14082
- const handleClearParamsFromURL = (0, import_react45.useCallback)(() => {
14379
+ const handleClearParamsFromURL = (0, import_react46.useCallback)(() => {
14083
14380
  if (onClearParamsFromURL) {
14084
14381
  onClearParamsFromURL();
14085
14382
  } else {
14086
14383
  globalThis.location.replace("/painel");
14087
14384
  }
14088
14385
  }, [onClearParamsFromURL]);
14089
- const handleError = (0, import_react45.useCallback)(
14386
+ const handleError = (0, import_react46.useCallback)(
14090
14387
  (error) => {
14091
14388
  if (onError) {
14092
14389
  onError(error);
@@ -14097,7 +14394,7 @@ function useAppContent(config) {
14097
14394
  },
14098
14395
  [navigate, onError]
14099
14396
  );
14100
- const urlAuthConfig = (0, import_react45.useMemo)(
14397
+ const urlAuthConfig = (0, import_react46.useMemo)(
14101
14398
  () => ({
14102
14399
  setTokens,
14103
14400
  setSessionInfo,
@@ -14123,10 +14420,10 @@ function useAppContent(config) {
14123
14420
  );
14124
14421
  useUrlAuthentication(urlAuthConfig);
14125
14422
  const { sessionInfo } = useAuth();
14126
- const institutionIdToUse = (0, import_react45.useMemo)(() => {
14423
+ const institutionIdToUse = (0, import_react46.useMemo)(() => {
14127
14424
  return sessionInfo?.institutionId || getInstitutionId;
14128
14425
  }, [sessionInfo?.institutionId, getInstitutionId]);
14129
- (0, import_react45.useEffect)(() => {
14426
+ (0, import_react46.useEffect)(() => {
14130
14427
  if (institutionIdToUse && !initialized) {
14131
14428
  initialize(institutionIdToUse);
14132
14429
  }
@@ -14173,6 +14470,7 @@ function useAppContent(config) {
14173
14470
  DropdownMenuItem,
14174
14471
  DropdownMenuSeparator,
14175
14472
  DropdownMenuTrigger,
14473
+ FilterModal,
14176
14474
  IconButton,
14177
14475
  IconRender,
14178
14476
  IconRoundedButton,
@@ -14187,6 +14485,7 @@ function useAppContent(config) {
14187
14485
  Modal,
14188
14486
  MultipleChoiceList,
14189
14487
  NavButton,
14488
+ NoSearchResult,
14190
14489
  NotFound,
14191
14490
  NotificationCard,
14192
14491
  NotificationEntityType,
@@ -14288,6 +14587,7 @@ function useAppContent(config) {
14288
14587
  useMobile,
14289
14588
  useQuizStore,
14290
14589
  useRouteAuth,
14590
+ useTableFilter,
14291
14591
  useTableSort,
14292
14592
  useTheme,
14293
14593
  useThemeStore,