analytica-frontend-lib 1.2.19 → 1.2.21

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
@@ -148,6 +148,7 @@ __export(src_exports, {
148
148
  TableHead: () => TableHead,
149
149
  TableHeader: () => TableHeader,
150
150
  TablePagination: () => TablePagination_default,
151
+ TableProvider: () => TableProvider_default,
151
152
  TableRow: () => TableRow,
152
153
  Text: () => Text_default,
153
154
  TextArea: () => TextArea_default,
@@ -8340,11 +8341,298 @@ var useTableFilter = (initialConfigs, options = {}) => {
8340
8341
  };
8341
8342
  };
8342
8343
 
8343
- // src/components/Select/Select.tsx
8344
- var import_zustand8 = require("zustand");
8344
+ // src/components/TableProvider/TableProvider.tsx
8345
8345
  var import_react29 = require("react");
8346
8346
  var import_phosphor_react21 = require("phosphor-react");
8347
8347
  var import_jsx_runtime49 = require("react/jsx-runtime");
8348
+ function TableProvider({
8349
+ data,
8350
+ headers,
8351
+ loading = false,
8352
+ variant = "default",
8353
+ enableSearch = false,
8354
+ enableFilters = false,
8355
+ enableTableSort = false,
8356
+ enablePagination = false,
8357
+ enableRowClick = false,
8358
+ initialFilters = [],
8359
+ paginationConfig = {},
8360
+ searchPlaceholder = "Buscar...",
8361
+ noSearchResultImage,
8362
+ rowKey,
8363
+ onParamsChange,
8364
+ onRowClick,
8365
+ children
8366
+ }) {
8367
+ const [searchQuery, setSearchQuery] = (0, import_react29.useState)("");
8368
+ const sortResultRaw = useTableSort(data, { syncWithUrl: true });
8369
+ const sortResult = enableTableSort ? sortResultRaw : {
8370
+ sortedData: data,
8371
+ sortColumn: null,
8372
+ sortDirection: null,
8373
+ handleSort: () => {
8374
+ }
8375
+ };
8376
+ const { sortedData, sortColumn, sortDirection, handleSort } = sortResult;
8377
+ const filterResultRaw = useTableFilter(initialFilters, { syncWithUrl: true });
8378
+ const disabledFilterResult = (0, import_react29.useMemo)(
8379
+ () => ({
8380
+ filterConfigs: [],
8381
+ activeFilters: {},
8382
+ hasActiveFilters: false,
8383
+ updateFilters: () => {
8384
+ },
8385
+ applyFilters: () => {
8386
+ },
8387
+ clearFilters: () => {
8388
+ }
8389
+ }),
8390
+ []
8391
+ );
8392
+ const filterResult = enableFilters ? filterResultRaw : disabledFilterResult;
8393
+ const {
8394
+ filterConfigs,
8395
+ activeFilters,
8396
+ hasActiveFilters,
8397
+ updateFilters,
8398
+ applyFilters,
8399
+ clearFilters
8400
+ } = filterResult;
8401
+ const {
8402
+ defaultItemsPerPage = 10,
8403
+ itemsPerPageOptions = [10, 20, 50, 100],
8404
+ itemLabel = "itens",
8405
+ totalItems,
8406
+ totalPages
8407
+ } = paginationConfig;
8408
+ const [currentPage, setCurrentPage] = (0, import_react29.useState)(1);
8409
+ const [itemsPerPage, setItemsPerPage] = (0, import_react29.useState)(defaultItemsPerPage);
8410
+ const [isFilterModalOpen, setIsFilterModalOpen] = (0, import_react29.useState)(false);
8411
+ const combinedParams = (0, import_react29.useMemo)(() => {
8412
+ const params = {
8413
+ page: currentPage,
8414
+ limit: itemsPerPage
8415
+ };
8416
+ if (enableSearch && searchQuery) {
8417
+ params.search = searchQuery;
8418
+ }
8419
+ if (enableFilters) {
8420
+ Object.assign(params, activeFilters);
8421
+ }
8422
+ if (enableTableSort && sortColumn && sortDirection) {
8423
+ params.sortBy = sortColumn;
8424
+ params.sortOrder = sortDirection;
8425
+ }
8426
+ return params;
8427
+ }, [
8428
+ currentPage,
8429
+ itemsPerPage,
8430
+ searchQuery,
8431
+ activeFilters,
8432
+ sortColumn,
8433
+ sortDirection,
8434
+ enableSearch,
8435
+ enableFilters,
8436
+ enableTableSort
8437
+ ]);
8438
+ (0, import_react29.useEffect)(() => {
8439
+ onParamsChange?.(combinedParams);
8440
+ }, [combinedParams]);
8441
+ const handleSearchChange = (0, import_react29.useCallback)((value) => {
8442
+ setSearchQuery(value);
8443
+ setCurrentPage(1);
8444
+ }, []);
8445
+ const handleFilterApply = (0, import_react29.useCallback)(() => {
8446
+ applyFilters();
8447
+ setIsFilterModalOpen(false);
8448
+ setCurrentPage(1);
8449
+ }, [applyFilters]);
8450
+ const handlePageChange = (0, import_react29.useCallback)((page) => {
8451
+ setCurrentPage(page);
8452
+ }, []);
8453
+ const handleItemsPerPageChange = (0, import_react29.useCallback)((items) => {
8454
+ setItemsPerPage(items);
8455
+ setCurrentPage(1);
8456
+ }, []);
8457
+ const handleRowClickInternal = (0, import_react29.useCallback)(
8458
+ (row, index) => {
8459
+ if (enableRowClick && onRowClick) {
8460
+ onRowClick(row, index);
8461
+ }
8462
+ },
8463
+ [enableRowClick, onRowClick]
8464
+ );
8465
+ const useInternalPagination = (0, import_react29.useMemo)(
8466
+ () => enablePagination && !onParamsChange && totalItems === void 0 && totalPages === void 0,
8467
+ [enablePagination, onParamsChange, totalItems, totalPages]
8468
+ );
8469
+ const calculatedTotalPages = totalPages ?? Math.ceil(
8470
+ (totalItems ?? (useInternalPagination ? sortedData.length : data.length)) / itemsPerPage
8471
+ );
8472
+ const calculatedTotalItems = totalItems ?? (useInternalPagination ? sortedData.length : data.length);
8473
+ const displayData = (0, import_react29.useMemo)(() => {
8474
+ if (!useInternalPagination) {
8475
+ return sortedData;
8476
+ }
8477
+ const start = (currentPage - 1) * itemsPerPage;
8478
+ return sortedData.slice(start, start + itemsPerPage);
8479
+ }, [useInternalPagination, sortedData, currentPage, itemsPerPage]);
8480
+ const isEmpty = sortedData.length === 0;
8481
+ const controls = (enableSearch || enableFilters) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "flex items-center gap-4", children: [
8482
+ enableFilters && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
8483
+ Button_default,
8484
+ {
8485
+ variant: "outline",
8486
+ size: "medium",
8487
+ onClick: () => setIsFilterModalOpen(true),
8488
+ children: [
8489
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react21.Funnel, { size: 20 }),
8490
+ "Filtros",
8491
+ hasActiveFilters && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "ml-2 rounded-full bg-primary-500 px-2 py-0.5 text-xs text-white", children: Object.keys(activeFilters).length })
8492
+ ]
8493
+ }
8494
+ ),
8495
+ enableSearch && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex-1", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8496
+ Search_default,
8497
+ {
8498
+ value: searchQuery,
8499
+ onSearch: handleSearchChange,
8500
+ onClear: () => handleSearchChange(""),
8501
+ options: [],
8502
+ placeholder: searchPlaceholder
8503
+ }
8504
+ ) })
8505
+ ] });
8506
+ const table = /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "w-full overflow-x-auto", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
8507
+ Table_default,
8508
+ {
8509
+ variant,
8510
+ searchTerm: enableSearch ? searchQuery : void 0,
8511
+ noSearchResultImage,
8512
+ children: [
8513
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("thead", { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8514
+ TableRow,
8515
+ {
8516
+ variant: variant === "borderless" ? "defaultBorderless" : "default",
8517
+ children: headers.map((header, index) => /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8518
+ TableHead,
8519
+ {
8520
+ sortable: enableTableSort && header.sortable,
8521
+ sortDirection: enableTableSort && sortColumn === header.key ? sortDirection : null,
8522
+ onSort: () => enableTableSort && header.sortable && handleSort(header.key),
8523
+ className: header.className,
8524
+ style: header.width ? { width: header.width } : void 0,
8525
+ children: header.label
8526
+ },
8527
+ `header-${header.key}-${index}`
8528
+ ))
8529
+ }
8530
+ ) }),
8531
+ /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TableBody, { children: loading ? /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TableRow, { children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(TableCell, { colSpan: headers.length, className: "text-center py-8", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-text-400 text-sm", children: "Carregando..." }) }) }) : displayData.map((row, rowIndex) => {
8532
+ const effectiveIndex = useInternalPagination ? (currentPage - 1) * itemsPerPage + rowIndex : rowIndex;
8533
+ const rowKeyValue = rowKey ? (() => {
8534
+ const keyValue = row[rowKey];
8535
+ if (keyValue === null || keyValue === void 0) {
8536
+ return `row-${effectiveIndex}`;
8537
+ }
8538
+ if (typeof keyValue === "object") {
8539
+ return JSON.stringify(keyValue);
8540
+ }
8541
+ return String(keyValue);
8542
+ })() : `row-${effectiveIndex}`;
8543
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8544
+ TableRow,
8545
+ {
8546
+ variant: variant === "borderless" ? "defaultBorderless" : "default",
8547
+ clickable: enableRowClick,
8548
+ onClick: () => handleRowClickInternal(row, effectiveIndex),
8549
+ children: headers.map((header, cellIndex) => {
8550
+ const value = row[header.key];
8551
+ let defaultContent = "";
8552
+ if (value !== null && value !== void 0) {
8553
+ if (typeof value === "string" || typeof value === "number" || typeof value === "boolean" || typeof value === "bigint") {
8554
+ defaultContent = String(value);
8555
+ } else if (typeof value === "object") {
8556
+ defaultContent = JSON.stringify(value);
8557
+ } else if (typeof value === "function") {
8558
+ defaultContent = "[Function]";
8559
+ } else if (typeof value === "symbol") {
8560
+ defaultContent = String(value);
8561
+ }
8562
+ }
8563
+ const content = header.render ? header.render(value, row, effectiveIndex) : defaultContent;
8564
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8565
+ TableCell,
8566
+ {
8567
+ className: header.className,
8568
+ style: {
8569
+ textAlign: header.align
8570
+ },
8571
+ children: content
8572
+ },
8573
+ `cell-${effectiveIndex}-${cellIndex}`
8574
+ );
8575
+ })
8576
+ },
8577
+ rowKeyValue
8578
+ );
8579
+ }) })
8580
+ ]
8581
+ }
8582
+ ) });
8583
+ const pagination = enablePagination && !isEmpty && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: "flex justify-end", children: /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8584
+ TablePagination_default,
8585
+ {
8586
+ currentPage,
8587
+ totalPages: calculatedTotalPages,
8588
+ totalItems: calculatedTotalItems,
8589
+ itemsPerPage,
8590
+ itemsPerPageOptions,
8591
+ onPageChange: handlePageChange,
8592
+ onItemsPerPageChange: handleItemsPerPageChange,
8593
+ itemLabel
8594
+ }
8595
+ ) });
8596
+ if (children) {
8597
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(import_jsx_runtime49.Fragment, { children: [
8598
+ children({ controls, table, pagination }),
8599
+ enableFilters && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8600
+ FilterModal,
8601
+ {
8602
+ isOpen: isFilterModalOpen,
8603
+ onClose: () => setIsFilterModalOpen(false),
8604
+ filterConfigs,
8605
+ onFiltersChange: updateFilters,
8606
+ onApply: handleFilterApply,
8607
+ onClear: clearFilters
8608
+ }
8609
+ )
8610
+ ] });
8611
+ }
8612
+ return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "w-full space-y-4", children: [
8613
+ controls,
8614
+ table,
8615
+ pagination,
8616
+ enableFilters && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8617
+ FilterModal,
8618
+ {
8619
+ isOpen: isFilterModalOpen,
8620
+ onClose: () => setIsFilterModalOpen(false),
8621
+ filterConfigs,
8622
+ onFiltersChange: updateFilters,
8623
+ onApply: handleFilterApply,
8624
+ onClear: clearFilters
8625
+ }
8626
+ )
8627
+ ] });
8628
+ }
8629
+ var TableProvider_default = TableProvider;
8630
+
8631
+ // src/components/Select/Select.tsx
8632
+ var import_zustand8 = require("zustand");
8633
+ var import_react30 = require("react");
8634
+ var import_phosphor_react22 = require("phosphor-react");
8635
+ var import_jsx_runtime50 = require("react/jsx-runtime");
8348
8636
  var VARIANT_CLASSES4 = {
8349
8637
  outlined: "border-2 rounded-lg focus:border-primary-950",
8350
8638
  underlined: "border-b-2 focus:border-primary-950",
@@ -8402,13 +8690,13 @@ function getLabelAsNode(children) {
8402
8690
  if (typeof children === "string" || typeof children === "number") {
8403
8691
  return children;
8404
8692
  }
8405
- const flattened = import_react29.Children.toArray(children);
8693
+ const flattened = import_react30.Children.toArray(children);
8406
8694
  if (flattened.length === 1) return flattened[0];
8407
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_jsx_runtime49.Fragment, { children: flattened });
8695
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_jsx_runtime50.Fragment, { children: flattened });
8408
8696
  }
