analytica-frontend-lib 1.0.72 → 1.0.73

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.
@@ -32,6 +32,7 @@ __export(Card_exports, {
32
32
  CardSimulado: () => CardSimulado,
33
33
  CardStatus: () => CardStatus,
34
34
  CardSupport: () => CardSupport,
35
+ CardTest: () => CardTest,
35
36
  CardTopic: () => CardTopic
36
37
  });
37
38
  module.exports = __toCommonJS(Card_exports);
@@ -1593,6 +1594,125 @@ var CardSimulado = (0, import_react.forwardRef)(
1593
1594
  );
1594
1595
  }
1595
1596
  );
1597
+ var CardTest = (0, import_react.forwardRef)(
1598
+ ({
1599
+ title,
1600
+ duration,
1601
+ questionsCount,
1602
+ additionalInfo,
1603
+ selected = false,
1604
+ onSelect,
1605
+ className = "",
1606
+ ...props
1607
+ }, ref) => {
1608
+ const handleClick = () => {
1609
+ if (onSelect) {
1610
+ onSelect(!selected);
1611
+ }
1612
+ };
1613
+ const handleKeyDown = (event) => {
1614
+ if ((event.key === "Enter" || event.key === " ") && onSelect) {
1615
+ event.preventDefault();
1616
+ onSelect(!selected);
1617
+ }
1618
+ };
1619
+ const isSelectable = !!onSelect;
1620
+ const getQuestionsText = (count) => {
1621
+ const singular = count === 1 ? "quest\xE3o" : "quest\xF5es";
1622
+ return `${count} ${singular}`;
1623
+ };
1624
+ const displayInfo = questionsCount ? getQuestionsText(questionsCount) : additionalInfo || "";
1625
+ const baseClasses = "flex flex-row items-center p-4 gap-2 w-full max-w-full bg-background shadow-soft-shadow-1 rounded-xl isolate border-0 text-left";
1626
+ const interactiveClasses = isSelectable ? "cursor-pointer focus:outline-none focus:ring-2 focus:ring-primary-950 focus:ring-offset-2" : "";
1627
+ const selectedClasses = selected ? "ring-2 ring-primary-950 ring-offset-2" : "";
1628
+ if (isSelectable) {
1629
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1630
+ "button",
1631
+ {
1632
+ ref,
1633
+ type: "button",
1634
+ className: `${baseClasses} ${interactiveClasses} ${selectedClasses} ${className}`.trim(),
1635
+ onClick: handleClick,
1636
+ onKeyDown: handleKeyDown,
1637
+ "aria-pressed": selected,
1638
+ ...props,
1639
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
1640
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1641
+ Text_default,
1642
+ {
1643
+ size: "md",
1644
+ weight: "bold",
1645
+ className: "text-text-950 tracking-[0.2px] leading-[19px] truncate",
1646
+ children: title
1647
+ }
1648
+ ),
1649
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
1650
+ duration && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
1651
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_phosphor_react2.Clock, { size: 16, className: "text-text-700" }),
1652
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1653
+ Text_default,
1654
+ {
1655
+ size: "sm",
1656
+ className: "text-text-700 leading-[21px] whitespace-nowrap",
1657
+ children: duration
1658
+ }
1659
+ )
1660
+ ] }),
1661
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1662
+ Text_default,
1663
+ {
1664
+ size: "sm",
1665
+ className: "text-text-700 leading-[21px] flex-grow truncate",
1666
+ children: displayInfo
1667
+ }
1668
+ )
1669
+ ] })
1670
+ ] })
1671
+ }
1672
+ );
1673
+ }
1674
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1675
+ "div",
1676
+ {
1677
+ ref,
1678
+ className: `${baseClasses} ${className}`.trim(),
1679
+ ...props,
1680
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-col justify-between gap-[27px] flex-grow min-h-[67px] w-full min-w-0", children: [
1681
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1682
+ Text_default,
1683
+ {
1684
+ size: "md",
1685
+ weight: "bold",
1686
+ className: "text-text-950 tracking-[0.2px] leading-[19px] truncate",
1687
+ children: title
1688
+ }
1689
+ ),
1690
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-row justify-start items-end gap-4 w-full", children: [
1691
+ duration && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "flex flex-row items-center gap-1 flex-shrink-0", children: [
1692
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_phosphor_react2.Clock, { size: 16, className: "text-text-700" }),
1693
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1694
+ Text_default,
1695
+ {
1696
+ size: "sm",
1697
+ className: "text-text-700 leading-[21px] whitespace-nowrap",
1698
+ children: duration
1699
+ }
1700
+ )
1701
+ ] }),
1702
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1703
+ Text_default,
1704
+ {
1705
+ size: "sm",
1706
+ className: "text-text-700 leading-[21px] flex-grow truncate min-w-0",
1707
+ children: displayInfo
1708
+ }
1709
+ )
1710
+ ] })
1711
+ ] })
1712
+ }
1713
+ );
1714
+ }
1715
+ );
1596
1716
  // Annotate the CommonJS export names for ESM import in node:
1597
1717
  0 && (module.exports = {
1598
1718
  CardActivitiesResults,
@@ -1607,6 +1727,7 @@ var CardSimulado = (0, import_react.forwardRef)(
1607
1727
  CardSimulado,
1608
1728
  CardStatus,
1609
1729
  CardSupport,
1730
+ CardTest,
1610
1731
  CardTopic
1611
1732
  });
1612
1733
  //# sourceMappingURL=index.js.map