analytica-frontend-lib 1.1.49 → 1.1.51
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/ThemeToggle/index.d.mts +51 -0
- package/dist/ThemeToggle/index.d.ts +51 -0
- package/dist/ThemeToggle/index.js +236 -0
- package/dist/ThemeToggle/index.js.map +1 -0
- package/dist/ThemeToggle/index.mjs +211 -0
- package/dist/ThemeToggle/index.mjs.map +1 -0
- package/dist/VideoPlayer/index.js +57 -22
- package/dist/VideoPlayer/index.js.map +1 -1
- package/dist/VideoPlayer/index.mjs +57 -22
- package/dist/VideoPlayer/index.mjs.map +1 -1
- package/dist/hooks/useTheme/index.d.mts +9 -4
- package/dist/hooks/useTheme/index.d.ts +9 -4
- package/dist/hooks/useTheme/index.js +73 -11
- package/dist/hooks/useTheme/index.js.map +1 -1
- package/dist/hooks/useTheme/index.mjs +74 -12
- package/dist/hooks/useTheme/index.mjs.map +1 -1
- package/dist/index.css +42 -0
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +751 -539
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +720 -509
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +42 -0
- package/dist/styles.css.map +1 -1
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -5987,42 +5987,217 @@ var useMobile = () => {
|
|
|
5987
5987
|
};
|
|
5988
5988
|
|
|
5989
5989
|
// src/hooks/useTheme.ts
|
|
5990
|
-
import { useEffect as useEffect10 } from "react";
|
|
5990
|
+
import { useEffect as useEffect10, useState as useState13, useCallback, useRef as useRef7 } from "react";
|
|
5991
5991
|
var useTheme = () => {
|
|
5992
|
-
|
|
5992
|
+
const [themeMode, setThemeMode] = useState13("system");
|
|
5993
|
+
const [isDark, setIsDark] = useState13(false);
|
|
5994
|
+
const themeModeRef = useRef7("system");
|
|
5995
|
+
const applyTheme = useCallback((mode) => {
|
|
5993
5996
|
const htmlElement = document.documentElement;
|
|
5994
|
-
const
|
|
5995
|
-
if (
|
|
5996
|
-
htmlElement.setAttribute("data-
|
|
5997
|
-
|
|
5998
|
-
|
|
5999
|
-
|
|
5997
|
+
const originalTheme = htmlElement.getAttribute("data-original-theme");
|
|
5998
|
+
if (mode === "dark") {
|
|
5999
|
+
htmlElement.setAttribute("data-theme", "dark");
|
|
6000
|
+
setIsDark(true);
|
|
6001
|
+
} else if (mode === "light") {
|
|
6002
|
+
if (originalTheme) {
|
|
6003
|
+
htmlElement.setAttribute("data-theme", originalTheme);
|
|
6004
|
+
}
|
|
6005
|
+
setIsDark(false);
|
|
6006
|
+
} else if (mode === "system") {
|
|
6007
|
+
const isSystemDark = window.matchMedia(
|
|
6000
6008
|
"(prefers-color-scheme: dark)"
|
|
6001
6009
|
).matches;
|
|
6002
|
-
|
|
6003
|
-
if (isDarkMode) {
|
|
6010
|
+
if (isSystemDark) {
|
|
6004
6011
|
htmlElement.setAttribute("data-theme", "dark");
|
|
6012
|
+
setIsDark(true);
|
|
6005
6013
|
} else if (originalTheme) {
|
|
6006
6014
|
htmlElement.setAttribute("data-theme", originalTheme);
|
|
6015
|
+
setIsDark(false);
|
|
6007
6016
|
}
|
|
6008
|
-
}
|
|
6009
|
-
applyTheme();
|
|
6017
|
+
}
|
|
6010
6018
|
}, []);
|
|
6019
|
+
const toggleTheme = useCallback(() => {
|
|
6020
|
+
let newMode;
|
|
6021
|
+
if (themeMode === "light") {
|
|
6022
|
+
newMode = "dark";
|
|
6023
|
+
} else if (themeMode === "dark") {
|
|
6024
|
+
newMode = "light";
|
|
6025
|
+
} else {
|
|
6026
|
+
newMode = "dark";
|
|
6027
|
+
}
|
|
6028
|
+
setThemeMode(newMode);
|
|
6029
|
+
themeModeRef.current = newMode;
|
|
6030
|
+
applyTheme(newMode);
|
|
6031
|
+
localStorage.setItem("theme-mode", newMode);
|
|
6032
|
+
}, [themeMode, applyTheme]);
|
|
6033
|
+
const setTheme = useCallback(
|
|
6034
|
+
(mode) => {
|
|
6035
|
+
setThemeMode(mode);
|
|
6036
|
+
themeModeRef.current = mode;
|
|
6037
|
+
applyTheme(mode);
|
|
6038
|
+
localStorage.setItem("theme-mode", mode);
|
|
6039
|
+
},
|
|
6040
|
+
[applyTheme]
|
|
6041
|
+
);
|
|
6042
|
+
useEffect10(() => {
|
|
6043
|
+
const htmlElement = document.documentElement;
|
|
6044
|
+
const currentTheme = htmlElement.getAttribute("data-theme");
|
|
6045
|
+
if (currentTheme && !htmlElement.getAttribute("data-original-theme")) {
|
|
6046
|
+
htmlElement.setAttribute("data-original-theme", currentTheme);
|
|
6047
|
+
}
|
|
6048
|
+
const savedThemeMode = localStorage.getItem("theme-mode");
|
|
6049
|
+
const initialMode = savedThemeMode || "system";
|
|
6050
|
+
if (!savedThemeMode) {
|
|
6051
|
+
localStorage.setItem("theme-mode", "system");
|
|
6052
|
+
}
|
|
6053
|
+
setThemeMode(initialMode);
|
|
6054
|
+
themeModeRef.current = initialMode;
|
|
6055
|
+
applyTheme(initialMode);
|
|
6056
|
+
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
6057
|
+
const handleSystemThemeChange = () => {
|
|
6058
|
+
if (themeModeRef.current === "system") {
|
|
6059
|
+
applyTheme("system");
|
|
6060
|
+
}
|
|
6061
|
+
};
|
|
6062
|
+
mediaQuery.addEventListener("change", handleSystemThemeChange);
|
|
6063
|
+
return () => {
|
|
6064
|
+
mediaQuery.removeEventListener("change", handleSystemThemeChange);
|
|
6065
|
+
};
|
|
6066
|
+
}, [applyTheme]);
|
|
6067
|
+
return {
|
|
6068
|
+
themeMode,
|
|
6069
|
+
isDark,
|
|
6070
|
+
toggleTheme,
|
|
6071
|
+
setTheme
|
|
6072
|
+
};
|
|
6011
6073
|
};
|
|
6012
6074
|
|
|
6075
|
+
// src/components/ThemeToggle/ThemeToggle.tsx
|
|
6076
|
+
import { forwardRef as forwardRef16 } from "react";
|
|
6077
|
+
import { Fragment as Fragment6, jsx as jsx32, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
6078
|
+
var ThemeToggle = forwardRef16(
|
|
6079
|
+
({
|
|
6080
|
+
variant = "simple",
|
|
6081
|
+
size = "md",
|
|
6082
|
+
showIcons = true,
|
|
6083
|
+
showLabels = true,
|
|
6084
|
+
className,
|
|
6085
|
+
children,
|
|
6086
|
+
...props
|
|
6087
|
+
}, ref) => {
|
|
6088
|
+
const { themeMode, isDark, toggleTheme, setTheme } = useTheme();
|
|
6089
|
+
const sizeClasses = {
|
|
6090
|
+
sm: "text-sm px-3 py-1.5",
|
|
6091
|
+
md: "text-md px-4 py-2",
|
|
6092
|
+
lg: "text-lg px-5 py-2.5"
|
|
6093
|
+
};
|
|
6094
|
+
const activeClasses = "bg-primary-500 text-white";
|
|
6095
|
+
const inactiveClasses = "bg-gray-200 dark:bg-gray-700 text-gray-700 dark:text-gray-300 hover:bg-gray-300 dark:hover:bg-gray-600";
|
|
6096
|
+
const baseButtonClasses = "inline-flex items-center justify-center gap-2 rounded-md border border-gray-300 dark:border-gray-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500";
|
|
6097
|
+
const smallButtonClasses = "px-3 py-1.5 rounded-md text-sm transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500";
|
|
6098
|
+
const renderThemeButton = (theme, icon, label, isActive, buttonSize) => {
|
|
6099
|
+
const buttonClasses = buttonSize ? cn(baseButtonClasses, sizeClasses[buttonSize]) : smallButtonClasses;
|
|
6100
|
+
const stateClasses = isActive ? activeClasses : inactiveClasses;
|
|
6101
|
+
return /* @__PURE__ */ jsxs26(
|
|
6102
|
+
"button",
|
|
6103
|
+
{
|
|
6104
|
+
type: "button",
|
|
6105
|
+
onClick: () => setTheme(theme),
|
|
6106
|
+
className: cn(buttonClasses, stateClasses),
|
|
6107
|
+
...buttonSize ? props : {},
|
|
6108
|
+
children: [
|
|
6109
|
+
showIcons && icon,
|
|
6110
|
+
showLabels && label
|
|
6111
|
+
]
|
|
6112
|
+
}
|
|
6113
|
+
);
|
|
6114
|
+
};
|
|
6115
|
+
if (variant === "simple") {
|
|
6116
|
+
return /* @__PURE__ */ jsx32(
|
|
6117
|
+
"button",
|
|
6118
|
+
{
|
|
6119
|
+
type: "button",
|
|
6120
|
+
ref,
|
|
6121
|
+
onClick: toggleTheme,
|
|
6122
|
+
className: cn(
|
|
6123
|
+
"inline-flex items-center justify-center gap-2 rounded-md border border-gray-300 dark:border-gray-600 transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
|
|
6124
|
+
sizeClasses[size],
|
|
6125
|
+
className
|
|
6126
|
+
),
|
|
6127
|
+
...props,
|
|
6128
|
+
children: children || /* @__PURE__ */ jsxs26(Fragment6, { children: [
|
|
6129
|
+
showIcons && (isDark ? "\u2600\uFE0F" : "\u{1F319}"),
|
|
6130
|
+
showLabels && (isDark ? "Claro" : "Escuro")
|
|
6131
|
+
] })
|
|
6132
|
+
}
|
|
6133
|
+
);
|
|
6134
|
+
}
|
|
6135
|
+
if (variant === "detailed") {
|
|
6136
|
+
const getLabel = () => {
|
|
6137
|
+
if (themeMode === "system") return "Sistema";
|
|
6138
|
+
if (isDark) return "Escuro";
|
|
6139
|
+
return "Claro";
|
|
6140
|
+
};
|
|
6141
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("flex flex-col gap-2", className), children: [
|
|
6142
|
+
/* @__PURE__ */ jsxs26("div", { className: "text-sm font-medium text-gray-700 dark:text-gray-300", children: [
|
|
6143
|
+
"Tema: ",
|
|
6144
|
+
getLabel()
|
|
6145
|
+
] }),
|
|
6146
|
+
/* @__PURE__ */ jsxs26("div", { className: "flex gap-1", children: [
|
|
6147
|
+
renderThemeButton("light", "\u2600\uFE0F ", "Claro", themeMode === "light"),
|
|
6148
|
+
renderThemeButton("dark", "\u{1F319} ", "Escuro", themeMode === "dark"),
|
|
6149
|
+
renderThemeButton(
|
|
6150
|
+
"system",
|
|
6151
|
+
"\u2699\uFE0F ",
|
|
6152
|
+
"Sistema",
|
|
6153
|
+
themeMode === "system"
|
|
6154
|
+
)
|
|
6155
|
+
] })
|
|
6156
|
+
] });
|
|
6157
|
+
}
|
|
6158
|
+
if (variant === "buttons") {
|
|
6159
|
+
return /* @__PURE__ */ jsxs26("div", { className: cn("flex gap-2", className), children: [
|
|
6160
|
+
renderThemeButton(
|
|
6161
|
+
"light",
|
|
6162
|
+
"\u2600\uFE0F",
|
|
6163
|
+
"Claro",
|
|
6164
|
+
themeMode === "light",
|
|
6165
|
+
size
|
|
6166
|
+
),
|
|
6167
|
+
renderThemeButton(
|
|
6168
|
+
"dark",
|
|
6169
|
+
"\u{1F319}",
|
|
6170
|
+
"Escuro",
|
|
6171
|
+
themeMode === "dark",
|
|
6172
|
+
size
|
|
6173
|
+
),
|
|
6174
|
+
renderThemeButton(
|
|
6175
|
+
"system",
|
|
6176
|
+
"\u2699\uFE0F",
|
|
6177
|
+
"Sistema",
|
|
6178
|
+
themeMode === "system",
|
|
6179
|
+
size
|
|
6180
|
+
)
|
|
6181
|
+
] });
|
|
6182
|
+
}
|
|
6183
|
+
return null;
|
|
6184
|
+
}
|
|
6185
|
+
);
|
|
6186
|
+
ThemeToggle.displayName = "ThemeToggle";
|
|
6187
|
+
|
|
6013
6188
|
// src/components/Select/Select.tsx
|
|
6014
6189
|
import { create as create5, useStore as useStore4 } from "zustand";
|
|
6015
6190
|
import {
|
|
6016
6191
|
useEffect as useEffect11,
|
|
6017
|
-
useRef as
|
|
6018
|
-
forwardRef as
|
|
6192
|
+
useRef as useRef8,
|
|
6193
|
+
forwardRef as forwardRef17,
|
|
6019
6194
|
isValidElement as isValidElement4,
|
|
6020
6195
|
Children as Children4,
|
|
6021
6196
|
cloneElement as cloneElement4,
|
|
6022
6197
|
useId as useId9
|
|
6023
6198
|
} from "react";
|
|
6024
6199
|
import { CaretDown, Check as Check5, WarningCircle as WarningCircle5 } from "phosphor-react";
|
|
6025
|
-
import { Fragment as
|
|
6200
|
+
import { Fragment as Fragment7, jsx as jsx33, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
6026
6201
|
var VARIANT_CLASSES4 = {
|
|
6027
6202
|
outlined: "border-2 rounded-lg focus:border-primary-950",
|
|
6028
6203
|
underlined: "border-b-2 focus:border-primary-950",
|
|
@@ -6082,7 +6257,7 @@ function getLabelAsNode(children) {
|
|
|
6082
6257
|
}
|
|
6083
6258
|
const flattened = Children4.toArray(children);
|
|
6084
6259
|
if (flattened.length === 1) return flattened[0];
|
|
6085
|
-
return /* @__PURE__ */
|
|
6260
|
+
return /* @__PURE__ */ jsx33(Fragment7, { children: flattened });
|
|
6086
6261
|
}
|
|
6087
6262
|
var injectStore4 = (children, store, size, selectId) => {
|
|
6088
6263
|
return Children4.map(children, (child) => {
|
|
@@ -6120,10 +6295,10 @@ var Select = ({
|
|
|
6120
6295
|
errorMessage,
|
|
6121
6296
|
id
|
|
6122
6297
|
}) => {
|
|
6123
|
-
const storeRef =
|
|
6298
|
+
const storeRef = useRef8(null);
|
|
6124
6299
|
storeRef.current ??= createSelectStore(onValueChange);
|
|
6125
6300
|
const store = storeRef.current;
|
|
6126
|
-
const selectRef =
|
|
6301
|
+
const selectRef = useRef8(null);
|
|
6127
6302
|
const { open, setOpen, setValue, selectedLabel } = useStore4(store, (s) => s);
|
|
6128
6303
|
const generatedId = useId9();
|
|
6129
6304
|
const selectId = id ?? `select-${generatedId}`;
|
|
@@ -6193,8 +6368,8 @@ var Select = ({
|
|
|
6193
6368
|
}
|
|
6194
6369
|
}, [propValue]);
|
|
6195
6370
|
const sizeClasses = SIZE_CLASSES12[size];
|
|
6196
|
-
return /* @__PURE__ */
|
|
6197
|
-
label && /* @__PURE__ */
|
|
6371
|
+
return /* @__PURE__ */ jsxs27("div", { className: cn("w-full", className), children: [
|
|
6372
|
+
label && /* @__PURE__ */ jsx33(
|
|
6198
6373
|
"label",
|
|
6199
6374
|
{
|
|
6200
6375
|
htmlFor: selectId,
|
|
@@ -6202,11 +6377,11 @@ var Select = ({
|
|
|
6202
6377
|
children: label
|
|
6203
6378
|
}
|
|
6204
6379
|
),
|
|
6205
|
-
/* @__PURE__ */
|
|
6206
|
-
(helperText || errorMessage) && /* @__PURE__ */
|
|
6207
|
-
helperText && /* @__PURE__ */
|
|
6208
|
-
errorMessage && /* @__PURE__ */
|
|
6209
|
-
/* @__PURE__ */
|
|
6380
|
+
/* @__PURE__ */ jsx33("div", { className: cn("relative w-full"), ref: selectRef, children: injectStore4(children, store, size, selectId) }),
|
|
6381
|
+
(helperText || errorMessage) && /* @__PURE__ */ jsxs27("div", { className: "mt-1.5 gap-1.5", children: [
|
|
6382
|
+
helperText && /* @__PURE__ */ jsx33("p", { className: "text-sm text-text-500", children: helperText }),
|
|
6383
|
+
errorMessage && /* @__PURE__ */ jsxs27("p", { className: "flex gap-1 items-center text-sm text-indicator-error", children: [
|
|
6384
|
+
/* @__PURE__ */ jsx33(WarningCircle5, { size: 16 }),
|
|
6210
6385
|
" ",
|
|
6211
6386
|
errorMessage
|
|
6212
6387
|
] })
|
|
@@ -6220,9 +6395,9 @@ var SelectValue = ({
|
|
|
6220
6395
|
const store = useSelectStore(externalStore);
|
|
6221
6396
|
const selectedLabel = useStore4(store, (s) => s.selectedLabel);
|
|
6222
6397
|
const value = useStore4(store, (s) => s.value);
|
|
6223
|
-
return /* @__PURE__ */
|
|
6398
|
+
return /* @__PURE__ */ jsx33("span", { className: "text-inherit flex gap-2 items-center", children: selectedLabel || placeholder || value });
|
|
6224
6399
|
};
|
|
6225
|
-
var SelectTrigger =
|
|
6400
|
+
var SelectTrigger = forwardRef17(
|
|
6226
6401
|
({
|
|
6227
6402
|
className,
|
|
6228
6403
|
invalid = false,
|
|
@@ -6239,7 +6414,7 @@ var SelectTrigger = forwardRef16(
|
|
|
6239
6414
|
const variantClasses = VARIANT_CLASSES4[variant];
|
|
6240
6415
|
const heightClasses = HEIGHT_CLASSES[size];
|
|
6241
6416
|
const paddingClasses = PADDING_CLASSES[size];
|
|
6242
|
-
return /* @__PURE__ */
|
|
6417
|
+
return /* @__PURE__ */ jsxs27(
|
|
6243
6418
|
"button",
|
|
6244
6419
|
{
|
|
6245
6420
|
ref,
|
|
@@ -6261,7 +6436,7 @@ var SelectTrigger = forwardRef16(
|
|
|
6261
6436
|
...props,
|
|
6262
6437
|
children: [
|
|
6263
6438
|
props.children,
|
|
6264
|
-
/* @__PURE__ */
|
|
6439
|
+
/* @__PURE__ */ jsx33(
|
|
6265
6440
|
CaretDown,
|
|
6266
6441
|
{
|
|
6267
6442
|
className: cn(
|
|
@@ -6276,7 +6451,7 @@ var SelectTrigger = forwardRef16(
|
|
|
6276
6451
|
}
|
|
6277
6452
|
);
|
|
6278
6453
|
SelectTrigger.displayName = "SelectTrigger";
|
|
6279
|
-
var SelectContent =
|
|
6454
|
+
var SelectContent = forwardRef17(
|
|
6280
6455
|
({
|
|
6281
6456
|
children,
|
|
6282
6457
|
className,
|
|
@@ -6289,7 +6464,7 @@ var SelectContent = forwardRef16(
|
|
|
6289
6464
|
const open = useStore4(store, (s) => s.open);
|
|
6290
6465
|
if (!open) return null;
|
|
6291
6466
|
const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
|
|
6292
|
-
return /* @__PURE__ */
|
|
6467
|
+
return /* @__PURE__ */ jsx33(
|
|
6293
6468
|
"div",
|
|
6294
6469
|
{
|
|
6295
6470
|
role: "menu",
|
|
@@ -6306,7 +6481,7 @@ var SelectContent = forwardRef16(
|
|
|
6306
6481
|
}
|
|
6307
6482
|
);
|
|
6308
6483
|
SelectContent.displayName = "SelectContent";
|
|
6309
|
-
var SelectItem =
|
|
6484
|
+
var SelectItem = forwardRef17(
|
|
6310
6485
|
({
|
|
6311
6486
|
className,
|
|
6312
6487
|
children,
|
|
@@ -6333,7 +6508,7 @@ var SelectItem = forwardRef16(
|
|
|
6333
6508
|
}
|
|
6334
6509
|
props.onClick?.(e);
|
|
6335
6510
|
};
|
|
6336
|
-
return /* @__PURE__ */
|
|
6511
|
+
return /* @__PURE__ */ jsxs27(
|
|
6337
6512
|
"div",
|
|
6338
6513
|
{
|
|
6339
6514
|
role: "menuitem",
|
|
@@ -6353,7 +6528,7 @@ var SelectItem = forwardRef16(
|
|
|
6353
6528
|
tabIndex: disabled ? -1 : 0,
|
|
6354
6529
|
...props,
|
|
6355
6530
|
children: [
|
|
6356
|
-
/* @__PURE__ */
|
|
6531
|
+
/* @__PURE__ */ jsx33("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx33(Check5, { className: "" }) }),
|
|
6357
6532
|
children
|
|
6358
6533
|
]
|
|
6359
6534
|
}
|
|
@@ -6367,15 +6542,15 @@ var Select_default = Select;
|
|
|
6367
6542
|
import { create as create6, useStore as useStore5 } from "zustand";
|
|
6368
6543
|
import {
|
|
6369
6544
|
useEffect as useEffect12,
|
|
6370
|
-
useRef as
|
|
6371
|
-
forwardRef as
|
|
6545
|
+
useRef as useRef9,
|
|
6546
|
+
forwardRef as forwardRef18,
|
|
6372
6547
|
isValidElement as isValidElement5,
|
|
6373
6548
|
Children as Children5,
|
|
6374
6549
|
cloneElement as cloneElement5,
|
|
6375
|
-
useState as
|
|
6550
|
+
useState as useState14
|
|
6376
6551
|
} from "react";
|
|
6377
6552
|
import { CaretLeft as CaretLeft2, CaretRight as CaretRight3 } from "phosphor-react";
|
|
6378
|
-
import { jsx as
|
|
6553
|
+
import { jsx as jsx34, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
6379
6554
|
var createMenuStore = (onValueChange) => create6((set) => ({
|
|
6380
6555
|
value: "",
|
|
6381
6556
|
setValue: (value) => {
|
|
@@ -6394,7 +6569,7 @@ var VARIANT_CLASSES5 = {
|
|
|
6394
6569
|
"menu-overflow": "",
|
|
6395
6570
|
breadcrumb: "bg-transparent shadow-none !px-0"
|
|
6396
6571
|
};
|
|
6397
|
-
var Menu =
|
|
6572
|
+
var Menu = forwardRef18(
|
|
6398
6573
|
({
|
|
6399
6574
|
className,
|
|
6400
6575
|
children,
|
|
@@ -6404,7 +6579,7 @@ var Menu = forwardRef17(
|
|
|
6404
6579
|
onValueChange,
|
|
6405
6580
|
...props
|
|
6406
6581
|
}, ref) => {
|
|
6407
|
-
const storeRef =
|
|
6582
|
+
const storeRef = useRef9(null);
|
|
6408
6583
|
storeRef.current ??= createMenuStore(onValueChange);
|
|
6409
6584
|
const store = storeRef.current;
|
|
6410
6585
|
const { setValue } = useStore5(store, (s) => s);
|
|
@@ -6413,7 +6588,7 @@ var Menu = forwardRef17(
|
|
|
6413
6588
|
}, [defaultValue, propValue, setValue]);
|
|
6414
6589
|
const baseClasses = variant === "menu-overflow" ? "w-fit py-2 flex flex-row items-center justify-center" : "w-full py-2 flex flex-row items-center justify-center";
|
|
6415
6590
|
const variantClasses = VARIANT_CLASSES5[variant];
|
|
6416
|
-
return /* @__PURE__ */
|
|
6591
|
+
return /* @__PURE__ */ jsx34(
|
|
6417
6592
|
"div",
|
|
6418
6593
|
{
|
|
6419
6594
|
ref,
|
|
@@ -6429,11 +6604,11 @@ var Menu = forwardRef17(
|
|
|
6429
6604
|
}
|
|
6430
6605
|
);
|
|
6431
6606
|
Menu.displayName = "Menu";
|
|
6432
|
-
var MenuContent =
|
|
6607
|
+
var MenuContent = forwardRef18(
|
|
6433
6608
|
({ className, children, variant = "menu", ...props }, ref) => {
|
|
6434
6609
|
const baseClasses = "w-full flex flex-row items-center gap-2";
|
|
6435
6610
|
const variantClasses = variant === "menu2" || variant === "menu-overflow" ? "overflow-x-auto scroll-smooth" : "";
|
|
6436
|
-
return /* @__PURE__ */
|
|
6611
|
+
return /* @__PURE__ */ jsx34(
|
|
6437
6612
|
"ul",
|
|
6438
6613
|
{
|
|
6439
6614
|
ref,
|
|
@@ -6451,7 +6626,7 @@ var MenuContent = forwardRef17(
|
|
|
6451
6626
|
}
|
|
6452
6627
|
);
|
|
6453
6628
|
MenuContent.displayName = "MenuContent";
|
|
6454
|
-
var MenuItem =
|
|
6629
|
+
var MenuItem = forwardRef18(
|
|
6455
6630
|
({
|
|
6456
6631
|
className,
|
|
6457
6632
|
children,
|
|
@@ -6485,7 +6660,7 @@ var MenuItem = forwardRef17(
|
|
|
6485
6660
|
...props
|
|
6486
6661
|
};
|
|
6487
6662
|
const variants = {
|
|
6488
|
-
menu: /* @__PURE__ */
|
|
6663
|
+
menu: /* @__PURE__ */ jsx34(
|
|
6489
6664
|
"li",
|
|
6490
6665
|
{
|
|
6491
6666
|
"data-variant": "menu",
|
|
@@ -6500,7 +6675,7 @@ var MenuItem = forwardRef17(
|
|
|
6500
6675
|
children
|
|
6501
6676
|
}
|
|
6502
6677
|
),
|
|
6503
|
-
menu2: /* @__PURE__ */
|
|
6678
|
+
menu2: /* @__PURE__ */ jsxs28(
|
|
6504
6679
|
"li",
|
|
6505
6680
|
{
|
|
6506
6681
|
"data-variant": "menu2",
|
|
@@ -6511,7 +6686,7 @@ var MenuItem = forwardRef17(
|
|
|
6511
6686
|
`,
|
|
6512
6687
|
...commonProps,
|
|
6513
6688
|
children: [
|
|
6514
|
-
/* @__PURE__ */
|
|
6689
|
+
/* @__PURE__ */ jsx34(
|
|
6515
6690
|
"span",
|
|
6516
6691
|
{
|
|
6517
6692
|
className: cn(
|
|
@@ -6521,11 +6696,11 @@ var MenuItem = forwardRef17(
|
|
|
6521
6696
|
children
|
|
6522
6697
|
}
|
|
6523
6698
|
),
|
|
6524
|
-
selectedValue === value && /* @__PURE__ */
|
|
6699
|
+
selectedValue === value && /* @__PURE__ */ jsx34("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
|
|
6525
6700
|
]
|
|
6526
6701
|
}
|
|
6527
6702
|
),
|
|
6528
|
-
"menu-overflow": /* @__PURE__ */
|
|
6703
|
+
"menu-overflow": /* @__PURE__ */ jsxs28(
|
|
6529
6704
|
"li",
|
|
6530
6705
|
{
|
|
6531
6706
|
"data-variant": "menu-overflow",
|
|
@@ -6536,7 +6711,7 @@ var MenuItem = forwardRef17(
|
|
|
6536
6711
|
`,
|
|
6537
6712
|
...commonProps,
|
|
6538
6713
|
children: [
|
|
6539
|
-
/* @__PURE__ */
|
|
6714
|
+
/* @__PURE__ */ jsx34(
|
|
6540
6715
|
"span",
|
|
6541
6716
|
{
|
|
6542
6717
|
className: cn(
|
|
@@ -6546,11 +6721,11 @@ var MenuItem = forwardRef17(
|
|
|
6546
6721
|
children
|
|
6547
6722
|
}
|
|
6548
6723
|
),
|
|
6549
|
-
selectedValue === value && /* @__PURE__ */
|
|
6724
|
+
selectedValue === value && /* @__PURE__ */ jsx34("div", { className: "h-1 w-full bg-primary-950 rounded-lg" })
|
|
6550
6725
|
]
|
|
6551
6726
|
}
|
|
6552
6727
|
),
|
|
6553
|
-
breadcrumb: /* @__PURE__ */
|
|
6728
|
+
breadcrumb: /* @__PURE__ */ jsxs28(
|
|
6554
6729
|
"li",
|
|
6555
6730
|
{
|
|
6556
6731
|
"data-variant": "breadcrumb",
|
|
@@ -6562,7 +6737,7 @@ var MenuItem = forwardRef17(
|
|
|
6562
6737
|
`,
|
|
6563
6738
|
...commonProps,
|
|
6564
6739
|
children: [
|
|
6565
|
-
/* @__PURE__ */
|
|
6740
|
+
/* @__PURE__ */ jsx34(
|
|
6566
6741
|
"span",
|
|
6567
6742
|
{
|
|
6568
6743
|
className: cn(
|
|
@@ -6572,7 +6747,7 @@ var MenuItem = forwardRef17(
|
|
|
6572
6747
|
children
|
|
6573
6748
|
}
|
|
6574
6749
|
),
|
|
6575
|
-
separator && /* @__PURE__ */
|
|
6750
|
+
separator && /* @__PURE__ */ jsx34(
|
|
6576
6751
|
CaretRight3,
|
|
6577
6752
|
{
|
|
6578
6753
|
size: 16,
|
|
@@ -6609,9 +6784,9 @@ var MenuOverflow = ({
|
|
|
6609
6784
|
onValueChange,
|
|
6610
6785
|
...props
|
|
6611
6786
|
}) => {
|
|
6612
|
-
const containerRef =
|
|
6613
|
-
const [showLeftArrow, setShowLeftArrow] =
|
|
6614
|
-
const [showRightArrow, setShowRightArrow] =
|
|
6787
|
+
const containerRef = useRef9(null);
|
|
6788
|
+
const [showLeftArrow, setShowLeftArrow] = useState14(false);
|
|
6789
|
+
const [showRightArrow, setShowRightArrow] = useState14(false);
|
|
6615
6790
|
useEffect12(() => {
|
|
6616
6791
|
const checkScroll = () => internalCheckScroll(
|
|
6617
6792
|
containerRef.current,
|
|
@@ -6627,25 +6802,25 @@ var MenuOverflow = ({
|
|
|
6627
6802
|
window.removeEventListener("resize", checkScroll);
|
|
6628
6803
|
};
|
|
6629
6804
|
}, []);
|
|
6630
|
-
return /* @__PURE__ */
|
|
6805
|
+
return /* @__PURE__ */ jsxs28(
|
|
6631
6806
|
"div",
|
|
6632
6807
|
{
|
|
6633
6808
|
"data-testid": "menu-overflow-wrapper",
|
|
6634
6809
|
className: cn("relative w-full overflow-hidden", className),
|
|
6635
6810
|
children: [
|
|
6636
|
-
showLeftArrow && /* @__PURE__ */
|
|
6811
|
+
showLeftArrow && /* @__PURE__ */ jsxs28(
|
|
6637
6812
|
"button",
|
|
6638
6813
|
{
|
|
6639
6814
|
onClick: () => internalScroll(containerRef.current, "left"),
|
|
6640
6815
|
className: "absolute left-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
|
|
6641
6816
|
"data-testid": "scroll-left-button",
|
|
6642
6817
|
children: [
|
|
6643
|
-
/* @__PURE__ */
|
|
6644
|
-
/* @__PURE__ */
|
|
6818
|
+
/* @__PURE__ */ jsx34(CaretLeft2, { size: 16 }),
|
|
6819
|
+
/* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Scroll left" })
|
|
6645
6820
|
]
|
|
6646
6821
|
}
|
|
6647
6822
|
),
|
|
6648
|
-
/* @__PURE__ */
|
|
6823
|
+
/* @__PURE__ */ jsx34(
|
|
6649
6824
|
Menu,
|
|
6650
6825
|
{
|
|
6651
6826
|
defaultValue,
|
|
@@ -6653,18 +6828,18 @@ var MenuOverflow = ({
|
|
|
6653
6828
|
value,
|
|
6654
6829
|
variant: "menu2",
|
|
6655
6830
|
...props,
|
|
6656
|
-
children: /* @__PURE__ */
|
|
6831
|
+
children: /* @__PURE__ */ jsx34(MenuContent, { ref: containerRef, variant: "menu2", children })
|
|
6657
6832
|
}
|
|
6658
6833
|
),
|
|
6659
|
-
showRightArrow && /* @__PURE__ */
|
|
6834
|
+
showRightArrow && /* @__PURE__ */ jsxs28(
|
|
6660
6835
|
"button",
|
|
6661
6836
|
{
|
|
6662
6837
|
onClick: () => internalScroll(containerRef.current, "right"),
|
|
6663
6838
|
className: "absolute right-0 top-1/2 -translate-y-1/2 z-10 flex h-8 w-8 items-center justify-center rounded-full bg-white shadow-md cursor-pointer",
|
|
6664
6839
|
"data-testid": "scroll-right-button",
|
|
6665
6840
|
children: [
|
|
6666
|
-
/* @__PURE__ */
|
|
6667
|
-
/* @__PURE__ */
|
|
6841
|
+
/* @__PURE__ */ jsx34(CaretRight3, { size: 16 }),
|
|
6842
|
+
/* @__PURE__ */ jsx34("span", { className: "sr-only", children: "Scroll right" })
|
|
6668
6843
|
]
|
|
6669
6844
|
}
|
|
6670
6845
|
)
|
|
@@ -6684,8 +6859,8 @@ var injectStore5 = (children, store) => Children5.map(children, (child) => {
|
|
|
6684
6859
|
var Menu_default = Menu;
|
|
6685
6860
|
|
|
6686
6861
|
// src/components/Skeleton/Skeleton.tsx
|
|
6687
|
-
import { forwardRef as
|
|
6688
|
-
import { jsx as
|
|
6862
|
+
import { forwardRef as forwardRef19 } from "react";
|
|
6863
|
+
import { jsx as jsx35, jsxs as jsxs29 } from "react/jsx-runtime";
|
|
6689
6864
|
var SKELETON_ANIMATION_CLASSES = {
|
|
6690
6865
|
pulse: "animate-pulse",
|
|
6691
6866
|
none: ""
|
|
@@ -6702,7 +6877,7 @@ var SPACING_CLASSES = {
|
|
|
6702
6877
|
medium: "space-y-2",
|
|
6703
6878
|
large: "space-y-3"
|
|
6704
6879
|
};
|
|
6705
|
-
var Skeleton =
|
|
6880
|
+
var Skeleton = forwardRef19(
|
|
6706
6881
|
({
|
|
6707
6882
|
variant = "text",
|
|
6708
6883
|
width,
|
|
@@ -6722,13 +6897,13 @@ var Skeleton = forwardRef18(
|
|
|
6722
6897
|
height: typeof height === "number" ? `${height}px` : height
|
|
6723
6898
|
};
|
|
6724
6899
|
if (variant === "text" && lines > 1) {
|
|
6725
|
-
return /* @__PURE__ */
|
|
6900
|
+
return /* @__PURE__ */ jsx35(
|
|
6726
6901
|
"div",
|
|
6727
6902
|
{
|
|
6728
6903
|
ref,
|
|
6729
6904
|
className: cn("flex flex-col", spacingClass, className),
|
|
6730
6905
|
...props,
|
|
6731
|
-
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */
|
|
6906
|
+
children: Array.from({ length: lines }, (_, index) => /* @__PURE__ */ jsx35(
|
|
6732
6907
|
"div",
|
|
6733
6908
|
{
|
|
6734
6909
|
className: cn(variantClass, animationClass),
|
|
@@ -6739,7 +6914,7 @@ var Skeleton = forwardRef18(
|
|
|
6739
6914
|
}
|
|
6740
6915
|
);
|
|
6741
6916
|
}
|
|
6742
|
-
return /* @__PURE__ */
|
|
6917
|
+
return /* @__PURE__ */ jsx35(
|
|
6743
6918
|
"div",
|
|
6744
6919
|
{
|
|
6745
6920
|
ref,
|
|
@@ -6751,13 +6926,13 @@ var Skeleton = forwardRef18(
|
|
|
6751
6926
|
);
|
|
6752
6927
|
}
|
|
6753
6928
|
);
|
|
6754
|
-
var SkeletonText =
|
|
6755
|
-
(props, ref) => /* @__PURE__ */
|
|
6929
|
+
var SkeletonText = forwardRef19(
|
|
6930
|
+
(props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "text", ...props })
|
|
6756
6931
|
);
|
|
6757
|
-
var SkeletonCircle =
|
|
6758
|
-
var SkeletonRectangle =
|
|
6759
|
-
var SkeletonRounded =
|
|
6760
|
-
var SkeletonCard =
|
|
6932
|
+
var SkeletonCircle = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "circular", ...props }));
|
|
6933
|
+
var SkeletonRectangle = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "rectangular", ...props }));
|
|
6934
|
+
var SkeletonRounded = forwardRef19((props, ref) => /* @__PURE__ */ jsx35(Skeleton, { ref, variant: "rounded", ...props }));
|
|
6935
|
+
var SkeletonCard = forwardRef19(
|
|
6761
6936
|
({
|
|
6762
6937
|
showAvatar = true,
|
|
6763
6938
|
showTitle = true,
|
|
@@ -6767,7 +6942,7 @@ var SkeletonCard = forwardRef18(
|
|
|
6767
6942
|
className = "",
|
|
6768
6943
|
...props
|
|
6769
6944
|
}, ref) => {
|
|
6770
|
-
return /* @__PURE__ */
|
|
6945
|
+
return /* @__PURE__ */ jsxs29(
|
|
6771
6946
|
"div",
|
|
6772
6947
|
{
|
|
6773
6948
|
ref,
|
|
@@ -6777,23 +6952,23 @@ var SkeletonCard = forwardRef18(
|
|
|
6777
6952
|
),
|
|
6778
6953
|
...props,
|
|
6779
6954
|
children: [
|
|
6780
|
-
/* @__PURE__ */
|
|
6781
|
-
showAvatar && /* @__PURE__ */
|
|
6782
|
-
/* @__PURE__ */
|
|
6783
|
-
showTitle && /* @__PURE__ */
|
|
6784
|
-
showDescription && /* @__PURE__ */
|
|
6955
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex items-start space-x-3", children: [
|
|
6956
|
+
showAvatar && /* @__PURE__ */ jsx35(SkeletonCircle, { width: 40, height: 40 }),
|
|
6957
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
6958
|
+
showTitle && /* @__PURE__ */ jsx35(SkeletonText, { width: "60%", height: 20 }),
|
|
6959
|
+
showDescription && /* @__PURE__ */ jsx35(SkeletonText, { lines, spacing: "small" })
|
|
6785
6960
|
] })
|
|
6786
6961
|
] }),
|
|
6787
|
-
showActions && /* @__PURE__ */
|
|
6788
|
-
/* @__PURE__ */
|
|
6789
|
-
/* @__PURE__ */
|
|
6962
|
+
showActions && /* @__PURE__ */ jsxs29("div", { className: "flex justify-end space-x-2 mt-4", children: [
|
|
6963
|
+
/* @__PURE__ */ jsx35(SkeletonRectangle, { width: 80, height: 32 }),
|
|
6964
|
+
/* @__PURE__ */ jsx35(SkeletonRectangle, { width: 80, height: 32 })
|
|
6790
6965
|
] })
|
|
6791
6966
|
]
|
|
6792
6967
|
}
|
|
6793
6968
|
);
|
|
6794
6969
|
}
|
|
6795
6970
|
);
|
|
6796
|
-
var SkeletonList =
|
|
6971
|
+
var SkeletonList = forwardRef19(
|
|
6797
6972
|
({
|
|
6798
6973
|
items = 3,
|
|
6799
6974
|
showAvatar = true,
|
|
@@ -6803,19 +6978,19 @@ var SkeletonList = forwardRef18(
|
|
|
6803
6978
|
className = "",
|
|
6804
6979
|
...props
|
|
6805
6980
|
}, ref) => {
|
|
6806
|
-
return /* @__PURE__ */
|
|
6807
|
-
showAvatar && /* @__PURE__ */
|
|
6808
|
-
/* @__PURE__ */
|
|
6809
|
-
showTitle && /* @__PURE__ */
|
|
6810
|
-
showDescription && /* @__PURE__ */
|
|
6981
|
+
return /* @__PURE__ */ jsx35("div", { ref, className: cn("space-y-3", className), ...props, children: Array.from({ length: items }, (_, index) => /* @__PURE__ */ jsxs29("div", { className: "flex items-start space-x-3 p-3", children: [
|
|
6982
|
+
showAvatar && /* @__PURE__ */ jsx35(SkeletonCircle, { width: 32, height: 32 }),
|
|
6983
|
+
/* @__PURE__ */ jsxs29("div", { className: "flex-1 space-y-2", children: [
|
|
6984
|
+
showTitle && /* @__PURE__ */ jsx35(SkeletonText, { width: "40%", height: 16 }),
|
|
6985
|
+
showDescription && /* @__PURE__ */ jsx35(SkeletonText, { lines, spacing: "small" })
|
|
6811
6986
|
] })
|
|
6812
6987
|
] }, index)) });
|
|
6813
6988
|
}
|
|
6814
6989
|
);
|
|
6815
|
-
var SkeletonTable =
|
|
6990
|
+
var SkeletonTable = forwardRef19(
|
|
6816
6991
|
({ rows = 5, columns = 4, showHeader = true, className = "", ...props }, ref) => {
|
|
6817
|
-
return /* @__PURE__ */
|
|
6818
|
-
showHeader && /* @__PURE__ */
|
|
6992
|
+
return /* @__PURE__ */ jsxs29("div", { ref, className: cn("w-full", className), ...props, children: [
|
|
6993
|
+
showHeader && /* @__PURE__ */ jsx35("div", { className: "flex space-x-2 mb-3", children: Array.from({ length: columns }, (_, index) => /* @__PURE__ */ jsx35(
|
|
6819
6994
|
SkeletonText,
|
|
6820
6995
|
{
|
|
6821
6996
|
width: `${100 / columns}%`,
|
|
@@ -6823,7 +6998,7 @@ var SkeletonTable = forwardRef18(
|
|
|
6823
6998
|
},
|
|
6824
6999
|
index
|
|
6825
7000
|
)) }),
|
|
6826
|
-
/* @__PURE__ */
|
|
7001
|
+
/* @__PURE__ */ jsx35("div", { className: "space-y-2", children: Array.from({ length: rows }, (_, rowIndex) => /* @__PURE__ */ jsx35("div", { className: "flex space-x-2", children: Array.from({ length: columns }, (_2, colIndex) => /* @__PURE__ */ jsx35(
|
|
6827
7002
|
SkeletonText,
|
|
6828
7003
|
{
|
|
6829
7004
|
width: `${100 / columns}%`,
|
|
@@ -6836,7 +7011,7 @@ var SkeletonTable = forwardRef18(
|
|
|
6836
7011
|
);
|
|
6837
7012
|
|
|
6838
7013
|
// src/components/NotFound/NotFound.tsx
|
|
6839
|
-
import { jsx as
|
|
7014
|
+
import { jsx as jsx36, jsxs as jsxs30 } from "react/jsx-runtime";
|
|
6840
7015
|
var NotFound = ({
|
|
6841
7016
|
title,
|
|
6842
7017
|
description,
|
|
@@ -6879,22 +7054,22 @@ var NotFound = ({
|
|
|
6879
7054
|
const errorTitle = title || getDefaultTitle();
|
|
6880
7055
|
const errorDescription = description || getDefaultDescription();
|
|
6881
7056
|
const errorCode = getErrorCode();
|
|
6882
|
-
return /* @__PURE__ */
|
|
7057
|
+
return /* @__PURE__ */ jsx36(
|
|
6883
7058
|
"div",
|
|
6884
7059
|
{
|
|
6885
7060
|
className: cn(
|
|
6886
7061
|
"flex flex-col w-full h-screen items-center justify-center bg-background-50 px-4",
|
|
6887
7062
|
className
|
|
6888
7063
|
),
|
|
6889
|
-
children: /* @__PURE__ */
|
|
7064
|
+
children: /* @__PURE__ */ jsx36(
|
|
6890
7065
|
"main",
|
|
6891
7066
|
{
|
|
6892
7067
|
role: "main",
|
|
6893
7068
|
"aria-labelledby": "error-title",
|
|
6894
7069
|
"aria-describedby": "error-description",
|
|
6895
7070
|
className: "flex flex-col items-center text-center max-w-md space-y-6",
|
|
6896
|
-
children: /* @__PURE__ */
|
|
6897
|
-
/* @__PURE__ */
|
|
7071
|
+
children: /* @__PURE__ */ jsxs30("section", { "aria-label": `Erro ${errorCode}`, children: [
|
|
7072
|
+
/* @__PURE__ */ jsx36(
|
|
6898
7073
|
"div",
|
|
6899
7074
|
{
|
|
6900
7075
|
className: "text-8xl font-bold text-primary-300 select-none",
|
|
@@ -6902,8 +7077,8 @@ var NotFound = ({
|
|
|
6902
7077
|
children: errorCode
|
|
6903
7078
|
}
|
|
6904
7079
|
),
|
|
6905
|
-
/* @__PURE__ */
|
|
6906
|
-
/* @__PURE__ */
|
|
7080
|
+
/* @__PURE__ */ jsxs30("header", { className: "space-y-2", children: [
|
|
7081
|
+
/* @__PURE__ */ jsx36(
|
|
6907
7082
|
Text_default,
|
|
6908
7083
|
{
|
|
6909
7084
|
size: "xl",
|
|
@@ -6914,9 +7089,9 @@ var NotFound = ({
|
|
|
6914
7089
|
children: errorTitle
|
|
6915
7090
|
}
|
|
6916
7091
|
),
|
|
6917
|
-
/* @__PURE__ */
|
|
7092
|
+
/* @__PURE__ */ jsx36(Text_default, { size: "md", className: "text-text-600", id: "error-description", children: errorDescription })
|
|
6918
7093
|
] }),
|
|
6919
|
-
onButtonClick && /* @__PURE__ */
|
|
7094
|
+
onButtonClick && /* @__PURE__ */ jsx36("nav", { "aria-label": "Navega\xE7\xE3o de erro", children: /* @__PURE__ */ jsx36(
|
|
6920
7095
|
Button_default,
|
|
6921
7096
|
{
|
|
6922
7097
|
onClick: handleButtonClick,
|
|
@@ -6938,11 +7113,12 @@ var NotFound_default = NotFound;
|
|
|
6938
7113
|
|
|
6939
7114
|
// src/components/VideoPlayer/VideoPlayer.tsx
|
|
6940
7115
|
import {
|
|
6941
|
-
useRef as
|
|
6942
|
-
useState as
|
|
7116
|
+
useRef as useRef10,
|
|
7117
|
+
useState as useState15,
|
|
6943
7118
|
useEffect as useEffect13,
|
|
6944
|
-
useCallback
|
|
7119
|
+
useCallback as useCallback2
|
|
6945
7120
|
} from "react";
|
|
7121
|
+
import { createPortal } from "react-dom";
|
|
6946
7122
|
import {
|
|
6947
7123
|
Play as Play2,
|
|
6948
7124
|
Pause,
|
|
@@ -6953,7 +7129,7 @@ import {
|
|
|
6953
7129
|
ClosedCaptioning,
|
|
6954
7130
|
DotsThreeVertical as DotsThreeVertical2
|
|
6955
7131
|
} from "phosphor-react";
|
|
6956
|
-
import { jsx as
|
|
7132
|
+
import { jsx as jsx37, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
6957
7133
|
var CONTROLS_HIDE_TIMEOUT = 3e3;
|
|
6958
7134
|
var LEAVE_HIDE_TIMEOUT = 1e3;
|
|
6959
7135
|
var INIT_DELAY = 100;
|
|
@@ -6968,7 +7144,7 @@ var ProgressBar2 = ({
|
|
|
6968
7144
|
duration,
|
|
6969
7145
|
progressPercentage,
|
|
6970
7146
|
onSeek
|
|
6971
|
-
}) => /* @__PURE__ */
|
|
7147
|
+
}) => /* @__PURE__ */ jsx37("div", { className: "px-4 pb-2", children: /* @__PURE__ */ jsx37(
|
|
6972
7148
|
"input",
|
|
6973
7149
|
{
|
|
6974
7150
|
type: "range",
|
|
@@ -6988,17 +7164,17 @@ var VolumeControls = ({
|
|
|
6988
7164
|
isMuted,
|
|
6989
7165
|
onVolumeChange,
|
|
6990
7166
|
onToggleMute
|
|
6991
|
-
}) => /* @__PURE__ */
|
|
6992
|
-
/* @__PURE__ */
|
|
7167
|
+
}) => /* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-2", children: [
|
|
7168
|
+
/* @__PURE__ */ jsx37(
|
|
6993
7169
|
IconButton_default,
|
|
6994
7170
|
{
|
|
6995
|
-
icon: isMuted ? /* @__PURE__ */
|
|
7171
|
+
icon: isMuted ? /* @__PURE__ */ jsx37(SpeakerSlash, { size: 24 }) : /* @__PURE__ */ jsx37(SpeakerHigh2, { size: 24 }),
|
|
6996
7172
|
onClick: onToggleMute,
|
|
6997
7173
|
"aria-label": isMuted ? "Unmute" : "Mute",
|
|
6998
7174
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
6999
7175
|
}
|
|
7000
7176
|
),
|
|
7001
|
-
/* @__PURE__ */
|
|
7177
|
+
/* @__PURE__ */ jsx37(
|
|
7002
7178
|
"input",
|
|
7003
7179
|
{
|
|
7004
7180
|
type: "range",
|
|
@@ -7018,30 +7194,63 @@ var SpeedMenu = ({
|
|
|
7018
7194
|
showSpeedMenu,
|
|
7019
7195
|
playbackRate,
|
|
7020
7196
|
onToggleMenu,
|
|
7021
|
-
onSpeedChange
|
|
7022
|
-
|
|
7023
|
-
|
|
7024
|
-
|
|
7197
|
+
onSpeedChange,
|
|
7198
|
+
isFullscreen
|
|
7199
|
+
}) => {
|
|
7200
|
+
const buttonRef = useRef10(null);
|
|
7201
|
+
const getMenuPosition = () => {
|
|
7202
|
+
if (!buttonRef.current) return { top: 0, left: 0 };
|
|
7203
|
+
const rect = buttonRef.current.getBoundingClientRect();
|
|
7204
|
+
return {
|
|
7205
|
+
// Fixed coords are viewport-based — no scroll offsets.
|
|
7206
|
+
top: Math.max(8, rect.top - 180),
|
|
7207
|
+
left: Math.max(8, rect.right - 80)
|
|
7208
|
+
};
|
|
7209
|
+
};
|
|
7210
|
+
const position = getMenuPosition();
|
|
7211
|
+
const menuContent = /* @__PURE__ */ jsx37(
|
|
7212
|
+
"div",
|
|
7025
7213
|
{
|
|
7026
|
-
|
|
7027
|
-
onClick: onToggleMenu,
|
|
7214
|
+
role: "menu",
|
|
7028
7215
|
"aria-label": "Playback speed",
|
|
7029
|
-
className: "
|
|
7216
|
+
className: isFullscreen ? "absolute bottom-12 right-0 bg-black/90 rounded-lg p-2 min-w-20 z-[9999]" : "fixed bg-black/90 rounded-lg p-2 min-w-20 z-[9999]",
|
|
7217
|
+
style: !isFullscreen ? {
|
|
7218
|
+
top: `${position.top}px`,
|
|
7219
|
+
left: `${position.left}px`
|
|
7220
|
+
} : void 0,
|
|
7221
|
+
children: [0.5, 0.75, 1, 1.25, 1.5, 2].map((speed) => /* @__PURE__ */ jsxs31(
|
|
7222
|
+
"button",
|
|
7223
|
+
{
|
|
7224
|
+
role: "menuitemradio",
|
|
7225
|
+
"aria-checked": playbackRate === speed,
|
|
7226
|
+
onClick: () => onSpeedChange(speed),
|
|
7227
|
+
className: `block w-full text-left px-3 py-1 text-sm rounded hover:bg-white/20 transition-colors ${playbackRate === speed ? "text-primary-400" : "text-white"}`,
|
|
7228
|
+
children: [
|
|
7229
|
+
speed,
|
|
7230
|
+
"x"
|
|
7231
|
+
]
|
|
7232
|
+
},
|
|
7233
|
+
speed
|
|
7234
|
+
))
|
|
7030
7235
|
}
|
|
7031
|
-
)
|
|
7032
|
-
|
|
7033
|
-
|
|
7034
|
-
|
|
7035
|
-
|
|
7036
|
-
|
|
7037
|
-
|
|
7038
|
-
|
|
7039
|
-
|
|
7040
|
-
|
|
7041
|
-
|
|
7042
|
-
|
|
7043
|
-
|
|
7044
|
-
|
|
7236
|
+
);
|
|
7237
|
+
const portalContent = typeof window !== "undefined" && typeof document !== "undefined" ? createPortal(menuContent, document.body) : null;
|
|
7238
|
+
return /* @__PURE__ */ jsxs31("div", { className: "relative", children: [
|
|
7239
|
+
/* @__PURE__ */ jsx37(
|
|
7240
|
+
IconButton_default,
|
|
7241
|
+
{
|
|
7242
|
+
ref: buttonRef,
|
|
7243
|
+
icon: /* @__PURE__ */ jsx37(DotsThreeVertical2, { size: 24 }),
|
|
7244
|
+
onClick: onToggleMenu,
|
|
7245
|
+
"aria-label": "Playback speed",
|
|
7246
|
+
"aria-haspopup": "menu",
|
|
7247
|
+
"aria-expanded": showSpeedMenu,
|
|
7248
|
+
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7249
|
+
}
|
|
7250
|
+
),
|
|
7251
|
+
showSpeedMenu && (isFullscreen ? menuContent : portalContent)
|
|
7252
|
+
] });
|
|
7253
|
+
};
|
|
7045
7254
|
var VideoPlayer = ({
|
|
7046
7255
|
src,
|
|
7047
7256
|
poster,
|
|
@@ -7056,26 +7265,26 @@ var VideoPlayer = ({
|
|
|
7056
7265
|
autoSave = true,
|
|
7057
7266
|
storageKey = "video-progress"
|
|
7058
7267
|
}) => {
|
|
7059
|
-
const videoRef =
|
|
7060
|
-
const [isPlaying, setIsPlaying] =
|
|
7061
|
-
const [currentTime, setCurrentTime] =
|
|
7062
|
-
const [duration, setDuration] =
|
|
7063
|
-
const [isMuted, setIsMuted] =
|
|
7064
|
-
const [volume, setVolume] =
|
|
7065
|
-
const [isFullscreen, setIsFullscreen] =
|
|
7066
|
-
const [showControls, setShowControls] =
|
|
7067
|
-
const [hasCompleted, setHasCompleted] =
|
|
7068
|
-
const [showCaptions, setShowCaptions] =
|
|
7268
|
+
const videoRef = useRef10(null);
|
|
7269
|
+
const [isPlaying, setIsPlaying] = useState15(false);
|
|
7270
|
+
const [currentTime, setCurrentTime] = useState15(0);
|
|
7271
|
+
const [duration, setDuration] = useState15(0);
|
|
7272
|
+
const [isMuted, setIsMuted] = useState15(false);
|
|
7273
|
+
const [volume, setVolume] = useState15(1);
|
|
7274
|
+
const [isFullscreen, setIsFullscreen] = useState15(false);
|
|
7275
|
+
const [showControls, setShowControls] = useState15(true);
|
|
7276
|
+
const [hasCompleted, setHasCompleted] = useState15(false);
|
|
7277
|
+
const [showCaptions, setShowCaptions] = useState15(false);
|
|
7069
7278
|
useEffect13(() => {
|
|
7070
7279
|
setHasCompleted(false);
|
|
7071
7280
|
}, [src]);
|
|
7072
|
-
const [playbackRate, setPlaybackRate] =
|
|
7073
|
-
const [showSpeedMenu, setShowSpeedMenu] =
|
|
7074
|
-
const lastSaveTimeRef =
|
|
7075
|
-
const trackRef =
|
|
7076
|
-
const controlsTimeoutRef =
|
|
7077
|
-
const lastMousePositionRef =
|
|
7078
|
-
const isUserInteracting =
|
|
7281
|
+
const [playbackRate, setPlaybackRate] = useState15(1);
|
|
7282
|
+
const [showSpeedMenu, setShowSpeedMenu] = useState15(false);
|
|
7283
|
+
const lastSaveTimeRef = useRef10(0);
|
|
7284
|
+
const trackRef = useRef10(null);
|
|
7285
|
+
const controlsTimeoutRef = useRef10(null);
|
|
7286
|
+
const lastMousePositionRef = useRef10({ x: 0, y: 0 });
|
|
7287
|
+
const isUserInteracting = useCallback2(() => {
|
|
7079
7288
|
if (showSpeedMenu) {
|
|
7080
7289
|
return true;
|
|
7081
7290
|
}
|
|
@@ -7092,13 +7301,13 @@ var VideoPlayer = ({
|
|
|
7092
7301
|
}
|
|
7093
7302
|
return false;
|
|
7094
7303
|
}, [showSpeedMenu]);
|
|
7095
|
-
const clearControlsTimeout =
|
|
7304
|
+
const clearControlsTimeout = useCallback2(() => {
|
|
7096
7305
|
if (controlsTimeoutRef.current) {
|
|
7097
7306
|
clearTimeout(controlsTimeoutRef.current);
|
|
7098
7307
|
controlsTimeoutRef.current = null;
|
|
7099
7308
|
}
|
|
7100
7309
|
}, []);
|
|
7101
|
-
const showControlsWithTimer =
|
|
7310
|
+
const showControlsWithTimer = useCallback2(() => {
|
|
7102
7311
|
setShowControls(true);
|
|
7103
7312
|
clearControlsTimeout();
|
|
7104
7313
|
if (isFullscreen) {
|
|
@@ -7113,7 +7322,7 @@ var VideoPlayer = ({
|
|
|
7113
7322
|
}, CONTROLS_HIDE_TIMEOUT);
|
|
7114
7323
|
}
|
|
7115
7324
|
}, [isFullscreen, isPlaying, clearControlsTimeout]);
|
|
7116
|
-
const handleMouseMove =
|
|
7325
|
+
const handleMouseMove = useCallback2(
|
|
7117
7326
|
(event) => {
|
|
7118
7327
|
const currentX = event.clientX;
|
|
7119
7328
|
const currentY = event.clientY;
|
|
@@ -7126,10 +7335,10 @@ var VideoPlayer = ({
|
|
|
7126
7335
|
},
|
|
7127
7336
|
[showControlsWithTimer]
|
|
7128
7337
|
);
|
|
7129
|
-
const handleMouseEnter =
|
|
7338
|
+
const handleMouseEnter = useCallback2(() => {
|
|
7130
7339
|
showControlsWithTimer();
|
|
7131
7340
|
}, [showControlsWithTimer]);
|
|
7132
|
-
const handleMouseLeave =
|
|
7341
|
+
const handleMouseLeave = useCallback2(() => {
|
|
7133
7342
|
const userInteracting = isUserInteracting();
|
|
7134
7343
|
clearControlsTimeout();
|
|
7135
7344
|
if (!isFullscreen && !userInteracting) {
|
|
@@ -7206,7 +7415,7 @@ var VideoPlayer = ({
|
|
|
7206
7415
|
};
|
|
7207
7416
|
}
|
|
7208
7417
|
}, []);
|
|
7209
|
-
const getInitialTime =
|
|
7418
|
+
const getInitialTime = useCallback2(() => {
|
|
7210
7419
|
if (!autoSave || !storageKey) {
|
|
7211
7420
|
return Number.isFinite(initialTime) && initialTime >= 0 ? initialTime : void 0;
|
|
7212
7421
|
}
|
|
@@ -7224,7 +7433,7 @@ var VideoPlayer = ({
|
|
|
7224
7433
|
setCurrentTime(start);
|
|
7225
7434
|
}
|
|
7226
7435
|
}, [getInitialTime]);
|
|
7227
|
-
const saveProgress =
|
|
7436
|
+
const saveProgress = useCallback2(
|
|
7228
7437
|
(time) => {
|
|
7229
7438
|
if (!autoSave || !storageKey) return;
|
|
7230
7439
|
const now = Date.now();
|
|
@@ -7235,7 +7444,7 @@ var VideoPlayer = ({
|
|
|
7235
7444
|
},
|
|
7236
7445
|
[autoSave, storageKey, src]
|
|
7237
7446
|
);
|
|
7238
|
-
const togglePlayPause =
|
|
7447
|
+
const togglePlayPause = useCallback2(async () => {
|
|
7239
7448
|
const video = videoRef.current;
|
|
7240
7449
|
if (!video) return;
|
|
7241
7450
|
if (!video.paused) {
|
|
@@ -7247,7 +7456,7 @@ var VideoPlayer = ({
|
|
|
7247
7456
|
} catch {
|
|
7248
7457
|
}
|
|
7249
7458
|
}, []);
|
|
7250
|
-
const handleVolumeChange =
|
|
7459
|
+
const handleVolumeChange = useCallback2(
|
|
7251
7460
|
(newVolume) => {
|
|
7252
7461
|
const video = videoRef.current;
|
|
7253
7462
|
if (!video) return;
|
|
@@ -7266,7 +7475,7 @@ var VideoPlayer = ({
|
|
|
7266
7475
|
},
|
|
7267
7476
|
[isMuted]
|
|
7268
7477
|
);
|
|
7269
|
-
const toggleMute =
|
|
7478
|
+
const toggleMute = useCallback2(() => {
|
|
7270
7479
|
const video = videoRef.current;
|
|
7271
7480
|
if (!video) return;
|
|
7272
7481
|
if (isMuted) {
|
|
@@ -7280,13 +7489,13 @@ var VideoPlayer = ({
|
|
|
7280
7489
|
setIsMuted(true);
|
|
7281
7490
|
}
|
|
7282
7491
|
}, [isMuted, volume]);
|
|
7283
|
-
const handleSeek =
|
|
7492
|
+
const handleSeek = useCallback2((newTime) => {
|
|
7284
7493
|
const video = videoRef.current;
|
|
7285
7494
|
if (video) {
|
|
7286
7495
|
video.currentTime = newTime;
|
|
7287
7496
|
}
|
|
7288
7497
|
}, []);
|
|
7289
|
-
const toggleFullscreen =
|
|
7498
|
+
const toggleFullscreen = useCallback2(() => {
|
|
7290
7499
|
const container = videoRef.current?.parentElement;
|
|
7291
7500
|
if (!container) return;
|
|
7292
7501
|
if (!isFullscreen && container.requestFullscreen) {
|
|
@@ -7295,23 +7504,23 @@ var VideoPlayer = ({
|
|
|
7295
7504
|
document.exitFullscreen();
|
|
7296
7505
|
}
|
|
7297
7506
|
}, [isFullscreen]);
|
|
7298
|
-
const handleSpeedChange =
|
|
7507
|
+
const handleSpeedChange = useCallback2((speed) => {
|
|
7299
7508
|
if (videoRef.current) {
|
|
7300
7509
|
videoRef.current.playbackRate = speed;
|
|
7301
7510
|
setPlaybackRate(speed);
|
|
7302
7511
|
setShowSpeedMenu(false);
|
|
7303
7512
|
}
|
|
7304
7513
|
}, []);
|
|
7305
|
-
const toggleSpeedMenu =
|
|
7514
|
+
const toggleSpeedMenu = useCallback2(() => {
|
|
7306
7515
|
setShowSpeedMenu(!showSpeedMenu);
|
|
7307
7516
|
}, [showSpeedMenu]);
|
|
7308
|
-
const toggleCaptions =
|
|
7517
|
+
const toggleCaptions = useCallback2(() => {
|
|
7309
7518
|
if (!trackRef.current?.track || !subtitles) return;
|
|
7310
7519
|
const newShowCaptions = !showCaptions;
|
|
7311
7520
|
setShowCaptions(newShowCaptions);
|
|
7312
7521
|
trackRef.current.track.mode = newShowCaptions && subtitles ? "showing" : "hidden";
|
|
7313
7522
|
}, [showCaptions, subtitles]);
|
|
7314
|
-
const checkVideoCompletion =
|
|
7523
|
+
const checkVideoCompletion = useCallback2(
|
|
7315
7524
|
(progressPercent) => {
|
|
7316
7525
|
if (progressPercent >= 95 && !hasCompleted) {
|
|
7317
7526
|
setHasCompleted(true);
|
|
@@ -7320,7 +7529,7 @@ var VideoPlayer = ({
|
|
|
7320
7529
|
},
|
|
7321
7530
|
[hasCompleted, onVideoComplete]
|
|
7322
7531
|
);
|
|
7323
|
-
const handleTimeUpdate =
|
|
7532
|
+
const handleTimeUpdate = useCallback2(() => {
|
|
7324
7533
|
const video = videoRef.current;
|
|
7325
7534
|
if (!video) return;
|
|
7326
7535
|
const current = video.currentTime;
|
|
@@ -7333,7 +7542,7 @@ var VideoPlayer = ({
|
|
|
7333
7542
|
checkVideoCompletion(progressPercent);
|
|
7334
7543
|
}
|
|
7335
7544
|
}, [duration, saveProgress, onTimeUpdate, onProgress, checkVideoCompletion]);
|
|
7336
|
-
const handleLoadedMetadata =
|
|
7545
|
+
const handleLoadedMetadata = useCallback2(() => {
|
|
7337
7546
|
if (videoRef.current) {
|
|
7338
7547
|
setDuration(videoRef.current.duration);
|
|
7339
7548
|
}
|
|
@@ -7365,13 +7574,13 @@ var VideoPlayer = ({
|
|
|
7365
7574
|
};
|
|
7366
7575
|
}, [isPlaying, clearControlsTimeout]);
|
|
7367
7576
|
const progressPercentage = duration > 0 ? currentTime / duration * 100 : 0;
|
|
7368
|
-
const getTopControlsOpacity =
|
|
7577
|
+
const getTopControlsOpacity = useCallback2(() => {
|
|
7369
7578
|
return showControls ? "opacity-100" : "opacity-0";
|
|
7370
7579
|
}, [showControls]);
|
|
7371
|
-
const getBottomControlsOpacity =
|
|
7580
|
+
const getBottomControlsOpacity = useCallback2(() => {
|
|
7372
7581
|
return showControls ? "opacity-100" : "opacity-0";
|
|
7373
7582
|
}, [showControls]);
|
|
7374
|
-
const handleVideoKeyDown =
|
|
7583
|
+
const handleVideoKeyDown = useCallback2(
|
|
7375
7584
|
(e) => {
|
|
7376
7585
|
if (e.key) {
|
|
7377
7586
|
e.stopPropagation();
|
|
@@ -7426,9 +7635,9 @@ var VideoPlayer = ({
|
|
|
7426
7635
|
toggleFullscreen
|
|
7427
7636
|
]
|
|
7428
7637
|
);
|
|
7429
|
-
return /* @__PURE__ */
|
|
7430
|
-
(title || subtitleText) && /* @__PURE__ */
|
|
7431
|
-
title && /* @__PURE__ */
|
|
7638
|
+
return /* @__PURE__ */ jsxs31("div", { className: cn("flex flex-col", className), children: [
|
|
7639
|
+
(title || subtitleText) && /* @__PURE__ */ jsx37("div", { className: "bg-subject-1 px-8 py-4 flex items-end justify-between min-h-20", children: /* @__PURE__ */ jsxs31("div", { className: "flex flex-col gap-1", children: [
|
|
7640
|
+
title && /* @__PURE__ */ jsx37(
|
|
7432
7641
|
Text_default,
|
|
7433
7642
|
{
|
|
7434
7643
|
as: "h2",
|
|
@@ -7439,7 +7648,7 @@ var VideoPlayer = ({
|
|
|
7439
7648
|
children: title
|
|
7440
7649
|
}
|
|
7441
7650
|
),
|
|
7442
|
-
subtitleText && /* @__PURE__ */
|
|
7651
|
+
subtitleText && /* @__PURE__ */ jsx37(
|
|
7443
7652
|
Text_default,
|
|
7444
7653
|
{
|
|
7445
7654
|
as: "p",
|
|
@@ -7451,7 +7660,7 @@ var VideoPlayer = ({
|
|
|
7451
7660
|
}
|
|
7452
7661
|
)
|
|
7453
7662
|
] }) }),
|
|
7454
|
-
/* @__PURE__ */
|
|
7663
|
+
/* @__PURE__ */ jsxs31(
|
|
7455
7664
|
"section",
|
|
7456
7665
|
{
|
|
7457
7666
|
className: cn(
|
|
@@ -7466,7 +7675,7 @@ var VideoPlayer = ({
|
|
|
7466
7675
|
onTouchStart: handleMouseEnter,
|
|
7467
7676
|
onMouseLeave: handleMouseLeave,
|
|
7468
7677
|
children: [
|
|
7469
|
-
/* @__PURE__ */
|
|
7678
|
+
/* @__PURE__ */ jsx37(
|
|
7470
7679
|
"video",
|
|
7471
7680
|
{
|
|
7472
7681
|
ref: videoRef,
|
|
@@ -7480,7 +7689,7 @@ var VideoPlayer = ({
|
|
|
7480
7689
|
onKeyDown: handleVideoKeyDown,
|
|
7481
7690
|
tabIndex: 0,
|
|
7482
7691
|
"aria-label": title ? `Video: ${title}` : "Video player",
|
|
7483
|
-
children: /* @__PURE__ */
|
|
7692
|
+
children: /* @__PURE__ */ jsx37(
|
|
7484
7693
|
"track",
|
|
7485
7694
|
{
|
|
7486
7695
|
ref: trackRef,
|
|
@@ -7493,26 +7702,26 @@ var VideoPlayer = ({
|
|
|
7493
7702
|
)
|
|
7494
7703
|
}
|
|
7495
7704
|
),
|
|
7496
|
-
!isPlaying && /* @__PURE__ */
|
|
7705
|
+
!isPlaying && /* @__PURE__ */ jsx37("div", { className: "absolute inset-0 flex items-center justify-center bg-black/30 transition-opacity", children: /* @__PURE__ */ jsx37(
|
|
7497
7706
|
IconButton_default,
|
|
7498
7707
|
{
|
|
7499
|
-
icon: /* @__PURE__ */
|
|
7708
|
+
icon: /* @__PURE__ */ jsx37(Play2, { size: 32, weight: "regular", className: "ml-1" }),
|
|
7500
7709
|
onClick: togglePlayPause,
|
|
7501
7710
|
"aria-label": "Play video",
|
|
7502
7711
|
className: "!bg-transparent !text-white !w-auto !h-auto hover:!bg-transparent hover:!text-gray-200"
|
|
7503
7712
|
}
|
|
7504
7713
|
) }),
|
|
7505
|
-
/* @__PURE__ */
|
|
7714
|
+
/* @__PURE__ */ jsx37(
|
|
7506
7715
|
"div",
|
|
7507
7716
|
{
|
|
7508
7717
|
className: cn(
|
|
7509
7718
|
"absolute top-0 left-0 right-0 p-4 bg-gradient-to-b from-black/70 to-transparent transition-opacity",
|
|
7510
7719
|
getTopControlsOpacity()
|
|
7511
7720
|
),
|
|
7512
|
-
children: /* @__PURE__ */
|
|
7721
|
+
children: /* @__PURE__ */ jsx37("div", { className: "flex justify-start", children: /* @__PURE__ */ jsx37(
|
|
7513
7722
|
IconButton_default,
|
|
7514
7723
|
{
|
|
7515
|
-
icon: isFullscreen ? /* @__PURE__ */
|
|
7724
|
+
icon: isFullscreen ? /* @__PURE__ */ jsx37(ArrowsInSimple, { size: 24 }) : /* @__PURE__ */ jsx37(ArrowsOutSimple, { size: 24 }),
|
|
7516
7725
|
onClick: toggleFullscreen,
|
|
7517
7726
|
"aria-label": isFullscreen ? "Exit fullscreen" : "Enter fullscreen",
|
|
7518
7727
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
@@ -7520,7 +7729,7 @@ var VideoPlayer = ({
|
|
|
7520
7729
|
) })
|
|
7521
7730
|
}
|
|
7522
7731
|
),
|
|
7523
|
-
/* @__PURE__ */
|
|
7732
|
+
/* @__PURE__ */ jsxs31(
|
|
7524
7733
|
"div",
|
|
7525
7734
|
{
|
|
7526
7735
|
className: cn(
|
|
@@ -7528,7 +7737,7 @@ var VideoPlayer = ({
|
|
|
7528
7737
|
getBottomControlsOpacity()
|
|
7529
7738
|
),
|
|
7530
7739
|
children: [
|
|
7531
|
-
/* @__PURE__ */
|
|
7740
|
+
/* @__PURE__ */ jsx37(
|
|
7532
7741
|
ProgressBar2,
|
|
7533
7742
|
{
|
|
7534
7743
|
currentTime,
|
|
@@ -7537,18 +7746,18 @@ var VideoPlayer = ({
|
|
|
7537
7746
|
onSeek: handleSeek
|
|
7538
7747
|
}
|
|
7539
7748
|
),
|
|
7540
|
-
/* @__PURE__ */
|
|
7541
|
-
/* @__PURE__ */
|
|
7542
|
-
/* @__PURE__ */
|
|
7749
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center justify-between px-4 pb-4", children: [
|
|
7750
|
+
/* @__PURE__ */ jsxs31("div", { className: "flex items-center gap-4", children: [
|
|
7751
|
+
/* @__PURE__ */ jsx37(
|
|
7543
7752
|
IconButton_default,
|
|
7544
7753
|
{
|
|
7545
|
-
icon: isPlaying ? /* @__PURE__ */
|
|
7754
|
+
icon: isPlaying ? /* @__PURE__ */ jsx37(Pause, { size: 24 }) : /* @__PURE__ */ jsx37(Play2, { size: 24 }),
|
|
7546
7755
|
onClick: togglePlayPause,
|
|
7547
7756
|
"aria-label": isPlaying ? "Pause" : "Play",
|
|
7548
7757
|
className: "!bg-transparent !text-white hover:!bg-white/20"
|
|
7549
7758
|
}
|
|
7550
7759
|
),
|
|
7551
|
-
/* @__PURE__ */
|
|
7760
|
+
/* @__PURE__ */ jsx37(
|
|
7552
7761
|
VolumeControls,
|
|
7553
7762
|
{
|
|
7554
7763
|
volume,
|
|
@@ -7557,10 +7766,10 @@ var VideoPlayer = ({
|
|
|
7557
7766
|
onToggleMute: toggleMute
|
|
7558
7767
|
}
|
|
7559
7768
|
),
|
|
7560
|
-
subtitles && /* @__PURE__ */
|
|
7769
|
+
subtitles && /* @__PURE__ */ jsx37(
|
|
7561
7770
|
IconButton_default,
|
|
7562
7771
|
{
|
|
7563
|
-
icon: /* @__PURE__ */
|
|
7772
|
+
icon: /* @__PURE__ */ jsx37(ClosedCaptioning, { size: 24 }),
|
|
7564
7773
|
onClick: toggleCaptions,
|
|
7565
7774
|
"aria-label": showCaptions ? "Hide captions" : "Show captions",
|
|
7566
7775
|
className: cn(
|
|
@@ -7569,19 +7778,20 @@ var VideoPlayer = ({
|
|
|
7569
7778
|
)
|
|
7570
7779
|
}
|
|
7571
7780
|
),
|
|
7572
|
-
/* @__PURE__ */
|
|
7781
|
+
/* @__PURE__ */ jsxs31(Text_default, { size: "sm", weight: "medium", color: "text-white", children: [
|
|
7573
7782
|
formatTime(currentTime),
|
|
7574
7783
|
" / ",
|
|
7575
7784
|
formatTime(duration)
|
|
7576
7785
|
] })
|
|
7577
7786
|
] }),
|
|
7578
|
-
/* @__PURE__ */
|
|
7787
|
+
/* @__PURE__ */ jsx37("div", { className: "flex items-center gap-4", children: /* @__PURE__ */ jsx37(
|
|
7579
7788
|
SpeedMenu,
|
|
7580
7789
|
{
|
|
7581
7790
|
showSpeedMenu,
|
|
7582
7791
|
playbackRate,
|
|
7583
7792
|
onToggleMenu: toggleSpeedMenu,
|
|
7584
|
-
onSpeedChange: handleSpeedChange
|
|
7793
|
+
onSpeedChange: handleSpeedChange,
|
|
7794
|
+
isFullscreen
|
|
7585
7795
|
}
|
|
7586
7796
|
) })
|
|
7587
7797
|
] })
|
|
@@ -7596,9 +7806,9 @@ var VideoPlayer = ({
|
|
|
7596
7806
|
var VideoPlayer_default = VideoPlayer;
|
|
7597
7807
|
|
|
7598
7808
|
// src/components/Whiteboard/Whiteboard.tsx
|
|
7599
|
-
import { useCallback as
|
|
7809
|
+
import { useCallback as useCallback3, useState as useState16 } from "react";
|
|
7600
7810
|
import { ArrowsOut } from "phosphor-react";
|
|
7601
|
-
import { Fragment as
|
|
7811
|
+
import { Fragment as Fragment8, jsx as jsx38, jsxs as jsxs32 } from "react/jsx-runtime";
|
|
7602
7812
|
var IMAGE_WIDTH = 225;
|
|
7603
7813
|
var IMAGE_HEIGHT = 90;
|
|
7604
7814
|
var Whiteboard = ({
|
|
@@ -7609,8 +7819,8 @@ var Whiteboard = ({
|
|
|
7609
7819
|
imagesPerRow = 2,
|
|
7610
7820
|
...rest
|
|
7611
7821
|
}) => {
|
|
7612
|
-
const [imageErrors, setImageErrors] =
|
|
7613
|
-
const handleDownload =
|
|
7822
|
+
const [imageErrors, setImageErrors] = useState16(/* @__PURE__ */ new Set());
|
|
7823
|
+
const handleDownload = useCallback3(
|
|
7614
7824
|
(image) => {
|
|
7615
7825
|
if (onDownload) {
|
|
7616
7826
|
onDownload(image);
|
|
@@ -7627,7 +7837,7 @@ var Whiteboard = ({
|
|
|
7627
7837
|
},
|
|
7628
7838
|
[onDownload]
|
|
7629
7839
|
);
|
|
7630
|
-
const handleImageError =
|
|
7840
|
+
const handleImageError = useCallback3((imageId) => {
|
|
7631
7841
|
setImageErrors((prev) => new Set(prev).add(imageId));
|
|
7632
7842
|
}, []);
|
|
7633
7843
|
const gridColsClass = images?.length === 1 ? "grid-cols-1" : {
|
|
@@ -7636,7 +7846,7 @@ var Whiteboard = ({
|
|
|
7636
7846
|
4: "grid-cols-1 sm:grid-cols-2 lg:grid-cols-4"
|
|
7637
7847
|
}[imagesPerRow];
|
|
7638
7848
|
if (!images || images.length === 0) {
|
|
7639
|
-
return /* @__PURE__ */
|
|
7849
|
+
return /* @__PURE__ */ jsx38(
|
|
7640
7850
|
"div",
|
|
7641
7851
|
{
|
|
7642
7852
|
className: cn(
|
|
@@ -7644,11 +7854,11 @@ var Whiteboard = ({
|
|
|
7644
7854
|
className
|
|
7645
7855
|
),
|
|
7646
7856
|
...rest,
|
|
7647
|
-
children: /* @__PURE__ */
|
|
7857
|
+
children: /* @__PURE__ */ jsx38("p", { className: "text-gray-400 text-sm", children: "Nenhuma imagem dispon\xEDvel" })
|
|
7648
7858
|
}
|
|
7649
7859
|
);
|
|
7650
7860
|
}
|
|
7651
|
-
return /* @__PURE__ */
|
|
7861
|
+
return /* @__PURE__ */ jsx38(
|
|
7652
7862
|
"div",
|
|
7653
7863
|
{
|
|
7654
7864
|
className: cn(
|
|
@@ -7656,7 +7866,7 @@ var Whiteboard = ({
|
|
|
7656
7866
|
className
|
|
7657
7867
|
),
|
|
7658
7868
|
...rest,
|
|
7659
|
-
children: /* @__PURE__ */
|
|
7869
|
+
children: /* @__PURE__ */ jsx38("div", { className: cn("grid gap-4", gridColsClass), children: images.map((image) => /* @__PURE__ */ jsxs32(
|
|
7660
7870
|
"div",
|
|
7661
7871
|
{
|
|
7662
7872
|
className: "relative group overflow-hidden bg-gray-100 rounded-lg",
|
|
@@ -7664,7 +7874,7 @@ var Whiteboard = ({
|
|
|
7664
7874
|
width: `${IMAGE_WIDTH}px`
|
|
7665
7875
|
},
|
|
7666
7876
|
children: [
|
|
7667
|
-
/* @__PURE__ */
|
|
7877
|
+
/* @__PURE__ */ jsx38(
|
|
7668
7878
|
"div",
|
|
7669
7879
|
{
|
|
7670
7880
|
className: "relative",
|
|
@@ -7672,8 +7882,8 @@ var Whiteboard = ({
|
|
|
7672
7882
|
width: `${IMAGE_WIDTH}px`,
|
|
7673
7883
|
height: `${IMAGE_HEIGHT}px`
|
|
7674
7884
|
},
|
|
7675
|
-
children: imageErrors.has(image.id) ? /* @__PURE__ */
|
|
7676
|
-
/* @__PURE__ */
|
|
7885
|
+
children: imageErrors.has(image.id) ? /* @__PURE__ */ jsx38("div", { className: "absolute inset-0 flex items-center justify-center bg-gray-200", children: /* @__PURE__ */ jsx38("p", { className: "text-gray-500 text-sm text-center px-2", children: "Imagem indispon\xEDvel" }) }) : /* @__PURE__ */ jsxs32(Fragment8, { children: [
|
|
7886
|
+
/* @__PURE__ */ jsx38(
|
|
7677
7887
|
"img",
|
|
7678
7888
|
{
|
|
7679
7889
|
src: image.imageUrl,
|
|
@@ -7683,18 +7893,18 @@ var Whiteboard = ({
|
|
|
7683
7893
|
onError: () => handleImageError(image.id)
|
|
7684
7894
|
}
|
|
7685
7895
|
),
|
|
7686
|
-
/* @__PURE__ */
|
|
7896
|
+
/* @__PURE__ */ jsx38("div", { className: "absolute inset-0 bg-gradient-to-t from-black/20 to-transparent" })
|
|
7687
7897
|
] })
|
|
7688
7898
|
}
|
|
7689
7899
|
),
|
|
7690
|
-
showDownload && /* @__PURE__ */
|
|
7900
|
+
showDownload && /* @__PURE__ */ jsx38(
|
|
7691
7901
|
"button",
|
|
7692
7902
|
{
|
|
7693
7903
|
type: "button",
|
|
7694
7904
|
onClick: () => handleDownload(image),
|
|
7695
7905
|
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",
|
|
7696
7906
|
"aria-label": `Download ${image.title || "imagem"}`,
|
|
7697
|
-
children: /* @__PURE__ */
|
|
7907
|
+
children: /* @__PURE__ */ jsx38(
|
|
7698
7908
|
ArrowsOut,
|
|
7699
7909
|
{
|
|
7700
7910
|
size: 24,
|
|
@@ -7718,12 +7928,12 @@ import {
|
|
|
7718
7928
|
createContext,
|
|
7719
7929
|
useContext,
|
|
7720
7930
|
useEffect as useEffect14,
|
|
7721
|
-
useState as
|
|
7722
|
-
useCallback as
|
|
7931
|
+
useState as useState17,
|
|
7932
|
+
useCallback as useCallback4,
|
|
7723
7933
|
useMemo as useMemo4
|
|
7724
7934
|
} from "react";
|
|
7725
7935
|
import { useLocation, Navigate } from "react-router-dom";
|
|
7726
|
-
import { Fragment as
|
|
7936
|
+
import { Fragment as Fragment9, jsx as jsx39 } from "react/jsx-runtime";
|
|
7727
7937
|
var AuthContext = createContext(void 0);
|
|
7728
7938
|
var AuthProvider = ({
|
|
7729
7939
|
children,
|
|
@@ -7734,12 +7944,12 @@ var AuthProvider = ({
|
|
|
7734
7944
|
getSessionFn,
|
|
7735
7945
|
getTokensFn
|
|
7736
7946
|
}) => {
|
|
7737
|
-
const [authState, setAuthState] =
|
|
7947
|
+
const [authState, setAuthState] = useState17({
|
|
7738
7948
|
isAuthenticated: false,
|
|
7739
7949
|
isLoading: true,
|
|
7740
7950
|
...initialAuthState
|
|
7741
7951
|
});
|
|
7742
|
-
const checkAuth =
|
|
7952
|
+
const checkAuth = useCallback4(async () => {
|
|
7743
7953
|
try {
|
|
7744
7954
|
setAuthState((prev) => ({ ...prev, isLoading: true }));
|
|
7745
7955
|
if (!checkAuthFn) {
|
|
@@ -7770,7 +7980,7 @@ var AuthProvider = ({
|
|
|
7770
7980
|
return false;
|
|
7771
7981
|
}
|
|
7772
7982
|
}, [checkAuthFn, getUserFn, getSessionFn, getTokensFn]);
|
|
7773
|
-
const signOut =
|
|
7983
|
+
const signOut = useCallback4(() => {
|
|
7774
7984
|
if (signOutFn) {
|
|
7775
7985
|
signOutFn();
|
|
7776
7986
|
}
|
|
@@ -7793,7 +8003,7 @@ var AuthProvider = ({
|
|
|
7793
8003
|
}),
|
|
7794
8004
|
[authState, checkAuth, signOut]
|
|
7795
8005
|
);
|
|
7796
|
-
return /* @__PURE__ */
|
|
8006
|
+
return /* @__PURE__ */ jsx39(AuthContext.Provider, { value: contextValue, children });
|
|
7797
8007
|
};
|
|
7798
8008
|
var useAuth = () => {
|
|
7799
8009
|
const context = useContext(AuthContext);
|
|
@@ -7809,9 +8019,9 @@ var ProtectedRoute = ({
|
|
|
7809
8019
|
additionalCheck
|
|
7810
8020
|
}) => {
|
|
7811
8021
|
const { isAuthenticated, isLoading, ...authState } = useAuth();
|
|
7812
|
-
const defaultLoadingComponent = /* @__PURE__ */
|
|
8022
|
+
const defaultLoadingComponent = /* @__PURE__ */ jsx39("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx39("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
7813
8023
|
if (isLoading) {
|
|
7814
|
-
return /* @__PURE__ */
|
|
8024
|
+
return /* @__PURE__ */ jsx39(Fragment9, { children: loadingComponent || defaultLoadingComponent });
|
|
7815
8025
|
}
|
|
7816
8026
|
if (!isAuthenticated) {
|
|
7817
8027
|
if (typeof window !== "undefined") {
|
|
@@ -7822,12 +8032,12 @@ var ProtectedRoute = ({
|
|
|
7822
8032
|
return null;
|
|
7823
8033
|
}
|
|
7824
8034
|
}
|
|
7825
|
-
return /* @__PURE__ */
|
|
8035
|
+
return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
|
|
7826
8036
|
}
|
|
7827
8037
|
if (additionalCheck && !additionalCheck({ isAuthenticated, isLoading, ...authState })) {
|
|
7828
|
-
return /* @__PURE__ */
|
|
8038
|
+
return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
|
|
7829
8039
|
}
|
|
7830
|
-
return /* @__PURE__ */
|
|
8040
|
+
return /* @__PURE__ */ jsx39(Fragment9, { children });
|
|
7831
8041
|
};
|
|
7832
8042
|
var PublicRoute = ({
|
|
7833
8043
|
children,
|
|
@@ -7837,15 +8047,15 @@ var PublicRoute = ({
|
|
|
7837
8047
|
}) => {
|
|
7838
8048
|
const { isAuthenticated, isLoading } = useAuth();
|
|
7839
8049
|
if (checkAuthBeforeRender && isLoading) {
|
|
7840
|
-
return /* @__PURE__ */
|
|
8050
|
+
return /* @__PURE__ */ jsx39("div", { className: "flex items-center justify-center min-h-screen", children: /* @__PURE__ */ jsx39("div", { className: "text-text-950 text-lg", children: "Carregando..." }) });
|
|
7841
8051
|
}
|
|
7842
8052
|
if (isAuthenticated && redirectIfAuthenticated) {
|
|
7843
|
-
return /* @__PURE__ */
|
|
8053
|
+
return /* @__PURE__ */ jsx39(Navigate, { to: redirectTo, replace: true });
|
|
7844
8054
|
}
|
|
7845
|
-
return /* @__PURE__ */
|
|
8055
|
+
return /* @__PURE__ */ jsx39(Fragment9, { children });
|
|
7846
8056
|
};
|
|
7847
8057
|
var withAuth = (Component, options = {}) => {
|
|
7848
|
-
return (props) => /* @__PURE__ */
|
|
8058
|
+
return (props) => /* @__PURE__ */ jsx39(ProtectedRoute, { ...options, children: /* @__PURE__ */ jsx39(Component, { ...props }) });
|
|
7849
8059
|
};
|
|
7850
8060
|
var useAuthGuard = (options = {}) => {
|
|
7851
8061
|
const authState = useAuth();
|
|
@@ -7860,7 +8070,7 @@ var useAuthGuard = (options = {}) => {
|
|
|
7860
8070
|
var useRouteAuth = (fallbackPath = "/") => {
|
|
7861
8071
|
const { isAuthenticated, isLoading } = useAuth();
|
|
7862
8072
|
const location = useLocation();
|
|
7863
|
-
const redirectToLogin = () => /* @__PURE__ */
|
|
8073
|
+
const redirectToLogin = () => /* @__PURE__ */ jsx39(Navigate, { to: fallbackPath, state: { from: location }, replace: true });
|
|
7864
8074
|
return {
|
|
7865
8075
|
isAuthenticated,
|
|
7866
8076
|
isLoading,
|
|
@@ -7936,7 +8146,7 @@ function createZustandAuthAdapter(useAuthStore) {
|
|
|
7936
8146
|
}
|
|
7937
8147
|
|
|
7938
8148
|
// src/components/Auth/useUrlAuthentication.ts
|
|
7939
|
-
import { useEffect as useEffect15, useRef as
|
|
8149
|
+
import { useEffect as useEffect15, useRef as useRef11 } from "react";
|
|
7940
8150
|
import { useLocation as useLocation2 } from "react-router-dom";
|
|
7941
8151
|
var getAuthParams = (location, extractParams) => {
|
|
7942
8152
|
const searchParams = new URLSearchParams(location.search);
|
|
@@ -7984,7 +8194,7 @@ var handleUserData = (responseData, setUser) => {
|
|
|
7984
8194
|
};
|
|
7985
8195
|
function useUrlAuthentication(options) {
|
|
7986
8196
|
const location = useLocation2();
|
|
7987
|
-
const processedRef =
|
|
8197
|
+
const processedRef = useRef11(false);
|
|
7988
8198
|
useEffect15(() => {
|
|
7989
8199
|
const handleAuthentication = async () => {
|
|
7990
8200
|
if (processedRef.current) {
|
|
@@ -8077,13 +8287,13 @@ import {
|
|
|
8077
8287
|
XCircle as XCircle5
|
|
8078
8288
|
} from "phosphor-react";
|
|
8079
8289
|
import {
|
|
8080
|
-
forwardRef as
|
|
8290
|
+
forwardRef as forwardRef20,
|
|
8081
8291
|
useEffect as useEffect16,
|
|
8082
8292
|
useMemo as useMemo6,
|
|
8083
8293
|
useId as useId10,
|
|
8084
|
-
useState as
|
|
8085
|
-
useCallback as
|
|
8086
|
-
useRef as
|
|
8294
|
+
useState as useState18,
|
|
8295
|
+
useCallback as useCallback5,
|
|
8296
|
+
useRef as useRef12
|
|
8087
8297
|
} from "react";
|
|
8088
8298
|
|
|
8089
8299
|
// src/components/Quiz/useQuizStore.ts
|
|
@@ -8720,13 +8930,13 @@ var useQuizStore = create7()(
|
|
|
8720
8930
|
var mock_image_question_default = "./mock-image-question-HEZCLFDL.png";
|
|
8721
8931
|
|
|
8722
8932
|
// src/components/Quiz/Quiz.tsx
|
|
8723
|
-
import { Fragment as
|
|
8933
|
+
import { Fragment as Fragment10, jsx as jsx40, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
8724
8934
|
var getStatusBadge = (status) => {
|
|
8725
8935
|
switch (status) {
|
|
8726
8936
|
case "correct":
|
|
8727
|
-
return /* @__PURE__ */
|
|
8937
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "success", iconLeft: /* @__PURE__ */ jsx40(CheckCircle6, {}), children: "Resposta correta" });
|
|
8728
8938
|
case "incorrect":
|
|
8729
|
-
return /* @__PURE__ */
|
|
8939
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "error", iconLeft: /* @__PURE__ */ jsx40(XCircle5, {}), children: "Resposta incorreta" });
|
|
8730
8940
|
default:
|
|
8731
8941
|
return null;
|
|
8732
8942
|
}
|
|
@@ -8739,17 +8949,17 @@ var getStatusStyles = (variantCorrect) => {
|
|
|
8739
8949
|
return "bg-error-background border-error-300";
|
|
8740
8950
|
}
|
|
8741
8951
|
};
|
|
8742
|
-
var Quiz =
|
|
8952
|
+
var Quiz = forwardRef20(({ children, className, variant = "default", ...props }, ref) => {
|
|
8743
8953
|
const { setVariant } = useQuizStore();
|
|
8744
8954
|
useEffect16(() => {
|
|
8745
8955
|
setVariant(variant);
|
|
8746
8956
|
}, [variant, setVariant]);
|
|
8747
|
-
return /* @__PURE__ */
|
|
8957
|
+
return /* @__PURE__ */ jsx40("div", { ref, className: cn("flex flex-col", className), ...props, children });
|
|
8748
8958
|
});
|
|
8749
|
-
var QuizHeaderResult =
|
|
8959
|
+
var QuizHeaderResult = forwardRef20(
|
|
8750
8960
|
({ className, ...props }, ref) => {
|
|
8751
8961
|
const { getQuestionResultByQuestionId, getCurrentQuestion } = useQuizStore();
|
|
8752
|
-
const [status, setStatus] =
|
|
8962
|
+
const [status, setStatus] = useState18(void 0);
|
|
8753
8963
|
useEffect16(() => {
|
|
8754
8964
|
const cq = getCurrentQuestion();
|
|
8755
8965
|
if (!cq) {
|
|
@@ -8785,7 +8995,7 @@ var QuizHeaderResult = forwardRef19(
|
|
|
8785
8995
|
return "N\xE3o foi dessa vez...voc\xEA deixou a resposta em branco";
|
|
8786
8996
|
}
|
|
8787
8997
|
};
|
|
8788
|
-
return /* @__PURE__ */
|
|
8998
|
+
return /* @__PURE__ */ jsxs33(
|
|
8789
8999
|
"div",
|
|
8790
9000
|
{
|
|
8791
9001
|
ref,
|
|
@@ -8796,14 +9006,14 @@ var QuizHeaderResult = forwardRef19(
|
|
|
8796
9006
|
),
|
|
8797
9007
|
...props,
|
|
8798
9008
|
children: [
|
|
8799
|
-
/* @__PURE__ */
|
|
8800
|
-
/* @__PURE__ */
|
|
9009
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-lg", children: "Resultado" }),
|
|
9010
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-700 text-md", children: getLabelByAnswersStatus() })
|
|
8801
9011
|
]
|
|
8802
9012
|
}
|
|
8803
9013
|
);
|
|
8804
9014
|
}
|
|
8805
9015
|
);
|
|
8806
|
-
var QuizTitle =
|
|
9016
|
+
var QuizTitle = forwardRef20(
|
|
8807
9017
|
({ className, ...props }, ref) => {
|
|
8808
9018
|
const {
|
|
8809
9019
|
currentQuestionIndex,
|
|
@@ -8813,7 +9023,7 @@ var QuizTitle = forwardRef19(
|
|
|
8813
9023
|
formatTime: formatTime2,
|
|
8814
9024
|
isStarted
|
|
8815
9025
|
} = useQuizStore();
|
|
8816
|
-
const [showExitConfirmation, setShowExitConfirmation] =
|
|
9026
|
+
const [showExitConfirmation, setShowExitConfirmation] = useState18(false);
|
|
8817
9027
|
const totalQuestions = getTotalQuestions();
|
|
8818
9028
|
const quizTitle = getQuizTitle();
|
|
8819
9029
|
const handleBackClick = () => {
|
|
@@ -8830,8 +9040,8 @@ var QuizTitle = forwardRef19(
|
|
|
8830
9040
|
const handleCancelExit = () => {
|
|
8831
9041
|
setShowExitConfirmation(false);
|
|
8832
9042
|
};
|
|
8833
|
-
return /* @__PURE__ */
|
|
8834
|
-
/* @__PURE__ */
|
|
9043
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9044
|
+
/* @__PURE__ */ jsxs33(
|
|
8835
9045
|
"div",
|
|
8836
9046
|
{
|
|
8837
9047
|
ref,
|
|
@@ -8841,24 +9051,24 @@ var QuizTitle = forwardRef19(
|
|
|
8841
9051
|
),
|
|
8842
9052
|
...props,
|
|
8843
9053
|
children: [
|
|
8844
|
-
/* @__PURE__ */
|
|
9054
|
+
/* @__PURE__ */ jsx40(
|
|
8845
9055
|
IconButton_default,
|
|
8846
9056
|
{
|
|
8847
|
-
icon: /* @__PURE__ */
|
|
9057
|
+
icon: /* @__PURE__ */ jsx40(CaretLeft3, { size: 24 }),
|
|
8848
9058
|
size: "md",
|
|
8849
9059
|
"aria-label": "Voltar",
|
|
8850
9060
|
onClick: handleBackClick
|
|
8851
9061
|
}
|
|
8852
9062
|
),
|
|
8853
|
-
/* @__PURE__ */
|
|
8854
|
-
/* @__PURE__ */
|
|
8855
|
-
/* @__PURE__ */
|
|
9063
|
+
/* @__PURE__ */ jsxs33("span", { className: "flex flex-col gap-2 text-center", children: [
|
|
9064
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-md", children: quizTitle }),
|
|
9065
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-600 text-xs", children: totalQuestions > 0 ? `${currentQuestionIndex + 1} de ${totalQuestions}` : "0 de 0" })
|
|
8856
9066
|
] }),
|
|
8857
|
-
/* @__PURE__ */
|
|
9067
|
+
/* @__PURE__ */ jsx40("span", { className: "flex flex-row items-center justify-center", children: /* @__PURE__ */ jsx40(Badge_default, { variant: "outlined", action: "info", iconLeft: /* @__PURE__ */ jsx40(Clock2, {}), children: isStarted ? formatTime2(timeElapsed) : "00:00" }) })
|
|
8858
9068
|
]
|
|
8859
9069
|
}
|
|
8860
9070
|
),
|
|
8861
|
-
/* @__PURE__ */
|
|
9071
|
+
/* @__PURE__ */ jsx40(
|
|
8862
9072
|
AlertDialog,
|
|
8863
9073
|
{
|
|
8864
9074
|
isOpen: showExitConfirmation,
|
|
@@ -8874,15 +9084,15 @@ var QuizTitle = forwardRef19(
|
|
|
8874
9084
|
] });
|
|
8875
9085
|
}
|
|
8876
9086
|
);
|
|
8877
|
-
var QuizSubTitle =
|
|
9087
|
+
var QuizSubTitle = forwardRef20(
|
|
8878
9088
|
({ subTitle, ...props }, ref) => {
|
|
8879
|
-
return /* @__PURE__ */
|
|
9089
|
+
return /* @__PURE__ */ jsx40("div", { className: "px-4 pb-2 pt-6", ...props, ref, children: /* @__PURE__ */ jsx40("p", { className: "font-bold text-lg text-text-950", children: subTitle }) });
|
|
8880
9090
|
}
|
|
8881
9091
|
);
|
|
8882
9092
|
var QuizHeader = () => {
|
|
8883
9093
|
const { getCurrentQuestion, currentQuestionIndex } = useQuizStore();
|
|
8884
9094
|
const currentQuestion = getCurrentQuestion();
|
|
8885
|
-
return /* @__PURE__ */
|
|
9095
|
+
return /* @__PURE__ */ jsx40(
|
|
8886
9096
|
HeaderAlternative,
|
|
8887
9097
|
{
|
|
8888
9098
|
title: currentQuestion ? `Quest\xE3o ${currentQuestionIndex + 1}` : "Quest\xE3o",
|
|
@@ -8891,8 +9101,8 @@ var QuizHeader = () => {
|
|
|
8891
9101
|
}
|
|
8892
9102
|
);
|
|
8893
9103
|
};
|
|
8894
|
-
var QuizContainer =
|
|
8895
|
-
return /* @__PURE__ */
|
|
9104
|
+
var QuizContainer = forwardRef20(({ children, className, ...props }, ref) => {
|
|
9105
|
+
return /* @__PURE__ */ jsx40(
|
|
8896
9106
|
"div",
|
|
8897
9107
|
{
|
|
8898
9108
|
ref,
|
|
@@ -8905,7 +9115,7 @@ var QuizContainer = forwardRef19(({ children, className, ...props }, ref) => {
|
|
|
8905
9115
|
}
|
|
8906
9116
|
);
|
|
8907
9117
|
});
|
|
8908
|
-
var QuizContent =
|
|
9118
|
+
var QuizContent = forwardRef20(({ paddingBottom }) => {
|
|
8909
9119
|
const { getCurrentQuestion } = useQuizStore();
|
|
8910
9120
|
const currentQuestion = getCurrentQuestion();
|
|
8911
9121
|
const questionComponents = {
|
|
@@ -8918,7 +9128,7 @@ var QuizContent = forwardRef19(({ paddingBottom }) => {
|
|
|
8918
9128
|
["IMAGEM" /* IMAGEM */]: QuizImageQuestion
|
|
8919
9129
|
};
|
|
8920
9130
|
const QuestionComponent = currentQuestion ? questionComponents[currentQuestion.questionType] : null;
|
|
8921
|
-
return QuestionComponent ? /* @__PURE__ */
|
|
9131
|
+
return QuestionComponent ? /* @__PURE__ */ jsx40(QuestionComponent, { paddingBottom }) : null;
|
|
8922
9132
|
});
|
|
8923
9133
|
var QuizAlternative = ({ paddingBottom }) => {
|
|
8924
9134
|
const {
|
|
@@ -8955,10 +9165,10 @@ var QuizAlternative = ({ paddingBottom }) => {
|
|
|
8955
9165
|
};
|
|
8956
9166
|
});
|
|
8957
9167
|
if (!alternatives)
|
|
8958
|
-
return /* @__PURE__ */
|
|
8959
|
-
return /* @__PURE__ */
|
|
8960
|
-
/* @__PURE__ */
|
|
8961
|
-
/* @__PURE__ */
|
|
9168
|
+
return /* @__PURE__ */ jsx40("div", { children: /* @__PURE__ */ jsx40("p", { children: "N\xE3o h\xE1 Alternativas" }) });
|
|
9169
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9170
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
9171
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
|
|
8962
9172
|
AlternativesList,
|
|
8963
9173
|
{
|
|
8964
9174
|
mode: variant === "default" ? "interactive" : "readonly",
|
|
@@ -8990,8 +9200,8 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
|
|
|
8990
9200
|
const currentQuestionResult = getQuestionResultByQuestionId(
|
|
8991
9201
|
currentQuestion?.id || ""
|
|
8992
9202
|
);
|
|
8993
|
-
const prevSelectedValuesRef =
|
|
8994
|
-
const prevQuestionIdRef =
|
|
9203
|
+
const prevSelectedValuesRef = useRef12([]);
|
|
9204
|
+
const prevQuestionIdRef = useRef12("");
|
|
8995
9205
|
const allCurrentAnswerIds = useMemo6(() => {
|
|
8996
9206
|
return allCurrentAnswers?.map((answer) => answer.optionId) || [];
|
|
8997
9207
|
}, [allCurrentAnswers]);
|
|
@@ -9022,7 +9232,7 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
|
|
|
9022
9232
|
variant,
|
|
9023
9233
|
currentQuestionResult?.selectedOptions
|
|
9024
9234
|
]);
|
|
9025
|
-
const handleSelectedValues =
|
|
9235
|
+
const handleSelectedValues = useCallback5(
|
|
9026
9236
|
(values) => {
|
|
9027
9237
|
if (currentQuestion) {
|
|
9028
9238
|
selectMultipleAnswer(currentQuestion.id, values);
|
|
@@ -9056,10 +9266,10 @@ var QuizMultipleChoice = ({ paddingBottom }) => {
|
|
|
9056
9266
|
};
|
|
9057
9267
|
});
|
|
9058
9268
|
if (!choices)
|
|
9059
|
-
return /* @__PURE__ */
|
|
9060
|
-
return /* @__PURE__ */
|
|
9061
|
-
/* @__PURE__ */
|
|
9062
|
-
/* @__PURE__ */
|
|
9269
|
+
return /* @__PURE__ */ jsx40("div", { children: /* @__PURE__ */ jsx40("p", { children: "N\xE3o h\xE1 Escolhas Multiplas" }) });
|
|
9270
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9271
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
9272
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
|
|
9063
9273
|
MultipleChoiceList,
|
|
9064
9274
|
{
|
|
9065
9275
|
choices,
|
|
@@ -9085,13 +9295,13 @@ var QuizDissertative = ({ paddingBottom }) => {
|
|
|
9085
9295
|
currentQuestion?.id || ""
|
|
9086
9296
|
);
|
|
9087
9297
|
const currentAnswer = getCurrentAnswer();
|
|
9088
|
-
const textareaRef =
|
|
9298
|
+
const textareaRef = useRef12(null);
|
|
9089
9299
|
const handleAnswerChange = (value) => {
|
|
9090
9300
|
if (currentQuestion) {
|
|
9091
9301
|
selectDissertativeAnswer(currentQuestion.id, value);
|
|
9092
9302
|
}
|
|
9093
9303
|
};
|
|
9094
|
-
const adjustTextareaHeight =
|
|
9304
|
+
const adjustTextareaHeight = useCallback5(() => {
|
|
9095
9305
|
if (textareaRef.current) {
|
|
9096
9306
|
textareaRef.current.style.height = "auto";
|
|
9097
9307
|
const scrollHeight = textareaRef.current.scrollHeight;
|
|
@@ -9105,12 +9315,12 @@ var QuizDissertative = ({ paddingBottom }) => {
|
|
|
9105
9315
|
adjustTextareaHeight();
|
|
9106
9316
|
}, [currentAnswer, adjustTextareaHeight]);
|
|
9107
9317
|
if (!currentQuestion) {
|
|
9108
|
-
return /* @__PURE__ */
|
|
9318
|
+
return /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-md", children: "Nenhuma quest\xE3o dispon\xEDvel" }) });
|
|
9109
9319
|
}
|
|
9110
9320
|
const localAnswer = (variant == "result" ? currentQuestionResult?.answer : currentAnswer?.answer) || "";
|
|
9111
|
-
return /* @__PURE__ */
|
|
9112
|
-
/* @__PURE__ */
|
|
9113
|
-
/* @__PURE__ */
|
|
9321
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9322
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Resposta" }),
|
|
9323
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn(variant != "result" && paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "space-y-4 max-h-[600px] overflow-y-auto", children: variant === "default" ? /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40(
|
|
9114
9324
|
TextArea_default,
|
|
9115
9325
|
{
|
|
9116
9326
|
ref: textareaRef,
|
|
@@ -9120,10 +9330,10 @@ var QuizDissertative = ({ paddingBottom }) => {
|
|
|
9120
9330
|
rows: 4,
|
|
9121
9331
|
className: "min-h-[120px] max-h-[400px] resize-none overflow-y-auto"
|
|
9122
9332
|
}
|
|
9123
|
-
) }) : /* @__PURE__ */
|
|
9124
|
-
variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */
|
|
9125
|
-
/* @__PURE__ */
|
|
9126
|
-
/* @__PURE__ */
|
|
9333
|
+
) }) : /* @__PURE__ */ jsx40("div", { className: "space-y-4", children: /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: localAnswer || "Nenhuma resposta fornecida" }) }) }) }),
|
|
9334
|
+
variant === "result" && currentQuestionResult?.answerStatus == "RESPOSTA_INCORRETA" /* RESPOSTA_INCORRETA */ && /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9335
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Observa\xE7\xE3o do professor" }),
|
|
9336
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("p", { className: "text-text-600 text-md whitespace-pre-wrap", children: "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Mauris euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia curae; Integer euismod, urna eu tincidunt consectetur, nisi nisl aliquam nunc, eget aliquam massa nisl quis neque. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Suspendisse potenti. Nullam ac urna eu felis dapibus condimentum sit amet a augue. Sed non neque elit. Sed ut imperdiet nisi. Proin condimentum fermentum nunc. Etiam pharetra, erat sed fermentum feugiat, velit mauris egestas quam, ut aliquam massa nisl quis neque. Suspendisse in orci enim." }) })
|
|
9127
9337
|
] })
|
|
9128
9338
|
] });
|
|
9129
9339
|
};
|
|
@@ -9149,16 +9359,16 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
|
|
|
9149
9359
|
];
|
|
9150
9360
|
const getLetterByIndex = (index) => String.fromCharCode(97 + index);
|
|
9151
9361
|
const isDefaultVariant = variant == "default";
|
|
9152
|
-
return /* @__PURE__ */
|
|
9153
|
-
/* @__PURE__ */
|
|
9154
|
-
/* @__PURE__ */
|
|
9362
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9363
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
9364
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
9155
9365
|
const variantCorrect = option.isCorrect ? "correct" : "incorrect";
|
|
9156
|
-
return /* @__PURE__ */
|
|
9366
|
+
return /* @__PURE__ */ jsxs33(
|
|
9157
9367
|
"section",
|
|
9158
9368
|
{
|
|
9159
9369
|
className: "flex flex-col gap-2",
|
|
9160
9370
|
children: [
|
|
9161
|
-
/* @__PURE__ */
|
|
9371
|
+
/* @__PURE__ */ jsxs33(
|
|
9162
9372
|
"div",
|
|
9163
9373
|
{
|
|
9164
9374
|
className: cn(
|
|
@@ -9166,20 +9376,20 @@ var QuizTrueOrFalse = ({ paddingBottom }) => {
|
|
|
9166
9376
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
9167
9377
|
),
|
|
9168
9378
|
children: [
|
|
9169
|
-
/* @__PURE__ */
|
|
9170
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
9171
|
-
/* @__PURE__ */
|
|
9172
|
-
/* @__PURE__ */
|
|
9173
|
-
/* @__PURE__ */
|
|
9174
|
-
/* @__PURE__ */
|
|
9379
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index).concat(") ").concat(option.label) }),
|
|
9380
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs33(Select_default, { size: "medium", children: [
|
|
9381
|
+
/* @__PURE__ */ jsx40(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione opc\xE3o" }) }),
|
|
9382
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
9383
|
+
/* @__PURE__ */ jsx40(SelectItem, { value: "V", children: "Verdadeiro" }),
|
|
9384
|
+
/* @__PURE__ */ jsx40(SelectItem, { value: "F", children: "Falso" })
|
|
9175
9385
|
] })
|
|
9176
|
-
] }) : /* @__PURE__ */
|
|
9386
|
+
] }) : /* @__PURE__ */ jsx40("div", { className: "flex-shrink-0", children: getStatusBadge(variantCorrect) })
|
|
9177
9387
|
]
|
|
9178
9388
|
}
|
|
9179
9389
|
),
|
|
9180
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
9181
|
-
/* @__PURE__ */
|
|
9182
|
-
!option.isCorrect && /* @__PURE__ */
|
|
9390
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs33("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
9391
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-800 text-2xs", children: "Resposta selecionada: V" }),
|
|
9392
|
+
!option.isCorrect && /* @__PURE__ */ jsx40("p", { className: "text-text-800 text-2xs", children: "Resposta correta: F" })
|
|
9183
9393
|
] })
|
|
9184
9394
|
]
|
|
9185
9395
|
},
|
|
@@ -9240,7 +9450,7 @@ var QuizConnectDots = ({ paddingBottom }) => {
|
|
|
9240
9450
|
isCorrect: false
|
|
9241
9451
|
}
|
|
9242
9452
|
];
|
|
9243
|
-
const [userAnswers, setUserAnswers] =
|
|
9453
|
+
const [userAnswers, setUserAnswers] = useState18(() => {
|
|
9244
9454
|
if (variant === "result") {
|
|
9245
9455
|
return mockUserAnswers;
|
|
9246
9456
|
}
|
|
@@ -9269,13 +9479,13 @@ var QuizConnectDots = ({ paddingBottom }) => {
|
|
|
9269
9479
|
const assignedDots = new Set(
|
|
9270
9480
|
userAnswers.map((a) => a.dotOption).filter(Boolean)
|
|
9271
9481
|
);
|
|
9272
|
-
return /* @__PURE__ */
|
|
9273
|
-
/* @__PURE__ */
|
|
9274
|
-
/* @__PURE__ */
|
|
9482
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9483
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
9484
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-3.5", children: options.map((option, index) => {
|
|
9275
9485
|
const answer = userAnswers[index];
|
|
9276
9486
|
const variantCorrect = answer.isCorrect ? "correct" : "incorrect";
|
|
9277
|
-
return /* @__PURE__ */
|
|
9278
|
-
/* @__PURE__ */
|
|
9487
|
+
return /* @__PURE__ */ jsxs33("section", { className: "flex flex-col gap-2", children: [
|
|
9488
|
+
/* @__PURE__ */ jsxs33(
|
|
9279
9489
|
"div",
|
|
9280
9490
|
{
|
|
9281
9491
|
className: cn(
|
|
@@ -9283,30 +9493,30 @@ var QuizConnectDots = ({ paddingBottom }) => {
|
|
|
9283
9493
|
!isDefaultVariant ? getStatusStyles(variantCorrect) : ""
|
|
9284
9494
|
),
|
|
9285
9495
|
children: [
|
|
9286
|
-
/* @__PURE__ */
|
|
9287
|
-
isDefaultVariant ? /* @__PURE__ */
|
|
9496
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-900 text-sm", children: getLetterByIndex(index) + ") " + option.label }),
|
|
9497
|
+
isDefaultVariant ? /* @__PURE__ */ jsxs33(
|
|
9288
9498
|
Select_default,
|
|
9289
9499
|
{
|
|
9290
9500
|
size: "medium",
|
|
9291
9501
|
value: answer.dotOption || void 0,
|
|
9292
9502
|
onValueChange: (value) => handleSelectDot(index, value),
|
|
9293
9503
|
children: [
|
|
9294
|
-
/* @__PURE__ */
|
|
9295
|
-
/* @__PURE__ */
|
|
9504
|
+
/* @__PURE__ */ jsx40(SelectTrigger, { className: "w-[180px]", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
9505
|
+
/* @__PURE__ */ jsx40(SelectContent, { children: dotsOptions.filter(
|
|
9296
9506
|
(dot) => !assignedDots.has(dot.label) || answer.dotOption === dot.label
|
|
9297
|
-
).map((dot) => /* @__PURE__ */
|
|
9507
|
+
).map((dot) => /* @__PURE__ */ jsx40(SelectItem, { value: dot.label, children: dot.label }, dot.label)) })
|
|
9298
9508
|
]
|
|
9299
9509
|
}
|
|
9300
|
-
) : /* @__PURE__ */
|
|
9510
|
+
) : /* @__PURE__ */ jsx40("div", { className: "flex-shrink-0", children: answer.isCorrect === null ? null : getStatusBadge(variantCorrect) })
|
|
9301
9511
|
]
|
|
9302
9512
|
}
|
|
9303
9513
|
),
|
|
9304
|
-
!isDefaultVariant && /* @__PURE__ */
|
|
9305
|
-
/* @__PURE__ */
|
|
9514
|
+
!isDefaultVariant && /* @__PURE__ */ jsxs33("span", { className: "flex flex-row gap-2 items-center", children: [
|
|
9515
|
+
/* @__PURE__ */ jsxs33("p", { className: "text-text-800 text-2xs", children: [
|
|
9306
9516
|
"Resposta selecionada: ",
|
|
9307
9517
|
answer.dotOption || "Nenhuma"
|
|
9308
9518
|
] }),
|
|
9309
|
-
!answer.isCorrect && /* @__PURE__ */
|
|
9519
|
+
!answer.isCorrect && /* @__PURE__ */ jsxs33("p", { className: "text-text-800 text-2xs", children: [
|
|
9310
9520
|
"Resposta correta: ",
|
|
9311
9521
|
answer.correctOption
|
|
9312
9522
|
] })
|
|
@@ -9359,7 +9569,7 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
9359
9569
|
isCorrect: true
|
|
9360
9570
|
}
|
|
9361
9571
|
];
|
|
9362
|
-
const [answers, setAnswers] =
|
|
9572
|
+
const [answers, setAnswers] = useState18({});
|
|
9363
9573
|
const baseId = useId10();
|
|
9364
9574
|
const getAvailableOptionsForSelect = (selectId) => {
|
|
9365
9575
|
const usedOptions = Object.entries(answers).filter(([key]) => key !== selectId).map(([, value]) => value);
|
|
@@ -9373,18 +9583,18 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
9373
9583
|
const mockAnswer = mockUserAnswers.find(
|
|
9374
9584
|
(answer) => answer.selectId === selectId
|
|
9375
9585
|
);
|
|
9376
|
-
return /* @__PURE__ */
|
|
9586
|
+
return /* @__PURE__ */ jsx40("p", { className: "inline-flex mb-2.5 text-success-600 font-semibold text-md border-b-2 border-success-600", children: mockAnswer?.correctAnswer });
|
|
9377
9587
|
};
|
|
9378
9588
|
const renderDefaultElement = (selectId, startIndex, selectedValue, availableOptionsForThisSelect) => {
|
|
9379
|
-
return /* @__PURE__ */
|
|
9589
|
+
return /* @__PURE__ */ jsxs33(
|
|
9380
9590
|
Select_default,
|
|
9381
9591
|
{
|
|
9382
9592
|
value: selectedValue,
|
|
9383
9593
|
onValueChange: (value) => handleSelectChange(selectId, value),
|
|
9384
9594
|
className: "inline-flex mb-2.5",
|
|
9385
9595
|
children: [
|
|
9386
|
-
/* @__PURE__ */
|
|
9387
|
-
/* @__PURE__ */
|
|
9596
|
+
/* @__PURE__ */ jsx40(SelectTrigger, { className: "inline-flex w-auto min-w-[140px] h-8 mx-1 bg-white border-gray-300", children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione op\xE7\xE3o" }) }),
|
|
9597
|
+
/* @__PURE__ */ jsx40(SelectContent, { children: availableOptionsForThisSelect.map((option, index) => /* @__PURE__ */ jsx40(SelectItem, { value: option, children: option }, `${option}-${index}`)) })
|
|
9388
9598
|
]
|
|
9389
9599
|
},
|
|
9390
9600
|
`${selectId}-${startIndex}`
|
|
@@ -9396,8 +9606,8 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
9396
9606
|
);
|
|
9397
9607
|
if (!mockAnswer) return null;
|
|
9398
9608
|
const action = mockAnswer.isCorrect ? "success" : "error";
|
|
9399
|
-
const icon = mockAnswer.isCorrect ? /* @__PURE__ */
|
|
9400
|
-
return /* @__PURE__ */
|
|
9609
|
+
const icon = mockAnswer.isCorrect ? /* @__PURE__ */ jsx40(CheckCircle6, {}) : /* @__PURE__ */ jsx40(XCircle5, {});
|
|
9610
|
+
return /* @__PURE__ */ jsx40(
|
|
9401
9611
|
Badge_default,
|
|
9402
9612
|
{
|
|
9403
9613
|
variant: "solid",
|
|
@@ -9405,7 +9615,7 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
9405
9615
|
iconRight: icon,
|
|
9406
9616
|
size: "large",
|
|
9407
9617
|
className: "py-3 w-[180px] justify-between mb-2.5",
|
|
9408
|
-
children: /* @__PURE__ */
|
|
9618
|
+
children: /* @__PURE__ */ jsx40("span", { className: "text-text-900", children: mockAnswer.userAnswer })
|
|
9409
9619
|
},
|
|
9410
9620
|
selectId
|
|
9411
9621
|
);
|
|
@@ -9461,25 +9671,25 @@ var QuizFill = ({ paddingBottom }) => {
|
|
|
9461
9671
|
}
|
|
9462
9672
|
return elements;
|
|
9463
9673
|
};
|
|
9464
|
-
return /* @__PURE__ */
|
|
9465
|
-
/* @__PURE__ */
|
|
9466
|
-
/* @__PURE__ */
|
|
9674
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9675
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Alternativas" }),
|
|
9676
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx40("div", { className: "space-y-6 px-4 h-auto", children: /* @__PURE__ */ jsx40(
|
|
9467
9677
|
"div",
|
|
9468
9678
|
{
|
|
9469
9679
|
className: cn(
|
|
9470
9680
|
"text-lg text-text-900 leading-8 h-auto",
|
|
9471
9681
|
variant != "result" && paddingBottom
|
|
9472
9682
|
),
|
|
9473
|
-
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */
|
|
9683
|
+
children: renderTextWithSelects(exampleText).map((element) => /* @__PURE__ */ jsx40("span", { children: element.element }, element.id))
|
|
9474
9684
|
}
|
|
9475
9685
|
) }) }),
|
|
9476
|
-
variant === "result" && /* @__PURE__ */
|
|
9477
|
-
/* @__PURE__ */
|
|
9478
|
-
/* @__PURE__ */
|
|
9686
|
+
variant === "result" && /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9687
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Resultado" }),
|
|
9688
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: "h-auto pb-0", children: /* @__PURE__ */ jsx40("div", { className: "space-y-6 px-4", children: /* @__PURE__ */ jsx40(
|
|
9479
9689
|
"div",
|
|
9480
9690
|
{
|
|
9481
9691
|
className: cn("text-lg text-text-900 leading-8", paddingBottom),
|
|
9482
|
-
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */
|
|
9692
|
+
children: renderTextWithSelects(exampleText, true).map((element) => /* @__PURE__ */ jsx40("span", { children: element.element }, element.id))
|
|
9483
9693
|
}
|
|
9484
9694
|
) }) })
|
|
9485
9695
|
] })
|
|
@@ -9497,7 +9707,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
9497
9707
|
};
|
|
9498
9708
|
const correctRadiusRelative = calculateCorrectRadiusRelative();
|
|
9499
9709
|
const mockUserAnswerRelative = { x: 0.72, y: 0.348 };
|
|
9500
|
-
const [clickPositionRelative, setClickPositionRelative] =
|
|
9710
|
+
const [clickPositionRelative, setClickPositionRelative] = useState18(variant == "result" ? mockUserAnswerRelative : null);
|
|
9501
9711
|
const convertToRelativeCoordinates = (x, y, rect) => {
|
|
9502
9712
|
const safeWidth = Math.max(rect.width, 1e-3);
|
|
9503
9713
|
const safeHeight = Math.max(rect.height, 1e-3);
|
|
@@ -9533,36 +9743,36 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
9533
9743
|
}
|
|
9534
9744
|
return "bg-success-600/70 border-white";
|
|
9535
9745
|
};
|
|
9536
|
-
return /* @__PURE__ */
|
|
9537
|
-
/* @__PURE__ */
|
|
9538
|
-
/* @__PURE__ */
|
|
9746
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9747
|
+
/* @__PURE__ */ jsx40(QuizSubTitle, { subTitle: "Clique na \xE1rea correta" }),
|
|
9748
|
+
/* @__PURE__ */ jsx40(QuizContainer, { className: cn("", paddingBottom), children: /* @__PURE__ */ jsxs33(
|
|
9539
9749
|
"div",
|
|
9540
9750
|
{
|
|
9541
9751
|
"data-testid": "quiz-image-container",
|
|
9542
9752
|
className: "space-y-6 p-3 relative inline-block",
|
|
9543
9753
|
children: [
|
|
9544
|
-
variant == "result" && /* @__PURE__ */
|
|
9754
|
+
variant == "result" && /* @__PURE__ */ jsxs33(
|
|
9545
9755
|
"div",
|
|
9546
9756
|
{
|
|
9547
9757
|
"data-testid": "quiz-legend",
|
|
9548
9758
|
className: "flex items-center gap-4 text-xs",
|
|
9549
9759
|
children: [
|
|
9550
|
-
/* @__PURE__ */
|
|
9551
|
-
/* @__PURE__ */
|
|
9552
|
-
/* @__PURE__ */
|
|
9760
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9761
|
+
/* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-indicator-primary/70 border border-[#F8CC2E]" }),
|
|
9762
|
+
/* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "\xC1rea correta" })
|
|
9553
9763
|
] }),
|
|
9554
|
-
/* @__PURE__ */
|
|
9555
|
-
/* @__PURE__ */
|
|
9556
|
-
/* @__PURE__ */
|
|
9764
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9765
|
+
/* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-success-600/70 border border-white" }),
|
|
9766
|
+
/* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "Resposta correta" })
|
|
9557
9767
|
] }),
|
|
9558
|
-
/* @__PURE__ */
|
|
9559
|
-
/* @__PURE__ */
|
|
9560
|
-
/* @__PURE__ */
|
|
9768
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-2", children: [
|
|
9769
|
+
/* @__PURE__ */ jsx40("div", { className: "w-3 h-3 rounded-full bg-indicator-error/70 border border-white" }),
|
|
9770
|
+
/* @__PURE__ */ jsx40("span", { className: "text-text-600 font-medium text-sm", children: "Resposta incorreta" })
|
|
9561
9771
|
] })
|
|
9562
9772
|
]
|
|
9563
9773
|
}
|
|
9564
9774
|
),
|
|
9565
|
-
/* @__PURE__ */
|
|
9775
|
+
/* @__PURE__ */ jsxs33(
|
|
9566
9776
|
"button",
|
|
9567
9777
|
{
|
|
9568
9778
|
"data-testid": "quiz-image-button",
|
|
@@ -9577,7 +9787,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
9577
9787
|
},
|
|
9578
9788
|
"aria-label": "\xC1rea da imagem interativa",
|
|
9579
9789
|
children: [
|
|
9580
|
-
/* @__PURE__ */
|
|
9790
|
+
/* @__PURE__ */ jsx40(
|
|
9581
9791
|
"img",
|
|
9582
9792
|
{
|
|
9583
9793
|
"data-testid": "quiz-image",
|
|
@@ -9586,7 +9796,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
9586
9796
|
className: "w-full h-auto rounded-md"
|
|
9587
9797
|
}
|
|
9588
9798
|
),
|
|
9589
|
-
variant === "result" && /* @__PURE__ */
|
|
9799
|
+
variant === "result" && /* @__PURE__ */ jsx40(
|
|
9590
9800
|
"div",
|
|
9591
9801
|
{
|
|
9592
9802
|
"data-testid": "quiz-correct-circle",
|
|
@@ -9601,7 +9811,7 @@ var QuizImageQuestion = ({ paddingBottom }) => {
|
|
|
9601
9811
|
}
|
|
9602
9812
|
}
|
|
9603
9813
|
),
|
|
9604
|
-
clickPositionRelative && /* @__PURE__ */
|
|
9814
|
+
clickPositionRelative && /* @__PURE__ */ jsx40(
|
|
9605
9815
|
"div",
|
|
9606
9816
|
{
|
|
9607
9817
|
"data-testid": "quiz-user-circle",
|
|
@@ -9669,18 +9879,18 @@ var QuizQuestionList = ({
|
|
|
9669
9879
|
return "Em branco";
|
|
9670
9880
|
}
|
|
9671
9881
|
};
|
|
9672
|
-
return /* @__PURE__ */
|
|
9673
|
-
Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */
|
|
9882
|
+
return /* @__PURE__ */ jsxs33("div", { className: "space-y-6 px-4 h-full", children: [
|
|
9883
|
+
Object.entries(filteredGroupedQuestions).length == 0 && /* @__PURE__ */ jsx40("div", { className: "flex items-center justify-center text-gray-500 py-8 h-full", children: /* @__PURE__ */ jsx40("p", { className: "text-lg", children: "Nenhum resultado" }) }),
|
|
9674
9884
|
Object.entries(filteredGroupedQuestions).map(
|
|
9675
|
-
([subjectId, questions]) => /* @__PURE__ */
|
|
9676
|
-
/* @__PURE__ */
|
|
9677
|
-
/* @__PURE__ */
|
|
9678
|
-
/* @__PURE__ */
|
|
9885
|
+
([subjectId, questions]) => /* @__PURE__ */ jsxs33("section", { className: "flex flex-col gap-2", children: [
|
|
9886
|
+
/* @__PURE__ */ jsxs33("span", { className: "pt-6 pb-4 flex flex-row gap-2", children: [
|
|
9887
|
+
/* @__PURE__ */ jsx40("div", { className: "bg-primary-500 p-1 rounded-sm flex items-center justify-center", children: /* @__PURE__ */ jsx40(BookOpen, { size: 17, className: "text-white" }) }),
|
|
9888
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-800 font-bold text-lg", children: questions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" })
|
|
9679
9889
|
] }),
|
|
9680
|
-
/* @__PURE__ */
|
|
9890
|
+
/* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2", children: questions.map((question) => {
|
|
9681
9891
|
const status = getQuestionStatus(question.id);
|
|
9682
9892
|
const questionNumber = getQuestionIndex(question.id);
|
|
9683
|
-
return /* @__PURE__ */
|
|
9893
|
+
return /* @__PURE__ */ jsx40(
|
|
9684
9894
|
CardStatus,
|
|
9685
9895
|
{
|
|
9686
9896
|
header: `Quest\xE3o ${questionNumber.toString().padStart(2, "0")}`,
|
|
@@ -9697,7 +9907,7 @@ var QuizQuestionList = ({
|
|
|
9697
9907
|
)
|
|
9698
9908
|
] });
|
|
9699
9909
|
};
|
|
9700
|
-
var QuizFooter =
|
|
9910
|
+
var QuizFooter = forwardRef20(
|
|
9701
9911
|
({
|
|
9702
9912
|
className,
|
|
9703
9913
|
onGoToSimulated,
|
|
@@ -9725,11 +9935,11 @@ var QuizFooter = forwardRef19(
|
|
|
9725
9935
|
const currentAnswer = getCurrentAnswer();
|
|
9726
9936
|
const currentQuestion = getCurrentQuestion();
|
|
9727
9937
|
const isCurrentQuestionSkipped = currentQuestion ? getQuestionStatusFromUserAnswers(currentQuestion.id) === "skipped" : false;
|
|
9728
|
-
const [alertDialogOpen, setAlertDialogOpen] =
|
|
9729
|
-
const [modalResultOpen, setModalResultOpen] =
|
|
9730
|
-
const [modalNavigateOpen, setModalNavigateOpen] =
|
|
9731
|
-
const [modalResolutionOpen, setModalResolutionOpen] =
|
|
9732
|
-
const [filterType, setFilterType] =
|
|
9938
|
+
const [alertDialogOpen, setAlertDialogOpen] = useState18(false);
|
|
9939
|
+
const [modalResultOpen, setModalResultOpen] = useState18(false);
|
|
9940
|
+
const [modalNavigateOpen, setModalNavigateOpen] = useState18(false);
|
|
9941
|
+
const [modalResolutionOpen, setModalResolutionOpen] = useState18(false);
|
|
9942
|
+
const [filterType, setFilterType] = useState18("all");
|
|
9733
9943
|
const unansweredQuestions = getUnansweredQuestionsFromUserAnswers();
|
|
9734
9944
|
const allQuestions = getTotalQuestions();
|
|
9735
9945
|
const handleFinishQuiz = async () => {
|
|
@@ -9760,8 +9970,8 @@ var QuizFooter = forwardRef19(
|
|
|
9760
9970
|
return;
|
|
9761
9971
|
}
|
|
9762
9972
|
};
|
|
9763
|
-
return /* @__PURE__ */
|
|
9764
|
-
/* @__PURE__ */
|
|
9973
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9974
|
+
/* @__PURE__ */ jsx40(
|
|
9765
9975
|
"footer",
|
|
9766
9976
|
{
|
|
9767
9977
|
ref,
|
|
@@ -9770,17 +9980,17 @@ var QuizFooter = forwardRef19(
|
|
|
9770
9980
|
className
|
|
9771
9981
|
),
|
|
9772
9982
|
...props,
|
|
9773
|
-
children: variant === "default" ? /* @__PURE__ */
|
|
9774
|
-
/* @__PURE__ */
|
|
9775
|
-
/* @__PURE__ */
|
|
9983
|
+
children: variant === "default" ? /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
9984
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-row items-center gap-1", children: [
|
|
9985
|
+
/* @__PURE__ */ jsx40(
|
|
9776
9986
|
IconButton_default,
|
|
9777
9987
|
{
|
|
9778
|
-
icon: /* @__PURE__ */
|
|
9988
|
+
icon: /* @__PURE__ */ jsx40(SquaresFour, { size: 24, className: "text-text-950" }),
|
|
9779
9989
|
size: "md",
|
|
9780
9990
|
onClick: () => setModalNavigateOpen(true)
|
|
9781
9991
|
}
|
|
9782
9992
|
),
|
|
9783
|
-
isFirstQuestion ? /* @__PURE__ */
|
|
9993
|
+
isFirstQuestion ? /* @__PURE__ */ jsx40(
|
|
9784
9994
|
Button_default,
|
|
9785
9995
|
{
|
|
9786
9996
|
variant: "outline",
|
|
@@ -9791,13 +10001,13 @@ var QuizFooter = forwardRef19(
|
|
|
9791
10001
|
},
|
|
9792
10002
|
children: "Pular"
|
|
9793
10003
|
}
|
|
9794
|
-
) : /* @__PURE__ */
|
|
10004
|
+
) : /* @__PURE__ */ jsx40(
|
|
9795
10005
|
Button_default,
|
|
9796
10006
|
{
|
|
9797
10007
|
size: "medium",
|
|
9798
10008
|
variant: "link",
|
|
9799
10009
|
action: "primary",
|
|
9800
|
-
iconLeft: /* @__PURE__ */
|
|
10010
|
+
iconLeft: /* @__PURE__ */ jsx40(CaretLeft3, { size: 18 }),
|
|
9801
10011
|
onClick: () => {
|
|
9802
10012
|
goToPreviousQuestion();
|
|
9803
10013
|
},
|
|
@@ -9805,7 +10015,7 @@ var QuizFooter = forwardRef19(
|
|
|
9805
10015
|
}
|
|
9806
10016
|
)
|
|
9807
10017
|
] }),
|
|
9808
|
-
!isFirstQuestion && !isLastQuestion && /* @__PURE__ */
|
|
10018
|
+
!isFirstQuestion && !isLastQuestion && /* @__PURE__ */ jsx40(
|
|
9809
10019
|
Button_default,
|
|
9810
10020
|
{
|
|
9811
10021
|
size: "small",
|
|
@@ -9818,7 +10028,7 @@ var QuizFooter = forwardRef19(
|
|
|
9818
10028
|
children: "Pular"
|
|
9819
10029
|
}
|
|
9820
10030
|
),
|
|
9821
|
-
isLastQuestion ? /* @__PURE__ */
|
|
10031
|
+
isLastQuestion ? /* @__PURE__ */ jsx40(
|
|
9822
10032
|
Button_default,
|
|
9823
10033
|
{
|
|
9824
10034
|
size: "medium",
|
|
@@ -9828,13 +10038,13 @@ var QuizFooter = forwardRef19(
|
|
|
9828
10038
|
onClick: handleFinishQuiz,
|
|
9829
10039
|
children: "Finalizar"
|
|
9830
10040
|
}
|
|
9831
|
-
) : /* @__PURE__ */
|
|
10041
|
+
) : /* @__PURE__ */ jsx40(
|
|
9832
10042
|
Button_default,
|
|
9833
10043
|
{
|
|
9834
10044
|
size: "medium",
|
|
9835
10045
|
variant: "link",
|
|
9836
10046
|
action: "primary",
|
|
9837
|
-
iconRight: /* @__PURE__ */
|
|
10047
|
+
iconRight: /* @__PURE__ */ jsx40(CaretRight4, { size: 18 }),
|
|
9838
10048
|
disabled: !currentAnswer && !isCurrentQuestionSkipped,
|
|
9839
10049
|
onClick: () => {
|
|
9840
10050
|
goToNextQuestion();
|
|
@@ -9842,7 +10052,7 @@ var QuizFooter = forwardRef19(
|
|
|
9842
10052
|
children: "Avan\xE7ar"
|
|
9843
10053
|
}
|
|
9844
10054
|
)
|
|
9845
|
-
] }) : /* @__PURE__ */
|
|
10055
|
+
] }) : /* @__PURE__ */ jsx40("div", { className: "flex flex-row items-center justify-end w-full", children: /* @__PURE__ */ jsx40(
|
|
9846
10056
|
Button_default,
|
|
9847
10057
|
{
|
|
9848
10058
|
variant: "solid",
|
|
@@ -9854,7 +10064,7 @@ var QuizFooter = forwardRef19(
|
|
|
9854
10064
|
) })
|
|
9855
10065
|
}
|
|
9856
10066
|
),
|
|
9857
|
-
/* @__PURE__ */
|
|
10067
|
+
/* @__PURE__ */ jsx40(
|
|
9858
10068
|
AlertDialog,
|
|
9859
10069
|
{
|
|
9860
10070
|
isOpen: alertDialogOpen,
|
|
@@ -9866,7 +10076,7 @@ var QuizFooter = forwardRef19(
|
|
|
9866
10076
|
onSubmit: handleAlertSubmit
|
|
9867
10077
|
}
|
|
9868
10078
|
),
|
|
9869
|
-
/* @__PURE__ */
|
|
10079
|
+
/* @__PURE__ */ jsx40(
|
|
9870
10080
|
Modal_default,
|
|
9871
10081
|
{
|
|
9872
10082
|
isOpen: modalResultOpen,
|
|
@@ -9876,11 +10086,11 @@ var QuizFooter = forwardRef19(
|
|
|
9876
10086
|
closeOnEscape: false,
|
|
9877
10087
|
hideCloseButton: true,
|
|
9878
10088
|
size: "md",
|
|
9879
|
-
children: /* @__PURE__ */
|
|
9880
|
-
resultImageComponent ? /* @__PURE__ */
|
|
9881
|
-
/* @__PURE__ */
|
|
9882
|
-
/* @__PURE__ */
|
|
9883
|
-
/* @__PURE__ */
|
|
10089
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col w-full h-full items-center justify-center gap-4", children: [
|
|
10090
|
+
resultImageComponent ? /* @__PURE__ */ jsx40("div", { className: "w-[282px] h-auto", children: resultImageComponent }) : /* @__PURE__ */ jsx40("div", { className: "w-[282px] h-[200px] bg-gray-100 rounded-md flex items-center justify-center", children: /* @__PURE__ */ jsx40("span", { className: "text-gray-500 text-sm", children: "Imagem de resultado" }) }),
|
|
10091
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-2 text-center", children: [
|
|
10092
|
+
/* @__PURE__ */ jsx40("h2", { className: "text-text-950 font-bold text-lg", children: "Voc\xEA concluiu o simulado!" }),
|
|
10093
|
+
/* @__PURE__ */ jsxs33("p", { className: "text-text-500 font-sm", children: [
|
|
9884
10094
|
"Voc\xEA acertou",
|
|
9885
10095
|
" ",
|
|
9886
10096
|
getQuestionResultStatistics()?.correctAnswers ?? "--",
|
|
@@ -9890,8 +10100,8 @@ var QuizFooter = forwardRef19(
|
|
|
9890
10100
|
" quest\xF5es."
|
|
9891
10101
|
] })
|
|
9892
10102
|
] }),
|
|
9893
|
-
/* @__PURE__ */
|
|
9894
|
-
/* @__PURE__ */
|
|
10103
|
+
/* @__PURE__ */ jsxs33("div", { className: "px-6 flex flex-row items-center gap-2 w-full", children: [
|
|
10104
|
+
/* @__PURE__ */ jsx40(
|
|
9895
10105
|
Button_default,
|
|
9896
10106
|
{
|
|
9897
10107
|
variant: "outline",
|
|
@@ -9901,38 +10111,38 @@ var QuizFooter = forwardRef19(
|
|
|
9901
10111
|
children: "Ir para simulados"
|
|
9902
10112
|
}
|
|
9903
10113
|
),
|
|
9904
|
-
/* @__PURE__ */
|
|
10114
|
+
/* @__PURE__ */ jsx40(Button_default, { className: "w-full", onClick: onDetailResult, children: "Detalhar resultado" })
|
|
9905
10115
|
] })
|
|
9906
10116
|
] })
|
|
9907
10117
|
}
|
|
9908
10118
|
),
|
|
9909
|
-
/* @__PURE__ */
|
|
10119
|
+
/* @__PURE__ */ jsx40(
|
|
9910
10120
|
Modal_default,
|
|
9911
10121
|
{
|
|
9912
10122
|
isOpen: modalNavigateOpen,
|
|
9913
10123
|
onClose: () => setModalNavigateOpen(false),
|
|
9914
10124
|
title: "Quest\xF5es",
|
|
9915
10125
|
size: "lg",
|
|
9916
|
-
children: /* @__PURE__ */
|
|
9917
|
-
/* @__PURE__ */
|
|
9918
|
-
/* @__PURE__ */
|
|
9919
|
-
/* @__PURE__ */
|
|
9920
|
-
/* @__PURE__ */
|
|
10126
|
+
children: /* @__PURE__ */ jsxs33("div", { className: "flex flex-col w-full not-lg:h-[calc(100vh-200px)] lg:max-h-[687px] lg:h-[687px]", children: [
|
|
10127
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-row justify-between items-center py-6 pt-6 pb-4 border-b border-border-200 flex-shrink-0", children: [
|
|
10128
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-lg", children: "Filtrar por" }),
|
|
10129
|
+
/* @__PURE__ */ jsx40("span", { className: "max-w-[266px]", children: /* @__PURE__ */ jsxs33(Select_default, { value: filterType, onValueChange: setFilterType, children: [
|
|
10130
|
+
/* @__PURE__ */ jsx40(
|
|
9921
10131
|
SelectTrigger,
|
|
9922
10132
|
{
|
|
9923
10133
|
variant: "rounded",
|
|
9924
10134
|
className: "max-w-[266px] min-w-[160px]",
|
|
9925
|
-
children: /* @__PURE__ */
|
|
10135
|
+
children: /* @__PURE__ */ jsx40(SelectValue, { placeholder: "Selecione uma op\xE7\xE3o" })
|
|
9926
10136
|
}
|
|
9927
10137
|
),
|
|
9928
|
-
/* @__PURE__ */
|
|
9929
|
-
/* @__PURE__ */
|
|
9930
|
-
/* @__PURE__ */
|
|
9931
|
-
/* @__PURE__ */
|
|
10138
|
+
/* @__PURE__ */ jsxs33(SelectContent, { children: [
|
|
10139
|
+
/* @__PURE__ */ jsx40(SelectItem, { value: "all", children: "Todas" }),
|
|
10140
|
+
/* @__PURE__ */ jsx40(SelectItem, { value: "unanswered", children: "Em branco" }),
|
|
10141
|
+
/* @__PURE__ */ jsx40(SelectItem, { value: "answered", children: "Respondidas" })
|
|
9932
10142
|
] })
|
|
9933
10143
|
] }) })
|
|
9934
10144
|
] }),
|
|
9935
|
-
/* @__PURE__ */
|
|
10145
|
+
/* @__PURE__ */ jsx40("div", { className: "flex flex-col gap-2 flex-1 min-h-0 overflow-y-auto", children: /* @__PURE__ */ jsx40(
|
|
9936
10146
|
QuizQuestionList,
|
|
9937
10147
|
{
|
|
9938
10148
|
filterType,
|
|
@@ -9942,7 +10152,7 @@ var QuizFooter = forwardRef19(
|
|
|
9942
10152
|
] })
|
|
9943
10153
|
}
|
|
9944
10154
|
),
|
|
9945
|
-
/* @__PURE__ */
|
|
10155
|
+
/* @__PURE__ */ jsx40(
|
|
9946
10156
|
Modal_default,
|
|
9947
10157
|
{
|
|
9948
10158
|
isOpen: modalResolutionOpen,
|
|
@@ -9960,40 +10170,40 @@ var QuizBadge = ({
|
|
|
9960
10170
|
}) => {
|
|
9961
10171
|
switch (subtype) {
|
|
9962
10172
|
case "PROVA" /* PROVA */:
|
|
9963
|
-
return /* @__PURE__ */
|
|
10173
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam2", "data-testid": "quiz-badge", children: "Prova" });
|
|
9964
10174
|
case "ENEM_PROVA_1" /* ENEM_PROVA_1 */:
|
|
9965
10175
|
case "ENEM_PROVA_2" /* ENEM_PROVA_2 */:
|
|
9966
|
-
return /* @__PURE__ */
|
|
10176
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam1", "data-testid": "quiz-badge", children: "Enem" });
|
|
9967
10177
|
case "VESTIBULAR" /* VESTIBULAR */:
|
|
9968
|
-
return /* @__PURE__ */
|
|
10178
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam4", "data-testid": "quiz-badge", children: "Vestibular" });
|
|
9969
10179
|
case "SIMULADO" /* SIMULADO */:
|
|
9970
10180
|
case "SIMULADAO" /* SIMULADAO */:
|
|
9971
10181
|
case void 0:
|
|
9972
|
-
return /* @__PURE__ */
|
|
10182
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "examsOutlined", action: "exam3", "data-testid": "quiz-badge", children: "Simulad\xE3o" });
|
|
9973
10183
|
default:
|
|
9974
|
-
return /* @__PURE__ */
|
|
10184
|
+
return /* @__PURE__ */ jsx40(Badge_default, { variant: "solid", action: "info", "data-testid": "quiz-badge", children: subtype });
|
|
9975
10185
|
}
|
|
9976
10186
|
};
|
|
9977
|
-
var QuizResultHeaderTitle =
|
|
10187
|
+
var QuizResultHeaderTitle = forwardRef20(({ className, ...props }, ref) => {
|
|
9978
10188
|
const { getActiveQuiz } = useQuizStore();
|
|
9979
10189
|
const activeQuiz = getActiveQuiz();
|
|
9980
|
-
return /* @__PURE__ */
|
|
10190
|
+
return /* @__PURE__ */ jsxs33(
|
|
9981
10191
|
"div",
|
|
9982
10192
|
{
|
|
9983
10193
|
ref,
|
|
9984
10194
|
className: cn("flex flex-row pt-4 justify-between", className),
|
|
9985
10195
|
...props,
|
|
9986
10196
|
children: [
|
|
9987
|
-
/* @__PURE__ */
|
|
9988
|
-
/* @__PURE__ */
|
|
10197
|
+
/* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-2xl", children: "Resultado" }),
|
|
10198
|
+
/* @__PURE__ */ jsx40(QuizBadge, { subtype: activeQuiz?.quiz.subtype || void 0 })
|
|
9989
10199
|
]
|
|
9990
10200
|
}
|
|
9991
10201
|
);
|
|
9992
10202
|
});
|
|
9993
|
-
var QuizResultTitle =
|
|
10203
|
+
var QuizResultTitle = forwardRef20(({ className, ...props }, ref) => {
|
|
9994
10204
|
const { getQuizTitle } = useQuizStore();
|
|
9995
10205
|
const quizTitle = getQuizTitle();
|
|
9996
|
-
return /* @__PURE__ */
|
|
10206
|
+
return /* @__PURE__ */ jsx40(
|
|
9997
10207
|
"p",
|
|
9998
10208
|
{
|
|
9999
10209
|
className: cn("pt-6 pb-4 text-text-950 font-bold text-lg", className),
|
|
@@ -10003,7 +10213,7 @@ var QuizResultTitle = forwardRef19(({ className, ...props }, ref) => {
|
|
|
10003
10213
|
}
|
|
10004
10214
|
);
|
|
10005
10215
|
});
|
|
10006
|
-
var QuizResultPerformance =
|
|
10216
|
+
var QuizResultPerformance = forwardRef20(
|
|
10007
10217
|
({ ...props }, ref) => {
|
|
10008
10218
|
const {
|
|
10009
10219
|
getTotalQuestions,
|
|
@@ -10045,15 +10255,15 @@ var QuizResultPerformance = forwardRef19(
|
|
|
10045
10255
|
});
|
|
10046
10256
|
}
|
|
10047
10257
|
const percentage = totalQuestions > 0 ? Math.round(correctAnswers / totalQuestions * 100) : 0;
|
|
10048
|
-
return /* @__PURE__ */
|
|
10258
|
+
return /* @__PURE__ */ jsxs33(
|
|
10049
10259
|
"div",
|
|
10050
10260
|
{
|
|
10051
10261
|
className: "flex flex-row gap-6 p-6 rounded-xl bg-background justify-between",
|
|
10052
10262
|
ref,
|
|
10053
10263
|
...props,
|
|
10054
10264
|
children: [
|
|
10055
|
-
/* @__PURE__ */
|
|
10056
|
-
/* @__PURE__ */
|
|
10265
|
+
/* @__PURE__ */ jsxs33("div", { className: "relative", children: [
|
|
10266
|
+
/* @__PURE__ */ jsx40(
|
|
10057
10267
|
ProgressCircle_default,
|
|
10058
10268
|
{
|
|
10059
10269
|
size: "medium",
|
|
@@ -10063,24 +10273,24 @@ var QuizResultPerformance = forwardRef19(
|
|
|
10063
10273
|
label: ""
|
|
10064
10274
|
}
|
|
10065
10275
|
),
|
|
10066
|
-
/* @__PURE__ */
|
|
10067
|
-
/* @__PURE__ */
|
|
10068
|
-
/* @__PURE__ */
|
|
10069
|
-
/* @__PURE__ */
|
|
10276
|
+
/* @__PURE__ */ jsxs33("div", { className: "absolute inset-0 flex flex-col items-center justify-center", children: [
|
|
10277
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex items-center gap-1 mb-1", children: [
|
|
10278
|
+
/* @__PURE__ */ jsx40(Clock2, { size: 12, weight: "regular", className: "text-text-800" }),
|
|
10279
|
+
/* @__PURE__ */ jsx40("span", { className: "text-2xs font-medium text-text-800", children: formatTime2(
|
|
10070
10280
|
(getQuestionResultStatistics()?.timeSpent ?? 0) * 60
|
|
10071
10281
|
) })
|
|
10072
10282
|
] }),
|
|
10073
|
-
/* @__PURE__ */
|
|
10283
|
+
/* @__PURE__ */ jsxs33("div", { className: "text-2xl font-medium text-text-800 leading-7", children: [
|
|
10074
10284
|
getQuestionResultStatistics()?.correctAnswers ?? "--",
|
|
10075
10285
|
" de",
|
|
10076
10286
|
" ",
|
|
10077
10287
|
totalQuestions
|
|
10078
10288
|
] }),
|
|
10079
|
-
/* @__PURE__ */
|
|
10289
|
+
/* @__PURE__ */ jsx40("div", { className: "text-2xs font-medium text-text-600 mt-1", children: "Corretas" })
|
|
10080
10290
|
] })
|
|
10081
10291
|
] }),
|
|
10082
|
-
/* @__PURE__ */
|
|
10083
|
-
/* @__PURE__ */
|
|
10292
|
+
/* @__PURE__ */ jsxs33("div", { className: "flex flex-col gap-4 w-full", children: [
|
|
10293
|
+
/* @__PURE__ */ jsx40(
|
|
10084
10294
|
ProgressBar_default,
|
|
10085
10295
|
{
|
|
10086
10296
|
className: "w-full",
|
|
@@ -10094,7 +10304,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
10094
10304
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
10095
10305
|
}
|
|
10096
10306
|
),
|
|
10097
|
-
/* @__PURE__ */
|
|
10307
|
+
/* @__PURE__ */ jsx40(
|
|
10098
10308
|
ProgressBar_default,
|
|
10099
10309
|
{
|
|
10100
10310
|
className: "w-full",
|
|
@@ -10108,7 +10318,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
10108
10318
|
percentageClassName: "text-xs font-medium leading-[14px] text-right"
|
|
10109
10319
|
}
|
|
10110
10320
|
),
|
|
10111
|
-
/* @__PURE__ */
|
|
10321
|
+
/* @__PURE__ */ jsx40(
|
|
10112
10322
|
ProgressBar_default,
|
|
10113
10323
|
{
|
|
10114
10324
|
className: "w-full",
|
|
@@ -10128,7 +10338,7 @@ var QuizResultPerformance = forwardRef19(
|
|
|
10128
10338
|
);
|
|
10129
10339
|
}
|
|
10130
10340
|
);
|
|
10131
|
-
var QuizListResult =
|
|
10341
|
+
var QuizListResult = forwardRef20(({ className, onSubjectClick, ...props }, ref) => {
|
|
10132
10342
|
const { getQuestionsGroupedBySubject } = useQuizStore();
|
|
10133
10343
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
10134
10344
|
const subjectsStats = Object.entries(groupedQuestions).map(
|
|
@@ -10155,9 +10365,9 @@ var QuizListResult = forwardRef19(({ className, onSubjectClick, ...props }, ref)
|
|
|
10155
10365
|
};
|
|
10156
10366
|
}
|
|
10157
10367
|
);
|
|
10158
|
-
return /* @__PURE__ */
|
|
10159
|
-
/* @__PURE__ */
|
|
10160
|
-
/* @__PURE__ */
|
|
10368
|
+
return /* @__PURE__ */ jsxs33("section", { ref, className, ...props, children: [
|
|
10369
|
+
/* @__PURE__ */ jsx40("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Mat\xE9rias" }),
|
|
10370
|
+
/* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2", children: subjectsStats.map((subject) => /* @__PURE__ */ jsx40("li", { children: /* @__PURE__ */ jsx40(
|
|
10161
10371
|
CardResults,
|
|
10162
10372
|
{
|
|
10163
10373
|
onClick: () => onSubjectClick?.(subject.subject.id),
|
|
@@ -10179,16 +10389,16 @@ var QuizListResultByMateria = ({
|
|
|
10179
10389
|
const { getQuestionsGroupedBySubject, getQuestionIndex } = useQuizStore();
|
|
10180
10390
|
const groupedQuestions = getQuestionsGroupedBySubject();
|
|
10181
10391
|
const answeredQuestions = groupedQuestions[subject] || [];
|
|
10182
|
-
return /* @__PURE__ */
|
|
10183
|
-
/* @__PURE__ */
|
|
10184
|
-
/* @__PURE__ */
|
|
10185
|
-
/* @__PURE__ */
|
|
10186
|
-
/* @__PURE__ */
|
|
10392
|
+
return /* @__PURE__ */ jsxs33("div", { className: "flex flex-col", children: [
|
|
10393
|
+
/* @__PURE__ */ jsx40("div", { className: "flex flex-row pt-4 justify-between", children: /* @__PURE__ */ jsx40("p", { className: "text-text-950 font-bold text-2xl", children: answeredQuestions?.[0]?.knowledgeMatrix?.[0]?.subject?.name ?? "Sem mat\xE9ria" }) }),
|
|
10394
|
+
/* @__PURE__ */ jsxs33("section", { className: "flex flex-col ", children: [
|
|
10395
|
+
/* @__PURE__ */ jsx40("p", { className: "pt-6 pb-4 text-text-950 font-bold text-lg", children: "Resultado das quest\xF5es" }),
|
|
10396
|
+
/* @__PURE__ */ jsx40("ul", { className: "flex flex-col gap-2 pt-4", children: answeredQuestions.map((question) => {
|
|
10187
10397
|
const questionIndex = getQuestionIndex(
|
|
10188
10398
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
10189
10399
|
question.questionId ?? question.id
|
|
10190
10400
|
);
|
|
10191
|
-
return /* @__PURE__ */
|
|
10401
|
+
return /* @__PURE__ */ jsx40("li", { children: /* @__PURE__ */ jsx40(
|
|
10192
10402
|
CardStatus,
|
|
10193
10403
|
{
|
|
10194
10404
|
className: "max-w-full",
|
|
@@ -10211,12 +10421,12 @@ var QuizListResultByMateria = ({
|
|
|
10211
10421
|
};
|
|
10212
10422
|
|
|
10213
10423
|
// src/components/LoadingModal/loadingModal.tsx
|
|
10214
|
-
import { forwardRef as
|
|
10215
|
-
import { jsx as
|
|
10216
|
-
var LoadingModal =
|
|
10424
|
+
import { forwardRef as forwardRef21 } from "react";
|
|
10425
|
+
import { jsx as jsx41, jsxs as jsxs34 } from "react/jsx-runtime";
|
|
10426
|
+
var LoadingModal = forwardRef21(
|
|
10217
10427
|
({ open, title = "Titulo...", subtitle = "Subtitulo...", ...props }, ref) => {
|
|
10218
10428
|
if (!open) return null;
|
|
10219
|
-
return /* @__PURE__ */
|
|
10429
|
+
return /* @__PURE__ */ jsx41(
|
|
10220
10430
|
"div",
|
|
10221
10431
|
{
|
|
10222
10432
|
ref,
|
|
@@ -10225,8 +10435,8 @@ var LoadingModal = forwardRef20(
|
|
|
10225
10435
|
"aria-describedby": "loading-modal-subtitle",
|
|
10226
10436
|
className: "fixed inset-0 z-50 flex items-center justify-center bg-background/90 backdrop-blur-xs",
|
|
10227
10437
|
...props,
|
|
10228
|
-
children: /* @__PURE__ */
|
|
10229
|
-
/* @__PURE__ */
|
|
10438
|
+
children: /* @__PURE__ */ jsxs34("div", { className: "w-full max-w-[364px] flex flex-col items-center justify-center gap-14", children: [
|
|
10439
|
+
/* @__PURE__ */ jsx41("span", { className: "animate-spin", "aria-hidden": "true", children: /* @__PURE__ */ jsxs34(
|
|
10230
10440
|
"svg",
|
|
10231
10441
|
{
|
|
10232
10442
|
width: "102",
|
|
@@ -10237,14 +10447,14 @@ var LoadingModal = forwardRef20(
|
|
|
10237
10447
|
"aria-hidden": "true",
|
|
10238
10448
|
focusable: false,
|
|
10239
10449
|
children: [
|
|
10240
|
-
/* @__PURE__ */
|
|
10450
|
+
/* @__PURE__ */ jsx41(
|
|
10241
10451
|
"path",
|
|
10242
10452
|
{
|
|
10243
10453
|
d: "M101.5 51C101.5 78.8904 78.8904 101.5 51 101.5C23.1096 101.5 0.5 78.8904 0.5 51C0.5 23.1096 23.1096 0.5 51 0.5C78.8904 0.5 101.5 23.1096 101.5 51ZM8.62286 51C8.62286 74.4043 27.5957 93.3771 51 93.3771C74.4043 93.3771 93.3771 74.4043 93.3771 51C93.3771 27.5957 74.4043 8.62286 51 8.62286C27.5957 8.62286 8.62286 27.5957 8.62286 51Z",
|
|
10244
10454
|
className: "fill-primary-100"
|
|
10245
10455
|
}
|
|
10246
10456
|
),
|
|
10247
|
-
/* @__PURE__ */
|
|
10457
|
+
/* @__PURE__ */ jsx41(
|
|
10248
10458
|
"path",
|
|
10249
10459
|
{
|
|
10250
10460
|
d: "M97.4386 51C99.6816 51 101.517 52.8213 101.337 55.0571C100.754 62.2833 98.6212 69.3162 95.0643 75.6696C90.8444 83.207 84.7616 89.536 77.3975 94.0514C70.0333 98.5668 61.6339 101.118 53.0024 101.46C44.371 101.803 35.7959 99.9255 28.0971 96.0078C20.3982 92.0902 13.833 86.2631 9.02917 79.0838C4.22529 71.9045 1.34332 63.6129 0.658804 55.0017C-0.0257159 46.3906 1.51009 37.7479 5.1194 29.8997C8.16173 23.2845 12.5915 17.4202 18.0904 12.6959C19.7917 11.2341 22.3444 11.6457 23.6647 13.459C24.9851 15.2723 24.5702 17.7988 22.8916 19.2866C18.5048 23.1747 14.9608 27.9413 12.4992 33.2937C9.47048 39.8794 8.1817 47.132 8.75612 54.3581C9.33053 61.5841 11.7489 68.542 15.7801 74.5666C19.8113 80.5911 25.3205 85.4809 31.781 88.7684C38.2414 92.0559 45.4372 93.6312 52.6804 93.3438C59.9235 93.0564 66.9718 90.9158 73.1515 87.1267C79.3311 83.3375 84.4355 78.0266 87.9766 71.7015C90.8546 66.561 92.6217 60.8903 93.1827 55.0553C93.3973 52.8225 95.1955 51 97.4386 51Z",
|
|
@@ -10254,9 +10464,9 @@ var LoadingModal = forwardRef20(
|
|
|
10254
10464
|
]
|
|
10255
10465
|
}
|
|
10256
10466
|
) }),
|
|
10257
|
-
/* @__PURE__ */
|
|
10258
|
-
/* @__PURE__ */
|
|
10259
|
-
/* @__PURE__ */
|
|
10467
|
+
/* @__PURE__ */ jsxs34("span", { className: "flex flex-col gap-4 text-center", children: [
|
|
10468
|
+
/* @__PURE__ */ jsx41("p", { id: "loading-modal-title", className: "text-text-950 text-lg", children: title }),
|
|
10469
|
+
/* @__PURE__ */ jsx41("p", { id: "loading-modal-subtitle", className: "text-text-600 text-lg", children: subtitle })
|
|
10260
10470
|
] })
|
|
10261
10471
|
] })
|
|
10262
10472
|
}
|
|
@@ -10267,7 +10477,7 @@ var loadingModal_default = LoadingModal;
|
|
|
10267
10477
|
|
|
10268
10478
|
// src/components/NotificationCard/NotificationCard.tsx
|
|
10269
10479
|
import { DotsThreeVertical as DotsThreeVertical3, Bell as Bell2 } from "phosphor-react";
|
|
10270
|
-
import { useState as
|
|
10480
|
+
import { useState as useState19, useEffect as useEffect17 } from "react";
|
|
10271
10481
|
|
|
10272
10482
|
// src/store/notificationStore.ts
|
|
10273
10483
|
import { create as create8 } from "zustand";
|
|
@@ -10510,14 +10720,14 @@ var createNotificationStore = (apiClient) => {
|
|
|
10510
10720
|
};
|
|
10511
10721
|
|
|
10512
10722
|
// src/components/NotificationCard/NotificationCard.tsx
|
|
10513
|
-
import { Fragment as
|
|
10723
|
+
import { Fragment as Fragment11, jsx as jsx42, jsxs as jsxs35 } from "react/jsx-runtime";
|
|
10514
10724
|
var NotificationEmpty = ({
|
|
10515
10725
|
emptyStateImage,
|
|
10516
10726
|
emptyStateTitle = "Nenhuma notifica\xE7\xE3o no momento",
|
|
10517
10727
|
emptyStateDescription = "Voc\xEA est\xE1 em dia com todas as novidades. Volte depois para conferir atualiza\xE7\xF5es!"
|
|
10518
10728
|
}) => {
|
|
10519
|
-
return /* @__PURE__ */
|
|
10520
|
-
emptyStateImage && /* @__PURE__ */
|
|
10729
|
+
return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-center justify-center gap-4 p-6 w-full", children: [
|
|
10730
|
+
emptyStateImage && /* @__PURE__ */ jsx42("div", { className: "w-20 h-20 flex items-center justify-center", children: /* @__PURE__ */ jsx42(
|
|
10521
10731
|
"img",
|
|
10522
10732
|
{
|
|
10523
10733
|
src: emptyStateImage,
|
|
@@ -10527,17 +10737,17 @@ var NotificationEmpty = ({
|
|
|
10527
10737
|
className: "object-contain"
|
|
10528
10738
|
}
|
|
10529
10739
|
) }),
|
|
10530
|
-
/* @__PURE__ */
|
|
10531
|
-
/* @__PURE__ */
|
|
10740
|
+
/* @__PURE__ */ jsx42("h3", { className: "text-xl font-semibold text-text-950 text-center leading-[23px]", children: emptyStateTitle }),
|
|
10741
|
+
/* @__PURE__ */ jsx42("p", { className: "text-sm font-normal text-text-400 text-center max-w-[316px] leading-[21px]", children: emptyStateDescription })
|
|
10532
10742
|
] });
|
|
10533
10743
|
};
|
|
10534
10744
|
var NotificationHeader = ({
|
|
10535
10745
|
unreadCount,
|
|
10536
10746
|
variant = "modal"
|
|
10537
10747
|
}) => {
|
|
10538
|
-
return /* @__PURE__ */
|
|
10539
|
-
variant === "modal" ? /* @__PURE__ */
|
|
10540
|
-
unreadCount > 0 && /* @__PURE__ */
|
|
10748
|
+
return /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
|
|
10749
|
+
variant === "modal" ? /* @__PURE__ */ jsx42(Text_default, { size: "sm", weight: "bold", className: "text-text-950", children: "Notifica\xE7\xF5es" }) : /* @__PURE__ */ jsx42("h3", { className: "text-sm font-semibold text-text-950", children: "Notifica\xE7\xF5es" }),
|
|
10750
|
+
unreadCount > 0 && /* @__PURE__ */ jsxs35("span", { className: "px-2 py-1 bg-info-100 text-info-700 text-xs rounded-full", children: [
|
|
10541
10751
|
unreadCount,
|
|
10542
10752
|
" n\xE3o lidas"
|
|
10543
10753
|
] })
|
|
@@ -10572,7 +10782,7 @@ var SingleNotificationCard = ({
|
|
|
10572
10782
|
onNavigate();
|
|
10573
10783
|
}
|
|
10574
10784
|
};
|
|
10575
|
-
return /* @__PURE__ */
|
|
10785
|
+
return /* @__PURE__ */ jsxs35(
|
|
10576
10786
|
"div",
|
|
10577
10787
|
{
|
|
10578
10788
|
className: cn(
|
|
@@ -10581,20 +10791,20 @@ var SingleNotificationCard = ({
|
|
|
10581
10791
|
className
|
|
10582
10792
|
),
|
|
10583
10793
|
children: [
|
|
10584
|
-
/* @__PURE__ */
|
|
10585
|
-
!isRead && /* @__PURE__ */
|
|
10586
|
-
/* @__PURE__ */
|
|
10587
|
-
/* @__PURE__ */
|
|
10588
|
-
/* @__PURE__ */
|
|
10794
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center gap-2 w-full", children: [
|
|
10795
|
+
!isRead && /* @__PURE__ */ jsx42("div", { className: "w-[7px] h-[7px] bg-info-300 rounded-full flex-shrink-0" }),
|
|
10796
|
+
/* @__PURE__ */ jsx42("h3", { className: "font-bold text-sm leading-4 text-text-950 flex-grow", children: title }),
|
|
10797
|
+
/* @__PURE__ */ jsxs35(DropdownMenu_default, { children: [
|
|
10798
|
+
/* @__PURE__ */ jsx42(
|
|
10589
10799
|
DropdownMenuTrigger,
|
|
10590
10800
|
{
|
|
10591
10801
|
className: "flex-shrink-0 inline-flex items-center justify-center font-medium bg-transparent text-text-950 cursor-pointer hover:bg-info-50 w-6 h-6 rounded-lg",
|
|
10592
10802
|
"aria-label": "Menu de a\xE7\xF5es",
|
|
10593
|
-
children: /* @__PURE__ */
|
|
10803
|
+
children: /* @__PURE__ */ jsx42(DotsThreeVertical3, { size: 24 })
|
|
10594
10804
|
}
|
|
10595
10805
|
),
|
|
10596
|
-
/* @__PURE__ */
|
|
10597
|
-
!isRead && /* @__PURE__ */
|
|
10806
|
+
/* @__PURE__ */ jsxs35(DropdownMenuContent, { align: "end", className: "min-w-[160px]", children: [
|
|
10807
|
+
!isRead && /* @__PURE__ */ jsx42(
|
|
10598
10808
|
DropdownMenuItem,
|
|
10599
10809
|
{
|
|
10600
10810
|
onClick: handleMarkAsRead,
|
|
@@ -10602,14 +10812,14 @@ var SingleNotificationCard = ({
|
|
|
10602
10812
|
children: "Marcar como lida"
|
|
10603
10813
|
}
|
|
10604
10814
|
),
|
|
10605
|
-
/* @__PURE__ */
|
|
10815
|
+
/* @__PURE__ */ jsx42(DropdownMenuItem, { onClick: handleDelete, className: "text-error-600", children: "Deletar" })
|
|
10606
10816
|
] })
|
|
10607
10817
|
] })
|
|
10608
10818
|
] }),
|
|
10609
|
-
/* @__PURE__ */
|
|
10610
|
-
/* @__PURE__ */
|
|
10611
|
-
/* @__PURE__ */
|
|
10612
|
-
onNavigate && actionLabel && /* @__PURE__ */
|
|
10819
|
+
/* @__PURE__ */ jsx42("p", { className: "text-sm leading-[21px] text-text-800 w-full", children: message }),
|
|
10820
|
+
/* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between w-full", children: [
|
|
10821
|
+
/* @__PURE__ */ jsx42("span", { className: "text-sm font-medium text-text-400", children: time }),
|
|
10822
|
+
onNavigate && actionLabel && /* @__PURE__ */ jsx42(
|
|
10613
10823
|
"button",
|
|
10614
10824
|
{
|
|
10615
10825
|
type: "button",
|
|
@@ -10636,9 +10846,9 @@ var NotificationList = ({
|
|
|
10636
10846
|
className
|
|
10637
10847
|
}) => {
|
|
10638
10848
|
if (error) {
|
|
10639
|
-
return /* @__PURE__ */
|
|
10640
|
-
/* @__PURE__ */
|
|
10641
|
-
onRetry && /* @__PURE__ */
|
|
10849
|
+
return /* @__PURE__ */ jsxs35("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: [
|
|
10850
|
+
/* @__PURE__ */ jsx42("p", { className: "text-sm text-error-600", children: error }),
|
|
10851
|
+
onRetry && /* @__PURE__ */ jsx42(
|
|
10642
10852
|
"button",
|
|
10643
10853
|
{
|
|
10644
10854
|
type: "button",
|
|
@@ -10650,8 +10860,8 @@ var NotificationList = ({
|
|
|
10650
10860
|
] });
|
|
10651
10861
|
}
|
|
10652
10862
|
if (loading) {
|
|
10653
|
-
return /* @__PURE__ */
|
|
10654
|
-
(skeletonId) => /* @__PURE__ */
|
|
10863
|
+
return /* @__PURE__ */ jsx42("div", { className: "flex flex-col gap-0 w-full", children: ["skeleton-first", "skeleton-second", "skeleton-third"].map(
|
|
10864
|
+
(skeletonId) => /* @__PURE__ */ jsx42(
|
|
10655
10865
|
SkeletonCard,
|
|
10656
10866
|
{
|
|
10657
10867
|
className: "p-4 border-b border-border-200"
|
|
@@ -10661,11 +10871,11 @@ var NotificationList = ({
|
|
|
10661
10871
|
) });
|
|
10662
10872
|
}
|
|
10663
10873
|
if (!groupedNotifications || groupedNotifications.length === 0) {
|
|
10664
|
-
return renderEmpty ? /* @__PURE__ */
|
|
10874
|
+
return renderEmpty ? /* @__PURE__ */ jsx42("div", { className: "w-full", children: renderEmpty() }) : /* @__PURE__ */ jsx42(NotificationEmpty, {});
|
|
10665
10875
|
}
|
|
10666
|
-
return /* @__PURE__ */
|
|
10667
|
-
/* @__PURE__ */
|
|
10668
|
-
group.notifications.map((notification) => /* @__PURE__ */
|
|
10876
|
+
return /* @__PURE__ */ jsx42("div", { className: cn("flex flex-col gap-0 w-full", className), children: groupedNotifications.map((group, idx) => /* @__PURE__ */ jsxs35("div", { className: "flex flex-col", children: [
|
|
10877
|
+
/* @__PURE__ */ jsx42("div", { className: "flex items-end px-4 py-6 pb-4", children: /* @__PURE__ */ jsx42("h4", { className: "text-lg font-bold text-text-500 flex-grow", children: group.label }) }),
|
|
10878
|
+
group.notifications.map((notification) => /* @__PURE__ */ jsx42(
|
|
10669
10879
|
SingleNotificationCard,
|
|
10670
10880
|
{
|
|
10671
10881
|
title: notification.title,
|
|
@@ -10706,7 +10916,7 @@ var NotificationCenter = ({
|
|
|
10706
10916
|
className
|
|
10707
10917
|
}) => {
|
|
10708
10918
|
const { isMobile } = useMobile();
|
|
10709
|
-
const [isModalOpen, setIsModalOpen] =
|
|
10919
|
+
const [isModalOpen, setIsModalOpen] = useState19(false);
|
|
10710
10920
|
const handleMobileClick = () => {
|
|
10711
10921
|
setIsModalOpen(true);
|
|
10712
10922
|
onFetchNotifications?.();
|
|
@@ -10723,7 +10933,7 @@ var NotificationCenter = ({
|
|
|
10723
10933
|
onCleanup?.();
|
|
10724
10934
|
onNavigateById?.(entityType, entityId);
|
|
10725
10935
|
};
|
|
10726
|
-
const renderEmptyState = () => /* @__PURE__ */
|
|
10936
|
+
const renderEmptyState = () => /* @__PURE__ */ jsx42(
|
|
10727
10937
|
NotificationEmpty,
|
|
10728
10938
|
{
|
|
10729
10939
|
emptyStateImage,
|
|
@@ -10732,17 +10942,17 @@ var NotificationCenter = ({
|
|
|
10732
10942
|
}
|
|
10733
10943
|
);
|
|
10734
10944
|
if (isMobile) {
|
|
10735
|
-
return /* @__PURE__ */
|
|
10736
|
-
/* @__PURE__ */
|
|
10945
|
+
return /* @__PURE__ */ jsxs35(Fragment11, { children: [
|
|
10946
|
+
/* @__PURE__ */ jsx42(
|
|
10737
10947
|
IconButton_default,
|
|
10738
10948
|
{
|
|
10739
10949
|
active: isModalOpen,
|
|
10740
10950
|
onClick: handleMobileClick,
|
|
10741
|
-
icon: /* @__PURE__ */
|
|
10951
|
+
icon: /* @__PURE__ */ jsx42(Bell2, { size: 24, className: "text-primary" }),
|
|
10742
10952
|
className
|
|
10743
10953
|
}
|
|
10744
10954
|
),
|
|
10745
|
-
/* @__PURE__ */
|
|
10955
|
+
/* @__PURE__ */ jsx42(
|
|
10746
10956
|
Modal_default,
|
|
10747
10957
|
{
|
|
10748
10958
|
isOpen: isModalOpen,
|
|
@@ -10752,10 +10962,10 @@ var NotificationCenter = ({
|
|
|
10752
10962
|
hideCloseButton: false,
|
|
10753
10963
|
closeOnBackdropClick: true,
|
|
10754
10964
|
closeOnEscape: true,
|
|
10755
|
-
children: /* @__PURE__ */
|
|
10756
|
-
/* @__PURE__ */
|
|
10757
|
-
/* @__PURE__ */
|
|
10758
|
-
unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */
|
|
10965
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col h-full max-h-[80vh]", children: [
|
|
10966
|
+
/* @__PURE__ */ jsx42("div", { className: "px-0 pb-3 border-b border-border-200", children: /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
|
|
10967
|
+
/* @__PURE__ */ jsx42(NotificationHeader, { unreadCount, variant: "modal" }),
|
|
10968
|
+
unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx42(
|
|
10759
10969
|
"button",
|
|
10760
10970
|
{
|
|
10761
10971
|
type: "button",
|
|
@@ -10765,7 +10975,7 @@ var NotificationCenter = ({
|
|
|
10765
10975
|
}
|
|
10766
10976
|
)
|
|
10767
10977
|
] }) }),
|
|
10768
|
-
/* @__PURE__ */
|
|
10978
|
+
/* @__PURE__ */ jsx42("div", { className: "flex-1 overflow-y-auto", children: /* @__PURE__ */ jsx42(
|
|
10769
10979
|
NotificationList,
|
|
10770
10980
|
{
|
|
10771
10981
|
groupedNotifications,
|
|
@@ -10788,13 +10998,13 @@ var NotificationCenter = ({
|
|
|
10788
10998
|
)
|
|
10789
10999
|
] });
|
|
10790
11000
|
}
|
|
10791
|
-
return /* @__PURE__ */
|
|
10792
|
-
/* @__PURE__ */
|
|
11001
|
+
return /* @__PURE__ */ jsxs35(DropdownMenu_default, { children: [
|
|
11002
|
+
/* @__PURE__ */ jsx42(DropdownMenuTrigger, { className: "text-primary cursor-pointer", children: /* @__PURE__ */ jsx42(
|
|
10793
11003
|
IconButton_default,
|
|
10794
11004
|
{
|
|
10795
11005
|
active: isActive,
|
|
10796
11006
|
onClick: handleDesktopClick,
|
|
10797
|
-
icon: /* @__PURE__ */
|
|
11007
|
+
icon: /* @__PURE__ */ jsx42(
|
|
10798
11008
|
Bell2,
|
|
10799
11009
|
{
|
|
10800
11010
|
size: 24,
|
|
@@ -10804,22 +11014,22 @@ var NotificationCenter = ({
|
|
|
10804
11014
|
className
|
|
10805
11015
|
}
|
|
10806
11016
|
) }),
|
|
10807
|
-
/* @__PURE__ */
|
|
11017
|
+
/* @__PURE__ */ jsx42(
|
|
10808
11018
|
DropdownMenuContent,
|
|
10809
11019
|
{
|
|
10810
11020
|
className: "min-w-[320px] max-w-[400px] max-h-[500px] overflow-hidden",
|
|
10811
11021
|
side: "bottom",
|
|
10812
11022
|
align: "end",
|
|
10813
|
-
children: /* @__PURE__ */
|
|
10814
|
-
/* @__PURE__ */
|
|
10815
|
-
/* @__PURE__ */
|
|
11023
|
+
children: /* @__PURE__ */ jsxs35("div", { className: "flex flex-col", children: [
|
|
11024
|
+
/* @__PURE__ */ jsx42("div", { className: "px-4 py-3 border-b border-border-200", children: /* @__PURE__ */ jsxs35("div", { className: "flex items-center justify-between", children: [
|
|
11025
|
+
/* @__PURE__ */ jsx42(
|
|
10816
11026
|
NotificationHeader,
|
|
10817
11027
|
{
|
|
10818
11028
|
unreadCount,
|
|
10819
11029
|
variant: "dropdown"
|
|
10820
11030
|
}
|
|
10821
11031
|
),
|
|
10822
|
-
unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */
|
|
11032
|
+
unreadCount > 0 && onMarkAllAsRead && /* @__PURE__ */ jsx42(
|
|
10823
11033
|
"button",
|
|
10824
11034
|
{
|
|
10825
11035
|
type: "button",
|
|
@@ -10829,7 +11039,7 @@ var NotificationCenter = ({
|
|
|
10829
11039
|
}
|
|
10830
11040
|
)
|
|
10831
11041
|
] }) }),
|
|
10832
|
-
/* @__PURE__ */
|
|
11042
|
+
/* @__PURE__ */ jsx42("div", { className: "max-h-[350px] overflow-y-auto", children: /* @__PURE__ */ jsx42(
|
|
10833
11043
|
NotificationList,
|
|
10834
11044
|
{
|
|
10835
11045
|
groupedNotifications,
|
|
@@ -10851,7 +11061,7 @@ var NotificationCenter = ({
|
|
|
10851
11061
|
var NotificationCard = (props) => {
|
|
10852
11062
|
switch (props.mode) {
|
|
10853
11063
|
case "single":
|
|
10854
|
-
return /* @__PURE__ */
|
|
11064
|
+
return /* @__PURE__ */ jsx42(
|
|
10855
11065
|
SingleNotificationCard,
|
|
10856
11066
|
{
|
|
10857
11067
|
title: props.title,
|
|
@@ -10866,7 +11076,7 @@ var NotificationCard = (props) => {
|
|
|
10866
11076
|
}
|
|
10867
11077
|
);
|
|
10868
11078
|
case "list":
|
|
10869
|
-
return /* @__PURE__ */
|
|
11079
|
+
return /* @__PURE__ */ jsx42(
|
|
10870
11080
|
NotificationList,
|
|
10871
11081
|
{
|
|
10872
11082
|
groupedNotifications: props.groupedNotifications ?? (props.notifications ? [
|
|
@@ -10887,9 +11097,9 @@ var NotificationCard = (props) => {
|
|
|
10887
11097
|
}
|
|
10888
11098
|
);
|
|
10889
11099
|
case "center":
|
|
10890
|
-
return /* @__PURE__ */
|
|
11100
|
+
return /* @__PURE__ */ jsx42(NotificationCenter, { ...props });
|
|
10891
11101
|
default:
|
|
10892
|
-
return /* @__PURE__ */
|
|
11102
|
+
return /* @__PURE__ */ jsx42("div", { className: "flex flex-col items-center gap-4 p-6 w-full", children: /* @__PURE__ */ jsx42("p", { className: "text-sm text-text-600", children: "Modo de notifica\xE7\xE3o n\xE3o reconhecido" }) });
|
|
10893
11103
|
}
|
|
10894
11104
|
};
|
|
10895
11105
|
var NotificationCard_default = NotificationCard;
|
|
@@ -10900,7 +11110,7 @@ var createUseNotificationStore = (apiClient) => {
|
|
|
10900
11110
|
};
|
|
10901
11111
|
|
|
10902
11112
|
// src/hooks/useNotifications.ts
|
|
10903
|
-
import { useCallback as
|
|
11113
|
+
import { useCallback as useCallback6 } from "react";
|
|
10904
11114
|
var createUseNotifications = (apiClient) => {
|
|
10905
11115
|
const useNotificationStore = createUseNotificationStore(apiClient);
|
|
10906
11116
|
return () => {
|
|
@@ -10919,7 +11129,7 @@ var createUseNotifications = (apiClient) => {
|
|
|
10919
11129
|
resetError,
|
|
10920
11130
|
getGroupedNotifications
|
|
10921
11131
|
} = useNotificationStore();
|
|
10922
|
-
const handleNavigate =
|
|
11132
|
+
const handleNavigate = useCallback6(
|
|
10923
11133
|
(entityType, entityId, onAfterNavigate) => {
|
|
10924
11134
|
if (entityType && entityId) {
|
|
10925
11135
|
switch (entityType.toUpperCase()) {
|
|
@@ -10937,7 +11147,7 @@ var createUseNotifications = (apiClient) => {
|
|
|
10937
11147
|
},
|
|
10938
11148
|
[]
|
|
10939
11149
|
);
|
|
10940
|
-
const getActionLabel =
|
|
11150
|
+
const getActionLabel = useCallback6(
|
|
10941
11151
|
(entityType) => {
|
|
10942
11152
|
if (!entityType) return void 0;
|
|
10943
11153
|
switch (entityType.toUpperCase()) {
|
|
@@ -10951,7 +11161,7 @@ var createUseNotifications = (apiClient) => {
|
|
|
10951
11161
|
},
|
|
10952
11162
|
[]
|
|
10953
11163
|
);
|
|
10954
|
-
const markAsReadAndNavigate =
|
|
11164
|
+
const markAsReadAndNavigate = useCallback6(
|
|
10955
11165
|
async (id, entityType, entityId, onAfterNavigate) => {
|
|
10956
11166
|
await markAsRead(id);
|
|
10957
11167
|
if (entityType && entityId) {
|
|
@@ -10960,11 +11170,11 @@ var createUseNotifications = (apiClient) => {
|
|
|
10960
11170
|
},
|
|
10961
11171
|
[markAsRead, handleNavigate]
|
|
10962
11172
|
);
|
|
10963
|
-
const refreshNotifications =
|
|
11173
|
+
const refreshNotifications = useCallback6(async () => {
|
|
10964
11174
|
resetError();
|
|
10965
11175
|
await fetchNotifications();
|
|
10966
11176
|
}, [resetError, fetchNotifications]);
|
|
10967
|
-
const formatNotification =
|
|
11177
|
+
const formatNotification = useCallback6(
|
|
10968
11178
|
(notification) => ({
|
|
10969
11179
|
...notification,
|
|
10970
11180
|
time: formatTimeAgo(notification.createdAt),
|
|
@@ -10973,7 +11183,7 @@ var createUseNotifications = (apiClient) => {
|
|
|
10973
11183
|
}),
|
|
10974
11184
|
[]
|
|
10975
11185
|
);
|
|
10976
|
-
const getFormattedGroupedNotifications =
|
|
11186
|
+
const getFormattedGroupedNotifications = useCallback6(() => {
|
|
10977
11187
|
const groups = getGroupedNotifications();
|
|
10978
11188
|
return groups.map((group) => ({
|
|
10979
11189
|
...group,
|
|
@@ -11108,6 +11318,7 @@ export {
|
|
|
11108
11318
|
Table_default as Table,
|
|
11109
11319
|
Text_default as Text,
|
|
11110
11320
|
TextArea_default as TextArea,
|
|
11321
|
+
ThemeToggle,
|
|
11111
11322
|
Toast_default as Toast,
|
|
11112
11323
|
Toaster_default as Toaster,
|
|
11113
11324
|
VideoPlayer_default as VideoPlayer,
|