analytica-frontend-lib 1.0.99 → 1.1.1

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.d.mts CHANGED
@@ -32,7 +32,7 @@ export { MultipleChoiceList } from './MultipleChoice/index.mjs';
32
32
  export { default as IconRender } from './IconRender/index.mjs';
33
33
  export { default as DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.mjs';
34
34
  export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.mjs';
35
- export { default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.mjs';
35
+ export { Breadcrumb, default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.mjs';
36
36
  export { CardActivitiesResults, CardPerformance, CardProgress, CardQuestions, CardResults, CardSimulado, CardSimulationHistory, CardStatus, CardTest, CardTopic } from './Card/index.mjs';
37
37
  export { Skeleton, SkeletonCard, SkeletonCircle, SkeletonList, SkeletonRectangle, SkeletonRounded, SkeletonTable, SkeletonText } from './Skeleton/index.mjs';
38
38
  export { default as NotFound } from './NotFound/index.mjs';
package/dist/index.d.ts CHANGED
@@ -32,7 +32,7 @@ export { MultipleChoiceList } from './MultipleChoice/index.js';
32
32
  export { default as IconRender } from './IconRender/index.js';
33
33
  export { default as DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuSeparator, DropdownMenuTrigger, MenuLabel, ProfileMenuFooter, ProfileMenuHeader, ProfileMenuSection, ProfileMenuTrigger } from './DropdownMenu/index.js';
34
34
  export { default as Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from './Select/index.js';
35
- export { default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.js';
35
+ export { Breadcrumb, default as Menu, MenuContent, MenuItem, MenuOverflow } from './Menu/index.js';
36
36
  export { CardActivitiesResults, CardPerformance, CardProgress, CardQuestions, CardResults, CardSimulado, CardSimulationHistory, CardStatus, CardTest, CardTopic } from './Card/index.js';
37
37
  export { Skeleton, SkeletonCard, SkeletonCircle, SkeletonList, SkeletonRectangle, SkeletonRounded, SkeletonTable, SkeletonText } from './Skeleton/index.js';
38
38
  export { default as NotFound } from './NotFound/index.js';
package/dist/index.js CHANGED
@@ -35,6 +35,7 @@ __export(src_exports, {
35
35
  AlternativesList: () => AlternativesList,
36
36
  AuthProvider: () => AuthProvider,
37
37
  Badge: () => Badge_default,
38
+ Breadcrumb: () => Breadcrumb,
38
39
  Button: () => Button_default,
39
40
  Calendar: () => Calendar_default,
40
41
  CardAccordation: () => CardAccordation,
@@ -6564,6 +6565,46 @@ var injectStore5 = (children, store) => import_react20.Children.map(children, (c
6564
6565
  ...typedChild.props.children ? { children: injectStore5(typedChild.props.children, store) } : {}
6565
6566
  });
6566
6567
  });
6568
+ var Breadcrumb = (0, import_react20.forwardRef)(
6569
+ ({ currentPage, parentPageName, onBackClick, className, ...props }, ref) => {
6570
+ const handleBackToParent = (0, import_react20.useCallback)(() => {
6571
+ onBackClick();
6572
+ }, [onBackClick]);
6573
+ const breadcrumbClassName = `bg-transparent shadow-none !px-0 py-4 !-ml-2 ${typeof className === "string" ? className : ""}`;
6574
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { ref, ...props, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
6575
+ Menu,
6576
+ {
6577
+ variant: "breadcrumb",
6578
+ defaultValue: "",
6579
+ className: breadcrumbClassName,
6580
+ children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(MenuContent, { variant: "breadcrumb", children: [
6581
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
6582
+ MenuItem,
6583
+ {
6584
+ variant: "breadcrumb",
6585
+ value: parentPageName.toLowerCase(),
6586
+ onClick: handleBackToParent,
6587
+ separator: true,
6588
+ className: "text-text-600 underline cursor-pointer hover:text-text-950",
6589
+ children: parentPageName
6590
+ }
6591
+ ),
6592
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
6593
+ MenuItem,
6594
+ {
6595
+ variant: "breadcrumb",
6596
+ value: currentPage.toLowerCase(),
6597
+ className: "text-text-950 font-bold",
6598
+ disabled: true,
6599
+ children: currentPage
6600
+ }
6601
+ )
6602
+ ] })
6603
+ }
6604
+ ) });
6605
+ }
6606
+ );
6607
+ Breadcrumb.displayName = "Breadcrumb";
6567
6608
  var Menu_default = Menu;
6568
6609
 
6569
6610
  // src/components/Skeleton/Skeleton.tsx
@@ -8490,6 +8531,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8490
8531
  className,
8491
8532
  onGoToSimulated,
8492
8533
  onDetailResult,
8534
+ handleFinishSimulated,
8493
8535
  variant = "default",
8494
8536
  ...props
8495
8537
  }, ref) => {
@@ -8519,6 +8561,34 @@ var QuizFooter = (0, import_react25.forwardRef)(
8519
8561
  const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
8520
8562
  const userAnswers = getUserAnswers();
8521
8563
  const allQuestions = getTotalQuestions();
8564
+ const handleFinishQuiz = async () => {
8565
+ if (unansweredQuestions.length > 0) {
8566
+ setAlertDialogOpen(true);
8567
+ return;
8568
+ }
8569
+ try {
8570
+ if (handleFinishSimulated) {
8571
+ await Promise.resolve(handleFinishSimulated());
8572
+ }
8573
+ setModalResultOpen(true);
8574
+ } catch (err) {
8575
+ console.error("handleFinishSimulated failed:", err);
8576
+ setModalResultOpen(true);
8577
+ }
8578
+ };
8579
+ const handleAlertSubmit = async () => {
8580
+ try {
8581
+ if (handleFinishSimulated) {
8582
+ await Promise.resolve(handleFinishSimulated());
8583
+ }
8584
+ setModalResultOpen(true);
8585
+ setAlertDialogOpen(false);
8586
+ } catch (err) {
8587
+ console.error("handleFinishSimulated failed:", err);
8588
+ setModalResultOpen(true);
8589
+ setAlertDialogOpen(false);
8590
+ }
8591
+ };
8522
8592
  return /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(import_jsx_runtime37.Fragment, { children: [
8523
8593
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
8524
8594
  "footer",
@@ -8584,13 +8654,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8584
8654
  variant: "solid",
8585
8655
  action: "primary",
8586
8656
  disabled: !currentAnswer && !isCurrentQuestionSkipped,
8587
- onClick: () => {
8588
- if (unansweredQuestions.length > 0) {
8589
- setAlertDialogOpen(true);
8590
- } else {
8591
- setModalResultOpen(true);
8592
- }
8593
- },
8657
+ onClick: handleFinishQuiz,
8594
8658
  children: "Finalizar"
8595
8659
  }
8596
8660
  ) : /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
@@ -8619,9 +8683,7 @@ var QuizFooter = (0, import_react25.forwardRef)(
8619
8683
  description: unansweredQuestions.length > 0 ? `Voc\xEA deixou as quest\xF5es ${unansweredQuestions.join(", ")} sem resposta. Finalizar agora pode impactar seu desempenho.` : "Tem certeza que deseja finalizar o simulado?",
8620
8684
  cancelButtonLabel: "Voltar e revisar",
8621
8685
  submitButtonLabel: "Finalizar Mesmo Assim",
8622
- onSubmit: () => {
8623
- setModalResultOpen(true);
8624
- }
8686
+ onSubmit: handleAlertSubmit
8625
8687
  }
8626
8688
  ),
8627
8689
  /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
@@ -8954,6 +9016,7 @@ var QuizListResultByMateria = ({
8954
9016
  AlternativesList,
8955
9017
  AuthProvider,
8956
9018
  Badge,
9019
+ Breadcrumb,
8957
9020
  Button,
8958
9021
  Calendar,
8959
9022
  CardAccordation,