analytica-frontend-lib 1.2.78 → 1.2.79
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/ActivitiesHistory/index.js +485 -418
- package/dist/ActivitiesHistory/index.js.map +1 -1
- package/dist/ActivitiesHistory/index.mjs +478 -411
- package/dist/ActivitiesHistory/index.mjs.map +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts +1 -1
- package/dist/RecommendedLessonsHistory/index.d.ts.map +1 -1
- package/dist/RecommendedLessonsHistory/index.js +1183 -381
- package/dist/RecommendedLessonsHistory/index.js.map +1 -1
- package/dist/RecommendedLessonsHistory/index.mjs +1176 -372
- package/dist/RecommendedLessonsHistory/index.mjs.map +1 -1
- package/dist/SendActivityModal/SendActivityModal.d.ts.map +1 -1
- package/dist/SendActivityModal/SendActivityModal.js +4261 -4117
- package/dist/SendActivityModal/SendActivityModal.js.map +1 -1
- package/dist/SendActivityModal/SendActivityModal.mjs +4282 -4139
- package/dist/SendActivityModal/SendActivityModal.mjs.map +1 -1
- package/dist/SendActivityModal/hooks/useSendActivityModal.d.ts.map +1 -1
- package/dist/SendActivityModal/hooks/useSendActivityModal.js +16 -18
- package/dist/SendActivityModal/hooks/useSendActivityModal.js.map +1 -1
- package/dist/SendActivityModal/hooks/useSendActivityModal.mjs +16 -18
- package/dist/SendActivityModal/hooks/useSendActivityModal.mjs.map +1 -1
- package/dist/SendActivityModal/index.js +1285 -1141
- package/dist/SendActivityModal/index.js.map +1 -1
- package/dist/SendActivityModal/index.mjs +1164 -1021
- package/dist/SendActivityModal/index.mjs.map +1 -1
- package/dist/hooks/useGoalModels.d.ts +171 -0
- package/dist/hooks/useGoalModels.d.ts.map +1 -0
- package/dist/index.d.ts +9 -6
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1864 -1716
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +1896 -1765
- package/dist/index.mjs.map +1 -1
- package/dist/types/recommendedLessons/index.d.ts +61 -0
- package/dist/types/recommendedLessons/index.d.ts.map +1 -1
- package/dist/types/recommendedLessons/index.js +7 -0
- package/dist/types/recommendedLessons/index.js.map +1 -1
- package/dist/types/recommendedLessons/index.mjs +6 -0
- package/dist/types/recommendedLessons/index.mjs.map +1 -1
- package/dist/types/recommendedLessons.d.ts +61 -0
- package/dist/types/recommendedLessons.d.ts.map +1 -1
- package/dist/utils/extractStudentsFromCategories.d.ts +15 -0
- package/dist/utils/extractStudentsFromCategories.d.ts.map +1 -0
- package/dist/utils/renderSubjectCell.d.ts +11 -0
- package/dist/utils/renderSubjectCell.d.ts.map +1 -0
- package/package.json +3 -2
|
@@ -47,8 +47,7 @@ __export(SendActivityModal_exports, {
|
|
|
47
47
|
module.exports = __toCommonJS(SendActivityModal_exports);
|
|
48
48
|
|
|
49
49
|
// src/components/SendActivityModal/SendActivityModal.tsx
|
|
50
|
-
var
|
|
51
|
-
var import_react18 = require("@phosphor-icons/react");
|
|
50
|
+
var import_react18 = require("react");
|
|
52
51
|
|
|
53
52
|
// src/components/Modal/Modal.tsx
|
|
54
53
|
var import_react = require("react");
|
|
@@ -1456,209 +1455,532 @@ var RadioGroupItem = (0, import_react4.forwardRef)(
|
|
|
1456
1455
|
);
|
|
1457
1456
|
RadioGroupItem.displayName = "RadioGroupItem";
|
|
1458
1457
|
|
|
1459
|
-
// src/components/
|
|
1460
|
-
var
|
|
1458
|
+
// src/components/SendActivityModal/hooks/useSendActivityModal.ts
|
|
1459
|
+
var import_zustand2 = require("zustand");
|
|
1461
1460
|
|
|
1462
|
-
// src/components/
|
|
1463
|
-
var
|
|
1464
|
-
var
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
muted: "bg-background-muted text-background-800 focus-visible:outline-none"
|
|
1472
|
-
},
|
|
1473
|
-
outlined: {
|
|
1474
|
-
error: "bg-error text-error-700 border border-error-300 focus-visible:outline-none",
|
|
1475
|
-
warning: "bg-warning text-warning-800 border border-warning-300 focus-visible:outline-none",
|
|
1476
|
-
success: "bg-success text-success-800 border border-success-300 focus-visible:outline-none",
|
|
1477
|
-
info: "bg-info text-info-800 border border-info-300 focus-visible:outline-none",
|
|
1478
|
-
muted: "bg-background-muted text-background-800 border border-border-300 focus-visible:outline-none"
|
|
1479
|
-
},
|
|
1480
|
-
exams: {
|
|
1481
|
-
exam1: "bg-exam-1 text-info-700 focus-visible:outline-none",
|
|
1482
|
-
exam2: "bg-exam-2 text-typography-1 focus-visible:outline-none",
|
|
1483
|
-
exam3: "bg-exam-3 text-typography-2 focus-visible:outline-none",
|
|
1484
|
-
exam4: "bg-exam-4 text-success-700 focus-visible:outline-none"
|
|
1485
|
-
},
|
|
1486
|
-
examsOutlined: {
|
|
1487
|
-
exam1: "bg-exam-1 text-info-700 border border-info-700 focus-visible:outline-none",
|
|
1488
|
-
exam2: "bg-exam-2 text-typography-1 border border-typography-1 focus-visible:outline-none",
|
|
1489
|
-
exam3: "bg-exam-3 text-typography-2 border border-typography-2 focus-visible:outline-none",
|
|
1490
|
-
exam4: "bg-exam-4 text-success-700 border border-success-700 focus-visible:outline-none"
|
|
1491
|
-
},
|
|
1492
|
-
resultStatus: {
|
|
1493
|
-
negative: "bg-error text-error-800 focus-visible:outline-none",
|
|
1494
|
-
positive: "bg-success text-success-800 focus-visible:outline-none"
|
|
1495
|
-
},
|
|
1496
|
-
notification: "text-primary"
|
|
1497
|
-
};
|
|
1498
|
-
var SIZE_CLASSES7 = {
|
|
1499
|
-
small: "text-2xs px-2 py-1",
|
|
1500
|
-
medium: "text-xs px-2 py-1",
|
|
1501
|
-
large: "text-sm px-2 py-1"
|
|
1502
|
-
};
|
|
1503
|
-
var SIZE_CLASSES_ICON = {
|
|
1504
|
-
small: "size-3",
|
|
1505
|
-
medium: "size-3.5",
|
|
1506
|
-
large: "size-4"
|
|
1461
|
+
// src/components/SendActivityModal/validation.ts
|
|
1462
|
+
var import_zod = require("zod");
|
|
1463
|
+
var ERROR_MESSAGES = {
|
|
1464
|
+
SUBTYPE_REQUIRED: "Campo obrigat\xF3rio! Por favor, selecione uma op\xE7\xE3o para continuar.",
|
|
1465
|
+
TITLE_REQUIRED: "Campo obrigat\xF3rio! Por favor, preencha este campo para continuar.",
|
|
1466
|
+
STUDENTS_REQUIRED: "Campo obrigat\xF3rio! Por favor, selecione pelo menos um aluno para continuar.",
|
|
1467
|
+
START_DATE_REQUIRED: "Campo obrigat\xF3rio! Por favor, preencha este campo para continuar.",
|
|
1468
|
+
FINAL_DATE_REQUIRED: "Campo obrigat\xF3rio! Por favor, preencha este campo para continuar.",
|
|
1469
|
+
FINAL_DATE_INVALID: "A data final deve ser maior ou igual \xE0 data inicial."
|
|
1507
1470
|
};
|
|
1508
|
-
var
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
const baseClasses = "inline-flex items-center justify-center rounded-xs font-normal gap-1 relative";
|
|
1524
|
-
const baseClassesIcon = "flex items-center";
|
|
1525
|
-
if (variant === "notification") {
|
|
1526
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1527
|
-
"div",
|
|
1528
|
-
{
|
|
1529
|
-
className: cn(baseClasses, variantClasses, sizeClasses, className),
|
|
1530
|
-
...props,
|
|
1531
|
-
children: [
|
|
1532
|
-
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_phosphor_react6.Bell, { size: 24, className: "text-current", "aria-hidden": "true" }),
|
|
1533
|
-
notificationActive && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
|
|
1534
|
-
"span",
|
|
1535
|
-
{
|
|
1536
|
-
"data-testid": "notification-dot",
|
|
1537
|
-
className: "absolute top-[5px] right-[10px] block h-2 w-2 rounded-full bg-indicator-error ring-2 ring-white"
|
|
1538
|
-
}
|
|
1539
|
-
)
|
|
1540
|
-
]
|
|
1541
|
-
}
|
|
1542
|
-
);
|
|
1543
|
-
}
|
|
1544
|
-
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1545
|
-
"div",
|
|
1471
|
+
var activityStepSchema = import_zod.z.object({
|
|
1472
|
+
subtype: import_zod.z.enum(["TAREFA", "TRABALHO", "PROVA"], {
|
|
1473
|
+
errorMap: () => ({ message: ERROR_MESSAGES.SUBTYPE_REQUIRED })
|
|
1474
|
+
}),
|
|
1475
|
+
title: import_zod.z.string({ required_error: ERROR_MESSAGES.TITLE_REQUIRED }).transform((val) => val.trim()).refine((val) => val.length > 0, {
|
|
1476
|
+
message: ERROR_MESSAGES.TITLE_REQUIRED
|
|
1477
|
+
}),
|
|
1478
|
+
notification: import_zod.z.string().optional()
|
|
1479
|
+
});
|
|
1480
|
+
var recipientStepSchema = import_zod.z.object({
|
|
1481
|
+
students: import_zod.z.array(
|
|
1482
|
+
import_zod.z.object({
|
|
1483
|
+
studentId: import_zod.z.string(),
|
|
1484
|
+
userInstitutionId: import_zod.z.string()
|
|
1485
|
+
}),
|
|
1546
1486
|
{
|
|
1547
|
-
|
|
1548
|
-
|
|
1549
|
-
children: [
|
|
1550
|
-
iconLeft && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: cn(baseClassesIcon, sizeClassesIcon), children: iconLeft }),
|
|
1551
|
-
children,
|
|
1552
|
-
iconRight && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: cn(baseClassesIcon, sizeClassesIcon), children: iconRight })
|
|
1553
|
-
]
|
|
1487
|
+
required_error: ERROR_MESSAGES.STUDENTS_REQUIRED,
|
|
1488
|
+
invalid_type_error: ERROR_MESSAGES.STUDENTS_REQUIRED
|
|
1554
1489
|
}
|
|
1555
|
-
)
|
|
1556
|
-
};
|
|
1557
|
-
var
|
|
1558
|
-
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
(
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1568
|
-
|
|
1569
|
-
|
|
1570
|
-
|
|
1571
|
-
|
|
1572
|
-
|
|
1573
|
-
|
|
1574
|
-
|
|
1575
|
-
|
|
1576
|
-
|
|
1577
|
-
"font-bold",
|
|
1578
|
-
"shadow-soft-shadow-1",
|
|
1579
|
-
"hover:bg-background-100",
|
|
1580
|
-
"focus-visible:outline-none",
|
|
1581
|
-
"focus-visible:ring-2",
|
|
1582
|
-
"focus-visible:ring-indicator-info",
|
|
1583
|
-
"focus-visible:ring-offset-0",
|
|
1584
|
-
"focus-visible:shadow-none",
|
|
1585
|
-
"active:ring-2",
|
|
1586
|
-
"active:ring-primary-950",
|
|
1587
|
-
"active:ring-offset-0",
|
|
1588
|
-
"active:shadow-none",
|
|
1589
|
-
"disabled:opacity-50",
|
|
1590
|
-
"disabled:cursor-not-allowed"
|
|
1591
|
-
];
|
|
1592
|
-
const stateClasses = selected ? ["ring-primary-950", "ring-2", "ring-offset-0", "shadow-none"] : [];
|
|
1593
|
-
const allClasses = [...baseClasses, ...stateClasses].join(" ");
|
|
1594
|
-
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1595
|
-
"button",
|
|
1596
|
-
{
|
|
1597
|
-
ref,
|
|
1598
|
-
type: "button",
|
|
1599
|
-
className: cn(allClasses, className),
|
|
1600
|
-
disabled,
|
|
1601
|
-
"aria-pressed": selected,
|
|
1602
|
-
...props,
|
|
1603
|
-
children: [
|
|
1604
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: "flex items-center justify-center w-6 h-6", children: icon }),
|
|
1605
|
-
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { children: label })
|
|
1606
|
-
]
|
|
1607
|
-
}
|
|
1608
|
-
);
|
|
1609
|
-
}
|
|
1610
|
-
);
|
|
1611
|
-
SelectionButton.displayName = "SelectionButton";
|
|
1612
|
-
var SelectionButton_default = SelectionButton;
|
|
1613
|
-
|
|
1614
|
-
// src/components/CheckBox/CheckBox.tsx
|
|
1615
|
-
var import_react6 = require("react");
|
|
1616
|
-
var import_phosphor_react7 = require("phosphor-react");
|
|
1617
|
-
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1618
|
-
var SIZE_CLASSES8 = {
|
|
1619
|
-
small: {
|
|
1620
|
-
checkbox: "w-4 h-4",
|
|
1621
|
-
// 16px x 16px
|
|
1622
|
-
textSize: "sm",
|
|
1623
|
-
spacing: "gap-1.5",
|
|
1624
|
-
// 6px
|
|
1625
|
-
borderWidth: "border-2",
|
|
1626
|
-
iconSize: 14,
|
|
1627
|
-
// pixels for Phosphor icons
|
|
1628
|
-
labelHeight: "h-[21px]"
|
|
1629
|
-
},
|
|
1630
|
-
medium: {
|
|
1631
|
-
checkbox: "w-5 h-5",
|
|
1632
|
-
// 20px x 20px
|
|
1633
|
-
textSize: "md",
|
|
1634
|
-
spacing: "gap-2",
|
|
1635
|
-
// 8px
|
|
1636
|
-
borderWidth: "border-2",
|
|
1637
|
-
iconSize: 16,
|
|
1638
|
-
// pixels for Phosphor icons
|
|
1639
|
-
labelHeight: "h-6"
|
|
1490
|
+
).min(1, ERROR_MESSAGES.STUDENTS_REQUIRED)
|
|
1491
|
+
});
|
|
1492
|
+
var DATE_REGEX = /^\d{4}-\d{2}-\d{2}$/;
|
|
1493
|
+
var TIME_REGEX = /^\d{2}:\d{2}$/;
|
|
1494
|
+
var deadlineStepBaseSchema = import_zod.z.object({
|
|
1495
|
+
startDate: import_zod.z.string({
|
|
1496
|
+
required_error: ERROR_MESSAGES.START_DATE_REQUIRED,
|
|
1497
|
+
invalid_type_error: ERROR_MESSAGES.START_DATE_REQUIRED
|
|
1498
|
+
}).min(1, ERROR_MESSAGES.START_DATE_REQUIRED).regex(DATE_REGEX, ERROR_MESSAGES.START_DATE_REQUIRED),
|
|
1499
|
+
startTime: import_zod.z.string().regex(TIME_REGEX).default("00:00"),
|
|
1500
|
+
finalDate: import_zod.z.string({
|
|
1501
|
+
required_error: ERROR_MESSAGES.FINAL_DATE_REQUIRED,
|
|
1502
|
+
invalid_type_error: ERROR_MESSAGES.FINAL_DATE_REQUIRED
|
|
1503
|
+
}).min(1, ERROR_MESSAGES.FINAL_DATE_REQUIRED).regex(DATE_REGEX, ERROR_MESSAGES.FINAL_DATE_REQUIRED),
|
|
1504
|
+
finalTime: import_zod.z.string().regex(TIME_REGEX).default("23:59"),
|
|
1505
|
+
canRetry: import_zod.z.boolean().default(false)
|
|
1506
|
+
});
|
|
1507
|
+
var deadlineStepSchema = deadlineStepBaseSchema.refine(
|
|
1508
|
+
(data) => {
|
|
1509
|
+
const start = /* @__PURE__ */ new Date(`${data.startDate}T${data.startTime}`);
|
|
1510
|
+
const end = /* @__PURE__ */ new Date(`${data.finalDate}T${data.finalTime}`);
|
|
1511
|
+
return end >= start;
|
|
1640
1512
|
},
|
|
1641
|
-
|
|
1642
|
-
|
|
1643
|
-
|
|
1644
|
-
|
|
1645
|
-
|
|
1646
|
-
|
|
1647
|
-
|
|
1648
|
-
|
|
1649
|
-
|
|
1650
|
-
|
|
1651
|
-
|
|
1513
|
+
{ message: ERROR_MESSAGES.FINAL_DATE_INVALID, path: ["finalDate"] }
|
|
1514
|
+
);
|
|
1515
|
+
function validateActivityStep(data) {
|
|
1516
|
+
const errors = {};
|
|
1517
|
+
const result = activityStepSchema.safeParse({
|
|
1518
|
+
subtype: data.subtype,
|
|
1519
|
+
title: data.title,
|
|
1520
|
+
notification: data.notification
|
|
1521
|
+
});
|
|
1522
|
+
if (!result.success) {
|
|
1523
|
+
result.error.issues.forEach((issue) => {
|
|
1524
|
+
const field = issue.path[0];
|
|
1525
|
+
if (field === "subtype" || field === "title") {
|
|
1526
|
+
errors[field] = issue.message;
|
|
1527
|
+
}
|
|
1528
|
+
});
|
|
1652
1529
|
}
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
1656
|
-
|
|
1657
|
-
|
|
1658
|
-
|
|
1659
|
-
}
|
|
1660
|
-
|
|
1661
|
-
|
|
1530
|
+
return errors;
|
|
1531
|
+
}
|
|
1532
|
+
function validateRecipientStep(data) {
|
|
1533
|
+
const errors = {};
|
|
1534
|
+
const result = recipientStepSchema.safeParse({
|
|
1535
|
+
students: data.students ?? []
|
|
1536
|
+
});
|
|
1537
|
+
if (!result.success) {
|
|
1538
|
+
result.error.issues.forEach((issue) => {
|
|
1539
|
+
if (issue.path[0] === "students") {
|
|
1540
|
+
errors.students = issue.message;
|
|
1541
|
+
}
|
|
1542
|
+
});
|
|
1543
|
+
}
|
|
1544
|
+
return errors;
|
|
1545
|
+
}
|
|
1546
|
+
function validateDeadlineStep(data) {
|
|
1547
|
+
const errors = {};
|
|
1548
|
+
if (!data.startDate) {
|
|
1549
|
+
errors.startDate = ERROR_MESSAGES.START_DATE_REQUIRED;
|
|
1550
|
+
}
|
|
1551
|
+
if (!data.finalDate) {
|
|
1552
|
+
errors.finalDate = ERROR_MESSAGES.FINAL_DATE_REQUIRED;
|
|
1553
|
+
}
|
|
1554
|
+
if (data.startDate && data.finalDate) {
|
|
1555
|
+
const result = deadlineStepSchema.safeParse({
|
|
1556
|
+
startDate: data.startDate,
|
|
1557
|
+
startTime: data.startTime ?? "00:00",
|
|
1558
|
+
finalDate: data.finalDate,
|
|
1559
|
+
finalTime: data.finalTime ?? "23:59",
|
|
1560
|
+
canRetry: data.canRetry ?? false
|
|
1561
|
+
});
|
|
1562
|
+
if (!result.success) {
|
|
1563
|
+
result.error.issues.forEach((issue) => {
|
|
1564
|
+
const field = issue.path[0];
|
|
1565
|
+
if (field === "startDate" || field === "finalDate") {
|
|
1566
|
+
errors[field] = issue.message;
|
|
1567
|
+
}
|
|
1568
|
+
});
|
|
1569
|
+
}
|
|
1570
|
+
}
|
|
1571
|
+
return errors;
|
|
1572
|
+
}
|
|
1573
|
+
function validateStep(step, data) {
|
|
1574
|
+
switch (step) {
|
|
1575
|
+
case 1:
|
|
1576
|
+
return validateActivityStep(data);
|
|
1577
|
+
case 2:
|
|
1578
|
+
return validateRecipientStep(data);
|
|
1579
|
+
case 3:
|
|
1580
|
+
return validateDeadlineStep(data);
|
|
1581
|
+
default:
|
|
1582
|
+
return {};
|
|
1583
|
+
}
|
|
1584
|
+
}
|
|
1585
|
+
function isStepValid(step, data) {
|
|
1586
|
+
const errors = validateStep(step, data);
|
|
1587
|
+
return Object.keys(errors).length === 0;
|
|
1588
|
+
}
|
|
1589
|
+
function isFormValid(data) {
|
|
1590
|
+
return isStepValid(1, data) && isStepValid(2, data) && isStepValid(3, data);
|
|
1591
|
+
}
|
|
1592
|
+
|
|
1593
|
+
// src/utils/extractStudentsFromCategories.ts
|
|
1594
|
+
function extractStudentsFromCategories(categories) {
|
|
1595
|
+
const studentsCategory = categories.find((cat) => cat.key === "students");
|
|
1596
|
+
if (!studentsCategory?.selectedIds || !studentsCategory.itens) {
|
|
1597
|
+
return [];
|
|
1598
|
+
}
|
|
1599
|
+
return studentsCategory.selectedIds.map((id) => {
|
|
1600
|
+
const student = studentsCategory.itens?.find((item) => item.id === id);
|
|
1601
|
+
if (student) {
|
|
1602
|
+
const rawStudentId = student.studentId;
|
|
1603
|
+
const rawUserInstId = student.userInstitutionId;
|
|
1604
|
+
const rawInstId = student.institutionId;
|
|
1605
|
+
const studentId = typeof rawStudentId === "string" || typeof rawStudentId === "number" ? String(rawStudentId) : student.id;
|
|
1606
|
+
let userInstitutionId = "";
|
|
1607
|
+
if (typeof rawUserInstId === "string" || typeof rawUserInstId === "number") {
|
|
1608
|
+
userInstitutionId = String(rawUserInstId);
|
|
1609
|
+
} else if (typeof rawInstId === "string" || typeof rawInstId === "number") {
|
|
1610
|
+
userInstitutionId = String(rawInstId);
|
|
1611
|
+
}
|
|
1612
|
+
if (!userInstitutionId) {
|
|
1613
|
+
return null;
|
|
1614
|
+
}
|
|
1615
|
+
return { studentId, userInstitutionId };
|
|
1616
|
+
}
|
|
1617
|
+
return null;
|
|
1618
|
+
}).filter((s) => s !== null);
|
|
1619
|
+
}
|
|
1620
|
+
|
|
1621
|
+
// src/components/SendActivityModal/hooks/useSendActivityModal.ts
|
|
1622
|
+
var initialState = {
|
|
1623
|
+
formData: {
|
|
1624
|
+
canRetry: false,
|
|
1625
|
+
startTime: "00:00",
|
|
1626
|
+
finalTime: "23:59"
|
|
1627
|
+
},
|
|
1628
|
+
currentStep: 1,
|
|
1629
|
+
completedSteps: [],
|
|
1630
|
+
errors: {},
|
|
1631
|
+
categories: []
|
|
1632
|
+
};
|
|
1633
|
+
var useSendActivityModalStore = (0, import_zustand2.create)(
|
|
1634
|
+
(set, get) => ({
|
|
1635
|
+
...initialState,
|
|
1636
|
+
setFormData: (data) => {
|
|
1637
|
+
set((state) => ({
|
|
1638
|
+
formData: { ...state.formData, ...data }
|
|
1639
|
+
}));
|
|
1640
|
+
},
|
|
1641
|
+
goToStep: (step) => {
|
|
1642
|
+
if (step >= 1 && step <= 3) {
|
|
1643
|
+
set({ currentStep: step, errors: {} });
|
|
1644
|
+
}
|
|
1645
|
+
},
|
|
1646
|
+
nextStep: () => {
|
|
1647
|
+
const state = get();
|
|
1648
|
+
const isValid = state.validateCurrentStep();
|
|
1649
|
+
if (isValid && state.currentStep < 3) {
|
|
1650
|
+
set((prev) => ({
|
|
1651
|
+
currentStep: prev.currentStep + 1,
|
|
1652
|
+
completedSteps: prev.completedSteps.includes(prev.currentStep) ? prev.completedSteps : [...prev.completedSteps, prev.currentStep],
|
|
1653
|
+
errors: {}
|
|
1654
|
+
}));
|
|
1655
|
+
return true;
|
|
1656
|
+
}
|
|
1657
|
+
return isValid;
|
|
1658
|
+
},
|
|
1659
|
+
previousStep: () => {
|
|
1660
|
+
const state = get();
|
|
1661
|
+
if (state.currentStep > 1) {
|
|
1662
|
+
set({ currentStep: state.currentStep - 1, errors: {} });
|
|
1663
|
+
}
|
|
1664
|
+
},
|
|
1665
|
+
setErrors: (errors) => {
|
|
1666
|
+
set({ errors });
|
|
1667
|
+
},
|
|
1668
|
+
validateCurrentStep: () => {
|
|
1669
|
+
const state = get();
|
|
1670
|
+
let formDataToValidate = state.formData;
|
|
1671
|
+
let updatedFormData = state.formData;
|
|
1672
|
+
if (state.currentStep === 2 && state.categories.length > 0) {
|
|
1673
|
+
const students = extractStudentsFromCategories(state.categories);
|
|
1674
|
+
formDataToValidate = { ...state.formData, students };
|
|
1675
|
+
updatedFormData = formDataToValidate;
|
|
1676
|
+
}
|
|
1677
|
+
const errors = validateStep(state.currentStep, formDataToValidate);
|
|
1678
|
+
set({ formData: updatedFormData, errors });
|
|
1679
|
+
return Object.keys(errors).length === 0;
|
|
1680
|
+
},
|
|
1681
|
+
validateAllSteps: () => {
|
|
1682
|
+
const state = get();
|
|
1683
|
+
let formDataForStep2 = state.formData;
|
|
1684
|
+
if (state.categories.length > 0) {
|
|
1685
|
+
const students = extractStudentsFromCategories(state.categories);
|
|
1686
|
+
formDataForStep2 = { ...state.formData, students };
|
|
1687
|
+
}
|
|
1688
|
+
const errors1 = validateStep(1, state.formData);
|
|
1689
|
+
const errors2 = validateStep(2, formDataForStep2);
|
|
1690
|
+
const errors3 = validateStep(3, state.formData);
|
|
1691
|
+
const allErrors = { ...errors1, ...errors2, ...errors3 };
|
|
1692
|
+
set({ errors: allErrors });
|
|
1693
|
+
return Object.keys(allErrors).length === 0;
|
|
1694
|
+
},
|
|
1695
|
+
setCategories: (categories) => {
|
|
1696
|
+
const students = extractStudentsFromCategories(categories);
|
|
1697
|
+
set((state) => ({
|
|
1698
|
+
categories,
|
|
1699
|
+
formData: { ...state.formData, students }
|
|
1700
|
+
}));
|
|
1701
|
+
},
|
|
1702
|
+
reset: () => {
|
|
1703
|
+
set({
|
|
1704
|
+
...initialState,
|
|
1705
|
+
categories: []
|
|
1706
|
+
});
|
|
1707
|
+
}
|
|
1708
|
+
})
|
|
1709
|
+
);
|
|
1710
|
+
function useSendActivityModal() {
|
|
1711
|
+
return useSendActivityModalStore();
|
|
1712
|
+
}
|
|
1713
|
+
|
|
1714
|
+
// src/components/SendActivityModal/types.ts
|
|
1715
|
+
var ACTIVITY_TYPE_OPTIONS = [
|
|
1716
|
+
{ value: "TAREFA", label: "Tarefa" },
|
|
1717
|
+
{ value: "TRABALHO", label: "Trabalho" },
|
|
1718
|
+
{ value: "PROVA", label: "Prova" }
|
|
1719
|
+
];
|
|
1720
|
+
|
|
1721
|
+
// src/components/shared/SendModalBase/hooks/useDateTimeHandlers.ts
|
|
1722
|
+
var import_react5 = require("react");
|
|
1723
|
+
function useDateTimeHandlers({ setFormData }) {
|
|
1724
|
+
const handleStartDateChange = (0, import_react5.useCallback)(
|
|
1725
|
+
(value) => {
|
|
1726
|
+
setFormData({ startDate: value });
|
|
1727
|
+
},
|
|
1728
|
+
[setFormData]
|
|
1729
|
+
);
|
|
1730
|
+
const handleStartTimeChange = (0, import_react5.useCallback)(
|
|
1731
|
+
(value) => {
|
|
1732
|
+
setFormData({ startTime: value });
|
|
1733
|
+
},
|
|
1734
|
+
[setFormData]
|
|
1735
|
+
);
|
|
1736
|
+
const handleFinalDateChange = (0, import_react5.useCallback)(
|
|
1737
|
+
(value) => {
|
|
1738
|
+
setFormData({ finalDate: value });
|
|
1739
|
+
},
|
|
1740
|
+
[setFormData]
|
|
1741
|
+
);
|
|
1742
|
+
const handleFinalTimeChange = (0, import_react5.useCallback)(
|
|
1743
|
+
(value) => {
|
|
1744
|
+
setFormData({ finalTime: value });
|
|
1745
|
+
},
|
|
1746
|
+
[setFormData]
|
|
1747
|
+
);
|
|
1748
|
+
return {
|
|
1749
|
+
handleStartDateChange,
|
|
1750
|
+
handleStartTimeChange,
|
|
1751
|
+
handleFinalDateChange,
|
|
1752
|
+
handleFinalTimeChange
|
|
1753
|
+
};
|
|
1754
|
+
}
|
|
1755
|
+
|
|
1756
|
+
// src/components/shared/SendModalBase/components/SendModalError.tsx
|
|
1757
|
+
var import_phosphor_react6 = require("phosphor-react");
|
|
1758
|
+
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1759
|
+
var SendModalError = ({
|
|
1760
|
+
error,
|
|
1761
|
+
testId
|
|
1762
|
+
}) => {
|
|
1763
|
+
if (!error) return null;
|
|
1764
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1765
|
+
Text_default,
|
|
1766
|
+
{
|
|
1767
|
+
as: "p",
|
|
1768
|
+
size: "sm",
|
|
1769
|
+
color: "text-error-600",
|
|
1770
|
+
className: "flex items-center gap-1 mt-1",
|
|
1771
|
+
"data-testid": testId,
|
|
1772
|
+
"aria-live": "polite",
|
|
1773
|
+
children: [
|
|
1774
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_phosphor_react6.WarningCircle, { size: 16 }),
|
|
1775
|
+
error
|
|
1776
|
+
]
|
|
1777
|
+
}
|
|
1778
|
+
);
|
|
1779
|
+
};
|
|
1780
|
+
|
|
1781
|
+
// src/components/CheckBoxGroup/CheckBoxGroup.tsx
|
|
1782
|
+
var import_react17 = require("react");
|
|
1783
|
+
|
|
1784
|
+
// src/components/Badge/Badge.tsx
|
|
1785
|
+
var import_phosphor_react7 = require("phosphor-react");
|
|
1786
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1787
|
+
var VARIANT_ACTION_CLASSES2 = {
|
|
1788
|
+
solid: {
|
|
1789
|
+
error: "bg-error-background text-error-700 focus-visible:outline-none",
|
|
1790
|
+
warning: "bg-warning text-warning-800 focus-visible:outline-none",
|
|
1791
|
+
success: "bg-success text-success-800 focus-visible:outline-none",
|
|
1792
|
+
info: "bg-info text-info-800 focus-visible:outline-none",
|
|
1793
|
+
muted: "bg-background-muted text-background-800 focus-visible:outline-none"
|
|
1794
|
+
},
|
|
1795
|
+
outlined: {
|
|
1796
|
+
error: "bg-error text-error-700 border border-error-300 focus-visible:outline-none",
|
|
1797
|
+
warning: "bg-warning text-warning-800 border border-warning-300 focus-visible:outline-none",
|
|
1798
|
+
success: "bg-success text-success-800 border border-success-300 focus-visible:outline-none",
|
|
1799
|
+
info: "bg-info text-info-800 border border-info-300 focus-visible:outline-none",
|
|
1800
|
+
muted: "bg-background-muted text-background-800 border border-border-300 focus-visible:outline-none"
|
|
1801
|
+
},
|
|
1802
|
+
exams: {
|
|
1803
|
+
exam1: "bg-exam-1 text-info-700 focus-visible:outline-none",
|
|
1804
|
+
exam2: "bg-exam-2 text-typography-1 focus-visible:outline-none",
|
|
1805
|
+
exam3: "bg-exam-3 text-typography-2 focus-visible:outline-none",
|
|
1806
|
+
exam4: "bg-exam-4 text-success-700 focus-visible:outline-none"
|
|
1807
|
+
},
|
|
1808
|
+
examsOutlined: {
|
|
1809
|
+
exam1: "bg-exam-1 text-info-700 border border-info-700 focus-visible:outline-none",
|
|
1810
|
+
exam2: "bg-exam-2 text-typography-1 border border-typography-1 focus-visible:outline-none",
|
|
1811
|
+
exam3: "bg-exam-3 text-typography-2 border border-typography-2 focus-visible:outline-none",
|
|
1812
|
+
exam4: "bg-exam-4 text-success-700 border border-success-700 focus-visible:outline-none"
|
|
1813
|
+
},
|
|
1814
|
+
resultStatus: {
|
|
1815
|
+
negative: "bg-error text-error-800 focus-visible:outline-none",
|
|
1816
|
+
positive: "bg-success text-success-800 focus-visible:outline-none"
|
|
1817
|
+
},
|
|
1818
|
+
notification: "text-primary"
|
|
1819
|
+
};
|
|
1820
|
+
var SIZE_CLASSES7 = {
|
|
1821
|
+
small: "text-2xs px-2 py-1",
|
|
1822
|
+
medium: "text-xs px-2 py-1",
|
|
1823
|
+
large: "text-sm px-2 py-1"
|
|
1824
|
+
};
|
|
1825
|
+
var SIZE_CLASSES_ICON = {
|
|
1826
|
+
small: "size-3",
|
|
1827
|
+
medium: "size-3.5",
|
|
1828
|
+
large: "size-4"
|
|
1829
|
+
};
|
|
1830
|
+
var Badge = ({
|
|
1831
|
+
children,
|
|
1832
|
+
iconLeft,
|
|
1833
|
+
iconRight,
|
|
1834
|
+
size = "medium",
|
|
1835
|
+
variant = "solid",
|
|
1836
|
+
action = "error",
|
|
1837
|
+
className = "",
|
|
1838
|
+
notificationActive = false,
|
|
1839
|
+
...props
|
|
1840
|
+
}) => {
|
|
1841
|
+
const sizeClasses = SIZE_CLASSES7[size];
|
|
1842
|
+
const sizeClassesIcon = SIZE_CLASSES_ICON[size];
|
|
1843
|
+
const variantActionMap = VARIANT_ACTION_CLASSES2[variant] || {};
|
|
1844
|
+
const variantClasses = typeof variantActionMap === "string" ? variantActionMap : variantActionMap[action] ?? variantActionMap.muted ?? "";
|
|
1845
|
+
const baseClasses = "inline-flex items-center justify-center rounded-xs font-normal gap-1 relative";
|
|
1846
|
+
const baseClassesIcon = "flex items-center";
|
|
1847
|
+
if (variant === "notification") {
|
|
1848
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1849
|
+
"div",
|
|
1850
|
+
{
|
|
1851
|
+
className: cn(baseClasses, variantClasses, sizeClasses, className),
|
|
1852
|
+
...props,
|
|
1853
|
+
children: [
|
|
1854
|
+
/* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_phosphor_react7.Bell, { size: 24, className: "text-current", "aria-hidden": "true" }),
|
|
1855
|
+
notificationActive && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
|
|
1856
|
+
"span",
|
|
1857
|
+
{
|
|
1858
|
+
"data-testid": "notification-dot",
|
|
1859
|
+
className: "absolute top-[5px] right-[10px] block h-2 w-2 rounded-full bg-indicator-error ring-2 ring-white"
|
|
1860
|
+
}
|
|
1861
|
+
)
|
|
1862
|
+
]
|
|
1863
|
+
}
|
|
1864
|
+
);
|
|
1865
|
+
}
|
|
1866
|
+
return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
|
|
1867
|
+
"div",
|
|
1868
|
+
{
|
|
1869
|
+
className: cn(baseClasses, variantClasses, sizeClasses, className),
|
|
1870
|
+
...props,
|
|
1871
|
+
children: [
|
|
1872
|
+
iconLeft && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cn(baseClassesIcon, sizeClassesIcon), children: iconLeft }),
|
|
1873
|
+
children,
|
|
1874
|
+
iconRight && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cn(baseClassesIcon, sizeClassesIcon), children: iconRight })
|
|
1875
|
+
]
|
|
1876
|
+
}
|
|
1877
|
+
);
|
|
1878
|
+
};
|
|
1879
|
+
var Badge_default = Badge;
|
|
1880
|
+
|
|
1881
|
+
// src/components/SelectionButton/SelectionButton.tsx
|
|
1882
|
+
var import_react6 = require("react");
|
|
1883
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1884
|
+
var SelectionButton = (0, import_react6.forwardRef)(
|
|
1885
|
+
({ icon, label, selected = false, className = "", disabled, ...props }, ref) => {
|
|
1886
|
+
const baseClasses = [
|
|
1887
|
+
"inline-flex",
|
|
1888
|
+
"items-center",
|
|
1889
|
+
"justify-start",
|
|
1890
|
+
"gap-2",
|
|
1891
|
+
"p-4",
|
|
1892
|
+
"rounded-xl",
|
|
1893
|
+
"cursor-pointer",
|
|
1894
|
+
"border",
|
|
1895
|
+
"border-border-50",
|
|
1896
|
+
"bg-background",
|
|
1897
|
+
"text-sm",
|
|
1898
|
+
"text-text-700",
|
|
1899
|
+
"font-bold",
|
|
1900
|
+
"shadow-soft-shadow-1",
|
|
1901
|
+
"hover:bg-background-100",
|
|
1902
|
+
"focus-visible:outline-none",
|
|
1903
|
+
"focus-visible:ring-2",
|
|
1904
|
+
"focus-visible:ring-indicator-info",
|
|
1905
|
+
"focus-visible:ring-offset-0",
|
|
1906
|
+
"focus-visible:shadow-none",
|
|
1907
|
+
"active:ring-2",
|
|
1908
|
+
"active:ring-primary-950",
|
|
1909
|
+
"active:ring-offset-0",
|
|
1910
|
+
"active:shadow-none",
|
|
1911
|
+
"disabled:opacity-50",
|
|
1912
|
+
"disabled:cursor-not-allowed"
|
|
1913
|
+
];
|
|
1914
|
+
const stateClasses = selected ? ["ring-primary-950", "ring-2", "ring-offset-0", "shadow-none"] : [];
|
|
1915
|
+
const allClasses = [...baseClasses, ...stateClasses].join(" ");
|
|
1916
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1917
|
+
"button",
|
|
1918
|
+
{
|
|
1919
|
+
ref,
|
|
1920
|
+
type: "button",
|
|
1921
|
+
className: cn(allClasses, className),
|
|
1922
|
+
disabled,
|
|
1923
|
+
"aria-pressed": selected,
|
|
1924
|
+
...props,
|
|
1925
|
+
children: [
|
|
1926
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: "flex items-center justify-center w-6 h-6", children: icon }),
|
|
1927
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { children: label })
|
|
1928
|
+
]
|
|
1929
|
+
}
|
|
1930
|
+
);
|
|
1931
|
+
}
|
|
1932
|
+
);
|
|
1933
|
+
SelectionButton.displayName = "SelectionButton";
|
|
1934
|
+
var SelectionButton_default = SelectionButton;
|
|
1935
|
+
|
|
1936
|
+
// src/components/CheckBox/CheckBox.tsx
|
|
1937
|
+
var import_react7 = require("react");
|
|
1938
|
+
var import_phosphor_react8 = require("phosphor-react");
|
|
1939
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1940
|
+
var SIZE_CLASSES8 = {
|
|
1941
|
+
small: {
|
|
1942
|
+
checkbox: "w-4 h-4",
|
|
1943
|
+
// 16px x 16px
|
|
1944
|
+
textSize: "sm",
|
|
1945
|
+
spacing: "gap-1.5",
|
|
1946
|
+
// 6px
|
|
1947
|
+
borderWidth: "border-2",
|
|
1948
|
+
iconSize: 14,
|
|
1949
|
+
// pixels for Phosphor icons
|
|
1950
|
+
labelHeight: "h-[21px]"
|
|
1951
|
+
},
|
|
1952
|
+
medium: {
|
|
1953
|
+
checkbox: "w-5 h-5",
|
|
1954
|
+
// 20px x 20px
|
|
1955
|
+
textSize: "md",
|
|
1956
|
+
spacing: "gap-2",
|
|
1957
|
+
// 8px
|
|
1958
|
+
borderWidth: "border-2",
|
|
1959
|
+
iconSize: 16,
|
|
1960
|
+
// pixels for Phosphor icons
|
|
1961
|
+
labelHeight: "h-6"
|
|
1962
|
+
},
|
|
1963
|
+
large: {
|
|
1964
|
+
checkbox: "w-6 h-6",
|
|
1965
|
+
// 24px x 24px
|
|
1966
|
+
textSize: "lg",
|
|
1967
|
+
spacing: "gap-2",
|
|
1968
|
+
// 8px
|
|
1969
|
+
borderWidth: "border-[3px]",
|
|
1970
|
+
// 3px border
|
|
1971
|
+
iconSize: 20,
|
|
1972
|
+
// pixels for Phosphor icons
|
|
1973
|
+
labelHeight: "h-[27px]"
|
|
1974
|
+
}
|
|
1975
|
+
};
|
|
1976
|
+
var BASE_CHECKBOX_CLASSES = "rounded border cursor-pointer transition-all duration-200 flex items-center justify-center focus:outline-none";
|
|
1977
|
+
var STATE_CLASSES6 = {
|
|
1978
|
+
default: {
|
|
1979
|
+
unchecked: "border-border-400 bg-background hover:border-border-500",
|
|
1980
|
+
checked: "border-primary-950 bg-primary-950 text-text hover:border-primary-800 hover:bg-primary-800"
|
|
1981
|
+
},
|
|
1982
|
+
hovered: {
|
|
1983
|
+
unchecked: "border-border-500 bg-background",
|
|
1662
1984
|
checked: "border-primary-800 bg-primary-800 text-text"
|
|
1663
1985
|
},
|
|
1664
1986
|
focused: {
|
|
@@ -1674,7 +1996,7 @@ var STATE_CLASSES6 = {
|
|
|
1674
1996
|
checked: "border-primary-600 bg-primary-600 text-text cursor-not-allowed opacity-40"
|
|
1675
1997
|
}
|
|
1676
1998
|
};
|
|
1677
|
-
var CheckBox = (0,
|
|
1999
|
+
var CheckBox = (0, import_react7.forwardRef)(
|
|
1678
2000
|
({
|
|
1679
2001
|
label,
|
|
1680
2002
|
size = "medium",
|
|
@@ -1690,9 +2012,9 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1690
2012
|
onChange,
|
|
1691
2013
|
...props
|
|
1692
2014
|
}, ref) => {
|
|
1693
|
-
const generatedId = (0,
|
|
2015
|
+
const generatedId = (0, import_react7.useId)();
|
|
1694
2016
|
const inputId = id ?? `checkbox-${generatedId}`;
|
|
1695
|
-
const [internalChecked, setInternalChecked] = (0,
|
|
2017
|
+
const [internalChecked, setInternalChecked] = (0, import_react7.useState)(false);
|
|
1696
2018
|
const isControlled = checkedProp !== void 0;
|
|
1697
2019
|
const checked = isControlled ? checkedProp : internalChecked;
|
|
1698
2020
|
const handleChange = (event) => {
|
|
@@ -1715,8 +2037,8 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1715
2037
|
);
|
|
1716
2038
|
const renderIcon = () => {
|
|
1717
2039
|
if (indeterminate) {
|
|
1718
|
-
return /* @__PURE__ */ (0,
|
|
1719
|
-
|
|
2040
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2041
|
+
import_phosphor_react8.Minus,
|
|
1720
2042
|
{
|
|
1721
2043
|
size: sizeClasses.iconSize,
|
|
1722
2044
|
weight: "bold",
|
|
@@ -1725,8 +2047,8 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1725
2047
|
);
|
|
1726
2048
|
}
|
|
1727
2049
|
if (checked) {
|
|
1728
|
-
return /* @__PURE__ */ (0,
|
|
1729
|
-
|
|
2050
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
2051
|
+
import_phosphor_react8.Check,
|
|
1730
2052
|
{
|
|
1731
2053
|
size: sizeClasses.iconSize,
|
|
1732
2054
|
weight: "bold",
|
|
@@ -1736,8 +2058,8 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1736
2058
|
}
|
|
1737
2059
|
return null;
|
|
1738
2060
|
};
|
|
1739
|
-
return /* @__PURE__ */ (0,
|
|
1740
|
-
/* @__PURE__ */ (0,
|
|
2061
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "flex flex-col", children: [
|
|
2062
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1741
2063
|
"div",
|
|
1742
2064
|
{
|
|
1743
2065
|
className: cn(
|
|
@@ -1746,7 +2068,7 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1746
2068
|
disabled ? "opacity-40" : ""
|
|
1747
2069
|
),
|
|
1748
2070
|
children: [
|
|
1749
|
-
/* @__PURE__ */ (0,
|
|
2071
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1750
2072
|
"input",
|
|
1751
2073
|
{
|
|
1752
2074
|
ref,
|
|
@@ -1759,15 +2081,15 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1759
2081
|
...props
|
|
1760
2082
|
}
|
|
1761
2083
|
),
|
|
1762
|
-
/* @__PURE__ */ (0,
|
|
1763
|
-
label && /* @__PURE__ */ (0,
|
|
2084
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("label", { htmlFor: inputId, className: checkboxClasses, children: renderIcon() }),
|
|
2085
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1764
2086
|
"div",
|
|
1765
2087
|
{
|
|
1766
2088
|
className: cn(
|
|
1767
2089
|
"flex flex-row items-center",
|
|
1768
2090
|
sizeClasses.labelHeight
|
|
1769
2091
|
),
|
|
1770
|
-
children: /* @__PURE__ */ (0,
|
|
2092
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1771
2093
|
Text_default,
|
|
1772
2094
|
{
|
|
1773
2095
|
as: "label",
|
|
@@ -1786,7 +2108,7 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1786
2108
|
]
|
|
1787
2109
|
}
|
|
1788
2110
|
),
|
|
1789
|
-
errorMessage && /* @__PURE__ */ (0,
|
|
2111
|
+
errorMessage && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1790
2112
|
Text_default,
|
|
1791
2113
|
{
|
|
1792
2114
|
size: "sm",
|
|
@@ -1796,7 +2118,7 @@ var CheckBox = (0, import_react6.forwardRef)(
|
|
|
1796
2118
|
children: errorMessage
|
|
1797
2119
|
}
|
|
1798
2120
|
),
|
|
1799
|
-
helperText && !errorMessage && /* @__PURE__ */ (0,
|
|
2121
|
+
helperText && !errorMessage && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1800
2122
|
Text_default,
|
|
1801
2123
|
{
|
|
1802
2124
|
size: "sm",
|
|
@@ -1813,7 +2135,7 @@ CheckBox.displayName = "CheckBox";
|
|
|
1813
2135
|
var CheckBox_default = CheckBox;
|
|
1814
2136
|
|
|
1815
2137
|
// src/components/Divider/Divider.tsx
|
|
1816
|
-
var
|
|
2138
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1817
2139
|
var Divider = ({
|
|
1818
2140
|
orientation = "horizontal",
|
|
1819
2141
|
className = "",
|
|
@@ -1824,7 +2146,7 @@ var Divider = ({
|
|
|
1824
2146
|
horizontal: "w-full h-px",
|
|
1825
2147
|
vertical: "h-full w-px"
|
|
1826
2148
|
};
|
|
1827
|
-
return /* @__PURE__ */ (0,
|
|
2149
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1828
2150
|
"hr",
|
|
1829
2151
|
{
|
|
1830
2152
|
className: cn(baseClasses, orientationClasses[orientation], className),
|
|
@@ -1836,20 +2158,20 @@ var Divider = ({
|
|
|
1836
2158
|
var Divider_default = Divider;
|
|
1837
2159
|
|
|
1838
2160
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
1839
|
-
var
|
|
1840
|
-
var
|
|
2161
|
+
var import_phosphor_react10 = require("phosphor-react");
|
|
2162
|
+
var import_react10 = require("react");
|
|
1841
2163
|
var import_react_dom = require("react-dom");
|
|
1842
|
-
var
|
|
2164
|
+
var import_zustand4 = require("zustand");
|
|
1843
2165
|
|
|
1844
2166
|
// src/components/ThemeToggle/ThemeToggle.tsx
|
|
1845
|
-
var
|
|
1846
|
-
var
|
|
2167
|
+
var import_phosphor_react9 = require("phosphor-react");
|
|
2168
|
+
var import_react9 = require("react");
|
|
1847
2169
|
|
|
1848
2170
|
// src/hooks/useTheme.ts
|
|
1849
|
-
var
|
|
2171
|
+
var import_react8 = require("react");
|
|
1850
2172
|
|
|
1851
2173
|
// src/store/themeStore.ts
|
|
1852
|
-
var
|
|
2174
|
+
var import_zustand3 = require("zustand");
|
|
1853
2175
|
var import_middleware = require("zustand/middleware");
|
|
1854
2176
|
var applyThemeToDOM = (mode) => {
|
|
1855
2177
|
const htmlElement = document.documentElement;
|
|
@@ -1883,7 +2205,7 @@ var saveOriginalTheme = () => {
|
|
|
1883
2205
|
htmlElement.setAttribute("data-original-theme", currentTheme);
|
|
1884
2206
|
}
|
|
1885
2207
|
};
|
|
1886
|
-
var useThemeStore = (0,
|
|
2208
|
+
var useThemeStore = (0, import_zustand3.create)()(
|
|
1887
2209
|
(0, import_middleware.devtools)(
|
|
1888
2210
|
(0, import_middleware.persist)(
|
|
1889
2211
|
(set, get) => ({
|
|
@@ -1950,7 +2272,7 @@ var useTheme = () => {
|
|
|
1950
2272
|
initializeTheme,
|
|
1951
2273
|
handleSystemThemeChange
|
|
1952
2274
|
} = useThemeStore();
|
|
1953
|
-
(0,
|
|
2275
|
+
(0, import_react8.useEffect)(() => {
|
|
1954
2276
|
initializeTheme();
|
|
1955
2277
|
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
1956
2278
|
mediaQuery.addEventListener("change", handleSystemThemeChange);
|
|
@@ -1967,31 +2289,31 @@ var useTheme = () => {
|
|
|
1967
2289
|
};
|
|
1968
2290
|
|
|
1969
2291
|
// src/components/ThemeToggle/ThemeToggle.tsx
|
|
1970
|
-
var
|
|
2292
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1971
2293
|
var ThemeToggle = ({
|
|
1972
2294
|
variant = "default",
|
|
1973
2295
|
onToggle
|
|
1974
2296
|
}) => {
|
|
1975
2297
|
const { themeMode, setTheme } = useTheme();
|
|
1976
|
-
const [tempTheme, setTempTheme] = (0,
|
|
1977
|
-
(0,
|
|
2298
|
+
const [tempTheme, setTempTheme] = (0, import_react9.useState)(themeMode);
|
|
2299
|
+
(0, import_react9.useEffect)(() => {
|
|
1978
2300
|
setTempTheme(themeMode);
|
|
1979
2301
|
}, [themeMode]);
|
|
1980
2302
|
const problemTypes = [
|
|
1981
2303
|
{
|
|
1982
2304
|
id: "light",
|
|
1983
2305
|
title: "Claro",
|
|
1984
|
-
icon: /* @__PURE__ */ (0,
|
|
2306
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_phosphor_react9.Sun, { size: 24 })
|
|
1985
2307
|
},
|
|
1986
2308
|
{
|
|
1987
2309
|
id: "dark",
|
|
1988
2310
|
title: "Escuro",
|
|
1989
|
-
icon: /* @__PURE__ */ (0,
|
|
2311
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(import_phosphor_react9.Moon, { size: 24 })
|
|
1990
2312
|
},
|
|
1991
2313
|
{
|
|
1992
2314
|
id: "system",
|
|
1993
2315
|
title: "Sistema",
|
|
1994
|
-
icon: /* @__PURE__ */ (0,
|
|
2316
|
+
icon: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1995
2317
|
"svg",
|
|
1996
2318
|
{
|
|
1997
2319
|
width: "25",
|
|
@@ -1999,7 +2321,7 @@ var ThemeToggle = ({
|
|
|
1999
2321
|
viewBox: "0 0 25 25",
|
|
2000
2322
|
fill: "none",
|
|
2001
2323
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2002
|
-
children: /* @__PURE__ */ (0,
|
|
2324
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2003
2325
|
"path",
|
|
2004
2326
|
{
|
|
2005
2327
|
d: "M12.5 2.75C15.085 2.75276 17.5637 3.78054 19.3916 5.6084C21.2195 7.43628 22.2473 9.915 22.25 12.5C22.25 14.4284 21.6778 16.3136 20.6064 17.917C19.5352 19.5201 18.0128 20.7699 16.2314 21.5078C14.4499 22.2458 12.489 22.4387 10.5977 22.0625C8.70642 21.6863 6.96899 20.758 5.60547 19.3945C4.24197 18.031 3.31374 16.2936 2.9375 14.4023C2.56129 12.511 2.75423 10.5501 3.49219 8.76855C4.23012 6.98718 5.47982 5.46483 7.08301 4.39355C8.68639 3.32221 10.5716 2.75 12.5 2.75ZM11.75 4.28516C9.70145 4.47452 7.7973 5.42115 6.41016 6.94043C5.02299 8.4599 4.25247 10.4426 4.25 12.5C4.25247 14.5574 5.02299 16.5401 6.41016 18.0596C7.7973 19.5789 9.70145 20.5255 11.75 20.7148V4.28516Z",
|
|
@@ -2021,7 +2343,7 @@ var ThemeToggle = ({
|
|
|
2021
2343
|
}
|
|
2022
2344
|
};
|
|
2023
2345
|
const currentTheme = variant === "with-save" ? tempTheme : themeMode;
|
|
2024
|
-
return /* @__PURE__ */ (0,
|
|
2346
|
+
return /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("div", { className: "flex flex-row gap-2 sm:gap-4 py-2", children: problemTypes.map((type) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
2025
2347
|
SelectionButton_default,
|
|
2026
2348
|
{
|
|
2027
2349
|
icon: type.icon,
|
|
@@ -2035,9 +2357,9 @@ var ThemeToggle = ({
|
|
|
2035
2357
|
};
|
|
2036
2358
|
|
|
2037
2359
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2038
|
-
var
|
|
2360
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
2039
2361
|
function createDropdownStore() {
|
|
2040
|
-
return (0,
|
|
2362
|
+
return (0, import_zustand4.create)((set) => ({
|
|
2041
2363
|
open: false,
|
|
2042
2364
|
setOpen: (open) => set({ open })
|
|
2043
2365
|
}));
|
|
@@ -2051,8 +2373,8 @@ var useDropdownStore = (externalStore) => {
|
|
|
2051
2373
|
return externalStore;
|
|
2052
2374
|
};
|
|
2053
2375
|
var injectStore2 = (children, store) => {
|
|
2054
|
-
return
|
|
2055
|
-
if ((0,
|
|
2376
|
+
return import_react10.Children.map(children, (child) => {
|
|
2377
|
+
if ((0, import_react10.isValidElement)(child)) {
|
|
2056
2378
|
const typedChild = child;
|
|
2057
2379
|
const displayName = typedChild.type.displayName;
|
|
2058
2380
|
const allowed = [
|
|
@@ -2074,7 +2396,7 @@ var injectStore2 = (children, store) => {
|
|
|
2074
2396
|
if (typedChild.props.children) {
|
|
2075
2397
|
newProps.children = injectStore2(typedChild.props.children, store);
|
|
2076
2398
|
}
|
|
2077
|
-
return (0,
|
|
2399
|
+
return (0, import_react10.cloneElement)(typedChild, newProps);
|
|
2078
2400
|
}
|
|
2079
2401
|
return child;
|
|
2080
2402
|
});
|
|
@@ -2084,14 +2406,14 @@ var DropdownMenu = ({
|
|
|
2084
2406
|
open: propOpen,
|
|
2085
2407
|
onOpenChange
|
|
2086
2408
|
}) => {
|
|
2087
|
-
const storeRef = (0,
|
|
2409
|
+
const storeRef = (0, import_react10.useRef)(null);
|
|
2088
2410
|
storeRef.current ??= createDropdownStore();
|
|
2089
2411
|
const store = storeRef.current;
|
|
2090
|
-
const { open, setOpen: storeSetOpen } = (0,
|
|
2412
|
+
const { open, setOpen: storeSetOpen } = (0, import_zustand4.useStore)(store, (s) => s);
|
|
2091
2413
|
const setOpen = (newOpen) => {
|
|
2092
2414
|
storeSetOpen(newOpen);
|
|
2093
2415
|
};
|
|
2094
|
-
const menuRef = (0,
|
|
2416
|
+
const menuRef = (0, import_react10.useRef)(null);
|
|
2095
2417
|
const handleArrowDownOrArrowUp = (event) => {
|
|
2096
2418
|
const menuContent = menuRef.current?.querySelector('[role="menu"]');
|
|
2097
2419
|
if (menuContent) {
|
|
@@ -2130,7 +2452,7 @@ var DropdownMenu = ({
|
|
|
2130
2452
|
}
|
|
2131
2453
|
setOpen(false);
|
|
2132
2454
|
};
|
|
2133
|
-
(0,
|
|
2455
|
+
(0, import_react10.useEffect)(() => {
|
|
2134
2456
|
if (open) {
|
|
2135
2457
|
document.addEventListener("pointerdown", handleClickOutside);
|
|
2136
2458
|
document.addEventListener("keydown", handleDownkey);
|
|
@@ -2140,21 +2462,21 @@ var DropdownMenu = ({
|
|
|
2140
2462
|
document.removeEventListener("keydown", handleDownkey);
|
|
2141
2463
|
};
|
|
2142
2464
|
}, [open]);
|
|
2143
|
-
(0,
|
|
2465
|
+
(0, import_react10.useEffect)(() => {
|
|
2144
2466
|
onOpenChange?.(open);
|
|
2145
2467
|
}, [open, onOpenChange]);
|
|
2146
|
-
(0,
|
|
2468
|
+
(0, import_react10.useEffect)(() => {
|
|
2147
2469
|
if (propOpen !== void 0) {
|
|
2148
2470
|
setOpen(propOpen);
|
|
2149
2471
|
}
|
|
2150
2472
|
}, [propOpen]);
|
|
2151
|
-
return /* @__PURE__ */ (0,
|
|
2473
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "relative", ref: menuRef, children: injectStore2(children, store) });
|
|
2152
2474
|
};
|
|
2153
|
-
var DropdownMenuTrigger = (0,
|
|
2475
|
+
var DropdownMenuTrigger = (0, import_react10.forwardRef)(({ className, children, onClick, store: externalStore, ...props }, ref) => {
|
|
2154
2476
|
const store = useDropdownStore(externalStore);
|
|
2155
|
-
const open = (0,
|
|
2477
|
+
const open = (0, import_zustand4.useStore)(store, (s) => s.open);
|
|
2156
2478
|
const toggleOpen = () => store.setState({ open: !open });
|
|
2157
|
-
return /* @__PURE__ */ (0,
|
|
2479
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2158
2480
|
"button",
|
|
2159
2481
|
{
|
|
2160
2482
|
ref,
|
|
@@ -2194,8 +2516,8 @@ var MENUCONTENT_VARIANT_CLASSES = {
|
|
|
2194
2516
|
menu: "p-1",
|
|
2195
2517
|
profile: "p-6"
|
|
2196
2518
|
};
|
|
2197
|
-
var MenuLabel = (0,
|
|
2198
|
-
return /* @__PURE__ */ (0,
|
|
2519
|
+
var MenuLabel = (0, import_react10.forwardRef)(({ className, inset, store: _store, ...props }, ref) => {
|
|
2520
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2199
2521
|
"div",
|
|
2200
2522
|
{
|
|
2201
2523
|
ref,
|
|
@@ -2205,7 +2527,7 @@ var MenuLabel = (0, import_react9.forwardRef)(({ className, inset, store: _store
|
|
|
2205
2527
|
);
|
|
2206
2528
|
});
|
|
2207
2529
|
MenuLabel.displayName = "MenuLabel";
|
|
2208
|
-
var DropdownMenuContent = (0,
|
|
2530
|
+
var DropdownMenuContent = (0, import_react10.forwardRef)(
|
|
2209
2531
|
({
|
|
2210
2532
|
className,
|
|
2211
2533
|
align = "start",
|
|
@@ -2219,11 +2541,11 @@ var DropdownMenuContent = (0, import_react9.forwardRef)(
|
|
|
2219
2541
|
...props
|
|
2220
2542
|
}, ref) => {
|
|
2221
2543
|
const store = useDropdownStore(externalStore);
|
|
2222
|
-
const open = (0,
|
|
2223
|
-
const [isVisible, setIsVisible] = (0,
|
|
2224
|
-
const [portalPosition, setPortalPosition] = (0,
|
|
2225
|
-
const contentRef = (0,
|
|
2226
|
-
(0,
|
|
2544
|
+
const open = (0, import_zustand4.useStore)(store, (s) => s.open);
|
|
2545
|
+
const [isVisible, setIsVisible] = (0, import_react10.useState)(open);
|
|
2546
|
+
const [portalPosition, setPortalPosition] = (0, import_react10.useState)({ top: 0, left: 0 });
|
|
2547
|
+
const contentRef = (0, import_react10.useRef)(null);
|
|
2548
|
+
(0, import_react10.useEffect)(() => {
|
|
2227
2549
|
if (open) {
|
|
2228
2550
|
setIsVisible(true);
|
|
2229
2551
|
} else {
|
|
@@ -2231,7 +2553,7 @@ var DropdownMenuContent = (0, import_react9.forwardRef)(
|
|
|
2231
2553
|
return () => clearTimeout(timer);
|
|
2232
2554
|
}
|
|
2233
2555
|
}, [open]);
|
|
2234
|
-
(0,
|
|
2556
|
+
(0, import_react10.useLayoutEffect)(() => {
|
|
2235
2557
|
if (portal && open && triggerRef?.current) {
|
|
2236
2558
|
const rect = triggerRef.current.getBoundingClientRect();
|
|
2237
2559
|
let top = rect.bottom + sideOffset;
|
|
@@ -2280,7 +2602,7 @@ var DropdownMenuContent = (0, import_react9.forwardRef)(
|
|
|
2280
2602
|
return baseStyle;
|
|
2281
2603
|
};
|
|
2282
2604
|
const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
|
|
2283
|
-
const content = /* @__PURE__ */ (0,
|
|
2605
|
+
const content = /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2284
2606
|
"div",
|
|
2285
2607
|
{
|
|
2286
2608
|
ref: portal ? contentRef : ref,
|
|
@@ -2312,7 +2634,7 @@ var DropdownMenuContent = (0, import_react9.forwardRef)(
|
|
|
2312
2634
|
}
|
|
2313
2635
|
);
|
|
2314
2636
|
DropdownMenuContent.displayName = "DropdownMenuContent";
|
|
2315
|
-
var DropdownMenuItem = (0,
|
|
2637
|
+
var DropdownMenuItem = (0, import_react10.forwardRef)(
|
|
2316
2638
|
({
|
|
2317
2639
|
className,
|
|
2318
2640
|
size = "small",
|
|
@@ -2327,7 +2649,7 @@ var DropdownMenuItem = (0, import_react9.forwardRef)(
|
|
|
2327
2649
|
...props
|
|
2328
2650
|
}, ref) => {
|
|
2329
2651
|
const store = useDropdownStore(externalStore);
|
|
2330
|
-
const setOpen = (0,
|
|
2652
|
+
const setOpen = (0, import_zustand4.useStore)(store, (s) => s.setOpen);
|
|
2331
2653
|
const sizeClasses = ITEM_SIZE_CLASSES[size];
|
|
2332
2654
|
const handleClick = (e) => {
|
|
2333
2655
|
if (disabled) {
|
|
@@ -2356,7 +2678,7 @@ var DropdownMenuItem = (0, import_react9.forwardRef)(
|
|
|
2356
2678
|
const getVariantProps = () => {
|
|
2357
2679
|
return variant === "profile" ? { "data-variant": "profile" } : {};
|
|
2358
2680
|
};
|
|
2359
|
-
return /* @__PURE__ */ (0,
|
|
2681
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2360
2682
|
"div",
|
|
2361
2683
|
{
|
|
2362
2684
|
ref,
|
|
@@ -2382,7 +2704,7 @@ var DropdownMenuItem = (0, import_react9.forwardRef)(
|
|
|
2382
2704
|
...props,
|
|
2383
2705
|
children: [
|
|
2384
2706
|
iconLeft,
|
|
2385
|
-
/* @__PURE__ */ (0,
|
|
2707
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { className: "w-full", children }),
|
|
2386
2708
|
iconRight
|
|
2387
2709
|
]
|
|
2388
2710
|
}
|
|
@@ -2390,7 +2712,7 @@ var DropdownMenuItem = (0, import_react9.forwardRef)(
|
|
|
2390
2712
|
}
|
|
2391
2713
|
);
|
|
2392
2714
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
2393
|
-
var DropdownMenuSeparator = (0,
|
|
2715
|
+
var DropdownMenuSeparator = (0, import_react10.forwardRef)(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2394
2716
|
"div",
|
|
2395
2717
|
{
|
|
2396
2718
|
ref,
|
|
@@ -2399,11 +2721,11 @@ var DropdownMenuSeparator = (0, import_react9.forwardRef)(({ className, store: _
|
|
|
2399
2721
|
}
|
|
2400
2722
|
));
|
|
2401
2723
|
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
|
|
2402
|
-
var ProfileMenuTrigger = (0,
|
|
2724
|
+
var ProfileMenuTrigger = (0, import_react10.forwardRef)(({ className, onClick, store: externalStore, ...props }, ref) => {
|
|
2403
2725
|
const store = useDropdownStore(externalStore);
|
|
2404
|
-
const open = (0,
|
|
2726
|
+
const open = (0, import_zustand4.useStore)(store, (s) => s.open);
|
|
2405
2727
|
const toggleOpen = () => store.setState({ open: !open });
|
|
2406
|
-
return /* @__PURE__ */ (0,
|
|
2728
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2407
2729
|
"button",
|
|
2408
2730
|
{
|
|
2409
2731
|
ref,
|
|
@@ -2418,13 +2740,13 @@ var ProfileMenuTrigger = (0, import_react9.forwardRef)(({ className, onClick, st
|
|
|
2418
2740
|
},
|
|
2419
2741
|
"aria-expanded": open,
|
|
2420
2742
|
...props,
|
|
2421
|
-
children: /* @__PURE__ */ (0,
|
|
2743
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "size-6 rounded-full bg-primary-100 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_phosphor_react10.User, { className: "text-primary-950", size: 18 }) })
|
|
2422
2744
|
}
|
|
2423
2745
|
);
|
|
2424
2746
|
});
|
|
2425
2747
|
ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
|
|
2426
|
-
var ProfileMenuHeader = (0,
|
|
2427
|
-
return /* @__PURE__ */ (0,
|
|
2748
|
+
var ProfileMenuHeader = (0, import_react10.forwardRef)(({ className, name, email, photoUrl, store: _store, ...props }, ref) => {
|
|
2749
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2428
2750
|
"div",
|
|
2429
2751
|
{
|
|
2430
2752
|
ref,
|
|
@@ -2435,16 +2757,16 @@ var ProfileMenuHeader = (0, import_react9.forwardRef)(({ className, name, email,
|
|
|
2435
2757
|
),
|
|
2436
2758
|
...props,
|
|
2437
2759
|
children: [
|
|
2438
|
-
/* @__PURE__ */ (0,
|
|
2760
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "w-16 h-16 bg-primary-100 rounded-full flex items-center justify-center overflow-hidden flex-shrink-0", children: photoUrl ? /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2439
2761
|
"img",
|
|
2440
2762
|
{
|
|
2441
2763
|
src: photoUrl,
|
|
2442
2764
|
alt: "Foto de perfil",
|
|
2443
2765
|
className: "w-full h-full object-cover"
|
|
2444
2766
|
}
|
|
2445
|
-
) : /* @__PURE__ */ (0,
|
|
2446
|
-
/* @__PURE__ */ (0,
|
|
2447
|
-
/* @__PURE__ */ (0,
|
|
2767
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_phosphor_react10.User, { size: 34, className: "text-primary-800" }) }),
|
|
2768
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col min-w-0", children: [
|
|
2769
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2448
2770
|
Text_default,
|
|
2449
2771
|
{
|
|
2450
2772
|
size: "xl",
|
|
@@ -2454,14 +2776,14 @@ var ProfileMenuHeader = (0, import_react9.forwardRef)(({ className, name, email,
|
|
|
2454
2776
|
children: name
|
|
2455
2777
|
}
|
|
2456
2778
|
),
|
|
2457
|
-
/* @__PURE__ */ (0,
|
|
2779
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { size: "md", color: "text-text-600", className: "truncate", children: email })
|
|
2458
2780
|
] })
|
|
2459
2781
|
]
|
|
2460
2782
|
}
|
|
2461
2783
|
);
|
|
2462
2784
|
});
|
|
2463
2785
|
ProfileMenuHeader.displayName = "ProfileMenuHeader";
|
|
2464
|
-
var ProfileMenuInfo = (0,
|
|
2786
|
+
var ProfileMenuInfo = (0, import_react10.forwardRef)(
|
|
2465
2787
|
({
|
|
2466
2788
|
className,
|
|
2467
2789
|
schoolName,
|
|
@@ -2470,7 +2792,7 @@ var ProfileMenuInfo = (0, import_react9.forwardRef)(
|
|
|
2470
2792
|
store: _store,
|
|
2471
2793
|
...props
|
|
2472
2794
|
}, ref) => {
|
|
2473
|
-
return /* @__PURE__ */ (0,
|
|
2795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2474
2796
|
"div",
|
|
2475
2797
|
{
|
|
2476
2798
|
ref,
|
|
@@ -2478,13 +2800,13 @@ var ProfileMenuInfo = (0, import_react9.forwardRef)(
|
|
|
2478
2800
|
className: cn("flex flex-row gap-4 items-center", className),
|
|
2479
2801
|
...props,
|
|
2480
2802
|
children: [
|
|
2481
|
-
/* @__PURE__ */ (0,
|
|
2482
|
-
/* @__PURE__ */ (0,
|
|
2483
|
-
/* @__PURE__ */ (0,
|
|
2484
|
-
/* @__PURE__ */ (0,
|
|
2485
|
-
/* @__PURE__ */ (0,
|
|
2486
|
-
/* @__PURE__ */ (0,
|
|
2487
|
-
/* @__PURE__ */ (0,
|
|
2803
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "w-16 h-16" }),
|
|
2804
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col ", children: [
|
|
2805
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { size: "md", color: "text-text-600", children: schoolName }),
|
|
2806
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("span", { className: "flex flex-row items-center gap-2", children: [
|
|
2807
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { size: "md", color: "text-text-600", children: classYearName }),
|
|
2808
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-text-600 text-xs align-middle", children: "\u25CF" }),
|
|
2809
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { size: "md", color: "text-text-600", children: schoolYearName })
|
|
2488
2810
|
] })
|
|
2489
2811
|
] })
|
|
2490
2812
|
]
|
|
@@ -2498,12 +2820,12 @@ var ProfileToggleTheme = ({
|
|
|
2498
2820
|
...props
|
|
2499
2821
|
}) => {
|
|
2500
2822
|
const { themeMode, setTheme } = useTheme();
|
|
2501
|
-
const [modalThemeToggle, setModalThemeToggle] = (0,
|
|
2502
|
-
const [selectedTheme, setSelectedTheme] = (0,
|
|
2503
|
-
const internalStoreRef = (0,
|
|
2823
|
+
const [modalThemeToggle, setModalThemeToggle] = (0, import_react10.useState)(false);
|
|
2824
|
+
const [selectedTheme, setSelectedTheme] = (0, import_react10.useState)(themeMode);
|
|
2825
|
+
const internalStoreRef = (0, import_react10.useRef)(null);
|
|
2504
2826
|
internalStoreRef.current ??= createDropdownStore();
|
|
2505
2827
|
const store = externalStore ?? internalStoreRef.current;
|
|
2506
|
-
const setOpen = (0,
|
|
2828
|
+
const setOpen = (0, import_zustand4.useStore)(store, (s) => s.setOpen);
|
|
2507
2829
|
const handleClick = (e) => {
|
|
2508
2830
|
e.preventDefault();
|
|
2509
2831
|
e.stopPropagation();
|
|
@@ -2519,14 +2841,14 @@ var ProfileToggleTheme = ({
|
|
|
2519
2841
|
setModalThemeToggle(false);
|
|
2520
2842
|
setOpen(false);
|
|
2521
2843
|
};
|
|
2522
|
-
return /* @__PURE__ */ (0,
|
|
2523
|
-
/* @__PURE__ */ (0,
|
|
2844
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(import_jsx_runtime15.Fragment, { children: [
|
|
2845
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2524
2846
|
DropdownMenuItem,
|
|
2525
2847
|
{
|
|
2526
2848
|
variant: "profile",
|
|
2527
2849
|
preventClose: true,
|
|
2528
2850
|
store,
|
|
2529
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
2851
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2530
2852
|
"svg",
|
|
2531
2853
|
{
|
|
2532
2854
|
width: "24",
|
|
@@ -2534,7 +2856,7 @@ var ProfileToggleTheme = ({
|
|
|
2534
2856
|
viewBox: "0 0 25 25",
|
|
2535
2857
|
fill: "none",
|
|
2536
2858
|
xmlns: "http://www.w3.org/2000/svg",
|
|
2537
|
-
children: /* @__PURE__ */ (0,
|
|
2859
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2538
2860
|
"path",
|
|
2539
2861
|
{
|
|
2540
2862
|
d: "M12.5 2.75C15.085 2.75276 17.5637 3.78054 19.3916 5.6084C21.2195 7.43628 22.2473 9.915 22.25 12.5C22.25 14.4284 21.6778 16.3136 20.6064 17.917C19.5352 19.5201 18.0128 20.7699 16.2314 21.5078C14.4499 22.2458 12.489 22.4387 10.5977 22.0625C8.70642 21.6863 6.96899 20.758 5.60547 19.3945C4.24197 18.031 3.31374 16.2936 2.9375 14.4023C2.56129 12.511 2.75423 10.5501 3.49219 8.76855C4.23012 6.98718 5.47982 5.46483 7.08301 4.39355C8.68639 3.32221 10.5716 2.75 12.5 2.75ZM11.75 4.28516C9.70145 4.47452 7.7973 5.42115 6.41016 6.94043C5.02299 8.4599 4.25247 10.4426 4.25 12.5C4.25247 14.5574 5.02299 16.5401 6.41016 18.0596C7.7973 19.5789 9.70145 20.5255 11.75 20.7148V4.28516Z",
|
|
@@ -2543,7 +2865,7 @@ var ProfileToggleTheme = ({
|
|
|
2543
2865
|
)
|
|
2544
2866
|
}
|
|
2545
2867
|
),
|
|
2546
|
-
iconRight: /* @__PURE__ */ (0,
|
|
2868
|
+
iconRight: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_phosphor_react10.CaretRight, {}),
|
|
2547
2869
|
onClick: handleClick,
|
|
2548
2870
|
onKeyDown: (e) => {
|
|
2549
2871
|
if (e.key === "Enter" || e.key === " ") {
|
|
@@ -2553,31 +2875,31 @@ var ProfileToggleTheme = ({
|
|
|
2553
2875
|
}
|
|
2554
2876
|
},
|
|
2555
2877
|
...props,
|
|
2556
|
-
children: /* @__PURE__ */ (0,
|
|
2878
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { size: "md", color: "text-text-700", children: "Apar\xEAncia" })
|
|
2557
2879
|
}
|
|
2558
2880
|
),
|
|
2559
|
-
/* @__PURE__ */ (0,
|
|
2881
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
|
|
2560
2882
|
Modal_default,
|
|
2561
2883
|
{
|
|
2562
2884
|
isOpen: modalThemeToggle,
|
|
2563
2885
|
onClose: handleCancel,
|
|
2564
2886
|
title: "Apar\xEAncia",
|
|
2565
2887
|
size: "md",
|
|
2566
|
-
footer: /* @__PURE__ */ (0,
|
|
2567
|
-
/* @__PURE__ */ (0,
|
|
2568
|
-
/* @__PURE__ */ (0,
|
|
2888
|
+
footer: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex gap-3", children: [
|
|
2889
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button_default, { variant: "outline", onClick: handleCancel, children: "Cancelar" }),
|
|
2890
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Button_default, { variant: "solid", onClick: handleSave, children: "Salvar" })
|
|
2569
2891
|
] }),
|
|
2570
|
-
children: /* @__PURE__ */ (0,
|
|
2571
|
-
/* @__PURE__ */ (0,
|
|
2572
|
-
/* @__PURE__ */ (0,
|
|
2892
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("div", { className: "flex flex-col", children: [
|
|
2893
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("p", { className: "text-sm text-text-500", children: "Escolha o tema:" }),
|
|
2894
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(ThemeToggle, { variant: "with-save", onToggle: setSelectedTheme })
|
|
2573
2895
|
] })
|
|
2574
2896
|
}
|
|
2575
2897
|
)
|
|
2576
2898
|
] });
|
|
2577
2899
|
};
|
|
2578
2900
|
ProfileToggleTheme.displayName = "ProfileToggleTheme";
|
|
2579
|
-
var ProfileMenuSection = (0,
|
|
2580
|
-
return /* @__PURE__ */ (0,
|
|
2901
|
+
var ProfileMenuSection = (0, import_react10.forwardRef)(({ className, children, store: _store, ...props }, ref) => {
|
|
2902
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("div", { ref, className: cn("flex flex-col p-2", className), ...props, children });
|
|
2581
2903
|
});
|
|
2582
2904
|
ProfileMenuSection.displayName = "ProfileMenuSection";
|
|
2583
2905
|
var ProfileMenuFooter = ({
|
|
@@ -2588,8 +2910,8 @@ var ProfileMenuFooter = ({
|
|
|
2588
2910
|
...props
|
|
2589
2911
|
}) => {
|
|
2590
2912
|
const store = useDropdownStore(externalStore);
|
|
2591
|
-
const setOpen = (0,
|
|
2592
|
-
return /* @__PURE__ */ (0,
|
|
2913
|
+
const setOpen = (0, import_zustand4.useStore)(store, (s) => s.setOpen);
|
|
2914
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
2593
2915
|
Button_default,
|
|
2594
2916
|
{
|
|
2595
2917
|
variant: "outline",
|
|
@@ -2601,8 +2923,8 @@ var ProfileMenuFooter = ({
|
|
|
2601
2923
|
},
|
|
2602
2924
|
...props,
|
|
2603
2925
|
children: [
|
|
2604
|
-
/* @__PURE__ */ (0,
|
|
2605
|
-
/* @__PURE__ */ (0,
|
|
2926
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(import_phosphor_react10.SignOut, { className: "text-inherit" }) }),
|
|
2927
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsx)(Text_default, { color: "inherit", children: "Sair" })
|
|
2606
2928
|
]
|
|
2607
2929
|
}
|
|
2608
2930
|
);
|
|
@@ -2611,7 +2933,7 @@ ProfileMenuFooter.displayName = "ProfileMenuFooter";
|
|
|
2611
2933
|
var DropdownMenu_default = DropdownMenu;
|
|
2612
2934
|
|
|
2613
2935
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
2614
|
-
var
|
|
2936
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
2615
2937
|
var SIZE_CLASSES9 = {
|
|
2616
2938
|
small: {
|
|
2617
2939
|
container: "h-1",
|
|
@@ -2723,20 +3045,20 @@ var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue,
|
|
|
2723
3045
|
max,
|
|
2724
3046
|
percentage
|
|
2725
3047
|
);
|
|
2726
|
-
return /* @__PURE__ */ (0,
|
|
3048
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2727
3049
|
"div",
|
|
2728
3050
|
{
|
|
2729
3051
|
className: cn(
|
|
2730
3052
|
"text-xs font-medium leading-[14px] text-right",
|
|
2731
3053
|
percentageClassName
|
|
2732
3054
|
),
|
|
2733
|
-
children: displayPriority.type === "hitCount" ? /* @__PURE__ */ (0,
|
|
2734
|
-
/* @__PURE__ */ (0,
|
|
2735
|
-
/* @__PURE__ */ (0,
|
|
3055
|
+
children: displayPriority.type === "hitCount" ? /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(import_jsx_runtime16.Fragment, { children: [
|
|
3056
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { className: "text-success-200", children: Math.round(clampedValue) }),
|
|
3057
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { className: "text-text-600", children: [
|
|
2736
3058
|
" de ",
|
|
2737
3059
|
max
|
|
2738
3060
|
] })
|
|
2739
|
-
] }) : /* @__PURE__ */ (0,
|
|
3061
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(Text_default, { size: "xs", weight: "medium", className: "text-success-200", children: [
|
|
2740
3062
|
Math.round(percentage),
|
|
2741
3063
|
"%"
|
|
2742
3064
|
] })
|
|
@@ -2751,7 +3073,7 @@ var ProgressBarBase = ({
|
|
|
2751
3073
|
variantClasses,
|
|
2752
3074
|
containerClassName,
|
|
2753
3075
|
fillClassName
|
|
2754
|
-
}) => /* @__PURE__ */ (0,
|
|
3076
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2755
3077
|
"div",
|
|
2756
3078
|
{
|
|
2757
3079
|
className: cn(
|
|
@@ -2760,7 +3082,7 @@ var ProgressBarBase = ({
|
|
|
2760
3082
|
"overflow-hidden relative"
|
|
2761
3083
|
),
|
|
2762
3084
|
children: [
|
|
2763
|
-
/* @__PURE__ */ (0,
|
|
3085
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2764
3086
|
"progress",
|
|
2765
3087
|
{
|
|
2766
3088
|
value: clampedValue,
|
|
@@ -2769,7 +3091,7 @@ var ProgressBarBase = ({
|
|
|
2769
3091
|
className: "absolute inset-0 w-full h-full opacity-0"
|
|
2770
3092
|
}
|
|
2771
3093
|
),
|
|
2772
|
-
/* @__PURE__ */ (0,
|
|
3094
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2773
3095
|
"div",
|
|
2774
3096
|
{
|
|
2775
3097
|
className: cn(
|
|
@@ -2795,7 +3117,7 @@ var StackedLayout = ({
|
|
|
2795
3117
|
percentage,
|
|
2796
3118
|
variantClasses,
|
|
2797
3119
|
dimensions
|
|
2798
|
-
}) => /* @__PURE__ */ (0,
|
|
3120
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2799
3121
|
"div",
|
|
2800
3122
|
{
|
|
2801
3123
|
className: cn(
|
|
@@ -2805,8 +3127,8 @@ var StackedLayout = ({
|
|
|
2805
3127
|
className
|
|
2806
3128
|
),
|
|
2807
3129
|
children: [
|
|
2808
|
-
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ (0,
|
|
2809
|
-
label && /* @__PURE__ */ (0,
|
|
3130
|
+
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-row justify-between items-center w-full h-[19px]", children: [
|
|
3131
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2810
3132
|
Text_default,
|
|
2811
3133
|
{
|
|
2812
3134
|
as: "div",
|
|
@@ -2825,7 +3147,7 @@ var StackedLayout = ({
|
|
|
2825
3147
|
percentageClassName
|
|
2826
3148
|
)
|
|
2827
3149
|
] }),
|
|
2828
|
-
/* @__PURE__ */ (0,
|
|
3150
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2829
3151
|
ProgressBarBase,
|
|
2830
3152
|
{
|
|
2831
3153
|
clampedValue,
|
|
@@ -2867,7 +3189,7 @@ var CompactLayout = ({
|
|
|
2867
3189
|
percentageClassName,
|
|
2868
3190
|
labelClassName
|
|
2869
3191
|
});
|
|
2870
|
-
return /* @__PURE__ */ (0,
|
|
3192
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2871
3193
|
"div",
|
|
2872
3194
|
{
|
|
2873
3195
|
className: cn(
|
|
@@ -2877,7 +3199,7 @@ var CompactLayout = ({
|
|
|
2877
3199
|
className
|
|
2878
3200
|
),
|
|
2879
3201
|
children: [
|
|
2880
|
-
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ (0,
|
|
3202
|
+
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2881
3203
|
Text_default,
|
|
2882
3204
|
{
|
|
2883
3205
|
as: "div",
|
|
@@ -2888,7 +3210,7 @@ var CompactLayout = ({
|
|
|
2888
3210
|
children: content
|
|
2889
3211
|
}
|
|
2890
3212
|
),
|
|
2891
|
-
/* @__PURE__ */ (0,
|
|
3213
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2892
3214
|
ProgressBarBase,
|
|
2893
3215
|
{
|
|
2894
3216
|
clampedValue,
|
|
@@ -2924,9 +3246,9 @@ var DefaultLayout = ({
|
|
|
2924
3246
|
label,
|
|
2925
3247
|
showPercentage
|
|
2926
3248
|
);
|
|
2927
|
-
return /* @__PURE__ */ (0,
|
|
2928
|
-
displayConfig.showHeader && /* @__PURE__ */ (0,
|
|
2929
|
-
label && /* @__PURE__ */ (0,
|
|
3249
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: cn("flex", sizeClasses.layout, gapClass, className), children: [
|
|
3250
|
+
displayConfig.showHeader && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("div", { className: "flex flex-row items-center justify-between w-full", children: [
|
|
3251
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2930
3252
|
Text_default,
|
|
2931
3253
|
{
|
|
2932
3254
|
as: "div",
|
|
@@ -2939,7 +3261,7 @@ var DefaultLayout = ({
|
|
|
2939
3261
|
children: label
|
|
2940
3262
|
}
|
|
2941
3263
|
),
|
|
2942
|
-
showPercentage && /* @__PURE__ */ (0,
|
|
3264
|
+
showPercentage && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2943
3265
|
Text_default,
|
|
2944
3266
|
{
|
|
2945
3267
|
size: "xs",
|
|
@@ -2955,7 +3277,7 @@ var DefaultLayout = ({
|
|
|
2955
3277
|
}
|
|
2956
3278
|
)
|
|
2957
3279
|
] }),
|
|
2958
|
-
/* @__PURE__ */ (0,
|
|
3280
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2959
3281
|
ProgressBarBase,
|
|
2960
3282
|
{
|
|
2961
3283
|
clampedValue,
|
|
@@ -2975,7 +3297,7 @@ var DefaultLayout = ({
|
|
|
2975
3297
|
)
|
|
2976
3298
|
}
|
|
2977
3299
|
),
|
|
2978
|
-
displayConfig.showPercentage && /* @__PURE__ */ (0,
|
|
3300
|
+
displayConfig.showPercentage && /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)(
|
|
2979
3301
|
Text_default,
|
|
2980
3302
|
{
|
|
2981
3303
|
size: "xs",
|
|
@@ -2990,7 +3312,7 @@ var DefaultLayout = ({
|
|
|
2990
3312
|
]
|
|
2991
3313
|
}
|
|
2992
3314
|
),
|
|
2993
|
-
displayConfig.showLabel && /* @__PURE__ */ (0,
|
|
3315
|
+
displayConfig.showLabel && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
2994
3316
|
Text_default,
|
|
2995
3317
|
{
|
|
2996
3318
|
as: "div",
|
|
@@ -3026,7 +3348,7 @@ var ProgressBar = ({
|
|
|
3026
3348
|
const sizeClasses = SIZE_CLASSES9[size];
|
|
3027
3349
|
const variantClasses = VARIANT_CLASSES2[variant];
|
|
3028
3350
|
if (layout === "stacked") {
|
|
3029
|
-
return /* @__PURE__ */ (0,
|
|
3351
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3030
3352
|
StackedLayout,
|
|
3031
3353
|
{
|
|
3032
3354
|
className,
|
|
@@ -3047,7 +3369,7 @@ var ProgressBar = ({
|
|
|
3047
3369
|
);
|
|
3048
3370
|
}
|
|
3049
3371
|
if (layout === "compact") {
|
|
3050
|
-
return /* @__PURE__ */ (0,
|
|
3372
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3051
3373
|
CompactLayout,
|
|
3052
3374
|
{
|
|
3053
3375
|
className,
|
|
@@ -3067,7 +3389,7 @@ var ProgressBar = ({
|
|
|
3067
3389
|
}
|
|
3068
3390
|
);
|
|
3069
3391
|
}
|
|
3070
|
-
return /* @__PURE__ */ (0,
|
|
3392
|
+
return /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
3071
3393
|
DefaultLayout,
|
|
3072
3394
|
{
|
|
3073
3395
|
className,
|
|
@@ -3087,8 +3409,8 @@ var ProgressBar = ({
|
|
|
3087
3409
|
var ProgressBar_default = ProgressBar;
|
|
3088
3410
|
|
|
3089
3411
|
// src/components/Calendar/Calendar.tsx
|
|
3090
|
-
var
|
|
3091
|
-
var
|
|
3412
|
+
var import_react11 = require("react");
|
|
3413
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
3092
3414
|
var WEEK_DAYS = ["SEG", "TER", "QUA", "QUI", "SEX", "S\xC1B", "DOM"];
|
|
3093
3415
|
var WEEK_DAYS_SHORT = ["S", "T", "Q", "Q", "S", "S", "D"];
|
|
3094
3416
|
var MONTH_NAMES = [
|
|
@@ -3111,15 +3433,15 @@ var MonthYearPicker = ({
|
|
|
3111
3433
|
currentDate,
|
|
3112
3434
|
onYearChange,
|
|
3113
3435
|
onMonthChange
|
|
3114
|
-
}) => /* @__PURE__ */ (0,
|
|
3436
|
+
}) => /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3115
3437
|
"div",
|
|
3116
3438
|
{
|
|
3117
3439
|
ref: monthPickerRef,
|
|
3118
3440
|
className: "absolute top-full left-0 z-50 mt-1 bg-background rounded-lg shadow-lg border border-border-200 p-4 min-w-[280px]",
|
|
3119
3441
|
children: [
|
|
3120
|
-
/* @__PURE__ */ (0,
|
|
3121
|
-
/* @__PURE__ */ (0,
|
|
3122
|
-
/* @__PURE__ */ (0,
|
|
3442
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "mb-4", children: [
|
|
3443
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar Ano" }),
|
|
3444
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-4 gap-1 max-h-32 overflow-y-auto", children: availableYears.map((year) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3123
3445
|
"button",
|
|
3124
3446
|
{
|
|
3125
3447
|
onClick: () => onYearChange(year),
|
|
@@ -3132,9 +3454,9 @@ var MonthYearPicker = ({
|
|
|
3132
3454
|
year
|
|
3133
3455
|
)) })
|
|
3134
3456
|
] }),
|
|
3135
|
-
/* @__PURE__ */ (0,
|
|
3136
|
-
/* @__PURE__ */ (0,
|
|
3137
|
-
/* @__PURE__ */ (0,
|
|
3457
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { children: [
|
|
3458
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("h3", { className: "text-sm font-medium text-text-700 mb-2", children: "Selecionar M\xEAs" }),
|
|
3459
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-3 gap-1", children: MONTH_NAMES.map((month, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3138
3460
|
"button",
|
|
3139
3461
|
{
|
|
3140
3462
|
onClick: () => onMonthChange(index, currentDate.getFullYear()),
|
|
@@ -3187,11 +3509,11 @@ var Calendar = ({
|
|
|
3187
3509
|
showActivities = true,
|
|
3188
3510
|
className = ""
|
|
3189
3511
|
}) => {
|
|
3190
|
-
const [currentDate, setCurrentDate] = (0,
|
|
3191
|
-
const [isMonthPickerOpen, setIsMonthPickerOpen] = (0,
|
|
3192
|
-
const monthPickerRef = (0,
|
|
3193
|
-
const monthPickerContainerRef = (0,
|
|
3194
|
-
(0,
|
|
3512
|
+
const [currentDate, setCurrentDate] = (0, import_react11.useState)(selectedDate || /* @__PURE__ */ new Date());
|
|
3513
|
+
const [isMonthPickerOpen, setIsMonthPickerOpen] = (0, import_react11.useState)(false);
|
|
3514
|
+
const monthPickerRef = (0, import_react11.useRef)(null);
|
|
3515
|
+
const monthPickerContainerRef = (0, import_react11.useRef)(null);
|
|
3516
|
+
(0, import_react11.useEffect)(() => {
|
|
3195
3517
|
const handleClickOutside = (event) => {
|
|
3196
3518
|
if (monthPickerContainerRef.current && !monthPickerContainerRef.current.contains(event.target)) {
|
|
3197
3519
|
setIsMonthPickerOpen(false);
|
|
@@ -3205,7 +3527,7 @@ var Calendar = ({
|
|
|
3205
3527
|
};
|
|
3206
3528
|
}, [isMonthPickerOpen]);
|
|
3207
3529
|
const today = /* @__PURE__ */ new Date();
|
|
3208
|
-
const availableYears = (0,
|
|
3530
|
+
const availableYears = (0, import_react11.useMemo)(() => {
|
|
3209
3531
|
const currentYear = (/* @__PURE__ */ new Date()).getFullYear();
|
|
3210
3532
|
const years = [];
|
|
3211
3533
|
for (let year = currentYear - 10; year <= currentYear + 10; year++) {
|
|
@@ -3213,7 +3535,7 @@ var Calendar = ({
|
|
|
3213
3535
|
}
|
|
3214
3536
|
return years;
|
|
3215
3537
|
}, []);
|
|
3216
|
-
const calendarData = (0,
|
|
3538
|
+
const calendarData = (0, import_react11.useMemo)(() => {
|
|
3217
3539
|
const year = currentDate.getFullYear();
|
|
3218
3540
|
const month = currentDate.getMonth();
|
|
3219
3541
|
const firstDay = new Date(year, month, 1);
|
|
@@ -3266,28 +3588,28 @@ var Calendar = ({
|
|
|
3266
3588
|
onDateSelect?.(day.date);
|
|
3267
3589
|
};
|
|
3268
3590
|
if (variant === "navigation") {
|
|
3269
|
-
return /* @__PURE__ */ (0,
|
|
3270
|
-
/* @__PURE__ */ (0,
|
|
3271
|
-
/* @__PURE__ */ (0,
|
|
3272
|
-
/* @__PURE__ */ (0,
|
|
3591
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("bg-background rounded-xl pt-6", className), children: [
|
|
3592
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between mb-4 px-6", children: [
|
|
3593
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
|
|
3594
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3273
3595
|
"button",
|
|
3274
3596
|
{
|
|
3275
3597
|
onClick: toggleMonthPicker,
|
|
3276
3598
|
className: "flex items-center group gap-1 rounded transition-colors cursor-pointer",
|
|
3277
3599
|
children: [
|
|
3278
|
-
/* @__PURE__ */ (0,
|
|
3600
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("span", { className: "text-sm font-medium text-text-600 group-hover:text-primary-950", children: [
|
|
3279
3601
|
MONTH_NAMES[currentDate.getMonth()],
|
|
3280
3602
|
" ",
|
|
3281
3603
|
currentDate.getFullYear()
|
|
3282
3604
|
] }),
|
|
3283
|
-
/* @__PURE__ */ (0,
|
|
3605
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3284
3606
|
"svg",
|
|
3285
3607
|
{
|
|
3286
3608
|
className: `w-4 h-4 text-primary-950 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
|
|
3287
3609
|
fill: "none",
|
|
3288
3610
|
stroke: "currentColor",
|
|
3289
3611
|
viewBox: "0 0 24 24",
|
|
3290
|
-
children: /* @__PURE__ */ (0,
|
|
3612
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3291
3613
|
"path",
|
|
3292
3614
|
{
|
|
3293
3615
|
strokeLinecap: "round",
|
|
@@ -3301,7 +3623,7 @@ var Calendar = ({
|
|
|
3301
3623
|
]
|
|
3302
3624
|
}
|
|
3303
3625
|
),
|
|
3304
|
-
isMonthPickerOpen && /* @__PURE__ */ (0,
|
|
3626
|
+
isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3305
3627
|
MonthYearPicker,
|
|
3306
3628
|
{
|
|
3307
3629
|
monthPickerRef,
|
|
@@ -3312,21 +3634,21 @@ var Calendar = ({
|
|
|
3312
3634
|
}
|
|
3313
3635
|
)
|
|
3314
3636
|
] }),
|
|
3315
|
-
/* @__PURE__ */ (0,
|
|
3316
|
-
/* @__PURE__ */ (0,
|
|
3637
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-10", children: [
|
|
3638
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3317
3639
|
"button",
|
|
3318
3640
|
{
|
|
3319
3641
|
onClick: goToPreviousMonth,
|
|
3320
3642
|
className: "p-1 rounded hover:bg-background-100 transition-colors",
|
|
3321
3643
|
"aria-label": "M\xEAs anterior",
|
|
3322
|
-
children: /* @__PURE__ */ (0,
|
|
3644
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3323
3645
|
"svg",
|
|
3324
3646
|
{
|
|
3325
3647
|
className: "w-6 h-6 text-primary-950",
|
|
3326
3648
|
fill: "none",
|
|
3327
3649
|
stroke: "currentColor",
|
|
3328
3650
|
viewBox: "0 0 24 24",
|
|
3329
|
-
children: /* @__PURE__ */ (0,
|
|
3651
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3330
3652
|
"path",
|
|
3331
3653
|
{
|
|
3332
3654
|
strokeLinecap: "round",
|
|
@@ -3339,20 +3661,20 @@ var Calendar = ({
|
|
|
3339
3661
|
)
|
|
3340
3662
|
}
|
|
3341
3663
|
),
|
|
3342
|
-
/* @__PURE__ */ (0,
|
|
3664
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3343
3665
|
"button",
|
|
3344
3666
|
{
|
|
3345
3667
|
onClick: goToNextMonth,
|
|
3346
3668
|
className: "p-1 rounded hover:bg-background-100 transition-colors",
|
|
3347
3669
|
"aria-label": "Pr\xF3ximo m\xEAs",
|
|
3348
|
-
children: /* @__PURE__ */ (0,
|
|
3670
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3349
3671
|
"svg",
|
|
3350
3672
|
{
|
|
3351
3673
|
className: "w-6 h-6 text-primary-950",
|
|
3352
3674
|
fill: "none",
|
|
3353
3675
|
stroke: "currentColor",
|
|
3354
3676
|
viewBox: "0 0 24 24",
|
|
3355
|
-
children: /* @__PURE__ */ (0,
|
|
3677
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3356
3678
|
"path",
|
|
3357
3679
|
{
|
|
3358
3680
|
strokeLinecap: "round",
|
|
@@ -3367,7 +3689,7 @@ var Calendar = ({
|
|
|
3367
3689
|
)
|
|
3368
3690
|
] })
|
|
3369
3691
|
] }),
|
|
3370
|
-
/* @__PURE__ */ (0,
|
|
3692
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7 gap-1 mb-2 px-3", children: WEEK_DAYS_SHORT.map((day, index) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3371
3693
|
"div",
|
|
3372
3694
|
{
|
|
3373
3695
|
className: "h-9 flex items-center justify-center text-xs font-normal text-text-600",
|
|
@@ -3375,13 +3697,13 @@ var Calendar = ({
|
|
|
3375
3697
|
},
|
|
3376
3698
|
`${day}-${index}`
|
|
3377
3699
|
)) }),
|
|
3378
|
-
/* @__PURE__ */ (0,
|
|
3700
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7 gap-1 px-3", children: calendarData.map((day) => {
|
|
3379
3701
|
if (!day.isCurrentMonth) {
|
|
3380
|
-
return /* @__PURE__ */ (0,
|
|
3702
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3381
3703
|
"div",
|
|
3382
3704
|
{
|
|
3383
3705
|
className: "flex items-center justify-center",
|
|
3384
|
-
children: /* @__PURE__ */ (0,
|
|
3706
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "w-9 h-9" })
|
|
3385
3707
|
},
|
|
3386
3708
|
day.date.getTime()
|
|
3387
3709
|
);
|
|
@@ -3397,11 +3719,11 @@ var Calendar = ({
|
|
|
3397
3719
|
} else if (day.isSelected) {
|
|
3398
3720
|
spanClass = "h-6 w-6 rounded-full bg-primary-950 text-text";
|
|
3399
3721
|
}
|
|
3400
|
-
return /* @__PURE__ */ (0,
|
|
3722
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3401
3723
|
"div",
|
|
3402
3724
|
{
|
|
3403
3725
|
className: "flex items-center justify-center",
|
|
3404
|
-
children: /* @__PURE__ */ (0,
|
|
3726
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3405
3727
|
"button",
|
|
3406
3728
|
{
|
|
3407
3729
|
className: `
|
|
@@ -3417,7 +3739,7 @@ var Calendar = ({
|
|
|
3417
3739
|
"aria-label": `${day.date.getDate()} de ${MONTH_NAMES[day.date.getMonth()]}`,
|
|
3418
3740
|
"aria-current": day.isToday ? "date" : void 0,
|
|
3419
3741
|
tabIndex: 0,
|
|
3420
|
-
children: /* @__PURE__ */ (0,
|
|
3742
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: spanClass, children: day.date.getDate() })
|
|
3421
3743
|
}
|
|
3422
3744
|
)
|
|
3423
3745
|
},
|
|
@@ -3426,28 +3748,28 @@ var Calendar = ({
|
|
|
3426
3748
|
}) })
|
|
3427
3749
|
] });
|
|
3428
3750
|
}
|
|
3429
|
-
return /* @__PURE__ */ (0,
|
|
3430
|
-
/* @__PURE__ */ (0,
|
|
3431
|
-
/* @__PURE__ */ (0,
|
|
3432
|
-
/* @__PURE__ */ (0,
|
|
3751
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: cn("bg-background rounded-xl p-4", className), children: [
|
|
3752
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center justify-between mb-3.5", children: [
|
|
3753
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "relative", ref: monthPickerContainerRef, children: [
|
|
3754
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
3433
3755
|
"button",
|
|
3434
3756
|
{
|
|
3435
3757
|
onClick: toggleMonthPicker,
|
|
3436
3758
|
className: "flex items-center gap-2 hover:bg-background-100 rounded px-2 py-1 transition-colors",
|
|
3437
3759
|
children: [
|
|
3438
|
-
/* @__PURE__ */ (0,
|
|
3760
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("h2", { className: "text-lg font-semibold text-text-950", children: [
|
|
3439
3761
|
MONTH_NAMES[currentDate.getMonth()],
|
|
3440
3762
|
" ",
|
|
3441
3763
|
currentDate.getFullYear()
|
|
3442
3764
|
] }),
|
|
3443
|
-
/* @__PURE__ */ (0,
|
|
3765
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3444
3766
|
"svg",
|
|
3445
3767
|
{
|
|
3446
3768
|
className: `w-4 h-4 text-text-400 transition-transform ${isMonthPickerOpen ? "rotate-180" : ""}`,
|
|
3447
3769
|
fill: "none",
|
|
3448
3770
|
stroke: "currentColor",
|
|
3449
3771
|
viewBox: "0 0 24 24",
|
|
3450
|
-
children: /* @__PURE__ */ (0,
|
|
3772
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3451
3773
|
"path",
|
|
3452
3774
|
{
|
|
3453
3775
|
strokeLinecap: "round",
|
|
@@ -3461,7 +3783,7 @@ var Calendar = ({
|
|
|
3461
3783
|
]
|
|
3462
3784
|
}
|
|
3463
3785
|
),
|
|
3464
|
-
isMonthPickerOpen && /* @__PURE__ */ (0,
|
|
3786
|
+
isMonthPickerOpen && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3465
3787
|
MonthYearPicker,
|
|
3466
3788
|
{
|
|
3467
3789
|
monthPickerRef,
|
|
@@ -3472,21 +3794,21 @@ var Calendar = ({
|
|
|
3472
3794
|
}
|
|
3473
3795
|
)
|
|
3474
3796
|
] }),
|
|
3475
|
-
/* @__PURE__ */ (0,
|
|
3476
|
-
/* @__PURE__ */ (0,
|
|
3797
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
3798
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3477
3799
|
"button",
|
|
3478
3800
|
{
|
|
3479
3801
|
onClick: goToPreviousMonth,
|
|
3480
3802
|
className: "p-1 rounded-md hover:bg-background-100 transition-colors",
|
|
3481
3803
|
"aria-label": "M\xEAs anterior",
|
|
3482
|
-
children: /* @__PURE__ */ (0,
|
|
3804
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3483
3805
|
"svg",
|
|
3484
3806
|
{
|
|
3485
3807
|
className: "w-6 h-6 text-primary-950",
|
|
3486
3808
|
fill: "none",
|
|
3487
3809
|
stroke: "currentColor",
|
|
3488
3810
|
viewBox: "0 0 24 24",
|
|
3489
|
-
children: /* @__PURE__ */ (0,
|
|
3811
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3490
3812
|
"path",
|
|
3491
3813
|
{
|
|
3492
3814
|
strokeLinecap: "round",
|
|
@@ -3499,20 +3821,20 @@ var Calendar = ({
|
|
|
3499
3821
|
)
|
|
3500
3822
|
}
|
|
3501
3823
|
),
|
|
3502
|
-
/* @__PURE__ */ (0,
|
|
3824
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3503
3825
|
"button",
|
|
3504
3826
|
{
|
|
3505
3827
|
onClick: goToNextMonth,
|
|
3506
3828
|
className: "p-1 rounded-md hover:bg-background-100 transition-colors",
|
|
3507
3829
|
"aria-label": "Pr\xF3ximo m\xEAs",
|
|
3508
|
-
children: /* @__PURE__ */ (0,
|
|
3830
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3509
3831
|
"svg",
|
|
3510
3832
|
{
|
|
3511
3833
|
className: "w-6 h-6 text-primary-950",
|
|
3512
3834
|
fill: "none",
|
|
3513
3835
|
stroke: "currentColor",
|
|
3514
3836
|
viewBox: "0 0 24 24",
|
|
3515
|
-
children: /* @__PURE__ */ (0,
|
|
3837
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3516
3838
|
"path",
|
|
3517
3839
|
{
|
|
3518
3840
|
strokeLinecap: "round",
|
|
@@ -3527,7 +3849,7 @@ var Calendar = ({
|
|
|
3527
3849
|
)
|
|
3528
3850
|
] })
|
|
3529
3851
|
] }),
|
|
3530
|
-
/* @__PURE__ */ (0,
|
|
3852
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7 mb-2", children: WEEK_DAYS.map((day) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3531
3853
|
"div",
|
|
3532
3854
|
{
|
|
3533
3855
|
className: "h-4 flex items-center justify-center text-xs font-semibold text-text-500",
|
|
@@ -3535,13 +3857,13 @@ var Calendar = ({
|
|
|
3535
3857
|
},
|
|
3536
3858
|
day
|
|
3537
3859
|
)) }),
|
|
3538
|
-
/* @__PURE__ */ (0,
|
|
3860
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "grid grid-cols-7", children: calendarData.map((day) => {
|
|
3539
3861
|
if (!day.isCurrentMonth) {
|
|
3540
|
-
return /* @__PURE__ */ (0,
|
|
3862
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3541
3863
|
"div",
|
|
3542
3864
|
{
|
|
3543
3865
|
className: "flex items-center justify-center",
|
|
3544
|
-
children: /* @__PURE__ */ (0,
|
|
3866
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("div", { className: "w-10 h-10" })
|
|
3545
3867
|
},
|
|
3546
3868
|
day.date.getTime()
|
|
3547
3869
|
);
|
|
@@ -3551,11 +3873,11 @@ var Calendar = ({
|
|
|
3551
3873
|
variant,
|
|
3552
3874
|
showActivities
|
|
3553
3875
|
);
|
|
3554
|
-
return /* @__PURE__ */ (0,
|
|
3876
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3555
3877
|
"div",
|
|
3556
3878
|
{
|
|
3557
3879
|
className: "flex items-center justify-center",
|
|
3558
|
-
children: /* @__PURE__ */ (0,
|
|
3880
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
3559
3881
|
"button",
|
|
3560
3882
|
{
|
|
3561
3883
|
className: `
|
|
@@ -3584,9 +3906,9 @@ var Calendar = ({
|
|
|
3584
3906
|
var Calendar_default = Calendar;
|
|
3585
3907
|
|
|
3586
3908
|
// src/components/DateTimeInput/DateTimeInput.tsx
|
|
3587
|
-
var
|
|
3588
|
-
var
|
|
3589
|
-
var
|
|
3909
|
+
var import_react12 = require("react");
|
|
3910
|
+
var import_phosphor_react11 = require("phosphor-react");
|
|
3911
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
3590
3912
|
var formatDateToInput = (dateObj) => {
|
|
3591
3913
|
const year = dateObj.getFullYear();
|
|
3592
3914
|
const month = String(dateObj.getMonth() + 1).padStart(2, "0");
|
|
@@ -3606,11 +3928,11 @@ var DateTimeInput = ({
|
|
|
3606
3928
|
timeLabel = "Hora",
|
|
3607
3929
|
className
|
|
3608
3930
|
}) => {
|
|
3609
|
-
const [isCalendarOpen, setIsCalendarOpen] = (0,
|
|
3610
|
-
const [selectedDate, setSelectedDate] = (0,
|
|
3931
|
+
const [isCalendarOpen, setIsCalendarOpen] = (0, import_react12.useState)(false);
|
|
3932
|
+
const [selectedDate, setSelectedDate] = (0, import_react12.useState)(
|
|
3611
3933
|
date ? /* @__PURE__ */ new Date(`${date}T12:00:00`) : void 0
|
|
3612
3934
|
);
|
|
3613
|
-
const triggerRef = (0,
|
|
3935
|
+
const triggerRef = (0, import_react12.useRef)(null);
|
|
3614
3936
|
const handleDateSelect = (dateObj) => {
|
|
3615
3937
|
setSelectedDate(dateObj);
|
|
3616
3938
|
onDateChange(formatDateToInput(dateObj));
|
|
@@ -3641,7 +3963,7 @@ var DateTimeInput = ({
|
|
|
3641
3963
|
onTimeChange(e.target.value);
|
|
3642
3964
|
};
|
|
3643
3965
|
const inputValue = date ? `${date}T${time || defaultTime}` : "";
|
|
3644
|
-
return /* @__PURE__ */ (0,
|
|
3966
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3645
3967
|
DropdownMenu_default,
|
|
3646
3968
|
{
|
|
3647
3969
|
open: !disabled && isCalendarOpen,
|
|
@@ -3651,13 +3973,13 @@ var DateTimeInput = ({
|
|
|
3651
3973
|
}
|
|
3652
3974
|
},
|
|
3653
3975
|
children: [
|
|
3654
|
-
/* @__PURE__ */ (0,
|
|
3976
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3655
3977
|
DropdownMenuTrigger,
|
|
3656
3978
|
{
|
|
3657
3979
|
className,
|
|
3658
3980
|
ref: triggerRef,
|
|
3659
3981
|
disabled,
|
|
3660
|
-
children: /* @__PURE__ */ (0,
|
|
3982
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3661
3983
|
Input_default,
|
|
3662
3984
|
{
|
|
3663
3985
|
label,
|
|
@@ -3669,13 +3991,13 @@ var DateTimeInput = ({
|
|
|
3669
3991
|
errorMessage,
|
|
3670
3992
|
disabled,
|
|
3671
3993
|
"data-testid": testId ? `${testId}-input` : void 0,
|
|
3672
|
-
iconRight: /* @__PURE__ */ (0,
|
|
3994
|
+
iconRight: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(import_phosphor_react11.CalendarBlank, { size: 14 }),
|
|
3673
3995
|
className: "[&::-webkit-calendar-picker-indicator]:hidden"
|
|
3674
3996
|
}
|
|
3675
3997
|
)
|
|
3676
3998
|
}
|
|
3677
3999
|
),
|
|
3678
|
-
/* @__PURE__ */ (0,
|
|
4000
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
3679
4001
|
DropdownMenuContent,
|
|
3680
4002
|
{
|
|
3681
4003
|
align: "start",
|
|
@@ -3683,7 +4005,7 @@ var DateTimeInput = ({
|
|
|
3683
4005
|
portal: true,
|
|
3684
4006
|
triggerRef,
|
|
3685
4007
|
children: [
|
|
3686
|
-
/* @__PURE__ */ (0,
|
|
4008
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3687
4009
|
Calendar_default,
|
|
3688
4010
|
{
|
|
3689
4011
|
variant: "selection",
|
|
@@ -3692,7 +4014,7 @@ var DateTimeInput = ({
|
|
|
3692
4014
|
showActivities: false
|
|
3693
4015
|
}
|
|
3694
4016
|
),
|
|
3695
|
-
/* @__PURE__ */ (0,
|
|
4017
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)("div", { className: "p-3 border-t border-border-200", children: /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
|
|
3696
4018
|
Input_default,
|
|
3697
4019
|
{
|
|
3698
4020
|
label: timeLabel,
|
|
@@ -3713,19 +4035,19 @@ var DateTimeInput = ({
|
|
|
3713
4035
|
var DateTimeInput_default = DateTimeInput;
|
|
3714
4036
|
|
|
3715
4037
|
// src/components/Accordation/Accordation.tsx
|
|
3716
|
-
var
|
|
4038
|
+
var import_react15 = require("react");
|
|
3717
4039
|
|
|
3718
4040
|
// src/components/Card/Card.tsx
|
|
3719
|
-
var
|
|
3720
|
-
var
|
|
4041
|
+
var import_react14 = require("react");
|
|
4042
|
+
var import_phosphor_react12 = require("phosphor-react");
|
|
3721
4043
|
|
|
3722
4044
|
// src/components/IconRender/IconRender.tsx
|
|
3723
|
-
var
|
|
4045
|
+
var import_react13 = require("react");
|
|
3724
4046
|
var PhosphorIcons = __toESM(require("phosphor-react"));
|
|
3725
4047
|
|
|
3726
4048
|
// src/assets/icons/subjects/ChatPT.tsx
|
|
3727
|
-
var
|
|
3728
|
-
var ChatPT = ({ size, color }) => /* @__PURE__ */ (0,
|
|
4049
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
4050
|
+
var ChatPT = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)(
|
|
3729
4051
|
"svg",
|
|
3730
4052
|
{
|
|
3731
4053
|
width: size,
|
|
@@ -3734,21 +4056,21 @@ var ChatPT = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)
|
|
|
3734
4056
|
fill: "none",
|
|
3735
4057
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3736
4058
|
children: [
|
|
3737
|
-
/* @__PURE__ */ (0,
|
|
4059
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3738
4060
|
"path",
|
|
3739
4061
|
{
|
|
3740
4062
|
d: "M27 6H5.00004C4.4696 6 3.9609 6.21071 3.58582 6.58579C3.21075 6.96086 3.00004 7.46957 3.00004 8V28C2.99773 28.3814 3.10562 28.7553 3.31074 29.0768C3.51585 29.3984 3.80947 29.6538 4.15629 29.8125C4.42057 29.9356 4.7085 29.9995 5.00004 30C5.46954 29.9989 5.92347 29.8315 6.28129 29.5275L6.29254 29.5187L10.375 26H27C27.5305 26 28.0392 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V8C29 7.46957 28.7893 6.96086 28.4142 6.58579C28.0392 6.21071 27.5305 6 27 6ZM27 24H10C9.75992 24.0001 9.52787 24.0866 9.34629 24.2437L5.00004 28V8H27V24Z",
|
|
3741
4063
|
fill: color
|
|
3742
4064
|
}
|
|
3743
4065
|
),
|
|
3744
|
-
/* @__PURE__ */ (0,
|
|
4066
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3745
4067
|
"path",
|
|
3746
4068
|
{
|
|
3747
4069
|
d: "M21.1758 12V20.5312H19.7168V12H21.1758ZM23.8535 12V13.1719H17.0625V12H23.8535Z",
|
|
3748
4070
|
fill: color
|
|
3749
4071
|
}
|
|
3750
4072
|
),
|
|
3751
|
-
/* @__PURE__ */ (0,
|
|
4073
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)(
|
|
3752
4074
|
"path",
|
|
3753
4075
|
{
|
|
3754
4076
|
d: "M13.2402 17.3496H11.0195V16.1836H13.2402C13.627 16.1836 13.9395 16.1211 14.1777 15.9961C14.416 15.8711 14.5898 15.6992 14.6992 15.4805C14.8125 15.2578 14.8691 15.0039 14.8691 14.7188C14.8691 14.4492 14.8125 14.1973 14.6992 13.9629C14.5898 13.7246 14.416 13.5332 14.1777 13.3887C13.9395 13.2441 13.627 13.1719 13.2402 13.1719H11.4707V20.5312H10V12H13.2402C13.9004 12 14.4609 12.1172 14.9219 12.3516C15.3867 12.582 15.7402 12.9023 15.9824 13.3125C16.2246 13.7188 16.3457 14.1836 16.3457 14.707C16.3457 15.2578 16.2246 15.7305 15.9824 16.125C15.7402 16.5195 15.3867 16.8223 14.9219 17.0332C14.4609 17.2441 13.9004 17.3496 13.2402 17.3496Z",
|
|
@@ -3760,8 +4082,8 @@ var ChatPT = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)
|
|
|
3760
4082
|
);
|
|
3761
4083
|
|
|
3762
4084
|
// src/assets/icons/subjects/ChatEN.tsx
|
|
3763
|
-
var
|
|
3764
|
-
var ChatEN = ({ size, color }) => /* @__PURE__ */ (0,
|
|
4085
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
4086
|
+
var ChatEN = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)(
|
|
3765
4087
|
"svg",
|
|
3766
4088
|
{
|
|
3767
4089
|
width: size,
|
|
@@ -3770,21 +4092,21 @@ var ChatEN = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)
|
|
|
3770
4092
|
fill: "none",
|
|
3771
4093
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3772
4094
|
children: [
|
|
3773
|
-
/* @__PURE__ */ (0,
|
|
4095
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3774
4096
|
"path",
|
|
3775
4097
|
{
|
|
3776
4098
|
d: "M27 6H5.00004C4.4696 6 3.9609 6.21071 3.58582 6.58579C3.21075 6.96086 3.00004 7.46957 3.00004 8V28C2.99773 28.3814 3.10562 28.7553 3.31074 29.0768C3.51585 29.3984 3.80947 29.6538 4.15629 29.8125C4.42057 29.9356 4.7085 29.9995 5.00004 30C5.46954 29.9989 5.92347 29.8315 6.28129 29.5275L6.29254 29.5187L10.375 26H27C27.5305 26 28.0392 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V8C29 7.46957 28.7893 6.96086 28.4142 6.58579C28.0392 6.21071 27.5305 6 27 6ZM27 24H10C9.75992 24.0001 9.52787 24.0866 9.34629 24.2437L5.00004 28V8H27V24Z",
|
|
3777
4099
|
fill: color
|
|
3778
4100
|
}
|
|
3779
4101
|
),
|
|
3780
|
-
/* @__PURE__ */ (0,
|
|
4102
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3781
4103
|
"path",
|
|
3782
4104
|
{
|
|
3783
4105
|
d: "M22.5488 12V20.5312H21.0781L17.252 14.4199V20.5312H15.7812V12H17.252L21.0898 18.123V12H22.5488Z",
|
|
3784
4106
|
fill: color
|
|
3785
4107
|
}
|
|
3786
4108
|
),
|
|
3787
|
-
/* @__PURE__ */ (0,
|
|
4109
|
+
/* @__PURE__ */ (0, import_jsx_runtime20.jsx)(
|
|
3788
4110
|
"path",
|
|
3789
4111
|
{
|
|
3790
4112
|
d: "M14.584 19.3652V20.5312H10.0547V19.3652H14.584ZM10.4707 12V20.5312H9V12H10.4707ZM13.9922 15.5625V16.7109H10.0547V15.5625H13.9922ZM14.5547 12V13.1719H10.0547V12H14.5547Z",
|
|
@@ -3796,8 +4118,8 @@ var ChatEN = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)
|
|
|
3796
4118
|
);
|
|
3797
4119
|
|
|
3798
4120
|
// src/assets/icons/subjects/ChatES.tsx
|
|
3799
|
-
var
|
|
3800
|
-
var ChatES = ({ size, color }) => /* @__PURE__ */ (0,
|
|
4121
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
4122
|
+
var ChatES = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)(
|
|
3801
4123
|
"svg",
|
|
3802
4124
|
{
|
|
3803
4125
|
width: size,
|
|
@@ -3806,21 +4128,21 @@ var ChatES = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)
|
|
|
3806
4128
|
fill: "none",
|
|
3807
4129
|
xmlns: "http://www.w3.org/2000/svg",
|
|
3808
4130
|
children: [
|
|
3809
|
-
/* @__PURE__ */ (0,
|
|
4131
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3810
4132
|
"path",
|
|
3811
4133
|
{
|
|
3812
4134
|
d: "M27 6H5.00004C4.4696 6 3.9609 6.21071 3.58582 6.58579C3.21075 6.96086 3.00004 7.46957 3.00004 8V28C2.99773 28.3814 3.10562 28.7553 3.31074 29.0768C3.51585 29.3984 3.80947 29.6538 4.15629 29.8125C4.42057 29.9356 4.7085 29.9995 5.00004 30C5.46954 29.9989 5.92347 29.8315 6.28129 29.5275L6.29254 29.5187L10.375 26H27C27.5305 26 28.0392 25.7893 28.4142 25.4142C28.7893 25.0391 29 24.5304 29 24V8C29 7.46957 28.7893 6.96086 28.4142 6.58579C28.0392 6.21071 27.5305 6 27 6ZM27 24H10C9.75992 24.0001 9.52787 24.0866 9.34629 24.2437L5.00004 28V8H27V24Z",
|
|
3813
4135
|
fill: color
|
|
3814
4136
|
}
|
|
3815
4137
|
),
|
|
3816
|
-
/* @__PURE__ */ (0,
|
|
4138
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3817
4139
|
"path",
|
|
3818
4140
|
{
|
|
3819
4141
|
d: "M21.1426 17.8027C21.1426 17.627 21.1152 17.4707 21.0605 17.334C21.0098 17.1973 20.918 17.0723 20.7852 16.959C20.6523 16.8457 20.4648 16.7363 20.2227 16.6309C19.9844 16.5215 19.6797 16.4102 19.3086 16.2969C18.9023 16.1719 18.5273 16.0332 18.1836 15.8809C17.8438 15.7246 17.5469 15.5449 17.293 15.3418C17.0391 15.1348 16.8418 14.8984 16.7012 14.6328C16.5605 14.3633 16.4902 14.0527 16.4902 13.7012C16.4902 13.3535 16.5625 13.0371 16.707 12.752C16.8555 12.4668 17.0645 12.2207 17.334 12.0137C17.6074 11.8027 17.9297 11.6406 18.3008 11.5273C18.6719 11.4102 19.082 11.3516 19.5312 11.3516C20.1641 11.3516 20.709 11.4688 21.166 11.7031C21.627 11.9375 21.9805 12.252 22.2266 12.6465C22.4766 13.041 22.6016 13.4766 22.6016 13.9531H21.1426C21.1426 13.6719 21.082 13.4238 20.9609 13.209C20.8438 12.9902 20.6641 12.8184 20.4219 12.6934C20.1836 12.5684 19.8809 12.5059 19.5137 12.5059C19.166 12.5059 18.877 12.5586 18.6465 12.6641C18.416 12.7695 18.2441 12.9121 18.1309 13.0918C18.0176 13.2715 17.9609 13.4746 17.9609 13.7012C17.9609 13.8613 17.998 14.0078 18.0723 14.1406C18.1465 14.2695 18.2598 14.3906 18.4121 14.5039C18.5645 14.6133 18.7559 14.7168 18.9863 14.8145C19.2168 14.9121 19.4883 15.0059 19.8008 15.0957C20.2734 15.2363 20.6855 15.3926 21.0371 15.5645C21.3887 15.7324 21.6816 15.9238 21.916 16.1387C22.1504 16.3535 22.3262 16.5977 22.4434 16.8711C22.5605 17.1406 22.6191 17.4473 22.6191 17.791C22.6191 18.1504 22.5469 18.4746 22.4023 18.7637C22.2578 19.0488 22.0508 19.293 21.7812 19.4961C21.5156 19.6953 21.1953 19.8496 20.8203 19.959C20.4492 20.0645 20.0352 20.1172 19.5781 20.1172C19.168 20.1172 18.7637 20.0625 18.3652 19.9531C17.9707 19.8438 17.6113 19.6777 17.2871 19.4551C16.9629 19.2285 16.7051 18.9473 16.5137 18.6113C16.3223 18.2715 16.2266 17.875 16.2266 17.4219H17.6973C17.6973 17.6992 17.7441 17.9355 17.8379 18.1309C17.9355 18.3262 18.0703 18.4863 18.2422 18.6113C18.4141 18.7324 18.6133 18.8223 18.8398 18.8809C19.0703 18.9395 19.3164 18.9688 19.5781 18.9688C19.9219 18.9688 20.209 18.9199 20.4395 18.8223C20.6738 18.7246 20.8496 18.5879 20.9668 18.4121C21.084 18.2363 21.1426 18.0332 21.1426 17.8027Z",
|
|
3820
4142
|
fill: color
|
|
3821
4143
|
}
|
|
3822
4144
|
),
|
|
3823
|
-
/* @__PURE__ */ (0,
|
|
4145
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)(
|
|
3824
4146
|
"path",
|
|
3825
4147
|
{
|
|
3826
4148
|
d: "M15.4512 18.834V20H10.9219V18.834H15.4512ZM11.3379 11.4688V20H9.86719V11.4688H11.3379ZM14.8594 15.0312V16.1797H10.9219V15.0312H14.8594ZM15.4219 11.4688V12.6406H10.9219V11.4688H15.4219Z",
|
|
@@ -3832,7 +4154,7 @@ var ChatES = ({ size, color }) => /* @__PURE__ */ (0, import_jsx_runtime20.jsxs)
|
|
|
3832
4154
|
);
|
|
3833
4155
|
|
|
3834
4156
|
// src/components/IconRender/IconRender.tsx
|
|
3835
|
-
var
|
|
4157
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
3836
4158
|
var IconRender = ({
|
|
3837
4159
|
iconName,
|
|
3838
4160
|
color = "#000000",
|
|
@@ -3842,18 +4164,18 @@ var IconRender = ({
|
|
|
3842
4164
|
if (typeof iconName === "string") {
|
|
3843
4165
|
switch (iconName) {
|
|
3844
4166
|
case "Chat_PT":
|
|
3845
|
-
return /* @__PURE__ */ (0,
|
|
4167
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChatPT, { size, color });
|
|
3846
4168
|
case "Chat_EN":
|
|
3847
|
-
return /* @__PURE__ */ (0,
|
|
4169
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChatEN, { size, color });
|
|
3848
4170
|
case "Chat_ES":
|
|
3849
|
-
return /* @__PURE__ */ (0,
|
|
4171
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(ChatES, { size, color });
|
|
3850
4172
|
default: {
|
|
3851
4173
|
const IconComponent = PhosphorIcons[iconName] || PhosphorIcons.Question;
|
|
3852
|
-
return /* @__PURE__ */ (0,
|
|
4174
|
+
return /* @__PURE__ */ (0, import_jsx_runtime22.jsx)(IconComponent, { size, color, weight });
|
|
3853
4175
|
}
|
|
3854
4176
|
}
|
|
3855
4177
|
} else {
|
|
3856
|
-
return (0,
|
|
4178
|
+
return (0, import_react13.cloneElement)(iconName, {
|
|
3857
4179
|
size,
|
|
3858
4180
|
color: "currentColor"
|
|
3859
4181
|
});
|
|
@@ -3862,7 +4184,7 @@ var IconRender = ({
|
|
|
3862
4184
|
var IconRender_default = IconRender;
|
|
3863
4185
|
|
|
3864
4186
|
// src/components/Card/Card.tsx
|
|
3865
|
-
var
|
|
4187
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
3866
4188
|
var CARD_BASE_CLASSES = {
|
|
3867
4189
|
default: "w-full bg-background border border-border-50 rounded-xl",
|
|
3868
4190
|
compact: "w-full bg-background border border-border-50 rounded-lg",
|
|
@@ -3888,7 +4210,7 @@ var CARD_CURSOR_CLASSES = {
|
|
|
3888
4210
|
default: "",
|
|
3889
4211
|
pointer: "cursor-pointer"
|
|
3890
4212
|
};
|
|
3891
|
-
var CardBase = (0,
|
|
4213
|
+
var CardBase = (0, import_react14.forwardRef)(
|
|
3892
4214
|
({
|
|
3893
4215
|
children,
|
|
3894
4216
|
variant = "default",
|
|
@@ -3904,7 +4226,7 @@ var CardBase = (0, import_react13.forwardRef)(
|
|
|
3904
4226
|
const minHeightClasses = CARD_MIN_HEIGHT_CLASSES[minHeight];
|
|
3905
4227
|
const layoutClasses = CARD_LAYOUT_CLASSES[layout];
|
|
3906
4228
|
const cursorClasses = CARD_CURSOR_CLASSES[cursor];
|
|
3907
|
-
return /* @__PURE__ */ (0,
|
|
4229
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3908
4230
|
"div",
|
|
3909
4231
|
{
|
|
3910
4232
|
ref,
|
|
@@ -3946,7 +4268,7 @@ var ACTION_HEADER_CLASSES = {
|
|
|
3946
4268
|
error: "text-error-300",
|
|
3947
4269
|
info: "text-info-300"
|
|
3948
4270
|
};
|
|
3949
|
-
var CardActivitiesResults = (0,
|
|
4271
|
+
var CardActivitiesResults = (0, import_react14.forwardRef)(
|
|
3950
4272
|
({
|
|
3951
4273
|
icon,
|
|
3952
4274
|
title,
|
|
@@ -3962,7 +4284,7 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
3962
4284
|
const actionIconClasses = ACTION_ICON_CLASSES[action];
|
|
3963
4285
|
const actionSubTitleClasses = ACTION_SUBTITLE_CLASSES[action];
|
|
3964
4286
|
const actionHeaderClasses = ACTION_HEADER_CLASSES[action];
|
|
3965
|
-
return /* @__PURE__ */ (0,
|
|
4287
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3966
4288
|
"div",
|
|
3967
4289
|
{
|
|
3968
4290
|
ref,
|
|
@@ -3972,7 +4294,7 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
3972
4294
|
),
|
|
3973
4295
|
...props,
|
|
3974
4296
|
children: [
|
|
3975
|
-
/* @__PURE__ */ (0,
|
|
4297
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
3976
4298
|
"div",
|
|
3977
4299
|
{
|
|
3978
4300
|
className: cn(
|
|
@@ -3981,7 +4303,7 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
3981
4303
|
extended ? "rounded-t-xl" : "rounded-xl"
|
|
3982
4304
|
),
|
|
3983
4305
|
children: [
|
|
3984
|
-
/* @__PURE__ */ (0,
|
|
4306
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3985
4307
|
"span",
|
|
3986
4308
|
{
|
|
3987
4309
|
className: cn(
|
|
@@ -3991,7 +4313,7 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
3991
4313
|
children: icon
|
|
3992
4314
|
}
|
|
3993
4315
|
),
|
|
3994
|
-
/* @__PURE__ */ (0,
|
|
4316
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
3995
4317
|
Text_default,
|
|
3996
4318
|
{
|
|
3997
4319
|
size: "2xs",
|
|
@@ -4000,7 +4322,7 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
4000
4322
|
children: title
|
|
4001
4323
|
}
|
|
4002
4324
|
),
|
|
4003
|
-
/* @__PURE__ */ (0,
|
|
4325
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4004
4326
|
"p",
|
|
4005
4327
|
{
|
|
4006
4328
|
className: cn("text-lg font-bold truncate", actionSubTitleClasses),
|
|
@@ -4010,8 +4332,8 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
4010
4332
|
]
|
|
4011
4333
|
}
|
|
4012
4334
|
),
|
|
4013
|
-
extended && /* @__PURE__ */ (0,
|
|
4014
|
-
/* @__PURE__ */ (0,
|
|
4335
|
+
extended && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col items-center gap-2.5 pb-9.5 pt-2.5", children: [
|
|
4336
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4015
4337
|
"p",
|
|
4016
4338
|
{
|
|
4017
4339
|
className: cn(
|
|
@@ -4021,14 +4343,14 @@ var CardActivitiesResults = (0, import_react13.forwardRef)(
|
|
|
4021
4343
|
children: header
|
|
4022
4344
|
}
|
|
4023
4345
|
),
|
|
4024
|
-
/* @__PURE__ */ (0,
|
|
4346
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Badge_default, { size: "large", action: "info", children: description })
|
|
4025
4347
|
] })
|
|
4026
4348
|
]
|
|
4027
4349
|
}
|
|
4028
4350
|
);
|
|
4029
4351
|
}
|
|
4030
4352
|
);
|
|
4031
|
-
var CardQuestions = (0,
|
|
4353
|
+
var CardQuestions = (0, import_react14.forwardRef)(
|
|
4032
4354
|
({
|
|
4033
4355
|
header,
|
|
4034
4356
|
state = "undone",
|
|
@@ -4040,7 +4362,7 @@ var CardQuestions = (0, import_react13.forwardRef)(
|
|
|
4040
4362
|
const isDone = state === "done";
|
|
4041
4363
|
const stateLabel = isDone ? "Realizado" : "N\xE3o Realizado";
|
|
4042
4364
|
const buttonLabel = isDone ? "Ver Resultado" : "Responder";
|
|
4043
|
-
return /* @__PURE__ */ (0,
|
|
4365
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4044
4366
|
CardBase,
|
|
4045
4367
|
{
|
|
4046
4368
|
ref,
|
|
@@ -4050,9 +4372,9 @@ var CardQuestions = (0, import_react13.forwardRef)(
|
|
|
4050
4372
|
className: cn("justify-between gap-4", className),
|
|
4051
4373
|
...props,
|
|
4052
4374
|
children: [
|
|
4053
|
-
/* @__PURE__ */ (0,
|
|
4054
|
-
/* @__PURE__ */ (0,
|
|
4055
|
-
/* @__PURE__ */ (0,
|
|
4375
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("section", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
4376
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "font-bold text-xs text-text-950 truncate", children: header }),
|
|
4377
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex flex-row gap-6 items-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4056
4378
|
Badge_default,
|
|
4057
4379
|
{
|
|
4058
4380
|
size: "medium",
|
|
@@ -4062,7 +4384,7 @@ var CardQuestions = (0, import_react13.forwardRef)(
|
|
|
4062
4384
|
}
|
|
4063
4385
|
) })
|
|
4064
4386
|
] }),
|
|
4065
|
-
/* @__PURE__ */ (0,
|
|
4387
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "flex-shrink-0", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4066
4388
|
Button_default,
|
|
4067
4389
|
{
|
|
4068
4390
|
size: "extra-small",
|
|
@@ -4076,7 +4398,7 @@ var CardQuestions = (0, import_react13.forwardRef)(
|
|
|
4076
4398
|
);
|
|
4077
4399
|
}
|
|
4078
4400
|
);
|
|
4079
|
-
var CardProgress = (0,
|
|
4401
|
+
var CardProgress = (0, import_react14.forwardRef)(
|
|
4080
4402
|
({
|
|
4081
4403
|
header,
|
|
4082
4404
|
subhead,
|
|
@@ -4093,19 +4415,19 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4093
4415
|
}, ref) => {
|
|
4094
4416
|
const isHorizontal = direction === "horizontal";
|
|
4095
4417
|
const contentComponent = {
|
|
4096
|
-
horizontal: /* @__PURE__ */ (0,
|
|
4097
|
-
showDates && /* @__PURE__ */ (0,
|
|
4098
|
-
initialDate && /* @__PURE__ */ (0,
|
|
4099
|
-
/* @__PURE__ */ (0,
|
|
4100
|
-
/* @__PURE__ */ (0,
|
|
4418
|
+
horizontal: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_jsx_runtime23.Fragment, { children: [
|
|
4419
|
+
showDates && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row gap-6 items-center", children: [
|
|
4420
|
+
initialDate && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
|
|
4421
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-800 font-semibold", children: "In\xEDcio" }),
|
|
4422
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-600", children: initialDate })
|
|
4101
4423
|
] }),
|
|
4102
|
-
endDate && /* @__PURE__ */ (0,
|
|
4103
|
-
/* @__PURE__ */ (0,
|
|
4104
|
-
/* @__PURE__ */ (0,
|
|
4424
|
+
endDate && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "flex flex-row gap-1 items-center text-2xs", children: [
|
|
4425
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-800 font-semibold", children: "Fim" }),
|
|
4426
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-600", children: endDate })
|
|
4105
4427
|
] })
|
|
4106
4428
|
] }),
|
|
4107
|
-
/* @__PURE__ */ (0,
|
|
4108
|
-
/* @__PURE__ */ (0,
|
|
4429
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
|
|
4430
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4109
4431
|
ProgressBar_default,
|
|
4110
4432
|
{
|
|
4111
4433
|
size: "small",
|
|
@@ -4114,7 +4436,7 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4114
4436
|
"data-testid": "progress-bar"
|
|
4115
4437
|
}
|
|
4116
4438
|
),
|
|
4117
|
-
/* @__PURE__ */ (0,
|
|
4439
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4118
4440
|
Text_default,
|
|
4119
4441
|
{
|
|
4120
4442
|
size: "xs",
|
|
@@ -4130,9 +4452,9 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4130
4452
|
)
|
|
4131
4453
|
] })
|
|
4132
4454
|
] }),
|
|
4133
|
-
vertical: /* @__PURE__ */ (0,
|
|
4455
|
+
vertical: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm text-text-800", children: subhead })
|
|
4134
4456
|
};
|
|
4135
|
-
return /* @__PURE__ */ (0,
|
|
4457
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4136
4458
|
CardBase,
|
|
4137
4459
|
{
|
|
4138
4460
|
ref,
|
|
@@ -4143,7 +4465,7 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4143
4465
|
className: cn(isHorizontal ? "h-20" : "", className),
|
|
4144
4466
|
...props,
|
|
4145
4467
|
children: [
|
|
4146
|
-
/* @__PURE__ */ (0,
|
|
4468
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4147
4469
|
"div",
|
|
4148
4470
|
{
|
|
4149
4471
|
className: cn(
|
|
@@ -4156,7 +4478,7 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4156
4478
|
children: icon
|
|
4157
4479
|
}
|
|
4158
4480
|
),
|
|
4159
|
-
/* @__PURE__ */ (0,
|
|
4481
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4160
4482
|
"div",
|
|
4161
4483
|
{
|
|
4162
4484
|
className: cn(
|
|
@@ -4164,7 +4486,7 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4164
4486
|
!isHorizontal && "gap-4"
|
|
4165
4487
|
),
|
|
4166
4488
|
children: [
|
|
4167
|
-
/* @__PURE__ */ (0,
|
|
4489
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-950 truncate", children: header }),
|
|
4168
4490
|
contentComponent[direction]
|
|
4169
4491
|
]
|
|
4170
4492
|
}
|
|
@@ -4174,7 +4496,7 @@ var CardProgress = (0, import_react13.forwardRef)(
|
|
|
4174
4496
|
);
|
|
4175
4497
|
}
|
|
4176
4498
|
);
|
|
4177
|
-
var CardTopic = (0,
|
|
4499
|
+
var CardTopic = (0, import_react14.forwardRef)(
|
|
4178
4500
|
({
|
|
4179
4501
|
header,
|
|
4180
4502
|
subHead,
|
|
@@ -4184,7 +4506,7 @@ var CardTopic = (0, import_react13.forwardRef)(
|
|
|
4184
4506
|
className = "",
|
|
4185
4507
|
...props
|
|
4186
4508
|
}, ref) => {
|
|
4187
|
-
return /* @__PURE__ */ (0,
|
|
4509
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4188
4510
|
CardBase,
|
|
4189
4511
|
{
|
|
4190
4512
|
ref,
|
|
@@ -4195,13 +4517,13 @@ var CardTopic = (0, import_react13.forwardRef)(
|
|
|
4195
4517
|
className: cn("justify-center gap-2 py-2 px-4", className),
|
|
4196
4518
|
...props,
|
|
4197
4519
|
children: [
|
|
4198
|
-
subHead && /* @__PURE__ */ (0,
|
|
4199
|
-
/* @__PURE__ */ (0,
|
|
4200
|
-
index < subHead.length - 1 && /* @__PURE__ */ (0,
|
|
4520
|
+
subHead && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "text-text-600 text-2xs flex flex-row gap-1", children: subHead.map((text, index) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(import_react14.Fragment, { children: [
|
|
4521
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { children: text }),
|
|
4522
|
+
index < subHead.length - 1 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { children: "\u2022" })
|
|
4201
4523
|
] }, `${text} - ${index}`)) }),
|
|
4202
|
-
/* @__PURE__ */ (0,
|
|
4203
|
-
/* @__PURE__ */ (0,
|
|
4204
|
-
/* @__PURE__ */ (0,
|
|
4524
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }),
|
|
4525
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "grid grid-cols-[1fr_auto] items-center gap-2", children: [
|
|
4526
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4205
4527
|
ProgressBar_default,
|
|
4206
4528
|
{
|
|
4207
4529
|
size: "small",
|
|
@@ -4210,7 +4532,7 @@ var CardTopic = (0, import_react13.forwardRef)(
|
|
|
4210
4532
|
"data-testid": "progress-bar"
|
|
4211
4533
|
}
|
|
4212
4534
|
),
|
|
4213
|
-
showPercentage && /* @__PURE__ */ (0,
|
|
4535
|
+
showPercentage && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4214
4536
|
Text_default,
|
|
4215
4537
|
{
|
|
4216
4538
|
size: "xs",
|
|
@@ -4230,7 +4552,7 @@ var CardTopic = (0, import_react13.forwardRef)(
|
|
|
4230
4552
|
);
|
|
4231
4553
|
}
|
|
4232
4554
|
);
|
|
4233
|
-
var CardPerformance = (0,
|
|
4555
|
+
var CardPerformance = (0, import_react14.forwardRef)(
|
|
4234
4556
|
({
|
|
4235
4557
|
header,
|
|
4236
4558
|
progress,
|
|
@@ -4244,7 +4566,7 @@ var CardPerformance = (0, import_react13.forwardRef)(
|
|
|
4244
4566
|
...props
|
|
4245
4567
|
}, ref) => {
|
|
4246
4568
|
const hasProgress = progress !== void 0;
|
|
4247
|
-
return /* @__PURE__ */ (0,
|
|
4569
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4248
4570
|
CardBase,
|
|
4249
4571
|
{
|
|
4250
4572
|
ref,
|
|
@@ -4258,10 +4580,10 @@ var CardPerformance = (0, import_react13.forwardRef)(
|
|
|
4258
4580
|
onClick: () => actionVariant == "caret" && onClickButton?.(valueButton),
|
|
4259
4581
|
...props,
|
|
4260
4582
|
children: [
|
|
4261
|
-
/* @__PURE__ */ (0,
|
|
4262
|
-
/* @__PURE__ */ (0,
|
|
4263
|
-
/* @__PURE__ */ (0,
|
|
4264
|
-
actionVariant === "button" && /* @__PURE__ */ (0,
|
|
4583
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "w-full flex flex-col justify-between gap-2", children: [
|
|
4584
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row justify-between items-center gap-2", children: [
|
|
4585
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-lg font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
|
|
4586
|
+
actionVariant === "button" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4265
4587
|
Button_default,
|
|
4266
4588
|
{
|
|
4267
4589
|
variant: "outline",
|
|
@@ -4272,17 +4594,17 @@ var CardPerformance = (0, import_react13.forwardRef)(
|
|
|
4272
4594
|
}
|
|
4273
4595
|
)
|
|
4274
4596
|
] }),
|
|
4275
|
-
/* @__PURE__ */ (0,
|
|
4597
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-full", children: hasProgress ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4276
4598
|
ProgressBar_default,
|
|
4277
4599
|
{
|
|
4278
4600
|
value: progress,
|
|
4279
4601
|
label: `${progress}% ${labelProgress}`,
|
|
4280
4602
|
variant: progressVariant
|
|
4281
4603
|
}
|
|
4282
|
-
) : /* @__PURE__ */ (0,
|
|
4604
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-xs text-text-600 truncate", children: description }) })
|
|
4283
4605
|
] }),
|
|
4284
|
-
actionVariant == "caret" && /* @__PURE__ */ (0,
|
|
4285
|
-
|
|
4606
|
+
actionVariant == "caret" && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4607
|
+
import_phosphor_react12.CaretRight,
|
|
4286
4608
|
{
|
|
4287
4609
|
className: "size-4.5 text-text-800 cursor-pointer",
|
|
4288
4610
|
"data-testid": "caret-icon"
|
|
@@ -4293,7 +4615,7 @@ var CardPerformance = (0, import_react13.forwardRef)(
|
|
|
4293
4615
|
);
|
|
4294
4616
|
}
|
|
4295
4617
|
);
|
|
4296
|
-
var CardResults = (0,
|
|
4618
|
+
var CardResults = (0, import_react14.forwardRef)(
|
|
4297
4619
|
({
|
|
4298
4620
|
header,
|
|
4299
4621
|
correct_answers,
|
|
@@ -4305,7 +4627,7 @@ var CardResults = (0, import_react13.forwardRef)(
|
|
|
4305
4627
|
...props
|
|
4306
4628
|
}, ref) => {
|
|
4307
4629
|
const isRow = direction == "row";
|
|
4308
|
-
return /* @__PURE__ */ (0,
|
|
4630
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4309
4631
|
CardBase,
|
|
4310
4632
|
{
|
|
4311
4633
|
ref,
|
|
@@ -4315,7 +4637,7 @@ var CardResults = (0, import_react13.forwardRef)(
|
|
|
4315
4637
|
className: cn("items-stretch cursor-pointer pr-4", className),
|
|
4316
4638
|
...props,
|
|
4317
4639
|
children: [
|
|
4318
|
-
/* @__PURE__ */ (0,
|
|
4640
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4319
4641
|
"div",
|
|
4320
4642
|
{
|
|
4321
4643
|
className: cn(
|
|
@@ -4324,11 +4646,11 @@ var CardResults = (0, import_react13.forwardRef)(
|
|
|
4324
4646
|
style: {
|
|
4325
4647
|
backgroundColor: color
|
|
4326
4648
|
},
|
|
4327
|
-
children: /* @__PURE__ */ (0,
|
|
4649
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(IconRender_default, { iconName: icon, color: "currentColor", size: 20 })
|
|
4328
4650
|
}
|
|
4329
4651
|
),
|
|
4330
|
-
/* @__PURE__ */ (0,
|
|
4331
|
-
/* @__PURE__ */ (0,
|
|
4652
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "w-full flex flex-row justify-between items-center", children: [
|
|
4653
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4332
4654
|
"div",
|
|
4333
4655
|
{
|
|
4334
4656
|
className: cn(
|
|
@@ -4336,28 +4658,28 @@ var CardResults = (0, import_react13.forwardRef)(
|
|
|
4336
4658
|
isRow ? "flex-row items-center gap-2" : "flex-col"
|
|
4337
4659
|
),
|
|
4338
4660
|
children: [
|
|
4339
|
-
/* @__PURE__ */ (0,
|
|
4340
|
-
/* @__PURE__ */ (0,
|
|
4341
|
-
/* @__PURE__ */ (0,
|
|
4661
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm font-bold text-text-950 flex-1", children: header }),
|
|
4662
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "flex flex-wrap flex-row gap-1 items-center", children: [
|
|
4663
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4342
4664
|
Badge_default,
|
|
4343
4665
|
{
|
|
4344
4666
|
action: "success",
|
|
4345
4667
|
variant: "solid",
|
|
4346
4668
|
size: "large",
|
|
4347
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
4669
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CheckCircle, {}),
|
|
4348
4670
|
children: [
|
|
4349
4671
|
correct_answers,
|
|
4350
4672
|
" Corretas"
|
|
4351
4673
|
]
|
|
4352
4674
|
}
|
|
4353
4675
|
),
|
|
4354
|
-
/* @__PURE__ */ (0,
|
|
4676
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4355
4677
|
Badge_default,
|
|
4356
4678
|
{
|
|
4357
4679
|
action: "error",
|
|
4358
4680
|
variant: "solid",
|
|
4359
4681
|
size: "large",
|
|
4360
|
-
iconLeft: /* @__PURE__ */ (0,
|
|
4682
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.XCircle, {}),
|
|
4361
4683
|
children: [
|
|
4362
4684
|
incorrect_answers,
|
|
4363
4685
|
" Incorretas"
|
|
@@ -4368,14 +4690,14 @@ var CardResults = (0, import_react13.forwardRef)(
|
|
|
4368
4690
|
]
|
|
4369
4691
|
}
|
|
4370
4692
|
),
|
|
4371
|
-
/* @__PURE__ */ (0,
|
|
4693
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800" })
|
|
4372
4694
|
] })
|
|
4373
4695
|
]
|
|
4374
4696
|
}
|
|
4375
4697
|
);
|
|
4376
4698
|
}
|
|
4377
4699
|
);
|
|
4378
|
-
var CardStatus = (0,
|
|
4700
|
+
var CardStatus = (0, import_react14.forwardRef)(
|
|
4379
4701
|
({ header, className, status, label, ...props }, ref) => {
|
|
4380
4702
|
const getLabelBadge = (status2) => {
|
|
4381
4703
|
switch (status2) {
|
|
@@ -4394,13 +4716,13 @@ var CardStatus = (0, import_react13.forwardRef)(
|
|
|
4394
4716
|
const getIconBadge = (status2) => {
|
|
4395
4717
|
switch (status2) {
|
|
4396
4718
|
case "correct":
|
|
4397
|
-
return /* @__PURE__ */ (0,
|
|
4719
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CheckCircle, {});
|
|
4398
4720
|
case "incorrect":
|
|
4399
|
-
return /* @__PURE__ */ (0,
|
|
4721
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.XCircle, {});
|
|
4400
4722
|
case "pending":
|
|
4401
|
-
return /* @__PURE__ */ (0,
|
|
4723
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.Clock, {});
|
|
4402
4724
|
default:
|
|
4403
|
-
return /* @__PURE__ */ (0,
|
|
4725
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.XCircle, {});
|
|
4404
4726
|
}
|
|
4405
4727
|
};
|
|
4406
4728
|
const getActionBadge = (status2) => {
|
|
@@ -4415,7 +4737,7 @@ var CardStatus = (0, import_react13.forwardRef)(
|
|
|
4415
4737
|
return "info";
|
|
4416
4738
|
}
|
|
4417
4739
|
};
|
|
4418
|
-
return /* @__PURE__ */ (0,
|
|
4740
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4419
4741
|
CardBase,
|
|
4420
4742
|
{
|
|
4421
4743
|
ref,
|
|
@@ -4424,10 +4746,10 @@ var CardStatus = (0, import_react13.forwardRef)(
|
|
|
4424
4746
|
minHeight: "medium",
|
|
4425
4747
|
className: cn("items-center cursor-pointer", className),
|
|
4426
4748
|
...props,
|
|
4427
|
-
children: /* @__PURE__ */ (0,
|
|
4428
|
-
/* @__PURE__ */ (0,
|
|
4429
|
-
/* @__PURE__ */ (0,
|
|
4430
|
-
status && /* @__PURE__ */ (0,
|
|
4749
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex justify-between w-full h-full flex-row items-center gap-2", children: [
|
|
4750
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm font-bold text-text-950 truncate flex-1 min-w-0", children: header }),
|
|
4751
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("span", { className: "flex flex-row gap-1 items-center flex-shrink-0", children: [
|
|
4752
|
+
status && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4431
4753
|
Badge_default,
|
|
4432
4754
|
{
|
|
4433
4755
|
action: getActionBadge(status),
|
|
@@ -4437,17 +4759,17 @@ var CardStatus = (0, import_react13.forwardRef)(
|
|
|
4437
4759
|
children: getLabelBadge(status)
|
|
4438
4760
|
}
|
|
4439
4761
|
),
|
|
4440
|
-
label && /* @__PURE__ */ (0,
|
|
4762
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm text-text-800", children: label })
|
|
4441
4763
|
] }),
|
|
4442
|
-
/* @__PURE__ */ (0,
|
|
4764
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CaretRight, { className: "min-w-6 min-h-6 text-text-800 cursor-pointer flex-shrink-0 ml-2" })
|
|
4443
4765
|
] })
|
|
4444
4766
|
}
|
|
4445
4767
|
);
|
|
4446
4768
|
}
|
|
4447
4769
|
);
|
|
4448
|
-
var CardSettings = (0,
|
|
4770
|
+
var CardSettings = (0, import_react14.forwardRef)(
|
|
4449
4771
|
({ header, className, icon, ...props }, ref) => {
|
|
4450
|
-
return /* @__PURE__ */ (0,
|
|
4772
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4451
4773
|
CardBase,
|
|
4452
4774
|
{
|
|
4453
4775
|
ref,
|
|
@@ -4460,17 +4782,17 @@ var CardSettings = (0, import_react13.forwardRef)(
|
|
|
4460
4782
|
),
|
|
4461
4783
|
...props,
|
|
4462
4784
|
children: [
|
|
4463
|
-
/* @__PURE__ */ (0,
|
|
4464
|
-
/* @__PURE__ */ (0,
|
|
4465
|
-
/* @__PURE__ */ (0,
|
|
4785
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "[&>svg]:size-6", children: icon }),
|
|
4786
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "w-full text-sm truncate", children: header }),
|
|
4787
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CaretRight, { size: 24, className: "cursor-pointer" })
|
|
4466
4788
|
]
|
|
4467
4789
|
}
|
|
4468
4790
|
);
|
|
4469
4791
|
}
|
|
4470
4792
|
);
|
|
4471
|
-
var CardSupport = (0,
|
|
4793
|
+
var CardSupport = (0, import_react14.forwardRef)(
|
|
4472
4794
|
({ header, className, direction = "col", children, ...props }, ref) => {
|
|
4473
|
-
return /* @__PURE__ */ (0,
|
|
4795
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4474
4796
|
CardBase,
|
|
4475
4797
|
{
|
|
4476
4798
|
ref,
|
|
@@ -4483,7 +4805,7 @@ var CardSupport = (0, import_react13.forwardRef)(
|
|
|
4483
4805
|
),
|
|
4484
4806
|
...props,
|
|
4485
4807
|
children: [
|
|
4486
|
-
/* @__PURE__ */ (0,
|
|
4808
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4487
4809
|
"div",
|
|
4488
4810
|
{
|
|
4489
4811
|
className: cn(
|
|
@@ -4491,18 +4813,18 @@ var CardSupport = (0, import_react13.forwardRef)(
|
|
|
4491
4813
|
direction == "col" ? "flex-col" : "flex-row items-center"
|
|
4492
4814
|
),
|
|
4493
4815
|
children: [
|
|
4494
|
-
/* @__PURE__ */ (0,
|
|
4495
|
-
/* @__PURE__ */ (0,
|
|
4816
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "w-full min-w-0", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-sm text-text-950 font-bold truncate", children: header }) }),
|
|
4817
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("span", { className: "flex flex-row gap-1", children })
|
|
4496
4818
|
]
|
|
4497
4819
|
}
|
|
4498
4820
|
),
|
|
4499
|
-
/* @__PURE__ */ (0,
|
|
4821
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.CaretRight, { className: "text-text-800 cursor-pointer", size: 24 })
|
|
4500
4822
|
]
|
|
4501
4823
|
}
|
|
4502
4824
|
);
|
|
4503
4825
|
}
|
|
4504
4826
|
);
|
|
4505
|
-
var CardForum = (0,
|
|
4827
|
+
var CardForum = (0, import_react14.forwardRef)(
|
|
4506
4828
|
({
|
|
4507
4829
|
title,
|
|
4508
4830
|
content,
|
|
@@ -4516,7 +4838,7 @@ var CardForum = (0, import_react13.forwardRef)(
|
|
|
4516
4838
|
hour,
|
|
4517
4839
|
...props
|
|
4518
4840
|
}, ref) => {
|
|
4519
|
-
return /* @__PURE__ */ (0,
|
|
4841
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4520
4842
|
CardBase,
|
|
4521
4843
|
{
|
|
4522
4844
|
ref,
|
|
@@ -4527,7 +4849,7 @@ var CardForum = (0, import_react13.forwardRef)(
|
|
|
4527
4849
|
className: cn("w-auto h-auto gap-3", className),
|
|
4528
4850
|
...props,
|
|
4529
4851
|
children: [
|
|
4530
|
-
/* @__PURE__ */ (0,
|
|
4852
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4531
4853
|
"button",
|
|
4532
4854
|
{
|
|
4533
4855
|
type: "button",
|
|
@@ -4536,18 +4858,18 @@ var CardForum = (0, import_react13.forwardRef)(
|
|
|
4536
4858
|
className: "min-w-8 h-8 rounded-full bg-background-950"
|
|
4537
4859
|
}
|
|
4538
4860
|
),
|
|
4539
|
-
/* @__PURE__ */ (0,
|
|
4540
|
-
/* @__PURE__ */ (0,
|
|
4541
|
-
/* @__PURE__ */ (0,
|
|
4542
|
-
/* @__PURE__ */ (0,
|
|
4861
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col gap-2 flex-1 min-w-0", children: [
|
|
4862
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row gap-1 items-center flex-wrap", children: [
|
|
4863
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-xs font-semibold text-primary-700 truncate", children: title }),
|
|
4864
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("p", { className: "text-xs text-text-600", children: [
|
|
4543
4865
|
"\u2022 ",
|
|
4544
4866
|
date,
|
|
4545
4867
|
" \u2022 ",
|
|
4546
4868
|
hour
|
|
4547
4869
|
] })
|
|
4548
4870
|
] }),
|
|
4549
|
-
/* @__PURE__ */ (0,
|
|
4550
|
-
/* @__PURE__ */ (0,
|
|
4871
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-950 text-sm line-clamp-2 truncate", children: content }),
|
|
4872
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4551
4873
|
"button",
|
|
4552
4874
|
{
|
|
4553
4875
|
type: "button",
|
|
@@ -4555,8 +4877,8 @@ var CardForum = (0, import_react13.forwardRef)(
|
|
|
4555
4877
|
onClick: () => onClickComments?.(valueComments),
|
|
4556
4878
|
className: "text-text-600 flex flex-row gap-2 items-center",
|
|
4557
4879
|
children: [
|
|
4558
|
-
/* @__PURE__ */ (0,
|
|
4559
|
-
/* @__PURE__ */ (0,
|
|
4880
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.ChatCircleText, { "aria-hidden": "true", size: 16 }),
|
|
4881
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("p", { className: "text-xs", children: [
|
|
4560
4882
|
comments,
|
|
4561
4883
|
" respostas"
|
|
4562
4884
|
] })
|
|
@@ -4569,7 +4891,7 @@ var CardForum = (0, import_react13.forwardRef)(
|
|
|
4569
4891
|
);
|
|
4570
4892
|
}
|
|
4571
4893
|
);
|
|
4572
|
-
var CardAudio = (0,
|
|
4894
|
+
var CardAudio = (0, import_react14.forwardRef)(
|
|
4573
4895
|
({
|
|
4574
4896
|
src,
|
|
4575
4897
|
title,
|
|
@@ -4583,16 +4905,16 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4583
4905
|
className,
|
|
4584
4906
|
...props
|
|
4585
4907
|
}, ref) => {
|
|
4586
|
-
const [isPlaying, setIsPlaying] = (0,
|
|
4587
|
-
const [currentTime, setCurrentTime] = (0,
|
|
4588
|
-
const [duration, setDuration] = (0,
|
|
4589
|
-
const [volume, setVolume] = (0,
|
|
4590
|
-
const [showVolumeControl, setShowVolumeControl] = (0,
|
|
4591
|
-
const [showSpeedMenu, setShowSpeedMenu] = (0,
|
|
4592
|
-
const [playbackRate, setPlaybackRate] = (0,
|
|
4593
|
-
const audioRef = (0,
|
|
4594
|
-
const volumeControlRef = (0,
|
|
4595
|
-
const speedMenuRef = (0,
|
|
4908
|
+
const [isPlaying, setIsPlaying] = (0, import_react14.useState)(false);
|
|
4909
|
+
const [currentTime, setCurrentTime] = (0, import_react14.useState)(0);
|
|
4910
|
+
const [duration, setDuration] = (0, import_react14.useState)(0);
|
|
4911
|
+
const [volume, setVolume] = (0, import_react14.useState)(1);
|
|
4912
|
+
const [showVolumeControl, setShowVolumeControl] = (0, import_react14.useState)(false);
|
|
4913
|
+
const [showSpeedMenu, setShowSpeedMenu] = (0, import_react14.useState)(false);
|
|
4914
|
+
const [playbackRate, setPlaybackRate] = (0, import_react14.useState)(1);
|
|
4915
|
+
const audioRef = (0, import_react14.useRef)(null);
|
|
4916
|
+
const volumeControlRef = (0, import_react14.useRef)(null);
|
|
4917
|
+
const speedMenuRef = (0, import_react14.useRef)(null);
|
|
4596
4918
|
const formatTime = (time) => {
|
|
4597
4919
|
const minutes = Math.floor(time / 60);
|
|
4598
4920
|
const seconds = Math.floor(time % 60);
|
|
@@ -4659,14 +4981,14 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4659
4981
|
};
|
|
4660
4982
|
const getVolumeIcon = () => {
|
|
4661
4983
|
if (volume === 0) {
|
|
4662
|
-
return /* @__PURE__ */ (0,
|
|
4984
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.SpeakerSimpleX, { size: 24 });
|
|
4663
4985
|
}
|
|
4664
4986
|
if (volume < 0.5) {
|
|
4665
|
-
return /* @__PURE__ */ (0,
|
|
4987
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.SpeakerLow, { size: 24 });
|
|
4666
4988
|
}
|
|
4667
|
-
return /* @__PURE__ */ (0,
|
|
4989
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.SpeakerHigh, { size: 24 });
|
|
4668
4990
|
};
|
|
4669
|
-
(0,
|
|
4991
|
+
(0, import_react14.useEffect)(() => {
|
|
4670
4992
|
const handleClickOutside = (event) => {
|
|
4671
4993
|
if (volumeControlRef.current && !volumeControlRef.current.contains(event.target)) {
|
|
4672
4994
|
setShowVolumeControl(false);
|
|
@@ -4680,7 +5002,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4680
5002
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
4681
5003
|
};
|
|
4682
5004
|
}, []);
|
|
4683
|
-
return /* @__PURE__ */ (0,
|
|
5005
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
4684
5006
|
CardBase,
|
|
4685
5007
|
{
|
|
4686
5008
|
ref,
|
|
@@ -4693,7 +5015,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4693
5015
|
),
|
|
4694
5016
|
...props,
|
|
4695
5017
|
children: [
|
|
4696
|
-
/* @__PURE__ */ (0,
|
|
5018
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4697
5019
|
"audio",
|
|
4698
5020
|
{
|
|
4699
5021
|
ref: audioRef,
|
|
@@ -4705,7 +5027,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4705
5027
|
onEnded: handleEnded,
|
|
4706
5028
|
"data-testid": "audio-element",
|
|
4707
5029
|
"aria-label": title,
|
|
4708
|
-
children: tracks ? tracks.map((track) => /* @__PURE__ */ (0,
|
|
5030
|
+
children: tracks ? tracks.map((track) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4709
5031
|
"track",
|
|
4710
5032
|
{
|
|
4711
5033
|
kind: track.kind,
|
|
@@ -4715,7 +5037,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4715
5037
|
default: track.default
|
|
4716
5038
|
},
|
|
4717
5039
|
track.src
|
|
4718
|
-
)) : /* @__PURE__ */ (0,
|
|
5040
|
+
)) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4719
5041
|
"track",
|
|
4720
5042
|
{
|
|
4721
5043
|
kind: "captions",
|
|
@@ -4726,7 +5048,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4726
5048
|
)
|
|
4727
5049
|
}
|
|
4728
5050
|
),
|
|
4729
|
-
/* @__PURE__ */ (0,
|
|
5051
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4730
5052
|
"button",
|
|
4731
5053
|
{
|
|
4732
5054
|
type: "button",
|
|
@@ -4734,14 +5056,14 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4734
5056
|
disabled: !src,
|
|
4735
5057
|
className: "cursor-pointer text-text-950 hover:text-primary-600 disabled:text-text-400 disabled:cursor-not-allowed",
|
|
4736
5058
|
"aria-label": isPlaying ? "Pausar" : "Reproduzir",
|
|
4737
|
-
children: isPlaying ? /* @__PURE__ */ (0,
|
|
4738
|
-
/* @__PURE__ */ (0,
|
|
4739
|
-
/* @__PURE__ */ (0,
|
|
4740
|
-
] }) }) : /* @__PURE__ */ (0,
|
|
5059
|
+
children: isPlaying ? /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex gap-0.5", children: [
|
|
5060
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" }),
|
|
5061
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-1 h-4 bg-current rounded-sm" })
|
|
5062
|
+
] }) }) : /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.Play, { size: 24 })
|
|
4741
5063
|
}
|
|
4742
5064
|
),
|
|
4743
|
-
/* @__PURE__ */ (0,
|
|
4744
|
-
/* @__PURE__ */ (0,
|
|
5065
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime(currentTime) }),
|
|
5066
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex-1 relative", "data-testid": "progress-bar", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4745
5067
|
"button",
|
|
4746
5068
|
{
|
|
4747
5069
|
type: "button",
|
|
@@ -4756,7 +5078,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4756
5078
|
}
|
|
4757
5079
|
},
|
|
4758
5080
|
"aria-label": "Barra de progresso do \xE1udio",
|
|
4759
|
-
children: /* @__PURE__ */ (0,
|
|
5081
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4760
5082
|
"div",
|
|
4761
5083
|
{
|
|
4762
5084
|
className: "h-full bg-primary-600 rounded-full transition-all duration-100",
|
|
@@ -4767,19 +5089,19 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4767
5089
|
)
|
|
4768
5090
|
}
|
|
4769
5091
|
) }),
|
|
4770
|
-
/* @__PURE__ */ (0,
|
|
4771
|
-
/* @__PURE__ */ (0,
|
|
4772
|
-
/* @__PURE__ */ (0,
|
|
5092
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("p", { className: "text-text-800 text-md font-medium min-w-[2.5rem]", children: formatTime(duration) }),
|
|
5093
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative h-6", ref: volumeControlRef, children: [
|
|
5094
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4773
5095
|
"button",
|
|
4774
5096
|
{
|
|
4775
5097
|
type: "button",
|
|
4776
5098
|
onClick: toggleVolumeControl,
|
|
4777
5099
|
className: "cursor-pointer text-text-950 hover:text-primary-600",
|
|
4778
5100
|
"aria-label": "Controle de volume",
|
|
4779
|
-
children: /* @__PURE__ */ (0,
|
|
5101
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-6 h-6 flex items-center justify-center", children: getVolumeIcon() })
|
|
4780
5102
|
}
|
|
4781
5103
|
),
|
|
4782
|
-
showVolumeControl && /* @__PURE__ */ (0,
|
|
5104
|
+
showVolumeControl && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4783
5105
|
"button",
|
|
4784
5106
|
{
|
|
4785
5107
|
type: "button",
|
|
@@ -4789,7 +5111,7 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4789
5111
|
setShowVolumeControl(false);
|
|
4790
5112
|
}
|
|
4791
5113
|
},
|
|
4792
|
-
children: /* @__PURE__ */ (0,
|
|
5114
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4793
5115
|
"input",
|
|
4794
5116
|
{
|
|
4795
5117
|
type: "range",
|
|
@@ -4830,22 +5152,22 @@ var CardAudio = (0, import_react13.forwardRef)(
|
|
|
4830
5152
|
}
|
|
4831
5153
|
)
|
|
4832
5154
|
] }),
|
|
4833
|
-
/* @__PURE__ */ (0,
|
|
4834
|
-
/* @__PURE__ */ (0,
|
|
5155
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "relative h-6", ref: speedMenuRef, children: [
|
|
5156
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4835
5157
|
"button",
|
|
4836
5158
|
{
|
|
4837
5159
|
type: "button",
|
|
4838
5160
|
onClick: toggleSpeedMenu,
|
|
4839
5161
|
className: "cursor-pointer text-text-950 hover:text-primary-600",
|
|
4840
5162
|
"aria-label": "Op\xE7\xF5es de velocidade",
|
|
4841
|
-
children: /* @__PURE__ */ (0,
|
|
5163
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.DotsThreeVertical, { size: 24 })
|
|
4842
5164
|
}
|
|
4843
5165
|
),
|
|
4844
|
-
showSpeedMenu && /* @__PURE__ */ (0,
|
|
5166
|
+
showSpeedMenu && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "absolute bottom-full right-0 mb-2 p-2 bg-background border border-border-100 rounded-lg shadow-lg min-w-24 z-10", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex flex-col gap-1", children: [
|
|
4845
5167
|
{ speed: 1, label: "1x" },
|
|
4846
5168
|
{ speed: 1.5, label: "1.5x" },
|
|
4847
5169
|
{ speed: 2, label: "2x" }
|
|
4848
|
-
].map(({ speed, label }) => /* @__PURE__ */ (0,
|
|
5170
|
+
].map(({ speed, label }) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4849
5171
|
"button",
|
|
4850
5172
|
{
|
|
4851
5173
|
type: "button",
|
|
@@ -4870,10 +5192,10 @@ var SIMULADO_BACKGROUND_CLASSES = {
|
|
|
4870
5192
|
simuladao: "bg-exam-3",
|
|
4871
5193
|
vestibular: "bg-exam-4"
|
|
4872
5194
|
};
|
|
4873
|
-
var CardSimulado = (0,
|
|
5195
|
+
var CardSimulado = (0, import_react14.forwardRef)(
|
|
4874
5196
|
({ title, duration, info, backgroundColor, className, ...props }, ref) => {
|
|
4875
5197
|
const backgroundClass = SIMULADO_BACKGROUND_CLASSES[backgroundColor];
|
|
4876
|
-
return /* @__PURE__ */ (0,
|
|
5198
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4877
5199
|
CardBase,
|
|
4878
5200
|
{
|
|
4879
5201
|
ref,
|
|
@@ -4886,19 +5208,19 @@ var CardSimulado = (0, import_react13.forwardRef)(
|
|
|
4886
5208
|
className
|
|
4887
5209
|
),
|
|
4888
5210
|
...props,
|
|
4889
|
-
children: /* @__PURE__ */ (0,
|
|
4890
|
-
/* @__PURE__ */ (0,
|
|
4891
|
-
/* @__PURE__ */ (0,
|
|
4892
|
-
/* @__PURE__ */ (0,
|
|
4893
|
-
duration && /* @__PURE__ */ (0,
|
|
4894
|
-
/* @__PURE__ */ (0,
|
|
4895
|
-
/* @__PURE__ */ (0,
|
|
5211
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex justify-between items-center w-full gap-4", children: [
|
|
5212
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col gap-1 flex-1 min-w-0", children: [
|
|
5213
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text_default, { size: "lg", weight: "bold", className: "text-text-950 truncate", children: title }),
|
|
5214
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-4 text-text-700", children: [
|
|
5215
|
+
duration && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-1", children: [
|
|
5216
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.Clock, { size: 16, className: "flex-shrink-0" }),
|
|
5217
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text_default, { size: "sm", children: duration })
|
|
4896
5218
|
] }),
|
|
4897
|
-
/* @__PURE__ */ (0,
|
|
5219
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text_default, { size: "sm", className: "truncate", children: info })
|
|
4898
5220
|
] })
|
|
4899
5221
|
] }),
|
|
4900
|
-
/* @__PURE__ */ (0,
|
|
4901
|
-
|
|
5222
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5223
|
+
import_phosphor_react12.CaretRight,
|
|
4902
5224
|
{
|
|
4903
5225
|
size: 24,
|
|
4904
5226
|
className: "text-text-800 flex-shrink-0",
|
|
@@ -4910,7 +5232,7 @@ var CardSimulado = (0, import_react13.forwardRef)(
|
|
|
4910
5232
|
);
|
|
4911
5233
|
}
|
|
4912
5234
|
);
|
|
4913
|
-
var CardTest = (0,
|
|
5235
|
+
var CardTest = (0, import_react14.forwardRef)(
|
|
4914
5236
|
({
|
|
4915
5237
|
title,
|
|
4916
5238
|
duration,
|
|
@@ -4942,7 +5264,7 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
4942
5264
|
const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
|
|
4943
5265
|
const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
|
|
4944
5266
|
if (isSelectable) {
|
|
4945
|
-
return /* @__PURE__ */ (0,
|
|
5267
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4946
5268
|
"button",
|
|
4947
5269
|
{
|
|
4948
5270
|
ref,
|
|
@@ -4954,8 +5276,8 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
4954
5276
|
onKeyDown: handleKeyDown,
|
|
4955
5277
|
"aria-pressed": selected,
|
|
4956
5278
|
...props,
|
|
4957
|
-
children: /* @__PURE__ */ (0,
|
|
4958
|
-
/* @__PURE__ */ (0,
|
|
5279
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
|
|
5280
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4959
5281
|
Text_default,
|
|
4960
5282
|
{
|
|
4961
5283
|
size: "md",
|
|
@@ -4964,10 +5286,10 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
4964
5286
|
children: title
|
|
4965
5287
|
}
|
|
4966
5288
|
),
|
|
4967
|
-
/* @__PURE__ */ (0,
|
|
4968
|
-
duration && /* @__PURE__ */ (0,
|
|
4969
|
-
/* @__PURE__ */ (0,
|
|
4970
|
-
/* @__PURE__ */ (0,
|
|
5289
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
|
|
5290
|
+
duration && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
|
|
5291
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.Clock, { size: 16, className: "text-text-700" }),
|
|
5292
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4971
5293
|
Text_default,
|
|
4972
5294
|
{
|
|
4973
5295
|
size: "sm",
|
|
@@ -4976,7 +5298,7 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
4976
5298
|
}
|
|
4977
5299
|
)
|
|
4978
5300
|
] }),
|
|
4979
|
-
/* @__PURE__ */ (0,
|
|
5301
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4980
5302
|
Text_default,
|
|
4981
5303
|
{
|
|
4982
5304
|
size: "sm",
|
|
@@ -4989,14 +5311,14 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
4989
5311
|
}
|
|
4990
5312
|
);
|
|
4991
5313
|
}
|
|
4992
|
-
return /* @__PURE__ */ (0,
|
|
5314
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
4993
5315
|
"div",
|
|
4994
5316
|
{
|
|
4995
5317
|
ref,
|
|
4996
5318
|
className: cn(`${baseClasses} ${className}`.trim()),
|
|
4997
5319
|
...props,
|
|
4998
|
-
children: /* @__PURE__ */ (0,
|
|
4999
|
-
/* @__PURE__ */ (0,
|
|
5320
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
|
|
5321
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5000
5322
|
Text_default,
|
|
5001
5323
|
{
|
|
5002
5324
|
size: "md",
|
|
@@ -5005,10 +5327,10 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
5005
5327
|
children: title
|
|
5006
5328
|
}
|
|
5007
5329
|
),
|
|
5008
|
-
/* @__PURE__ */ (0,
|
|
5009
|
-
duration && /* @__PURE__ */ (0,
|
|
5010
|
-
/* @__PURE__ */ (0,
|
|
5011
|
-
/* @__PURE__ */ (0,
|
|
5330
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
|
|
5331
|
+
duration && /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
|
|
5332
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(import_phosphor_react12.Clock, { size: 16, className: "text-text-700" }),
|
|
5333
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5012
5334
|
Text_default,
|
|
5013
5335
|
{
|
|
5014
5336
|
size: "sm",
|
|
@@ -5017,7 +5339,7 @@ var CardTest = (0, import_react13.forwardRef)(
|
|
|
5017
5339
|
}
|
|
5018
5340
|
)
|
|
5019
5341
|
] }),
|
|
5020
|
-
/* @__PURE__ */ (0,
|
|
5342
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5021
5343
|
Text_default,
|
|
5022
5344
|
{
|
|
5023
5345
|
size: "sm",
|
|
@@ -5053,15 +5375,15 @@ var SIMULATION_TYPE_STYLES = {
|
|
|
5053
5375
|
text: "Vestibular"
|
|
5054
5376
|
}
|
|
5055
5377
|
};
|
|
5056
|
-
var CardSimulationHistory = (0,
|
|
5057
|
-
return /* @__PURE__ */ (0,
|
|
5378
|
+
var CardSimulationHistory = (0, import_react14.forwardRef)(({ data, onSimulationClick, className, ...props }, ref) => {
|
|
5379
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5058
5380
|
"div",
|
|
5059
5381
|
{
|
|
5060
5382
|
ref,
|
|
5061
5383
|
className: cn("w-full max-w-[992px] h-auto", className),
|
|
5062
5384
|
...props,
|
|
5063
|
-
children: /* @__PURE__ */ (0,
|
|
5064
|
-
data.map((section, sectionIndex) => /* @__PURE__ */ (0,
|
|
5385
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-col gap-0", children: [
|
|
5386
|
+
data.map((section, sectionIndex) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex flex-col", children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
5065
5387
|
"div",
|
|
5066
5388
|
{
|
|
5067
5389
|
className: cn(
|
|
@@ -5069,7 +5391,7 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5069
5391
|
sectionIndex === 0 ? "rounded-t-3xl" : ""
|
|
5070
5392
|
),
|
|
5071
5393
|
children: [
|
|
5072
|
-
/* @__PURE__ */ (0,
|
|
5394
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5073
5395
|
Text_default,
|
|
5074
5396
|
{
|
|
5075
5397
|
size: "xs",
|
|
@@ -5078,9 +5400,9 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5078
5400
|
children: section.date
|
|
5079
5401
|
}
|
|
5080
5402
|
),
|
|
5081
|
-
/* @__PURE__ */ (0,
|
|
5403
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "flex flex-col gap-2 flex-1", children: section.simulations.map((simulation) => {
|
|
5082
5404
|
const typeStyles = SIMULATION_TYPE_STYLES[simulation.type];
|
|
5083
|
-
return /* @__PURE__ */ (0,
|
|
5405
|
+
return /* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5084
5406
|
CardBase,
|
|
5085
5407
|
{
|
|
5086
5408
|
layout: "horizontal",
|
|
@@ -5092,9 +5414,9 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5092
5414
|
transition-shadow duration-200 h-auto min-h-[61px]`
|
|
5093
5415
|
),
|
|
5094
5416
|
onClick: () => onSimulationClick?.(simulation),
|
|
5095
|
-
children: /* @__PURE__ */ (0,
|
|
5096
|
-
/* @__PURE__ */ (0,
|
|
5097
|
-
/* @__PURE__ */ (0,
|
|
5417
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex justify-between items-center w-full gap-2", children: [
|
|
5418
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex flex-wrap flex-col justify-between sm:flex-row gap-2 flex-1 min-w-0", children: [
|
|
5419
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5098
5420
|
Text_default,
|
|
5099
5421
|
{
|
|
5100
5422
|
size: "lg",
|
|
@@ -5103,8 +5425,8 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5103
5425
|
children: simulation.title
|
|
5104
5426
|
}
|
|
5105
5427
|
),
|
|
5106
|
-
/* @__PURE__ */ (0,
|
|
5107
|
-
/* @__PURE__ */ (0,
|
|
5428
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
5429
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5108
5430
|
Badge_default,
|
|
5109
5431
|
{
|
|
5110
5432
|
variant: "examsOutlined",
|
|
@@ -5113,11 +5435,11 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5113
5435
|
children: typeStyles.text
|
|
5114
5436
|
}
|
|
5115
5437
|
),
|
|
5116
|
-
/* @__PURE__ */ (0,
|
|
5438
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(Text_default, { size: "sm", className: "text-text-800 truncate", children: simulation.info })
|
|
5117
5439
|
] })
|
|
5118
5440
|
] }),
|
|
5119
|
-
/* @__PURE__ */ (0,
|
|
5120
|
-
|
|
5441
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)(
|
|
5442
|
+
import_phosphor_react12.CaretRight,
|
|
5121
5443
|
{
|
|
5122
5444
|
size: 24,
|
|
5123
5445
|
className: "text-text-800 flex-shrink-0",
|
|
@@ -5132,16 +5454,16 @@ var CardSimulationHistory = (0, import_react13.forwardRef)(({ data, onSimulation
|
|
|
5132
5454
|
]
|
|
5133
5455
|
}
|
|
5134
5456
|
) }, section.date)),
|
|
5135
|
-
data.length > 0 && /* @__PURE__ */ (0,
|
|
5457
|
+
data.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "w-full h-6 bg-background rounded-b-3xl" })
|
|
5136
5458
|
] })
|
|
5137
5459
|
}
|
|
5138
5460
|
);
|
|
5139
5461
|
});
|
|
5140
5462
|
|
|
5141
5463
|
// src/components/Accordation/Accordation.tsx
|
|
5142
|
-
var
|
|
5143
|
-
var
|
|
5144
|
-
var CardAccordation = (0,
|
|
5464
|
+
var import_phosphor_react13 = require("phosphor-react");
|
|
5465
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
5466
|
+
var CardAccordation = (0, import_react15.forwardRef)(
|
|
5145
5467
|
({
|
|
5146
5468
|
trigger,
|
|
5147
5469
|
children,
|
|
@@ -5155,13 +5477,13 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5155
5477
|
contentClassName,
|
|
5156
5478
|
...props
|
|
5157
5479
|
}, ref) => {
|
|
5158
|
-
const [internalExpanded, setInternalExpanded] = (0,
|
|
5159
|
-
const generatedId = (0,
|
|
5480
|
+
const [internalExpanded, setInternalExpanded] = (0, import_react15.useState)(defaultExpanded);
|
|
5481
|
+
const generatedId = (0, import_react15.useId)();
|
|
5160
5482
|
const contentId = value ? `accordion-content-${value}` : generatedId;
|
|
5161
5483
|
const headerId = value ? `accordion-header-${value}` : `${generatedId}-header`;
|
|
5162
5484
|
const isControlled = controlledExpanded !== void 0;
|
|
5163
5485
|
const isExpanded = isControlled ? controlledExpanded : internalExpanded;
|
|
5164
|
-
(0,
|
|
5486
|
+
(0, import_react15.useEffect)(() => {
|
|
5165
5487
|
if (isControlled) {
|
|
5166
5488
|
setInternalExpanded(controlledExpanded);
|
|
5167
5489
|
}
|
|
@@ -5181,7 +5503,7 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5181
5503
|
handleToggle();
|
|
5182
5504
|
}
|
|
5183
5505
|
};
|
|
5184
|
-
return /* @__PURE__ */ (0,
|
|
5506
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
5185
5507
|
CardBase,
|
|
5186
5508
|
{
|
|
5187
5509
|
ref,
|
|
@@ -5191,7 +5513,7 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5191
5513
|
className: cn("overflow-hidden", className),
|
|
5192
5514
|
...props,
|
|
5193
5515
|
children: [
|
|
5194
|
-
/* @__PURE__ */ (0,
|
|
5516
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
5195
5517
|
"button",
|
|
5196
5518
|
{
|
|
5197
5519
|
id: headerId,
|
|
@@ -5210,8 +5532,8 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5210
5532
|
"data-value": value,
|
|
5211
5533
|
children: [
|
|
5212
5534
|
trigger,
|
|
5213
|
-
/* @__PURE__ */ (0,
|
|
5214
|
-
|
|
5535
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
5536
|
+
import_phosphor_react13.CaretRight,
|
|
5215
5537
|
{
|
|
5216
5538
|
size: 20,
|
|
5217
5539
|
className: cn(
|
|
@@ -5225,7 +5547,7 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5225
5547
|
]
|
|
5226
5548
|
}
|
|
5227
5549
|
),
|
|
5228
|
-
/* @__PURE__ */ (0,
|
|
5550
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)(
|
|
5229
5551
|
"section",
|
|
5230
5552
|
{
|
|
5231
5553
|
id: contentId,
|
|
@@ -5237,7 +5559,7 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5237
5559
|
),
|
|
5238
5560
|
"data-testid": "accordion-content",
|
|
5239
5561
|
"data-value": value,
|
|
5240
|
-
children: /* @__PURE__ */ (0,
|
|
5562
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime24.jsx)("div", { className: cn("p-4 pt-0", contentClassName), children })
|
|
5241
5563
|
}
|
|
5242
5564
|
)
|
|
5243
5565
|
]
|
|
@@ -5248,11 +5570,11 @@ var CardAccordation = (0, import_react14.forwardRef)(
|
|
|
5248
5570
|
CardAccordation.displayName = "CardAccordation";
|
|
5249
5571
|
|
|
5250
5572
|
// src/components/Accordation/AccordionGroup.tsx
|
|
5251
|
-
var
|
|
5252
|
-
var
|
|
5253
|
-
var
|
|
5573
|
+
var import_react16 = require("react");
|
|
5574
|
+
var import_zustand5 = require("zustand");
|
|
5575
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
5254
5576
|
function createAccordionGroupStore(type, initialValue, collapsible) {
|
|
5255
|
-
return (0,
|
|
5577
|
+
return (0, import_zustand5.create)((set, get) => ({
|
|
5256
5578
|
type,
|
|
5257
5579
|
value: initialValue,
|
|
5258
5580
|
collapsible,
|
|
@@ -5268,8 +5590,8 @@ function createAccordionGroupStore(type, initialValue, collapsible) {
|
|
|
5268
5590
|
}));
|
|
5269
5591
|
}
|
|
5270
5592
|
var injectStore3 = (children, store, indexRef, onItemToggle) => {
|
|
5271
|
-
return
|
|
5272
|
-
if (!(0,
|
|
5593
|
+
return import_react16.Children.map(children, (child) => {
|
|
5594
|
+
if (!(0, import_react16.isValidElement)(child)) {
|
|
5273
5595
|
return child;
|
|
5274
5596
|
}
|
|
5275
5597
|
const typedChild = child;
|
|
@@ -5296,16 +5618,16 @@ var injectStore3 = (children, store, indexRef, onItemToggle) => {
|
|
|
5296
5618
|
if (displayName === "CardAccordation") {
|
|
5297
5619
|
newProps.children = processedChildren;
|
|
5298
5620
|
} else if (processedChildren !== typedChild.props.children) {
|
|
5299
|
-
return (0,
|
|
5621
|
+
return (0, import_react16.cloneElement)(typedChild, { children: processedChildren });
|
|
5300
5622
|
}
|
|
5301
5623
|
}
|
|
5302
5624
|
if (Object.keys(newProps).length > 0) {
|
|
5303
|
-
return (0,
|
|
5625
|
+
return (0, import_react16.cloneElement)(typedChild, newProps);
|
|
5304
5626
|
}
|
|
5305
5627
|
return child;
|
|
5306
5628
|
});
|
|
5307
5629
|
};
|
|
5308
|
-
var AccordionGroup = (0,
|
|
5630
|
+
var AccordionGroup = (0, import_react16.forwardRef)(
|
|
5309
5631
|
({
|
|
5310
5632
|
type = "single",
|
|
5311
5633
|
defaultValue,
|
|
@@ -5316,12 +5638,12 @@ var AccordionGroup = (0, import_react15.forwardRef)(
|
|
|
5316
5638
|
className,
|
|
5317
5639
|
...props
|
|
5318
5640
|
}, ref) => {
|
|
5319
|
-
const [internalValue, setInternalValue] = (0,
|
|
5641
|
+
const [internalValue, setInternalValue] = (0, import_react16.useState)(
|
|
5320
5642
|
defaultValue || (type === "single" ? "" : [])
|
|
5321
5643
|
);
|
|
5322
5644
|
const isControlled = controlledValue !== void 0;
|
|
5323
5645
|
const currentValue = isControlled ? controlledValue : internalValue;
|
|
5324
|
-
const storeRef = (0,
|
|
5646
|
+
const storeRef = (0, import_react16.useRef)(null);
|
|
5325
5647
|
if (storeRef.current) {
|
|
5326
5648
|
storeRef.current.setState((prev) => {
|
|
5327
5649
|
const nextState = {};
|
|
@@ -5341,10 +5663,10 @@ var AccordionGroup = (0, import_react15.forwardRef)(
|
|
|
5341
5663
|
);
|
|
5342
5664
|
}
|
|
5343
5665
|
const store = storeRef.current;
|
|
5344
|
-
(0,
|
|
5666
|
+
(0, import_react16.useEffect)(() => {
|
|
5345
5667
|
store.setState({ value: currentValue });
|
|
5346
5668
|
}, [currentValue, store]);
|
|
5347
|
-
(0,
|
|
5669
|
+
(0, import_react16.useEffect)(() => {
|
|
5348
5670
|
if (!isControlled) {
|
|
5349
5671
|
setInternalValue((prev) => {
|
|
5350
5672
|
if (type === "single") {
|
|
@@ -5390,7 +5712,7 @@ var AccordionGroup = (0, import_react15.forwardRef)(
|
|
|
5390
5712
|
indexRef,
|
|
5391
5713
|
handleItemToggle
|
|
5392
5714
|
);
|
|
5393
|
-
return /* @__PURE__ */ (0,
|
|
5715
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref, className, ...props, children: enhancedChildren });
|
|
5394
5716
|
}
|
|
5395
5717
|
);
|
|
5396
5718
|
AccordionGroup.displayName = "AccordionGroup";
|
|
@@ -5477,7 +5799,7 @@ var calculateFormattedItemsForAutoSelection = (category, allCategories) => {
|
|
|
5477
5799
|
};
|
|
5478
5800
|
|
|
5479
5801
|
// src/components/CheckBoxGroup/CheckBoxGroup.tsx
|
|
5480
|
-
var
|
|
5802
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
5481
5803
|
var CheckboxGroup = ({
|
|
5482
5804
|
categories,
|
|
5483
5805
|
onCategoriesChange,
|
|
@@ -5485,14 +5807,14 @@ var CheckboxGroup = ({
|
|
|
5485
5807
|
showDivider = true,
|
|
5486
5808
|
showSingleItem = false
|
|
5487
5809
|
}) => {
|
|
5488
|
-
const [openAccordion, setOpenAccordion] = (0,
|
|
5489
|
-
const autoSelectionAppliedRef = (0,
|
|
5490
|
-
const onCategoriesChangeRef = (0,
|
|
5491
|
-
const previousCategoriesRef = (0,
|
|
5492
|
-
(0,
|
|
5810
|
+
const [openAccordion, setOpenAccordion] = (0, import_react17.useState)("");
|
|
5811
|
+
const autoSelectionAppliedRef = (0, import_react17.useRef)(false);
|
|
5812
|
+
const onCategoriesChangeRef = (0, import_react17.useRef)(onCategoriesChange);
|
|
5813
|
+
const previousCategoriesRef = (0, import_react17.useRef)(categories);
|
|
5814
|
+
(0, import_react17.useEffect)(() => {
|
|
5493
5815
|
onCategoriesChangeRef.current = onCategoriesChange;
|
|
5494
5816
|
}, [onCategoriesChange]);
|
|
5495
|
-
const categoriesWithAutoSelection = (0,
|
|
5817
|
+
const categoriesWithAutoSelection = (0, import_react17.useMemo)(() => {
|
|
5496
5818
|
return categories.map((category) => {
|
|
5497
5819
|
const filteredItems = calculateFormattedItemsForAutoSelection(
|
|
5498
5820
|
category,
|
|
@@ -5507,7 +5829,7 @@ var CheckboxGroup = ({
|
|
|
5507
5829
|
return category;
|
|
5508
5830
|
});
|
|
5509
5831
|
}, [categories]);
|
|
5510
|
-
(0,
|
|
5832
|
+
(0, import_react17.useEffect)(() => {
|
|
5511
5833
|
const categoriesChanged = categories !== previousCategoriesRef.current;
|
|
5512
5834
|
if (!categoriesChanged && autoSelectionAppliedRef.current) {
|
|
5513
5835
|
return;
|
|
@@ -5625,7 +5947,7 @@ var CheckboxGroup = ({
|
|
|
5625
5947
|
);
|
|
5626
5948
|
return groupedItems.length ? groupedItems : [{ itens: [] }];
|
|
5627
5949
|
};
|
|
5628
|
-
const formattedItemsMap = (0,
|
|
5950
|
+
const formattedItemsMap = (0, import_react17.useMemo)(() => {
|
|
5629
5951
|
const formattedItemsMap2 = {};
|
|
5630
5952
|
for (const category of categories) {
|
|
5631
5953
|
const formattedItems = calculateFormattedItems(category.key);
|
|
@@ -5780,7 +6102,7 @@ var CheckboxGroup = ({
|
|
|
5780
6102
|
};
|
|
5781
6103
|
const renderCheckboxItem = (item, categoryKey) => {
|
|
5782
6104
|
const uniqueId = `${categoryKey}-${item.id}`;
|
|
5783
|
-
return /* @__PURE__ */ (0,
|
|
6105
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
5784
6106
|
"div",
|
|
5785
6107
|
{
|
|
5786
6108
|
className: "flex items-center gap-3 px-2",
|
|
@@ -5790,7 +6112,7 @@ var CheckboxGroup = ({
|
|
|
5790
6112
|
onMouseUp: (e) => e.stopPropagation(),
|
|
5791
6113
|
onKeyDown: (e) => e.stopPropagation(),
|
|
5792
6114
|
children: [
|
|
5793
|
-
/* @__PURE__ */ (0,
|
|
6115
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5794
6116
|
CheckBox_default,
|
|
5795
6117
|
{
|
|
5796
6118
|
id: uniqueId,
|
|
@@ -5798,7 +6120,7 @@ var CheckboxGroup = ({
|
|
|
5798
6120
|
onChange: () => toggleItem(categoryKey, item.id)
|
|
5799
6121
|
}
|
|
5800
6122
|
),
|
|
5801
|
-
/* @__PURE__ */ (0,
|
|
6123
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5802
6124
|
"label",
|
|
5803
6125
|
{
|
|
5804
6126
|
htmlFor: uniqueId,
|
|
@@ -5811,12 +6133,12 @@ var CheckboxGroup = ({
|
|
|
5811
6133
|
item.id
|
|
5812
6134
|
);
|
|
5813
6135
|
};
|
|
5814
|
-
const renderFormattedGroup = (formattedGroup, idx, categoryKey) => /* @__PURE__ */ (0,
|
|
6136
|
+
const renderFormattedGroup = (formattedGroup, idx, categoryKey) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
5815
6137
|
"div",
|
|
5816
6138
|
{
|
|
5817
6139
|
className: "flex flex-col gap-3",
|
|
5818
6140
|
children: [
|
|
5819
|
-
"groupLabel" in formattedGroup && formattedGroup.groupLabel && /* @__PURE__ */ (0,
|
|
6141
|
+
"groupLabel" in formattedGroup && formattedGroup.groupLabel && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", className: "mt-2", weight: "semibold", children: formattedGroup.groupLabel }),
|
|
5820
6142
|
formattedGroup.itens?.map(
|
|
5821
6143
|
(item) => renderCheckboxItem(item, categoryKey)
|
|
5822
6144
|
)
|
|
@@ -5824,9 +6146,9 @@ var CheckboxGroup = ({
|
|
|
5824
6146
|
},
|
|
5825
6147
|
formattedGroup.groupLabel || `group-${idx}`
|
|
5826
6148
|
);
|
|
5827
|
-
const renderAccordionTrigger = (category, isEnabled) => /* @__PURE__ */ (0,
|
|
5828
|
-
/* @__PURE__ */ (0,
|
|
5829
|
-
/* @__PURE__ */ (0,
|
|
6149
|
+
const renderAccordionTrigger = (category, isEnabled) => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between w-full p-2", children: [
|
|
6150
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-3", children: [
|
|
6151
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5830
6152
|
CheckBox_default,
|
|
5831
6153
|
{
|
|
5832
6154
|
checked: isMinimalOneCheckBoxIsSelected(category.key),
|
|
@@ -5835,7 +6157,7 @@ var CheckboxGroup = ({
|
|
|
5835
6157
|
onChange: () => toggleAllInCategory(category.key)
|
|
5836
6158
|
}
|
|
5837
6159
|
),
|
|
5838
|
-
/* @__PURE__ */ (0,
|
|
6160
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5839
6161
|
Text_default,
|
|
5840
6162
|
{
|
|
5841
6163
|
size: "sm",
|
|
@@ -5845,7 +6167,7 @@ var CheckboxGroup = ({
|
|
|
5845
6167
|
}
|
|
5846
6168
|
)
|
|
5847
6169
|
] }),
|
|
5848
|
-
(openAccordion === category.key || isEnabled) && /* @__PURE__ */ (0,
|
|
6170
|
+
(openAccordion === category.key || isEnabled) && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Badge_default, { variant: "solid", action: "info", children: getBadgeText2(category) })
|
|
5849
6171
|
] });
|
|
5850
6172
|
const renderCompactSingleItem = (category) => {
|
|
5851
6173
|
const formattedItems = getFormattedItems(category.key);
|
|
@@ -5854,13 +6176,13 @@ var CheckboxGroup = ({
|
|
|
5854
6176
|
return null;
|
|
5855
6177
|
}
|
|
5856
6178
|
const singleItem = allItems[0];
|
|
5857
|
-
return /* @__PURE__ */ (0,
|
|
6179
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
5858
6180
|
"div",
|
|
5859
6181
|
{
|
|
5860
6182
|
className: "flex items-center justify-between w-full px-3 py-2",
|
|
5861
6183
|
children: [
|
|
5862
|
-
/* @__PURE__ */ (0,
|
|
5863
|
-
/* @__PURE__ */ (0,
|
|
6184
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", weight: "bold", className: "text-text-800", children: category.label }),
|
|
6185
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", className: "text-text-950", children: singleItem.name })
|
|
5864
6186
|
]
|
|
5865
6187
|
},
|
|
5866
6188
|
category.key
|
|
@@ -5876,16 +6198,16 @@ var CheckboxGroup = ({
|
|
|
5876
6198
|
const allItems = formattedItems.flatMap((group) => group.itens || []);
|
|
5877
6199
|
const hasOnlyOneAvailableItem = allItems.length === 1;
|
|
5878
6200
|
if (compactSingleItem && hasOnlyOneAvailableItem && isEnabled) {
|
|
5879
|
-
return /* @__PURE__ */ (0,
|
|
6201
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { children: [
|
|
5880
6202
|
renderCompactSingleItem(category),
|
|
5881
|
-
showDivider && /* @__PURE__ */ (0,
|
|
6203
|
+
showDivider && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Divider_default, {})
|
|
5882
6204
|
] }, category.key);
|
|
5883
6205
|
}
|
|
5884
6206
|
const hasNoItems = formattedItems.every(
|
|
5885
6207
|
(group) => !group.itens || group.itens.length === 0
|
|
5886
6208
|
);
|
|
5887
|
-
return /* @__PURE__ */ (0,
|
|
5888
|
-
/* @__PURE__ */ (0,
|
|
6209
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { children: [
|
|
6210
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5889
6211
|
CardAccordation,
|
|
5890
6212
|
{
|
|
5891
6213
|
value: category.key,
|
|
@@ -5895,15 +6217,15 @@ var CheckboxGroup = ({
|
|
|
5895
6217
|
openAccordion === category.key && "bg-background-50 border-none"
|
|
5896
6218
|
),
|
|
5897
6219
|
trigger: renderAccordionTrigger(category, isEnabled),
|
|
5898
|
-
children: /* @__PURE__ */ (0,
|
|
6220
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex flex-col gap-3 pt-2", children: hasNoItems && isEnabled ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "px-2 py-4", children: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", className: "text-text-500 text-center", children: "Sem dados" }) }) : formattedItems.map(
|
|
5899
6221
|
(formattedGroup, idx) => renderFormattedGroup(formattedGroup, idx, category.key)
|
|
5900
6222
|
) })
|
|
5901
6223
|
}
|
|
5902
6224
|
),
|
|
5903
|
-
openAccordion !== category.key && showDivider && /* @__PURE__ */ (0,
|
|
6225
|
+
openAccordion !== category.key && showDivider && /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Divider_default, {})
|
|
5904
6226
|
] }, category.key);
|
|
5905
6227
|
};
|
|
5906
|
-
(0,
|
|
6228
|
+
(0, import_react17.useEffect)(() => {
|
|
5907
6229
|
if (!openAccordion) return;
|
|
5908
6230
|
const category = categories.find((c) => c.key === openAccordion);
|
|
5909
6231
|
if (!category) return;
|
|
@@ -5914,7 +6236,7 @@ var CheckboxGroup = ({
|
|
|
5914
6236
|
}, 0);
|
|
5915
6237
|
}
|
|
5916
6238
|
}, [categories, openAccordion]);
|
|
5917
|
-
return /* @__PURE__ */ (0,
|
|
6239
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
5918
6240
|
AccordionGroup,
|
|
5919
6241
|
{
|
|
5920
6242
|
type: "single",
|
|
@@ -5924,280 +6246,201 @@ var CheckboxGroup = ({
|
|
|
5924
6246
|
children: categories.map(renderCategoryAccordion)
|
|
5925
6247
|
}
|
|
5926
6248
|
);
|
|
5927
|
-
};
|
|
5928
|
-
|
|
5929
|
-
// src/components/
|
|
5930
|
-
var
|
|
5931
|
-
|
|
5932
|
-
|
|
5933
|
-
|
|
5934
|
-
|
|
5935
|
-
|
|
5936
|
-
|
|
5937
|
-
|
|
5938
|
-
|
|
5939
|
-
|
|
5940
|
-
|
|
5941
|
-
|
|
5942
|
-
|
|
5943
|
-
|
|
5944
|
-
|
|
5945
|
-
|
|
5946
|
-
|
|
5947
|
-
|
|
5948
|
-
|
|
5949
|
-
|
|
5950
|
-
|
|
5951
|
-
|
|
5952
|
-
|
|
5953
|
-
|
|
5954
|
-
|
|
5955
|
-
|
|
5956
|
-
|
|
5957
|
-
|
|
5958
|
-
|
|
5959
|
-
|
|
5960
|
-
|
|
5961
|
-
|
|
5962
|
-
|
|
5963
|
-
|
|
5964
|
-
|
|
5965
|
-
|
|
5966
|
-
|
|
5967
|
-
|
|
5968
|
-
|
|
5969
|
-
|
|
5970
|
-
|
|
5971
|
-
|
|
5972
|
-
|
|
5973
|
-
|
|
5974
|
-
|
|
5975
|
-
finalTime: import_zod.z.string().regex(TIME_REGEX).default("23:59"),
|
|
5976
|
-
canRetry: import_zod.z.boolean().default(false)
|
|
5977
|
-
});
|
|
5978
|
-
var deadlineStepSchema = deadlineStepBaseSchema.refine(
|
|
5979
|
-
(data) => {
|
|
5980
|
-
const start = /* @__PURE__ */ new Date(`${data.startDate}T${data.startTime}`);
|
|
5981
|
-
const end = /* @__PURE__ */ new Date(`${data.finalDate}T${data.finalTime}`);
|
|
5982
|
-
return end >= start;
|
|
5983
|
-
},
|
|
5984
|
-
{ message: ERROR_MESSAGES.FINAL_DATE_INVALID, path: ["finalDate"] }
|
|
5985
|
-
);
|
|
5986
|
-
function validateActivityStep(data) {
|
|
5987
|
-
const errors = {};
|
|
5988
|
-
const result = activityStepSchema.safeParse({
|
|
5989
|
-
subtype: data.subtype,
|
|
5990
|
-
title: data.title,
|
|
5991
|
-
notification: data.notification
|
|
5992
|
-
});
|
|
5993
|
-
if (!result.success) {
|
|
5994
|
-
result.error.issues.forEach((issue) => {
|
|
5995
|
-
const field = issue.path[0];
|
|
5996
|
-
if (field === "subtype" || field === "title") {
|
|
5997
|
-
errors[field] = issue.message;
|
|
5998
|
-
}
|
|
5999
|
-
});
|
|
6000
|
-
}
|
|
6001
|
-
return errors;
|
|
6002
|
-
}
|
|
6003
|
-
function validateRecipientStep(data) {
|
|
6004
|
-
const errors = {};
|
|
6005
|
-
const result = recipientStepSchema.safeParse({
|
|
6006
|
-
students: data.students ?? []
|
|
6007
|
-
});
|
|
6008
|
-
if (!result.success) {
|
|
6009
|
-
result.error.issues.forEach((issue) => {
|
|
6010
|
-
if (issue.path[0] === "students") {
|
|
6011
|
-
errors.students = issue.message;
|
|
6012
|
-
}
|
|
6013
|
-
});
|
|
6014
|
-
}
|
|
6015
|
-
return errors;
|
|
6016
|
-
}
|
|
6017
|
-
function validateDeadlineStep(data) {
|
|
6018
|
-
const errors = {};
|
|
6019
|
-
if (!data.startDate) {
|
|
6020
|
-
errors.startDate = ERROR_MESSAGES.START_DATE_REQUIRED;
|
|
6021
|
-
}
|
|
6022
|
-
if (!data.finalDate) {
|
|
6023
|
-
errors.finalDate = ERROR_MESSAGES.FINAL_DATE_REQUIRED;
|
|
6024
|
-
}
|
|
6025
|
-
if (data.startDate && data.finalDate) {
|
|
6026
|
-
const result = deadlineStepSchema.safeParse({
|
|
6027
|
-
startDate: data.startDate,
|
|
6028
|
-
startTime: data.startTime ?? "00:00",
|
|
6029
|
-
finalDate: data.finalDate,
|
|
6030
|
-
finalTime: data.finalTime ?? "23:59",
|
|
6031
|
-
canRetry: data.canRetry ?? false
|
|
6032
|
-
});
|
|
6033
|
-
if (!result.success) {
|
|
6034
|
-
result.error.issues.forEach((issue) => {
|
|
6035
|
-
const field = issue.path[0];
|
|
6036
|
-
if (field === "startDate" || field === "finalDate") {
|
|
6037
|
-
errors[field] = issue.message;
|
|
6038
|
-
}
|
|
6039
|
-
});
|
|
6040
|
-
}
|
|
6041
|
-
}
|
|
6042
|
-
return errors;
|
|
6043
|
-
}
|
|
6044
|
-
function validateStep(step, data) {
|
|
6045
|
-
switch (step) {
|
|
6046
|
-
case 1:
|
|
6047
|
-
return validateActivityStep(data);
|
|
6048
|
-
case 2:
|
|
6049
|
-
return validateRecipientStep(data);
|
|
6050
|
-
case 3:
|
|
6051
|
-
return validateDeadlineStep(data);
|
|
6052
|
-
default:
|
|
6053
|
-
return {};
|
|
6054
|
-
}
|
|
6055
|
-
}
|
|
6056
|
-
function isStepValid(step, data) {
|
|
6057
|
-
const errors = validateStep(step, data);
|
|
6058
|
-
return Object.keys(errors).length === 0;
|
|
6059
|
-
}
|
|
6060
|
-
function isFormValid(data) {
|
|
6061
|
-
return isStepValid(1, data) && isStepValid(2, data) && isStepValid(3, data);
|
|
6062
|
-
}
|
|
6063
|
-
|
|
6064
|
-
// src/components/SendActivityModal/hooks/useSendActivityModal.ts
|
|
6065
|
-
var initialState = {
|
|
6066
|
-
formData: {
|
|
6067
|
-
canRetry: false,
|
|
6068
|
-
startTime: "00:00",
|
|
6069
|
-
finalTime: "23:59"
|
|
6070
|
-
},
|
|
6071
|
-
currentStep: 1,
|
|
6072
|
-
completedSteps: [],
|
|
6073
|
-
errors: {},
|
|
6074
|
-
categories: []
|
|
6075
|
-
};
|
|
6076
|
-
function extractStudentsFromCategories(categories) {
|
|
6077
|
-
const studentsCategory = categories.find(
|
|
6078
|
-
(cat) => cat.key === "students" || cat.key === "alunos" || cat.key === "student"
|
|
6079
|
-
);
|
|
6080
|
-
if (!studentsCategory?.selectedIds || !studentsCategory.itens) {
|
|
6081
|
-
return [];
|
|
6082
|
-
}
|
|
6083
|
-
return studentsCategory.selectedIds.map((id) => {
|
|
6084
|
-
const student = studentsCategory.itens?.find((item) => item.id === id);
|
|
6085
|
-
if (student) {
|
|
6086
|
-
const rawStudentId = student.studentId;
|
|
6087
|
-
const rawUserInstId = student.userInstitutionId;
|
|
6088
|
-
const rawInstId = student.institutionId;
|
|
6089
|
-
const studentId = typeof rawStudentId === "string" || typeof rawStudentId === "number" ? String(rawStudentId) : student.id;
|
|
6090
|
-
let userInstitutionId = "";
|
|
6091
|
-
if (typeof rawUserInstId === "string" || typeof rawUserInstId === "number") {
|
|
6092
|
-
userInstitutionId = String(rawUserInstId);
|
|
6093
|
-
} else if (typeof rawInstId === "string" || typeof rawInstId === "number") {
|
|
6094
|
-
userInstitutionId = String(rawInstId);
|
|
6095
|
-
}
|
|
6096
|
-
if (!userInstitutionId) {
|
|
6097
|
-
return null;
|
|
6098
|
-
}
|
|
6099
|
-
return { studentId, userInstitutionId };
|
|
6100
|
-
}
|
|
6101
|
-
return null;
|
|
6102
|
-
}).filter(
|
|
6103
|
-
(s) => s !== null
|
|
6104
|
-
);
|
|
6105
|
-
}
|
|
6106
|
-
var useSendActivityModalStore = (0, import_zustand5.create)(
|
|
6107
|
-
(set, get) => ({
|
|
6108
|
-
...initialState,
|
|
6109
|
-
setFormData: (data) => {
|
|
6110
|
-
set((state) => ({
|
|
6111
|
-
formData: { ...state.formData, ...data }
|
|
6112
|
-
}));
|
|
6113
|
-
},
|
|
6114
|
-
goToStep: (step) => {
|
|
6115
|
-
if (step >= 1 && step <= 3) {
|
|
6116
|
-
set({ currentStep: step, errors: {} });
|
|
6117
|
-
}
|
|
6118
|
-
},
|
|
6119
|
-
nextStep: () => {
|
|
6120
|
-
const state = get();
|
|
6121
|
-
const isValid = state.validateCurrentStep();
|
|
6122
|
-
if (isValid && state.currentStep < 3) {
|
|
6123
|
-
set((prev) => ({
|
|
6124
|
-
currentStep: prev.currentStep + 1,
|
|
6125
|
-
completedSteps: prev.completedSteps.includes(prev.currentStep) ? prev.completedSteps : [...prev.completedSteps, prev.currentStep],
|
|
6126
|
-
errors: {}
|
|
6127
|
-
}));
|
|
6128
|
-
return true;
|
|
6129
|
-
}
|
|
6130
|
-
return isValid;
|
|
6131
|
-
},
|
|
6132
|
-
previousStep: () => {
|
|
6133
|
-
const state = get();
|
|
6134
|
-
if (state.currentStep > 1) {
|
|
6135
|
-
set({ currentStep: state.currentStep - 1, errors: {} });
|
|
6136
|
-
}
|
|
6137
|
-
},
|
|
6138
|
-
setErrors: (errors) => {
|
|
6139
|
-
set({ errors });
|
|
6140
|
-
},
|
|
6141
|
-
validateCurrentStep: () => {
|
|
6142
|
-
const state = get();
|
|
6143
|
-
let formDataToValidate = state.formData;
|
|
6144
|
-
let updatedFormData = state.formData;
|
|
6145
|
-
if (state.currentStep === 2 && state.categories.length > 0) {
|
|
6146
|
-
const students = extractStudentsFromCategories(state.categories);
|
|
6147
|
-
formDataToValidate = { ...state.formData, students };
|
|
6148
|
-
updatedFormData = formDataToValidate;
|
|
6149
|
-
}
|
|
6150
|
-
const errors = validateStep(state.currentStep, formDataToValidate);
|
|
6151
|
-
set({ formData: updatedFormData, errors });
|
|
6152
|
-
return Object.keys(errors).length === 0;
|
|
6153
|
-
},
|
|
6154
|
-
validateAllSteps: () => {
|
|
6155
|
-
const state = get();
|
|
6156
|
-
let formDataForStep2 = state.formData;
|
|
6157
|
-
if (state.categories.length > 0) {
|
|
6158
|
-
const students = extractStudentsFromCategories(state.categories);
|
|
6159
|
-
formDataForStep2 = { ...state.formData, students };
|
|
6160
|
-
}
|
|
6161
|
-
const errors1 = validateStep(1, state.formData);
|
|
6162
|
-
const errors2 = validateStep(2, formDataForStep2);
|
|
6163
|
-
const errors3 = validateStep(3, state.formData);
|
|
6164
|
-
const allErrors = { ...errors1, ...errors2, ...errors3 };
|
|
6165
|
-
set({ errors: allErrors });
|
|
6166
|
-
return Object.keys(allErrors).length === 0;
|
|
6167
|
-
},
|
|
6168
|
-
setCategories: (categories) => {
|
|
6169
|
-
const students = extractStudentsFromCategories(categories);
|
|
6170
|
-
set((state) => ({
|
|
6171
|
-
categories,
|
|
6172
|
-
formData: { ...state.formData, students }
|
|
6173
|
-
}));
|
|
6174
|
-
},
|
|
6175
|
-
reset: () => {
|
|
6176
|
-
set({
|
|
6177
|
-
...initialState,
|
|
6178
|
-
categories: []
|
|
6179
|
-
});
|
|
6249
|
+
};
|
|
6250
|
+
|
|
6251
|
+
// src/components/shared/SendModalBase/components/RecipientStep.tsx
|
|
6252
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
6253
|
+
var RecipientStep = ({
|
|
6254
|
+
categories,
|
|
6255
|
+
onCategoriesChange,
|
|
6256
|
+
entityNameWithArticle,
|
|
6257
|
+
studentsError,
|
|
6258
|
+
testIdPrefix
|
|
6259
|
+
}) => {
|
|
6260
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(
|
|
6261
|
+
"div",
|
|
6262
|
+
{
|
|
6263
|
+
className: "flex flex-col gap-4",
|
|
6264
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-recipient-step` : void 0,
|
|
6265
|
+
children: [
|
|
6266
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)(Text_default, { size: "sm", weight: "medium", color: "text-text-700", children: [
|
|
6267
|
+
"Para quem voc\xEA vai enviar ",
|
|
6268
|
+
entityNameWithArticle,
|
|
6269
|
+
"?"
|
|
6270
|
+
] }),
|
|
6271
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6272
|
+
"div",
|
|
6273
|
+
{
|
|
6274
|
+
className: cn(
|
|
6275
|
+
"max-h-[300px] overflow-y-auto",
|
|
6276
|
+
"scrollbar-thin scrollbar-thumb-border-300 scrollbar-track-transparent"
|
|
6277
|
+
),
|
|
6278
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6279
|
+
CheckboxGroup,
|
|
6280
|
+
{
|
|
6281
|
+
categories,
|
|
6282
|
+
onCategoriesChange,
|
|
6283
|
+
compactSingleItem: true,
|
|
6284
|
+
showDivider: true
|
|
6285
|
+
}
|
|
6286
|
+
)
|
|
6287
|
+
}
|
|
6288
|
+
),
|
|
6289
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsx)(
|
|
6290
|
+
SendModalError,
|
|
6291
|
+
{
|
|
6292
|
+
error: studentsError,
|
|
6293
|
+
testId: testIdPrefix ? `${testIdPrefix}-students-error` : void 0
|
|
6294
|
+
}
|
|
6295
|
+
)
|
|
6296
|
+
]
|
|
6180
6297
|
}
|
|
6181
|
-
|
|
6182
|
-
|
|
6183
|
-
function useSendActivityModal() {
|
|
6184
|
-
return useSendActivityModalStore();
|
|
6185
|
-
}
|
|
6298
|
+
);
|
|
6299
|
+
};
|
|
6186
6300
|
|
|
6187
|
-
// src/components/
|
|
6188
|
-
var
|
|
6189
|
-
|
|
6190
|
-
|
|
6191
|
-
|
|
6192
|
-
|
|
6301
|
+
// src/components/shared/SendModalBase/components/DeadlineStep.tsx
|
|
6302
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
6303
|
+
var DeadlineStep = ({
|
|
6304
|
+
startDate,
|
|
6305
|
+
startTime,
|
|
6306
|
+
finalDate,
|
|
6307
|
+
finalTime,
|
|
6308
|
+
onStartDateChange,
|
|
6309
|
+
onStartTimeChange,
|
|
6310
|
+
onFinalDateChange,
|
|
6311
|
+
onFinalTimeChange,
|
|
6312
|
+
errors,
|
|
6313
|
+
testIdPrefix,
|
|
6314
|
+
children
|
|
6315
|
+
}) => {
|
|
6316
|
+
return /* @__PURE__ */ (0, import_jsx_runtime28.jsxs)(
|
|
6317
|
+
"div",
|
|
6318
|
+
{
|
|
6319
|
+
className: "flex flex-col gap-4 sm:gap-6 pt-6",
|
|
6320
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-deadline-step` : void 0,
|
|
6321
|
+
children: [
|
|
6322
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsxs)("div", { className: "grid grid-cols-2 gap-2", children: [
|
|
6323
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6324
|
+
DateTimeInput_default,
|
|
6325
|
+
{
|
|
6326
|
+
label: "Iniciar em*",
|
|
6327
|
+
date: startDate,
|
|
6328
|
+
time: startTime,
|
|
6329
|
+
onDateChange: onStartDateChange,
|
|
6330
|
+
onTimeChange: onStartTimeChange,
|
|
6331
|
+
errorMessage: [errors.startDate, errors.startTime].filter(Boolean).join(" ") || void 0,
|
|
6332
|
+
defaultTime: "00:00",
|
|
6333
|
+
testId: testIdPrefix ? `${testIdPrefix}-start-datetime` : "start-datetime",
|
|
6334
|
+
className: "w-full"
|
|
6335
|
+
}
|
|
6336
|
+
),
|
|
6337
|
+
/* @__PURE__ */ (0, import_jsx_runtime28.jsx)(
|
|
6338
|
+
DateTimeInput_default,
|
|
6339
|
+
{
|
|
6340
|
+
label: "Finalizar at\xE9*",
|
|
6341
|
+
date: finalDate,
|
|
6342
|
+
time: finalTime,
|
|
6343
|
+
onDateChange: onFinalDateChange,
|
|
6344
|
+
onTimeChange: onFinalTimeChange,
|
|
6345
|
+
errorMessage: [errors.finalDate, errors.finalTime].filter(Boolean).join(" ") || void 0,
|
|
6346
|
+
defaultTime: "23:59",
|
|
6347
|
+
testId: testIdPrefix ? `${testIdPrefix}-final-datetime` : "final-datetime",
|
|
6348
|
+
className: "w-full"
|
|
6349
|
+
}
|
|
6350
|
+
)
|
|
6351
|
+
] }),
|
|
6352
|
+
children
|
|
6353
|
+
]
|
|
6354
|
+
}
|
|
6355
|
+
);
|
|
6356
|
+
};
|
|
6357
|
+
|
|
6358
|
+
// src/components/shared/SendModalBase/components/SendModalFooter.tsx
|
|
6359
|
+
var import_phosphor_react14 = require("phosphor-react");
|
|
6360
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
6361
|
+
var SendModalFooter = ({
|
|
6362
|
+
currentStep,
|
|
6363
|
+
maxSteps,
|
|
6364
|
+
isLoading,
|
|
6365
|
+
onCancel,
|
|
6366
|
+
onPreviousStep,
|
|
6367
|
+
onNextStep,
|
|
6368
|
+
onSubmit,
|
|
6369
|
+
entityName,
|
|
6370
|
+
testIdPrefix
|
|
6371
|
+
}) => {
|
|
6372
|
+
const isLastStep = currentStep >= maxSteps;
|
|
6373
|
+
const showPreviousButton = currentStep > 1;
|
|
6374
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
6375
|
+
"div",
|
|
6376
|
+
{
|
|
6377
|
+
className: "flex flex-col-reverse sm:flex-row items-center justify-between gap-3 w-full",
|
|
6378
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-footer` : void 0,
|
|
6379
|
+
children: [
|
|
6380
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6381
|
+
Button_default,
|
|
6382
|
+
{
|
|
6383
|
+
variant: "link",
|
|
6384
|
+
action: "primary",
|
|
6385
|
+
onClick: onCancel,
|
|
6386
|
+
className: "w-full sm:w-auto",
|
|
6387
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-cancel-button` : void 0,
|
|
6388
|
+
children: "Cancelar"
|
|
6389
|
+
}
|
|
6390
|
+
),
|
|
6391
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsxs)("div", { className: "flex flex-col-reverse sm:flex-row items-center gap-2 sm:gap-3 w-full sm:w-auto", children: [
|
|
6392
|
+
showPreviousButton && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6393
|
+
Button_default,
|
|
6394
|
+
{
|
|
6395
|
+
variant: "outline",
|
|
6396
|
+
action: "primary",
|
|
6397
|
+
onClick: onPreviousStep,
|
|
6398
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_phosphor_react14.CaretLeft, { size: 16 }),
|
|
6399
|
+
className: "w-full sm:w-auto",
|
|
6400
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-previous-button` : void 0,
|
|
6401
|
+
children: "Anterior"
|
|
6402
|
+
}
|
|
6403
|
+
),
|
|
6404
|
+
isLastStep ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6405
|
+
Button_default,
|
|
6406
|
+
{
|
|
6407
|
+
variant: "solid",
|
|
6408
|
+
action: "primary",
|
|
6409
|
+
onClick: onSubmit,
|
|
6410
|
+
disabled: isLoading,
|
|
6411
|
+
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_phosphor_react14.PaperPlaneTilt, { size: 16 }),
|
|
6412
|
+
className: "w-full sm:w-auto",
|
|
6413
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-submit-button` : void 0,
|
|
6414
|
+
children: isLoading ? "Enviando..." : `Enviar ${entityName}`
|
|
6415
|
+
}
|
|
6416
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(
|
|
6417
|
+
Button_default,
|
|
6418
|
+
{
|
|
6419
|
+
variant: "solid",
|
|
6420
|
+
action: "primary",
|
|
6421
|
+
onClick: onNextStep,
|
|
6422
|
+
iconRight: /* @__PURE__ */ (0, import_jsx_runtime29.jsx)(import_phosphor_react14.ArrowRight, { size: 16 }),
|
|
6423
|
+
className: "w-full sm:w-auto",
|
|
6424
|
+
"data-testid": testIdPrefix ? `${testIdPrefix}-next-button` : void 0,
|
|
6425
|
+
children: "Pr\xF3ximo"
|
|
6426
|
+
}
|
|
6427
|
+
)
|
|
6428
|
+
] })
|
|
6429
|
+
]
|
|
6430
|
+
}
|
|
6431
|
+
);
|
|
6432
|
+
};
|
|
6193
6433
|
|
|
6194
6434
|
// src/components/SendActivityModal/SendActivityModal.tsx
|
|
6195
|
-
var
|
|
6435
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
6196
6436
|
var STEPPER_STEPS = [
|
|
6197
6437
|
{ id: "activity", label: "Atividade", state: "pending" },
|
|
6198
6438
|
{ id: "recipient", label: "Destinat\xE1rio", state: "pending" },
|
|
6199
6439
|
{ id: "deadline", label: "Prazo", state: "pending" }
|
|
6200
6440
|
];
|
|
6441
|
+
var MAX_STEPS = 3;
|
|
6442
|
+
var ENTITY_NAME = "atividade";
|
|
6443
|
+
var ENTITY_NAME_WITH_ARTICLE = "a atividade";
|
|
6201
6444
|
var SendActivityModal = ({
|
|
6202
6445
|
isOpen,
|
|
6203
6446
|
onClose,
|
|
@@ -6216,17 +6459,17 @@ var SendActivityModal = ({
|
|
|
6216
6459
|
const storeCategories = useSendActivityModalStore(
|
|
6217
6460
|
(state) => state.categories
|
|
6218
6461
|
);
|
|
6219
|
-
const categoriesInitialized = (0,
|
|
6220
|
-
const prevInitialDataRef = (0,
|
|
6462
|
+
const categoriesInitialized = (0, import_react18.useRef)(false);
|
|
6463
|
+
const prevInitialDataRef = (0, import_react18.useRef)(
|
|
6221
6464
|
void 0
|
|
6222
6465
|
);
|
|
6223
|
-
(0,
|
|
6466
|
+
(0, import_react18.useEffect)(() => {
|
|
6224
6467
|
if (isOpen && initialCategories.length > 0 && !categoriesInitialized.current) {
|
|
6225
6468
|
setCategories(initialCategories);
|
|
6226
6469
|
categoriesInitialized.current = true;
|
|
6227
6470
|
}
|
|
6228
6471
|
}, [isOpen, initialCategories, setCategories]);
|
|
6229
|
-
(0,
|
|
6472
|
+
(0, import_react18.useEffect)(() => {
|
|
6230
6473
|
if (isOpen && initialData && prevInitialDataRef.current !== initialData) {
|
|
6231
6474
|
store.setFormData({
|
|
6232
6475
|
title: initialData.title ?? "",
|
|
@@ -6236,69 +6479,51 @@ var SendActivityModal = ({
|
|
|
6236
6479
|
prevInitialDataRef.current = initialData;
|
|
6237
6480
|
}
|
|
6238
6481
|
}, [isOpen, initialData, store]);
|
|
6239
|
-
(0,
|
|
6482
|
+
(0, import_react18.useEffect)(() => {
|
|
6240
6483
|
if (!isOpen) {
|
|
6241
6484
|
reset();
|
|
6242
6485
|
categoriesInitialized.current = false;
|
|
6243
6486
|
prevInitialDataRef.current = void 0;
|
|
6244
6487
|
}
|
|
6245
6488
|
}, [isOpen, reset]);
|
|
6246
|
-
const
|
|
6489
|
+
const {
|
|
6490
|
+
handleStartDateChange,
|
|
6491
|
+
handleStartTimeChange,
|
|
6492
|
+
handleFinalDateChange,
|
|
6493
|
+
handleFinalTimeChange
|
|
6494
|
+
} = useDateTimeHandlers({ setFormData: store.setFormData });
|
|
6495
|
+
const handleCategoriesChange = (0, import_react18.useCallback)(
|
|
6247
6496
|
(updatedCategories) => {
|
|
6248
6497
|
setCategories(updatedCategories);
|
|
6249
6498
|
onCategoriesChange?.(updatedCategories);
|
|
6250
6499
|
},
|
|
6251
6500
|
[setCategories, onCategoriesChange]
|
|
6252
6501
|
);
|
|
6253
|
-
const handleActivityTypeSelect = (0,
|
|
6502
|
+
const handleActivityTypeSelect = (0, import_react18.useCallback)(
|
|
6254
6503
|
(subtype) => {
|
|
6255
6504
|
store.setFormData({ subtype });
|
|
6256
6505
|
},
|
|
6257
6506
|
[store]
|
|
6258
6507
|
);
|
|
6259
|
-
const handleTitleChange = (0,
|
|
6508
|
+
const handleTitleChange = (0, import_react18.useCallback)(
|
|
6260
6509
|
(e) => {
|
|
6261
6510
|
store.setFormData({ title: e.target.value });
|
|
6262
6511
|
},
|
|
6263
6512
|
[store]
|
|
6264
6513
|
);
|
|
6265
|
-
const handleNotificationChange = (0,
|
|
6514
|
+
const handleNotificationChange = (0, import_react18.useCallback)(
|
|
6266
6515
|
(e) => {
|
|
6267
6516
|
store.setFormData({ notification: e.target.value });
|
|
6268
6517
|
},
|
|
6269
6518
|
[store]
|
|
6270
6519
|
);
|
|
6271
|
-
const
|
|
6272
|
-
(date) => {
|
|
6273
|
-
store.setFormData({ startDate: date });
|
|
6274
|
-
},
|
|
6275
|
-
[store]
|
|
6276
|
-
);
|
|
6277
|
-
const handleStartTimeChange = (0, import_react17.useCallback)(
|
|
6278
|
-
(time) => {
|
|
6279
|
-
store.setFormData({ startTime: time });
|
|
6280
|
-
},
|
|
6281
|
-
[store]
|
|
6282
|
-
);
|
|
6283
|
-
const handleFinalDateChange = (0, import_react17.useCallback)(
|
|
6284
|
-
(date) => {
|
|
6285
|
-
store.setFormData({ finalDate: date });
|
|
6286
|
-
},
|
|
6287
|
-
[store]
|
|
6288
|
-
);
|
|
6289
|
-
const handleFinalTimeChange = (0, import_react17.useCallback)(
|
|
6290
|
-
(time) => {
|
|
6291
|
-
store.setFormData({ finalTime: time });
|
|
6292
|
-
},
|
|
6293
|
-
[store]
|
|
6294
|
-
);
|
|
6295
|
-
const handleRetryChange = (0, import_react17.useCallback)(
|
|
6520
|
+
const handleRetryChange = (0, import_react18.useCallback)(
|
|
6296
6521
|
(value) => {
|
|
6297
6522
|
store.setFormData({ canRetry: value === "yes" });
|
|
6298
6523
|
},
|
|
6299
6524
|
[store]
|
|
6300
6525
|
);
|
|
6301
|
-
const handleSubmit = (0,
|
|
6526
|
+
const handleSubmit = (0, import_react18.useCallback)(async () => {
|
|
6302
6527
|
const isValid = store.validateAllSteps();
|
|
6303
6528
|
if (!isValid) return;
|
|
6304
6529
|
try {
|
|
@@ -6312,29 +6537,13 @@ var SendActivityModal = ({
|
|
|
6312
6537
|
}
|
|
6313
6538
|
}
|
|
6314
6539
|
}, [store, onSubmit, onError]);
|
|
6315
|
-
const handleCancel = (0,
|
|
6540
|
+
const handleCancel = (0, import_react18.useCallback)(() => {
|
|
6316
6541
|
onClose();
|
|
6317
6542
|
}, [onClose]);
|
|
6318
|
-
const
|
|
6319
|
-
|
|
6320
|
-
|
|
6321
|
-
|
|
6322
|
-
{
|
|
6323
|
-
as: "p",
|
|
6324
|
-
size: "sm",
|
|
6325
|
-
color: "text-error-600",
|
|
6326
|
-
className: "flex items-center gap-1 mt-1",
|
|
6327
|
-
children: [
|
|
6328
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react18.WarningCircleIcon, { size: 16 }),
|
|
6329
|
-
error
|
|
6330
|
-
]
|
|
6331
|
-
}
|
|
6332
|
-
);
|
|
6333
|
-
};
|
|
6334
|
-
const renderActivityStep = () => /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col gap-6", children: [
|
|
6335
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { children: [
|
|
6336
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", weight: "medium", color: "text-text-700", className: "mb-3", children: "Tipo de atividade*" }),
|
|
6337
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: "flex flex-wrap gap-2", children: ACTIVITY_TYPE_OPTIONS.map((type) => /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6543
|
+
const renderActivityStep = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex flex-col gap-6", children: [
|
|
6544
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
|
|
6545
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text_default, { size: "sm", weight: "medium", color: "text-text-700", className: "mb-3", children: "Tipo de atividade*" }),
|
|
6546
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { className: "flex flex-wrap gap-2", children: ACTIVITY_TYPE_OPTIONS.map((type) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6338
6547
|
Chips_default,
|
|
6339
6548
|
{
|
|
6340
6549
|
selected: store.formData.subtype === type.value,
|
|
@@ -6343,9 +6552,9 @@ var SendActivityModal = ({
|
|
|
6343
6552
|
},
|
|
6344
6553
|
type.value
|
|
6345
6554
|
)) }),
|
|
6346
|
-
|
|
6555
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(SendModalError, { error: store.errors.subtype })
|
|
6347
6556
|
] }),
|
|
6348
|
-
/* @__PURE__ */ (0,
|
|
6557
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6349
6558
|
Input_default,
|
|
6350
6559
|
{
|
|
6351
6560
|
label: "T\xEDtulo",
|
|
@@ -6357,7 +6566,7 @@ var SendActivityModal = ({
|
|
|
6357
6566
|
errorMessage: store.errors.title
|
|
6358
6567
|
}
|
|
6359
6568
|
),
|
|
6360
|
-
/* @__PURE__ */ (0,
|
|
6569
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6361
6570
|
TextArea_default,
|
|
6362
6571
|
{
|
|
6363
6572
|
label: "Mensagem da notifica\xE7\xE3o",
|
|
@@ -6367,164 +6576,99 @@ var SendActivityModal = ({
|
|
|
6367
6576
|
}
|
|
6368
6577
|
)
|
|
6369
6578
|
] });
|
|
6370
|
-
const
|
|
6371
|
-
|
|
6372
|
-
|
|
6373
|
-
|
|
6374
|
-
|
|
6375
|
-
"
|
|
6376
|
-
|
|
6377
|
-
|
|
6378
|
-
|
|
6379
|
-
|
|
6380
|
-
|
|
6381
|
-
|
|
6382
|
-
|
|
6383
|
-
|
|
6384
|
-
|
|
6385
|
-
|
|
6386
|
-
|
|
6387
|
-
|
|
6388
|
-
|
|
6389
|
-
|
|
6390
|
-
|
|
6391
|
-
|
|
6392
|
-
|
|
6393
|
-
|
|
6394
|
-
|
|
6395
|
-
|
|
6396
|
-
|
|
6397
|
-
|
|
6398
|
-
|
|
6399
|
-
|
|
6400
|
-
|
|
6401
|
-
|
|
6402
|
-
|
|
6403
|
-
|
|
6404
|
-
|
|
6405
|
-
|
|
6406
|
-
|
|
6407
|
-
|
|
6408
|
-
|
|
6409
|
-
|
|
6410
|
-
),
|
|
6411
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6412
|
-
DateTimeInput_default,
|
|
6413
|
-
{
|
|
6414
|
-
label: "Finalizar at\xE9*",
|
|
6415
|
-
date: store.formData.finalDate || "",
|
|
6416
|
-
time: store.formData.finalTime || "",
|
|
6417
|
-
onDateChange: handleFinalDateChange,
|
|
6418
|
-
onTimeChange: handleFinalTimeChange,
|
|
6419
|
-
errorMessage: store.errors.finalDate,
|
|
6420
|
-
defaultTime: "23:59",
|
|
6421
|
-
testId: "final-datetime",
|
|
6422
|
-
className: "w-full"
|
|
6423
|
-
}
|
|
6424
|
-
)
|
|
6425
|
-
] }),
|
|
6426
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { children: [
|
|
6427
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(Text_default, { size: "sm", weight: "medium", color: "text-text-700", className: "mb-3", children: "Permitir refazer?" }),
|
|
6428
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
6429
|
-
RadioGroup,
|
|
6430
|
-
{
|
|
6431
|
-
value: store.formData.canRetry ? "yes" : "no",
|
|
6432
|
-
onValueChange: handleRetryChange,
|
|
6433
|
-
className: "flex flex-row gap-6",
|
|
6434
|
-
children: [
|
|
6435
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
6436
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioGroupItem, { value: "yes", id: "radio-item-yes" }),
|
|
6437
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6438
|
-
Text_default,
|
|
6439
|
-
{
|
|
6440
|
-
as: "label",
|
|
6441
|
-
size: "sm",
|
|
6442
|
-
color: "text-text-700",
|
|
6443
|
-
className: "cursor-pointer",
|
|
6444
|
-
htmlFor: "radio-item-yes",
|
|
6445
|
-
children: "Sim"
|
|
6446
|
-
}
|
|
6447
|
-
)
|
|
6448
|
-
] }),
|
|
6449
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
6450
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(RadioGroupItem, { value: "no", id: "radio-item-no" }),
|
|
6451
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6452
|
-
Text_default,
|
|
6453
|
-
{
|
|
6454
|
-
as: "label",
|
|
6455
|
-
size: "sm",
|
|
6456
|
-
color: "text-text-700",
|
|
6457
|
-
className: "cursor-pointer",
|
|
6458
|
-
htmlFor: "radio-item-no",
|
|
6459
|
-
children: "N\xE3o"
|
|
6460
|
-
}
|
|
6461
|
-
)
|
|
6462
|
-
] })
|
|
6463
|
-
]
|
|
6464
|
-
}
|
|
6465
|
-
)
|
|
6466
|
-
] })
|
|
6579
|
+
const renderRetryOption = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { children: [
|
|
6580
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(Text_default, { size: "sm", weight: "medium", color: "text-text-700", className: "mb-3", children: "Permitir refazer?" }),
|
|
6581
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
6582
|
+
RadioGroup,
|
|
6583
|
+
{
|
|
6584
|
+
value: store.formData.canRetry ? "yes" : "no",
|
|
6585
|
+
onValueChange: handleRetryChange,
|
|
6586
|
+
className: "flex flex-row gap-6",
|
|
6587
|
+
children: [
|
|
6588
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
6589
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupItem, { value: "yes", id: "radio-item-yes" }),
|
|
6590
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6591
|
+
Text_default,
|
|
6592
|
+
{
|
|
6593
|
+
as: "label",
|
|
6594
|
+
size: "sm",
|
|
6595
|
+
color: "text-text-700",
|
|
6596
|
+
className: "cursor-pointer",
|
|
6597
|
+
htmlFor: "radio-item-yes",
|
|
6598
|
+
children: "Sim"
|
|
6599
|
+
}
|
|
6600
|
+
)
|
|
6601
|
+
] }),
|
|
6602
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "flex items-center gap-2", children: [
|
|
6603
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(RadioGroupItem, { value: "no", id: "radio-item-no" }),
|
|
6604
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6605
|
+
Text_default,
|
|
6606
|
+
{
|
|
6607
|
+
as: "label",
|
|
6608
|
+
size: "sm",
|
|
6609
|
+
color: "text-text-700",
|
|
6610
|
+
className: "cursor-pointer",
|
|
6611
|
+
htmlFor: "radio-item-no",
|
|
6612
|
+
children: "N\xE3o"
|
|
6613
|
+
}
|
|
6614
|
+
)
|
|
6615
|
+
] })
|
|
6616
|
+
]
|
|
6617
|
+
}
|
|
6618
|
+
)
|
|
6467
6619
|
] });
|
|
6468
6620
|
const renderStepContent = () => {
|
|
6621
|
+
const categoriesToRender = storeCategories.length > 0 ? storeCategories : initialCategories;
|
|
6469
6622
|
switch (store.currentStep) {
|
|
6470
6623
|
case 1:
|
|
6471
6624
|
return renderActivityStep();
|
|
6472
6625
|
case 2:
|
|
6473
|
-
return
|
|
6626
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6627
|
+
RecipientStep,
|
|
6628
|
+
{
|
|
6629
|
+
categories: categoriesToRender,
|
|
6630
|
+
onCategoriesChange: handleCategoriesChange,
|
|
6631
|
+
entityNameWithArticle: ENTITY_NAME_WITH_ARTICLE,
|
|
6632
|
+
studentsError: store.errors.students
|
|
6633
|
+
}
|
|
6634
|
+
);
|
|
6474
6635
|
case 3:
|
|
6475
|
-
return
|
|
6636
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6637
|
+
DeadlineStep,
|
|
6638
|
+
{
|
|
6639
|
+
startDate: store.formData.startDate || "",
|
|
6640
|
+
startTime: store.formData.startTime || "",
|
|
6641
|
+
finalDate: store.formData.finalDate || "",
|
|
6642
|
+
finalTime: store.formData.finalTime || "",
|
|
6643
|
+
onStartDateChange: handleStartDateChange,
|
|
6644
|
+
onStartTimeChange: handleStartTimeChange,
|
|
6645
|
+
onFinalDateChange: handleFinalDateChange,
|
|
6646
|
+
onFinalTimeChange: handleFinalTimeChange,
|
|
6647
|
+
errors: {
|
|
6648
|
+
startDate: store.errors.startDate,
|
|
6649
|
+
finalDate: store.errors.finalDate
|
|
6650
|
+
},
|
|
6651
|
+
children: renderRetryOption()
|
|
6652
|
+
}
|
|
6653
|
+
);
|
|
6476
6654
|
default:
|
|
6477
6655
|
return null;
|
|
6478
6656
|
}
|
|
6479
6657
|
};
|
|
6480
|
-
const renderFooter = () => /* @__PURE__ */ (0,
|
|
6481
|
-
|
|
6482
|
-
|
|
6483
|
-
|
|
6484
|
-
|
|
6485
|
-
|
|
6486
|
-
|
|
6487
|
-
|
|
6488
|
-
|
|
6489
|
-
|
|
6490
|
-
|
|
6491
|
-
|
|
6492
|
-
|
|
6493
|
-
|
|
6494
|
-
{
|
|
6495
|
-
variant: "outline",
|
|
6496
|
-
action: "primary",
|
|
6497
|
-
onClick: store.previousStep,
|
|
6498
|
-
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react18.CaretLeftIcon, { size: 16 }),
|
|
6499
|
-
className: "w-full sm:w-auto",
|
|
6500
|
-
children: "Anterior"
|
|
6501
|
-
}
|
|
6502
|
-
),
|
|
6503
|
-
store.currentStep < 3 ? /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6504
|
-
Button_default,
|
|
6505
|
-
{
|
|
6506
|
-
variant: "solid",
|
|
6507
|
-
action: "primary",
|
|
6508
|
-
onClick: () => store.nextStep(),
|
|
6509
|
-
iconRight: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react18.ArrowRightIcon, { size: 16 }),
|
|
6510
|
-
className: "w-full sm:w-auto",
|
|
6511
|
-
children: "Pr\xF3ximo"
|
|
6512
|
-
}
|
|
6513
|
-
) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
6514
|
-
Button_default,
|
|
6515
|
-
{
|
|
6516
|
-
variant: "solid",
|
|
6517
|
-
action: "primary",
|
|
6518
|
-
onClick: handleSubmit,
|
|
6519
|
-
disabled: isLoading,
|
|
6520
|
-
iconLeft: /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(import_react18.PaperPlaneTiltIcon, { size: 16 }),
|
|
6521
|
-
className: "w-full sm:w-auto",
|
|
6522
|
-
children: isLoading ? "Enviando..." : "Enviar atividade"
|
|
6523
|
-
}
|
|
6524
|
-
)
|
|
6525
|
-
] })
|
|
6526
|
-
] });
|
|
6527
|
-
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
6658
|
+
const renderFooter = () => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6659
|
+
SendModalFooter,
|
|
6660
|
+
{
|
|
6661
|
+
currentStep: store.currentStep,
|
|
6662
|
+
maxSteps: MAX_STEPS,
|
|
6663
|
+
isLoading,
|
|
6664
|
+
onCancel: handleCancel,
|
|
6665
|
+
onPreviousStep: store.previousStep,
|
|
6666
|
+
onNextStep: () => store.nextStep(),
|
|
6667
|
+
onSubmit: handleSubmit,
|
|
6668
|
+
entityName: ENTITY_NAME
|
|
6669
|
+
}
|
|
6670
|
+
);
|
|
6671
|
+
return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
|
|
6528
6672
|
Modal_default,
|
|
6529
6673
|
{
|
|
6530
6674
|
isOpen,
|
|
@@ -6534,7 +6678,7 @@ var SendActivityModal = ({
|
|
|
6534
6678
|
footer: renderFooter(),
|
|
6535
6679
|
contentClassName: "flex flex-col gap-8 sm:gap-10 max-h-[70vh] overflow-y-auto",
|
|
6536
6680
|
children: [
|
|
6537
|
-
/* @__PURE__ */ (0,
|
|
6681
|
+
/* @__PURE__ */ (0, import_jsx_runtime30.jsx)(
|
|
6538
6682
|
Stepper_default,
|
|
6539
6683
|
{
|
|
6540
6684
|
steps: STEPPER_STEPS,
|