8409
8697
  var injectStore4 = (children, store, size, selectId) => {
8410
- return import_react29.Children.map(children, (child) => {
8411
- if ((0, import_react29.isValidElement)(child)) {
8698
+ return import_react30.Children.map(children, (child) => {
8699
+ if ((0, import_react30.isValidElement)(child)) {
8412
8700
  const typedChild = child;
8413
8701
  const newProps = {
8414
8702
  store
@@ -8425,7 +8713,7 @@ var injectStore4 = (children, store, size, selectId) => {
8425
8713
  selectId
8426
8714
  );
8427
8715
  }
8428
- return (0, import_react29.cloneElement)(typedChild, newProps);
8716
+ return (0, import_react30.cloneElement)(typedChild, newProps);
8429
8717
  }
8430
8718
  return child;
8431
8719
  });
@@ -8442,18 +8730,18 @@ var Select = ({
8442
8730
  errorMessage,
8443
8731
  id
8444
8732
  }) => {
8445
- const storeRef = (0, import_react29.useRef)(null);
8733
+ const storeRef = (0, import_react30.useRef)(null);
8446
8734
  storeRef.current ??= createSelectStore(onValueChange);
8447
8735
  const store = storeRef.current;
8448
- const selectRef = (0, import_react29.useRef)(null);
8736
+ const selectRef = (0, import_react30.useRef)(null);
8449
8737
  const { open, setOpen, setValue, selectedLabel } = (0, import_zustand8.useStore)(store, (s) => s);
8450
- const generatedId = (0, import_react29.useId)();
8738
+ const generatedId = (0, import_react30.useId)();
8451
8739
  const selectId = id ?? `select-${generatedId}`;
8452
8740
  const findLabelForValue = (children2, targetValue) => {
8453
8741
  let found = null;
8454
8742
  const search = (nodes) => {
8455
- import_react29.Children.forEach(nodes, (child) => {
8456
- if (!(0, import_react29.isValidElement)(child)) return;
8743
+ import_react30.Children.forEach(nodes, (child) => {
8744
+ if (!(0, import_react30.isValidElement)(child)) return;
8457
8745
  const typedChild = child;
8458
8746
  if (typedChild.type === SelectItem && typedChild.props.value === targetValue) {
8459
8747
  if (typeof typedChild.props.children === "string")
@@ -8466,13 +8754,13 @@ var Select = ({
8466
8754
  search(children2);
8467
8755
  return found;
8468
8756
  };
8469
- (0, import_react29.useEffect)(() => {
8757
+ (0, import_react30.useEffect)(() => {
8470
8758
  if (!selectedLabel && defaultValue) {
8471
8759
  const label2 = findLabelForValue(children, defaultValue);
8472
8760
  if (label2) store.setState({ selectedLabel: label2 });
8473
8761
  }
8474
8762
  }, [children, defaultValue, selectedLabel]);
8475
- (0, import_react29.useEffect)(() => {
8763
+ (0, import_react30.useEffect)(() => {
8476
8764
  const handleClickOutside = (event) => {
8477
8765
  if (selectRef.current && !selectRef.current.contains(event.target)) {
8478
8766
  setOpen(false);
@@ -8507,7 +8795,7 @@ var Select = ({
8507
8795
  document.removeEventListener("keydown", handleArrowKeys);
8508
8796
  };
8509
8797
  }, [open]);
8510
- (0, import_react29.useEffect)(() => {
8798
+ (0, import_react30.useEffect)(() => {
8511
8799
  if (propValue) {
8512
8800
  setValue(propValue);
8513
8801
  const label2 = findLabelForValue(children, propValue);
@@ -8515,8 +8803,8 @@ var Select = ({
8515
8803
  }
8516
8804
  }, [propValue]);
8517
8805
  const sizeClasses = SIZE_CLASSES12[size];
8518
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: cn("w-full", className), children: [
8519
- label && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8806
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: cn("w-full", className), children: [
8807
+ label && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8520
8808
  "label",
8521
8809
  {
8522
8810
  htmlFor: selectId,
@@ -8524,11 +8812,11 @@ var Select = ({
8524
8812
  children: label
8525
8813
  }
8526
8814
  ),
8527
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
8528
- (helperText || errorMessage) && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("div", { className: "mt-1.5 gap-1.5", children: [
8529
- helperText && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("p", { className: "text-sm text-text-500", children: helperText }),
8530
- errorMessage && /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
8531
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react21.WarningCircle, { size: 16 }),
8815
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
8816
+ (helperText || errorMessage) && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("div", { className: "mt-1.5 gap-1.5", children: [
8817
+ helperText && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("p", { className: "text-sm text-text-500", children: helperText }),
8818
+ errorMessage && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
8819
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_phosphor_react22.WarningCircle, { size: 16 }),
8532
8820
  " ",
8533
8821
  errorMessage
8534
8822
  ] })
@@ -8542,9 +8830,9 @@ var SelectValue = ({
8542
8830
  const store = useSelectStore(externalStore);
8543
8831
  const selectedLabel = (0, import_zustand8.useStore)(store, (s) => s.selectedLabel);
8544
8832
  const value = (0, import_zustand8.useStore)(store, (s) => s.value);
8545
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
8833
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
8546
8834
  };
8547
- var SelectTrigger = (0, import_react29.forwardRef)(
8835
+ var SelectTrigger = (0, import_react30.forwardRef)(
8548
8836
  ({
8549
8837
  className,
8550
8838
  invalid = false,
@@ -8561,7 +8849,7 @@ var SelectTrigger = (0, import_react29.forwardRef)(
8561
8849
  const variantClasses = VARIANT_CLASSES4[variant];
8562
8850
  const heightClasses = HEIGHT_CLASSES[size];
8563
8851
  const paddingClasses = PADDING_CLASSES[size];
8564
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
8852
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
8565
8853
  "button",
8566
8854
  {
8567
8855
  ref,
@@ -8583,8 +8871,8 @@ var SelectTrigger = (0, import_react29.forwardRef)(
8583
8871
  ...props,
8584
8872
  children: [
8585
8873
  props.children,
8586
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8587
- import_phosphor_react21.CaretDown,
8874
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8875
+ import_phosphor_react22.CaretDown,
8588
8876
  {
8589
8877
  className: cn(
8590
8878
  "h-[1em] w-[1em] opacity-50 transition-transform",
@@ -8598,7 +8886,7 @@ var SelectTrigger = (0, import_react29.forwardRef)(
8598
8886
  }
8599
8887
  );
8600
8888
  SelectTrigger.displayName = "SelectTrigger";
8601
- var SelectContent = (0, import_react29.forwardRef)(
8889
+ var SelectContent = (0, import_react30.forwardRef)(
8602
8890
  ({
8603
8891
  children,
8604
8892
  className,
@@ -8611,7 +8899,7 @@ var SelectContent = (0, import_react29.forwardRef)(
8611
8899
  const open = (0, import_zustand8.useStore)(store, (s) => s.open);
8612
8900
  if (!open) return null;
8613
8901
  const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
8614
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(
8902
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8615
8903
  "div",
8616
8904
  {
8617
8905
  role: "menu",
@@ -8628,7 +8916,7 @@ var SelectContent = (0, import_react29.forwardRef)(
8628
8916
  }
8629
8917
  );
8630
8918
  SelectContent.displayName = "SelectContent";
8631
- var SelectItem = (0, import_react29.forwardRef)(
8919
+ var SelectItem = (0, import_react30.forwardRef)(
8632
8920
  ({
8633
8921
  className,
8634
8922
  children,
@@ -8655,7 +8943,7 @@ var SelectItem = (0, import_react29.forwardRef)(
8655
8943
  }
8656
8944
  props.onClick?.(e);
8657
8945
  };
8658
- return /* @__PURE__ */ (0, import_jsx_runtime49.jsxs)(
8946
+ return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
8659
8947
  "div",
8660
8948
  {
8661
8949
  role: "menuitem",
@@ -8675,7 +8963,7 @@ var SelectItem = (0, import_react29.forwardRef)(
8675
8963
  tabIndex: disabled ? -1 : 0,
8676
8964
  ...props,
8677
8965
  children: [
8678
- /* @__PURE__ */ (0, import_jsx_runtime49.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime49.jsx)(import_phosphor_react21.Check, { className: "" }) }),
8966
+ /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_phosphor_react22.Check, { className: "" }) }),
8679
8967
  children
8680
8968
  ]
8681
8969
  }
@@ -8687,9 +8975,9 @@ var Select_default = Select;
8687
8975
 
8688
8976
  // src/components/Menu/Menu.tsx
8689
8977
  var import_zustand9 = require("zustand");
8690
- var import_react30 = require("react");
8691
- var import_phosphor_react22 = require("phosphor-react");
8692
- var import_jsx_runtime50 = require("react/jsx-runtime");
8978
+ var import_react31 = require("react");
8979
+ var import_phosphor_react23 = require("phosphor-react");
8980
+ var import_jsx_runtime51 = require("react/jsx-runtime");
8693
8981
  var createMenuStore = (onValueChange) => (0, import_zustand9.create)((set) => ({
8694
8982
  value: "",
8695
8983
  setValue: (value) => {
@@ -8708,7 +8996,7 @@ var VARIANT_CLASSES5 = {
8708
8996
  "menu-overflow": "",
8709
8997
  breadcrumb: "bg-transparent shadow-none !px-0"
8710
8998
  };
8711
- var Menu = (0, import_react30.forwardRef)(
8999
+ var Menu = (0, import_react31.forwardRef)(
8712
9000
  ({
8713
9001
  className,
8714
9002
  children,
@@ -8718,16 +9006,16 @@ var Menu = (0, import_react30.forwardRef)(
8718
9006
  onValueChange,
8719
9007
  ...props
8720
9008
  }, ref) => {
8721
- const storeRef = (0, import_react30.useRef)(null);
9009
+ const storeRef = (0, import_react31.useRef)(null);
8722
9010
  storeRef.current ??= createMenuStore(onValueChange);
8723
9011
  const store = storeRef.current;
8724
9012
  const { setValue } = (0, import_zustand9.useStore)(store, (s) => s);
8725
- (0, import_react30.useEffect)(() => {
9013
+ (0, import_react31.useEffect)(() => {
8726
9014
  setValue(propValue ?? defaultValue);
8727
9015
  }, [defaultValue, propValue, setValue]);
8728
9016
  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";
8729
9017
  const variantClasses = VARIANT_CLASSES5[variant];
8730
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9018
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8731
9019
  "div",
8732
9020
  {
8733
9021
  ref,
@@ -8743,11 +9031,11 @@ var Menu = (0, import_react30.forwardRef)(
8743
9031
  }
8744
9032
  );
8745
9033
  Menu.displayName = "Menu";
8746
- var MenuContent = (0, import_react30.forwardRef)(
9034
+ var MenuContent = (0, import_react31.forwardRef)(
8747
9035
  ({ className, children, variant = "menu", ...props }, ref) => {
8748
9036
  const baseClasses = "w-full flex flex-row items-center gap-2";
8749
9037
  const variantClasses = variant === "menu2" || variant === "menu-overflow" ? "overflow-x-auto scroll-smooth" : "";
8750
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9038
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8751
9039
  "ul",
8752
9040
  {
8753
9041
  ref,
@@ -8765,7 +9053,7 @@ var MenuContent = (0, import_react30.forwardRef)(
8765
9053
  }
8766
9054
  );
8767
9055
  MenuContent.displayName = "MenuContent";
8768
- var MenuItem = (0, import_react30.forwardRef)(
9056
+ var MenuItem = (0, import_react31.forwardRef)(
8769
9057
  ({
8770
9058
  className,
8771
9059
  children,
@@ -8799,7 +9087,7 @@ var MenuItem = (0, import_react30.forwardRef)(
8799
9087
  ...props
8800
9088
  };
8801
9089
  const variants = {
8802
- menu: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9090
+ menu: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8803
9091
  "li",
8804
9092
  {
8805
9093
  "data-variant": "menu",
@@ -8814,7 +9102,7 @@ var MenuItem = (0, import_react30.forwardRef)(
8814
9102
  children
8815
9103
  }
8816
9104
  ),
8817
- menu2: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9105
+ menu2: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8818
9106
  "li",
8819
9107
  {
8820
9108
  "data-variant": "menu2",
@@ -8825,7 +9113,7 @@ var MenuItem = (0, import_react30.forwardRef)(
8825
9113
  `,
8826
9114
  ...commonProps,
8827
9115
  children: [
8828
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9116
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8829
9117
  "span",
8830
9118
  {
8831
9119
  className: cn(
@@ -8835,11 +9123,11 @@ var MenuItem = (0, import_react30.forwardRef)(
8835
9123
  children
8836
9124
  }
8837
9125
  ),
8838
- selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
9126
+ selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
8839
9127
  ]
8840
9128
  }
8841
9129
  ),
8842
- "menu-overflow": /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9130
+ "menu-overflow": /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8843
9131
  "li",
8844
9132
  {
8845
9133
  "data-variant": "menu-overflow",
@@ -8850,7 +9138,7 @@ var MenuItem = (0, import_react30.forwardRef)(
8850
9138
  `,
8851
9139
  ...commonProps,
8852
9140
  children: [
8853
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9141
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8854
9142
  "span",
8855
9143
  {
8856
9144
  className: cn(
@@ -8860,11 +9148,11 @@ var MenuItem = (0, import_react30.forwardRef)(
8860
9148
  children
8861
9149
  }
8862
9150
  ),
8863
- selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
9151
+ selectedValue === value && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
8864
9152
  ]
8865
9153
  }
8866
9154
  ),
8867
- breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9155
+ breadcrumb: /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8868
9156
  "li",
8869
9157
  {
8870
9158
  "data-variant": "breadcrumb",
@@ -8876,7 +9164,7 @@ var MenuItem = (0, import_react30.forwardRef)(
8876
9164
  `,
8877
9165
  ...commonProps,
8878
9166
  children: [
8879
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9167
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8880
9168
  "span",
8881
9169
  {
8882
9170
  className: cn(
@@ -8886,8 +9174,8 @@ var MenuItem = (0, import_react30.forwardRef)(
8886
9174
  children
8887
9175
  }
8888
9176
  ),
8889
- separator && /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
8890
- import_phosphor_react22.CaretRight,
9177
+ separator && /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
9178
+ import_phosphor_react23.CaretRight,
8891
9179
  {
8892
9180
  size: 16,
8893
9181
  className: "text-text-600",
@@ -8923,10 +9211,10 @@ var MenuOverflow = ({
8923
9211
  onValueChange,
8924
9212
  ...props
8925
9213
  }) => {
8926
- const containerRef = (0, import_react30.useRef)(null);
8927
- const [showLeftArrow, setShowLeftArrow] = (0, import_react30.useState)(false);
8928
- const [showRightArrow, setShowRightArrow] = (0, import_react30.useState)(false);
8929
- (0, import_react30.useEffect)(() => {
9214
+ const containerRef = (0, import_react31.useRef)(null);
9215
+ const [showLeftArrow, setShowLeftArrow] = (0, import_react31.useState)(false);
9216
+ const [showRightArrow, setShowRightArrow] = (0, import_react31.useState)(false);
9217
+ (0, import_react31.useEffect)(() => {
8930
9218
  const checkScroll = () => internalCheckScroll(
8931
9219
  containerRef.current,
8932
9220
  setShowLeftArrow,
@@ -8941,25 +9229,25 @@ var MenuOverflow = ({
8941
9229
  window.removeEventListener("resize", checkScroll);
8942
9230
  };
8943
9231
  }, []);
8944
- return /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9232
+ return /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8945
9233
  "div",
8946
9234
  {
8947
9235
  "data-testid": "menu-overflow-wrapper",
8948
9236
  className: cn("relative w-full overflow-hidden", className),
8949
9237
  children: [
8950
- showLeftArrow && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9238
+ showLeftArrow && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8951
9239
  "button",
8952
9240
  {
8953
9241
  onClick: () => internalScroll(containerRef.current, "left"),
8954
9242
  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",
8955
9243
  "data-testid": "scroll-left-button",
8956
9244
  children: [
8957
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_phosphor_react22.CaretLeft, { size: 16 }),
8958
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "sr-only", children: "Scroll left" })
9245
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_phosphor_react23.CaretLeft, { size: 16 }),
9246
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "sr-only", children: "Scroll left" })
8959
9247
  ]
8960
9248
  }
8961
9249
  ),
8962
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(
9250
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(
8963
9251
  Menu,
8964
9252
  {
8965
9253
  defaultValue,
@@ -8967,18 +9255,18 @@ var MenuOverflow = ({
8967
9255
  value,
8968
9256
  variant: "menu2",
8969
9257
  ...props,
8970
- children: /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(MenuContent, { ref: containerRef, variant: "menu2", children })
9258
+ children: /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(MenuContent, { ref: containerRef, variant: "menu2", children })
8971
9259
  }
8972
9260
  ),
8973
- showRightArrow && /* @__PURE__ */ (0, import_jsx_runtime50.jsxs)(
9261
+ showRightArrow && /* @__PURE__ */ (0, import_jsx_runtime51.jsxs)(
8974
9262
  "button",
8975
9263
  {
8976
9264
  onClick: () => internalScroll(containerRef.current, "right"),
8977
9265
  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",
8978
9266
  "data-testid": "scroll-right-button",
8979
9267
  children: [
8980
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)(import_phosphor_react22.CaretRight, { size: 16 }),
8981
- /* @__PURE__ */ (0, import_jsx_runtime50.jsx)("span", { className: "sr-only", children: "Scroll right" })
9268
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(import_phosphor_react23.CaretRight, { size: 16 }),
9269
+ /* @__PURE__ */ (0, import_jsx_runtime51.jsx)("span", { className: "sr-only", children: "Scroll right" })
8982
9270
  ]
8983
9271
  }
8984
9272
  )
@@ -8986,11 +9274,11 @@ var MenuOverflow = ({
8986
9274
  }
8987
9275
  );
8988
9276
  };
8989
- var injectStore5 = (children, store) => import_react30.Children.map(children, (child) => {
8990
- if (!(0, import_react30.isValidElement)(child)) return child;
9277
+ var injectStore5 = (children, store) => import_react31.Children.map(children, (child) => {
9278
+ if (!(0, import_react31.isValidElement)(child)) return child;
8991
9279
  const typedChild = child;
8992
9280
  const shouldInject = typedChild.type === MenuItem;
8993
- return (0, import_react30.cloneElement)(typedChild, {
9281
+ return (0, import_react31.cloneElement)(typedChild, {
8994
9282
  ...shouldInject ? { store } : {},
8995
9283
  ...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
8996
9284
  });
@@ -8998,13 +9286,13 @@ var injectStore5 = (children, store) => import_react30.Children.map(children, (c
8998
9286
  var Menu_default = Menu;
8999
9287
 
9000
9288
  // src/components/Card/Card.tsx
9001
- var import_react32 = require("react");
9002
- var import_phosphor_react23 = require("phosphor-react");
9289
+ var import_react33 = require("react");
9290
+ var import_phosphor_react24 = require("phosphor-react");
9003
9291
 
9004
9292
  // src/components/IconRender/IconRender.tsx
9005
- var import_react31 = require("react");
9293
+ var import_react32 = require("react");
9006
9294
  var PhosphorIcons = __toESM(require("phosphor-react"));
9007
- var import_jsx_runtime51 = require("react/jsx-runtime");
9295
+ var import_jsx_runtime52 = require("react/jsx-runtime");
9008
9296
  var IconRender = ({
9009
9297
  iconName,
9010
9298
  color = "#000000",
@@ -9014,18 +9302,18 @@ var IconRender = ({
9014
9302
  if (typeof iconName === "string") {
9015
9303
  switch (iconName) {
9016
9304
  case "Chat_PT":
9017
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChatPT, { size, color });
9305
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChatPT, { size, color });
9018
9306
  case "Chat_EN":
9019
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChatEN, { size, color });
9307
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChatEN, { size, color });
9020
9308
  case "Chat_ES":
9021
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(ChatES, { size, color });
9309
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(ChatES, { size, color });
9022
9310
  default: {
9023
9311
  const IconComponent = PhosphorIcons[iconName] || PhosphorIcons.Question;
9024
- return /* @__PURE__ */ (0, import_jsx_runtime51.jsx)(IconComponent, { size, color, weight });
9312
+ return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(IconComponent, { size, color, weight });
9025
9313
  }
9026
9314
  }
9027
9315
  } else {
9028
- return (0, import_react31.cloneElement)(iconName, {
9316
+ return (0, import_react32.cloneElement)(iconName, {
9029
9317
  size,
9030
9318
  color: "currentColor"
9031
9319
  });
@@ -9034,7 +9322,7 @@ var IconRender = ({
9034
9322
  var IconRender_default = IconRender;
9035
9323
 
9036
9324
  // src/components/Card/Card.tsx
9037
- var import_jsx_runtime52 = require("react/jsx-runtime");
9325
+ var import_jsx_runtime53 = require("react/jsx-runtime");
9038
9326
  var CARD_BASE_CLASSES = {
9039
9327
  default: "w-full bg-background border border-border-50 rounded-xl",
9040
9328
  compact: "w-full bg-background border border-border-50 rounded-lg",
@@ -9060,7 +9348,7 @@ var CARD_CURSOR_CLASSES = {
9060
9348
  default: "",
9061
9349
  pointer: "cursor-pointer"
9062
9350
  };
9063
- var CardBase = (0, import_react32.forwardRef)(
9351
+ var CardBase = (0, import_react33.forwardRef)(
9064
9352
  ({
9065
9353
  children,
9066
9354
  variant = "default",
@@ -9076,7 +9364,7 @@ var CardBase = (0, import_react32.forwardRef)(
9076
9364
  const minHeightClasses = CARD_MIN_HEIGHT_CLASSES[minHeight];
9077
9365
  const layoutClasses = CARD_LAYOUT_CLASSES[layout];
9078
9366
  const cursorClasses = CARD_CURSOR_CLASSES[cursor];
9079
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9367
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9080
9368
  "div",
9081
9369
  {
9082
9370
  ref,
@@ -9118,7 +9406,7 @@ var ACTION_HEADER_CLASSES = {
9118
9406
  error: "text-error-300",
9119
9407
  info: "text-info-300"
9120
9408
  };
9121
- var CardActivitiesResults = (0, import_react32.forwardRef)(
9409
+ var CardActivitiesResults = (0, import_react33.forwardRef)(
9122
9410
  ({
9123
9411
  icon,
9124
9412
  title,
@@ -9134,7 +9422,7 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9134
9422
  const actionIconClasses = ACTION_ICON_CLASSES[action];
9135
9423
  const actionSubTitleClasses = ACTION_SUBTITLE_CLASSES[action];
9136
9424
  const actionHeaderClasses = ACTION_HEADER_CLASSES[action];
9137
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9425
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9138
9426
  "div",
9139
9427
  {
9140
9428
  ref,
@@ -9144,7 +9432,7 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9144
9432
  ),
9145
9433
  ...props,
9146
9434
  children: [
9147
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9435
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9148
9436
  "div",
9149
9437
  {
9150
9438
  className: cn(
@@ -9153,7 +9441,7 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9153
9441
  extended ? "rounded-t-xl" : "rounded-xl"
9154
9442
  ),
9155
9443
  children: [
9156
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9444
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9157
9445
  "span",
9158
9446
  {
9159
9447
  className: cn(
@@ -9163,7 +9451,7 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9163
9451
  children: icon
9164
9452
  }
9165
9453
  ),
9166
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9454
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9167
9455
  Text_default,
9168
9456
  {
9169
9457
  size: "2xs",
@@ -9172,7 +9460,7 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9172
9460
  children: title
9173
9461
  }
9174
9462
  ),
9175
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9463
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9176
9464
  "p",
9177
9465
  {
9178
9466
  className: cn("text-lg font-bold truncate", actionSubTitleClasses),
@@ -9182,8 +9470,8 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9182
9470
  ]
9183
9471
  }
9184
9472
  ),
9185
- extended && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
9186
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9473
+ extended && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
9474
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9187
9475
  "p",
9188
9476
  {
9189
9477
  className: cn(
@@ -9193,14 +9481,14 @@ var CardActivitiesResults = (0, import_react32.forwardRef)(
9193
9481
  children: header
9194
9482
  }
9195
9483
  ),
9196
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Badge_default, { size: "large", action: "info", children: description })
9484
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Badge_default, { size: "large", action: "info", children: description })
9197
9485
  ] })
9198
9486
  ]
9199
9487
  }
9200
9488
  );
9201
9489
  }
9202
9490
  );
9203
- var CardQuestions = (0, import_react32.forwardRef)(
9491
+ var CardQuestions = (0, import_react33.forwardRef)(
9204
9492
  ({
9205
9493
  header,
9206
9494
  state = "undone",
@@ -9212,7 +9500,7 @@ var CardQuestions = (0, import_react32.forwardRef)(
9212
9500
  const isDone = state === "done";
9213
9501
  const stateLabel = isDone ? "Realizado" : "N\xE3o Realizado";
9214
9502
  const buttonLabel = isDone ? "Ver Resultado" : "Responder";
9215
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9503
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9216
9504
  CardBase,
9217
9505
  {
9218
9506
  ref,
@@ -9222,9 +9510,9 @@ var CardQuestions = (0, import_react32.forwardRef)(
9222
9510
  className: cn("justify-between gap-4", className),
9223
9511
  ...props,
9224
9512
  children: [
9225
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
9226
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
9227
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex flex-row gap-6 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9513
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
9514
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
9515
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-row gap-6 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9228
9516
  Badge_default,
9229
9517
  {
9230
9518
  size: "medium",
@@ -9234,7 +9522,7 @@ var CardQuestions = (0, import_react32.forwardRef)(
9234
9522
  }
9235
9523
  ) })
9236
9524
  ] }),
9237
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9525
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9238
9526
  Button_default,
9239
9527
  {
9240
9528
  size: "extra-small",
@@ -9248,7 +9536,7 @@ var CardQuestions = (0, import_react32.forwardRef)(
9248
9536
  );
9249
9537
  }
9250
9538
  );
9251
- var CardProgress = (0, import_react32.forwardRef)(
9539
+ var CardProgress = (0, import_react33.forwardRef)(
9252
9540
  ({
9253
9541
  header,
9254
9542
  subhead,
@@ -9265,19 +9553,19 @@ var CardProgress = (0, import_react32.forwardRef)(
9265
9553
  }, ref) => {
9266
9554
  const isHorizontal = direction === "horizontal";
9267
9555
  const contentComponent = {
9268
- horizontal: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_jsx_runtime52.Fragment, { children: [
9269
- showDates && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
9270
- initialDate && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
9271
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
9272
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-600", children: initialDate })
9556
+ horizontal: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_jsx_runtime53.Fragment, { children: [
9557
+ showDates && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
9558
+ initialDate && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
9559
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
9560
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-600", children: initialDate })
9273
9561
  ] }),
9274
- endDate && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
9275
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
9276
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-600", children: endDate })
9562
+ endDate && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
9563
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
9564
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-600", children: endDate })
9277
9565
  ] })
9278
9566
  ] }),
9279
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
9280
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9567
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
9568
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9281
9569
  ProgressBar_default,
9282
9570
  {
9283
9571
  size: "small",
@@ -9286,7 +9574,7 @@ var CardProgress = (0, import_react32.forwardRef)(
9286
9574
  "data-testid": "progress-bar"
9287
9575
  }
9288
9576
  ),
9289
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9577
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9290
9578
  Text_default,
9291
9579
  {
9292
9580
  size: "xs",
@@ -9302,9 +9590,9 @@ var CardProgress = (0, import_react32.forwardRef)(
9302
9590
  )
9303
9591
  ] })
9304
9592
  ] }),
9305
- vertical: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-800", children: subhead })
9593
+ vertical: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-text-800", children: subhead })
9306
9594
  };
9307
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9595
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9308
9596
  CardBase,
9309
9597
  {
9310
9598
  ref,
@@ -9315,7 +9603,7 @@ var CardProgress = (0, import_react32.forwardRef)(
9315
9603
  className: cn(isHorizontal ? "h-20" : "", className),
9316
9604
  ...props,
9317
9605
  children: [
9318
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9606
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9319
9607
  "div",
9320
9608
  {
9321
9609
  className: cn(
@@ -9328,7 +9616,7 @@ var CardProgress = (0, import_react32.forwardRef)(
9328
9616
  children: icon
9329
9617
  }
9330
9618
  ),
9331
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9619
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9332
9620
  "div",
9333
9621
  {
9334
9622
  className: cn(
@@ -9336,7 +9624,7 @@ var CardProgress = (0, import_react32.forwardRef)(
9336
9624
  !isHorizontal && "gap-4"
9337
9625
  ),
9338
9626
  children: [
9339
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
9627
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
9340
9628
  contentComponent[direction]
9341
9629
  ]
9342
9630
  }
@@ -9346,7 +9634,7 @@ var CardProgress = (0, import_react32.forwardRef)(
9346
9634
  );
9347
9635
  }
9348
9636
  );
9349
- var CardTopic = (0, import_react32.forwardRef)(
9637
+ var CardTopic = (0, import_react33.forwardRef)(
9350
9638
  ({
9351
9639
  header,
9352
9640
  subHead,
@@ -9356,7 +9644,7 @@ var CardTopic = (0, import_react32.forwardRef)(
9356
9644
  className = "",
9357
9645
  ...props
9358
9646
  }, ref) => {
9359
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9647
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9360
9648
  CardBase,
9361
9649
  {
9362
9650
  ref,
@@ -9367,13 +9655,13 @@ var CardTopic = (0, import_react32.forwardRef)(
9367
9655
  className: cn("justify-center gap-2 py-2 px-4", className),
9368
9656
  ...props,
9369
9657
  children: [
9370
- subHead && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(import_react32.Fragment, { children: [
9371
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { children: text }),
9372
- index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { children: "\u2022" })
9658
+ subHead && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(import_react33.Fragment, { children: [
9659
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { children: text }),
9660
+ index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { children: "\u2022" })
9373
9661
  ] }, `${text} - ${index}`)) }),
9374
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
9375
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
9376
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9662
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
9663
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
9664
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9377
9665
  ProgressBar_default,
9378
9666
  {
9379
9667
  size: "small",
@@ -9382,7 +9670,7 @@ var CardTopic = (0, import_react32.forwardRef)(
9382
9670
  "data-testid": "progress-bar"
9383
9671
  }
9384
9672
  ),
9385
- showPercentage && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9673
+ showPercentage && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9386
9674
  Text_default,
9387
9675
  {
9388
9676
  size: "xs",
@@ -9402,7 +9690,7 @@ var CardTopic = (0, import_react32.forwardRef)(
9402
9690
  );
9403
9691
  }
9404
9692
  );
9405
- var CardPerformance = (0, import_react32.forwardRef)(
9693
+ var CardPerformance = (0, import_react33.forwardRef)(
9406
9694
  ({
9407
9695
  header,
9408
9696
  progress,
@@ -9416,7 +9704,7 @@ var CardPerformance = (0, import_react32.forwardRef)(
9416
9704
  ...props
9417
9705
  }, ref) => {
9418
9706
  const hasProgress = progress !== void 0;
9419
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9707
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9420
9708
  CardBase,
9421
9709
  {
9422
9710
  ref,
@@ -9430,10 +9718,10 @@ var CardPerformance = (0, import_react32.forwardRef)(
9430
9718
  onClick: () => actionVariant == "caret" && onClickButton?.(valueButton),
9431
9719
  ...props,
9432
9720
  children: [
9433
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
9434
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row justify-between items-center gap-2", children: [
9435
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
9436
- actionVariant === "button" && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9721
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
9722
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row justify-between items-center gap-2", children: [
9723
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
9724
+ actionVariant === "button" && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9437
9725
  Button_default,
9438
9726
  {
9439
9727
  variant: "outline",
@@ -9444,17 +9732,17 @@ var CardPerformance = (0, import_react32.forwardRef)(
9444
9732
  }
9445
9733
  )
9446
9734
  ] }),
9447
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9735
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9448
9736
  ProgressBar_default,
9449
9737
  {
9450
9738
  value: progress,
9451
9739
  label: `${progress}% ${labelProgress}`,
9452
9740
  variant: progressVariant
9453
9741
  }
9454
- ) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-xs text-text-600 truncate", children: description }) })
9742
+ ) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-xs text-text-600 truncate", children: description }) })
9455
9743
  ] }),
9456
- actionVariant == "caret" && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9457
- import_phosphor_react23.CaretRight,
9744
+ actionVariant == "caret" && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9745
+ import_phosphor_react24.CaretRight,
9458
9746
  {
9459
9747
  className: "size-4.5 text-text-800 cursor-pointer",
9460
9748
  "data-testid": "caret-icon"
@@ -9465,7 +9753,7 @@ var CardPerformance = (0, import_react32.forwardRef)(
9465
9753
  );
9466
9754
  }
9467
9755
  );
9468
- var CardResults = (0, import_react32.forwardRef)(
9756
+ var CardResults = (0, import_react33.forwardRef)(
9469
9757
  ({
9470
9758
  header,
9471
9759
  correct_answers,
@@ -9477,7 +9765,7 @@ var CardResults = (0, import_react32.forwardRef)(
9477
9765
  ...props
9478
9766
  }, ref) => {
9479
9767
  const isRow = direction == "row";
9480
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9768
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9481
9769
  CardBase,
9482
9770
  {
9483
9771
  ref,
@@ -9487,7 +9775,7 @@ var CardResults = (0, import_react32.forwardRef)(
9487
9775
  className: cn("items-stretch cursor-pointer pr-4", className),
9488
9776
  ...props,
9489
9777
  children: [
9490
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9778
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9491
9779
  "div",
9492
9780
  {
9493
9781
  className: cn(
@@ -9496,11 +9784,11 @@ var CardResults = (0, import_react32.forwardRef)(
9496
9784
  style: {
9497
9785
  backgroundColor: color
9498
9786
  },
9499
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(IconRender_default, { iconName: icon, color: "currentColor", size: 20 })
9787
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(IconRender_default, { iconName: icon, color: "currentColor", size: 20 })
9500
9788
  }
9501
9789
  ),
9502
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "w-full flex flex-row justify-between items-center", children: [
9503
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9790
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "w-full flex flex-row justify-between items-center", children: [
9791
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9504
9792
  "div",
9505
9793
  {
9506
9794
  className: cn(
@@ -9508,28 +9796,28 @@ var CardResults = (0, import_react32.forwardRef)(
9508
9796
  isRow ? "flex-row items-center gap-2" : "flex-col"
9509
9797
  ),
9510
9798
  children: [
9511
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm font-bold text-text-950 flex-1", children: header }),
9512
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "flex flex-wrap flex-row gap-1 items-center", children: [
9513
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9799
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm font-bold text-text-950 flex-1", children: header }),
9800
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "flex flex-wrap flex-row gap-1 items-center", children: [
9801
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9514
9802
  Badge_default,
9515
9803
  {
9516
9804
  action: "success",
9517
9805
  variant: "solid",
9518
9806
  size: "large",
9519
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CheckCircle, {}),
9807
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CheckCircle, {}),
9520
9808
  children: [
9521
9809
  correct_answers,
9522
9810
  " Corretas"
9523
9811
  ]
9524
9812
  }
9525
9813
  ),
9526
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9814
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9527
9815
  Badge_default,
9528
9816
  {
9529
9817
  action: "error",
9530
9818
  variant: "solid",
9531
9819
  size: "large",
9532
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.XCircle, {}),
9820
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.XCircle, {}),
9533
9821
  children: [
9534
9822
  incorrect_answers,
9535
9823
  " Incorretas"
@@ -9540,14 +9828,14 @@ var CardResults = (0, import_react32.forwardRef)(
9540
9828
  ]
9541
9829
  }
9542
9830
  ),
9543
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
9831
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
9544
9832
  ] })
9545
9833
  ]
9546
9834
  }
9547
9835
  );
9548
9836
  }
9549
9837
  );
9550
- var CardStatus = (0, import_react32.forwardRef)(
9838
+ var CardStatus = (0, import_react33.forwardRef)(
9551
9839
  ({ header, className, status, label, ...props }, ref) => {
9552
9840
  const getLabelBadge = (status2) => {
9553
9841
  switch (status2) {
@@ -9566,13 +9854,13 @@ var CardStatus = (0, import_react32.forwardRef)(
9566
9854
  const getIconBadge = (status2) => {
9567
9855
  switch (status2) {
9568
9856
  case "correct":
9569
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CheckCircle, {});
9857
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CheckCircle, {});
9570
9858
  case "incorrect":
9571
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.XCircle, {});
9859
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.XCircle, {});
9572
9860
  case "pending":
9573
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.Clock, {});
9861
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Clock, {});
9574
9862
  default:
9575
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.XCircle, {});
9863
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.XCircle, {});
9576
9864
  }
9577
9865
  };
9578
9866
  const getActionBadge = (status2) => {
@@ -9587,7 +9875,7 @@ var CardStatus = (0, import_react32.forwardRef)(
9587
9875
  return "info";
9588
9876
  }
9589
9877
  };
9590
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9878
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9591
9879
  CardBase,
9592
9880
  {
9593
9881
  ref,
@@ -9596,10 +9884,10 @@ var CardStatus = (0, import_react32.forwardRef)(
9596
9884
  minHeight: "medium",
9597
9885
  className: cn("items-center cursor-pointer", className),
9598
9886
  ...props,
9599
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
9600
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
9601
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
9602
- status && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9887
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
9888
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
9889
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
9890
+ status && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9603
9891
  Badge_default,
9604
9892
  {
9605
9893
  action: getActionBadge(status),
@@ -9609,17 +9897,17 @@ var CardStatus = (0, import_react32.forwardRef)(
9609
9897
  children: getLabelBadge(status)
9610
9898
  }
9611
9899
  ),
9612
- label && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-800", children: label })
9900
+ label && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-text-800", children: label })
9613
9901
  ] }),
9614
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
9902
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
9615
9903
  ] })
9616
9904
  }
9617
9905
  );
9618
9906
  }
9619
9907
  );
9620
- var CardSettings = (0, import_react32.forwardRef)(
9908
+ var CardSettings = (0, import_react33.forwardRef)(
9621
9909
  ({ header, className, icon, ...props }, ref) => {
9622
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9910
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9623
9911
  CardBase,
9624
9912
  {
9625
9913
  ref,
@@ -9632,17 +9920,17 @@ var CardSettings = (0, import_react32.forwardRef)(
9632
9920
  ),
9633
9921
  ...props,
9634
9922
  children: [
9635
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
9636
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "w-full text-sm truncate", children: header }),
9637
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CaretRight, { size: 24, className: "cursor-pointer" })
9923
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
9924
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "w-full text-sm truncate", children: header }),
9925
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CaretRight, { size: 24, className: "cursor-pointer" })
9638
9926
  ]
9639
9927
  }
9640
9928
  );
9641
9929
  }
9642
9930
  );
9643
- var CardSupport = (0, import_react32.forwardRef)(
9931
+ var CardSupport = (0, import_react33.forwardRef)(
9644
9932
  ({ header, className, direction = "col", children, ...props }, ref) => {
9645
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9933
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9646
9934
  CardBase,
9647
9935
  {
9648
9936
  ref,
@@ -9655,7 +9943,7 @@ var CardSupport = (0, import_react32.forwardRef)(
9655
9943
  ),
9656
9944
  ...props,
9657
9945
  children: [
9658
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9946
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9659
9947
  "div",
9660
9948
  {
9661
9949
  className: cn(
@@ -9663,18 +9951,18 @@ var CardSupport = (0, import_react32.forwardRef)(
9663
9951
  direction == "col" ? "flex-col" : "flex-row items-center"
9664
9952
  ),
9665
9953
  children: [
9666
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "w-full min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
9667
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("span", { className: "flex flex-row gap-1", children })
9954
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "w-full min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
9955
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("span", { className: "flex flex-row gap-1", children })
9668
9956
  ]
9669
9957
  }
9670
9958
  ),
9671
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
9959
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
9672
9960
  ]
9673
9961
  }
9674
9962
  );
9675
9963
  }
9676
9964
  );
9677
- var CardForum = (0, import_react32.forwardRef)(
9965
+ var CardForum = (0, import_react33.forwardRef)(
9678
9966
  ({
9679
9967
  title,
9680
9968
  content,
@@ -9688,7 +9976,7 @@ var CardForum = (0, import_react32.forwardRef)(
9688
9976
  hour,
9689
9977
  ...props
9690
9978
  }, ref) => {
9691
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
9979
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9692
9980
  CardBase,
9693
9981
  {
9694
9982
  ref,
@@ -9699,7 +9987,7 @@ var CardForum = (0, import_react32.forwardRef)(
9699
9987
  className: cn("w-auto h-auto gap-3", className),
9700
9988
  ...props,
9701
9989
  children: [
9702
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
9990
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9703
9991
  "button",
9704
9992
  {
9705
9993
  type: "button",
@@ -9708,18 +9996,18 @@ var CardForum = (0, import_react32.forwardRef)(
9708
9996
  className: "min-w-8 h-8 rounded-full bg-background-950"
9709
9997
  }
9710
9998
  ),
9711
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
9712
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
9713
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
9714
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("p", { className: "text-xs text-text-600", children: [
9999
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
10000
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
10001
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
10002
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("p", { className: "text-xs text-text-600", children: [
9715
10003
  "\u2022 ",
9716
10004
  date,
9717
10005
  " \u2022 ",
9718
10006
  hour
9719
10007
  ] })
9720
10008
  ] }),
9721
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
9722
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
10009
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
10010
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9723
10011
  "button",
9724
10012
  {
9725
10013
  type: "button",
@@ -9727,8 +10015,8 @@ var CardForum = (0, import_react32.forwardRef)(
9727
10015
  onClick: () => onClickComments?.(valueComments),
9728
10016
  className: "text-text-600 flex flex-row gap-2 items-center",
9729
10017
  children: [
9730
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.ChatCircleText, { "aria-hidden": "true", size: 16 }),
9731
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("p", { className: "text-xs", children: [
10018
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.ChatCircleText, { "aria-hidden": "true", size: 16 }),
10019
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("p", { className: "text-xs", children: [
9732
10020
  comments,
9733
10021
  " respostas"
9734
10022
  ] })
@@ -9741,7 +10029,7 @@ var CardForum = (0, import_react32.forwardRef)(
9741
10029
  );
9742
10030
  }
9743
10031
  );
9744
- var CardAudio = (0, import_react32.forwardRef)(
10032
+ var CardAudio = (0, import_react33.forwardRef)(
9745
10033
  ({
9746
10034
  src,
9747
10035
  title,
@@ -9755,16 +10043,16 @@ var CardAudio = (0, import_react32.forwardRef)(
9755
10043
  className,
9756
10044
  ...props
9757
10045
  }, ref) => {
9758
- const [isPlaying, setIsPlaying] = (0, import_react32.useState)(false);
9759
- const [currentTime, setCurrentTime] = (0, import_react32.useState)(0);
9760
- const [duration, setDuration] = (0, import_react32.useState)(0);
9761
- const [volume, setVolume] = (0, import_react32.useState)(1);
9762
- const [showVolumeControl, setShowVolumeControl] = (0, import_react32.useState)(false);
9763
- const [showSpeedMenu, setShowSpeedMenu] = (0, import_react32.useState)(false);
9764
- const [playbackRate, setPlaybackRate] = (0, import_react32.useState)(1);
9765
- const audioRef = (0, import_react32.useRef)(null);
9766
- const volumeControlRef = (0, import_react32.useRef)(null);
9767
- const speedMenuRef = (0, import_react32.useRef)(null);
10046
+ const [isPlaying, setIsPlaying] = (0, import_react33.useState)(false);
10047
+ const [currentTime, setCurrentTime] = (0, import_react33.useState)(0);
10048
+ const [duration, setDuration] = (0, import_react33.useState)(0);
10049
+ const [volume, setVolume] = (0, import_react33.useState)(1);
10050
+ const [showVolumeControl, setShowVolumeControl] = (0, import_react33.useState)(false);
10051
+ const [showSpeedMenu, setShowSpeedMenu] = (0, import_react33.useState)(false);
10052
+ const [playbackRate, setPlaybackRate] = (0, import_react33.useState)(1);
10053
+ const audioRef = (0, import_react33.useRef)(null);
10054
+ const volumeControlRef = (0, import_react33.useRef)(null);
10055
+ const speedMenuRef = (0, import_react33.useRef)(null);
9768
10056
  const formatTime2 = (time) => {
9769
10057
  const minutes = Math.floor(time / 60);
9770
10058
  const seconds = Math.floor(time % 60);
@@ -9831,14 +10119,14 @@ var CardAudio = (0, import_react32.forwardRef)(
9831
10119
  };
9832
10120
  const getVolumeIcon = () => {
9833
10121
  if (volume === 0) {
9834
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.SpeakerSimpleX, { size: 24 });
10122
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.SpeakerSimpleX, { size: 24 });
9835
10123
  }
9836
10124
  if (volume < 0.5) {
9837
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.SpeakerLow, { size: 24 });
10125
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.SpeakerLow, { size: 24 });
9838
10126
  }
9839
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.SpeakerHigh, { size: 24 });
10127
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.SpeakerHigh, { size: 24 });
9840
10128
  };
9841
- (0, import_react32.useEffect)(() => {
10129
+ (0, import_react33.useEffect)(() => {
9842
10130
  const handleClickOutside = (event) => {
9843
10131
  if (volumeControlRef.current && !volumeControlRef.current.contains(event.target)) {
9844
10132
  setShowVolumeControl(false);
@@ -9852,7 +10140,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9852
10140
  document.removeEventListener("mousedown", handleClickOutside);
9853
10141
  };
9854
10142
  }, []);
9855
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
10143
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
9856
10144
  CardBase,
9857
10145
  {
9858
10146
  ref,
@@ -9865,7 +10153,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9865
10153
  ),
9866
10154
  ...props,
9867
10155
  children: [
9868
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10156
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9869
10157
  "audio",
9870
10158
  {
9871
10159
  ref: audioRef,
@@ -9877,7 +10165,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9877
10165
  onEnded: handleEnded,
9878
10166
  "data-testid": "audio-element",
9879
10167
  "aria-label": title,
9880
- children: tracks ? tracks.map((track) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10168
+ children: tracks ? tracks.map((track) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9881
10169
  "track",
9882
10170
  {
9883
10171
  kind: track.kind,
@@ -9887,7 +10175,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9887
10175
  default: track.default
9888
10176
  },
9889
10177
  track.src
9890
- )) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10178
+ )) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9891
10179
  "track",
9892
10180
  {
9893
10181
  kind: "captions",
@@ -9898,7 +10186,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9898
10186
  )
9899
10187
  }
9900
10188
  ),
9901
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10189
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9902
10190
  "button",
9903
10191
  {
9904
10192
  type: "button",
@@ -9906,14 +10194,14 @@ var CardAudio = (0, import_react32.forwardRef)(
9906
10194
  disabled: !src,
9907
10195
  className: "cursor-pointer text-text-950 hover:text-primary-600 disabled:text-text-400 disabled:cursor-not-allowed",
9908
10196
  "aria-label": isPlaying ? "Pausar" : "Reproduzir",
9909
- children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex gap-0.5", children: [
9910
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" }),
9911
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" })
9912
- ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.Play, { size: 24 })
10197
+ children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex gap-0.5", children: [
10198
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" }),
10199
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" })
10200
+ ] }) }) : /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Play, { size: 24 })
9913
10201
  }
9914
10202
  ),
9915
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
9916
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10203
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(currentTime) }),
10204
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9917
10205
  "button",
9918
10206
  {
9919
10207
  type: "button",
@@ -9928,7 +10216,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9928
10216
  }
9929
10217
  },
9930
10218
  "aria-label": "Barra de progresso do \xE1udio",
9931
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10219
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9932
10220
  "div",
9933
10221
  {
9934
10222
  className: "h-full bg-primary-600 rounded-full transition-all duration-100",
@@ -9939,19 +10227,19 @@ var CardAudio = (0, import_react32.forwardRef)(
9939
10227
  )
9940
10228
  }
9941
10229
  ) }),
9942
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
9943
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "relative h-6", ref: volumeControlRef, children: [
9944
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10230
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime2(duration) }),
10231
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "relative h-6", ref: volumeControlRef, children: [
10232
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9945
10233
  "button",
9946
10234
  {
9947
10235
  type: "button",
9948
10236
  onClick: toggleVolumeControl,
9949
10237
  className: "cursor-pointer text-text-950 hover:text-primary-600",
9950
10238
  "aria-label": "Controle de volume",
9951
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
10239
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
9952
10240
  }
9953
10241
  ),
9954
- showVolumeControl && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10242
+ showVolumeControl && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9955
10243
  "button",
9956
10244
  {
9957
10245
  type: "button",
@@ -9961,7 +10249,7 @@ var CardAudio = (0, import_react32.forwardRef)(
9961
10249
  setShowVolumeControl(false);
9962
10250
  }
9963
10251
  },
9964
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10252
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
9965
10253
  "input",
9966
10254
  {
9967
10255
  type: "range",
@@ -10002,22 +10290,22 @@ var CardAudio = (0, import_react32.forwardRef)(
10002
10290
  }
10003
10291
  )
10004
10292
  ] }),
10005
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "relative h-6", ref: speedMenuRef, children: [
10006
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10293
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "relative h-6", ref: speedMenuRef, children: [
10294
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10007
10295
  "button",
10008
10296
  {
10009
10297
  type: "button",
10010
10298
  onClick: toggleSpeedMenu,
10011
10299
  className: "cursor-pointer text-text-950 hover:text-primary-600",
10012
10300
  "aria-label": "Op\xE7\xF5es de velocidade",
10013
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.DotsThreeVertical, { size: 24 })
10301
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.DotsThreeVertical, { size: 24 })
10014
10302
  }
10015
10303
  ),
10016
- showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime52.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_runtime52.jsx)("div", { className: "flex flex-col gap-1", children: [
10304
+ showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime53.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_runtime53.jsx)("div", { className: "flex flex-col gap-1", children: [
10017
10305
  { speed: 1, label: "1x" },
10018
10306
  { speed: 1.5, label: "1.5x" },
10019
10307
  { speed: 2, label: "2x" }
10020
- ].map(({ speed, label }) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10308
+ ].map(({ speed, label }) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10021
10309
  "button",
10022
10310
  {
10023
10311
  type: "button",
@@ -10042,10 +10330,10 @@ var SIMULADO_BACKGROUND_CLASSES = {
10042
10330
  simuladao: "bg-exam-3",
10043
10331
  vestibular: "bg-exam-4"
10044
10332
  };
10045
- var CardSimulado = (0, import_react32.forwardRef)(
10333
+ var CardSimulado = (0, import_react33.forwardRef)(
10046
10334
  ({ title, duration, info, backgroundColor, className, ...props }, ref) => {
10047
10335
  const backgroundClass = SIMULADO_BACKGROUND_CLASSES[backgroundColor];
10048
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10336
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10049
10337
  CardBase,
10050
10338
  {
10051
10339
  ref,
@@ -10058,19 +10346,19 @@ var CardSimulado = (0, import_react32.forwardRef)(
10058
10346
  className
10059
10347
  ),
10060
10348
  ...props,
10061
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between items-center w-full gap-4", children: [
10062
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
10063
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
10064
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-4 text-text-700", children: [
10065
- duration && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-1", children: [
10066
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.Clock, { size: 16, className: "flex-shrink-0" }),
10067
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text_default, { size: "sm", children: duration })
10349
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex justify-between items-center w-full gap-4", children: [
10350
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
10351
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
10352
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-4 text-text-700", children: [
10353
+ duration && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-1", children: [
10354
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Clock, { size: 16, className: "flex-shrink-0" }),
10355
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text_default, { size: "sm", children: duration })
10068
10356
  ] }),
10069
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text_default, { size: "sm", className: "truncate", children: info })
10357
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text_default, { size: "sm", className: "truncate", children: info })
10070
10358
  ] })
10071
10359
  ] }),
10072
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10073
- import_phosphor_react23.CaretRight,
10360
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10361
+ import_phosphor_react24.CaretRight,
10074
10362
  {
10075
10363
  size: 24,
10076
10364
  className: "text-text-800 flex-shrink-0",
@@ -10082,7 +10370,7 @@ var CardSimulado = (0, import_react32.forwardRef)(
10082
10370
  );
10083
10371
  }
10084
10372
  );
10085
- var CardTest = (0, import_react32.forwardRef)(
10373
+ var CardTest = (0, import_react33.forwardRef)(
10086
10374
  ({
10087
10375
  title,
10088
10376
  duration,
@@ -10114,7 +10402,7 @@ var CardTest = (0, import_react32.forwardRef)(
10114
10402
  const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
10115
10403
  const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
10116
10404
  if (isSelectable) {
10117
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10405
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10118
10406
  "button",
10119
10407
  {
10120
10408
  ref,
@@ -10126,8 +10414,8 @@ var CardTest = (0, import_react32.forwardRef)(
10126
10414
  onKeyDown: handleKeyDown,
10127
10415
  "aria-pressed": selected,
10128
10416
  ...props,
10129
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
10130
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10417
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
10418
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10131
10419
  Text_default,
10132
10420
  {
10133
10421
  size: "md",
@@ -10136,10 +10424,10 @@ var CardTest = (0, import_react32.forwardRef)(
10136
10424
  children: title
10137
10425
  }
10138
10426
  ),
10139
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
10140
- duration && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
10141
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.Clock, { size: 16, className: "text-text-700" }),
10142
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10427
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
10428
+ duration && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
10429
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Clock, { size: 16, className: "text-text-700" }),
10430
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10143
10431
  Text_default,
10144
10432
  {
10145
10433
  size: "sm",
@@ -10148,7 +10436,7 @@ var CardTest = (0, import_react32.forwardRef)(
10148
10436
  }
10149
10437
  )
10150
10438
  ] }),
10151
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10439
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10152
10440
  Text_default,
10153
10441
  {
10154
10442
  size: "sm",
@@ -10161,14 +10449,14 @@ var CardTest = (0, import_react32.forwardRef)(
10161
10449
  }
10162
10450
  );
10163
10451
  }
10164
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10452
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10165
10453
  "div",
10166
10454
  {
10167
10455
  ref,
10168
10456
  className: cn(`${baseClasses} ${className}`.trim()),
10169
10457
  ...props,
10170
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
10171
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10458
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
10459
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10172
10460
  Text_default,
10173
10461
  {
10174
10462
  size: "md",
@@ -10177,10 +10465,10 @@ var CardTest = (0, import_react32.forwardRef)(
10177
10465
  children: title
10178
10466
  }
10179
10467
  ),
10180
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
10181
- duration && /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
10182
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(import_phosphor_react23.Clock, { size: 16, className: "text-text-700" }),
10183
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10468
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
10469
+ duration && /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
10470
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Clock, { size: 16, className: "text-text-700" }),
10471
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10184
10472
  Text_default,
10185
10473
  {
10186
10474
  size: "sm",
@@ -10189,7 +10477,7 @@ var CardTest = (0, import_react32.forwardRef)(
10189
10477
  }
10190
10478
  )
10191
10479
  ] }),
10192
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10480
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10193
10481
  Text_default,
10194
10482
  {
10195
10483
  size: "sm",
@@ -10225,15 +10513,15 @@ var SIMULATION_TYPE_STYLES = {
10225
10513
  text: "Vestibular"
10226
10514
  }
10227
10515
  };
10228
- var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulationClick, className, ...props }, ref) => {
10229
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10516
+ var CardSimulationHistory = (0, import_react33.forwardRef)(({ data, onSimulationClick, className, ...props }, ref) => {
10517
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10230
10518
  "div",
10231
10519
  {
10232
10520
  ref,
10233
10521
  className: cn("w-full max-w-[992px] h-auto", className),
10234
10522
  ...props,
10235
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-col gap-0", children: [
10236
- data.map((section, sectionIndex) => /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)(
10523
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-col gap-0", children: [
10524
+ data.map((section, sectionIndex) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
10237
10525
  "div",
10238
10526
  {
10239
10527
  className: cn(
@@ -10241,7 +10529,7 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10241
10529
  sectionIndex === 0 ? "rounded-t-3xl" : ""
10242
10530
  ),
10243
10531
  children: [
10244
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10532
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10245
10533
  Text_default,
10246
10534
  {
10247
10535
  size: "xs",
@@ -10250,9 +10538,9 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10250
10538
  children: section.date
10251
10539
  }
10252
10540
  ),
10253
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
10541
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
10254
10542
  const typeStyles = SIMULATION_TYPE_STYLES[simulation.type];
10255
- return /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10543
+ return /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10256
10544
  CardBase,
10257
10545
  {
10258
10546
  layout: "horizontal",
@@ -10264,9 +10552,9 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10264
10552
  transition-shadow duration-200 h-auto min-h-[61px]`
10265
10553
  ),
10266
10554
  onClick: () => onSimulationClick?.(simulation),
10267
- children: /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex justify-between items-center w-full gap-2", children: [
10268
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex flex-wrap flex-col justify-between sm:flex-row gap-2 flex-1 min-w-0", children: [
10269
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10555
+ children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex justify-between items-center w-full gap-2", children: [
10556
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-wrap flex-col justify-between sm:flex-row gap-2 flex-1 min-w-0", children: [
10557
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10270
10558
  Text_default,
10271
10559
  {
10272
10560
  size: "lg",
@@ -10275,8 +10563,8 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10275
10563
  children: simulation.title
10276
10564
  }
10277
10565
  ),
10278
- /* @__PURE__ */ (0, import_jsx_runtime52.jsxs)("div", { className: "flex items-center gap-2", children: [
10279
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10566
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex items-center gap-2", children: [
10567
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10280
10568
  Badge_default,
10281
10569
  {
10282
10570
  variant: "examsOutlined",
@@ -10285,11 +10573,11 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10285
10573
  children: typeStyles.text
10286
10574
  }
10287
10575
  ),
10288
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
10576
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
10289
10577
  ] })
10290
10578
  ] }),
10291
- /* @__PURE__ */ (0, import_jsx_runtime52.jsx)(
10292
- import_phosphor_react23.CaretRight,
10579
+ /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10580
+ import_phosphor_react24.CaretRight,
10293
10581
  {
10294
10582
  size: 24,
10295
10583
  className: "text-text-800 flex-shrink-0",
@@ -10304,15 +10592,15 @@ var CardSimulationHistory = (0, import_react32.forwardRef)(({ data, onSimulation
10304
10592
  ]
10305
10593
  }
10306
10594
  ) }, section.date)),
10307
- data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime52.jsx)("div", { className: "w-full h-6 bg-background rounded-b-3xl" })
10595
+ data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-full h-6 bg-background rounded-b-3xl" })
10308
10596
  ] })
10309
10597
  }
10310
10598
  );
10311
10599
  });
10312
10600
 
10313
10601
  // src/components/StatisticsCard/StatisticsCard.tsx
10314
- var import_phosphor_react24 = require("phosphor-react");
10315
- var import_jsx_runtime53 = require("react/jsx-runtime");
10602
+ var import_phosphor_react25 = require("phosphor-react");
10603
+ var import_jsx_runtime54 = require("react/jsx-runtime");
10316
10604
  var VARIANT_STYLES = {
10317
10605
  high: "bg-success-background",
10318
10606
  medium: "bg-warning-background",
@@ -10326,12 +10614,12 @@ var VALUE_TEXT_COLORS = {
10326
10614
  total: "text-info-700"
10327
10615
  };
10328
10616
  var StatCard = ({ item, showPlaceholder = false }) => {
10329
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
10617
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10330
10618
  "div",
10331
10619
  {
10332
10620
  className: `rounded-xl py-[17px] px-6 min-h-[105px] flex flex-col justify-center items-start gap-1 ${VARIANT_STYLES[item.variant]}`,
10333
10621
  children: [
10334
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10622
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10335
10623
  Text_default,
10336
10624
  {
10337
10625
  size: "4xl",
@@ -10340,7 +10628,7 @@ var StatCard = ({ item, showPlaceholder = false }) => {
10340
10628
  children: showPlaceholder ? "-" : item.value
10341
10629
  }
10342
10630
  ),
10343
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10631
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10344
10632
  Text_default,
10345
10633
  {
10346
10634
  size: "xs",
@@ -10375,13 +10663,13 @@ var StatisticsCard = ({
10375
10663
  }) => {
10376
10664
  const hasData = data && data.length > 0;
10377
10665
  const gridColumnsClass = hasData ? getGridColumnsClass(data.length) : "";
10378
- return /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
10666
+ return /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10379
10667
  "div",
10380
10668
  {
10381
10669
  className: `bg-background rounded-xl p-4 h-auto lg:h-[185px] flex flex-col gap-2 ${className}`,
10382
10670
  children: [
10383
- /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)("div", { className: "flex flex-row justify-between items-center gap-4", children: [
10384
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10671
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("div", { className: "flex flex-row justify-between items-center gap-4", children: [
10672
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10385
10673
  Text_default,
10386
10674
  {
10387
10675
  as: "h3",
@@ -10392,22 +10680,22 @@ var StatisticsCard = ({
10392
10680
  children: title
10393
10681
  }
10394
10682
  ),
10395
- dropdownOptions && dropdownOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)("div", { className: "w-[120px] min-w-[90px] sm:shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime53.jsxs)(
10683
+ dropdownOptions && dropdownOptions.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("div", { className: "w-[120px] min-w-[90px] sm:shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)(
10396
10684
  Select_default,
10397
10685
  {
10398
10686
  value: selectedDropdownValue,
10399
10687
  onValueChange: onDropdownChange,
10400
10688
  size: "medium",
10401
10689
  children: [
10402
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10690
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10403
10691
  SelectTrigger,
10404
10692
  {
10405
10693
  className: "border border-border-300 rounded [&>span]:whitespace-nowrap [&>span]:overflow-hidden [&>span]:text-ellipsis",
10406
10694
  "aria-label": dropdownAriaLabel,
10407
- children: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectValue, { placeholder: selectPlaceholder })
10695
+ children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectValue, { placeholder: selectPlaceholder })
10408
10696
  }
10409
10697
  ),
10410
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(SelectContent, { className: "min-w-[120px]", children: dropdownOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10698
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(SelectContent, { className: "min-w-[120px]", children: dropdownOptions.map((option) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10411
10699
  SelectItem,
10412
10700
  {
10413
10701
  value: option.value,
@@ -10420,11 +10708,11 @@ var StatisticsCard = ({
10420
10708
  }
10421
10709
  ) })
10422
10710
  ] }),
10423
- hasData ? /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10711
+ hasData ? /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10424
10712
  "div",
10425
10713
  {
10426
10714
  className: `grid grid-cols-1 sm:grid-cols-2 gap-[13px] ${gridColumnsClass}`,
10427
- children: data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10715
+ children: data.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10428
10716
  StatCard,
10429
10717
  {
10430
10718
  item,
@@ -10433,8 +10721,8 @@ var StatisticsCard = ({
10433
10721
  `${item.variant}-${item.label}-${index}`
10434
10722
  ))
10435
10723
  }
10436
- ) : /* @__PURE__ */ (0, import_jsx_runtime53.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: [
10437
- /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10724
+ ) : /* @__PURE__ */ (0, import_jsx_runtime54.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: [
10725
+ /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10438
10726
  Text_default,
10439
10727
  {
10440
10728
  size: "sm",
@@ -10443,14 +10731,14 @@ var StatisticsCard = ({
10443
10731
  children: emptyStateMessage
10444
10732
  }
10445
10733
  ),
10446
- onEmptyStateButtonClick && /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(
10734
+ onEmptyStateButtonClick && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10447
10735
  Button_default,
10448
10736
  {
10449
10737
  variant: "outline",
10450
10738
  action: "primary",
10451
10739
  size: "small",
10452
10740
  onClick: onEmptyStateButtonClick,
10453
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime53.jsx)(import_phosphor_react24.Plus, { size: 16, weight: "bold" }),
10741
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(import_phosphor_react25.Plus, { size: 16, weight: "bold" }),
10454
10742
  children: emptyStateButtonText
10455
10743
  }
10456
10744
  )
@@ -10461,7 +10749,7 @@ var StatisticsCard = ({
10461
10749
  };
10462
10750
 
10463
10751
  // src/components/NotFound/NotFound.tsx
10464
- var import_jsx_runtime54 = require("react/jsx-runtime");
10752
+ var import_jsx_runtime55 = require("react/jsx-runtime");
10465
10753
  var NotFound = ({
10466
10754
  title,
10467
10755
  description,
@@ -10504,22 +10792,22 @@ var NotFound = ({
10504
10792
  const errorTitle = title || getDefaultTitle();
10505
10793
  const errorDescription = description || getDefaultDescription();
10506
10794
  const errorCode = getErrorCode();
10507
- return /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10795
+ return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10508
10796
  "div",
10509
10797
  {
10510
10798
  className: cn(
10511
10799
  "flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
10512
10800
  className
10513
10801
  ),
10514
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10802
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10515
10803
  "main",
10516
10804
  {
10517
10805
  role: "main",
10518
10806
  "aria-labelledby": "error-title",
10519
10807
  "aria-describedby": "error-description",
10520
10808
  className: "flex flex-col items-center text-center max-w-md space-y-6",
10521
- children: /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("section", { "aria-label": `Erro ${errorCode}`, children: [
10522
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10809
+ children: /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("section", { "aria-label": `Erro ${errorCode}`, children: [
10810
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10523
10811
  "div",
10524
10812
  {
10525
10813
  className: "text-8xl font-bold text-primary-300 select-none",
@@ -10527,8 +10815,8 @@ var NotFound = ({
10527
10815
  children: errorCode
10528
10816
  }
10529
10817
  ),
10530
- /* @__PURE__ */ (0, import_jsx_runtime54.jsxs)("header", { className: "space-y-2", children: [
10531
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10818
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsxs)("header", { className: "space-y-2", children: [
10819
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10532
10820
  Text_default,
10533
10821
  {
10534
10822
  size: "xl",
@@ -10539,9 +10827,9 @@ var NotFound = ({
10539
10827
  children: errorTitle
10540
10828
  }
10541
10829
  ),
10542
- /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
10830
+ /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
10543
10831
  ] }),
10544
- onButtonClick && /* @__PURE__ */ (0, import_jsx_runtime54.jsx)("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ (0, import_jsx_runtime54.jsx)(
10832
+ onButtonClick && /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
10545
10833
  Button_default,
10546
10834
  {
10547
10835
  onClick: handleButtonClick,
@@ -10562,14 +10850,14 @@ var NotFound = ({
10562
10850
  var NotFound_default = NotFound;
10563
10851
 
10564
10852
  // src/components/VideoPlayer/VideoPlayer.tsx
10565
- var import_react34 = require("react");
10853
+ var import_react35 = require("react");
10566
10854
  var import_react_dom = require("react-dom");
10567
- var import_phosphor_react26 = require("phosphor-react");
10855
+ var import_phosphor_react27 = require("phosphor-react");
10568
10856
 
10569
10857
  // src/components/DownloadButton/DownloadButton.tsx
10570
- var import_react33 = require("react");
10571
- var import_phosphor_react25 = require("phosphor-react");
10572
- var import_jsx_runtime55 = require("react/jsx-runtime");
10858
+ var import_react34 = require("react");
10859
+ var import_phosphor_react26 = require("phosphor-react");
10860
+ var import_jsx_runtime56 = require("react/jsx-runtime");
10573
10861
  var getMimeType = (url) => {
10574
10862
  const extension = getFileExtension(url);
10575
10863
  const mimeTypes = {
@@ -10644,13 +10932,13 @@ var DownloadButton = ({
10644
10932
  lessonTitle = "aula",
10645
10933
  disabled = false
10646
10934
  }) => {
10647
- const [isDownloading, setIsDownloading] = (0, import_react33.useState)(false);
10648
- const isValidUrl = (0, import_react33.useCallback)((url) => {
10935
+ const [isDownloading, setIsDownloading] = (0, import_react34.useState)(false);
10936
+ const isValidUrl = (0, import_react34.useCallback)((url) => {
10649
10937
  return Boolean(
10650
10938
  url && url.trim() !== "" && url !== "undefined" && url !== "null"
10651
10939
  );
10652
10940
  }, []);
10653
- const getAvailableContent = (0, import_react33.useCallback)(() => {
10941
+ const getAvailableContent = (0, import_react34.useCallback)(() => {
10654
10942
  const downloads = [];
10655
10943
  if (isValidUrl(content.urlDoc)) {
10656
10944
  downloads.push({
@@ -10685,7 +10973,7 @@ var DownloadButton = ({
10685
10973
  }
10686
10974
  return downloads;
10687
10975
  }, [content, isValidUrl]);
10688
- const handleDownload = (0, import_react33.useCallback)(async () => {
10976
+ const handleDownload = (0, import_react34.useCallback)(async () => {
10689
10977
  if (disabled || isDownloading) return;
10690
10978
  const availableContent = getAvailableContent();
10691
10979
  if (availableContent.length === 0) {
@@ -10726,10 +11014,10 @@ var DownloadButton = ({
10726
11014
  if (!hasContent) {
10727
11015
  return null;
10728
11016
  }
10729
- return /* @__PURE__ */ (0, import_jsx_runtime55.jsx)("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(
11017
+ return /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
10730
11018
  IconButton_default,
10731
11019
  {
10732
- icon: /* @__PURE__ */ (0, import_jsx_runtime55.jsx)(import_phosphor_react25.DownloadSimple, { size: 24 }),
11020
+ icon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.DownloadSimple, { size: 24 }),
10733
11021
  onClick: handleDownload,
10734
11022
  disabled: disabled || isDownloading,
10735
11023
  "aria-label": (() => {
@@ -10750,7 +11038,7 @@ var DownloadButton = ({
10750
11038
  var DownloadButton_default = DownloadButton;
10751
11039
 
10752
11040
  // src/components/VideoPlayer/VideoPlayer.tsx
10753
- var import_jsx_runtime56 = require("react/jsx-runtime");
11041
+ var import_jsx_runtime57 = require("react/jsx-runtime");
10754
11042
  var CONTROLS_HIDE_TIMEOUT = 3e3;
10755
11043
  var LEAVE_HIDE_TIMEOUT = 1e3;
10756
11044
  var INIT_DELAY = 100;
@@ -10766,7 +11054,7 @@ var ProgressBar2 = ({
10766
11054
  progressPercentage,
10767
11055
  onSeek,
10768
11056
  className = "px-4 pb-2"
10769
- }) => /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className, children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11057
+ }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className, children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10770
11058
  "input",
10771
11059
  {
10772
11060
  type: "range",
@@ -10788,17 +11076,17 @@ var VolumeControls = ({
10788
11076
  onToggleMute,
10789
11077
  iconSize = 24,
10790
11078
  showSlider = true
10791
- }) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex items-center gap-2", children: [
10792
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11079
+ }) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex items-center gap-2", children: [
11080
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10793
11081
  IconButton_default,
10794
11082
  {
10795
- icon: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.SpeakerHigh, { size: iconSize }),
11083
+ icon: isMuted ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.SpeakerHigh, { size: iconSize }),
10796
11084
  onClick: onToggleMute,
10797
11085
  "aria-label": isMuted ? "Unmute" : "Mute",
10798
11086
  className: "!bg-transparent !text-white hover:!bg-white/20"
10799
11087
  }
10800
11088
  ),
10801
- showSlider && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11089
+ showSlider && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10802
11090
  "input",
10803
11091
  {
10804
11092
  type: "range",
@@ -10823,9 +11111,9 @@ var SpeedMenu = ({
10823
11111
  iconSize = 24,
10824
11112
  isTinyMobile = false
10825
11113
  }) => {
10826
- const buttonRef = (0, import_react34.useRef)(null);
10827
- const speedMenuContainerRef = (0, import_react34.useRef)(null);
10828
- const speedMenuRef = (0, import_react34.useRef)(null);
11114
+ const buttonRef = (0, import_react35.useRef)(null);
11115
+ const speedMenuContainerRef = (0, import_react35.useRef)(null);
11116
+ const speedMenuRef = (0, import_react35.useRef)(null);
10829
11117
  const getMenuPosition = () => {
10830
11118
  if (!buttonRef.current) return { top: 0, left: 0 };
10831
11119
  const rect = buttonRef.current.getBoundingClientRect();
@@ -10839,7 +11127,7 @@ var SpeedMenu = ({
10839
11127
  };
10840
11128
  };
10841
11129
  const position = getMenuPosition();
10842
- (0, import_react34.useEffect)(() => {
11130
+ (0, import_react35.useEffect)(() => {
10843
11131
  const handleClickOutside = (event) => {
10844
11132
  const target = event.target;
10845
11133
  const isOutsideContainer = speedMenuContainerRef.current && !speedMenuContainerRef.current.contains(target);
@@ -10855,7 +11143,7 @@ var SpeedMenu = ({
10855
11143
  document.removeEventListener("mousedown", handleClickOutside);
10856
11144
  };
10857
11145
  }, [showSpeedMenu, onToggleMenu]);
10858
- const menuContent = /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11146
+ const menuContent = /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10859
11147
  "div",
10860
11148
  {
10861
11149
  ref: speedMenuRef,
@@ -10866,7 +11154,7 @@ var SpeedMenu = ({
10866
11154
  top: `${position.top}px`,
10867
11155
  left: `${position.left}px`
10868
11156
  },
10869
- children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11157
+ children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
10870
11158
  "button",
10871
11159
  {
10872
11160
  role: "menuitemradio",
@@ -10883,12 +11171,12 @@ var SpeedMenu = ({
10883
11171
  }
10884
11172
  );
10885
11173
  const portalContent = showSpeedMenu && globalThis.window !== void 0 && globalThis.document !== void 0 && !!globalThis.document?.body ? (0, import_react_dom.createPortal)(menuContent, globalThis.document.body) : null;
10886
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "relative", ref: speedMenuContainerRef, children: [
10887
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11174
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "relative", ref: speedMenuContainerRef, children: [
11175
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
10888
11176
  IconButton_default,
10889
11177
  {
10890
11178
  ref: buttonRef,
10891
- icon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.DotsThreeVertical, { size: iconSize }),
11179
+ icon: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.DotsThreeVertical, { size: iconSize }),
10892
11180
  onClick: onToggleMenu,
10893
11181
  "aria-label": "Playback speed",
10894
11182
  "aria-haspopup": "menu",
@@ -10918,28 +11206,28 @@ var VideoPlayer = ({
10918
11206
  onDownloadComplete,
10919
11207
  onDownloadError
10920
11208
  }) => {
10921
- const videoRef = (0, import_react34.useRef)(null);
11209
+ const videoRef = (0, import_react35.useRef)(null);
10922
11210
  const { isUltraSmallMobile, isTinyMobile } = useMobile();
10923
- const [isPlaying, setIsPlaying] = (0, import_react34.useState)(false);
10924
- const [currentTime, setCurrentTime] = (0, import_react34.useState)(0);
10925
- const [duration, setDuration] = (0, import_react34.useState)(0);
10926
- const [isMuted, setIsMuted] = (0, import_react34.useState)(false);
10927
- const [volume, setVolume] = (0, import_react34.useState)(1);
10928
- const [isFullscreen, setIsFullscreen] = (0, import_react34.useState)(false);
10929
- const [showControls, setShowControls] = (0, import_react34.useState)(true);
10930
- const [hasCompleted, setHasCompleted] = (0, import_react34.useState)(false);
10931
- const [showCaptions, setShowCaptions] = (0, import_react34.useState)(false);
10932
- const [subtitlesValidation, setSubtitlesValidation] = (0, import_react34.useState)("idle");
10933
- (0, import_react34.useEffect)(() => {
11211
+ const [isPlaying, setIsPlaying] = (0, import_react35.useState)(false);
11212
+ const [currentTime, setCurrentTime] = (0, import_react35.useState)(0);
11213
+ const [duration, setDuration] = (0, import_react35.useState)(0);
11214
+ const [isMuted, setIsMuted] = (0, import_react35.useState)(false);
11215
+ const [volume, setVolume] = (0, import_react35.useState)(1);
11216
+ const [isFullscreen, setIsFullscreen] = (0, import_react35.useState)(false);
11217
+ const [showControls, setShowControls] = (0, import_react35.useState)(true);
11218
+ const [hasCompleted, setHasCompleted] = (0, import_react35.useState)(false);
11219
+ const [showCaptions, setShowCaptions] = (0, import_react35.useState)(false);
11220
+ const [subtitlesValidation, setSubtitlesValidation] = (0, import_react35.useState)("idle");
11221
+ (0, import_react35.useEffect)(() => {
10934
11222
  setHasCompleted(false);
10935
11223
  }, [src]);
10936
- const [playbackRate, setPlaybackRate] = (0, import_react34.useState)(1);
10937
- const [showSpeedMenu, setShowSpeedMenu] = (0, import_react34.useState)(false);
10938
- const lastSaveTimeRef = (0, import_react34.useRef)(0);
10939
- const trackRef = (0, import_react34.useRef)(null);
10940
- const controlsTimeoutRef = (0, import_react34.useRef)(null);
10941
- const lastMousePositionRef = (0, import_react34.useRef)({ x: 0, y: 0 });
10942
- const isUserInteracting = (0, import_react34.useCallback)(() => {
11224
+ const [playbackRate, setPlaybackRate] = (0, import_react35.useState)(1);
11225
+ const [showSpeedMenu, setShowSpeedMenu] = (0, import_react35.useState)(false);
11226
+ const lastSaveTimeRef = (0, import_react35.useRef)(0);
11227
+ const trackRef = (0, import_react35.useRef)(null);
11228
+ const controlsTimeoutRef = (0, import_react35.useRef)(null);
11229
+ const lastMousePositionRef = (0, import_react35.useRef)({ x: 0, y: 0 });
11230
+ const isUserInteracting = (0, import_react35.useCallback)(() => {
10943
11231
  if (showSpeedMenu) {
10944
11232
  return true;
10945
11233
  }
@@ -10956,13 +11244,13 @@ var VideoPlayer = ({
10956
11244
  }
10957
11245
  return false;
10958
11246
  }, [showSpeedMenu]);
10959
- const clearControlsTimeout = (0, import_react34.useCallback)(() => {
11247
+ const clearControlsTimeout = (0, import_react35.useCallback)(() => {
10960
11248
  if (controlsTimeoutRef.current) {
10961
11249
  clearTimeout(controlsTimeoutRef.current);
10962
11250
  controlsTimeoutRef.current = null;
10963
11251
  }
10964
11252
  }, []);
10965
- const showControlsWithTimer = (0, import_react34.useCallback)(() => {
11253
+ const showControlsWithTimer = (0, import_react35.useCallback)(() => {
10966
11254
  setShowControls(true);
10967
11255
  clearControlsTimeout();
10968
11256
  if (isFullscreen) {
@@ -10977,7 +11265,7 @@ var VideoPlayer = ({
10977
11265
  }, CONTROLS_HIDE_TIMEOUT);
10978
11266
  }
10979
11267
  }, [isFullscreen, isPlaying, clearControlsTimeout]);
10980
- const handleMouseMove = (0, import_react34.useCallback)(
11268
+ const handleMouseMove = (0, import_react35.useCallback)(
10981
11269
  (event) => {
10982
11270
  const currentX = event.clientX;
10983
11271
  const currentY = event.clientY;
@@ -10990,10 +11278,10 @@ var VideoPlayer = ({
10990
11278
  },
10991
11279
  [showControlsWithTimer]
10992
11280
  );
10993
- const handleMouseEnter = (0, import_react34.useCallback)(() => {
11281
+ const handleMouseEnter = (0, import_react35.useCallback)(() => {
10994
11282
  showControlsWithTimer();
10995
11283
  }, [showControlsWithTimer]);
10996
- const handleMouseLeave = (0, import_react34.useCallback)(() => {
11284
+ const handleMouseLeave = (0, import_react35.useCallback)(() => {
10997
11285
  const userInteracting = isUserInteracting();
10998
11286
  clearControlsTimeout();
10999
11287
  if (!isFullscreen && !userInteracting) {
@@ -11002,13 +11290,13 @@ var VideoPlayer = ({
11002
11290
  }, LEAVE_HIDE_TIMEOUT);
11003
11291
  }
11004
11292
  }, [isFullscreen, clearControlsTimeout, isUserInteracting]);
11005
- (0, import_react34.useEffect)(() => {
11293
+ (0, import_react35.useEffect)(() => {
11006
11294
  if (videoRef.current) {
11007
11295
  videoRef.current.volume = volume;
11008
11296
  videoRef.current.muted = isMuted;
11009
11297
  }
11010
11298
  }, [volume, isMuted]);
11011
- (0, import_react34.useEffect)(() => {
11299
+ (0, import_react35.useEffect)(() => {
11012
11300
  const video = videoRef.current;
11013
11301
  if (!video) return;
11014
11302
  const onPlay = () => setIsPlaying(true);
@@ -11023,13 +11311,13 @@ var VideoPlayer = ({
11023
11311
  video.removeEventListener("ended", onEnded);
11024
11312
  };
11025
11313
  }, []);
11026
- (0, import_react34.useEffect)(() => {
11314
+ (0, import_react35.useEffect)(() => {
11027
11315
  const video = videoRef.current;
11028
11316
  if (!video) return;
11029
11317
  video.setAttribute("playsinline", "");
11030
11318
  video.setAttribute("webkit-playsinline", "");
11031
11319
  }, []);
11032
- (0, import_react34.useEffect)(() => {
11320
+ (0, import_react35.useEffect)(() => {
11033
11321
  if (isPlaying) {
11034
11322
  showControlsWithTimer();
11035
11323
  } else {
@@ -11041,7 +11329,7 @@ var VideoPlayer = ({
11041
11329
  }
11042
11330
  }
11043
11331
  }, [isPlaying, isFullscreen, showControlsWithTimer, clearControlsTimeout]);
11044
- (0, import_react34.useEffect)(() => {
11332
+ (0, import_react35.useEffect)(() => {
11045
11333
  const video = videoRef.current;
11046
11334
  if (!video) return;
11047
11335
  const handleFullscreenChange = () => {
@@ -11076,7 +11364,7 @@ var VideoPlayer = ({
11076
11364
  );
11077
11365
  };
11078
11366
  }, [showControlsWithTimer]);
11079
- (0, import_react34.useEffect)(() => {
11367
+ (0, import_react35.useEffect)(() => {
11080
11368
  const init = () => {
11081
11369
  if (!isFullscreen) {
11082
11370
  showControlsWithTimer();
@@ -11098,7 +11386,7 @@ var VideoPlayer = ({
11098
11386
  };
11099
11387
  }
11100
11388
  }, []);
11101
- const getInitialTime = (0, import_react34.useCallback)(() => {
11389
+ const getInitialTime = (0, import_react35.useCallback)(() => {
11102
11390
  if (!autoSave || !storageKey) {
11103
11391
  return Number.isFinite(initialTime) && initialTime >= 0 ? initialTime : void 0;
11104
11392
  }
@@ -11111,14 +11399,14 @@ var VideoPlayer = ({
11111
11399
  if (hasValidSaved) return saved;
11112
11400
  return void 0;
11113
11401
  }, [autoSave, storageKey, src, initialTime]);
11114
- (0, import_react34.useEffect)(() => {
11402
+ (0, import_react35.useEffect)(() => {
11115
11403
  const start = getInitialTime();
11116
11404
  if (start !== void 0 && videoRef.current) {
11117
11405
  videoRef.current.currentTime = start;
11118
11406
  setCurrentTime(start);
11119
11407
  }
11120
11408
  }, [getInitialTime]);
11121
- const saveProgress = (0, import_react34.useCallback)(
11409
+ const saveProgress = (0, import_react35.useCallback)(
11122
11410
  (time) => {
11123
11411
  if (!autoSave || !storageKey) return;
11124
11412
  const now = Date.now();
@@ -11129,7 +11417,7 @@ var VideoPlayer = ({
11129
11417
  },
11130
11418
  [autoSave, storageKey, src]
11131
11419
  );
11132
- const togglePlayPause = (0, import_react34.useCallback)(async () => {
11420
+ const togglePlayPause = (0, import_react35.useCallback)(async () => {
11133
11421
  const video = videoRef.current;
11134
11422
  if (!video) return;
11135
11423
  if (!video.paused) {
@@ -11141,7 +11429,7 @@ var VideoPlayer = ({
11141
11429
  } catch {
11142
11430
  }
11143
11431
  }, []);
11144
- const handleVolumeChange = (0, import_react34.useCallback)(
11432
+ const handleVolumeChange = (0, import_react35.useCallback)(
11145
11433
  (newVolume) => {
11146
11434
  const video = videoRef.current;
11147
11435
  if (!video) return;
@@ -11160,7 +11448,7 @@ var VideoPlayer = ({
11160
11448
  },
11161
11449
  [isMuted]
11162
11450
  );
11163
- const toggleMute = (0, import_react34.useCallback)(() => {
11451
+ const toggleMute = (0, import_react35.useCallback)(() => {
11164
11452
  const video = videoRef.current;
11165
11453
  if (!video) return;
11166
11454
  if (isMuted) {
@@ -11174,20 +11462,20 @@ var VideoPlayer = ({
11174
11462
  setIsMuted(true);
11175
11463
  }
11176
11464
  }, [isMuted, volume]);
11177
- const handleSeek = (0, import_react34.useCallback)((newTime) => {
11465
+ const handleSeek = (0, import_react35.useCallback)((newTime) => {
11178
11466
  const video = videoRef.current;
11179
11467
  if (video) {
11180
11468
  video.currentTime = newTime;
11181
11469
  }
11182
11470
  }, []);
11183
- const isSafariIOS = (0, import_react34.useCallback)(() => {
11471
+ const isSafariIOS = (0, import_react35.useCallback)(() => {
11184
11472
  const ua = navigator.userAgent;
11185
11473
  const isIOS = /iPad|iPhone|iPod/.test(ua);
11186
11474
  const isWebKit = /WebKit/.test(ua);
11187
11475
  const isNotChrome = !/CriOS|Chrome/.test(ua);
11188
11476
  return isIOS && isWebKit && isNotChrome;
11189
11477
  }, []);
11190
- const toggleFullscreen = (0, import_react34.useCallback)(() => {
11478
+ const toggleFullscreen = (0, import_react35.useCallback)(() => {
11191
11479
  const video = videoRef.current;
11192
11480
  const container = video?.parentElement;
11193
11481
  if (!video || !container) return;
@@ -11204,24 +11492,24 @@ var VideoPlayer = ({
11204
11492
  document.exitFullscreen();
11205
11493
  }
11206
11494
  }, [isFullscreen, isSafariIOS]);
11207
- const handleSpeedChange = (0, import_react34.useCallback)((speed) => {
11495
+ const handleSpeedChange = (0, import_react35.useCallback)((speed) => {
11208
11496
  if (videoRef.current) {
11209
11497
  videoRef.current.playbackRate = speed;
11210
11498
  setPlaybackRate(speed);
11211
11499
  setShowSpeedMenu(false);
11212
11500
  }
11213
11501
  }, []);
11214
- const toggleSpeedMenu = (0, import_react34.useCallback)(() => {
11502
+ const toggleSpeedMenu = (0, import_react35.useCallback)(() => {
11215
11503
  setShowSpeedMenu(!showSpeedMenu);
11216
11504
  }, [showSpeedMenu]);
11217
- const toggleCaptions = (0, import_react34.useCallback)(() => {
11505
+ const toggleCaptions = (0, import_react35.useCallback)(() => {
11218
11506
  if (!trackRef.current?.track || !subtitles || subtitlesValidation !== "valid")
11219
11507
  return;
11220
11508
  const newShowCaptions = !showCaptions;
11221
11509
  setShowCaptions(newShowCaptions);
11222
11510
  trackRef.current.track.mode = newShowCaptions ? "showing" : "hidden";
11223
11511
  }, [showCaptions, subtitles, subtitlesValidation]);
11224
- const checkVideoCompletion = (0, import_react34.useCallback)(
11512
+ const checkVideoCompletion = (0, import_react35.useCallback)(
11225
11513
  (progressPercent) => {
11226
11514
  if (progressPercent >= 95 && !hasCompleted) {
11227
11515
  setHasCompleted(true);
@@ -11230,7 +11518,7 @@ var VideoPlayer = ({
11230
11518
  },
11231
11519
  [hasCompleted, onVideoComplete]
11232
11520
  );
11233
- const handleTimeUpdate = (0, import_react34.useCallback)(() => {
11521
+ const handleTimeUpdate = (0, import_react35.useCallback)(() => {
11234
11522
  const video = videoRef.current;
11235
11523
  if (!video) return;
11236
11524
  const current = video.currentTime;
@@ -11243,12 +11531,12 @@ var VideoPlayer = ({
11243
11531
  checkVideoCompletion(progressPercent);
11244
11532
  }
11245
11533
  }, [duration, saveProgress, onTimeUpdate, onProgress, checkVideoCompletion]);
11246
- const handleLoadedMetadata = (0, import_react34.useCallback)(() => {
11534
+ const handleLoadedMetadata = (0, import_react35.useCallback)(() => {
11247
11535
  if (videoRef.current) {
11248
11536
  setDuration(videoRef.current.duration);
11249
11537
  }
11250
11538
  }, []);
11251
- (0, import_react34.useEffect)(() => {
11539
+ (0, import_react35.useEffect)(() => {
11252
11540
  const controller = new AbortController();
11253
11541
  const validateSubtitles = async () => {
11254
11542
  if (!subtitles) {
@@ -11295,12 +11583,12 @@ var VideoPlayer = ({
11295
11583
  controller.abort();
11296
11584
  };
11297
11585
  }, [subtitles]);
11298
- (0, import_react34.useEffect)(() => {
11586
+ (0, import_react35.useEffect)(() => {
11299
11587
  if (trackRef.current?.track) {
11300
11588
  trackRef.current.track.mode = showCaptions && subtitles && subtitlesValidation === "valid" ? "showing" : "hidden";
11301
11589
  }
11302
11590
  }, [subtitles, showCaptions, subtitlesValidation]);
11303
- (0, import_react34.useEffect)(() => {
11591
+ (0, import_react35.useEffect)(() => {
11304
11592
  const handleVisibilityChange = () => {
11305
11593
  if (document.hidden && isPlaying && videoRef.current) {
11306
11594
  videoRef.current.pause();
@@ -11322,54 +11610,54 @@ var VideoPlayer = ({
11322
11610
  };
11323
11611
  }, [isPlaying, clearControlsTimeout]);
11324
11612
  const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
11325
- const getIconSize2 = (0, import_react34.useCallback)(() => {
11613
+ const getIconSize2 = (0, import_react35.useCallback)(() => {
11326
11614
  if (isTinyMobile) return 18;
11327
11615
  if (isUltraSmallMobile) return 20;
11328
11616
  return 24;
11329
11617
  }, [isTinyMobile, isUltraSmallMobile]);
11330
- const getControlsPadding = (0, import_react34.useCallback)(() => {
11618
+ const getControlsPadding = (0, import_react35.useCallback)(() => {
11331
11619
  if (isTinyMobile) return "px-2 pb-2 pt-1";
11332
11620
  if (isUltraSmallMobile) return "px-3 pb-3 pt-1";
11333
11621
  return "px-4 pb-4";
11334
11622
  }, [isTinyMobile, isUltraSmallMobile]);
11335
- const getControlsGap = (0, import_react34.useCallback)(() => {
11623
+ const getControlsGap = (0, import_react35.useCallback)(() => {
11336
11624
  if (isTinyMobile) return "gap-1";
11337
11625
  if (isUltraSmallMobile) return "gap-2";
11338
11626
  return "gap-4";
11339
11627
  }, [isTinyMobile, isUltraSmallMobile]);
11340
- const getProgressBarPadding = (0, import_react34.useCallback)(() => {
11628
+ const getProgressBarPadding = (0, import_react35.useCallback)(() => {
11341
11629
  if (isTinyMobile) return "px-2 pb-1";
11342
11630
  if (isUltraSmallMobile) return "px-3 pb-1";
11343
11631
  return "px-4 pb-2";
11344
11632
  }, [isTinyMobile, isUltraSmallMobile]);
11345
- const getCenterPlayButtonPosition = (0, import_react34.useCallback)(() => {
11633
+ const getCenterPlayButtonPosition = (0, import_react35.useCallback)(() => {
11346
11634
  if (isTinyMobile) return "items-center justify-center -translate-y-12";
11347
11635
  if (isUltraSmallMobile) return "items-center justify-center -translate-y-8";
11348
11636
  return "items-center justify-center";
11349
11637
  }, [isTinyMobile, isUltraSmallMobile]);
11350
- const getTopControlsOpacity = (0, import_react34.useCallback)(() => {
11638
+ const getTopControlsOpacity = (0, import_react35.useCallback)(() => {
11351
11639
  return showControls ? "opacity-100" : "opacity-0";
11352
11640
  }, [showControls]);
11353
- const getBottomControlsOpacity = (0, import_react34.useCallback)(() => {
11641
+ const getBottomControlsOpacity = (0, import_react35.useCallback)(() => {
11354
11642
  return showControls ? "opacity-100" : "opacity-0";
11355
11643
  }, [showControls]);
11356
- const seekBackward = (0, import_react34.useCallback)(() => {
11644
+ const seekBackward = (0, import_react35.useCallback)(() => {
11357
11645
  if (videoRef.current) {
11358
11646
  videoRef.current.currentTime -= 10;
11359
11647
  }
11360
11648
  }, []);
11361
- const seekForward = (0, import_react34.useCallback)(() => {
11649
+ const seekForward = (0, import_react35.useCallback)(() => {
11362
11650
  if (videoRef.current) {
11363
11651
  videoRef.current.currentTime += 10;
11364
11652
  }
11365
11653
  }, []);
11366
- const increaseVolume = (0, import_react34.useCallback)(() => {
11654
+ const increaseVolume = (0, import_react35.useCallback)(() => {
11367
11655
  handleVolumeChange(Math.min(100, volume * 100 + 10));
11368
11656
  }, [handleVolumeChange, volume]);
11369
- const decreaseVolume = (0, import_react34.useCallback)(() => {
11657
+ const decreaseVolume = (0, import_react35.useCallback)(() => {
11370
11658
  handleVolumeChange(Math.max(0, volume * 100 - 10));
11371
11659
  }, [handleVolumeChange, volume]);
11372
- const handleVideoKeyDown = (0, import_react34.useCallback)(
11660
+ const handleVideoKeyDown = (0, import_react35.useCallback)(
11373
11661
  (e) => {
11374
11662
  if (!e.key) return;
11375
11663
  e.stopPropagation();
@@ -11404,10 +11692,10 @@ var VideoPlayer = ({
11404
11692
  ]
11405
11693
  );
11406
11694
  const groupedSubTitleValid = subtitles && subtitlesValidation === "valid";
11407
- return /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("flex flex-col", className), children: [
11408
- (title || subtitleText) && /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
11409
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: "flex flex-col gap-1", children: [
11410
- title && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11695
+ return /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: cn("flex flex-col", className), children: [
11696
+ (title || subtitleText) && /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
11697
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: "flex flex-col gap-1", children: [
11698
+ title && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11411
11699
  Text_default,
11412
11700
  {
11413
11701
  as: "h2",
@@ -11418,7 +11706,7 @@ var VideoPlayer = ({
11418
11706
  children: title
11419
11707
  }
11420
11708
  ),
11421
- subtitleText && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11709
+ subtitleText && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11422
11710
  Text_default,
11423
11711
  {
11424
11712
  as: "p",
@@ -11430,7 +11718,7 @@ var VideoPlayer = ({
11430
11718
  }
11431
11719
  )
11432
11720
  ] }),
11433
- showDownloadButton && downloadContent && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11721
+ showDownloadButton && downloadContent && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11434
11722
  DownloadButton_default,
11435
11723
  {
11436
11724
  content: downloadContent,
@@ -11442,7 +11730,7 @@ var VideoPlayer = ({
11442
11730
  }
11443
11731
  )
11444
11732
  ] }),
11445
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11733
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
11446
11734
  "section",
11447
11735
  {
11448
11736
  className: cn(
@@ -11457,7 +11745,7 @@ var VideoPlayer = ({
11457
11745
  onTouchStart: handleMouseEnter,
11458
11746
  onMouseLeave: handleMouseLeave,
11459
11747
  children: [
11460
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11748
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11461
11749
  "video",
11462
11750
  {
11463
11751
  ref: videoRef,
@@ -11472,7 +11760,7 @@ var VideoPlayer = ({
11472
11760
  onKeyDown: handleVideoKeyDown,
11473
11761
  tabIndex: 0,
11474
11762
  "aria-label": title ? `Video: ${title}` : "Video player",
11475
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11763
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11476
11764
  "track",
11477
11765
  {
11478
11766
  ref: trackRef,
@@ -11485,17 +11773,17 @@ var VideoPlayer = ({
11485
11773
  )
11486
11774
  }
11487
11775
  ),
11488
- !isPlaying && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11776
+ !isPlaying && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11489
11777
  "div",
11490
11778
  {
11491
11779
  className: cn(
11492
11780
  "absolute inset-0 flex bg-black/30 transition-opacity",
11493
11781
  getCenterPlayButtonPosition()
11494
11782
  ),
11495
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11783
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11496
11784
  IconButton_default,
11497
11785
  {
11498
- icon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.Play, { size: 32, weight: "regular", className: "ml-1" }),
11786
+ icon: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.Play, { size: 32, weight: "regular", className: "ml-1" }),
11499
11787
  onClick: togglePlayPause,
11500
11788
  "aria-label": "Play video",
11501
11789
  className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
@@ -11503,17 +11791,17 @@ var VideoPlayer = ({
11503
11791
  )
11504
11792
  }
11505
11793
  ),
11506
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11794
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11507
11795
  "div",
11508
11796
  {
11509
11797
  className: cn(
11510
11798
  "absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
11511
11799
  getTopControlsOpacity()
11512
11800
  ),
11513
- children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11801
+ children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex justify-start", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11514
11802
  IconButton_default,
11515
11803
  {
11516
- icon: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.ArrowsOutSimple, { size: 24 }),
11804
+ icon: isFullscreen ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.ArrowsOutSimple, { size: 24 }),
11517
11805
  onClick: toggleFullscreen,
11518
11806
  "aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
11519
11807
  className: "!bg-transparent !text-white hover:!bg-white/20"
@@ -11521,7 +11809,7 @@ var VideoPlayer = ({
11521
11809
  ) })
11522
11810
  }
11523
11811
  ),
11524
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11812
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
11525
11813
  "div",
11526
11814
  {
11527
11815
  className: cn(
@@ -11529,7 +11817,7 @@ var VideoPlayer = ({
11529
11817
  getBottomControlsOpacity()
11530
11818
  ),
11531
11819
  children: [
11532
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11820
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11533
11821
  ProgressBar2,
11534
11822
  {
11535
11823
  currentTime,
@@ -11539,7 +11827,7 @@ var VideoPlayer = ({
11539
11827
  className: getProgressBarPadding()
11540
11828
  }
11541
11829
  ),
11542
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(
11830
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
11543
11831
  "div",
11544
11832
  {
11545
11833
  className: cn(
@@ -11547,17 +11835,17 @@ var VideoPlayer = ({
11547
11835
  getControlsPadding()
11548
11836
  ),
11549
11837
  children: [
11550
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)("div", { className: cn("flex items-center", getControlsGap()), children: [
11551
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11838
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)("div", { className: cn("flex items-center", getControlsGap()), children: [
11839
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11552
11840
  IconButton_default,
11553
11841
  {
11554
- icon: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.Pause, { size: getIconSize2() }) : /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.Play, { size: getIconSize2() }),
11842
+ icon: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.Pause, { size: getIconSize2() }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.Play, { size: getIconSize2() }),
11555
11843
  onClick: togglePlayPause,
11556
11844
  "aria-label": isPlaying ? "Pause" : "Play",
11557
11845
  className: "!bg-transparent !text-white hover:!bg-white/20"
11558
11846
  }
11559
11847
  ),
11560
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11848
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11561
11849
  VolumeControls,
11562
11850
  {
11563
11851
  volume,
@@ -11568,10 +11856,10 @@ var VideoPlayer = ({
11568
11856
  showSlider: !isUltraSmallMobile
11569
11857
  }
11570
11858
  ),
11571
- groupedSubTitleValid && /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11859
+ groupedSubTitleValid && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11572
11860
  IconButton_default,
11573
11861
  {
11574
- icon: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(import_phosphor_react26.ClosedCaptioning, { size: getIconSize2() }),
11862
+ icon: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(import_phosphor_react27.ClosedCaptioning, { size: getIconSize2() }),
11575
11863
  onClick: toggleCaptions,
11576
11864
  "aria-label": showCaptions ? "Hide captions" : "Show captions",
11577
11865
  className: cn(
@@ -11580,13 +11868,13 @@ var VideoPlayer = ({
11580
11868
  )
11581
11869
  }
11582
11870
  ),
11583
- /* @__PURE__ */ (0, import_jsx_runtime56.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
11871
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
11584
11872
  formatTime(currentTime),
11585
11873
  " / ",
11586
11874
  formatTime(duration)
11587
11875
  ] })
11588
11876
  ] }),
11589
- /* @__PURE__ */ (0, import_jsx_runtime56.jsx)("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime56.jsx)(
11877
+ /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11590
11878
  SpeedMenu,
11591
11879
  {
11592
11880
  showSpeedMenu,
@@ -11612,9 +11900,9 @@ var VideoPlayer = ({
11612
11900
  var VideoPlayer_default = VideoPlayer;
11613
11901
 
11614
11902
  // src/components/Whiteboard/Whiteboard.tsx
11615
- var import_react35 = require("react");
11616
- var import_phosphor_react27 = require("phosphor-react");
11617
- var import_jsx_runtime57 = require("react/jsx-runtime");
11903
+ var import_react36 = require("react");
11904
+ var import_phosphor_react28 = require("phosphor-react");
11905
+ var import_jsx_runtime58 = require("react/jsx-runtime");
11618
11906
  var IMAGE_WIDTH = 225;
11619
11907
  var IMAGE_HEIGHT = 90;
11620
11908
  var Whiteboard = ({
@@ -11625,8 +11913,8 @@ var Whiteboard = ({
11625
11913
  imagesPerRow = 2,
11626
11914
  ...rest
11627
11915
  }) => {
11628
- const [imageErrors, setImageErrors] = (0, import_react35.useState)(/* @__PURE__ */ new Set());
11629
- const handleDownload = (0, import_react35.useCallback)(
11916
+ const [imageErrors, setImageErrors] = (0, import_react36.useState)(/* @__PURE__ */ new Set());
11917
+ const handleDownload = (0, import_react36.useCallback)(
11630
11918
  (image) => {
11631
11919
  if (onDownload) {
11632
11920
  onDownload(image);
@@ -11643,7 +11931,7 @@ var Whiteboard = ({
11643
11931
  },
11644
11932
  [onDownload]
11645
11933
  );
11646
- const handleImageError = (0, import_react35.useCallback)((imageId) => {
11934
+ const handleImageError = (0, import_react36.useCallback)((imageId) => {
11647
11935
  setImageErrors((prev) => new Set(prev).add(imageId));
11648
11936
  }, []);
11649
11937
  const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
@@ -11652,7 +11940,7 @@ var Whiteboard = ({
11652
11940
  4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
11653
11941
  }[imagesPerRow];
11654
11942
  if (!images || images.length === 0) {
11655
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11943
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11656
11944
  "div",
11657
11945
  {
11658
11946
  className: cn(
@@ -11660,11 +11948,11 @@ var Whiteboard = ({
11660
11948
  className
11661
11949
  ),
11662
11950
  ...rest,
11663
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
11951
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
11664
11952
  }
11665
11953
  );
11666
11954
  }
11667
- return /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11955
+ return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11668
11956
  "div",
11669
11957
  {
11670
11958
  className: cn(
@@ -11672,7 +11960,7 @@ var Whiteboard = ({
11672
11960
  className
11673
11961
  ),
11674
11962
  ...rest,
11675
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(
11963
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(
11676
11964
  "div",
11677
11965
  {
11678
11966
  className: "relative group overflow-hidden bg-gray-100 rounded-lg",
@@ -11680,7 +11968,7 @@ var Whiteboard = ({
11680
11968
  width: `${IMAGE_WIDTH}px`
11681
11969
  },
11682
11970
  children: [
11683
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11971
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11684
11972
  "div",
11685
11973
  {
11686
11974
  className: "relative",
@@ -11688,8 +11976,8 @@ var Whiteboard = ({
11688
11976
  width: `${IMAGE_WIDTH}px`,
11689
11977
  height: `${IMAGE_HEIGHT}px`
11690
11978
  },
11691
- children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime57.jsxs)(import_jsx_runtime57.Fragment, { children: [
11692
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11979
+ children: imageErrors.has(image.id) ? /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ (0, import_jsx_runtime58.jsxs)(import_jsx_runtime58.Fragment, { children: [
11980
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11693
11981
  "img",
11694
11982
  {
11695
11983
  src: image.imageUrl,
@@ -11699,19 +11987,19 @@ var Whiteboard = ({
11699
11987
  onError: () => handleImageError(image.id)
11700
11988
  }
11701
11989
  ),
11702
- /* @__PURE__ */ (0, import_jsx_runtime57.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
11990
+ /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
11703
11991
  ] })
11704
11992
  }
11705
11993
  ),
11706
- showDownload && /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11994
+ showDownload && /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
11707
11995
  "button",
11708
11996
  {
11709
11997
  type: "button",
11710
11998
  onClick: () => handleDownload(image),
11711
11999
  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",
11712
12000
  "aria-label": `Download ${image.title || "imagem"}`,
11713
- children: /* @__PURE__ */ (0, import_jsx_runtime57.jsx)(
11714
- import_phosphor_react27.ArrowsOut,
12001
+ children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(
12002
+ import_phosphor_react28.ArrowsOut,
11715
12003
  {
11716
12004
  size: 24,
11717
12005
  weight: "regular",
@@ -11730,10 +12018,10 @@ var Whiteboard = ({
11730
12018
  var Whiteboard_default = Whiteboard;
11731
12019
 
11732
12020
  // src/components/Auth/Auth.tsx
11733
- var import_react36 = require("react");
12021
+ var import_react37 = require("react");
11734
12022
  var import_react_router_dom = require("react-router-dom");
11735
- var import_jsx_runtime58 = require("react/jsx-runtime");
11736
- var AuthContext = (0, import_react36.createContext)(void 0);
12023
+ var import_jsx_runtime59 = require("react/jsx-runtime");
12024
+ var AuthContext = (0, import_react37.createContext)(void 0);
11737
12025
  var AuthProvider = ({
11738
12026
  children,
11739
12027
  checkAuthFn,
@@ -11743,12 +12031,12 @@ var AuthProvider = ({
11743
12031
  getSessionFn,
11744
12032
  getTokensFn
11745
12033
  }) => {
11746
- const [authState, setAuthState] = (0, import_react36.useState)({
12034
+ const [authState, setAuthState] = (0, import_react37.useState)({
11747
12035
  isAuthenticated: false,
11748
12036
  isLoading: true,
11749
12037
  ...initialAuthState
11750
12038
  });
11751
- const checkAuth = (0, import_react36.useCallback)(async () => {
12039
+ const checkAuth = (0, import_react37.useCallback)(async () => {
11752
12040
  try {
11753
12041
  setAuthState((prev) => ({ ...prev, isLoading: true }));
11754
12042
  if (!checkAuthFn) {
@@ -11779,7 +12067,7 @@ var AuthProvider = ({
11779
12067
  return false;
11780
12068
  }
11781
12069
  }, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
11782
- const signOut = (0, import_react36.useCallback)(() => {
12070
+ const signOut = (0, import_react37.useCallback)(() => {
11783
12071
  if (signOutFn) {
11784
12072
  signOutFn();
11785
12073
  }
@@ -11791,10 +12079,10 @@ var AuthProvider = ({
11791
12079
  tokens: void 0
11792
12080
  }));
11793
12081
  }, [signOutFn]);
11794
- (0, import_react36.useEffect)(() => {
12082
+ (0, import_react37.useEffect)(() => {
11795
12083
  checkAuth();
11796
12084
  }, [checkAuth]);
11797
- const contextValue = (0, import_react36.useMemo)(
12085
+ const contextValue = (0, import_react37.useMemo)(
11798
12086
  () => ({
11799
12087
  ...authState,
11800
12088
  checkAuth,
@@ -11802,10 +12090,10 @@ var AuthProvider = ({
11802
12090
  }),
11803
12091
  [authState, checkAuth, signOut]
11804
12092
  );
11805
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(AuthContext.Provider, { value: contextValue, children });
12093
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(AuthContext.Provider, { value: contextValue, children });
11806
12094
  };
11807
12095
  var useAuth = () => {
11808
- const context = (0, import_react36.useContext)(AuthContext);
12096
+ const context = (0, import_react37.useContext)(AuthContext);
11809
12097
  if (context === void 0) {
11810
12098
  throw new Error("useAuth deve ser usado dentro de um AuthProvider");
11811
12099
  }
@@ -11818,9 +12106,9 @@ var ProtectedRoute = ({
11818
12106
  additionalCheck
11819
12107
  }) => {
11820
12108
  const { isAuthenticated, isLoading, ...authState } = useAuth();
11821
- const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
12109
+ const defaultLoadingComponent = /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
11822
12110
  if (isLoading) {
11823
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment, { children: loadingComponent || defaultLoadingComponent });
12111
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_jsx_runtime59.Fragment, { children: loadingComponent || defaultLoadingComponent });
11824
12112
  }
11825
12113
  if (!isAuthenticated) {
11826
12114
  if (typeof window !== "undefined") {
@@ -11831,12 +12119,12 @@ var ProtectedRoute = ({
11831
12119
  return null;
11832
12120
  }
11833
12121
  }
11834
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
12122
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
11835
12123
  }
11836
12124
  if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
11837
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
12125
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
11838
12126
  }
11839
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment, { children });
12127
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_jsx_runtime59.Fragment, { children });
11840
12128
  };
11841
12129
  var PublicRoute = ({
11842
12130
  children,
@@ -11846,15 +12134,15 @@ var PublicRoute = ({
11846
12134
  }) => {
11847
12135
  const { isAuthenticated, isLoading } = useAuth();
11848
12136
  if (checkAuthBeforeRender && isLoading) {
11849
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
12137
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
11850
12138
  }
11851
12139
  if (isAuthenticated && redirectIfAuthenticated) {
11852
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
12140
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_router_dom.Navigate, { to: redirectTo, replace: true });
11853
12141
  }
11854
- return /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_jsx_runtime58.Fragment, { children });
12142
+ return /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_jsx_runtime59.Fragment, { children });
11855
12143
  };
11856
12144
  var withAuth = (Component, options = {}) => {
11857
- return (props) => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(Component, { ...props }) });
12145
+ return (props) => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(ProtectedRoute, { ...options, children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(Component, { ...props }) });
11858
12146
  };
11859
12147
  var useAuthGuard = (options = {}) => {
11860
12148
  const authState = useAuth();
@@ -11869,7 +12157,7 @@ var useAuthGuard = (options = {}) => {
11869
12157
  var useRouteAuth = (fallbackPath = "/") => {
11870
12158
  const { isAuthenticated, isLoading } = useAuth();
11871
12159
  const location = (0, import_react_router_dom.useLocation)();
11872
- const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime58.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
12160
+ const redirectToLogin = () => /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(import_react_router_dom.Navigate, { to: fallbackPath, state: { from: location }, replace: true });
11873
12161
  return {
11874
12162
  isAuthenticated,
11875
12163
  isLoading,
@@ -11903,10 +12191,10 @@ var getRootDomain = () => {
11903
12191
  };
11904
12192
 
11905
12193
  // src/components/Accordation/Accordation.tsx
11906
- var import_react37 = require("react");
11907
- var import_phosphor_react28 = require("phosphor-react");
11908
- var import_jsx_runtime59 = require("react/jsx-runtime");
11909
- var CardAccordation = (0, import_react37.forwardRef)(
12194
+ var import_react38 = require("react");
12195
+ var import_phosphor_react29 = require("phosphor-react");
12196
+ var import_jsx_runtime60 = require("react/jsx-runtime");
12197
+ var CardAccordation = (0, import_react38.forwardRef)(
11910
12198
  ({
11911
12199
  trigger,
11912
12200
  children,
@@ -11918,13 +12206,13 @@ var CardAccordation = (0, import_react37.forwardRef)(
11918
12206
  disabled = false,
11919
12207
  ...props
11920
12208
  }, ref) => {
11921
- const [internalExpanded, setInternalExpanded] = (0, import_react37.useState)(defaultExpanded);
11922
- const generatedId = (0, import_react37.useId)();
12209
+ const [internalExpanded, setInternalExpanded] = (0, import_react38.useState)(defaultExpanded);
12210
+ const generatedId = (0, import_react38.useId)();
11923
12211
  const contentId = value ? `accordion-content-${value}` : generatedId;
11924
12212
  const headerId = value ? `accordion-header-${value}` : `${generatedId}-header`;
11925
12213
  const isControlled = controlledExpanded !== void 0;
11926
12214
  const isExpanded = isControlled ? controlledExpanded : internalExpanded;
11927
- (0, import_react37.useEffect)(() => {
12215
+ (0, import_react38.useEffect)(() => {
11928
12216
  if (isControlled) {
11929
12217
  setInternalExpanded(controlledExpanded);
11930
12218
  }
@@ -11944,7 +12232,7 @@ var CardAccordation = (0, import_react37.forwardRef)(
11944
12232
  handleToggle();
11945
12233
  }
11946
12234
  };
11947
- return /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
12235
+ return /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
11948
12236
  CardBase,
11949
12237
  {
11950
12238
  ref,
@@ -11954,7 +12242,7 @@ var CardAccordation = (0, import_react37.forwardRef)(
11954
12242
  className: cn("overflow-hidden", className),
11955
12243
  ...props,
11956
12244
  children: [
11957
- /* @__PURE__ */ (0, import_jsx_runtime59.jsxs)(
12245
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsxs)(
11958
12246
  "button",
11959
12247
  {
11960
12248
  id: headerId,
@@ -11972,8 +12260,8 @@ var CardAccordation = (0, import_react37.forwardRef)(
11972
12260
  "data-value": value,
11973
12261
  children: [
11974
12262
  trigger,
11975
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
11976
- import_phosphor_react28.CaretRight,
12263
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
12264
+ import_phosphor_react29.CaretRight,
11977
12265
  {
11978
12266
  size: 20,
11979
12267
  className: cn(
@@ -11987,7 +12275,7 @@ var CardAccordation = (0, import_react37.forwardRef)(
11987
12275
  ]
11988
12276
  }
11989
12277
  ),
11990
- /* @__PURE__ */ (0, import_jsx_runtime59.jsx)(
12278
+ /* @__PURE__ */ (0, import_jsx_runtime60.jsx)(
11991
12279
  "section",
11992
12280
  {
11993
12281
  id: contentId,
@@ -11999,7 +12287,7 @@ var CardAccordation = (0, import_react37.forwardRef)(
11999
12287
  ),
12000
12288
  "data-testid": "accordion-content",
12001
12289
  "data-value": value,
12002
- children: /* @__PURE__ */ (0, import_jsx_runtime59.jsx)("div", { className: "p-4 pt-0", children })
12290
+ children: /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { className: "p-4 pt-0", children })
12003
12291
  }
12004
12292
  )
12005
12293
  ]
@@ -12010,9 +12298,9 @@ var CardAccordation = (0, import_react37.forwardRef)(
12010
12298
  CardAccordation.displayName = "CardAccordation";
12011
12299
 
12012
12300
  // src/components/Accordation/AccordionGroup.tsx
12013
- var import_react38 = require("react");
12301
+ var import_react39 = require("react");
12014
12302
  var import_zustand10 = require("zustand");
12015
- var import_jsx_runtime60 = require("react/jsx-runtime");
12303
+ var import_jsx_runtime61 = require("react/jsx-runtime");
12016
12304
  function createAccordionGroupStore(type, initialValue, collapsible) {
12017
12305
  return (0, import_zustand10.create)((set, get) => ({
12018
12306
  type,
@@ -12030,8 +12318,8 @@ function createAccordionGroupStore(type, initialValue, collapsible) {
12030
12318
  }));
12031
12319
  }
12032
12320
  var injectStore6 = (children, store, indexRef, onItemToggle) => {
12033
- return import_react38.Children.map(children, (child) => {
12034
- if (!(0, import_react38.isValidElement)(child)) {
12321
+ return import_react39.Children.map(children, (child) => {
12322
+ if (!(0, import_react39.isValidElement)(child)) {
12035
12323
  return child;
12036
12324
  }
12037
12325
  const typedChild = child;
@@ -12058,16 +12346,16 @@ var injectStore6 = (children, store, indexRef, onItemToggle) => {
12058
12346
  if (displayName === "CardAccordation") {
12059
12347
  newProps.children = processedChildren;
12060
12348
  } else if (processedChildren !== typedChild.props.children) {
12061
- return (0, import_react38.cloneElement)(typedChild, { children: processedChildren });
12349
+ return (0, import_react39.cloneElement)(typedChild, { children: processedChildren });
12062
12350
  }
12063
12351
  }
12064
12352
  if (Object.keys(newProps).length > 0) {
12065
- return (0, import_react38.cloneElement)(typedChild, newProps);
12353
+ return (0, import_react39.cloneElement)(typedChild, newProps);
12066
12354
  }
12067
12355
  return child;
12068
12356
  });
12069
12357
  };
12070
- var AccordionGroup = (0, import_react38.forwardRef)(
12358
+ var AccordionGroup = (0, import_react39.forwardRef)(
12071
12359
  ({
12072
12360
  type = "single",
12073
12361
  defaultValue,
@@ -12078,12 +12366,12 @@ var AccordionGroup = (0, import_react38.forwardRef)(
12078
12366
  className,
12079
12367
  ...props
12080
12368
  }, ref) => {
12081
- const [internalValue, setInternalValue] = (0, import_react38.useState)(
12369
+ const [internalValue, setInternalValue] = (0, import_react39.useState)(
12082
12370
  defaultValue || (type === "single" ? "" : [])
12083
12371
  );
12084
12372
  const isControlled = controlledValue !== void 0;
12085
12373
  const currentValue = isControlled ? controlledValue : internalValue;
12086
- const storeRef = (0, import_react38.useRef)(null);
12374
+ const storeRef = (0, import_react39.useRef)(null);
12087
12375
  if (storeRef.current) {
12088
12376
  storeRef.current.setState((prev) => {
12089
12377
  const nextState = {};
@@ -12103,10 +12391,10 @@ var AccordionGroup = (0, import_react38.forwardRef)(
12103
12391
  );
12104
12392
  }
12105
12393
  const store = storeRef.current;
12106
- (0, import_react38.useEffect)(() => {
12394
+ (0, import_react39.useEffect)(() => {
12107
12395
  store.setState({ value: currentValue });
12108
12396
  }, [currentValue, store]);
12109
- (0, import_react38.useEffect)(() => {
12397
+ (0, import_react39.useEffect)(() => {
12110
12398
  if (!isControlled) {
12111
12399
  setInternalValue((prev) => {
12112
12400
  if (type === "single") {
@@ -12152,15 +12440,15 @@ var AccordionGroup = (0, import_react38.forwardRef)(
12152
12440
  indexRef,
12153
12441
  handleItemToggle
12154
12442
  );
12155
- return /* @__PURE__ */ (0, import_jsx_runtime60.jsx)("div", { ref, className, ...props, children: enhancedChildren });
12443
+ return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { ref, className, ...props, children: enhancedChildren });
12156
12444
  }
12157
12445
  );
12158
12446
  AccordionGroup.displayName = "AccordionGroup";
12159
12447
 
12160
12448
  // src/components/Alternative/Alternative.tsx
12161
- var import_phosphor_react29 = require("phosphor-react");
12162
- var import_react39 = require("react");
12163
- var import_jsx_runtime61 = require("react/jsx-runtime");
12449
+ var import_phosphor_react30 = require("phosphor-react");
12450
+ var import_react40 = require("react");
12451
+ var import_jsx_runtime62 = require("react/jsx-runtime");
12164
12452
  var AlternativesList = ({
12165
12453
  alternatives,
12166
12454
  name,
@@ -12173,9 +12461,9 @@ var AlternativesList = ({
12173
12461
  mode = "interactive",
12174
12462
  selectedValue
12175
12463
  }) => {
12176
- const uniqueId = (0, import_react39.useId)();
12464
+ const uniqueId = (0, import_react40.useId)();
12177
12465
  const groupName = name || `alternatives-${uniqueId}`;
12178
- const [actualValue, setActualValue] = (0, import_react39.useState)(value);
12466
+ const [actualValue, setActualValue] = (0, import_react40.useState)(value);
12179
12467
  const isReadonly = mode === "readonly";
12180
12468
  const getStatusStyles2 = (status, isReadonly2) => {
12181
12469
  const hoverClass = isReadonly2 ? "" : "hover:bg-background-50";
@@ -12191,9 +12479,9 @@ var AlternativesList = ({
12191
12479
  const getStatusBadge2 = (status) => {
12192
12480
  switch (status) {
12193
12481
  case "correct":
12194
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_phosphor_react29.CheckCircle, {}), children: "Resposta correta" });
12482
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_phosphor_react30.CheckCircle, {}), children: "Resposta correta" });
12195
12483
  case "incorrect":
12196
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(import_phosphor_react29.XCircle, {}), children: "Resposta incorreta" });
12484
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_phosphor_react30.XCircle, {}), children: "Resposta incorreta" });
12197
12485
  default:
12198
12486
  return null;
12199
12487
  }
@@ -12223,10 +12511,10 @@ var AlternativesList = ({
12223
12511
  const renderRadio = () => {
12224
12512
  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"}`;
12225
12513
  const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
12226
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: dotClasses }) });
12514
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: dotClasses }) });
12227
12515
  };
12228
12516
  if (layout === "detailed") {
12229
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12517
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12230
12518
  "div",
12231
12519
  {
12232
12520
  className: cn(
@@ -12234,11 +12522,11 @@ var AlternativesList = ({
12234
12522
  statusStyles,
12235
12523
  alternative.disabled ? "opacity-50" : ""
12236
12524
  ),
12237
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
12238
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
12239
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "mt-1", children: renderRadio() }),
12240
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex-1", children: [
12241
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12525
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
12526
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
12527
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "mt-1", children: renderRadio() }),
12528
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-1", children: [
12529
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12242
12530
  "p",
12243
12531
  {
12244
12532
  className: cn(
@@ -12248,16 +12536,16 @@ var AlternativesList = ({
12248
12536
  children: alternative.label
12249
12537
  }
12250
12538
  ),
12251
- alternative.description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
12539
+ alternative.description && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
12252
12540
  ] })
12253
12541
  ] }),
12254
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12542
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12255
12543
  ] })
12256
12544
  },
12257
12545
  alternativeId
12258
12546
  );
12259
12547
  }
12260
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12548
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12261
12549
  "div",
12262
12550
  {
12263
12551
  className: cn(
@@ -12266,9 +12554,9 @@ var AlternativesList = ({
12266
12554
  alternative.disabled ? "opacity-50" : ""
12267
12555
  ),
12268
12556
  children: [
12269
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
12557
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
12270
12558
  renderRadio(),
12271
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12559
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12272
12560
  "span",
12273
12561
  {
12274
12562
  className: cn(
@@ -12279,14 +12567,14 @@ var AlternativesList = ({
12279
12567
  }
12280
12568
  )
12281
12569
  ] }),
12282
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12570
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12283
12571
  ]
12284
12572
  },
12285
12573
  alternativeId
12286
12574
  );
12287
12575
  };
12288
12576
  if (isReadonly) {
12289
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12577
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12290
12578
  "div",
12291
12579
  {
12292
12580
  className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
@@ -12296,7 +12584,7 @@ var AlternativesList = ({
12296
12584
  }
12297
12585
  );
12298
12586
  }
12299
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12587
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12300
12588
  RadioGroup,
12301
12589
  {
12302
12590
  name: groupName,
@@ -12313,7 +12601,7 @@ var AlternativesList = ({
12313
12601
  const statusStyles = getStatusStyles2(alternative.status, false);
12314
12602
  const statusBadge = getStatusBadge2(alternative.status);
12315
12603
  if (layout === "detailed") {
12316
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12604
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12317
12605
  "div",
12318
12606
  {
12319
12607
  className: cn(
@@ -12321,9 +12609,9 @@ var AlternativesList = ({
12321
12609
  statusStyles,
12322
12610
  alternative.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
12323
12611
  ),
12324
- children: /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
12325
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
12326
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12612
+ children: /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-start justify-between gap-3", children: [
12613
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-start gap-3 flex-1", children: [
12614
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12327
12615
  RadioGroupItem,
12328
12616
  {
12329
12617
  value: alternative.value,
@@ -12332,8 +12620,8 @@ var AlternativesList = ({
12332
12620
  className: "mt-1"
12333
12621
  }
12334
12622
  ),
12335
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex-1", children: [
12336
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12623
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex-1", children: [
12624
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12337
12625
  "label",
12338
12626
  {
12339
12627
  htmlFor: alternativeId,
@@ -12345,16 +12633,16 @@ var AlternativesList = ({
12345
12633
  children: alternative.label
12346
12634
  }
12347
12635
  ),
12348
- alternative.description && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
12636
+ alternative.description && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
12349
12637
  ] })
12350
12638
  ] }),
12351
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12639
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12352
12640
  ] })
12353
12641
  },
12354
12642
  alternativeId
12355
12643
  );
12356
12644
  }
12357
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12645
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12358
12646
  "div",
12359
12647
  {
12360
12648
  className: cn(
@@ -12363,8 +12651,8 @@ var AlternativesList = ({
12363
12651
  alternative.disabled ? "opacity-50 cursor-not-allowed" : ""
12364
12652
  ),
12365
12653
  children: [
12366
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
12367
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12654
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
12655
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12368
12656
  RadioGroupItem,
12369
12657
  {
12370
12658
  value: alternative.value,
@@ -12372,7 +12660,7 @@ var AlternativesList = ({
12372
12660
  disabled: alternative.disabled
12373
12661
  }
12374
12662
  ),
12375
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)(
12663
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
12376
12664
  "label",
12377
12665
  {
12378
12666
  htmlFor: alternativeId,
@@ -12385,7 +12673,7 @@ var AlternativesList = ({
12385
12673
  }
12386
12674
  )
12387
12675
  ] }),
12388
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12676
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
12389
12677
  ]
12390
12678
  },
12391
12679
  alternativeId
@@ -12394,9 +12682,9 @@ var AlternativesList = ({
12394
12682
  }
12395
12683
  );
12396
12684
  };
12397
- var HeaderAlternative = (0, import_react39.forwardRef)(
12685
+ var HeaderAlternative = (0, import_react40.forwardRef)(
12398
12686
  ({ className, title, subTitle, content, ...props }, ref) => {
12399
- return /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)(
12687
+ return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
12400
12688
  "div",
12401
12689
  {
12402
12690
  ref,
@@ -12406,11 +12694,11 @@ var HeaderAlternative = (0, import_react39.forwardRef)(
12406
12694
  ),
12407
12695
  ...props,
12408
12696
  children: [
12409
- /* @__PURE__ */ (0, import_jsx_runtime61.jsxs)("span", { className: "flex flex-col", children: [
12410
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-text-950 font-bold text-lg", children: title }),
12411
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-text-700 text-sm ", children: subTitle })
12697
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("span", { className: "flex flex-col", children: [
12698
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-text-950 font-bold text-lg", children: title }),
12699
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-text-700 text-sm ", children: subTitle })
12412
12700
  ] }),
12413
- /* @__PURE__ */ (0, import_jsx_runtime61.jsx)("p", { className: "text-text-950 text-md", children: content })
12701
+ /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("p", { className: "text-text-950 text-md", children: content })
12414
12702
  ]
12415
12703
  }
12416
12704
  );
@@ -12460,7 +12748,7 @@ function createZustandAuthAdapter(useAuthStore2) {
12460
12748
  }
12461
12749
 
12462
12750
  // src/components/Auth/useUrlAuthentication.ts
12463
- var import_react40 = require("react");
12751
+ var import_react41 = require("react");
12464
12752
  var import_react_router_dom2 = require("react-router-dom");
12465
12753
  var getAuthParams = (location, extractParams) => {
12466
12754
  const searchParams = new URLSearchParams(location.search);
@@ -12508,8 +12796,8 @@ var handleUserData = (responseData, setUser) => {
12508
12796
  };
12509
12797
  function useUrlAuthentication(options) {
12510
12798
  const location = (0, import_react_router_dom2.useLocation)();
12511
- const processedRef = (0, import_react40.useRef)(false);
12512
- (0, import_react40.useEffect)(() => {
12799
+ const processedRef = (0, import_react41.useRef)(false);
12800
+ (0, import_react41.useEffect)(() => {
12513
12801
  const handleAuthentication = async () => {
12514
12802
  if (processedRef.current) {
12515
12803
  return;
@@ -12580,9 +12868,9 @@ function useUrlAuthentication(options) {
12580
12868
  }
12581
12869
 
12582
12870
  // src/components/Auth/useApiConfig.ts
12583
- var import_react41 = require("react");
12871
+ var import_react42 = require("react");
12584
12872
  function useApiConfig(api) {
12585
- return (0, import_react41.useMemo)(
12873
+ return (0, import_react42.useMemo)(
12586
12874
  () => ({
12587
12875
  get: (endpoint, config) => api.get(endpoint, config)
12588
12876
  }),
@@ -12591,8 +12879,8 @@ function useApiConfig(api) {
12591
12879
  }
12592
12880
 
12593
12881
  // src/components/Quiz/Quiz.tsx
12594
- var import_phosphor_react32 = require("phosphor-react");
12595
- var import_react44 = require("react");
12882
+ var import_phosphor_react33 = require("phosphor-react");
12883
+ var import_react45 = require("react");
12596
12884
 
12597
12885
  // src/components/Quiz/useQuizStore.ts
12598
12886
  var import_zustand11 = require("zustand");
@@ -13202,12 +13490,12 @@ var useQuizStore = (0, import_zustand11.create)()(
13202
13490
  );
13203
13491
 
13204
13492
  // src/components/Quiz/QuizContent.tsx
13205
- var import_react43 = require("react");
13493
+ var import_react44 = require("react");
13206
13494
 
13207
13495
  // src/components/MultipleChoice/MultipleChoice.tsx
13208
- var import_react42 = require("react");
13209
- var import_phosphor_react30 = require("phosphor-react");
13210
- var import_jsx_runtime62 = require("react/jsx-runtime");
13496
+ var import_react43 = require("react");
13497
+ var import_phosphor_react31 = require("phosphor-react");
13498
+ var import_jsx_runtime63 = require("react/jsx-runtime");
13211
13499
  var MultipleChoiceList = ({
13212
13500
  disabled = false,
13213
13501
  className = "",
@@ -13217,16 +13505,16 @@ var MultipleChoiceList = ({
13217
13505
  onHandleSelectedValues,
13218
13506
  mode = "interactive"
13219
13507
  }) => {
13220
- const [actualValue, setActualValue] = (0, import_react42.useState)(selectedValues);
13221
- (0, import_react42.useEffect)(() => {
13508
+ const [actualValue, setActualValue] = (0, import_react43.useState)(selectedValues);
13509
+ (0, import_react43.useEffect)(() => {
13222
13510
  setActualValue(selectedValues);
13223
13511
  }, [selectedValues]);
13224
13512
  const getStatusBadge2 = (status) => {
13225
13513
  switch (status) {
13226
13514
  case "correct":
13227
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_phosphor_react30.CheckCircle, {}), children: "Resposta correta" });
13515
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.CheckCircle, {}), children: "Resposta correta" });
13228
13516
  case "incorrect":
13229
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_phosphor_react30.XCircle, {}), children: "Resposta incorreta" });
13517
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.XCircle, {}), children: "Resposta incorreta" });
13230
13518
  default:
13231
13519
  return null;
13232
13520
  }
@@ -13247,14 +13535,14 @@ var MultipleChoiceList = ({
13247
13535
  isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
13248
13536
  isDisabled && "opacity-40 cursor-not-allowed"
13249
13537
  );
13250
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(import_phosphor_react30.Check, { size: 16, weight: "bold" }) });
13538
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.Check, { size: 16, weight: "bold" }) });
13251
13539
  };
13252
13540
  if (mode === "readonly") {
13253
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
13541
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
13254
13542
  const isSelected = actualValue?.includes(choice.value) || false;
13255
13543
  const statusStyles = getStatusStyles2(choice.status);
13256
13544
  const statusBadge = getStatusBadge2(choice.status);
13257
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
13545
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
13258
13546
  "div",
13259
13547
  {
13260
13548
  className: cn(
@@ -13263,9 +13551,9 @@ var MultipleChoiceList = ({
13263
13551
  choice.disabled ? "opacity-50 cursor-not-allowed" : ""
13264
13552
  ),
13265
13553
  children: [
13266
- /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
13554
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-2 flex-1", children: [
13267
13555
  renderVisualCheckbox(isSelected, choice.disabled || disabled),
13268
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
13556
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13269
13557
  "span",
13270
13558
  {
13271
13559
  className: cn(
@@ -13277,14 +13565,14 @@ var MultipleChoiceList = ({
13277
13565
  }
13278
13566
  )
13279
13567
  ] }),
13280
- statusBadge && /* @__PURE__ */ (0, import_jsx_runtime62.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
13568
+ statusBadge && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex-shrink-0", children: statusBadge })
13281
13569
  ]
13282
13570
  },
13283
13571
  `readonly-${choice.value}-${i}`
13284
13572
  );
13285
13573
  }) });
13286
13574
  }
13287
- return /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
13575
+ return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13288
13576
  "div",
13289
13577
  {
13290
13578
  className: cn(
@@ -13292,7 +13580,7 @@ var MultipleChoiceList = ({
13292
13580
  disabled ? "opacity-50 cursor-not-allowed" : "",
13293
13581
  className
13294
13582
  ),
13295
- children: /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
13583
+ children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13296
13584
  CheckboxList_default,
13297
13585
  {
13298
13586
  name,
@@ -13302,12 +13590,12 @@ var MultipleChoiceList = ({
13302
13590
  onHandleSelectedValues?.(v);
13303
13591
  },
13304
13592
  disabled,
13305
- children: choices.map((choice, i) => /* @__PURE__ */ (0, import_jsx_runtime62.jsxs)(
13593
+ children: choices.map((choice, i) => /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
13306
13594
  "div",
13307
13595
  {
13308
13596
  className: "flex flex-row gap-2 items-center",
13309
13597
  children: [
13310
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
13598
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13311
13599
  CheckboxListItem,
13312
13600
  {
13313
13601
  value: choice.value,
@@ -13315,7 +13603,7 @@ var MultipleChoiceList = ({
13315
13603
  disabled: choice.disabled || disabled
13316
13604
  }
13317
13605
  ),
13318
- /* @__PURE__ */ (0, import_jsx_runtime62.jsx)(
13606
+ /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13319
13607
  "label",
13320
13608
  {
13321
13609
  htmlFor: `interactive-${choice.value}-${i}`,
@@ -13338,19 +13626,19 @@ var MultipleChoiceList = ({
13338
13626
  };
13339
13627
 
13340
13628
  // src/components/Quiz/QuizContent.tsx
13341
- var import_phosphor_react31 = require("phosphor-react");
13629
+ var import_phosphor_react32 = require("phosphor-react");
13342
13630
 
13343
13631
  // src/assets/img/mock-image-question.png
13344
13632
  var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
13345
13633
 
13346
13634
  // src/components/Quiz/QuizContent.tsx
13347
- var import_jsx_runtime63 = require("react/jsx-runtime");
13635
+ var import_jsx_runtime64 = require("react/jsx-runtime");
13348
13636
  var getStatusBadge = (status) => {
13349
13637
  switch (status) {
13350
13638
  case "correct":
13351
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.CheckCircle, {}), children: "Resposta correta" });
13639
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.CheckCircle, {}), children: "Resposta correta" });
13352
13640
  case "incorrect":
13353
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.XCircle, {}), children: "Resposta incorreta" });
13641
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.XCircle, {}), children: "Resposta incorreta" });
13354
13642
  default:
13355
13643
  return null;
13356
13644
  }
@@ -13363,13 +13651,13 @@ var getStatusStyles = (variantCorrect) => {
13363
13651
  return "bg-error-background border-error-300";
13364
13652
  }
13365
13653
  };
13366
- var QuizSubTitle = (0, import_react43.forwardRef)(
13654
+ var QuizSubTitle = (0, import_react44.forwardRef)(
13367
13655
  ({ subTitle, ...props }, ref) => {
13368
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
13656
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
13369
13657
  }
13370
13658
  );
13371
- var QuizContainer = (0, import_react43.forwardRef)(({ children, className, ...props }, ref) => {
13372
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13659
+ var QuizContainer = (0, import_react44.forwardRef)(({ children, className, ...props }, ref) => {
13660
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13373
13661
  "div",
13374
13662
  {
13375
13663
  ref,
@@ -13422,10 +13710,10 @@ var QuizAlternative = ({ paddingBottom }) => {
13422
13710
  };
13423
13711
  });
13424
13712
  if (!alternatives)
13425
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
13426
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13427
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13428
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13713
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { children: "N\xE3o h\xE1 Alternativas" }) });
13714
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
13715
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13716
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13429
13717
  AlternativesList,
13430
13718
  {
13431
13719
  mode: variant === "default" ? "interactive" : "readonly",
@@ -13457,15 +13745,15 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
13457
13745
  const currentQuestionResult = getQuestionResultByQuestionId(
13458
13746
  currentQuestion?.id || ""
13459
13747
  );
13460
- const prevSelectedValuesRef = (0, import_react43.useRef)([]);
13461
- const prevQuestionIdRef = (0, import_react43.useRef)("");
13462
- const allCurrentAnswerIds = (0, import_react43.useMemo)(() => {
13748
+ const prevSelectedValuesRef = (0, import_react44.useRef)([]);
13749
+ const prevQuestionIdRef = (0, import_react44.useRef)("");
13750
+ const allCurrentAnswerIds = (0, import_react44.useMemo)(() => {
13463
13751
  return allCurrentAnswers?.map((answer) => answer.optionId) || [];
13464
13752
  }, [allCurrentAnswers]);
13465
- const selectedValues = (0, import_react43.useMemo)(() => {
13753
+ const selectedValues = (0, import_react44.useMemo)(() => {
13466
13754
  return allCurrentAnswerIds?.filter((id) => id !== null) || [];
13467
13755
  }, [allCurrentAnswerIds]);
13468
- const stableSelectedValues = (0, import_react43.useMemo)(() => {
13756
+ const stableSelectedValues = (0, import_react44.useMemo)(() => {
13469
13757
  const currentQuestionId = currentQuestion?.id || "";
13470
13758
  const hasQuestionChanged = prevQuestionIdRef.current !== currentQuestionId;
13471
13759
  if (hasQuestionChanged) {
@@ -13489,7 +13777,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
13489
13777
  variant,
13490
13778
  currentQuestionResult?.selectedOptions
13491
13779
  ]);
13492
- const handleSelectedValues = (0, import_react43.useCallback)(
13780
+ const handleSelectedValues = (0, import_react44.useCallback)(
13493
13781
  (values) => {
13494
13782
  if (currentQuestion) {
13495
13783
  selectMultipleAnswer(currentQuestion.id, values);
@@ -13497,7 +13785,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
13497
13785
  },
13498
13786
  [currentQuestion, selectMultipleAnswer]
13499
13787
  );
13500
- const questionKey = (0, import_react43.useMemo)(
13788
+ const questionKey = (0, import_react44.useMemo)(
13501
13789
  () => `question-${currentQuestion?.id || "1"}`,
13502
13790
  [currentQuestion?.id]
13503
13791
  );
@@ -13528,10 +13816,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
13528
13816
  };
13529
13817
  });
13530
13818
  if (!choices)
13531
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
13532
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13533
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13534
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13819
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
13820
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
13821
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13822
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13535
13823
  MultipleChoiceList,
13536
13824
  {
13537
13825
  choices,
@@ -13558,14 +13846,14 @@ var QuizDissertative = ({ paddingBottom }) => {
13558
13846
  currentQuestion?.id || ""
13559
13847
  );
13560
13848
  const currentAnswer = getCurrentAnswer();
13561
- const textareaRef = (0, import_react43.useRef)(null);
13849
+ const textareaRef = (0, import_react44.useRef)(null);
13562
13850
  const charLimit = getDissertativeCharLimit();
13563
13851
  const handleAnswerChange = (value) => {
13564
13852
  if (currentQuestion) {
13565
13853
  selectDissertativeAnswer(currentQuestion.id, value);
13566
13854
  }
13567
13855
  };
13568
- const adjustTextareaHeight = (0, import_react43.useCallback)(() => {
13856
+ const adjustTextareaHeight = (0, import_react44.useCallback)(() => {
13569
13857
  if (textareaRef.current) {
13570
13858
  textareaRef.current.style.height = "auto";
13571
13859
  const scrollHeight = textareaRef.current.scrollHeight;
@@ -13575,16 +13863,16 @@ var QuizDissertative = ({ paddingBottom }) => {
13575
13863
  textareaRef.current.style.height = `${newHeight}px`;
13576
13864
  }
13577
13865
  }, []);
13578
- (0, import_react43.useEffect)(() => {
13866
+ (0, import_react44.useEffect)(() => {
13579
13867
  adjustTextareaHeight();
13580
13868
  }, [currentAnswer, adjustTextareaHeight]);
13581
13869
  if (!currentQuestion) {
13582
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
13870
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
13583
13871
  }
13584
13872
  const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
13585
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13586
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
13587
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
13873
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
13874
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Resposta" }),
13875
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13588
13876
  TextArea_default,
13589
13877
  {
13590
13878
  ref: textareaRef,
@@ -13596,10 +13884,10 @@ var QuizDissertative = ({ paddingBottom }) => {
13596
13884
  maxLength: charLimit,
13597
13885
  showCharacterCount: !!charLimit
13598
13886
  }
13599
- ) }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
13600
- variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13601
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
13602
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
13887
+ ) }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
13888
+ variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
13889
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
13890
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
13603
13891
  ] })
13604
13892
  ] });
13605
13893
  };
@@ -13625,16 +13913,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
13625
13913
  ];
13626
13914
  const getLetterByIndex = (index) => String.fromCodePoint(97 + index);
13627
13915
  const isDefaultVariant = variant === "default";
13628
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13629
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13630
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
13916
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
13917
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13918
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
13631
13919
  const variantCorrect = option.isCorrect ? "correct" : "incorrect";
13632
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
13920
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13633
13921
  "section",
13634
13922
  {
13635
13923
  className: "flex flex-col gap-2",
13636
13924
  children: [
13637
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
13925
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13638
13926
  "div",
13639
13927
  {
13640
13928
  className: cn(
@@ -13642,20 +13930,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
13642
13930
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
13643
13931
  ),
13644
13932
  children: [
13645
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
13646
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(Select_default, { size: "medium", children: [
13647
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
13648
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(SelectContent, { children: [
13649
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
13650
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectItem, { value: "F", children: "Falso" })
13933
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
13934
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Select_default, { size: "medium", children: [
13935
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
13936
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SelectContent, { children: [
13937
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: "V", children: "Verdadeiro" }),
13938
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: "F", children: "Falso" })
13651
13939
  ] })
13652
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
13940
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
13653
13941
  ]
13654
13942
  }
13655
13943
  ),
13656
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
13657
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
13658
- !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
13944
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
13945
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
13946
+ !option.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
13659
13947
  ] })
13660
13948
  ]
13661
13949
  },
@@ -13716,7 +14004,7 @@ var QuizConnectDots = ({ paddingBottom }) => {
13716
14004
  isCorrect: false
13717
14005
  }
13718
14006
  ];
13719
- const [userAnswers, setUserAnswers] = (0, import_react43.useState)(() => {
14007
+ const [userAnswers, setUserAnswers] = (0, import_react44.useState)(() => {
13720
14008
  if (variant === "result") {
13721
14009
  return mockUserAnswers;
13722
14010
  }
@@ -13745,13 +14033,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
13745
14033
  const assignedDots = new Set(
13746
14034
  userAnswers.map((a) => a.dotOption).filter(Boolean)
13747
14035
  );
13748
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13749
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13750
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
14036
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14037
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
14038
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
13751
14039
  const answer = userAnswers[index];
13752
14040
  const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
13753
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("section", { className: "flex flex-col gap-2", children: [
13754
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14041
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("section", { className: "flex flex-col gap-2", children: [
14042
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13755
14043
  "div",
13756
14044
  {
13757
14045
  className: cn(
@@ -13759,30 +14047,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
13759
14047
  isDefaultVariant ? "" : getStatusStyles(variantCorrect)
13760
14048
  ),
13761
14049
  children: [
13762
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
13763
- isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14050
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
14051
+ isDefaultVariant ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13764
14052
  Select_default,
13765
14053
  {
13766
14054
  size: "medium",
13767
14055
  value: answer.dotOption || void 0,
13768
14056
  onValueChange: (value) => handleSelectDot(index, value),
13769
14057
  children: [
13770
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
13771
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectContent, { children: dotsOptions.filter(
14058
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
14059
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectContent, { children: dotsOptions.filter(
13772
14060
  (dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
13773
- ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
14061
+ ).map((dot) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
13774
14062
  ]
13775
14063
  }
13776
- ) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
14064
+ ) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
13777
14065
  ]
13778
14066
  }
13779
14067
  ),
13780
- !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
13781
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("p", { className: "text-text-800 text-2xs", children: [
14068
+ !isDefaultVariant && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "flex flex-row gap-2 items-center", children: [
14069
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("p", { className: "text-text-800 text-2xs", children: [
13782
14070
  "Resposta selecionada: ",
13783
14071
  answer.dotOption || "Nenhuma"
13784
14072
  ] }),
13785
- !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("p", { className: "text-text-800 text-2xs", children: [
14073
+ !answer.isCorrect && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("p", { className: "text-text-800 text-2xs", children: [
13786
14074
  "Resposta correta: ",
13787
14075
  answer.correctOption
13788
14076
  ] })
@@ -13835,8 +14123,8 @@ var QuizFill = ({ paddingBottom }) => {
13835
14123
  isCorrect: true
13836
14124
  }
13837
14125
  ];
13838
- const [answers, setAnswers] = (0, import_react43.useState)({});
13839
- const baseId = (0, import_react43.useId)();
14126
+ const [answers, setAnswers] = (0, import_react44.useState)({});
14127
+ const baseId = (0, import_react44.useId)();
13840
14128
  const getAvailableOptionsForSelect = (selectId) => {
13841
14129
  const usedOptions = new Set(
13842
14130
  Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value)
@@ -13851,18 +14139,18 @@ var QuizFill = ({ paddingBottom }) => {
13851
14139
  const mockAnswer = mockUserAnswers.find(
13852
14140
  (answer) => answer.selectId === selectId
13853
14141
  );
13854
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
14142
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
13855
14143
  };
13856
14144
  const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
13857
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14145
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
13858
14146
  Select_default,
13859
14147
  {
13860
14148
  value: selectedValue,
13861
14149
  onValueChange: (value) => handleSelectChange(selectId, value),
13862
14150
  className: "inline-flex mb-2.5",
13863
14151
  children: [
13864
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
13865
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
14152
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
14153
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
13866
14154
  ]
13867
14155
  },
13868
14156
  `${selectId}-${startIndex}`
@@ -13874,8 +14162,8 @@ var QuizFill = ({ paddingBottom }) => {
13874
14162
  );
13875
14163
  if (!mockAnswer) return null;
13876
14164
  const action = mockAnswer.isCorrect ? "success" : "error";
13877
- const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(import_phosphor_react31.XCircle, {});
13878
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14165
+ const icon = mockAnswer.isCorrect ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.CheckCircle, {}) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.XCircle, {});
14166
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13879
14167
  Badge_default,
13880
14168
  {
13881
14169
  variant: "solid",
@@ -13883,7 +14171,7 @@ var QuizFill = ({ paddingBottom }) => {
13883
14171
  iconRight: icon,
13884
14172
  size: "large",
13885
14173
  className: "py-3 w-[180px] justify-between mb-2.5",
13886
- children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
14174
+ children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-text-900", children: mockAnswer.userAnswer })
13887
14175
  },
13888
14176
  selectId
13889
14177
  );
@@ -13939,25 +14227,25 @@ var QuizFill = ({ paddingBottom }) => {
13939
14227
  }
13940
14228
  return elements;
13941
14229
  };
13942
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13943
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
13944
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14230
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14231
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Alternativas" }),
14232
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13945
14233
  "div",
13946
14234
  {
13947
14235
  className: cn(
13948
14236
  "text-lg text-text-900 leading-8 h-auto",
13949
14237
  variant != "result" && paddingBottom
13950
14238
  ),
13951
- children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: element.element }, element.id))
14239
+ children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: element.element }, element.id))
13952
14240
  }
13953
14241
  ) }) }),
13954
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
13955
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
13956
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14242
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14243
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Resultado" }),
14244
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
13957
14245
  "div",
13958
14246
  {
13959
14247
  className: cn("text-lg text-text-900 leading-8", paddingBottom),
13960
- children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { children: element.element }, element.id))
14248
+ children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { children: element.element }, element.id))
13961
14249
  }
13962
14250
  ) }) })
13963
14251
  ] })
@@ -13975,7 +14263,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
13975
14263
  };
13976
14264
  const correctRadiusRelative = calculateCorrectRadiusRelative();
13977
14265
  const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
13978
- const [clickPositionRelative, setClickPositionRelative] = (0, import_react43.useState)(variant == "result" ? mockUserAnswerRelative : null);
14266
+ const [clickPositionRelative, setClickPositionRelative] = (0, import_react44.useState)(variant == "result" ? mockUserAnswerRelative : null);
13979
14267
  const convertToRelativeCoordinates = (x, y, rect) => {
13980
14268
  const safeWidth = Math.max(rect.width, 1e-3);
13981
14269
  const safeHeight = Math.max(rect.height, 1e-3);
@@ -14011,36 +14299,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
14011
14299
  }
14012
14300
  return "bg-success-600/70 border-white";
14013
14301
  };
14014
- return /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(import_jsx_runtime63.Fragment, { children: [
14015
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
14016
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14302
+ return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14303
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
14304
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
14017
14305
  "div",
14018
14306
  {
14019
14307
  "data-testid": "quiz-image-container",
14020
14308
  className: "space-y-6 p-3 relative inline-block",
14021
14309
  children: [
14022
- variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14310
+ variant == "result" && /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
14023
14311
  "div",
14024
14312
  {
14025
14313
  "data-testid": "quiz-legend",
14026
14314
  className: "flex items-center gap-4 text-xs",
14027
14315
  children: [
14028
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-2", children: [
14029
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
14030
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
14316
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
14317
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
14318
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
14031
14319
  ] }),
14032
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-2", children: [
14033
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
14034
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
14320
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
14321
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
14322
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
14035
14323
  ] }),
14036
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)("div", { className: "flex items-center gap-2", children: [
14037
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
14038
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
14324
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex items-center gap-2", children: [
14325
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
14326
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
14039
14327
  ] })
14040
14328
  ]
14041
14329
  }
14042
14330
  ),
14043
- /* @__PURE__ */ (0, import_jsx_runtime63.jsxs)(
14331
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
14044
14332
  "button",
14045
14333
  {
14046
14334
  "data-testid": "quiz-image-button",
@@ -14055,7 +14343,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
14055
14343
  },
14056
14344
  "aria-label": "\xC1rea da imagem interativa",
14057
14345
  children: [
14058
- /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14346
+ /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14059
14347
  "img",
14060
14348
  {
14061
14349
  "data-testid": "quiz-image",
@@ -14064,7 +14352,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
14064
14352
  className: "w-full h-auto rounded-md"
14065
14353
  }
14066
14354
  ),
14067
- variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14355
+ variant === "result" && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14068
14356
  "div",
14069
14357
  {
14070
14358
  "data-testid": "quiz-correct-circle",
@@ -14079,7 +14367,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
14079
14367
  }
14080
14368
  }
14081
14369
  ),
14082
- clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime63.jsx)(
14370
+ clickPositionRelative && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14083
14371
  "div",
14084
14372
  {
14085
14373
  "data-testid": "quiz-user-circle",
@@ -14104,7 +14392,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
14104
14392
  };
14105
14393
 
14106
14394
  // src/components/Quiz/Quiz.tsx
14107
- var import_jsx_runtime64 = require("react/jsx-runtime");
14395
+ var import_jsx_runtime65 = require("react/jsx-runtime");
14108
14396
  var getQuizTypeConfig = (type) => {
14109
14397
  const QUIZ_TYPE_CONFIG = {
14110
14398
  ["SIMULADO" /* SIMULADO */]: {
@@ -14141,14 +14429,14 @@ var getFinishConfirmationText = (type) => {
14141
14429
  const config = getQuizTypeConfig(type);
14142
14430
  return `Tem certeza que deseja finalizar ${config.article} ${config.label.toLowerCase()}?`;
14143
14431
  };
14144
- var Quiz = (0, import_react44.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
14432
+ var Quiz = (0, import_react45.forwardRef)(({ children, className, variant = "default", ...props }, ref) => {
14145
14433
  const { setVariant } = useQuizStore();
14146
- (0, import_react44.useEffect)(() => {
14434
+ (0, import_react45.useEffect)(() => {
14147
14435
  setVariant(variant);
14148
14436
  }, [variant, setVariant]);
14149
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { ref, className: cn("flex flex-col", className), ...props, children });
14437
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { ref, className: cn("flex flex-col", className), ...props, children });
14150
14438
  });
14151
- var QuizTitle = (0, import_react44.forwardRef)(({ className, onBack, ...props }, ref) => {
14439
+ var QuizTitle = (0, import_react45.forwardRef)(({ className, onBack, ...props }, ref) => {
14152
14440
  const {
14153
14441
  quiz,
14154
14442
  currentQuestionIndex,
@@ -14158,7 +14446,7 @@ var QuizTitle = (0, import_react44.forwardRef)(({ className, onBack, ...props },
14158
14446
  formatTime: formatTime2,
14159
14447
  isStarted
14160
14448
  } = useQuizStore();
14161
- const [showExitConfirmation, setShowExitConfirmation] = (0, import_react44.useState)(false);
14449
+ const [showExitConfirmation, setShowExitConfirmation] = (0, import_react45.useState)(false);
14162
14450
  const totalQuestions = getTotalQuestions();
14163
14451
  const quizTitle = getQuizTitle();
14164
14452
  const handleBackClick = () => {
@@ -14182,8 +14470,8 @@ var QuizTitle = (0, import_react44.forwardRef)(({ className, onBack, ...props },
14182
14470
  const handleCancelExit = () => {
14183
14471
  setShowExitConfirmation(false);
14184
14472
  };
14185
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14186
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(
14473
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
14474
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
14187
14475
  "div",
14188
14476
  {
14189
14477
  ref,
@@ -14193,24 +14481,24 @@ var QuizTitle = (0, import_react44.forwardRef)(({ className, onBack, ...props },
14193
14481
  ),
14194
14482
  ...props,
14195
14483
  children: [
14196
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14484
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14197
14485
  IconButton_default,
14198
14486
  {
14199
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.CaretLeft, { size: 24 }),
14487
+ icon: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.CaretLeft, { size: 24 }),
14200
14488
  size: "md",
14201
14489
  "aria-label": "Voltar",
14202
14490
  onClick: handleBackClick
14203
14491
  }
14204
14492
  ),
14205
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
14206
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
14207
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
14493
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "flex flex-col gap-2 text-center", children: [
14494
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
14495
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
14208
14496
  ] }),
14209
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
14497
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.Clock, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
14210
14498
  ]
14211
14499
  }
14212
14500
  ),
14213
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14501
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14214
14502
  AlertDialog,
14215
14503
  {
14216
14504
  isOpen: showExitConfirmation,
@@ -14230,7 +14518,7 @@ var QuizHeader = () => {
14230
14518
  const currentQuestion = getCurrentQuestion();
14231
14519
  let currentId = currentQuestion && "questionId" in currentQuestion ? currentQuestion.questionId : currentQuestion?.id;
14232
14520
  const questionIndex = getQuestionIndex(currentId);
14233
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14521
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14234
14522
  HeaderAlternative,
14235
14523
  {
14236
14524
  title: currentQuestion ? `Quest\xE3o ${questionIndex.toString().padStart(2, "0")}` : "Quest\xE3o",
@@ -14252,7 +14540,7 @@ var QuizContent = ({ paddingBottom }) => {
14252
14540
  ["IMAGEM" /* IMAGEM */]: QuizImageQuestion
14253
14541
  };
14254
14542
  const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
14255
- return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(QuestionComponent, { paddingBottom }) : null;
14543
+ return QuestionComponent ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(QuestionComponent, { paddingBottom }) : null;
14256
14544
  };
14257
14545
  var QuizQuestionList = ({
14258
14546
  filterType = "all",
@@ -14299,18 +14587,18 @@ var QuizQuestionList = ({
14299
14587
  return "Em branco";
14300
14588
  }
14301
14589
  };
14302
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "space-y-6 px-4 h-full", children: [
14303
- Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-lg", children: "Nenhum resultado" }) }),
14590
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "space-y-6 px-4 h-full", children: [
14591
+ Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-lg", children: "Nenhum resultado" }) }),
14304
14592
  Object.entries(filteredGroupedQuestions).map(
14305
- ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("section", { className: "flex flex-col gap-2", children: [
14306
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
14307
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.BookOpen, { size: 17, className: "text-white" }) }),
14308
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
14593
+ ([subjectId, questions]) => /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("section", { className: "flex flex-col gap-2", children: [
14594
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
14595
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.BookOpen, { size: 17, className: "text-white" }) }),
14596
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
14309
14597
  ] }),
14310
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
14598
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
14311
14599
  const status = getQuestionStatus(question.id);
14312
14600
  const questionNumber = getQuestionIndex(question.id);
14313
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14601
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14314
14602
  CardStatus,
14315
14603
  {
14316
14604
  header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
@@ -14327,7 +14615,7 @@ var QuizQuestionList = ({
14327
14615
  )
14328
14616
  ] });
14329
14617
  };
14330
- var QuizFooter = (0, import_react44.forwardRef)(
14618
+ var QuizFooter = (0, import_react45.forwardRef)(
14331
14619
  ({
14332
14620
  className,
14333
14621
  onGoToSimulated,
@@ -14361,8 +14649,8 @@ var QuizFooter = (0, import_react44.forwardRef)(
14361
14649
  const currentAnswer = getCurrentAnswer();
14362
14650
  const currentQuestion = getCurrentQuestion();
14363
14651
  const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
14364
- const [activeModal, setActiveModal] = (0, import_react44.useState)(null);
14365
- const [filterType, setFilterType] = (0, import_react44.useState)("all");
14652
+ const [activeModal, setActiveModal] = (0, import_react45.useState)(null);
14653
+ const [filterType, setFilterType] = (0, import_react45.useState)("all");
14366
14654
  const openModal = (modalName) => setActiveModal(modalName);
14367
14655
  const closeModal = () => setActiveModal(null);
14368
14656
  const isModalOpen = (modalName) => activeModal === modalName;
@@ -14417,8 +14705,8 @@ var QuizFooter = (0, import_react44.forwardRef)(
14417
14705
  return;
14418
14706
  }
14419
14707
  };
14420
- return /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14421
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14708
+ return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
14709
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14422
14710
  "footer",
14423
14711
  {
14424
14712
  ref,
@@ -14427,17 +14715,17 @@ var QuizFooter = (0, import_react44.forwardRef)(
14427
14715
  className
14428
14716
  ),
14429
14717
  ...props,
14430
- children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(import_jsx_runtime64.Fragment, { children: [
14431
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
14432
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14718
+ children: variant === "default" ? /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(import_jsx_runtime65.Fragment, { children: [
14719
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-row items-center gap-1", children: [
14720
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14433
14721
  IconButton_default,
14434
14722
  {
14435
- icon: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.SquaresFour, { size: 24, className: "text-text-950" }),
14723
+ icon: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.SquaresFour, { size: 24, className: "text-text-950" }),
14436
14724
  size: "md",
14437
14725
  onClick: () => openModal("modalNavigate")
14438
14726
  }
14439
14727
  ),
14440
- isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14728
+ isFirstQuestion ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14441
14729
  Button_default,
14442
14730
  {
14443
14731
  variant: "outline",
@@ -14448,13 +14736,13 @@ var QuizFooter = (0, import_react44.forwardRef)(
14448
14736
  },
14449
14737
  children: "Pular"
14450
14738
  }
14451
- ) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14739
+ ) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14452
14740
  Button_default,
14453
14741
  {
14454
14742
  size: "medium",
14455
14743
  variant: "link",
14456
14744
  action: "primary",
14457
- iconLeft: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.CaretLeft, { size: 18 }),
14745
+ iconLeft: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.CaretLeft, { size: 18 }),
14458
14746
  onClick: () => {
14459
14747
  goToPreviousQuestion();
14460
14748
  },
@@ -14462,7 +14750,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14462
14750
  }
14463
14751
  )
14464
14752
  ] }),
14465
- !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14753
+ !isFirstQuestion && !isLastQuestion && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14466
14754
  Button_default,
14467
14755
  {
14468
14756
  size: "small",
@@ -14475,7 +14763,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14475
14763
  children: "Pular"
14476
14764
  }
14477
14765
  ),
14478
- isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14766
+ isLastQuestion ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14479
14767
  Button_default,
14480
14768
  {
14481
14769
  size: "medium",
@@ -14484,13 +14772,13 @@ var QuizFooter = (0, import_react44.forwardRef)(
14484
14772
  onClick: handleFinishQuiz,
14485
14773
  children: "Finalizar"
14486
14774
  }
14487
- ) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14775
+ ) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14488
14776
  Button_default,
14489
14777
  {
14490
14778
  size: "medium",
14491
14779
  variant: "link",
14492
14780
  action: "primary",
14493
- iconRight: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(import_phosphor_react32.CaretRight, { size: 18 }),
14781
+ iconRight: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.CaretRight, { size: 18 }),
14494
14782
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
14495
14783
  onClick: () => {
14496
14784
  goToNextQuestion();
@@ -14498,7 +14786,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14498
14786
  children: "Avan\xE7ar"
14499
14787
  }
14500
14788
  )
14501
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14789
+ ] }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14502
14790
  Button_default,
14503
14791
  {
14504
14792
  variant: "link",
@@ -14510,7 +14798,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14510
14798
  ) })
14511
14799
  }
14512
14800
  ),
14513
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14801
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14514
14802
  AlertDialog,
14515
14803
  {
14516
14804
  isOpen: isModalOpen("alertDialog"),
@@ -14522,7 +14810,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14522
14810
  onSubmit: handleAlertSubmit
14523
14811
  }
14524
14812
  ),
14525
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14813
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14526
14814
  Modal_default,
14527
14815
  {
14528
14816
  isOpen: isModalOpen("modalResult"),
@@ -14531,11 +14819,11 @@ var QuizFooter = (0, import_react44.forwardRef)(
14531
14819
  closeOnEscape: false,
14532
14820
  hideCloseButton: true,
14533
14821
  size: "md",
14534
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14535
- resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14536
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14537
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
14538
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("p", { className: "text-text-500 font-sm", children: [
14822
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14823
+ resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14824
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14825
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
14826
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("p", { className: "text-text-500 font-sm", children: [
14539
14827
  "Voc\xEA acertou ",
14540
14828
  correctAnswers ?? "--",
14541
14829
  " de ",
@@ -14544,8 +14832,8 @@ var QuizFooter = (0, import_react44.forwardRef)(
14544
14832
  "quest\xF5es."
14545
14833
  ] })
14546
14834
  ] }),
14547
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
14548
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14835
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
14836
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14549
14837
  Button_default,
14550
14838
  {
14551
14839
  variant: "outline",
@@ -14555,38 +14843,38 @@ var QuizFooter = (0, import_react44.forwardRef)(
14555
14843
  children: quizTypeLabel === "Question\xE1rio" ? "Ir para aulas" : `Ir para ${quizTypeLabel.toLocaleLowerCase()}s`
14556
14844
  }
14557
14845
  ),
14558
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
14846
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
14559
14847
  ] })
14560
14848
  ] })
14561
14849
  }
14562
14850
  ),
14563
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14851
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14564
14852
  Modal_default,
14565
14853
  {
14566
14854
  isOpen: isModalOpen("modalNavigate"),
14567
14855
  onClose: closeModal,
14568
14856
  title: "Quest\xF5es",
14569
14857
  size: "lg",
14570
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
14571
- /* @__PURE__ */ (0, import_jsx_runtime64.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: [
14572
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
14573
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
14574
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14858
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
14859
+ /* @__PURE__ */ (0, import_jsx_runtime65.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: [
14860
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
14861
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "max-w-[266px]", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(Select_default, { value: filterType, onValueChange: setFilterType, children: [
14862
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14575
14863
  SelectTrigger,
14576
14864
  {
14577
14865
  variant: "rounded",
14578
14866
  className: "max-w-[266px] min-w-[160px]",
14579
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
14867
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
14580
14868
  }
14581
14869
  ),
14582
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)(SelectContent, { children: [
14583
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: "all", children: "Todas" }),
14584
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
14585
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
14870
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(SelectContent, { children: [
14871
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SelectItem, { value: "all", children: "Todas" }),
14872
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SelectItem, { value: "unanswered", children: "Em branco" }),
14873
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(SelectItem, { value: "answered", children: "Respondidas" })
14586
14874
  ] })
14587
14875
  ] }) })
14588
14876
  ] }),
14589
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14877
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14590
14878
  QuizQuestionList,
14591
14879
  {
14592
14880
  filterType,
@@ -14596,7 +14884,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14596
14884
  ] })
14597
14885
  }
14598
14886
  ),
14599
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14887
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14600
14888
  Modal_default,
14601
14889
  {
14602
14890
  isOpen: isModalOpen("modalResolution"),
@@ -14606,7 +14894,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14606
14894
  children: currentQuestion?.solutionExplanation
14607
14895
  }
14608
14896
  ),
14609
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14897
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14610
14898
  Modal_default,
14611
14899
  {
14612
14900
  isOpen: isModalOpen("modalQuestionnaireAllCorrect"),
@@ -14615,17 +14903,17 @@ var QuizFooter = (0, import_react44.forwardRef)(
14615
14903
  closeOnEscape: false,
14616
14904
  hideCloseButton: true,
14617
14905
  size: "md",
14618
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14619
- resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14620
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14621
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
14622
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
14906
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14907
+ resultImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14908
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14909
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
14910
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
14623
14911
  ] }),
14624
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
14912
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
14625
14913
  ] })
14626
14914
  }
14627
14915
  ),
14628
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14916
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14629
14917
  Modal_default,
14630
14918
  {
14631
14919
  isOpen: isModalOpen("modalQuestionnaireAllIncorrect"),
@@ -14634,16 +14922,16 @@ var QuizFooter = (0, import_react44.forwardRef)(
14634
14922
  closeOnEscape: false,
14635
14923
  hideCloseButton: true,
14636
14924
  size: "md",
14637
- children: /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14638
- resultIncorrectImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14639
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14640
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
14641
- /* @__PURE__ */ (0, import_jsx_runtime64.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." }),
14642
- /* @__PURE__ */ (0, import_jsx_runtime64.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." }),
14643
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
14925
+ children: /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
14926
+ resultIncorrectImageComponent ? /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
14927
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-2 text-center", children: [
14928
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
14929
+ /* @__PURE__ */ (0, import_jsx_runtime65.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." }),
14930
+ /* @__PURE__ */ (0, import_jsx_runtime65.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." }),
14931
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
14644
14932
  ] }),
14645
- /* @__PURE__ */ (0, import_jsx_runtime64.jsxs)("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
14646
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14933
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
14934
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14647
14935
  Button_default,
14648
14936
  {
14649
14937
  type: "button",
@@ -14657,7 +14945,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14657
14945
  children: "Tentar depois"
14658
14946
  }
14659
14947
  ),
14660
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14948
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14661
14949
  Button_default,
14662
14950
  {
14663
14951
  variant: "outline",
@@ -14667,7 +14955,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14667
14955
  children: "Detalhar resultado"
14668
14956
  }
14669
14957
  ),
14670
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14958
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14671
14959
  Button_default,
14672
14960
  {
14673
14961
  className: "w-auto",
@@ -14680,7 +14968,7 @@ var QuizFooter = (0, import_react44.forwardRef)(
14680
14968
  ] })
14681
14969
  }
14682
14970
  ),
14683
- /* @__PURE__ */ (0, import_jsx_runtime64.jsx)(
14971
+ /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
14684
14972
  AlertDialog,
14685
14973
  {
14686
14974
  isOpen: isModalOpen("alertDialogTryLater"),
@@ -14704,37 +14992,37 @@ var QuizFooter = (0, import_react44.forwardRef)(
14704
14992
  );
14705
14993
 
14706
14994
  // src/components/Quiz/QuizResult.tsx
14707
- var import_react45 = require("react");
14708
- var import_phosphor_react33 = require("phosphor-react");
14709
- var import_jsx_runtime65 = require("react/jsx-runtime");
14995
+ var import_react46 = require("react");
14996
+ var import_phosphor_react34 = require("phosphor-react");
14997
+ var import_jsx_runtime66 = require("react/jsx-runtime");
14710
14998
  var QuizBadge = ({
14711
14999
  subtype
14712
15000
  }) => {
14713
15001
  switch (subtype) {
14714
15002
  case "PROVA" /* PROVA */:
14715
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
15003
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
14716
15004
  case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
14717
15005
  case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
14718
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
15006
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
14719
15007
  case "VESTIBULAR" /* VESTIBULAR */:
14720
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
15008
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
14721
15009
  case "SIMULADO" /* SIMULADO */:
14722
15010
  case "SIMULADAO" /* SIMULADAO */:
14723
15011
  case void 0:
14724
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
15012
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
14725
15013
  default:
14726
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
15014
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
14727
15015
  }
14728
15016
  };
14729
- var QuizHeaderResult = (0, import_react45.forwardRef)(
15017
+ var QuizHeaderResult = (0, import_react46.forwardRef)(
14730
15018
  ({ className, ...props }, ref) => {
14731
15019
  const {
14732
15020
  getQuestionResultByQuestionId,
14733
15021
  getCurrentQuestion,
14734
15022
  questionsResult
14735
15023
  } = useQuizStore();
14736
- const [status, setStatus] = (0, import_react45.useState)(void 0);
14737
- (0, import_react45.useEffect)(() => {
15024
+ const [status, setStatus] = (0, import_react46.useState)(void 0);
15025
+ (0, import_react46.useEffect)(() => {
14738
15026
  const cq = getCurrentQuestion();
14739
15027
  if (!cq) {
14740
15028
  setStatus(void 0);
@@ -14780,7 +15068,7 @@ var QuizHeaderResult = (0, import_react45.forwardRef)(
14780
15068
  return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
14781
15069
  }
14782
15070
  };
14783
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
15071
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
14784
15072
  "div",
14785
15073
  {
14786
15074
  ref,
@@ -14791,16 +15079,16 @@ var QuizHeaderResult = (0, import_react45.forwardRef)(
14791
15079
  ),
14792
15080
  ...props,
14793
15081
  children: [
14794
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
14795
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
15082
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
15083
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
14796
15084
  ]
14797
15085
  }
14798
15086
  );
14799
15087
  }
14800
15088
  );
14801
- var QuizResultHeaderTitle = (0, import_react45.forwardRef)(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
15089
+ var QuizResultHeaderTitle = (0, import_react46.forwardRef)(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
14802
15090
  const { quiz } = useQuizStore();
14803
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
15091
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
14804
15092
  "div",
14805
15093
  {
14806
15094
  ref,
@@ -14810,9 +15098,9 @@ var QuizResultHeaderTitle = (0, import_react45.forwardRef)(({ className, showBad
14810
15098
  ),
14811
15099
  ...props,
14812
15100
  children: [
14813
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
14814
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-row gap-3 items-center", children: [
14815
- canRetry && onRepeat && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15101
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
15102
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-row gap-3 items-center", children: [
15103
+ canRetry && onRepeat && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14816
15104
  Button_default,
14817
15105
  {
14818
15106
  variant: "solid",
@@ -14822,16 +15110,16 @@ var QuizResultHeaderTitle = (0, import_react45.forwardRef)(({ className, showBad
14822
15110
  children: "Repetir question\xE1rio"
14823
15111
  }
14824
15112
  ),
14825
- showBadge && /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(QuizBadge, { subtype: quiz?.subtype || void 0 })
15113
+ showBadge && /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(QuizBadge, { subtype: quiz?.subtype || void 0 })
14826
15114
  ] })
14827
15115
  ]
14828
15116
  }
14829
15117
  );
14830
15118
  });
14831
- var QuizResultTitle = (0, import_react45.forwardRef)(({ className, ...props }, ref) => {
15119
+ var QuizResultTitle = (0, import_react46.forwardRef)(({ className, ...props }, ref) => {
14832
15120
  const { getQuizTitle } = useQuizStore();
14833
15121
  const quizTitle = getQuizTitle();
14834
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15122
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14835
15123
  "p",
14836
15124
  {
14837
15125
  className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
@@ -14872,7 +15160,7 @@ var calculateAnswerStatistics = (answers) => {
14872
15160
  }
14873
15161
  return stats;
14874
15162
  };
14875
- var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true, ...props }, ref) => {
15163
+ var QuizResultPerformance = (0, import_react46.forwardRef)(({ showDetails = true, ...props }, ref) => {
14876
15164
  const {
14877
15165
  getTotalQuestions,
14878
15166
  formatTime: formatTime2,
@@ -14892,7 +15180,7 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14892
15180
  };
14893
15181
  const percentage = totalQuestions > 0 ? Math.round(stats.correctAnswers / totalQuestions * 100) : 0;
14894
15182
  const classesJustifyBetween = showDetails ? "justify-between" : "justify-center";
14895
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)(
15183
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)(
14896
15184
  "div",
14897
15185
  {
14898
15186
  className: cn(
@@ -14902,8 +15190,8 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14902
15190
  ref,
14903
15191
  ...props,
14904
15192
  children: [
14905
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "relative", children: [
14906
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15193
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "relative", children: [
15194
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14907
15195
  ProgressCircle_default,
14908
15196
  {
14909
15197
  size: "medium",
@@ -14913,24 +15201,24 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14913
15201
  label: ""
14914
15202
  }
14915
15203
  ),
14916
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
14917
- showDetails && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
14918
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(import_phosphor_react33.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
14919
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
15204
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
15205
+ showDetails && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex items-center gap-1 mb-1", children: [
15206
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(import_phosphor_react34.Clock, { size: 12, weight: "regular", className: "text-text-800" }),
15207
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
14920
15208
  (getQuestionResultStatistics()?.timeSpent ?? 0) * 60
14921
15209
  ) })
14922
15210
  ] }),
14923
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
15211
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
14924
15212
  getQuestionResultStatistics()?.correctAnswers ?? "--",
14925
15213
  " de",
14926
15214
  " ",
14927
15215
  totalQuestions
14928
15216
  ] }),
14929
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
15217
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
14930
15218
  ] })
14931
15219
  ] }),
14932
- showDetails && /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
14933
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15220
+ showDetails && /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col gap-4 w-full", children: [
15221
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14934
15222
  ProgressBar_default,
14935
15223
  {
14936
15224
  className: "w-full",
@@ -14944,7 +15232,7 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14944
15232
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
14945
15233
  }
14946
15234
  ),
14947
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15235
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14948
15236
  ProgressBar_default,
14949
15237
  {
14950
15238
  className: "w-full",
@@ -14958,7 +15246,7 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14958
15246
  percentageClassName: "text-xs font-medium leading-[14px] text-right"
14959
15247
  }
14960
15248
  ),
14961
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15249
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
14962
15250
  ProgressBar_default,
14963
15251
  {
14964
15252
  className: "w-full",
@@ -14977,7 +15265,7 @@ var QuizResultPerformance = (0, import_react45.forwardRef)(({ showDetails = true
14977
15265
  }
14978
15266
  );
14979
15267
  });
14980
- var QuizListResult = (0, import_react45.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
15268
+ var QuizListResult = (0, import_react46.forwardRef)(({ className, onSubjectClick, ...props }, ref) => {
14981
15269
  const { getQuestionsGroupedBySubject } = useQuizStore();
14982
15270
  const { isDark } = useTheme();
14983
15271
  const groupedQuestions = getQuestionsGroupedBySubject();
@@ -15005,9 +15293,9 @@ var QuizListResult = (0, import_react45.forwardRef)(({ className, onSubjectClick
15005
15293
  };
15006
15294
  }
15007
15295
  );
15008
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("section", { ref, className, ...props, children: [
15009
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
15010
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15296
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("section", { ref, className, ...props, children: [
15297
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
15298
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15011
15299
  CardResults,
15012
15300
  {
15013
15301
  onClick: () => onSubjectClick?.(subject.subject.id),
@@ -15031,16 +15319,16 @@ var QuizListResultByMateria = ({
15031
15319
  const groupedQuestions = getQuestionsGroupedBySubject();
15032
15320
  const answeredQuestions = groupedQuestions[subject] || [];
15033
15321
  const formattedQuestions = subject == "all" ? Object.values(groupedQuestions).flat() : answeredQuestions;
15034
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("div", { className: "flex flex-col", children: [
15035
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
15036
- /* @__PURE__ */ (0, import_jsx_runtime65.jsxs)("section", { className: "flex flex-col ", children: [
15037
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
15038
- /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
15322
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("div", { className: "flex flex-col", children: [
15323
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
15324
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsxs)("section", { className: "flex flex-col ", children: [
15325
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
15326
+ /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
15039
15327
  const questionIndex = getQuestionIndex(
15040
15328
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15041
15329
  question.questionId ?? question.id
15042
15330
  );
15043
- return /* @__PURE__ */ (0, import_jsx_runtime65.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime65.jsx)(
15331
+ return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)("li", { children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15044
15332
  CardStatus,
15045
15333
  {
15046
15334
  className: "max-w-full",
@@ -15066,7 +15354,7 @@ var QuizListResultByMateria = ({
15066
15354
 
15067
15355
  // src/components/BreadcrumbMenu/BreadcrumbMenu.tsx
15068
15356
  var import_react_router_dom3 = require("react-router-dom");
15069
- var import_jsx_runtime66 = require("react/jsx-runtime");
15357
+ var import_jsx_runtime67 = require("react/jsx-runtime");
15070
15358
  var BreadcrumbMenu = ({
15071
15359
  breadcrumbs,
15072
15360
  onBreadcrumbClick,
@@ -15079,17 +15367,17 @@ var BreadcrumbMenu = ({
15079
15367
  }
15080
15368
  navigate(breadcrumb.url);
15081
15369
  };
15082
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15370
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
15083
15371
  Menu,
15084
15372
  {
15085
15373
  value: `breadcrumb-${breadcrumbs.length - 1}`,
15086
15374
  defaultValue: "breadcrumb-0",
15087
15375
  variant: "breadcrumb",
15088
15376
  className,
15089
- children: /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
15377
+ children: /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
15090
15378
  const isLast = index === breadcrumbs.length - 1;
15091
15379
  const hasSeparator = !isLast;
15092
- return /* @__PURE__ */ (0, import_jsx_runtime66.jsx)(
15380
+ return /* @__PURE__ */ (0, import_jsx_runtime67.jsx)(
15093
15381
  MenuItem,
15094
15382
  {
15095
15383
  variant: "breadcrumb",
@@ -15107,7 +15395,7 @@ var BreadcrumbMenu = ({
15107
15395
  };
15108
15396
 
15109
15397
  // src/components/BreadcrumbMenu/useBreadcrumbBuilder.ts
15110
- var import_react46 = require("react");
15398
+ var import_react47 = require("react");
15111
15399
 
15112
15400
  // src/components/BreadcrumbMenu/breadcrumbStore.ts
15113
15401
  var import_zustand12 = require("zustand");
@@ -15236,7 +15524,7 @@ var useBreadcrumbBuilder = (config) => {
15236
15524
  (level) => isBreadcrumbWithData(level) ? level.data : null
15237
15525
  );
15238
15526
  const levelUrlIds = levels.map((level) => level.urlId);
15239
- (0, import_react46.useEffect)(() => {
15527
+ (0, import_react47.useEffect)(() => {
15240
15528
  const newBreadcrumbs = [root];
15241
15529
  const previousIds = [];
15242
15530
  for (const level of levels) {
@@ -15268,11 +15556,11 @@ var useBreadcrumbBuilder = (config) => {
15268
15556
  };
15269
15557
 
15270
15558
  // src/components/BreadcrumbMenu/useUrlParams.ts
15271
- var import_react47 = require("react");
15559
+ var import_react48 = require("react");
15272
15560
  var import_react_router_dom4 = require("react-router-dom");
15273
15561
  var useUrlParams = (config) => {
15274
15562
  const location = (0, import_react_router_dom4.useLocation)();
15275
- return (0, import_react47.useMemo)(() => {
15563
+ return (0, import_react48.useMemo)(() => {
15276
15564
  const segments = location.pathname.split("/").filter(Boolean);
15277
15565
  const params = {};
15278
15566
  for (const [key, index] of Object.entries(config)) {
@@ -15283,15 +15571,15 @@ var useUrlParams = (config) => {
15283
15571
  };
15284
15572
 
15285
15573
  // src/hooks/useAppInitialization.ts
15286
- var import_react49 = require("react");
15574
+ var import_react50 = require("react");
15287
15575
 
15288
15576
  // src/hooks/useInstitution.ts
15289
- var import_react48 = require("react");
15577
+ var import_react49 = require("react");
15290
15578
  function useInstitutionId() {
15291
- const [institutionId, setInstitutionId] = (0, import_react48.useState)(() => {
15579
+ const [institutionId, setInstitutionId] = (0, import_react49.useState)(() => {
15292
15580
  return document.querySelector('meta[name="institution-id"]')?.getAttribute("content") ?? null;
15293
15581
  });
15294
- (0, import_react48.useEffect)(() => {
15582
+ (0, import_react49.useEffect)(() => {
15295
15583
  const metaTag = document.querySelector('meta[name="institution-id"]');
15296
15584
  if (!metaTag) return;
15297
15585
  const observer = new MutationObserver(() => {
@@ -15458,7 +15746,7 @@ var useAuthStore = (0, import_zustand14.create)()(
15458
15746
  function useAppInitialization() {
15459
15747
  const getInstitutionId = useInstitutionId();
15460
15748
  const { initialize, initialized, institutionId } = useAppStore();
15461
- const authFunctions = (0, import_react49.useMemo)(
15749
+ const authFunctions = (0, import_react50.useMemo)(
15462
15750
  () => ({
15463
15751
  checkAuth: async () => {
15464
15752
  const { sessionInfo, tokens } = useAuthStore.getState();
@@ -15495,7 +15783,7 @@ function useAppInitialization() {
15495
15783
  }
15496
15784
 
15497
15785
  // src/hooks/useAppContent.ts
15498
- var import_react50 = require("react");
15786
+ var import_react51 = require("react");
15499
15787
  var import_react_router_dom5 = require("react-router-dom");
15500
15788
  function useAppContent(config) {
15501
15789
  const navigate = (0, import_react_router_dom5.useNavigate)();
@@ -15521,20 +15809,20 @@ function useAppContent(config) {
15521
15809
  navigate("/painel");
15522
15810
  }
15523
15811
  };
15524
- const handleSetSelectedProfile = (0, import_react50.useCallback)(
15812
+ const handleSetSelectedProfile = (0, import_react51.useCallback)(
15525
15813
  (profile) => {
15526
15814
  setSelectedProfile(profile);
15527
15815
  },
15528
15816
  [setSelectedProfile]
15529
15817
  );
15530
- const handleClearParamsFromURL = (0, import_react50.useCallback)(() => {
15818
+ const handleClearParamsFromURL = (0, import_react51.useCallback)(() => {
15531
15819
  if (onClearParamsFromURL) {
15532
15820
  onClearParamsFromURL();
15533
15821
  } else {
15534
15822
  globalThis.location.replace("/painel");
15535
15823
  }
15536
15824
  }, [onClearParamsFromURL]);
15537
- const handleError = (0, import_react50.useCallback)(
15825
+ const handleError = (0, import_react51.useCallback)(
15538
15826
  (error) => {
15539
15827
  if (onError) {
15540
15828
  onError(error);
@@ -15545,7 +15833,7 @@ function useAppContent(config) {
15545
15833
  },
15546
15834
  [navigate, onError]
15547
15835
  );
15548
- const urlAuthConfig = (0, import_react50.useMemo)(
15836
+ const urlAuthConfig = (0, import_react51.useMemo)(
15549
15837
  () => ({
15550
15838
  setTokens,
15551
15839
  setSessionInfo,
@@ -15571,10 +15859,10 @@ function useAppContent(config) {
15571
15859
  );
15572
15860
  useUrlAuthentication(urlAuthConfig);
15573
15861
  const { sessionInfo } = useAuth();
15574
- const institutionIdToUse = (0, import_react50.useMemo)(() => {
15862
+ const institutionIdToUse = (0, import_react51.useMemo)(() => {
15575
15863
  return sessionInfo?.institutionId || getInstitutionId;
15576
15864
  }, [sessionInfo?.institutionId, getInstitutionId]);
15577
- (0, import_react50.useEffect)(() => {
15865
+ (0, import_react51.useEffect)(() => {
15578
15866
  if (institutionIdToUse && !initialized) {
15579
15867
  initialize(institutionIdToUse);
15580
15868
  }
@@ -15705,6 +15993,7 @@ function useAppContent(config) {
15705
15993
  TableHead,
15706
15994
  TableHeader,
15707
15995
  TablePagination,
15996
+ TableProvider,
15708
15997
  TableRow,
15709
15998
  Text,
15710
15999
  TextArea,