analytica-frontend-lib 1.1.93 → 1.1.95
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/BreadcrumbMenu/breadcrumbStore/index.d.mts +77 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.d.ts +77 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.js +146 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.js.map +1 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs +120 -0
- package/dist/BreadcrumbMenu/breadcrumbStore/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/index.d.mts +31 -0
- package/dist/BreadcrumbMenu/index.d.ts +31 -0
- package/dist/BreadcrumbMenu/index.js +308 -0
- package/dist/BreadcrumbMenu/index.js.map +1 -0
- package/dist/BreadcrumbMenu/index.mjs +289 -0
- package/dist/BreadcrumbMenu/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.mts +48 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.d.ts +48 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js +189 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.js.map +1 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs +164 -0
- package/dist/BreadcrumbMenu/useBreadcrumbBuilder/index.mjs.map +1 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.d.mts +28 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.d.ts +28 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.js +43 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.js.map +1 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.mjs +18 -0
- package/dist/BreadcrumbMenu/useUrlParams/index.mjs.map +1 -0
- package/dist/StatisticsCard/index.d.mts +77 -0
- package/dist/StatisticsCard/index.d.ts +77 -0
- package/dist/StatisticsCard/index.js +608 -0
- package/dist/StatisticsCard/index.js.map +1 -0
- package/dist/StatisticsCard/index.mjs +589 -0
- package/dist/StatisticsCard/index.mjs.map +1 -0
- package/dist/index.css +41 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +5 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +699 -354
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +679 -339
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +41 -0
- package/dist/styles.css.map +1 -1
- package/package.json +3 -1
package/dist/index.mjs
CHANGED
|
@@ -8073,8 +8073,125 @@ var CardSimulationHistory = forwardRef17(({ data, onSimulationClick, className,
|
|
|
8073
8073
|
);
|
|
8074
8074
|
});
|
|
8075
8075
|
|
|
8076
|
-
// src/components/
|
|
8076
|
+
// src/components/StatisticsCard/StatisticsCard.tsx
|
|
8077
|
+
import { Plus } from "phosphor-react";
|
|
8077
8078
|
import { jsx as jsx42, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
8079
|
+
var VARIANT_STYLES = {
|
|
8080
|
+
high: "bg-success-background",
|
|
8081
|
+
medium: "bg-warning-background",
|
|
8082
|
+
low: "bg-error-background",
|
|
8083
|
+
total: "bg-info-background"
|
|
8084
|
+
};
|
|
8085
|
+
var VALUE_TEXT_COLORS = {
|
|
8086
|
+
high: "text-success-700",
|
|
8087
|
+
medium: "text-warning-600",
|
|
8088
|
+
low: "text-error-700",
|
|
8089
|
+
total: "text-info-700"
|
|
8090
|
+
};
|
|
8091
|
+
var StatCard = ({ item }) => {
|
|
8092
|
+
return /* @__PURE__ */ jsxs30(
|
|
8093
|
+
"div",
|
|
8094
|
+
{
|
|
8095
|
+
className: `rounded-xl py-[17px] px-6 min-h-[105px] flex flex-col justify-center items-start gap-1 ${VARIANT_STYLES[item.variant]}`,
|
|
8096
|
+
children: [
|
|
8097
|
+
/* @__PURE__ */ jsx42(
|
|
8098
|
+
Text_default,
|
|
8099
|
+
{
|
|
8100
|
+
size: "4xl",
|
|
8101
|
+
weight: "bold",
|
|
8102
|
+
className: `${VALUE_TEXT_COLORS[item.variant]} leading-[42px] tracking-[0.2px] self-stretch`,
|
|
8103
|
+
children: item.value
|
|
8104
|
+
}
|
|
8105
|
+
),
|
|
8106
|
+
/* @__PURE__ */ jsx42(
|
|
8107
|
+
Text_default,
|
|
8108
|
+
{
|
|
8109
|
+
size: "xs",
|
|
8110
|
+
weight: "bold",
|
|
8111
|
+
className: "uppercase text-[8px] leading-[9px] text-text-800 self-stretch",
|
|
8112
|
+
children: item.label
|
|
8113
|
+
}
|
|
8114
|
+
)
|
|
8115
|
+
]
|
|
8116
|
+
}
|
|
8117
|
+
);
|
|
8118
|
+
};
|
|
8119
|
+
var StatisticsCard = ({
|
|
8120
|
+
title,
|
|
8121
|
+
data,
|
|
8122
|
+
emptyStateMessage,
|
|
8123
|
+
emptyStateButtonText,
|
|
8124
|
+
onEmptyStateButtonClick,
|
|
8125
|
+
dropdownOptions,
|
|
8126
|
+
selectedDropdownValue,
|
|
8127
|
+
onDropdownChange,
|
|
8128
|
+
selectPlaceholder = "Selecione um per\xEDodo",
|
|
8129
|
+
dropdownAriaLabel = "Filtro de per\xEDodo",
|
|
8130
|
+
className = ""
|
|
8131
|
+
}) => {
|
|
8132
|
+
const hasData = data && data.length > 0;
|
|
8133
|
+
return /* @__PURE__ */ jsxs30(
|
|
8134
|
+
"div",
|
|
8135
|
+
{
|
|
8136
|
+
className: `bg-background rounded-xl p-4 h-auto lg:h-[185px] flex flex-col gap-2 ${className}`,
|
|
8137
|
+
children: [
|
|
8138
|
+
/* @__PURE__ */ jsxs30("div", { className: "flex flex-row justify-between items-center gap-4", children: [
|
|
8139
|
+
/* @__PURE__ */ jsx42(Text_default, { as: "h3", size: "sm", weight: "medium", color: "text-text-600", children: title }),
|
|
8140
|
+
dropdownOptions && dropdownOptions.length > 0 && /* @__PURE__ */ jsx42("div", { className: "w-[99px]", children: /* @__PURE__ */ jsxs30(
|
|
8141
|
+
Select_default,
|
|
8142
|
+
{
|
|
8143
|
+
value: selectedDropdownValue,
|
|
8144
|
+
onValueChange: onDropdownChange,
|
|
8145
|
+
size: "medium",
|
|
8146
|
+
children: [
|
|
8147
|
+
/* @__PURE__ */ jsx42(
|
|
8148
|
+
SelectTrigger,
|
|
8149
|
+
{
|
|
8150
|
+
className: "border border-border-300 rounded whitespace-nowrap",
|
|
8151
|
+
"aria-label": dropdownAriaLabel,
|
|
8152
|
+
children: /* @__PURE__ */ jsx42(SelectValue, { placeholder: selectPlaceholder })
|
|
8153
|
+
}
|
|
8154
|
+
),
|
|
8155
|
+
/* @__PURE__ */ jsx42(SelectContent, { children: dropdownOptions.map((option) => /* @__PURE__ */ jsx42(SelectItem, { value: option.value, children: option.label }, option.value)) })
|
|
8156
|
+
]
|
|
8157
|
+
}
|
|
8158
|
+
) })
|
|
8159
|
+
] }),
|
|
8160
|
+
hasData ? /* @__PURE__ */ jsx42("div", { className: "grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-4 gap-[13px]", children: data.map((item, index) => /* @__PURE__ */ jsx42(
|
|
8161
|
+
StatCard,
|
|
8162
|
+
{
|
|
8163
|
+
item
|
|
8164
|
+
},
|
|
8165
|
+
`${item.variant}-${item.label}-${index}`
|
|
8166
|
+
)) }) : /* @__PURE__ */ jsxs30("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: [
|
|
8167
|
+
/* @__PURE__ */ jsx42(
|
|
8168
|
+
Text_default,
|
|
8169
|
+
{
|
|
8170
|
+
size: "sm",
|
|
8171
|
+
color: "text-text-600",
|
|
8172
|
+
className: "text-center max-w-md",
|
|
8173
|
+
children: emptyStateMessage
|
|
8174
|
+
}
|
|
8175
|
+
),
|
|
8176
|
+
onEmptyStateButtonClick && /* @__PURE__ */ jsx42(
|
|
8177
|
+
Button_default,
|
|
8178
|
+
{
|
|
8179
|
+
variant: "outline",
|
|
8180
|
+
action: "primary",
|
|
8181
|
+
size: "small",
|
|
8182
|
+
onClick: onEmptyStateButtonClick,
|
|
8183
|
+
iconLeft: /* @__PURE__ */ jsx42(Plus, { size: 16, weight: "bold" }),
|
|
8184
|
+
children: emptyStateButtonText
|
|
8185
|
+
}
|
|
8186
|
+
)
|
|
8187
|
+
] })
|
|
8188
|
+
]
|
|
8189
|
+
}
|
|
8190
|
+
);
|
|
8191
|
+
};
|
|
8192
|
+
|
|
8193
|
+
// src/components/NotFound/NotFound.tsx
|
|
8194
|
+
import { jsx as jsx43, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
8078
8195
|
var NotFound = ({
|
|
8079
8196
|
title,
|
|
8080
8197
|
description,
|
|
@@ -8117,22 +8234,22 @@ var NotFound = ({
|
|
|
8117
8234
|
const errorTitle = title || getDefaultTitle();
|
|
8118
8235
|
const errorDescription = description || getDefaultDescription();
|
|
8119
8236
|
const errorCode = getErrorCode();
|
|
8120
|
-
return /* @__PURE__ */
|
|
8237
|
+
return /* @__PURE__ */ jsx43(
|
|
8121
8238
|
"div",
|
|
8122
8239
|
{
|
|
8123
8240
|
className: cn(
|
|
8124
8241
|
"flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
|
|
8125
8242
|
className
|
|
8126
8243
|
),
|
|
8127
|
-
children: /* @__PURE__ */
|
|
8244
|
+
children: /* @__PURE__ */ jsx43(
|
|
8128
8245
|
"main",
|
|
8129
8246
|
{
|
|
8130
8247
|
role: "main",
|
|
8131
8248
|
"aria-labelledby": "error-title",
|
|
8132
8249
|
"aria-describedby": "error-description",
|
|
8133
8250
|
className: "flex flex-col items-center text-center max-w-md space-y-6",
|
|
8134
|
-
children: /* @__PURE__ */
|
|
8135
|
-
/* @__PURE__ */
|
|
8251
|
+
children: /* @__PURE__ */ jsxs31("section", { "aria-label": `Erro ${errorCode}`, children: [
|
|
8252
|
+
/* @__PURE__ */ jsx43(
|
|
8136
8253
|
"div",
|
|
8137
8254
|
{
|
|
8138
8255
|
className: "text-8xl font-bold text-primary-300 select-none",
|
|
@@ -8140,8 +8257,8 @@ var NotFound = ({
|
|
|
8140
8257
|
children: errorCode
|
|
8141
8258
|
}
|
|
8142
8259
|
),
|
|
8143
|
-
/* @__PURE__ */
|
|
8144
|
-
/* @__PURE__ */
|
|
8260
|
+
/* @__PURE__ */ jsxs31("header", { className: "space-y-2", children: [
|
|
8261
|
+
/* @__PURE__ */ jsx43(
|
|
8145
8262
|
Text_default,
|
|
8146
8263
|
{
|
|
8147
8264
|
size: "xl",
|
|
@@ -8152,9 +8269,9 @@ var NotFound = ({
|
|
|
8152
8269
|
children: errorTitle
|
|
8153
8270
|
}
|
|
8154
8271
|
),
|
|
8155
|
-
/* @__PURE__ */
|
|
8272
|
+
/* @__PURE__ */ jsx43(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
|
|
8156
8273
|
] }),
|
|
8157
|
-
onButtonClick && /* @__PURE__ */
|
|
8274
|
+
onButtonClick && /* @__PURE__ */ jsx43("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx43(
|
|
8158
8275
|
Button_default,
|
|
8159
8276
|
{
|
|
8160
8277
|
onClick: handleButtonClick,
|
|
@@ -8196,7 +8313,7 @@ import {
|
|
|
8196
8313
|
// src/components/DownloadButton/DownloadButton.tsx
|
|
8197
8314
|
import { useCallback as useCallback2, useState as useState13 } from "react";
|
|
8198
8315
|
import { DownloadSimple } from "phosphor-react";
|
|
8199
|
-
import { jsx as
|
|
8316
|
+
import { jsx as jsx44 } from "react/jsx-runtime";
|
|
8200
8317
|
var getMimeType = (url) => {
|
|
8201
8318
|
const extension = getFileExtension(url);
|
|
8202
8319
|
const mimeTypes = {
|
|
@@ -8353,10 +8470,10 @@ var DownloadButton = ({
|
|
|
8353
8470
|
if (!hasContent) {
|
|
8354
8471
|
return null;
|
|
8355
8472
|
}
|
|
8356
|
-
return /* @__PURE__ */
|
|
8473
|
+
return /* @__PURE__ */ jsx44("div", { className: cn("flex items-center", className), children: /* @__PURE__ */ jsx44(
|
|
8357
8474
|
IconButton_default,
|
|
8358
8475
|
{
|
|
8359
|
-
icon: /* @__PURE__ */
|
|
8476
|
+
icon: /* @__PURE__ */ jsx44(DownloadSimple, { size: 24 }),
|
|
8360
8477
|
onClick: handleDownload,
|
|
8361
8478
|
disabled: disabled || isDownloading,
|
|
8362
8479
|
"aria-label": (() => {
|
|
@@ -8377,7 +8494,7 @@ var DownloadButton = ({
|
|
|
8377
8494
|
var DownloadButton_default = DownloadButton;
|
|
8378
8495
|
|
|
8379
8496
|
// src/components/VideoPlayer/VideoPlayer.tsx
|
|
8380
|
-
import { jsx as
|
|
8497
|
+
import { jsx as jsx45, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
8381
8498
|
var CONTROLS_HIDE_TIMEOUT = 3e3;
|
|
8382
8499
|
var LEAVE_HIDE_TIMEOUT = 1e3;
|
|
8383
8500
|
var INIT_DELAY = 100;
|
|
@@ -8393,7 +8510,7 @@ var ProgressBar2 = ({
|
|
|
8393
8510
|
progressPercentage,
|
|
8394
8511
|
onSeek,
|
|
8395
8512
|
className = "px-4 pb-2"
|
|
8396
|
-
}) => /* @__PURE__ */
|
|
8513
|
+
}) => /* @__PURE__ */ jsx45("div", { className, children: /* @__PURE__ */ jsx45(
|
|
8397
8514
|
"input",
|
|
8398
8515
|
{
|
|
8399
8516
|
type: "range",
|
|
@@ -8415,17 +8532,17 @@ var VolumeControls = ({
|
|
|
8415
8532
|
onToggleMute,
|
|
8416
8533
|
iconSize = 24,
|
|
8417
8534
|
showSlider = true
|
|
8418
|
-
}) => /* @__PURE__ */
|
|
8419
|
-
/* @__PURE__ */
|
|
8535
|
+
}) => /* @__PURE__ */ jsxs32("div", { className: "flex items-center gap-2", children: [
|
|
8536
|
+
/* @__PURE__ */ jsx45(
|
|
8420
8537
|
IconButton_default,
|
|
8421
8538
|
{
|
|
8422
|
-
icon: isMuted ? /* @__PURE__ */
|
|
8539
|
+
icon: isMuted ? /* @__PURE__ */ jsx45(SpeakerSlash, { size: iconSize }) : /* @__PURE__ */ jsx45(SpeakerHigh2, { size: iconSize }),
|
|
8423
8540
|
onClick: onToggleMute,
|
|
8424
8541
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
8425
8542
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
8426
8543
|
}
|
|
8427
8544
|
),
|
|
8428
|
-
showSlider && /* @__PURE__ */
|
|
8545
|
+
showSlider && /* @__PURE__ */ jsx45(
|
|
8429
8546
|
"input",
|
|
8430
8547
|
{
|
|
8431
8548
|
type: "range",
|
|
@@ -8482,7 +8599,7 @@ var SpeedMenu = ({
|
|
|
8482
8599
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
8483
8600
|
};
|
|
8484
8601
|
}, [showSpeedMenu, onToggleMenu]);
|
|
8485
|
-
const menuContent = /* @__PURE__ */
|
|
8602
|
+
const menuContent = /* @__PURE__ */ jsx45(
|
|
8486
8603
|
"div",
|
|
8487
8604
|
{
|
|
8488
8605
|
ref: speedMenuRef,
|
|
@@ -8493,7 +8610,7 @@ var SpeedMenu = ({
|
|
|
8493
8610
|
top: `${position.top}px`,
|
|
8494
8611
|
left: `${position.left}px`
|
|
8495
8612
|
},
|
|
8496
|
-
children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */
|
|
8613
|
+
children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs32(
|
|
8497
8614
|
"button",
|
|
8498
8615
|
{
|
|
8499
8616
|
role: "menuitemradio",
|
|
@@ -8510,12 +8627,12 @@ var SpeedMenu = ({
|
|
|
8510
8627
|
}
|
|
8511
8628
|
);
|
|
8512
8629
|
const portalContent = showSpeedMenu && globalThis.window !== void 0 && globalThis.document !== void 0 && !!globalThis.document?.body ? createPortal(menuContent, globalThis.document.body) : null;
|
|
8513
|
-
return /* @__PURE__ */
|
|
8514
|
-
/* @__PURE__ */
|
|
8630
|
+
return /* @__PURE__ */ jsxs32("div", { className: "relative", ref: speedMenuContainerRef, children: [
|
|
8631
|
+
/* @__PURE__ */ jsx45(
|
|
8515
8632
|
IconButton_default,
|
|
8516
8633
|
{
|
|
8517
8634
|
ref: buttonRef,
|
|
8518
|
-
icon: /* @__PURE__ */
|
|
8635
|
+
icon: /* @__PURE__ */ jsx45(DotsThreeVertical3, { size: iconSize }),
|
|
8519
8636
|
onClick: onToggleMenu,
|
|
8520
8637
|
"aria-label": "Playback speed",
|
|
8521
8638
|
"aria-haspopup": "menu",
|
|
@@ -9031,10 +9148,10 @@ var VideoPlayer = ({
|
|
|
9031
9148
|
]
|
|
9032
9149
|
);
|
|
9033
9150
|
const groupedSubTitleValid = subtitles && subtitlesValidation === "valid";
|
|
9034
|
-
return /* @__PURE__ */
|
|
9035
|
-
(title || subtitleText) && /* @__PURE__ */
|
|
9036
|
-
/* @__PURE__ */
|
|
9037
|
-
title && /* @__PURE__ */
|
|
9151
|
+
return /* @__PURE__ */ jsxs32("div", { className: cn("flex flex-col", className), children: [
|
|
9152
|
+
(title || subtitleText) && /* @__PURE__ */ jsxs32("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: [
|
|
9153
|
+
/* @__PURE__ */ jsxs32("div", { className: "flex flex-col gap-1", children: [
|
|
9154
|
+
title && /* @__PURE__ */ jsx45(
|
|
9038
9155
|
Text_default,
|
|
9039
9156
|
{
|
|
9040
9157
|
as: "h2",
|
|
@@ -9045,7 +9162,7 @@ var VideoPlayer = ({
|
|
|
9045
9162
|
children: title
|
|
9046
9163
|
}
|
|
9047
9164
|
),
|
|
9048
|
-
subtitleText && /* @__PURE__ */
|
|
9165
|
+
subtitleText && /* @__PURE__ */ jsx45(
|
|
9049
9166
|
Text_default,
|
|
9050
9167
|
{
|
|
9051
9168
|
as: "p",
|
|
@@ -9057,7 +9174,7 @@ var VideoPlayer = ({
|
|
|
9057
9174
|
}
|
|
9058
9175
|
)
|
|
9059
9176
|
] }),
|
|
9060
|
-
showDownloadButton && downloadContent && /* @__PURE__ */
|
|
9177
|
+
showDownloadButton && downloadContent && /* @__PURE__ */ jsx45(
|
|
9061
9178
|
DownloadButton_default,
|
|
9062
9179
|
{
|
|
9063
9180
|
content: downloadContent,
|
|
@@ -9069,7 +9186,7 @@ var VideoPlayer = ({
|
|
|
9069
9186
|
}
|
|
9070
9187
|
)
|
|
9071
9188
|
] }),
|
|
9072
|
-
/* @__PURE__ */
|
|
9189
|
+
/* @__PURE__ */ jsxs32(
|
|
9073
9190
|
"section",
|
|
9074
9191
|
{
|
|
9075
9192
|
className: cn(
|
|
@@ -9084,7 +9201,7 @@ var VideoPlayer = ({
|
|
|
9084
9201
|
onTouchStart: handleMouseEnter,
|
|
9085
9202
|
onMouseLeave: handleMouseLeave,
|
|
9086
9203
|
children: [
|
|
9087
|
-
/* @__PURE__ */
|
|
9204
|
+
/* @__PURE__ */ jsx45(
|
|
9088
9205
|
"video",
|
|
9089
9206
|
{
|
|
9090
9207
|
ref: videoRef,
|
|
@@ -9099,7 +9216,7 @@ var VideoPlayer = ({
|
|
|
9099
9216
|
onKeyDown: handleVideoKeyDown,
|
|
9100
9217
|
tabIndex: 0,
|
|
9101
9218
|
"aria-label": title ? `Video: ${title}` : "Video player",
|
|
9102
|
-
children: /* @__PURE__ */
|
|
9219
|
+
children: /* @__PURE__ */ jsx45(
|
|
9103
9220
|
"track",
|
|
9104
9221
|
{
|
|
9105
9222
|
ref: trackRef,
|
|
@@ -9112,17 +9229,17 @@ var VideoPlayer = ({
|
|
|
9112
9229
|
)
|
|
9113
9230
|
}
|
|
9114
9231
|
),
|
|
9115
|
-
!isPlaying && /* @__PURE__ */
|
|
9232
|
+
!isPlaying && /* @__PURE__ */ jsx45(
|
|
9116
9233
|
"div",
|
|
9117
9234
|
{
|
|
9118
9235
|
className: cn(
|
|
9119
9236
|
"absolute inset-0 flex bg-black/30 transition-opacity",
|
|
9120
9237
|
getCenterPlayButtonPosition()
|
|
9121
9238
|
),
|
|
9122
|
-
children: /* @__PURE__ */
|
|
9239
|
+
children: /* @__PURE__ */ jsx45(
|
|
9123
9240
|
IconButton_default,
|
|
9124
9241
|
{
|
|
9125
|
-
icon: /* @__PURE__ */
|
|
9242
|
+
icon: /* @__PURE__ */ jsx45(Play2, { size: 32, weight: "regular", className: "ml-1" }),
|
|
9126
9243
|
onClick: togglePlayPause,
|
|
9127
9244
|
"aria-label": "Play video",
|
|
9128
9245
|
className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
|
|
@@ -9130,17 +9247,17 @@ var VideoPlayer = ({
|
|
|
9130
9247
|
)
|
|
9131
9248
|
}
|
|
9132
9249
|
),
|
|
9133
|
-
/* @__PURE__ */
|
|
9250
|
+
/* @__PURE__ */ jsx45(
|
|
9134
9251
|
"div",
|
|
9135
9252
|
{
|
|
9136
9253
|
className: cn(
|
|
9137
9254
|
"absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
|
|
9138
9255
|
getTopControlsOpacity()
|
|
9139
9256
|
),
|
|
9140
|
-
children: /* @__PURE__ */
|
|
9257
|
+
children: /* @__PURE__ */ jsx45("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx45(
|
|
9141
9258
|
IconButton_default,
|
|
9142
9259
|
{
|
|
9143
|
-
icon: isFullscreen ? /* @__PURE__ */
|
|
9260
|
+
icon: isFullscreen ? /* @__PURE__ */ jsx45(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx45(ArrowsOutSimple, { size: 24 }),
|
|
9144
9261
|
onClick: toggleFullscreen,
|
|
9145
9262
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
9146
9263
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
@@ -9148,7 +9265,7 @@ var VideoPlayer = ({
|
|
|
9148
9265
|
) })
|
|
9149
9266
|
}
|
|
9150
9267
|
),
|
|
9151
|
-
/* @__PURE__ */
|
|
9268
|
+
/* @__PURE__ */ jsxs32(
|
|
9152
9269
|
"div",
|
|
9153
9270
|
{
|
|
9154
9271
|
className: cn(
|
|
@@ -9156,7 +9273,7 @@ var VideoPlayer = ({
|
|
|
9156
9273
|
getBottomControlsOpacity()
|
|
9157
9274
|
),
|
|
9158
9275
|
children: [
|
|
9159
|
-
/* @__PURE__ */
|
|
9276
|
+
/* @__PURE__ */ jsx45(
|
|
9160
9277
|
ProgressBar2,
|
|
9161
9278
|
{
|
|
9162
9279
|
currentTime,
|
|
@@ -9166,7 +9283,7 @@ var VideoPlayer = ({
|
|
|
9166
9283
|
className: getProgressBarPadding()
|
|
9167
9284
|
}
|
|
9168
9285
|
),
|
|
9169
|
-
/* @__PURE__ */
|
|
9286
|
+
/* @__PURE__ */ jsxs32(
|
|
9170
9287
|
"div",
|
|
9171
9288
|
{
|
|
9172
9289
|
className: cn(
|
|
@@ -9174,17 +9291,17 @@ var VideoPlayer = ({
|
|
|
9174
9291
|
getControlsPadding()
|
|
9175
9292
|
),
|
|
9176
9293
|
children: [
|
|
9177
|
-
/* @__PURE__ */
|
|
9178
|
-
/* @__PURE__ */
|
|
9294
|
+
/* @__PURE__ */ jsxs32("div", { className: cn("flex items-center", getControlsGap()), children: [
|
|
9295
|
+
/* @__PURE__ */ jsx45(
|
|
9179
9296
|
IconButton_default,
|
|
9180
9297
|
{
|
|
9181
|
-
icon: isPlaying ? /* @__PURE__ */
|
|
9298
|
+
icon: isPlaying ? /* @__PURE__ */ jsx45(Pause, { size: getIconSize2() }) : /* @__PURE__ */ jsx45(Play2, { size: getIconSize2() }),
|
|
9182
9299
|
onClick: togglePlayPause,
|
|
9183
9300
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
9184
9301
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
9185
9302
|
}
|
|
9186
9303
|
),
|
|
9187
|
-
/* @__PURE__ */
|
|
9304
|
+
/* @__PURE__ */ jsx45(
|
|
9188
9305
|
VolumeControls,
|
|
9189
9306
|
{
|
|
9190
9307
|
volume,
|
|
@@ -9195,10 +9312,10 @@ var VideoPlayer = ({
|
|
|
9195
9312
|
showSlider: !isUltraSmallMobile
|
|
9196
9313
|
}
|
|
9197
9314
|
),
|
|
9198
|
-
groupedSubTitleValid && /* @__PURE__ */
|
|
9315
|
+
groupedSubTitleValid && /* @__PURE__ */ jsx45(
|
|
9199
9316
|
IconButton_default,
|
|
9200
9317
|
{
|
|
9201
|
-
icon: /* @__PURE__ */
|
|
9318
|
+
icon: /* @__PURE__ */ jsx45(ClosedCaptioning, { size: getIconSize2() }),
|
|
9202
9319
|
onClick: toggleCaptions,
|
|
9203
9320
|
"aria-label": showCaptions ? "Hide captions" : "Show captions",
|
|
9204
9321
|
className: cn(
|
|
@@ -9207,13 +9324,13 @@ var VideoPlayer = ({
|
|
|
9207
9324
|
)
|
|
9208
9325
|
}
|
|
9209
9326
|
),
|
|
9210
|
-
/* @__PURE__ */
|
|
9327
|
+
/* @__PURE__ */ jsxs32(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
|
|
9211
9328
|
formatTime(currentTime),
|
|
9212
9329
|
" / ",
|
|
9213
9330
|
formatTime(duration)
|
|
9214
9331
|
] })
|
|
9215
9332
|
] }),
|
|
9216
|
-
/* @__PURE__ */
|
|
9333
|
+
/* @__PURE__ */ jsx45("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx45(
|
|
9217
9334
|
SpeedMenu,
|
|
9218
9335
|
{
|
|
9219
9336
|
showSpeedMenu,
|
|
@@ -9241,7 +9358,7 @@ var VideoPlayer_default = VideoPlayer;
|
|
|
9241
9358
|
// src/components/Whiteboard/Whiteboard.tsx
|
|
9242
9359
|
import { useCallback as useCallback4, useState as useState15 } from "react";
|
|
9243
9360
|
import { ArrowsOut } from "phosphor-react";
|
|
9244
|
-
import { Fragment as Fragment9, jsx as
|
|
9361
|
+
import { Fragment as Fragment9, jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
9245
9362
|
var IMAGE_WIDTH = 225;
|
|
9246
9363
|
var IMAGE_HEIGHT = 90;
|
|
9247
9364
|
var Whiteboard = ({
|
|
@@ -9279,7 +9396,7 @@ var Whiteboard = ({
|
|
|
9279
9396
|
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
|
|
9280
9397
|
}[imagesPerRow];
|
|
9281
9398
|
if (!images || images.length === 0) {
|
|
9282
|
-
return /* @__PURE__ */
|
|
9399
|
+
return /* @__PURE__ */ jsx46(
|
|
9283
9400
|
"div",
|
|
9284
9401
|
{
|
|
9285
9402
|
className: cn(
|
|
@@ -9287,11 +9404,11 @@ var Whiteboard = ({
|
|
|
9287
9404
|
className
|
|
9288
9405
|
),
|
|
9289
9406
|
...rest,
|
|
9290
|
-
children: /* @__PURE__ */
|
|
9407
|
+
children: /* @__PURE__ */ jsx46("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
|
|
9291
9408
|
}
|
|
9292
9409
|
);
|
|
9293
9410
|
}
|
|
9294
|
-
return /* @__PURE__ */
|
|
9411
|
+
return /* @__PURE__ */ jsx46(
|
|
9295
9412
|
"div",
|
|
9296
9413
|
{
|
|
9297
9414
|
className: cn(
|
|
@@ -9299,7 +9416,7 @@ var Whiteboard = ({
|
|
|
9299
9416
|
className
|
|
9300
9417
|
),
|
|
9301
9418
|
...rest,
|
|
9302
|
-
children: /* @__PURE__ */
|
|
9419
|
+
children: /* @__PURE__ */ jsx46("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs33(
|
|
9303
9420
|
"div",
|
|
9304
9421
|
{
|
|
9305
9422
|
className: "relative group overflow-hidden bg-gray-100 rounded-lg",
|
|
@@ -9307,7 +9424,7 @@ var Whiteboard = ({
|
|
|
9307
9424
|
width: `${IMAGE_WIDTH}px`
|
|
9308
9425
|
},
|
|
9309
9426
|
children: [
|
|
9310
|
-
/* @__PURE__ */
|
|
9427
|
+
/* @__PURE__ */ jsx46(
|
|
9311
9428
|
"div",
|
|
9312
9429
|
{
|
|
9313
9430
|
className: "relative",
|
|
@@ -9315,8 +9432,8 @@ var Whiteboard = ({
|
|
|
9315
9432
|
width: `${IMAGE_WIDTH}px`,
|
|
9316
9433
|
height: `${IMAGE_HEIGHT}px`
|
|
9317
9434
|
},
|
|
9318
|
-
children: imageErrors.has(image.id) ? /* @__PURE__ */
|
|
9319
|
-
/* @__PURE__ */
|
|
9435
|
+
children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx46("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx46("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs33(Fragment9, { children: [
|
|
9436
|
+
/* @__PURE__ */ jsx46(
|
|
9320
9437
|
"img",
|
|
9321
9438
|
{
|
|
9322
9439
|
src: image.imageUrl,
|
|
@@ -9326,18 +9443,18 @@ var Whiteboard = ({
|
|
|
9326
9443
|
onError: () => handleImageError(image.id)
|
|
9327
9444
|
}
|
|
9328
9445
|
),
|
|
9329
|
-
/* @__PURE__ */
|
|
9446
|
+
/* @__PURE__ */ jsx46("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
|
|
9330
9447
|
] })
|
|
9331
9448
|
}
|
|
9332
9449
|
),
|
|
9333
|
-
showDownload && /* @__PURE__ */
|
|
9450
|
+
showDownload && /* @__PURE__ */ jsx46(
|
|
9334
9451
|
"button",
|
|
9335
9452
|
{
|
|
9336
9453
|
type: "button",
|
|
9337
9454
|
onClick: () => handleDownload(image),
|
|
9338
9455
|
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",
|
|
9339
9456
|
"aria-label": `Download ${image.title || "imagem"}`,
|
|
9340
|
-
children: /* @__PURE__ */
|
|
9457
|
+
children: /* @__PURE__ */ jsx46(
|
|
9341
9458
|
ArrowsOut,
|
|
9342
9459
|
{
|
|
9343
9460
|
size: 24,
|
|
@@ -9366,7 +9483,7 @@ import {
|
|
|
9366
9483
|
useMemo as useMemo4
|
|
9367
9484
|
} from "react";
|
|
9368
9485
|
import { useLocation, Navigate } from "react-router-dom";
|
|
9369
|
-
import { Fragment as Fragment10, jsx as
|
|
9486
|
+
import { Fragment as Fragment10, jsx as jsx47 } from "react/jsx-runtime";
|
|
9370
9487
|
var AuthContext = createContext(void 0);
|
|
9371
9488
|
var AuthProvider = ({
|
|
9372
9489
|
children,
|
|
@@ -9436,7 +9553,7 @@ var AuthProvider = ({
|
|
|
9436
9553
|
}),
|
|
9437
9554
|
[authState, checkAuth, signOut]
|
|
9438
9555
|
);
|
|
9439
|
-
return /* @__PURE__ */
|
|
9556
|
+
return /* @__PURE__ */ jsx47(AuthContext.Provider, { value: contextValue, children });
|
|
9440
9557
|
};
|
|
9441
9558
|
var useAuth = () => {
|
|
9442
9559
|
const context = useContext(AuthContext);
|
|
@@ -9452,9 +9569,9 @@ var ProtectedRoute = ({
|
|
|
9452
9569
|
additionalCheck
|
|
9453
9570
|
}) => {
|
|
9454
9571
|
const { isAuthenticated, isLoading, ...authState } = useAuth();
|
|
9455
|
-
const defaultLoadingComponent = /* @__PURE__ */
|
|
9572
|
+
const defaultLoadingComponent = /* @__PURE__ */ jsx47("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx47("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
9456
9573
|
if (isLoading) {
|
|
9457
|
-
return /* @__PURE__ */
|
|
9574
|
+
return /* @__PURE__ */ jsx47(Fragment10, { children: loadingComponent || defaultLoadingComponent });
|
|
9458
9575
|
}
|
|
9459
9576
|
if (!isAuthenticated) {
|
|
9460
9577
|
if (typeof window !== "undefined") {
|
|
@@ -9465,12 +9582,12 @@ var ProtectedRoute = ({
|
|
|
9465
9582
|
return null;
|
|
9466
9583
|
}
|
|
9467
9584
|
}
|
|
9468
|
-
return /* @__PURE__ */
|
|
9585
|
+
return /* @__PURE__ */ jsx47(Navigate, { to: redirectTo, replace: true });
|
|
9469
9586
|
}
|
|
9470
9587
|
if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
|
|
9471
|
-
return /* @__PURE__ */
|
|
9588
|
+
return /* @__PURE__ */ jsx47(Navigate, { to: redirectTo, replace: true });
|
|
9472
9589
|
}
|
|
9473
|
-
return /* @__PURE__ */
|
|
9590
|
+
return /* @__PURE__ */ jsx47(Fragment10, { children });
|
|
9474
9591
|
};
|
|
9475
9592
|
var PublicRoute = ({
|
|
9476
9593
|
children,
|
|
@@ -9480,15 +9597,15 @@ var PublicRoute = ({
|
|
|
9480
9597
|
}) => {
|
|
9481
9598
|
const { isAuthenticated, isLoading } = useAuth();
|
|
9482
9599
|
if (checkAuthBeforeRender && isLoading) {
|
|
9483
|
-
return /* @__PURE__ */
|
|
9600
|
+
return /* @__PURE__ */ jsx47("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx47("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
9484
9601
|
}
|
|
9485
9602
|
if (isAuthenticated && redirectIfAuthenticated) {
|
|
9486
|
-
return /* @__PURE__ */
|
|
9603
|
+
return /* @__PURE__ */ jsx47(Navigate, { to: redirectTo, replace: true });
|
|
9487
9604
|
}
|
|
9488
|
-
return /* @__PURE__ */
|
|
9605
|
+
return /* @__PURE__ */ jsx47(Fragment10, { children });
|
|
9489
9606
|
};
|
|
9490
9607
|
var withAuth = (Component, options = {}) => {
|
|
9491
|
-
return (props) => /* @__PURE__ */
|
|
9608
|
+
return (props) => /* @__PURE__ */ jsx47(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx47(Component, { ...props }) });
|
|
9492
9609
|
};
|
|
9493
9610
|
var useAuthGuard = (options = {}) => {
|
|
9494
9611
|
const authState = useAuth();
|
|
@@ -9503,7 +9620,7 @@ var useAuthGuard = (options = {}) => {
|
|
|
9503
9620
|
var useRouteAuth = (fallbackPath = "/") => {
|
|
9504
9621
|
const { isAuthenticated, isLoading } = useAuth();
|
|
9505
9622
|
const location = useLocation();
|
|
9506
|
-
const redirectToLogin = () => /* @__PURE__ */
|
|
9623
|
+
const redirectToLogin = () => /* @__PURE__ */ jsx47(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
|
|
9507
9624
|
return {
|
|
9508
9625
|
isAuthenticated,
|
|
9509
9626
|
isLoading,
|
|
@@ -9543,7 +9660,7 @@ import {
|
|
|
9543
9660
|
useState as useState17
|
|
9544
9661
|
} from "react";
|
|
9545
9662
|
import { CaretRight as CaretRight4 } from "phosphor-react";
|
|
9546
|
-
import { jsx as
|
|
9663
|
+
import { jsx as jsx48, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
9547
9664
|
var CardAccordation = forwardRef18(
|
|
9548
9665
|
({
|
|
9549
9666
|
trigger,
|
|
@@ -9566,7 +9683,7 @@ var CardAccordation = forwardRef18(
|
|
|
9566
9683
|
handleToggle();
|
|
9567
9684
|
}
|
|
9568
9685
|
};
|
|
9569
|
-
return /* @__PURE__ */
|
|
9686
|
+
return /* @__PURE__ */ jsxs34(
|
|
9570
9687
|
CardBase,
|
|
9571
9688
|
{
|
|
9572
9689
|
ref,
|
|
@@ -9576,7 +9693,7 @@ var CardAccordation = forwardRef18(
|
|
|
9576
9693
|
className: cn("overflow-hidden", className),
|
|
9577
9694
|
...props,
|
|
9578
9695
|
children: [
|
|
9579
|
-
/* @__PURE__ */
|
|
9696
|
+
/* @__PURE__ */ jsxs34(
|
|
9580
9697
|
"button",
|
|
9581
9698
|
{
|
|
9582
9699
|
onClick: handleToggle,
|
|
@@ -9586,7 +9703,7 @@ var CardAccordation = forwardRef18(
|
|
|
9586
9703
|
"aria-controls": "accordion-content",
|
|
9587
9704
|
children: [
|
|
9588
9705
|
trigger,
|
|
9589
|
-
/* @__PURE__ */
|
|
9706
|
+
/* @__PURE__ */ jsx48(
|
|
9590
9707
|
CaretRight4,
|
|
9591
9708
|
{
|
|
9592
9709
|
size: 20,
|
|
@@ -9600,7 +9717,7 @@ var CardAccordation = forwardRef18(
|
|
|
9600
9717
|
]
|
|
9601
9718
|
}
|
|
9602
9719
|
),
|
|
9603
|
-
/* @__PURE__ */
|
|
9720
|
+
/* @__PURE__ */ jsx48(
|
|
9604
9721
|
"div",
|
|
9605
9722
|
{
|
|
9606
9723
|
id: contentId,
|
|
@@ -9609,7 +9726,7 @@ var CardAccordation = forwardRef18(
|
|
|
9609
9726
|
isExpanded ? "max-h-screen opacity-100" : "max-h-0 opacity-0"
|
|
9610
9727
|
),
|
|
9611
9728
|
"data-testid": "accordion-content",
|
|
9612
|
-
children: /* @__PURE__ */
|
|
9729
|
+
children: /* @__PURE__ */ jsx48("div", { className: "p-4 pt-0 border-border-50", children })
|
|
9613
9730
|
}
|
|
9614
9731
|
)
|
|
9615
9732
|
]
|
|
@@ -9621,7 +9738,7 @@ var CardAccordation = forwardRef18(
|
|
|
9621
9738
|
// src/components/Alternative/Alternative.tsx
|
|
9622
9739
|
import { CheckCircle as CheckCircle4, XCircle as XCircle3 } from "phosphor-react";
|
|
9623
9740
|
import { forwardRef as forwardRef19, useId as useId10, useState as useState18 } from "react";
|
|
9624
|
-
import { jsx as
|
|
9741
|
+
import { jsx as jsx49, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
9625
9742
|
var AlternativesList = ({
|
|
9626
9743
|
alternatives,
|
|
9627
9744
|
name,
|
|
@@ -9652,9 +9769,9 @@ var AlternativesList = ({
|
|
|
9652
9769
|
const getStatusBadge2 = (status) => {
|
|
9653
9770
|
switch (status) {
|
|
9654
9771
|
case "correct":
|
|
9655
|
-
return /* @__PURE__ */
|
|
9772
|
+
return /* @__PURE__ */ jsx49(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx49(CheckCircle4, {}), children: "Resposta correta" });
|
|
9656
9773
|
case "incorrect":
|
|
9657
|
-
return /* @__PURE__ */
|
|
9774
|
+
return /* @__PURE__ */ jsx49(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx49(XCircle3, {}), children: "Resposta incorreta" });
|
|
9658
9775
|
default:
|
|
9659
9776
|
return null;
|
|
9660
9777
|
}
|
|
@@ -9684,10 +9801,10 @@ var AlternativesList = ({
|
|
|
9684
9801
|
const renderRadio = () => {
|
|
9685
9802
|
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"}`;
|
|
9686
9803
|
const dotClasses = "w-3 h-3 rounded-full bg-primary-950 transition-all duration-200";
|
|
9687
|
-
return /* @__PURE__ */
|
|
9804
|
+
return /* @__PURE__ */ jsx49("div", { className: radioClasses, children: isUserSelected && /* @__PURE__ */ jsx49("div", { className: dotClasses }) });
|
|
9688
9805
|
};
|
|
9689
9806
|
if (layout === "detailed") {
|
|
9690
|
-
return /* @__PURE__ */
|
|
9807
|
+
return /* @__PURE__ */ jsx49(
|
|
9691
9808
|
"div",
|
|
9692
9809
|
{
|
|
9693
9810
|
className: cn(
|
|
@@ -9695,11 +9812,11 @@ var AlternativesList = ({
|
|
|
9695
9812
|
statusStyles,
|
|
9696
9813
|
alternative.disabled ? "opacity-50" : ""
|
|
9697
9814
|
),
|
|
9698
|
-
children: /* @__PURE__ */
|
|
9699
|
-
/* @__PURE__ */
|
|
9700
|
-
/* @__PURE__ */
|
|
9701
|
-
/* @__PURE__ */
|
|
9702
|
-
/* @__PURE__ */
|
|
9815
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "flex items-start justify-between gap-3", children: [
|
|
9816
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-start gap-3 flex-1", children: [
|
|
9817
|
+
/* @__PURE__ */ jsx49("div", { className: "mt-1", children: renderRadio() }),
|
|
9818
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex-1", children: [
|
|
9819
|
+
/* @__PURE__ */ jsx49(
|
|
9703
9820
|
"p",
|
|
9704
9821
|
{
|
|
9705
9822
|
className: cn(
|
|
@@ -9709,16 +9826,16 @@ var AlternativesList = ({
|
|
|
9709
9826
|
children: alternative.label
|
|
9710
9827
|
}
|
|
9711
9828
|
),
|
|
9712
|
-
alternative.description && /* @__PURE__ */
|
|
9829
|
+
alternative.description && /* @__PURE__ */ jsx49("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
|
|
9713
9830
|
] })
|
|
9714
9831
|
] }),
|
|
9715
|
-
statusBadge && /* @__PURE__ */
|
|
9832
|
+
statusBadge && /* @__PURE__ */ jsx49("div", { className: "flex-shrink-0", children: statusBadge })
|
|
9716
9833
|
] })
|
|
9717
9834
|
},
|
|
9718
9835
|
alternativeId
|
|
9719
9836
|
);
|
|
9720
9837
|
}
|
|
9721
|
-
return /* @__PURE__ */
|
|
9838
|
+
return /* @__PURE__ */ jsxs35(
|
|
9722
9839
|
"div",
|
|
9723
9840
|
{
|
|
9724
9841
|
className: cn(
|
|
@@ -9727,9 +9844,9 @@ var AlternativesList = ({
|
|
|
9727
9844
|
alternative.disabled ? "opacity-50" : ""
|
|
9728
9845
|
),
|
|
9729
9846
|
children: [
|
|
9730
|
-
/* @__PURE__ */
|
|
9847
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
9731
9848
|
renderRadio(),
|
|
9732
|
-
/* @__PURE__ */
|
|
9849
|
+
/* @__PURE__ */ jsx49(
|
|
9733
9850
|
"span",
|
|
9734
9851
|
{
|
|
9735
9852
|
className: cn(
|
|
@@ -9740,14 +9857,14 @@ var AlternativesList = ({
|
|
|
9740
9857
|
}
|
|
9741
9858
|
)
|
|
9742
9859
|
] }),
|
|
9743
|
-
statusBadge && /* @__PURE__ */
|
|
9860
|
+
statusBadge && /* @__PURE__ */ jsx49("div", { className: "flex-shrink-0", children: statusBadge })
|
|
9744
9861
|
]
|
|
9745
9862
|
},
|
|
9746
9863
|
alternativeId
|
|
9747
9864
|
);
|
|
9748
9865
|
};
|
|
9749
9866
|
if (isReadonly) {
|
|
9750
|
-
return /* @__PURE__ */
|
|
9867
|
+
return /* @__PURE__ */ jsx49(
|
|
9751
9868
|
"div",
|
|
9752
9869
|
{
|
|
9753
9870
|
className: cn("flex flex-col", getLayoutClasses(), "w-full", className),
|
|
@@ -9757,7 +9874,7 @@ var AlternativesList = ({
|
|
|
9757
9874
|
}
|
|
9758
9875
|
);
|
|
9759
9876
|
}
|
|
9760
|
-
return /* @__PURE__ */
|
|
9877
|
+
return /* @__PURE__ */ jsx49(
|
|
9761
9878
|
RadioGroup,
|
|
9762
9879
|
{
|
|
9763
9880
|
name: groupName,
|
|
@@ -9774,7 +9891,7 @@ var AlternativesList = ({
|
|
|
9774
9891
|
const statusStyles = getStatusStyles2(alternative.status, false);
|
|
9775
9892
|
const statusBadge = getStatusBadge2(alternative.status);
|
|
9776
9893
|
if (layout === "detailed") {
|
|
9777
|
-
return /* @__PURE__ */
|
|
9894
|
+
return /* @__PURE__ */ jsx49(
|
|
9778
9895
|
"div",
|
|
9779
9896
|
{
|
|
9780
9897
|
className: cn(
|
|
@@ -9782,9 +9899,9 @@ var AlternativesList = ({
|
|
|
9782
9899
|
statusStyles,
|
|
9783
9900
|
alternative.disabled ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
|
|
9784
9901
|
),
|
|
9785
|
-
children: /* @__PURE__ */
|
|
9786
|
-
/* @__PURE__ */
|
|
9787
|
-
/* @__PURE__ */
|
|
9902
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "flex items-start justify-between gap-3", children: [
|
|
9903
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-start gap-3 flex-1", children: [
|
|
9904
|
+
/* @__PURE__ */ jsx49(
|
|
9788
9905
|
RadioGroupItem,
|
|
9789
9906
|
{
|
|
9790
9907
|
value: alternative.value,
|
|
@@ -9793,8 +9910,8 @@ var AlternativesList = ({
|
|
|
9793
9910
|
className: "mt-1"
|
|
9794
9911
|
}
|
|
9795
9912
|
),
|
|
9796
|
-
/* @__PURE__ */
|
|
9797
|
-
/* @__PURE__ */
|
|
9913
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex-1", children: [
|
|
9914
|
+
/* @__PURE__ */ jsx49(
|
|
9798
9915
|
"label",
|
|
9799
9916
|
{
|
|
9800
9917
|
htmlFor: alternativeId,
|
|
@@ -9806,16 +9923,16 @@ var AlternativesList = ({
|
|
|
9806
9923
|
children: alternative.label
|
|
9807
9924
|
}
|
|
9808
9925
|
),
|
|
9809
|
-
alternative.description && /* @__PURE__ */
|
|
9926
|
+
alternative.description && /* @__PURE__ */ jsx49("p", { className: "text-sm text-text-600 mt-1", children: alternative.description })
|
|
9810
9927
|
] })
|
|
9811
9928
|
] }),
|
|
9812
|
-
statusBadge && /* @__PURE__ */
|
|
9929
|
+
statusBadge && /* @__PURE__ */ jsx49("div", { className: "flex-shrink-0", children: statusBadge })
|
|
9813
9930
|
] })
|
|
9814
9931
|
},
|
|
9815
9932
|
alternativeId
|
|
9816
9933
|
);
|
|
9817
9934
|
}
|
|
9818
|
-
return /* @__PURE__ */
|
|
9935
|
+
return /* @__PURE__ */ jsxs35(
|
|
9819
9936
|
"div",
|
|
9820
9937
|
{
|
|
9821
9938
|
className: cn(
|
|
@@ -9824,8 +9941,8 @@ var AlternativesList = ({
|
|
|
9824
9941
|
alternative.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
9825
9942
|
),
|
|
9826
9943
|
children: [
|
|
9827
|
-
/* @__PURE__ */
|
|
9828
|
-
/* @__PURE__ */
|
|
9944
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
9945
|
+
/* @__PURE__ */ jsx49(
|
|
9829
9946
|
RadioGroupItem,
|
|
9830
9947
|
{
|
|
9831
9948
|
value: alternative.value,
|
|
@@ -9833,7 +9950,7 @@ var AlternativesList = ({
|
|
|
9833
9950
|
disabled: alternative.disabled
|
|
9834
9951
|
}
|
|
9835
9952
|
),
|
|
9836
|
-
/* @__PURE__ */
|
|
9953
|
+
/* @__PURE__ */ jsx49(
|
|
9837
9954
|
"label",
|
|
9838
9955
|
{
|
|
9839
9956
|
htmlFor: alternativeId,
|
|
@@ -9846,7 +9963,7 @@ var AlternativesList = ({
|
|
|
9846
9963
|
}
|
|
9847
9964
|
)
|
|
9848
9965
|
] }),
|
|
9849
|
-
statusBadge && /* @__PURE__ */
|
|
9966
|
+
statusBadge && /* @__PURE__ */ jsx49("div", { className: "flex-shrink-0", children: statusBadge })
|
|
9850
9967
|
]
|
|
9851
9968
|
},
|
|
9852
9969
|
alternativeId
|
|
@@ -9857,7 +9974,7 @@ var AlternativesList = ({
|
|
|
9857
9974
|
};
|
|
9858
9975
|
var HeaderAlternative = forwardRef19(
|
|
9859
9976
|
({ className, title, subTitle, content, ...props }, ref) => {
|
|
9860
|
-
return /* @__PURE__ */
|
|
9977
|
+
return /* @__PURE__ */ jsxs35(
|
|
9861
9978
|
"div",
|
|
9862
9979
|
{
|
|
9863
9980
|
ref,
|
|
@@ -9867,11 +9984,11 @@ var HeaderAlternative = forwardRef19(
|
|
|
9867
9984
|
),
|
|
9868
9985
|
...props,
|
|
9869
9986
|
children: [
|
|
9870
|
-
/* @__PURE__ */
|
|
9871
|
-
/* @__PURE__ */
|
|
9872
|
-
/* @__PURE__ */
|
|
9987
|
+
/* @__PURE__ */ jsxs35("span", { className: "flex flex-col", children: [
|
|
9988
|
+
/* @__PURE__ */ jsx49("p", { className: "text-text-950 font-bold text-lg", children: title }),
|
|
9989
|
+
/* @__PURE__ */ jsx49("p", { className: "text-text-700 text-sm ", children: subTitle })
|
|
9873
9990
|
] }),
|
|
9874
|
-
/* @__PURE__ */
|
|
9991
|
+
/* @__PURE__ */ jsx49("p", { className: "text-text-950 text-md", children: content })
|
|
9875
9992
|
]
|
|
9876
9993
|
}
|
|
9877
9994
|
);
|
|
@@ -10669,7 +10786,7 @@ import {
|
|
|
10669
10786
|
// src/components/MultipleChoice/MultipleChoice.tsx
|
|
10670
10787
|
import { useEffect as useEffect18, useState as useState19 } from "react";
|
|
10671
10788
|
import { CheckCircle as CheckCircle5, XCircle as XCircle4, Check as Check5 } from "phosphor-react";
|
|
10672
|
-
import { jsx as
|
|
10789
|
+
import { jsx as jsx50, jsxs as jsxs36 } from "react/jsx-runtime";
|
|
10673
10790
|
var MultipleChoiceList = ({
|
|
10674
10791
|
disabled = false,
|
|
10675
10792
|
className = "",
|
|
@@ -10686,9 +10803,9 @@ var MultipleChoiceList = ({
|
|
|
10686
10803
|
const getStatusBadge2 = (status) => {
|
|
10687
10804
|
switch (status) {
|
|
10688
10805
|
case "correct":
|
|
10689
|
-
return /* @__PURE__ */
|
|
10806
|
+
return /* @__PURE__ */ jsx50(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx50(CheckCircle5, {}), children: "Resposta correta" });
|
|
10690
10807
|
case "incorrect":
|
|
10691
|
-
return /* @__PURE__ */
|
|
10808
|
+
return /* @__PURE__ */ jsx50(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx50(XCircle4, {}), children: "Resposta incorreta" });
|
|
10692
10809
|
default:
|
|
10693
10810
|
return null;
|
|
10694
10811
|
}
|
|
@@ -10709,14 +10826,14 @@ var MultipleChoiceList = ({
|
|
|
10709
10826
|
isSelected ? "border-primary-950 bg-primary-950 text-text" : "border-border-400 bg-background",
|
|
10710
10827
|
isDisabled && "opacity-40 cursor-not-allowed"
|
|
10711
10828
|
);
|
|
10712
|
-
return /* @__PURE__ */
|
|
10829
|
+
return /* @__PURE__ */ jsx50("div", { className: checkboxClasses, children: isSelected && /* @__PURE__ */ jsx50(Check5, { size: 16, weight: "bold" }) });
|
|
10713
10830
|
};
|
|
10714
10831
|
if (mode === "readonly") {
|
|
10715
|
-
return /* @__PURE__ */
|
|
10832
|
+
return /* @__PURE__ */ jsx50("div", { className: cn("flex flex-col gap-2", className), children: choices.map((choice, i) => {
|
|
10716
10833
|
const isSelected = actualValue?.includes(choice.value) || false;
|
|
10717
10834
|
const statusStyles = getStatusStyles2(choice.status);
|
|
10718
10835
|
const statusBadge = getStatusBadge2(choice.status);
|
|
10719
|
-
return /* @__PURE__ */
|
|
10836
|
+
return /* @__PURE__ */ jsxs36(
|
|
10720
10837
|
"div",
|
|
10721
10838
|
{
|
|
10722
10839
|
className: cn(
|
|
@@ -10725,9 +10842,9 @@ var MultipleChoiceList = ({
|
|
|
10725
10842
|
choice.disabled ? "opacity-50 cursor-not-allowed" : ""
|
|
10726
10843
|
),
|
|
10727
10844
|
children: [
|
|
10728
|
-
/* @__PURE__ */
|
|
10845
|
+
/* @__PURE__ */ jsxs36("div", { className: "flex items-center gap-2 flex-1", children: [
|
|
10729
10846
|
renderVisualCheckbox(isSelected, choice.disabled || disabled),
|
|
10730
|
-
/* @__PURE__ */
|
|
10847
|
+
/* @__PURE__ */ jsx50(
|
|
10731
10848
|
"span",
|
|
10732
10849
|
{
|
|
10733
10850
|
className: cn(
|
|
@@ -10739,14 +10856,14 @@ var MultipleChoiceList = ({
|
|
|
10739
10856
|
}
|
|
10740
10857
|
)
|
|
10741
10858
|
] }),
|
|
10742
|
-
statusBadge && /* @__PURE__ */
|
|
10859
|
+
statusBadge && /* @__PURE__ */ jsx50("div", { className: "flex-shrink-0", children: statusBadge })
|
|
10743
10860
|
]
|
|
10744
10861
|
},
|
|
10745
10862
|
`readonly-${choice.value}-${i}`
|
|
10746
10863
|
);
|
|
10747
10864
|
}) });
|
|
10748
10865
|
}
|
|
10749
|
-
return /* @__PURE__ */
|
|
10866
|
+
return /* @__PURE__ */ jsx50(
|
|
10750
10867
|
"div",
|
|
10751
10868
|
{
|
|
10752
10869
|
className: cn(
|
|
@@ -10754,7 +10871,7 @@ var MultipleChoiceList = ({
|
|
|
10754
10871
|
disabled ? "opacity-50 cursor-not-allowed" : "",
|
|
10755
10872
|
className
|
|
10756
10873
|
),
|
|
10757
|
-
children: /* @__PURE__ */
|
|
10874
|
+
children: /* @__PURE__ */ jsx50(
|
|
10758
10875
|
CheckboxList_default,
|
|
10759
10876
|
{
|
|
10760
10877
|
name,
|
|
@@ -10764,12 +10881,12 @@ var MultipleChoiceList = ({
|
|
|
10764
10881
|
onHandleSelectedValues?.(v);
|
|
10765
10882
|
},
|
|
10766
10883
|
disabled,
|
|
10767
|
-
children: choices.map((choice, i) => /* @__PURE__ */
|
|
10884
|
+
children: choices.map((choice, i) => /* @__PURE__ */ jsxs36(
|
|
10768
10885
|
"div",
|
|
10769
10886
|
{
|
|
10770
10887
|
className: "flex flex-row gap-2 items-center",
|
|
10771
10888
|
children: [
|
|
10772
|
-
/* @__PURE__ */
|
|
10889
|
+
/* @__PURE__ */ jsx50(
|
|
10773
10890
|
CheckboxListItem,
|
|
10774
10891
|
{
|
|
10775
10892
|
value: choice.value,
|
|
@@ -10777,7 +10894,7 @@ var MultipleChoiceList = ({
|
|
|
10777
10894
|
disabled: choice.disabled || disabled
|
|
10778
10895
|
}
|
|
10779
10896
|
),
|
|
10780
|
-
/* @__PURE__ */
|
|
10897
|
+
/* @__PURE__ */ jsx50(
|
|
10781
10898
|
"label",
|
|
10782
10899
|
{
|
|
10783
10900
|
htmlFor: `interactive-${choice.value}-${i}`,
|
|
@@ -10806,13 +10923,13 @@ import { CheckCircle as CheckCircle6, XCircle as XCircle5 } from "phosphor-react
|
|
|
10806
10923
|
var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
|
|
10807
10924
|
|
|
10808
10925
|
// src/components/Quiz/QuizContent.tsx
|
|
10809
|
-
import { Fragment as Fragment11, jsx as
|
|
10926
|
+
import { Fragment as Fragment11, jsx as jsx51, jsxs as jsxs37 } from "react/jsx-runtime";
|
|
10810
10927
|
var getStatusBadge = (status) => {
|
|
10811
10928
|
switch (status) {
|
|
10812
10929
|
case "correct":
|
|
10813
|
-
return /* @__PURE__ */
|
|
10930
|
+
return /* @__PURE__ */ jsx51(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx51(CheckCircle6, {}), children: "Resposta correta" });
|
|
10814
10931
|
case "incorrect":
|
|
10815
|
-
return /* @__PURE__ */
|
|
10932
|
+
return /* @__PURE__ */ jsx51(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx51(XCircle5, {}), children: "Resposta incorreta" });
|
|
10816
10933
|
default:
|
|
10817
10934
|
return null;
|
|
10818
10935
|
}
|
|
@@ -10827,11 +10944,11 @@ var getStatusStyles = (variantCorrect) => {
|
|
|
10827
10944
|
};
|
|
10828
10945
|
var QuizSubTitle = forwardRef20(
|
|
10829
10946
|
({ subTitle, ...props }, ref) => {
|
|
10830
|
-
return /* @__PURE__ */
|
|
10947
|
+
return /* @__PURE__ */ jsx51("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx51("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
|
|
10831
10948
|
}
|
|
10832
10949
|
);
|
|
10833
10950
|
var QuizContainer = forwardRef20(({ children, className, ...props }, ref) => {
|
|
10834
|
-
return /* @__PURE__ */
|
|
10951
|
+
return /* @__PURE__ */ jsx51(
|
|
10835
10952
|
"div",
|
|
10836
10953
|
{
|
|
10837
10954
|
ref,
|
|
@@ -10879,10 +10996,10 @@ var QuizAlternative = ({ paddingBottom }) => {
|
|
|
10879
10996
|
};
|
|
10880
10997
|
});
|
|
10881
10998
|
if (!alternatives)
|
|
10882
|
-
return /* @__PURE__ */
|
|
10883
|
-
return /* @__PURE__ */
|
|
10884
|
-
/* @__PURE__ */
|
|
10885
|
-
/* @__PURE__ */
|
|
10999
|
+
return /* @__PURE__ */ jsx51("div", { children: /* @__PURE__ */ jsx51("p", { children: "N\xE3o h\xE1 Alternativas" }) });
|
|
11000
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11001
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
11002
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx51("div", { className: "space-y-4", children: /* @__PURE__ */ jsx51(
|
|
10886
11003
|
AlternativesList,
|
|
10887
11004
|
{
|
|
10888
11005
|
mode: variant === "default" ? "interactive" : "readonly",
|
|
@@ -10980,10 +11097,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
|
|
|
10980
11097
|
};
|
|
10981
11098
|
});
|
|
10982
11099
|
if (!choices)
|
|
10983
|
-
return /* @__PURE__ */
|
|
10984
|
-
return /* @__PURE__ */
|
|
10985
|
-
/* @__PURE__ */
|
|
10986
|
-
/* @__PURE__ */
|
|
11100
|
+
return /* @__PURE__ */ jsx51("div", { children: /* @__PURE__ */ jsx51("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
|
|
11101
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11102
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
11103
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx51("div", { className: "space-y-4", children: /* @__PURE__ */ jsx51(
|
|
10987
11104
|
MultipleChoiceList,
|
|
10988
11105
|
{
|
|
10989
11106
|
choices,
|
|
@@ -11029,12 +11146,12 @@ var QuizDissertative = ({ paddingBottom }) => {
|
|
|
11029
11146
|
adjustTextareaHeight();
|
|
11030
11147
|
}, [currentAnswer, adjustTextareaHeight]);
|
|
11031
11148
|
if (!currentQuestion) {
|
|
11032
|
-
return /* @__PURE__ */
|
|
11149
|
+
return /* @__PURE__ */ jsx51("div", { className: "space-y-4", children: /* @__PURE__ */ jsx51("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
|
|
11033
11150
|
}
|
|
11034
11151
|
const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
|
|
11035
|
-
return /* @__PURE__ */
|
|
11036
|
-
/* @__PURE__ */
|
|
11037
|
-
/* @__PURE__ */
|
|
11152
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11153
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Resposta" }),
|
|
11154
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx51("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx51("div", { className: "space-y-4", children: /* @__PURE__ */ jsx51(
|
|
11038
11155
|
TextArea_default,
|
|
11039
11156
|
{
|
|
11040
11157
|
ref: textareaRef,
|
|
@@ -11044,10 +11161,10 @@ var QuizDissertative = ({ paddingBottom }) => {
|
|
|
11044
11161
|
rows: 4,
|
|
11045
11162
|
className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
|
|
11046
11163
|
}
|
|
11047
|
-
) }) : /* @__PURE__ */
|
|
11048
|
-
variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */
|
|
11049
|
-
/* @__PURE__ */
|
|
11050
|
-
/* @__PURE__ */
|
|
11164
|
+
) }) : /* @__PURE__ */ jsx51("div", { className: "space-y-4", children: /* @__PURE__ */ jsx51("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
|
|
11165
|
+
variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11166
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
|
|
11167
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx51("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: currentQuestionResult?.teacherFeedback }) })
|
|
11051
11168
|
] })
|
|
11052
11169
|
] });
|
|
11053
11170
|
};
|
|
@@ -11073,16 +11190,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
|
|
|
11073
11190
|
];
|
|
11074
11191
|
const getLetterByIndex = (index) => String.fromCharCode(97 + index);
|
|
11075
11192
|
const isDefaultVariant = variant == "default";
|
|
11076
|
-
return /* @__PURE__ */
|
|
11077
|
-
/* @__PURE__ */
|
|
11078
|
-
/* @__PURE__ */
|
|
11193
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11194
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
11195
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx51("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
11079
11196
|
const variantCorrect = option.isCorrect ? "correct" : "incorrect";
|
|
11080
|
-
return /* @__PURE__ */
|
|
11197
|
+
return /* @__PURE__ */ jsxs37(
|
|
11081
11198
|
"section",
|
|
11082
11199
|
{
|
|
11083
11200
|
className: "flex flex-col gap-2",
|
|
11084
11201
|
children: [
|
|
11085
|
-
/* @__PURE__ */
|
|
11202
|
+
/* @__PURE__ */ jsxs37(
|
|
11086
11203
|
"div",
|
|
11087
11204
|
{
|
|
11088
11205
|
className: cn(
|
|
@@ -11090,20 +11207,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
|
|
|
11090
11207
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
11091
11208
|
),
|
|
11092
11209
|
children: [
|
|
11093
|
-
/* @__PURE__ */
|
|
11094
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
11095
|
-
/* @__PURE__ */
|
|
11096
|
-
/* @__PURE__ */
|
|
11097
|
-
/* @__PURE__ */
|
|
11098
|
-
/* @__PURE__ */
|
|
11210
|
+
/* @__PURE__ */ jsx51("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
|
|
11211
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs37(Select_default, { size: "medium", children: [
|
|
11212
|
+
/* @__PURE__ */ jsx51(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx51(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
|
|
11213
|
+
/* @__PURE__ */ jsxs37(SelectContent, { children: [
|
|
11214
|
+
/* @__PURE__ */ jsx51(SelectItem, { value: "V", children: "Verdadeiro" }),
|
|
11215
|
+
/* @__PURE__ */ jsx51(SelectItem, { value: "F", children: "Falso" })
|
|
11099
11216
|
] })
|
|
11100
|
-
] }) : /* @__PURE__ */
|
|
11217
|
+
] }) : /* @__PURE__ */ jsx51("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
|
|
11101
11218
|
]
|
|
11102
11219
|
}
|
|
11103
11220
|
),
|
|
11104
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
11105
|
-
/* @__PURE__ */
|
|
11106
|
-
!option.isCorrect && /* @__PURE__ */
|
|
11221
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs37("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
11222
|
+
/* @__PURE__ */ jsx51("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
|
|
11223
|
+
!option.isCorrect && /* @__PURE__ */ jsx51("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
|
|
11107
11224
|
] })
|
|
11108
11225
|
]
|
|
11109
11226
|
},
|
|
@@ -11193,13 +11310,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
|
|
|
11193
11310
|
const assignedDots = new Set(
|
|
11194
11311
|
userAnswers.map((a) => a.dotOption).filter(Boolean)
|
|
11195
11312
|
);
|
|
11196
|
-
return /* @__PURE__ */
|
|
11197
|
-
/* @__PURE__ */
|
|
11198
|
-
/* @__PURE__ */
|
|
11313
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11314
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
11315
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx51("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
11199
11316
|
const answer = userAnswers[index];
|
|
11200
11317
|
const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
|
|
11201
|
-
return /* @__PURE__ */
|
|
11202
|
-
/* @__PURE__ */
|
|
11318
|
+
return /* @__PURE__ */ jsxs37("section", { className: "flex flex-col gap-2", children: [
|
|
11319
|
+
/* @__PURE__ */ jsxs37(
|
|
11203
11320
|
"div",
|
|
11204
11321
|
{
|
|
11205
11322
|
className: cn(
|
|
@@ -11207,30 +11324,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
|
|
|
11207
11324
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
11208
11325
|
),
|
|
11209
11326
|
children: [
|
|
11210
|
-
/* @__PURE__ */
|
|
11211
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
11327
|
+
/* @__PURE__ */ jsx51("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
|
|
11328
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs37(
|
|
11212
11329
|
Select_default,
|
|
11213
11330
|
{
|
|
11214
11331
|
size: "medium",
|
|
11215
11332
|
value: answer.dotOption || void 0,
|
|
11216
11333
|
onValueChange: (value) => handleSelectDot(index, value),
|
|
11217
11334
|
children: [
|
|
11218
|
-
/* @__PURE__ */
|
|
11219
|
-
/* @__PURE__ */
|
|
11335
|
+
/* @__PURE__ */ jsx51(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx51(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
11336
|
+
/* @__PURE__ */ jsx51(SelectContent, { children: dotsOptions.filter(
|
|
11220
11337
|
(dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
|
|
11221
|
-
).map((dot) => /* @__PURE__ */
|
|
11338
|
+
).map((dot) => /* @__PURE__ */ jsx51(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
|
|
11222
11339
|
]
|
|
11223
11340
|
}
|
|
11224
|
-
) : /* @__PURE__ */
|
|
11341
|
+
) : /* @__PURE__ */ jsx51("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
|
|
11225
11342
|
]
|
|
11226
11343
|
}
|
|
11227
11344
|
),
|
|
11228
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
11229
|
-
/* @__PURE__ */
|
|
11345
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs37("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
11346
|
+
/* @__PURE__ */ jsxs37("p", { className: "text-text-800 text-2xs", children: [
|
|
11230
11347
|
"Resposta selecionada: ",
|
|
11231
11348
|
answer.dotOption || "Nenhuma"
|
|
11232
11349
|
] }),
|
|
11233
|
-
!answer.isCorrect && /* @__PURE__ */
|
|
11350
|
+
!answer.isCorrect && /* @__PURE__ */ jsxs37("p", { className: "text-text-800 text-2xs", children: [
|
|
11234
11351
|
"Resposta correta: ",
|
|
11235
11352
|
answer.correctOption
|
|
11236
11353
|
] })
|
|
@@ -11297,18 +11414,18 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
11297
11414
|
const mockAnswer = mockUserAnswers.find(
|
|
11298
11415
|
(answer) => answer.selectId === selectId
|
|
11299
11416
|
);
|
|
11300
|
-
return /* @__PURE__ */
|
|
11417
|
+
return /* @__PURE__ */ jsx51("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
|
|
11301
11418
|
};
|
|
11302
11419
|
const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
|
|
11303
|
-
return /* @__PURE__ */
|
|
11420
|
+
return /* @__PURE__ */ jsxs37(
|
|
11304
11421
|
Select_default,
|
|
11305
11422
|
{
|
|
11306
11423
|
value: selectedValue,
|
|
11307
11424
|
onValueChange: (value) => handleSelectChange(selectId, value),
|
|
11308
11425
|
className: "inline-flex mb-2.5",
|
|
11309
11426
|
children: [
|
|
11310
|
-
/* @__PURE__ */
|
|
11311
|
-
/* @__PURE__ */
|
|
11427
|
+
/* @__PURE__ */ jsx51(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-background border-gray-300", children: /* @__PURE__ */ jsx51(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
11428
|
+
/* @__PURE__ */ jsx51(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx51(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
|
|
11312
11429
|
]
|
|
11313
11430
|
},
|
|
11314
11431
|
`${selectId}-${startIndex}`
|
|
@@ -11320,8 +11437,8 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
11320
11437
|
);
|
|
11321
11438
|
if (!mockAnswer) return null;
|
|
11322
11439
|
const action = mockAnswer.isCorrect ? "success" : "error";
|
|
11323
|
-
const icon = mockAnswer.isCorrect ? /* @__PURE__ */
|
|
11324
|
-
return /* @__PURE__ */
|
|
11440
|
+
const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx51(CheckCircle6, {}) : /* @__PURE__ */ jsx51(XCircle5, {});
|
|
11441
|
+
return /* @__PURE__ */ jsx51(
|
|
11325
11442
|
Badge_default,
|
|
11326
11443
|
{
|
|
11327
11444
|
variant: "solid",
|
|
@@ -11329,7 +11446,7 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
11329
11446
|
iconRight: icon,
|
|
11330
11447
|
size: "large",
|
|
11331
11448
|
className: "py-3 w-[180px] justify-between mb-2.5",
|
|
11332
|
-
children: /* @__PURE__ */
|
|
11449
|
+
children: /* @__PURE__ */ jsx51("span", { className: "text-text-900", children: mockAnswer.userAnswer })
|
|
11333
11450
|
},
|
|
11334
11451
|
selectId
|
|
11335
11452
|
);
|
|
@@ -11385,25 +11502,25 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
11385
11502
|
}
|
|
11386
11503
|
return elements;
|
|
11387
11504
|
};
|
|
11388
|
-
return /* @__PURE__ */
|
|
11389
|
-
/* @__PURE__ */
|
|
11390
|
-
/* @__PURE__ */
|
|
11505
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11506
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
11507
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx51("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx51(
|
|
11391
11508
|
"div",
|
|
11392
11509
|
{
|
|
11393
11510
|
className: cn(
|
|
11394
11511
|
"text-lg text-text-900 leading-8 h-auto",
|
|
11395
11512
|
variant != "result" && paddingBottom
|
|
11396
11513
|
),
|
|
11397
|
-
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */
|
|
11514
|
+
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx51("span", { children: element.element }, element.id))
|
|
11398
11515
|
}
|
|
11399
11516
|
) }) }),
|
|
11400
|
-
variant === "result" && /* @__PURE__ */
|
|
11401
|
-
/* @__PURE__ */
|
|
11402
|
-
/* @__PURE__ */
|
|
11517
|
+
variant === "result" && /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11518
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Resultado" }),
|
|
11519
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx51("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx51(
|
|
11403
11520
|
"div",
|
|
11404
11521
|
{
|
|
11405
11522
|
className: cn("text-lg text-text-900 leading-8", paddingBottom),
|
|
11406
|
-
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */
|
|
11523
|
+
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx51("span", { children: element.element }, element.id))
|
|
11407
11524
|
}
|
|
11408
11525
|
) }) })
|
|
11409
11526
|
] })
|
|
@@ -11457,36 +11574,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
11457
11574
|
}
|
|
11458
11575
|
return "bg-success-600/70 border-white";
|
|
11459
11576
|
};
|
|
11460
|
-
return /* @__PURE__ */
|
|
11461
|
-
/* @__PURE__ */
|
|
11462
|
-
/* @__PURE__ */
|
|
11577
|
+
return /* @__PURE__ */ jsxs37(Fragment11, { children: [
|
|
11578
|
+
/* @__PURE__ */ jsx51(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
|
|
11579
|
+
/* @__PURE__ */ jsx51(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs37(
|
|
11463
11580
|
"div",
|
|
11464
11581
|
{
|
|
11465
11582
|
"data-testid": "quiz-image-container",
|
|
11466
11583
|
className: "space-y-6 p-3 relative inline-block",
|
|
11467
11584
|
children: [
|
|
11468
|
-
variant == "result" && /* @__PURE__ */
|
|
11585
|
+
variant == "result" && /* @__PURE__ */ jsxs37(
|
|
11469
11586
|
"div",
|
|
11470
11587
|
{
|
|
11471
11588
|
"data-testid": "quiz-legend",
|
|
11472
11589
|
className: "flex items-center gap-4 text-xs",
|
|
11473
11590
|
children: [
|
|
11474
|
-
/* @__PURE__ */
|
|
11475
|
-
/* @__PURE__ */
|
|
11476
|
-
/* @__PURE__ */
|
|
11591
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2", children: [
|
|
11592
|
+
/* @__PURE__ */ jsx51("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
|
|
11593
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
|
|
11477
11594
|
] }),
|
|
11478
|
-
/* @__PURE__ */
|
|
11479
|
-
/* @__PURE__ */
|
|
11480
|
-
/* @__PURE__ */
|
|
11595
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2", children: [
|
|
11596
|
+
/* @__PURE__ */ jsx51("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
|
|
11597
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
|
|
11481
11598
|
] }),
|
|
11482
|
-
/* @__PURE__ */
|
|
11483
|
-
/* @__PURE__ */
|
|
11484
|
-
/* @__PURE__ */
|
|
11599
|
+
/* @__PURE__ */ jsxs37("div", { className: "flex items-center gap-2", children: [
|
|
11600
|
+
/* @__PURE__ */ jsx51("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
|
|
11601
|
+
/* @__PURE__ */ jsx51("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
|
|
11485
11602
|
] })
|
|
11486
11603
|
]
|
|
11487
11604
|
}
|
|
11488
11605
|
),
|
|
11489
|
-
/* @__PURE__ */
|
|
11606
|
+
/* @__PURE__ */ jsxs37(
|
|
11490
11607
|
"button",
|
|
11491
11608
|
{
|
|
11492
11609
|
"data-testid": "quiz-image-button",
|
|
@@ -11501,7 +11618,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
11501
11618
|
},
|
|
11502
11619
|
"aria-label": "\xC1rea da imagem interativa",
|
|
11503
11620
|
children: [
|
|
11504
|
-
/* @__PURE__ */
|
|
11621
|
+
/* @__PURE__ */ jsx51(
|
|
11505
11622
|
"img",
|
|
11506
11623
|
{
|
|
11507
11624
|
"data-testid": "quiz-image",
|
|
@@ -11510,7 +11627,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
11510
11627
|
className: "w-full h-auto rounded-md"
|
|
11511
11628
|
}
|
|
11512
11629
|
),
|
|
11513
|
-
variant === "result" && /* @__PURE__ */
|
|
11630
|
+
variant === "result" && /* @__PURE__ */ jsx51(
|
|
11514
11631
|
"div",
|
|
11515
11632
|
{
|
|
11516
11633
|
"data-testid": "quiz-correct-circle",
|
|
@@ -11525,7 +11642,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
11525
11642
|
}
|
|
11526
11643
|
}
|
|
11527
11644
|
),
|
|
11528
|
-
clickPositionRelative && /* @__PURE__ */
|
|
11645
|
+
clickPositionRelative && /* @__PURE__ */ jsx51(
|
|
11529
11646
|
"div",
|
|
11530
11647
|
{
|
|
11531
11648
|
"data-testid": "quiz-user-circle",
|
|
@@ -11550,7 +11667,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
11550
11667
|
};
|
|
11551
11668
|
|
|
11552
11669
|
// src/components/Quiz/Quiz.tsx
|
|
11553
|
-
import { Fragment as Fragment12, jsx as
|
|
11670
|
+
import { Fragment as Fragment12, jsx as jsx52, jsxs as jsxs38 } from "react/jsx-runtime";
|
|
11554
11671
|
var getQuizTypeConfig = (type) => {
|
|
11555
11672
|
const QUIZ_TYPE_CONFIG = {
|
|
11556
11673
|
["SIMULADO" /* SIMULADO */]: {
|
|
@@ -11592,7 +11709,7 @@ var Quiz = forwardRef21(({ children, className, variant = "default", ...props },
|
|
|
11592
11709
|
useEffect20(() => {
|
|
11593
11710
|
setVariant(variant);
|
|
11594
11711
|
}, [variant, setVariant]);
|
|
11595
|
-
return /* @__PURE__ */
|
|
11712
|
+
return /* @__PURE__ */ jsx52("div", { ref, className: cn("flex flex-col", className), ...props, children });
|
|
11596
11713
|
});
|
|
11597
11714
|
var QuizTitle = forwardRef21(({ className, onBack, ...props }, ref) => {
|
|
11598
11715
|
const {
|
|
@@ -11628,8 +11745,8 @@ var QuizTitle = forwardRef21(({ className, onBack, ...props }, ref) => {
|
|
|
11628
11745
|
const handleCancelExit = () => {
|
|
11629
11746
|
setShowExitConfirmation(false);
|
|
11630
11747
|
};
|
|
11631
|
-
return /* @__PURE__ */
|
|
11632
|
-
/* @__PURE__ */
|
|
11748
|
+
return /* @__PURE__ */ jsxs38(Fragment12, { children: [
|
|
11749
|
+
/* @__PURE__ */ jsxs38(
|
|
11633
11750
|
"div",
|
|
11634
11751
|
{
|
|
11635
11752
|
ref,
|
|
@@ -11639,24 +11756,24 @@ var QuizTitle = forwardRef21(({ className, onBack, ...props }, ref) => {
|
|
|
11639
11756
|
),
|
|
11640
11757
|
...props,
|
|
11641
11758
|
children: [
|
|
11642
|
-
/* @__PURE__ */
|
|
11759
|
+
/* @__PURE__ */ jsx52(
|
|
11643
11760
|
IconButton_default,
|
|
11644
11761
|
{
|
|
11645
|
-
icon: /* @__PURE__ */
|
|
11762
|
+
icon: /* @__PURE__ */ jsx52(CaretLeft2, { size: 24 }),
|
|
11646
11763
|
size: "md",
|
|
11647
11764
|
"aria-label": "Voltar",
|
|
11648
11765
|
onClick: handleBackClick
|
|
11649
11766
|
}
|
|
11650
11767
|
),
|
|
11651
|
-
/* @__PURE__ */
|
|
11652
|
-
/* @__PURE__ */
|
|
11653
|
-
/* @__PURE__ */
|
|
11768
|
+
/* @__PURE__ */ jsxs38("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
11769
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
11770
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
11654
11771
|
] }),
|
|
11655
|
-
/* @__PURE__ */
|
|
11772
|
+
/* @__PURE__ */ jsx52("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx52(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx52(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
11656
11773
|
]
|
|
11657
11774
|
}
|
|
11658
11775
|
),
|
|
11659
|
-
/* @__PURE__ */
|
|
11776
|
+
/* @__PURE__ */ jsx52(
|
|
11660
11777
|
AlertDialog,
|
|
11661
11778
|
{
|
|
11662
11779
|
isOpen: showExitConfirmation,
|
|
@@ -11674,7 +11791,7 @@ var QuizTitle = forwardRef21(({ className, onBack, ...props }, ref) => {
|
|
|
11674
11791
|
var QuizHeader = () => {
|
|
11675
11792
|
const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
|
|
11676
11793
|
const currentQuestion = getCurrentQuestion();
|
|
11677
|
-
return /* @__PURE__ */
|
|
11794
|
+
return /* @__PURE__ */ jsx52(
|
|
11678
11795
|
HeaderAlternative,
|
|
11679
11796
|
{
|
|
11680
11797
|
title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
|
|
@@ -11696,7 +11813,7 @@ var QuizContent = ({ paddingBottom }) => {
|
|
|
11696
11813
|
["IMAGEM" /* IMAGEM */]: QuizImageQuestion
|
|
11697
11814
|
};
|
|
11698
11815
|
const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
|
|
11699
|
-
return QuestionComponent ? /* @__PURE__ */
|
|
11816
|
+
return QuestionComponent ? /* @__PURE__ */ jsx52(QuestionComponent, { paddingBottom }) : null;
|
|
11700
11817
|
};
|
|
11701
11818
|
var QuizQuestionList = ({
|
|
11702
11819
|
filterType = "all",
|
|
@@ -11743,18 +11860,18 @@ var QuizQuestionList = ({
|
|
|
11743
11860
|
return "Em branco";
|
|
11744
11861
|
}
|
|
11745
11862
|
};
|
|
11746
|
-
return /* @__PURE__ */
|
|
11747
|
-
Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */
|
|
11863
|
+
return /* @__PURE__ */ jsxs38("div", { className: "space-y-6 px-4 h-full", children: [
|
|
11864
|
+
Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx52("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx52("p", { className: "text-lg", children: "Nenhum resultado" }) }),
|
|
11748
11865
|
Object.entries(filteredGroupedQuestions).map(
|
|
11749
|
-
([subjectId, questions]) => /* @__PURE__ */
|
|
11750
|
-
/* @__PURE__ */
|
|
11751
|
-
/* @__PURE__ */
|
|
11752
|
-
/* @__PURE__ */
|
|
11866
|
+
([subjectId, questions]) => /* @__PURE__ */ jsxs38("section", { className: "flex flex-col gap-2", children: [
|
|
11867
|
+
/* @__PURE__ */ jsxs38("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
|
|
11868
|
+
/* @__PURE__ */ jsx52("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx52(BookOpen, { size: 17, className: "text-white" }) }),
|
|
11869
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
|
|
11753
11870
|
] }),
|
|
11754
|
-
/* @__PURE__ */
|
|
11871
|
+
/* @__PURE__ */ jsx52("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
|
|
11755
11872
|
const status = getQuestionStatus(question.id);
|
|
11756
11873
|
const questionNumber = getQuestionIndex(question.id);
|
|
11757
|
-
return /* @__PURE__ */
|
|
11874
|
+
return /* @__PURE__ */ jsx52(
|
|
11758
11875
|
CardStatus,
|
|
11759
11876
|
{
|
|
11760
11877
|
header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
|
|
@@ -11859,8 +11976,8 @@ var QuizFooter = forwardRef21(
|
|
|
11859
11976
|
return;
|
|
11860
11977
|
}
|
|
11861
11978
|
};
|
|
11862
|
-
return /* @__PURE__ */
|
|
11863
|
-
/* @__PURE__ */
|
|
11979
|
+
return /* @__PURE__ */ jsxs38(Fragment12, { children: [
|
|
11980
|
+
/* @__PURE__ */ jsx52(
|
|
11864
11981
|
"footer",
|
|
11865
11982
|
{
|
|
11866
11983
|
ref,
|
|
@@ -11869,17 +11986,17 @@ var QuizFooter = forwardRef21(
|
|
|
11869
11986
|
className
|
|
11870
11987
|
),
|
|
11871
11988
|
...props,
|
|
11872
|
-
children: variant === "default" ? /* @__PURE__ */
|
|
11873
|
-
/* @__PURE__ */
|
|
11874
|
-
/* @__PURE__ */
|
|
11989
|
+
children: variant === "default" ? /* @__PURE__ */ jsxs38(Fragment12, { children: [
|
|
11990
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-row items-center gap-1", children: [
|
|
11991
|
+
/* @__PURE__ */ jsx52(
|
|
11875
11992
|
IconButton_default,
|
|
11876
11993
|
{
|
|
11877
|
-
icon: /* @__PURE__ */
|
|
11994
|
+
icon: /* @__PURE__ */ jsx52(SquaresFour, { size: 24, className: "text-text-950" }),
|
|
11878
11995
|
size: "md",
|
|
11879
11996
|
onClick: () => openModal("modalNavigate")
|
|
11880
11997
|
}
|
|
11881
11998
|
),
|
|
11882
|
-
isFirstQuestion ? /* @__PURE__ */
|
|
11999
|
+
isFirstQuestion ? /* @__PURE__ */ jsx52(
|
|
11883
12000
|
Button_default,
|
|
11884
12001
|
{
|
|
11885
12002
|
variant: "outline",
|
|
@@ -11890,13 +12007,13 @@ var QuizFooter = forwardRef21(
|
|
|
11890
12007
|
},
|
|
11891
12008
|
children: "Pular"
|
|
11892
12009
|
}
|
|
11893
|
-
) : /* @__PURE__ */
|
|
12010
|
+
) : /* @__PURE__ */ jsx52(
|
|
11894
12011
|
Button_default,
|
|
11895
12012
|
{
|
|
11896
12013
|
size: "medium",
|
|
11897
12014
|
variant: "link",
|
|
11898
12015
|
action: "primary",
|
|
11899
|
-
iconLeft: /* @__PURE__ */
|
|
12016
|
+
iconLeft: /* @__PURE__ */ jsx52(CaretLeft2, { size: 18 }),
|
|
11900
12017
|
onClick: () => {
|
|
11901
12018
|
goToPreviousQuestion();
|
|
11902
12019
|
},
|
|
@@ -11904,7 +12021,7 @@ var QuizFooter = forwardRef21(
|
|
|
11904
12021
|
}
|
|
11905
12022
|
)
|
|
11906
12023
|
] }),
|
|
11907
|
-
!isFirstQuestion && !isLastQuestion && /* @__PURE__ */
|
|
12024
|
+
!isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx52(
|
|
11908
12025
|
Button_default,
|
|
11909
12026
|
{
|
|
11910
12027
|
size: "small",
|
|
@@ -11917,7 +12034,7 @@ var QuizFooter = forwardRef21(
|
|
|
11917
12034
|
children: "Pular"
|
|
11918
12035
|
}
|
|
11919
12036
|
),
|
|
11920
|
-
isLastQuestion ? /* @__PURE__ */
|
|
12037
|
+
isLastQuestion ? /* @__PURE__ */ jsx52(
|
|
11921
12038
|
Button_default,
|
|
11922
12039
|
{
|
|
11923
12040
|
size: "medium",
|
|
@@ -11927,13 +12044,13 @@ var QuizFooter = forwardRef21(
|
|
|
11927
12044
|
onClick: handleFinishQuiz,
|
|
11928
12045
|
children: "Finalizar"
|
|
11929
12046
|
}
|
|
11930
|
-
) : /* @__PURE__ */
|
|
12047
|
+
) : /* @__PURE__ */ jsx52(
|
|
11931
12048
|
Button_default,
|
|
11932
12049
|
{
|
|
11933
12050
|
size: "medium",
|
|
11934
12051
|
variant: "link",
|
|
11935
12052
|
action: "primary",
|
|
11936
|
-
iconRight: /* @__PURE__ */
|
|
12053
|
+
iconRight: /* @__PURE__ */ jsx52(CaretRight5, { size: 18 }),
|
|
11937
12054
|
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
11938
12055
|
onClick: () => {
|
|
11939
12056
|
goToNextQuestion();
|
|
@@ -11941,7 +12058,7 @@ var QuizFooter = forwardRef21(
|
|
|
11941
12058
|
children: "Avan\xE7ar"
|
|
11942
12059
|
}
|
|
11943
12060
|
)
|
|
11944
|
-
] }) : /* @__PURE__ */
|
|
12061
|
+
] }) : /* @__PURE__ */ jsx52("div", { className: "flex flex-row items-center justify-center w-full", children: /* @__PURE__ */ jsx52(
|
|
11945
12062
|
Button_default,
|
|
11946
12063
|
{
|
|
11947
12064
|
variant: "link",
|
|
@@ -11953,7 +12070,7 @@ var QuizFooter = forwardRef21(
|
|
|
11953
12070
|
) })
|
|
11954
12071
|
}
|
|
11955
12072
|
),
|
|
11956
|
-
/* @__PURE__ */
|
|
12073
|
+
/* @__PURE__ */ jsx52(
|
|
11957
12074
|
AlertDialog,
|
|
11958
12075
|
{
|
|
11959
12076
|
isOpen: isModalOpen("alertDialog"),
|
|
@@ -11965,7 +12082,7 @@ var QuizFooter = forwardRef21(
|
|
|
11965
12082
|
onSubmit: handleAlertSubmit
|
|
11966
12083
|
}
|
|
11967
12084
|
),
|
|
11968
|
-
/* @__PURE__ */
|
|
12085
|
+
/* @__PURE__ */ jsx52(
|
|
11969
12086
|
Modal_default,
|
|
11970
12087
|
{
|
|
11971
12088
|
isOpen: isModalOpen("modalResult"),
|
|
@@ -11974,11 +12091,11 @@ var QuizFooter = forwardRef21(
|
|
|
11974
12091
|
closeOnEscape: false,
|
|
11975
12092
|
hideCloseButton: true,
|
|
11976
12093
|
size: "md",
|
|
11977
|
-
children: /* @__PURE__ */
|
|
11978
|
-
resultImageComponent ? /* @__PURE__ */
|
|
11979
|
-
/* @__PURE__ */
|
|
11980
|
-
/* @__PURE__ */
|
|
11981
|
-
/* @__PURE__ */
|
|
12094
|
+
children: /* @__PURE__ */ jsxs38("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
12095
|
+
resultImageComponent ? /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx52("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
|
|
12096
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
12097
|
+
/* @__PURE__ */ jsx52("h2", { className: "text-text-950 font-bold text-lg", children: getCompletionTitle(quizType) }),
|
|
12098
|
+
/* @__PURE__ */ jsxs38("p", { className: "text-text-500 font-sm", children: [
|
|
11982
12099
|
"Voc\xEA acertou ",
|
|
11983
12100
|
correctAnswers ?? "--",
|
|
11984
12101
|
" de ",
|
|
@@ -11987,8 +12104,8 @@ var QuizFooter = forwardRef21(
|
|
|
11987
12104
|
"quest\xF5es."
|
|
11988
12105
|
] })
|
|
11989
12106
|
] }),
|
|
11990
|
-
/* @__PURE__ */
|
|
11991
|
-
/* @__PURE__ */
|
|
12107
|
+
/* @__PURE__ */ jsxs38("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
12108
|
+
/* @__PURE__ */ jsx52(
|
|
11992
12109
|
Button_default,
|
|
11993
12110
|
{
|
|
11994
12111
|
variant: "outline",
|
|
@@ -11998,38 +12115,38 @@ var QuizFooter = forwardRef21(
|
|
|
11998
12115
|
children: quizTypeLabel === "Question\xE1rio" ? "Ir para aulas" : `Ir para ${quizTypeLabel.toLocaleLowerCase()}s`
|
|
11999
12116
|
}
|
|
12000
12117
|
),
|
|
12001
|
-
/* @__PURE__ */
|
|
12118
|
+
/* @__PURE__ */ jsx52(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
|
|
12002
12119
|
] })
|
|
12003
12120
|
] })
|
|
12004
12121
|
}
|
|
12005
12122
|
),
|
|
12006
|
-
/* @__PURE__ */
|
|
12123
|
+
/* @__PURE__ */ jsx52(
|
|
12007
12124
|
Modal_default,
|
|
12008
12125
|
{
|
|
12009
12126
|
isOpen: isModalOpen("modalNavigate"),
|
|
12010
12127
|
onClose: closeModal,
|
|
12011
12128
|
title: "Quest\xF5es",
|
|
12012
12129
|
size: "lg",
|
|
12013
|
-
children: /* @__PURE__ */
|
|
12014
|
-
/* @__PURE__ */
|
|
12015
|
-
/* @__PURE__ */
|
|
12016
|
-
/* @__PURE__ */
|
|
12017
|
-
/* @__PURE__ */
|
|
12130
|
+
children: /* @__PURE__ */ jsxs38("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
|
|
12131
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
|
|
12132
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
|
|
12133
|
+
/* @__PURE__ */ jsx52("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs38(Select_default, { value: filterType, onValueChange: setFilterType, children: [
|
|
12134
|
+
/* @__PURE__ */ jsx52(
|
|
12018
12135
|
SelectTrigger,
|
|
12019
12136
|
{
|
|
12020
12137
|
variant: "rounded",
|
|
12021
12138
|
className: "max-w-[266px] min-w-[160px]",
|
|
12022
|
-
children: /* @__PURE__ */
|
|
12139
|
+
children: /* @__PURE__ */ jsx52(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
|
|
12023
12140
|
}
|
|
12024
12141
|
),
|
|
12025
|
-
/* @__PURE__ */
|
|
12026
|
-
/* @__PURE__ */
|
|
12027
|
-
/* @__PURE__ */
|
|
12028
|
-
/* @__PURE__ */
|
|
12142
|
+
/* @__PURE__ */ jsxs38(SelectContent, { children: [
|
|
12143
|
+
/* @__PURE__ */ jsx52(SelectItem, { value: "all", children: "Todas" }),
|
|
12144
|
+
/* @__PURE__ */ jsx52(SelectItem, { value: "unanswered", children: "Em branco" }),
|
|
12145
|
+
/* @__PURE__ */ jsx52(SelectItem, { value: "answered", children: "Respondidas" })
|
|
12029
12146
|
] })
|
|
12030
12147
|
] }) })
|
|
12031
12148
|
] }),
|
|
12032
|
-
/* @__PURE__ */
|
|
12149
|
+
/* @__PURE__ */ jsx52("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx52(
|
|
12033
12150
|
QuizQuestionList,
|
|
12034
12151
|
{
|
|
12035
12152
|
filterType,
|
|
@@ -12039,7 +12156,7 @@ var QuizFooter = forwardRef21(
|
|
|
12039
12156
|
] })
|
|
12040
12157
|
}
|
|
12041
12158
|
),
|
|
12042
|
-
/* @__PURE__ */
|
|
12159
|
+
/* @__PURE__ */ jsx52(
|
|
12043
12160
|
Modal_default,
|
|
12044
12161
|
{
|
|
12045
12162
|
isOpen: isModalOpen("modalResolution"),
|
|
@@ -12049,7 +12166,7 @@ var QuizFooter = forwardRef21(
|
|
|
12049
12166
|
children: currentQuestion?.solutionExplanation
|
|
12050
12167
|
}
|
|
12051
12168
|
),
|
|
12052
|
-
/* @__PURE__ */
|
|
12169
|
+
/* @__PURE__ */ jsx52(
|
|
12053
12170
|
Modal_default,
|
|
12054
12171
|
{
|
|
12055
12172
|
isOpen: isModalOpen("modalQuestionnaireAllCorrect"),
|
|
@@ -12058,17 +12175,17 @@ var QuizFooter = forwardRef21(
|
|
|
12058
12175
|
closeOnEscape: false,
|
|
12059
12176
|
hideCloseButton: true,
|
|
12060
12177
|
size: "md",
|
|
12061
|
-
children: /* @__PURE__ */
|
|
12062
|
-
resultImageComponent ? /* @__PURE__ */
|
|
12063
|
-
/* @__PURE__ */
|
|
12064
|
-
/* @__PURE__ */
|
|
12065
|
-
/* @__PURE__ */
|
|
12178
|
+
children: /* @__PURE__ */ jsxs38("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
12179
|
+
resultImageComponent ? /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx52("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
|
|
12180
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
12181
|
+
/* @__PURE__ */ jsx52("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F389} Parab\xE9ns!" }),
|
|
12182
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-500 font-sm", children: "Voc\xEA concluiu o m\xF3dulo Movimento Uniforme." })
|
|
12066
12183
|
] }),
|
|
12067
|
-
/* @__PURE__ */
|
|
12184
|
+
/* @__PURE__ */ jsx52("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: /* @__PURE__ */ jsx52(Button_default, { className: "w-full", onClick: onGoToNextModule, children: "Pr\xF3ximo m\xF3dulo" }) })
|
|
12068
12185
|
] })
|
|
12069
12186
|
}
|
|
12070
12187
|
),
|
|
12071
|
-
/* @__PURE__ */
|
|
12188
|
+
/* @__PURE__ */ jsx52(
|
|
12072
12189
|
Modal_default,
|
|
12073
12190
|
{
|
|
12074
12191
|
isOpen: isModalOpen("modalQuestionnaireAllIncorrect"),
|
|
@@ -12077,16 +12194,16 @@ var QuizFooter = forwardRef21(
|
|
|
12077
12194
|
closeOnEscape: false,
|
|
12078
12195
|
hideCloseButton: true,
|
|
12079
12196
|
size: "md",
|
|
12080
|
-
children: /* @__PURE__ */
|
|
12081
|
-
resultIncorrectImageComponent ? /* @__PURE__ */
|
|
12082
|
-
/* @__PURE__ */
|
|
12083
|
-
/* @__PURE__ */
|
|
12084
|
-
/* @__PURE__ */
|
|
12085
|
-
/* @__PURE__ */
|
|
12086
|
-
/* @__PURE__ */
|
|
12197
|
+
children: /* @__PURE__ */ jsxs38("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
12198
|
+
resultIncorrectImageComponent ? /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-auto", children: resultIncorrectImageComponent }) : /* @__PURE__ */ jsx52("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx52("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
|
|
12199
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
12200
|
+
/* @__PURE__ */ jsx52("h2", { className: "text-text-950 font-bold text-lg", children: "\u{1F615} N\xE3o foi dessa vez..." }),
|
|
12201
|
+
/* @__PURE__ */ jsx52("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." }),
|
|
12202
|
+
/* @__PURE__ */ jsx52("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." }),
|
|
12203
|
+
/* @__PURE__ */ jsx52("p", { className: "text-text-500 font-sm", children: "Clique em Repetir Question\xE1rio e mostre do que voc\xEA \xE9 capaz! \u{1F4AA}" })
|
|
12087
12204
|
] }),
|
|
12088
|
-
/* @__PURE__ */
|
|
12089
|
-
/* @__PURE__ */
|
|
12205
|
+
/* @__PURE__ */ jsxs38("div", { className: "flex flex-row justify-center items-center gap-2 w-full", children: [
|
|
12206
|
+
/* @__PURE__ */ jsx52(
|
|
12090
12207
|
Button_default,
|
|
12091
12208
|
{
|
|
12092
12209
|
type: "button",
|
|
@@ -12100,7 +12217,7 @@ var QuizFooter = forwardRef21(
|
|
|
12100
12217
|
children: "Tentar depois"
|
|
12101
12218
|
}
|
|
12102
12219
|
),
|
|
12103
|
-
/* @__PURE__ */
|
|
12220
|
+
/* @__PURE__ */ jsx52(
|
|
12104
12221
|
Button_default,
|
|
12105
12222
|
{
|
|
12106
12223
|
variant: "outline",
|
|
@@ -12110,7 +12227,7 @@ var QuizFooter = forwardRef21(
|
|
|
12110
12227
|
children: "Detalhar resultado"
|
|
12111
12228
|
}
|
|
12112
12229
|
),
|
|
12113
|
-
/* @__PURE__ */
|
|
12230
|
+
/* @__PURE__ */ jsx52(
|
|
12114
12231
|
Button_default,
|
|
12115
12232
|
{
|
|
12116
12233
|
className: "w-auto",
|
|
@@ -12123,7 +12240,7 @@ var QuizFooter = forwardRef21(
|
|
|
12123
12240
|
] })
|
|
12124
12241
|
}
|
|
12125
12242
|
),
|
|
12126
|
-
/* @__PURE__ */
|
|
12243
|
+
/* @__PURE__ */ jsx52(
|
|
12127
12244
|
AlertDialog,
|
|
12128
12245
|
{
|
|
12129
12246
|
isOpen: isModalOpen("alertDialogTryLater"),
|
|
@@ -12149,24 +12266,24 @@ var QuizFooter = forwardRef21(
|
|
|
12149
12266
|
// src/components/Quiz/QuizResult.tsx
|
|
12150
12267
|
import { forwardRef as forwardRef22, useEffect as useEffect21, useState as useState22 } from "react";
|
|
12151
12268
|
import { Clock as Clock3 } from "phosphor-react";
|
|
12152
|
-
import { jsx as
|
|
12269
|
+
import { jsx as jsx53, jsxs as jsxs39 } from "react/jsx-runtime";
|
|
12153
12270
|
var QuizBadge = ({
|
|
12154
12271
|
subtype
|
|
12155
12272
|
}) => {
|
|
12156
12273
|
switch (subtype) {
|
|
12157
12274
|
case "PROVA" /* PROVA */:
|
|
12158
|
-
return /* @__PURE__ */
|
|
12275
|
+
return /* @__PURE__ */ jsx53(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
|
|
12159
12276
|
case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
|
|
12160
12277
|
case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
|
|
12161
|
-
return /* @__PURE__ */
|
|
12278
|
+
return /* @__PURE__ */ jsx53(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
|
|
12162
12279
|
case "VESTIBULAR" /* VESTIBULAR */:
|
|
12163
|
-
return /* @__PURE__ */
|
|
12280
|
+
return /* @__PURE__ */ jsx53(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
|
|
12164
12281
|
case "SIMULADO" /* SIMULADO */:
|
|
12165
12282
|
case "SIMULADAO" /* SIMULADAO */:
|
|
12166
12283
|
case void 0:
|
|
12167
|
-
return /* @__PURE__ */
|
|
12284
|
+
return /* @__PURE__ */ jsx53(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
|
|
12168
12285
|
default:
|
|
12169
|
-
return /* @__PURE__ */
|
|
12286
|
+
return /* @__PURE__ */ jsx53(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
|
|
12170
12287
|
}
|
|
12171
12288
|
};
|
|
12172
12289
|
var QuizHeaderResult = forwardRef22(
|
|
@@ -12211,7 +12328,7 @@ var QuizHeaderResult = forwardRef22(
|
|
|
12211
12328
|
return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
|
|
12212
12329
|
}
|
|
12213
12330
|
};
|
|
12214
|
-
return /* @__PURE__ */
|
|
12331
|
+
return /* @__PURE__ */ jsxs39(
|
|
12215
12332
|
"div",
|
|
12216
12333
|
{
|
|
12217
12334
|
ref,
|
|
@@ -12222,8 +12339,8 @@ var QuizHeaderResult = forwardRef22(
|
|
|
12222
12339
|
),
|
|
12223
12340
|
...props,
|
|
12224
12341
|
children: [
|
|
12225
|
-
/* @__PURE__ */
|
|
12226
|
-
/* @__PURE__ */
|
|
12342
|
+
/* @__PURE__ */ jsx53("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
|
|
12343
|
+
/* @__PURE__ */ jsx53("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
|
|
12227
12344
|
]
|
|
12228
12345
|
}
|
|
12229
12346
|
);
|
|
@@ -12231,7 +12348,7 @@ var QuizHeaderResult = forwardRef22(
|
|
|
12231
12348
|
);
|
|
12232
12349
|
var QuizResultHeaderTitle = forwardRef22(({ className, showBadge = true, onRepeat, canRetry, ...props }, ref) => {
|
|
12233
12350
|
const { quiz } = useQuizStore();
|
|
12234
|
-
return /* @__PURE__ */
|
|
12351
|
+
return /* @__PURE__ */ jsxs39(
|
|
12235
12352
|
"div",
|
|
12236
12353
|
{
|
|
12237
12354
|
ref,
|
|
@@ -12241,9 +12358,9 @@ var QuizResultHeaderTitle = forwardRef22(({ className, showBadge = true, onRepea
|
|
|
12241
12358
|
),
|
|
12242
12359
|
...props,
|
|
12243
12360
|
children: [
|
|
12244
|
-
/* @__PURE__ */
|
|
12245
|
-
/* @__PURE__ */
|
|
12246
|
-
canRetry && onRepeat && /* @__PURE__ */
|
|
12361
|
+
/* @__PURE__ */ jsx53("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
12362
|
+
/* @__PURE__ */ jsxs39("div", { className: "flex flex-row gap-3 items-center", children: [
|
|
12363
|
+
canRetry && onRepeat && /* @__PURE__ */ jsx53(
|
|
12247
12364
|
Button_default,
|
|
12248
12365
|
{
|
|
12249
12366
|
variant: "solid",
|
|
@@ -12253,7 +12370,7 @@ var QuizResultHeaderTitle = forwardRef22(({ className, showBadge = true, onRepea
|
|
|
12253
12370
|
children: "Repetir question\xE1rio"
|
|
12254
12371
|
}
|
|
12255
12372
|
),
|
|
12256
|
-
showBadge && /* @__PURE__ */
|
|
12373
|
+
showBadge && /* @__PURE__ */ jsx53(QuizBadge, { subtype: quiz?.subtype || void 0 })
|
|
12257
12374
|
] })
|
|
12258
12375
|
]
|
|
12259
12376
|
}
|
|
@@ -12262,7 +12379,7 @@ var QuizResultHeaderTitle = forwardRef22(({ className, showBadge = true, onRepea
|
|
|
12262
12379
|
var QuizResultTitle = forwardRef22(({ className, ...props }, ref) => {
|
|
12263
12380
|
const { getQuizTitle } = useQuizStore();
|
|
12264
12381
|
const quizTitle = getQuizTitle();
|
|
12265
|
-
return /* @__PURE__ */
|
|
12382
|
+
return /* @__PURE__ */ jsx53(
|
|
12266
12383
|
"p",
|
|
12267
12384
|
{
|
|
12268
12385
|
className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
|
|
@@ -12314,7 +12431,7 @@ var QuizResultPerformance = forwardRef22(({ showDetails = true, ...props }, ref)
|
|
|
12314
12431
|
}
|
|
12315
12432
|
const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
|
|
12316
12433
|
const classesJustifyBetween = showDetails ? "justify-between" : "justify-center";
|
|
12317
|
-
return /* @__PURE__ */
|
|
12434
|
+
return /* @__PURE__ */ jsxs39(
|
|
12318
12435
|
"div",
|
|
12319
12436
|
{
|
|
12320
12437
|
className: cn(
|
|
@@ -12324,8 +12441,8 @@ var QuizResultPerformance = forwardRef22(({ showDetails = true, ...props }, ref)
|
|
|
12324
12441
|
ref,
|
|
12325
12442
|
...props,
|
|
12326
12443
|
children: [
|
|
12327
|
-
/* @__PURE__ */
|
|
12328
|
-
/* @__PURE__ */
|
|
12444
|
+
/* @__PURE__ */ jsxs39("div", { className: "relative", children: [
|
|
12445
|
+
/* @__PURE__ */ jsx53(
|
|
12329
12446
|
ProgressCircle_default,
|
|
12330
12447
|
{
|
|
12331
12448
|
size: "medium",
|
|
@@ -12335,24 +12452,24 @@ var QuizResultPerformance = forwardRef22(({ showDetails = true, ...props }, ref)
|
|
|
12335
12452
|
label: ""
|
|
12336
12453
|
}
|
|
12337
12454
|
),
|
|
12338
|
-
/* @__PURE__ */
|
|
12339
|
-
showDetails && /* @__PURE__ */
|
|
12340
|
-
/* @__PURE__ */
|
|
12341
|
-
/* @__PURE__ */
|
|
12455
|
+
/* @__PURE__ */ jsxs39("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
12456
|
+
showDetails && /* @__PURE__ */ jsxs39("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
12457
|
+
/* @__PURE__ */ jsx53(Clock3, { size: 12, weight: "regular", className: "text-text-800" }),
|
|
12458
|
+
/* @__PURE__ */ jsx53("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
|
|
12342
12459
|
(getQuestionResultStatistics()?.timeSpent ?? 0) * 60
|
|
12343
12460
|
) })
|
|
12344
12461
|
] }),
|
|
12345
|
-
/* @__PURE__ */
|
|
12462
|
+
/* @__PURE__ */ jsxs39("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
|
|
12346
12463
|
getQuestionResultStatistics()?.correctAnswers ?? "--",
|
|
12347
12464
|
" de",
|
|
12348
12465
|
" ",
|
|
12349
12466
|
totalQuestions
|
|
12350
12467
|
] }),
|
|
12351
|
-
/* @__PURE__ */
|
|
12468
|
+
/* @__PURE__ */ jsx53("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
|
|
12352
12469
|
] })
|
|
12353
12470
|
] }),
|
|
12354
|
-
showDetails && /* @__PURE__ */
|
|
12355
|
-
/* @__PURE__ */
|
|
12471
|
+
showDetails && /* @__PURE__ */ jsxs39("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
12472
|
+
/* @__PURE__ */ jsx53(
|
|
12356
12473
|
ProgressBar_default,
|
|
12357
12474
|
{
|
|
12358
12475
|
className: "w-full",
|
|
@@ -12366,7 +12483,7 @@ var QuizResultPerformance = forwardRef22(({ showDetails = true, ...props }, ref)
|
|
|
12366
12483
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
12367
12484
|
}
|
|
12368
12485
|
),
|
|
12369
|
-
/* @__PURE__ */
|
|
12486
|
+
/* @__PURE__ */ jsx53(
|
|
12370
12487
|
ProgressBar_default,
|
|
12371
12488
|
{
|
|
12372
12489
|
className: "w-full",
|
|
@@ -12380,7 +12497,7 @@ var QuizResultPerformance = forwardRef22(({ showDetails = true, ...props }, ref)
|
|
|
12380
12497
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
12381
12498
|
}
|
|
12382
12499
|
),
|
|
12383
|
-
/* @__PURE__ */
|
|
12500
|
+
/* @__PURE__ */ jsx53(
|
|
12384
12501
|
ProgressBar_default,
|
|
12385
12502
|
{
|
|
12386
12503
|
className: "w-full",
|
|
@@ -12427,9 +12544,9 @@ var QuizListResult = forwardRef22(({ className, onSubjectClick, ...props }, ref)
|
|
|
12427
12544
|
};
|
|
12428
12545
|
}
|
|
12429
12546
|
);
|
|
12430
|
-
return /* @__PURE__ */
|
|
12431
|
-
/* @__PURE__ */
|
|
12432
|
-
/* @__PURE__ */
|
|
12547
|
+
return /* @__PURE__ */ jsxs39("section", { ref, className, ...props, children: [
|
|
12548
|
+
/* @__PURE__ */ jsx53("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
|
|
12549
|
+
/* @__PURE__ */ jsx53("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(
|
|
12433
12550
|
CardResults,
|
|
12434
12551
|
{
|
|
12435
12552
|
onClick: () => onSubjectClick?.(subject.subject.id),
|
|
@@ -12453,16 +12570,16 @@ var QuizListResultByMateria = ({
|
|
|
12453
12570
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
12454
12571
|
const answeredQuestions = groupedQuestions[subject] || [];
|
|
12455
12572
|
const formattedQuestions = subject == "all" ? Object.values(groupedQuestions).flat() : answeredQuestions;
|
|
12456
|
-
return /* @__PURE__ */
|
|
12457
|
-
/* @__PURE__ */
|
|
12458
|
-
/* @__PURE__ */
|
|
12459
|
-
/* @__PURE__ */
|
|
12460
|
-
/* @__PURE__ */
|
|
12573
|
+
return /* @__PURE__ */ jsxs39("div", { className: "flex flex-col", children: [
|
|
12574
|
+
/* @__PURE__ */ jsx53("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx53("p", { className: "text-text-950 font-bold text-2xl", children: subjectName || formattedQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name || "Sem mat\xE9ria" }) }),
|
|
12575
|
+
/* @__PURE__ */ jsxs39("section", { className: "flex flex-col ", children: [
|
|
12576
|
+
/* @__PURE__ */ jsx53("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
|
|
12577
|
+
/* @__PURE__ */ jsx53("ul", { className: "flex flex-col gap-2 pt-4", children: formattedQuestions.map((question) => {
|
|
12461
12578
|
const questionIndex = getQuestionIndex(
|
|
12462
12579
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12463
12580
|
question.questionId ?? question.id
|
|
12464
12581
|
);
|
|
12465
|
-
return /* @__PURE__ */
|
|
12582
|
+
return /* @__PURE__ */ jsx53("li", { children: /* @__PURE__ */ jsx53(
|
|
12466
12583
|
CardStatus,
|
|
12467
12584
|
{
|
|
12468
12585
|
className: "max-w-full",
|
|
@@ -12486,16 +12603,234 @@ var QuizListResultByMateria = ({
|
|
|
12486
12603
|
] });
|
|
12487
12604
|
};
|
|
12488
12605
|
|
|
12489
|
-
// src/
|
|
12606
|
+
// src/components/BreadcrumbMenu/BreadcrumbMenu.tsx
|
|
12607
|
+
import { useNavigate } from "react-router-dom";
|
|
12608
|
+
import { jsx as jsx54 } from "react/jsx-runtime";
|
|
12609
|
+
var BreadcrumbMenu = ({
|
|
12610
|
+
breadcrumbs,
|
|
12611
|
+
onBreadcrumbClick,
|
|
12612
|
+
className = "!px-0 py-4 flex-wrap w-full"
|
|
12613
|
+
}) => {
|
|
12614
|
+
const navigate = useNavigate();
|
|
12615
|
+
const handleClick = (breadcrumb, index) => {
|
|
12616
|
+
if (onBreadcrumbClick) {
|
|
12617
|
+
onBreadcrumbClick(breadcrumb, index);
|
|
12618
|
+
}
|
|
12619
|
+
navigate(breadcrumb.url);
|
|
12620
|
+
};
|
|
12621
|
+
return /* @__PURE__ */ jsx54(
|
|
12622
|
+
Menu,
|
|
12623
|
+
{
|
|
12624
|
+
value: `breadcrumb-${breadcrumbs.length - 1}`,
|
|
12625
|
+
defaultValue: "breadcrumb-0",
|
|
12626
|
+
variant: "breadcrumb",
|
|
12627
|
+
className,
|
|
12628
|
+
children: /* @__PURE__ */ jsx54(MenuContent, { className: "w-full flex flex-row flex-wrap gap-2 !px-0", children: breadcrumbs.map((breadcrumb, index) => {
|
|
12629
|
+
const isLast = index === breadcrumbs.length - 1;
|
|
12630
|
+
const hasSeparator = !isLast;
|
|
12631
|
+
return /* @__PURE__ */ jsx54(
|
|
12632
|
+
MenuItem,
|
|
12633
|
+
{
|
|
12634
|
+
variant: "breadcrumb",
|
|
12635
|
+
value: `breadcrumb-${index}`,
|
|
12636
|
+
className: "!p-0 whitespace-nowrap",
|
|
12637
|
+
onClick: () => handleClick(breadcrumb, index),
|
|
12638
|
+
separator: hasSeparator,
|
|
12639
|
+
children: breadcrumb.name
|
|
12640
|
+
},
|
|
12641
|
+
breadcrumb.id
|
|
12642
|
+
);
|
|
12643
|
+
}) })
|
|
12644
|
+
}
|
|
12645
|
+
);
|
|
12646
|
+
};
|
|
12647
|
+
|
|
12648
|
+
// src/components/BreadcrumbMenu/useBreadcrumbBuilder.ts
|
|
12649
|
+
import { useEffect as useEffect22 } from "react";
|
|
12650
|
+
|
|
12651
|
+
// src/components/BreadcrumbMenu/breadcrumbStore.ts
|
|
12652
|
+
import { create as create10 } from "zustand";
|
|
12653
|
+
var useBreadcrumbStore = create10((set, get) => ({
|
|
12654
|
+
breadcrumbs: {},
|
|
12655
|
+
setBreadcrumbs: (namespace, items) => {
|
|
12656
|
+
set((state) => ({
|
|
12657
|
+
breadcrumbs: {
|
|
12658
|
+
...state.breadcrumbs,
|
|
12659
|
+
[namespace]: items
|
|
12660
|
+
}
|
|
12661
|
+
}));
|
|
12662
|
+
},
|
|
12663
|
+
addBreadcrumb: (namespace, item) => {
|
|
12664
|
+
set((state) => {
|
|
12665
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
12666
|
+
return {
|
|
12667
|
+
breadcrumbs: {
|
|
12668
|
+
...state.breadcrumbs,
|
|
12669
|
+
[namespace]: [...current, item]
|
|
12670
|
+
}
|
|
12671
|
+
};
|
|
12672
|
+
});
|
|
12673
|
+
},
|
|
12674
|
+
updateBreadcrumb: (namespace, itemId, updates) => {
|
|
12675
|
+
set((state) => {
|
|
12676
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
12677
|
+
return {
|
|
12678
|
+
breadcrumbs: {
|
|
12679
|
+
...state.breadcrumbs,
|
|
12680
|
+
[namespace]: current.map(
|
|
12681
|
+
(item) => item.id === itemId ? { ...item, ...updates } : item
|
|
12682
|
+
)
|
|
12683
|
+
}
|
|
12684
|
+
};
|
|
12685
|
+
});
|
|
12686
|
+
},
|
|
12687
|
+
removeBreadcrumbFrom: (namespace, itemId) => {
|
|
12688
|
+
set((state) => {
|
|
12689
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
12690
|
+
const index = current.findIndex((item) => item.id === itemId);
|
|
12691
|
+
if (index === -1) return state;
|
|
12692
|
+
return {
|
|
12693
|
+
breadcrumbs: {
|
|
12694
|
+
...state.breadcrumbs,
|
|
12695
|
+
[namespace]: current.slice(0, index)
|
|
12696
|
+
}
|
|
12697
|
+
};
|
|
12698
|
+
});
|
|
12699
|
+
},
|
|
12700
|
+
sliceBreadcrumbs: (namespace, index) => {
|
|
12701
|
+
set((state) => {
|
|
12702
|
+
const current = state.breadcrumbs[namespace] || [];
|
|
12703
|
+
return {
|
|
12704
|
+
breadcrumbs: {
|
|
12705
|
+
...state.breadcrumbs,
|
|
12706
|
+
[namespace]: current.slice(0, index + 1)
|
|
12707
|
+
}
|
|
12708
|
+
};
|
|
12709
|
+
});
|
|
12710
|
+
},
|
|
12711
|
+
clearBreadcrumbs: (namespace) => {
|
|
12712
|
+
set((state) => {
|
|
12713
|
+
const { [namespace]: _, ...rest } = state.breadcrumbs;
|
|
12714
|
+
return {
|
|
12715
|
+
breadcrumbs: rest
|
|
12716
|
+
};
|
|
12717
|
+
});
|
|
12718
|
+
},
|
|
12719
|
+
getBreadcrumbs: (namespace) => {
|
|
12720
|
+
return get().breadcrumbs[namespace] || [];
|
|
12721
|
+
}
|
|
12722
|
+
}));
|
|
12723
|
+
var useBreadcrumb = (namespace) => {
|
|
12724
|
+
const store = useBreadcrumbStore();
|
|
12725
|
+
const breadcrumbs = store.breadcrumbs[namespace] || [];
|
|
12726
|
+
return {
|
|
12727
|
+
breadcrumbs,
|
|
12728
|
+
/**
|
|
12729
|
+
* Define todos os breadcrumbs de uma vez
|
|
12730
|
+
*/
|
|
12731
|
+
setBreadcrumbs: (items) => {
|
|
12732
|
+
store.setBreadcrumbs(namespace, items);
|
|
12733
|
+
},
|
|
12734
|
+
/**
|
|
12735
|
+
* Adiciona um novo breadcrumb ao final
|
|
12736
|
+
*/
|
|
12737
|
+
addBreadcrumb: (item) => {
|
|
12738
|
+
store.addBreadcrumb(namespace, item);
|
|
12739
|
+
},
|
|
12740
|
+
/**
|
|
12741
|
+
* Atualiza um breadcrumb existente
|
|
12742
|
+
*/
|
|
12743
|
+
updateBreadcrumb: (itemId, updates) => {
|
|
12744
|
+
store.updateBreadcrumb(namespace, itemId, updates);
|
|
12745
|
+
},
|
|
12746
|
+
/**
|
|
12747
|
+
* Remove um breadcrumb e todos os seguintes
|
|
12748
|
+
*/
|
|
12749
|
+
removeBreadcrumbFrom: (itemId) => {
|
|
12750
|
+
store.removeBreadcrumbFrom(namespace, itemId);
|
|
12751
|
+
},
|
|
12752
|
+
/**
|
|
12753
|
+
* Mantém apenas os breadcrumbs até o índice especificado (inclusivo)
|
|
12754
|
+
*/
|
|
12755
|
+
sliceBreadcrumbs: (index) => {
|
|
12756
|
+
store.sliceBreadcrumbs(namespace, index);
|
|
12757
|
+
},
|
|
12758
|
+
/**
|
|
12759
|
+
* Limpa todos os breadcrumbs
|
|
12760
|
+
*/
|
|
12761
|
+
clearBreadcrumbs: () => {
|
|
12762
|
+
store.clearBreadcrumbs(namespace);
|
|
12763
|
+
}
|
|
12764
|
+
};
|
|
12765
|
+
};
|
|
12766
|
+
|
|
12767
|
+
// src/components/BreadcrumbMenu/useBreadcrumbBuilder.ts
|
|
12768
|
+
var isBreadcrumbWithData = (level) => {
|
|
12769
|
+
return "data" in level;
|
|
12770
|
+
};
|
|
12771
|
+
var useBreadcrumbBuilder = (config) => {
|
|
12772
|
+
const { namespace, root, levels } = config;
|
|
12773
|
+
const { breadcrumbs, setBreadcrumbs, sliceBreadcrumbs } = useBreadcrumb(namespace);
|
|
12774
|
+
const levelDependencies = levels.map(
|
|
12775
|
+
(level) => isBreadcrumbWithData(level) ? level.data : null
|
|
12776
|
+
);
|
|
12777
|
+
const levelUrlIds = levels.map((level) => level.urlId);
|
|
12778
|
+
useEffect22(() => {
|
|
12779
|
+
const newBreadcrumbs = [root];
|
|
12780
|
+
const previousIds = [];
|
|
12781
|
+
for (const level of levels) {
|
|
12782
|
+
const { urlId } = level;
|
|
12783
|
+
if (isBreadcrumbWithData(level)) {
|
|
12784
|
+
const { data, getId, getName, getUrl } = level;
|
|
12785
|
+
if (!data) break;
|
|
12786
|
+
const dataId = getId(data);
|
|
12787
|
+
if (urlId === void 0 || dataId !== urlId) break;
|
|
12788
|
+
newBreadcrumbs.push({
|
|
12789
|
+
id: dataId,
|
|
12790
|
+
name: getName(data),
|
|
12791
|
+
url: getUrl(data, previousIds)
|
|
12792
|
+
});
|
|
12793
|
+
previousIds.push(dataId);
|
|
12794
|
+
} else {
|
|
12795
|
+
const { breadcrumb } = level;
|
|
12796
|
+
if (urlId === void 0) break;
|
|
12797
|
+
newBreadcrumbs.push(breadcrumb);
|
|
12798
|
+
previousIds.push(breadcrumb.id);
|
|
12799
|
+
}
|
|
12800
|
+
}
|
|
12801
|
+
setBreadcrumbs(newBreadcrumbs);
|
|
12802
|
+
}, [namespace, ...levelDependencies, ...levelUrlIds, root.id]);
|
|
12803
|
+
return {
|
|
12804
|
+
breadcrumbs,
|
|
12805
|
+
sliceBreadcrumbs
|
|
12806
|
+
};
|
|
12807
|
+
};
|
|
12808
|
+
|
|
12809
|
+
// src/components/BreadcrumbMenu/useUrlParams.ts
|
|
12490
12810
|
import { useMemo as useMemo7 } from "react";
|
|
12811
|
+
import { useLocation as useLocation3 } from "react-router-dom";
|
|
12812
|
+
var useUrlParams = (config) => {
|
|
12813
|
+
const location = useLocation3();
|
|
12814
|
+
return useMemo7(() => {
|
|
12815
|
+
const segments = location.pathname.split("/").filter(Boolean);
|
|
12816
|
+
const params = {};
|
|
12817
|
+
for (const [key, index] of Object.entries(config)) {
|
|
12818
|
+
params[key] = segments[index];
|
|
12819
|
+
}
|
|
12820
|
+
return params;
|
|
12821
|
+
}, [location.pathname, config]);
|
|
12822
|
+
};
|
|
12823
|
+
|
|
12824
|
+
// src/hooks/useAppInitialization.ts
|
|
12825
|
+
import { useMemo as useMemo8 } from "react";
|
|
12491
12826
|
|
|
12492
12827
|
// src/hooks/useInstitution.ts
|
|
12493
|
-
import { useEffect as
|
|
12828
|
+
import { useEffect as useEffect23, useState as useState23 } from "react";
|
|
12494
12829
|
function useInstitutionId() {
|
|
12495
12830
|
const [institutionId, setInstitutionId] = useState23(() => {
|
|
12496
12831
|
return document.querySelector('meta[name="institution-id"]')?.getAttribute("content") ?? null;
|
|
12497
12832
|
});
|
|
12498
|
-
|
|
12833
|
+
useEffect23(() => {
|
|
12499
12834
|
const metaTag = document.querySelector('meta[name="institution-id"]');
|
|
12500
12835
|
if (!metaTag) return;
|
|
12501
12836
|
const observer = new MutationObserver(() => {
|
|
@@ -12512,9 +12847,9 @@ function useInstitutionId() {
|
|
|
12512
12847
|
}
|
|
12513
12848
|
|
|
12514
12849
|
// src/store/appStore.ts
|
|
12515
|
-
import { create as
|
|
12850
|
+
import { create as create11 } from "zustand";
|
|
12516
12851
|
import { createJSONStorage, persist as persist2 } from "zustand/middleware";
|
|
12517
|
-
var useAppStore =
|
|
12852
|
+
var useAppStore = create11()(
|
|
12518
12853
|
persist2(
|
|
12519
12854
|
(set, get) => ({
|
|
12520
12855
|
institutionId: null,
|
|
@@ -12558,9 +12893,9 @@ var useAppStore = create10()(
|
|
|
12558
12893
|
);
|
|
12559
12894
|
|
|
12560
12895
|
// src/store/authStore.ts
|
|
12561
|
-
import { create as
|
|
12896
|
+
import { create as create12 } from "zustand";
|
|
12562
12897
|
import { createJSONStorage as createJSONStorage2, persist as persist3 } from "zustand/middleware";
|
|
12563
|
-
var useAuthStore =
|
|
12898
|
+
var useAuthStore = create12()(
|
|
12564
12899
|
persist3(
|
|
12565
12900
|
(set, get) => ({
|
|
12566
12901
|
user: null,
|
|
@@ -12662,7 +12997,7 @@ var useAuthStore = create11()(
|
|
|
12662
12997
|
function useAppInitialization() {
|
|
12663
12998
|
const getInstitutionId = useInstitutionId();
|
|
12664
12999
|
const { initialize, initialized, institutionId } = useAppStore();
|
|
12665
|
-
const authFunctions =
|
|
13000
|
+
const authFunctions = useMemo8(
|
|
12666
13001
|
() => ({
|
|
12667
13002
|
checkAuth: async () => {
|
|
12668
13003
|
const { sessionInfo, tokens } = useAuthStore.getState();
|
|
@@ -12699,10 +13034,10 @@ function useAppInitialization() {
|
|
|
12699
13034
|
}
|
|
12700
13035
|
|
|
12701
13036
|
// src/hooks/useAppContent.ts
|
|
12702
|
-
import { useCallback as useCallback7, useEffect as
|
|
12703
|
-
import { useNavigate } from "react-router-dom";
|
|
13037
|
+
import { useCallback as useCallback7, useEffect as useEffect24, useMemo as useMemo9 } from "react";
|
|
13038
|
+
import { useNavigate as useNavigate2 } from "react-router-dom";
|
|
12704
13039
|
function useAppContent(config) {
|
|
12705
|
-
const navigate =
|
|
13040
|
+
const navigate = useNavigate2();
|
|
12706
13041
|
const { setTokens, setSessionInfo, setSelectedProfile } = useAuthStore();
|
|
12707
13042
|
const {
|
|
12708
13043
|
api,
|
|
@@ -12749,7 +13084,7 @@ function useAppContent(config) {
|
|
|
12749
13084
|
},
|
|
12750
13085
|
[navigate, onError]
|
|
12751
13086
|
);
|
|
12752
|
-
const urlAuthConfig =
|
|
13087
|
+
const urlAuthConfig = useMemo9(
|
|
12753
13088
|
() => ({
|
|
12754
13089
|
setTokens,
|
|
12755
13090
|
setSessionInfo,
|
|
@@ -12775,10 +13110,10 @@ function useAppContent(config) {
|
|
|
12775
13110
|
);
|
|
12776
13111
|
useUrlAuthentication(urlAuthConfig);
|
|
12777
13112
|
const { sessionInfo } = useAuth();
|
|
12778
|
-
const institutionIdToUse =
|
|
13113
|
+
const institutionIdToUse = useMemo9(() => {
|
|
12779
13114
|
return sessionInfo?.institutionId || getInstitutionId;
|
|
12780
13115
|
}, [sessionInfo?.institutionId, getInstitutionId]);
|
|
12781
|
-
|
|
13116
|
+
useEffect24(() => {
|
|
12782
13117
|
if (institutionIdToUse && !initialized) {
|
|
12783
13118
|
initialize(institutionIdToUse);
|
|
12784
13119
|
}
|
|
@@ -12796,6 +13131,7 @@ export {
|
|
|
12796
13131
|
AlternativesList,
|
|
12797
13132
|
AuthProvider,
|
|
12798
13133
|
Badge_default as Badge,
|
|
13134
|
+
BreadcrumbMenu,
|
|
12799
13135
|
Button_default as Button,
|
|
12800
13136
|
Calendar_default as Calendar,
|
|
12801
13137
|
CardAccordation,
|
|
@@ -12887,6 +13223,7 @@ export {
|
|
|
12887
13223
|
SkeletonRounded,
|
|
12888
13224
|
SkeletonTable,
|
|
12889
13225
|
SkeletonText,
|
|
13226
|
+
StatisticsCard,
|
|
12890
13227
|
Stepper_default as Stepper,
|
|
12891
13228
|
SubjectEnum,
|
|
12892
13229
|
SubjectInfo,
|
|
@@ -12921,6 +13258,8 @@ export {
|
|
|
12921
13258
|
useAuth,
|
|
12922
13259
|
useAuthGuard,
|
|
12923
13260
|
useAuthStore,
|
|
13261
|
+
useBreadcrumb,
|
|
13262
|
+
useBreadcrumbBuilder,
|
|
12924
13263
|
useInstitutionId,
|
|
12925
13264
|
useMobile,
|
|
12926
13265
|
useQuizStore,
|
|
@@ -12929,6 +13268,7 @@ export {
|
|
|
12929
13268
|
useThemeStore,
|
|
12930
13269
|
ToastStore_default as useToastStore,
|
|
12931
13270
|
useUrlAuthentication,
|
|
13271
|
+
useUrlParams,
|
|
12932
13272
|
withAuth
|
|
12933
13273
|
};
|
|
12934
13274
|
//# sourceMappingURL=index.mjs.map
|