analytica-frontend-lib 1.0.43 → 1.0.45
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/Calendar/index.js +12 -12
- package/dist/Calendar/index.js.map +1 -1
- package/dist/Calendar/index.mjs +18 -13
- package/dist/Calendar/index.mjs.map +1 -1
- package/dist/DropdownMenu/index.d.mts +1 -1
- package/dist/DropdownMenu/index.d.ts +1 -1
- package/dist/DropdownMenu/index.js +16 -12
- package/dist/DropdownMenu/index.js.map +1 -1
- package/dist/DropdownMenu/index.mjs +16 -12
- package/dist/DropdownMenu/index.mjs.map +1 -1
- package/dist/Input/index.js +5 -2
- package/dist/Input/index.js.map +1 -1
- package/dist/Input/index.mjs +5 -2
- package/dist/Input/index.mjs.map +1 -1
- package/dist/ProgressBar/index.d.mts +36 -1
- package/dist/ProgressBar/index.d.ts +36 -1
- package/dist/ProgressBar/index.js +371 -75
- package/dist/ProgressBar/index.js.map +1 -1
- package/dist/ProgressBar/index.mjs +372 -76
- package/dist/ProgressBar/index.mjs.map +1 -1
- package/dist/Select/index.js +15 -8
- package/dist/Select/index.js.map +1 -1
- package/dist/Select/index.mjs +15 -8
- package/dist/Select/index.mjs.map +1 -1
- package/dist/index.css +138 -5
- package/dist/index.css.map +1 -1
- package/dist/index.d.mts +66 -2
- package/dist/index.d.ts +66 -2
- package/dist/index.js +600 -192
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +572 -160
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +138 -5
- package/dist/styles.css.map +1 -1
- package/package.json +2 -1
package/dist/index.mjs
CHANGED
|
@@ -1254,7 +1254,7 @@ var STATE_CLASSES4 = {
|
|
|
1254
1254
|
default: "border-border-300 placeholder:text-text-600 hover:border-border-400",
|
|
1255
1255
|
error: "border-2 border-indicator-error placeholder:text-text-600",
|
|
1256
1256
|
disabled: "border-border-300 placeholder:text-text-600 cursor-not-allowed opacity-40",
|
|
1257
|
-
"read-only": "border-
|
|
1257
|
+
"read-only": "border-transparent !text-text-600 cursor-default focus:outline-none bg-transparent"
|
|
1258
1258
|
};
|
|
1259
1259
|
var VARIANT_CLASSES = {
|
|
1260
1260
|
outlined: "border rounded-lg",
|
|
@@ -1293,6 +1293,9 @@ var getCombinedClasses = (actualState, variant) => {
|
|
|
1293
1293
|
if (actualState === "error" && variant === "underlined") {
|
|
1294
1294
|
return "border-0 border-b-2 border-indicator-error rounded-none bg-transparent focus:outline-none focus:border-primary-950 placeholder:text-text-600";
|
|
1295
1295
|
}
|
|
1296
|
+
if (actualState === "read-only" && variant === "underlined") {
|
|
1297
|
+
return "border-0 border-b-0 rounded-none bg-transparent focus:outline-none !text-text-900 cursor-default";
|
|
1298
|
+
}
|
|
1296
1299
|
return `${stateClasses} ${variantClasses}`;
|
|
1297
1300
|
};
|
|
1298
1301
|
var Input = forwardRef8(
|
|
@@ -1323,7 +1326,7 @@ var Input = forwardRef8(
|
|
|
1323
1326
|
[actualState, variant]
|
|
1324
1327
|
);
|
|
1325
1328
|
const iconSize = getIconSize(size);
|
|
1326
|
-
const baseClasses =
|
|
1329
|
+
const baseClasses = `bg-background w-full py-2 ${actualState === "read-only" ? "px-0" : "px-3"} font-normal text-text-900 focus:outline-primary-950`;
|
|
1327
1330
|
const generatedId = useId4();
|
|
1328
1331
|
const inputId = id ?? `input-${generatedId}`;
|
|
1329
1332
|
const togglePasswordVisibility = () => setShowPassword(!showPassword);
|
|
@@ -1434,7 +1437,7 @@ var Chips = ({
|
|
|
1434
1437
|
var Chips_default = Chips;
|
|
1435
1438
|
|
|
1436
1439
|
// src/components/ProgressBar/ProgressBar.tsx
|
|
1437
|
-
import { jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1440
|
+
import { Fragment as Fragment2, jsx as jsx18, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1438
1441
|
var SIZE_CLASSES7 = {
|
|
1439
1442
|
small: {
|
|
1440
1443
|
container: "h-1",
|
|
@@ -1475,101 +1478,397 @@ var VARIANT_CLASSES2 = {
|
|
|
1475
1478
|
// Green for performance (#84D3A2)
|
|
1476
1479
|
}
|
|
1477
1480
|
};
|
|
1478
|
-
var
|
|
1479
|
-
value,
|
|
1480
|
-
max = 100,
|
|
1481
|
-
size = "medium",
|
|
1482
|
-
variant = "blue",
|
|
1483
|
-
label,
|
|
1484
|
-
showPercentage = false,
|
|
1485
|
-
className = "",
|
|
1486
|
-
labelClassName = "",
|
|
1487
|
-
percentageClassName = ""
|
|
1488
|
-
}) => {
|
|
1481
|
+
var calculateProgressValues = (value, max) => {
|
|
1489
1482
|
const safeValue = isNaN(value) ? 0 : value;
|
|
1490
1483
|
const clampedValue = Math.max(0, Math.min(safeValue, max));
|
|
1491
1484
|
const percentage = max === 0 ? 0 : clampedValue / max * 100;
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1485
|
+
return { clampedValue, percentage };
|
|
1486
|
+
};
|
|
1487
|
+
var shouldShowHeader = (label, showPercentage, showHitCount) => {
|
|
1488
|
+
return !!(label || showPercentage || showHitCount);
|
|
1489
|
+
};
|
|
1490
|
+
var getDisplayPriority = (showHitCount, showPercentage, label, clampedValue, max, percentage) => {
|
|
1491
|
+
if (showHitCount) {
|
|
1492
|
+
return {
|
|
1493
|
+
type: "hitCount",
|
|
1494
|
+
content: `${Math.round(clampedValue)} de ${max}`,
|
|
1495
|
+
hasMetrics: true
|
|
1496
|
+
};
|
|
1497
|
+
}
|
|
1498
|
+
if (showPercentage) {
|
|
1499
|
+
return {
|
|
1500
|
+
type: "percentage",
|
|
1501
|
+
content: `${Math.round(percentage)}%`,
|
|
1502
|
+
hasMetrics: true
|
|
1503
|
+
};
|
|
1504
|
+
}
|
|
1505
|
+
return {
|
|
1506
|
+
type: "label",
|
|
1507
|
+
content: label,
|
|
1508
|
+
hasMetrics: false
|
|
1509
|
+
};
|
|
1510
|
+
};
|
|
1511
|
+
var getCompactLayoutConfig = ({
|
|
1512
|
+
showPercentage,
|
|
1513
|
+
showHitCount,
|
|
1514
|
+
percentage,
|
|
1515
|
+
clampedValue,
|
|
1516
|
+
max,
|
|
1517
|
+
label,
|
|
1518
|
+
percentageClassName,
|
|
1519
|
+
labelClassName
|
|
1520
|
+
}) => {
|
|
1521
|
+
const displayPriority = getDisplayPriority(
|
|
1522
|
+
showHitCount,
|
|
1523
|
+
showPercentage,
|
|
1524
|
+
label,
|
|
1525
|
+
clampedValue,
|
|
1526
|
+
max,
|
|
1527
|
+
percentage
|
|
1528
|
+
);
|
|
1529
|
+
return {
|
|
1530
|
+
color: displayPriority.hasMetrics ? "text-primary-600" : "text-primary-700",
|
|
1531
|
+
className: displayPriority.hasMetrics ? percentageClassName : labelClassName,
|
|
1532
|
+
content: displayPriority.content
|
|
1533
|
+
};
|
|
1534
|
+
};
|
|
1535
|
+
var getDefaultLayoutDisplayConfig = (size, label, showPercentage) => ({
|
|
1536
|
+
showHeader: size === "small" && !!(label || showPercentage),
|
|
1537
|
+
showPercentage: size === "medium" && showPercentage,
|
|
1538
|
+
showLabel: size === "medium" && !!label && !showPercentage
|
|
1539
|
+
// Only show label when percentage is not shown
|
|
1540
|
+
});
|
|
1541
|
+
var renderStackedHitCountDisplay = (showHitCount, showPercentage, clampedValue, max, percentage, percentageClassName) => {
|
|
1542
|
+
if (!showHitCount && !showPercentage) return null;
|
|
1543
|
+
const displayPriority = getDisplayPriority(
|
|
1544
|
+
showHitCount,
|
|
1545
|
+
showPercentage,
|
|
1546
|
+
null,
|
|
1547
|
+
// label is not relevant for stacked layout metrics display
|
|
1548
|
+
clampedValue,
|
|
1549
|
+
max,
|
|
1550
|
+
percentage
|
|
1551
|
+
);
|
|
1552
|
+
return /* @__PURE__ */ jsx18(
|
|
1495
1553
|
"div",
|
|
1496
1554
|
{
|
|
1497
|
-
className: `
|
|
1498
|
-
children: [
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
|
|
1527
|
-
|
|
1528
|
-
|
|
1529
|
-
|
|
1530
|
-
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
|
|
1534
|
-
|
|
1535
|
-
|
|
1536
|
-
|
|
1537
|
-
|
|
1538
|
-
|
|
1539
|
-
|
|
1540
|
-
|
|
1541
|
-
|
|
1542
|
-
|
|
1543
|
-
|
|
1544
|
-
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
|
|
1555
|
+
className: `text-xs font-medium leading-[14px] text-right ${percentageClassName}`,
|
|
1556
|
+
children: displayPriority.type === "hitCount" ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
1557
|
+
/* @__PURE__ */ jsx18("span", { className: "text-success-200", children: Math.round(clampedValue) }),
|
|
1558
|
+
/* @__PURE__ */ jsxs13("span", { className: "text-text-600", children: [
|
|
1559
|
+
" de ",
|
|
1560
|
+
max
|
|
1561
|
+
] })
|
|
1562
|
+
] }) : /* @__PURE__ */ jsxs13(Text_default, { size: "xs", weight: "medium", className: "text-success-200", children: [
|
|
1563
|
+
Math.round(percentage),
|
|
1564
|
+
"%"
|
|
1565
|
+
] })
|
|
1566
|
+
}
|
|
1567
|
+
);
|
|
1568
|
+
};
|
|
1569
|
+
var ProgressBarBase = ({
|
|
1570
|
+
clampedValue,
|
|
1571
|
+
max,
|
|
1572
|
+
percentage,
|
|
1573
|
+
label,
|
|
1574
|
+
variantClasses,
|
|
1575
|
+
containerClassName,
|
|
1576
|
+
fillClassName
|
|
1577
|
+
}) => /* @__PURE__ */ jsxs13(
|
|
1578
|
+
"div",
|
|
1579
|
+
{
|
|
1580
|
+
className: `${containerClassName} ${variantClasses.background} overflow-hidden relative`,
|
|
1581
|
+
children: [
|
|
1582
|
+
/* @__PURE__ */ jsx18(
|
|
1583
|
+
"progress",
|
|
1584
|
+
{
|
|
1585
|
+
value: clampedValue,
|
|
1586
|
+
max,
|
|
1587
|
+
"aria-label": typeof label === "string" ? `${label}: ${Math.round(percentage)}% complete` : `Progress: ${Math.round(percentage)}% of ${max}`,
|
|
1588
|
+
className: "absolute inset-0 w-full h-full opacity-0"
|
|
1589
|
+
}
|
|
1590
|
+
),
|
|
1591
|
+
/* @__PURE__ */ jsx18(
|
|
1592
|
+
"div",
|
|
1593
|
+
{
|
|
1594
|
+
className: `${fillClassName} ${variantClasses.fill} transition-all duration-300 ease-out`,
|
|
1595
|
+
style: { width: `${percentage}%` }
|
|
1596
|
+
}
|
|
1597
|
+
)
|
|
1598
|
+
]
|
|
1599
|
+
}
|
|
1600
|
+
);
|
|
1601
|
+
var StackedLayout = ({
|
|
1602
|
+
className,
|
|
1603
|
+
label,
|
|
1604
|
+
showPercentage,
|
|
1605
|
+
showHitCount,
|
|
1606
|
+
labelClassName,
|
|
1607
|
+
percentageClassName,
|
|
1608
|
+
clampedValue,
|
|
1609
|
+
max,
|
|
1610
|
+
percentage,
|
|
1611
|
+
variantClasses,
|
|
1612
|
+
dimensions
|
|
1613
|
+
}) => /* @__PURE__ */ jsxs13(
|
|
1614
|
+
"div",
|
|
1615
|
+
{
|
|
1616
|
+
className: `flex flex-col items-start gap-2 ${dimensions.width} ${dimensions.height} ${className}`,
|
|
1617
|
+
children: [
|
|
1618
|
+
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row justify-between items-center w-full h-[19px]", children: [
|
|
1619
|
+
label && /* @__PURE__ */ jsx18(
|
|
1548
1620
|
Text_default,
|
|
1549
1621
|
{
|
|
1550
|
-
|
|
1622
|
+
as: "div",
|
|
1623
|
+
size: "md",
|
|
1551
1624
|
weight: "medium",
|
|
1552
|
-
className: `text-text-
|
|
1553
|
-
children:
|
|
1554
|
-
Math.round(percentage),
|
|
1555
|
-
"%"
|
|
1556
|
-
]
|
|
1625
|
+
className: `text-text-600 leading-[19px] ${labelClassName}`,
|
|
1626
|
+
children: label
|
|
1557
1627
|
}
|
|
1558
1628
|
),
|
|
1559
|
-
|
|
1629
|
+
renderStackedHitCountDisplay(
|
|
1630
|
+
showHitCount,
|
|
1631
|
+
showPercentage,
|
|
1632
|
+
clampedValue,
|
|
1633
|
+
max,
|
|
1634
|
+
percentage,
|
|
1635
|
+
percentageClassName
|
|
1636
|
+
)
|
|
1637
|
+
] }),
|
|
1638
|
+
/* @__PURE__ */ jsx18(
|
|
1639
|
+
ProgressBarBase,
|
|
1640
|
+
{
|
|
1641
|
+
clampedValue,
|
|
1642
|
+
max,
|
|
1643
|
+
percentage,
|
|
1644
|
+
label,
|
|
1645
|
+
variantClasses,
|
|
1646
|
+
containerClassName: "w-full h-2 rounded-lg",
|
|
1647
|
+
fillClassName: "h-2 rounded-lg shadow-hard-shadow-3"
|
|
1648
|
+
}
|
|
1649
|
+
)
|
|
1650
|
+
]
|
|
1651
|
+
}
|
|
1652
|
+
);
|
|
1653
|
+
var CompactLayout = ({
|
|
1654
|
+
className,
|
|
1655
|
+
label,
|
|
1656
|
+
showPercentage,
|
|
1657
|
+
showHitCount,
|
|
1658
|
+
labelClassName,
|
|
1659
|
+
percentageClassName,
|
|
1660
|
+
clampedValue,
|
|
1661
|
+
max,
|
|
1662
|
+
percentage,
|
|
1663
|
+
variantClasses,
|
|
1664
|
+
dimensions
|
|
1665
|
+
}) => {
|
|
1666
|
+
const {
|
|
1667
|
+
color,
|
|
1668
|
+
className: compactClassName,
|
|
1669
|
+
content
|
|
1670
|
+
} = getCompactLayoutConfig({
|
|
1671
|
+
showPercentage,
|
|
1672
|
+
showHitCount,
|
|
1673
|
+
percentage,
|
|
1674
|
+
clampedValue,
|
|
1675
|
+
max,
|
|
1676
|
+
label,
|
|
1677
|
+
percentageClassName,
|
|
1678
|
+
labelClassName
|
|
1679
|
+
});
|
|
1680
|
+
return /* @__PURE__ */ jsxs13(
|
|
1681
|
+
"div",
|
|
1682
|
+
{
|
|
1683
|
+
className: `flex flex-col items-start gap-1 ${dimensions.width} ${dimensions.height} ${className}`,
|
|
1684
|
+
children: [
|
|
1685
|
+
shouldShowHeader(label, showPercentage, showHitCount) && /* @__PURE__ */ jsx18(
|
|
1560
1686
|
Text_default,
|
|
1561
1687
|
{
|
|
1562
1688
|
as: "div",
|
|
1563
|
-
size: "
|
|
1689
|
+
size: "sm",
|
|
1564
1690
|
weight: "medium",
|
|
1565
|
-
|
|
1566
|
-
|
|
1691
|
+
color,
|
|
1692
|
+
className: `leading-4 w-full ${compactClassName}`,
|
|
1693
|
+
children: content
|
|
1694
|
+
}
|
|
1695
|
+
),
|
|
1696
|
+
/* @__PURE__ */ jsx18(
|
|
1697
|
+
ProgressBarBase,
|
|
1698
|
+
{
|
|
1699
|
+
clampedValue,
|
|
1700
|
+
max,
|
|
1701
|
+
percentage,
|
|
1702
|
+
label,
|
|
1703
|
+
variantClasses,
|
|
1704
|
+
containerClassName: "w-full h-1 rounded-full",
|
|
1705
|
+
fillClassName: "h-1 rounded-full"
|
|
1567
1706
|
}
|
|
1568
1707
|
)
|
|
1569
1708
|
]
|
|
1570
1709
|
}
|
|
1571
1710
|
);
|
|
1572
1711
|
};
|
|
1712
|
+
var DefaultLayout = ({
|
|
1713
|
+
className,
|
|
1714
|
+
size,
|
|
1715
|
+
sizeClasses,
|
|
1716
|
+
variantClasses,
|
|
1717
|
+
label,
|
|
1718
|
+
showPercentage,
|
|
1719
|
+
labelClassName,
|
|
1720
|
+
percentageClassName,
|
|
1721
|
+
clampedValue,
|
|
1722
|
+
max,
|
|
1723
|
+
percentage
|
|
1724
|
+
}) => {
|
|
1725
|
+
const gapClass = size === "medium" ? "gap-2" : sizeClasses.spacing;
|
|
1726
|
+
const progressBarClass = size === "medium" ? "flex-grow" : "w-full";
|
|
1727
|
+
const displayConfig = getDefaultLayoutDisplayConfig(
|
|
1728
|
+
size,
|
|
1729
|
+
label,
|
|
1730
|
+
showPercentage
|
|
1731
|
+
);
|
|
1732
|
+
return /* @__PURE__ */ jsxs13("div", { className: `flex ${sizeClasses.layout} ${gapClass} ${className}`, children: [
|
|
1733
|
+
displayConfig.showHeader && /* @__PURE__ */ jsxs13("div", { className: "flex flex-row items-center justify-between w-full", children: [
|
|
1734
|
+
label && /* @__PURE__ */ jsx18(
|
|
1735
|
+
Text_default,
|
|
1736
|
+
{
|
|
1737
|
+
as: "div",
|
|
1738
|
+
size: "xs",
|
|
1739
|
+
weight: "medium",
|
|
1740
|
+
className: `text-text-950 leading-none tracking-normal text-center ${labelClassName}`,
|
|
1741
|
+
children: label
|
|
1742
|
+
}
|
|
1743
|
+
),
|
|
1744
|
+
showPercentage && /* @__PURE__ */ jsxs13(
|
|
1745
|
+
Text_default,
|
|
1746
|
+
{
|
|
1747
|
+
size: "xs",
|
|
1748
|
+
weight: "medium",
|
|
1749
|
+
className: `text-text-950 leading-none tracking-normal text-center ${percentageClassName}`,
|
|
1750
|
+
children: [
|
|
1751
|
+
Math.round(percentage),
|
|
1752
|
+
"%"
|
|
1753
|
+
]
|
|
1754
|
+
}
|
|
1755
|
+
)
|
|
1756
|
+
] }),
|
|
1757
|
+
/* @__PURE__ */ jsx18(
|
|
1758
|
+
ProgressBarBase,
|
|
1759
|
+
{
|
|
1760
|
+
clampedValue,
|
|
1761
|
+
max,
|
|
1762
|
+
percentage,
|
|
1763
|
+
label,
|
|
1764
|
+
variantClasses,
|
|
1765
|
+
containerClassName: `${progressBarClass} ${sizeClasses.container} ${sizeClasses.borderRadius}`,
|
|
1766
|
+
fillClassName: `${sizeClasses.bar} ${sizeClasses.borderRadius} shadow-hard-shadow-3`
|
|
1767
|
+
}
|
|
1768
|
+
),
|
|
1769
|
+
displayConfig.showPercentage && /* @__PURE__ */ jsxs13(
|
|
1770
|
+
Text_default,
|
|
1771
|
+
{
|
|
1772
|
+
size: "xs",
|
|
1773
|
+
weight: "medium",
|
|
1774
|
+
className: `text-text-950 leading-none tracking-normal text-center flex-none ${percentageClassName}`,
|
|
1775
|
+
children: [
|
|
1776
|
+
Math.round(percentage),
|
|
1777
|
+
"%"
|
|
1778
|
+
]
|
|
1779
|
+
}
|
|
1780
|
+
),
|
|
1781
|
+
displayConfig.showLabel && /* @__PURE__ */ jsx18(
|
|
1782
|
+
Text_default,
|
|
1783
|
+
{
|
|
1784
|
+
as: "div",
|
|
1785
|
+
size: "xs",
|
|
1786
|
+
weight: "medium",
|
|
1787
|
+
className: `text-text-950 leading-none tracking-normal text-center flex-none ${labelClassName}`,
|
|
1788
|
+
children: label
|
|
1789
|
+
}
|
|
1790
|
+
)
|
|
1791
|
+
] });
|
|
1792
|
+
};
|
|
1793
|
+
var ProgressBar = ({
|
|
1794
|
+
value,
|
|
1795
|
+
max = 100,
|
|
1796
|
+
size = "medium",
|
|
1797
|
+
variant = "blue",
|
|
1798
|
+
layout = "default",
|
|
1799
|
+
label,
|
|
1800
|
+
showPercentage = false,
|
|
1801
|
+
showHitCount = false,
|
|
1802
|
+
className = "",
|
|
1803
|
+
labelClassName = "",
|
|
1804
|
+
percentageClassName = "",
|
|
1805
|
+
stackedWidth,
|
|
1806
|
+
stackedHeight,
|
|
1807
|
+
compactWidth,
|
|
1808
|
+
compactHeight
|
|
1809
|
+
}) => {
|
|
1810
|
+
const { clampedValue, percentage } = calculateProgressValues(value, max);
|
|
1811
|
+
const sizeClasses = SIZE_CLASSES7[size];
|
|
1812
|
+
const variantClasses = VARIANT_CLASSES2[variant];
|
|
1813
|
+
if (layout === "stacked") {
|
|
1814
|
+
return /* @__PURE__ */ jsx18(
|
|
1815
|
+
StackedLayout,
|
|
1816
|
+
{
|
|
1817
|
+
className,
|
|
1818
|
+
label,
|
|
1819
|
+
showPercentage,
|
|
1820
|
+
showHitCount,
|
|
1821
|
+
labelClassName,
|
|
1822
|
+
percentageClassName,
|
|
1823
|
+
clampedValue,
|
|
1824
|
+
max,
|
|
1825
|
+
percentage,
|
|
1826
|
+
variantClasses,
|
|
1827
|
+
dimensions: {
|
|
1828
|
+
width: stackedWidth ?? "w-[380px]",
|
|
1829
|
+
height: stackedHeight ?? "h-[35px]"
|
|
1830
|
+
}
|
|
1831
|
+
}
|
|
1832
|
+
);
|
|
1833
|
+
}
|
|
1834
|
+
if (layout === "compact") {
|
|
1835
|
+
return /* @__PURE__ */ jsx18(
|
|
1836
|
+
CompactLayout,
|
|
1837
|
+
{
|
|
1838
|
+
className,
|
|
1839
|
+
label,
|
|
1840
|
+
showPercentage,
|
|
1841
|
+
showHitCount,
|
|
1842
|
+
labelClassName,
|
|
1843
|
+
percentageClassName,
|
|
1844
|
+
clampedValue,
|
|
1845
|
+
max,
|
|
1846
|
+
percentage,
|
|
1847
|
+
variantClasses,
|
|
1848
|
+
dimensions: {
|
|
1849
|
+
width: compactWidth ?? "w-[131px]",
|
|
1850
|
+
height: compactHeight ?? "h-[24px]"
|
|
1851
|
+
}
|
|
1852
|
+
}
|
|
1853
|
+
);
|
|
1854
|
+
}
|
|
1855
|
+
return /* @__PURE__ */ jsx18(
|
|
1856
|
+
DefaultLayout,
|
|
1857
|
+
{
|
|
1858
|
+
className,
|
|
1859
|
+
size,
|
|
1860
|
+
sizeClasses,
|
|
1861
|
+
variantClasses,
|
|
1862
|
+
label,
|
|
1863
|
+
showPercentage,
|
|
1864
|
+
labelClassName,
|
|
1865
|
+
percentageClassName,
|
|
1866
|
+
clampedValue,
|
|
1867
|
+
max,
|
|
1868
|
+
percentage
|
|
1869
|
+
}
|
|
1870
|
+
);
|
|
1871
|
+
};
|
|
1573
1872
|
var ProgressBar_default = ProgressBar;
|
|
1574
1873
|
|
|
1575
1874
|
// src/components/ProgressCircle/ProgressCircle.tsx
|
|
@@ -1743,7 +2042,12 @@ var ProgressCircle = ({
|
|
|
1743
2042
|
var ProgressCircle_default = ProgressCircle;
|
|
1744
2043
|
|
|
1745
2044
|
// src/components/Calendar/Calendar.tsx
|
|
1746
|
-
import {
|
|
2045
|
+
import {
|
|
2046
|
+
useState as useState5,
|
|
2047
|
+
useMemo as useMemo2,
|
|
2048
|
+
useEffect,
|
|
2049
|
+
useRef
|
|
2050
|
+
} from "react";
|
|
1747
2051
|
import { jsx as jsx20, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1748
2052
|
var WEEK_DAYS = ["SEG", "TER", "QUA", "QUI", "SEX", "S\xC1B", "DOM"];
|
|
1749
2053
|
var WEEK_DAYS_SHORT = ["S", "T", "Q", "Q", "S", "S", "D"];
|
|
@@ -1813,7 +2117,7 @@ var getDayStyles = (day, variant, showActivities) => {
|
|
|
1813
2117
|
dayStyle = "bg-primary-800";
|
|
1814
2118
|
textStyle = "text-white";
|
|
1815
2119
|
} else if (day.isToday) {
|
|
1816
|
-
textStyle = "text-
|
|
2120
|
+
textStyle = "text-primary-800";
|
|
1817
2121
|
} else if (variant === "navigation" && showActivities && day.activities?.length) {
|
|
1818
2122
|
const primaryActivity = day.activities[0];
|
|
1819
2123
|
if (primaryActivity.status === "near-deadline") {
|
|
@@ -2049,7 +2353,7 @@ var Calendar = ({
|
|
|
2049
2353
|
);
|
|
2050
2354
|
let spanClass = "";
|
|
2051
2355
|
if (day.isSelected && day.isToday) {
|
|
2052
|
-
spanClass = "h-6 w-6 rounded-full bg-
|
|
2356
|
+
spanClass = "h-6 w-6 rounded-full bg-primary-800 text-text";
|
|
2053
2357
|
} else if (day.isSelected) {
|
|
2054
2358
|
spanClass = "h-6 w-6 rounded-full bg-primary-950 text-text";
|
|
2055
2359
|
}
|
|
@@ -2061,12 +2365,12 @@ var Calendar = ({
|
|
|
2061
2365
|
"button",
|
|
2062
2366
|
{
|
|
2063
2367
|
className: `
|
|
2064
|
-
w-9 h-9
|
|
2065
|
-
flex items-center justify-center
|
|
2066
|
-
text-md font-normal
|
|
2067
|
-
cursor-pointer
|
|
2368
|
+
w-9 h-9
|
|
2369
|
+
flex items-center justify-center
|
|
2370
|
+
text-md font-normal
|
|
2371
|
+
cursor-pointer
|
|
2068
2372
|
rounded-full
|
|
2069
|
-
${dayStyle}
|
|
2373
|
+
${dayStyle}
|
|
2070
2374
|
${textStyle}
|
|
2071
2375
|
`,
|
|
2072
2376
|
onClick: () => handleDateSelect(day),
|
|
@@ -2215,13 +2519,13 @@ var Calendar = ({
|
|
|
2215
2519
|
"button",
|
|
2216
2520
|
{
|
|
2217
2521
|
className: `
|
|
2218
|
-
w-10 h-10
|
|
2219
|
-
flex items-center justify-center
|
|
2220
|
-
text-xl font-normal
|
|
2221
|
-
cursor-pointer
|
|
2522
|
+
w-10 h-10
|
|
2523
|
+
flex items-center justify-center
|
|
2524
|
+
text-xl font-normal
|
|
2525
|
+
cursor-pointer
|
|
2222
2526
|
rounded-full
|
|
2223
2527
|
focus:outline-none focus:ring-2 focus:ring-primary-600 focus:ring-offset-1
|
|
2224
|
-
${dayStyle}
|
|
2528
|
+
${dayStyle}
|
|
2225
2529
|
${textStyle}
|
|
2226
2530
|
`,
|
|
2227
2531
|
onClick: () => handleDateSelect(day),
|
|
@@ -2239,11 +2543,107 @@ var Calendar = ({
|
|
|
2239
2543
|
};
|
|
2240
2544
|
var Calendar_default = Calendar;
|
|
2241
2545
|
|
|
2546
|
+
// src/components/Modal/Modal.tsx
|
|
2547
|
+
import { useEffect as useEffect2 } from "react";
|
|
2548
|
+
import { X as X2 } from "phosphor-react";
|
|
2549
|
+
import { jsx as jsx21, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
2550
|
+
var SIZE_CLASSES9 = {
|
|
2551
|
+
xs: "max-w-[360px]",
|
|
2552
|
+
sm: "max-w-[420px]",
|
|
2553
|
+
md: "max-w-[510px]",
|
|
2554
|
+
lg: "max-w-[640px]",
|
|
2555
|
+
xl: "max-w-[970px]"
|
|
2556
|
+
};
|
|
2557
|
+
var Modal = ({
|
|
2558
|
+
isOpen,
|
|
2559
|
+
onClose,
|
|
2560
|
+
title,
|
|
2561
|
+
children,
|
|
2562
|
+
size = "md",
|
|
2563
|
+
className = "",
|
|
2564
|
+
closeOnBackdropClick = true,
|
|
2565
|
+
closeOnEscape = true,
|
|
2566
|
+
footer,
|
|
2567
|
+
hideCloseButton = false
|
|
2568
|
+
}) => {
|
|
2569
|
+
useEffect2(() => {
|
|
2570
|
+
if (!isOpen || !closeOnEscape) return;
|
|
2571
|
+
const handleEscape = (event) => {
|
|
2572
|
+
if (event.key === "Escape") {
|
|
2573
|
+
onClose();
|
|
2574
|
+
}
|
|
2575
|
+
};
|
|
2576
|
+
document.addEventListener("keydown", handleEscape);
|
|
2577
|
+
return () => document.removeEventListener("keydown", handleEscape);
|
|
2578
|
+
}, [isOpen, closeOnEscape, onClose]);
|
|
2579
|
+
useEffect2(() => {
|
|
2580
|
+
const originalOverflow = document.body.style.overflow;
|
|
2581
|
+
if (isOpen) {
|
|
2582
|
+
document.body.style.overflow = "hidden";
|
|
2583
|
+
} else {
|
|
2584
|
+
document.body.style.overflow = originalOverflow;
|
|
2585
|
+
}
|
|
2586
|
+
return () => {
|
|
2587
|
+
document.body.style.overflow = originalOverflow;
|
|
2588
|
+
};
|
|
2589
|
+
}, [isOpen]);
|
|
2590
|
+
const handleBackdropClick = (event) => {
|
|
2591
|
+
if (closeOnBackdropClick && event.target === event.currentTarget) {
|
|
2592
|
+
onClose();
|
|
2593
|
+
}
|
|
2594
|
+
};
|
|
2595
|
+
const handleBackdropKeyDown = (event) => {
|
|
2596
|
+
if (closeOnBackdropClick && (event.key === "Enter" || event.key === " ")) {
|
|
2597
|
+
onClose();
|
|
2598
|
+
}
|
|
2599
|
+
};
|
|
2600
|
+
if (!isOpen) return null;
|
|
2601
|
+
const sizeClasses = SIZE_CLASSES9[size];
|
|
2602
|
+
const baseClasses = "bg-background rounded-3xl shadow-hard-shadow-2 border border-border-100 w-full mx-4";
|
|
2603
|
+
const modalClasses = `${baseClasses} ${sizeClasses} ${className}`;
|
|
2604
|
+
return /* @__PURE__ */ jsx21(
|
|
2605
|
+
"div",
|
|
2606
|
+
{
|
|
2607
|
+
className: "fixed inset-0 z-50 flex items-center justify-center bg-black/60 backdrop-blur-xs",
|
|
2608
|
+
onClick: handleBackdropClick,
|
|
2609
|
+
onKeyDown: handleBackdropKeyDown,
|
|
2610
|
+
role: "none",
|
|
2611
|
+
"aria-hidden": "true",
|
|
2612
|
+
children: /* @__PURE__ */ jsxs16(
|
|
2613
|
+
"div",
|
|
2614
|
+
{
|
|
2615
|
+
className: modalClasses,
|
|
2616
|
+
role: "dialog",
|
|
2617
|
+
"aria-modal": "true",
|
|
2618
|
+
"aria-labelledby": "modal-title",
|
|
2619
|
+
children: [
|
|
2620
|
+
/* @__PURE__ */ jsxs16("div", { className: "flex items-center justify-between px-6 py-6", children: [
|
|
2621
|
+
/* @__PURE__ */ jsx21("h2", { id: "modal-title", className: "text-lg font-semibold text-text-950", children: title }),
|
|
2622
|
+
!hideCloseButton && /* @__PURE__ */ jsx21(
|
|
2623
|
+
"button",
|
|
2624
|
+
{
|
|
2625
|
+
onClick: onClose,
|
|
2626
|
+
className: "p-1 text-text-500 hover:text-text-700 hover:bg-background-50 rounded-md transition-colors focus:outline-none focus:ring-2 focus:ring-indicator-info focus:ring-offset-2",
|
|
2627
|
+
"aria-label": "Fechar modal",
|
|
2628
|
+
children: /* @__PURE__ */ jsx21(X2, { size: 18 })
|
|
2629
|
+
}
|
|
2630
|
+
)
|
|
2631
|
+
] }),
|
|
2632
|
+
/* @__PURE__ */ jsx21("div", { className: "px-6 pb-6", children: /* @__PURE__ */ jsx21("div", { className: "text-text-500 font-normal text-sm leading-6", children }) }),
|
|
2633
|
+
footer && /* @__PURE__ */ jsx21("div", { className: "flex justify-end gap-3 px-6 pb-6", children: footer })
|
|
2634
|
+
]
|
|
2635
|
+
}
|
|
2636
|
+
)
|
|
2637
|
+
}
|
|
2638
|
+
);
|
|
2639
|
+
};
|
|
2640
|
+
var Modal_default = Modal;
|
|
2641
|
+
|
|
2242
2642
|
// src/components/DropdownMenu/DropdownMenu.tsx
|
|
2243
2643
|
import { SignOut, User } from "phosphor-react";
|
|
2244
2644
|
import {
|
|
2245
2645
|
forwardRef as forwardRef9,
|
|
2246
|
-
useEffect as
|
|
2646
|
+
useEffect as useEffect3,
|
|
2247
2647
|
useRef as useRef2,
|
|
2248
2648
|
isValidElement,
|
|
2249
2649
|
Children,
|
|
@@ -2251,7 +2651,7 @@ import {
|
|
|
2251
2651
|
useState as useState6
|
|
2252
2652
|
} from "react";
|
|
2253
2653
|
import { create as create2, useStore } from "zustand";
|
|
2254
|
-
import { jsx as
|
|
2654
|
+
import { jsx as jsx22, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
2255
2655
|
function createDropdownStore() {
|
|
2256
2656
|
return create2((set) => ({
|
|
2257
2657
|
open: false,
|
|
@@ -2281,16 +2681,17 @@ var injectStore = (children, store) => {
|
|
|
2281
2681
|
return child;
|
|
2282
2682
|
});
|
|
2283
2683
|
};
|
|
2284
|
-
var DropdownMenu = ({
|
|
2684
|
+
var DropdownMenu = ({
|
|
2685
|
+
children,
|
|
2686
|
+
open: propOpen,
|
|
2687
|
+
onOpenChange
|
|
2688
|
+
}) => {
|
|
2285
2689
|
const storeRef = useRef2(null);
|
|
2286
2690
|
storeRef.current ??= createDropdownStore();
|
|
2287
2691
|
const store = storeRef.current;
|
|
2288
|
-
const
|
|
2289
|
-
const uncontrolledOpen = useStore(store, (s) => s.open);
|
|
2290
|
-
const currentOpen = isControlled ? open : uncontrolledOpen;
|
|
2692
|
+
const { open, setOpen: storeSetOpen } = useStore(store, (s) => s);
|
|
2291
2693
|
const setOpen = (newOpen) => {
|
|
2292
|
-
|
|
2293
|
-
if (!isControlled) store.setState({ open: newOpen });
|
|
2694
|
+
storeSetOpen(newOpen);
|
|
2294
2695
|
};
|
|
2295
2696
|
const menuRef = useRef2(null);
|
|
2296
2697
|
const handleArrowDownOrArrowUp = (event) => {
|
|
@@ -2326,9 +2727,8 @@ var DropdownMenu = ({ children, open, onOpenChange }) => {
|
|
|
2326
2727
|
setOpen(false);
|
|
2327
2728
|
}
|
|
2328
2729
|
};
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
if (currentOpen) {
|
|
2730
|
+
useEffect3(() => {
|
|
2731
|
+
if (open) {
|
|
2332
2732
|
document.addEventListener("mousedown", handleClickOutside);
|
|
2333
2733
|
document.addEventListener("keydown", handleDownkey);
|
|
2334
2734
|
}
|
|
@@ -2336,13 +2736,17 @@ var DropdownMenu = ({ children, open, onOpenChange }) => {
|
|
|
2336
2736
|
document.removeEventListener("mousedown", handleClickOutside);
|
|
2337
2737
|
document.removeEventListener("keydown", handleDownkey);
|
|
2338
2738
|
};
|
|
2339
|
-
}, [
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2739
|
+
}, [open]);
|
|
2740
|
+
useEffect3(() => {
|
|
2741
|
+
setOpen(open);
|
|
2742
|
+
onOpenChange?.(open);
|
|
2743
|
+
}, [open, onOpenChange]);
|
|
2744
|
+
useEffect3(() => {
|
|
2745
|
+
if (propOpen) {
|
|
2746
|
+
setOpen(propOpen);
|
|
2343
2747
|
}
|
|
2344
|
-
}, []);
|
|
2345
|
-
return /* @__PURE__ */
|
|
2748
|
+
}, [propOpen]);
|
|
2749
|
+
return /* @__PURE__ */ jsx22("div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
|
|
2346
2750
|
};
|
|
2347
2751
|
var DropdownMenuTrigger = ({
|
|
2348
2752
|
className,
|
|
@@ -2354,7 +2758,7 @@ var DropdownMenuTrigger = ({
|
|
|
2354
2758
|
const store = useDropdownStore(externalStore);
|
|
2355
2759
|
const open = useStore(store, (s) => s.open);
|
|
2356
2760
|
const toggleOpen = () => store.setState({ open: !open });
|
|
2357
|
-
return /* @__PURE__ */
|
|
2761
|
+
return /* @__PURE__ */ jsx22(
|
|
2358
2762
|
Button_default,
|
|
2359
2763
|
{
|
|
2360
2764
|
variant: "outline",
|
|
@@ -2391,7 +2795,7 @@ var MENUCONTENT_VARIANT_CLASSES = {
|
|
|
2391
2795
|
profile: "p-6"
|
|
2392
2796
|
};
|
|
2393
2797
|
var MenuLabel = forwardRef9(({ className, inset, store: _store, ...props }, ref) => {
|
|
2394
|
-
return /* @__PURE__ */
|
|
2798
|
+
return /* @__PURE__ */ jsx22(
|
|
2395
2799
|
"div",
|
|
2396
2800
|
{
|
|
2397
2801
|
ref,
|
|
@@ -2415,7 +2819,7 @@ var MenuContent = forwardRef9(
|
|
|
2415
2819
|
const store = useDropdownStore(externalStore);
|
|
2416
2820
|
const open = useStore(store, (s) => s.open);
|
|
2417
2821
|
const [isVisible, setIsVisible] = useState6(open);
|
|
2418
|
-
|
|
2822
|
+
useEffect3(() => {
|
|
2419
2823
|
if (open) {
|
|
2420
2824
|
setIsVisible(true);
|
|
2421
2825
|
} else {
|
|
@@ -2430,7 +2834,7 @@ var MenuContent = forwardRef9(
|
|
|
2430
2834
|
return `absolute ${vertical} ${horizontal}`;
|
|
2431
2835
|
};
|
|
2432
2836
|
const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
|
|
2433
|
-
return /* @__PURE__ */
|
|
2837
|
+
return /* @__PURE__ */ jsx22(
|
|
2434
2838
|
"div",
|
|
2435
2839
|
{
|
|
2436
2840
|
ref,
|
|
@@ -2489,7 +2893,7 @@ var DropdownMenuItem = forwardRef9(
|
|
|
2489
2893
|
const getVariantProps = () => {
|
|
2490
2894
|
return variant === "profile" ? { "data-variant": "profile" } : {};
|
|
2491
2895
|
};
|
|
2492
|
-
return /* @__PURE__ */
|
|
2896
|
+
return /* @__PURE__ */ jsxs17(
|
|
2493
2897
|
"div",
|
|
2494
2898
|
{
|
|
2495
2899
|
ref,
|
|
@@ -2511,7 +2915,7 @@ var DropdownMenuItem = forwardRef9(
|
|
|
2511
2915
|
...props,
|
|
2512
2916
|
children: [
|
|
2513
2917
|
iconLeft,
|
|
2514
|
-
/* @__PURE__ */
|
|
2918
|
+
/* @__PURE__ */ jsx22("span", { className: "w-full text-md", children }),
|
|
2515
2919
|
iconRight
|
|
2516
2920
|
]
|
|
2517
2921
|
}
|
|
@@ -2519,7 +2923,7 @@ var DropdownMenuItem = forwardRef9(
|
|
|
2519
2923
|
}
|
|
2520
2924
|
);
|
|
2521
2925
|
DropdownMenuItem.displayName = "DropdownMenuItem";
|
|
2522
|
-
var DropdownMenuSeparator = forwardRef9(({ className, store: _store, ...props }, ref) => /* @__PURE__ */
|
|
2926
|
+
var DropdownMenuSeparator = forwardRef9(({ className, store: _store, ...props }, ref) => /* @__PURE__ */ jsx22(
|
|
2523
2927
|
"div",
|
|
2524
2928
|
{
|
|
2525
2929
|
ref,
|
|
@@ -2532,7 +2936,7 @@ var ProfileMenuTrigger = forwardRef9(({ className, onClick, store: externalStore
|
|
|
2532
2936
|
const store = useDropdownStore(externalStore);
|
|
2533
2937
|
const open = useStore(store, (s) => s.open);
|
|
2534
2938
|
const toggleOpen = () => store.setState({ open: !open });
|
|
2535
|
-
return /* @__PURE__ */
|
|
2939
|
+
return /* @__PURE__ */ jsx22(
|
|
2536
2940
|
"button",
|
|
2537
2941
|
{
|
|
2538
2942
|
ref,
|
|
@@ -2544,13 +2948,13 @@ var ProfileMenuTrigger = forwardRef9(({ className, onClick, store: externalStore
|
|
|
2544
2948
|
},
|
|
2545
2949
|
"aria-expanded": open,
|
|
2546
2950
|
...props,
|
|
2547
|
-
children: /* @__PURE__ */
|
|
2951
|
+
children: /* @__PURE__ */ jsx22("span", { className: "size-6 rounded-full bg-background-100 flex items-center justify-center", children: /* @__PURE__ */ jsx22(User, { className: "text-background-950", size: 18 }) })
|
|
2548
2952
|
}
|
|
2549
2953
|
);
|
|
2550
2954
|
});
|
|
2551
2955
|
ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
|
|
2552
2956
|
var ProfileMenuHeader = forwardRef9(({ className, name, email, store: _store, ...props }, ref) => {
|
|
2553
|
-
return /* @__PURE__ */
|
|
2957
|
+
return /* @__PURE__ */ jsxs17(
|
|
2554
2958
|
"div",
|
|
2555
2959
|
{
|
|
2556
2960
|
ref,
|
|
@@ -2561,10 +2965,10 @@ var ProfileMenuHeader = forwardRef9(({ className, name, email, store: _store, ..
|
|
|
2561
2965
|
`,
|
|
2562
2966
|
...props,
|
|
2563
2967
|
children: [
|
|
2564
|
-
/* @__PURE__ */
|
|
2565
|
-
/* @__PURE__ */
|
|
2566
|
-
/* @__PURE__ */
|
|
2567
|
-
/* @__PURE__ */
|
|
2968
|
+
/* @__PURE__ */ jsx22("span", { className: "size-16 bg-background-100 rounded-full flex items-center justify-center", children: /* @__PURE__ */ jsx22(User, { size: 34, className: "text-background-950" }) }),
|
|
2969
|
+
/* @__PURE__ */ jsxs17("div", { className: "flex flex-col ", children: [
|
|
2970
|
+
/* @__PURE__ */ jsx22("p", { className: "text-xl font-bold text-text-950", children: name }),
|
|
2971
|
+
/* @__PURE__ */ jsx22("p", { className: "text-md text-text-600", children: email })
|
|
2568
2972
|
] })
|
|
2569
2973
|
]
|
|
2570
2974
|
}
|
|
@@ -2572,7 +2976,7 @@ var ProfileMenuHeader = forwardRef9(({ className, name, email, store: _store, ..
|
|
|
2572
2976
|
});
|
|
2573
2977
|
ProfileMenuHeader.displayName = "ProfileMenuHeader";
|
|
2574
2978
|
var ProfileMenuSection = forwardRef9(({ className, children, store: _store, ...props }, ref) => {
|
|
2575
|
-
return /* @__PURE__ */
|
|
2979
|
+
return /* @__PURE__ */ jsx22(
|
|
2576
2980
|
"div",
|
|
2577
2981
|
{
|
|
2578
2982
|
ref,
|
|
@@ -2595,7 +2999,7 @@ var ProfileMenuFooter = ({
|
|
|
2595
2999
|
}) => {
|
|
2596
3000
|
const store = useDropdownStore(externalStore);
|
|
2597
3001
|
const setOpen = useStore(store, (s) => s.setOpen);
|
|
2598
|
-
return /* @__PURE__ */
|
|
3002
|
+
return /* @__PURE__ */ jsxs17(
|
|
2599
3003
|
Button_default,
|
|
2600
3004
|
{
|
|
2601
3005
|
variant: "outline",
|
|
@@ -2607,8 +3011,8 @@ var ProfileMenuFooter = ({
|
|
|
2607
3011
|
},
|
|
2608
3012
|
...props,
|
|
2609
3013
|
children: [
|
|
2610
|
-
/* @__PURE__ */
|
|
2611
|
-
/* @__PURE__ */
|
|
3014
|
+
/* @__PURE__ */ jsx22("span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ jsx22(SignOut, {}) }),
|
|
3015
|
+
/* @__PURE__ */ jsx22("span", { children: "Sair" })
|
|
2612
3016
|
]
|
|
2613
3017
|
}
|
|
2614
3018
|
);
|
|
@@ -2619,7 +3023,7 @@ var DropdownMenu_default = DropdownMenu;
|
|
|
2619
3023
|
// src/components/Select/Select.tsx
|
|
2620
3024
|
import { create as create3, useStore as useStore2 } from "zustand";
|
|
2621
3025
|
import {
|
|
2622
|
-
useEffect as
|
|
3026
|
+
useEffect as useEffect4,
|
|
2623
3027
|
useRef as useRef3,
|
|
2624
3028
|
forwardRef as forwardRef10,
|
|
2625
3029
|
isValidElement as isValidElement2,
|
|
@@ -2627,13 +3031,13 @@ import {
|
|
|
2627
3031
|
cloneElement as cloneElement2
|
|
2628
3032
|
} from "react";
|
|
2629
3033
|
import { CaretDown, Check as Check3 } from "phosphor-react";
|
|
2630
|
-
import { Fragment as
|
|
3034
|
+
import { Fragment as Fragment3, jsx as jsx23, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2631
3035
|
var VARIANT_CLASSES4 = {
|
|
2632
3036
|
outlined: "border-2 rounded-sm focus:border-primary-950",
|
|
2633
3037
|
underlined: "border-b-2 focus:border-primary-950",
|
|
2634
3038
|
rounded: "border-2 rounded-4xl focus:border-primary-950"
|
|
2635
3039
|
};
|
|
2636
|
-
var
|
|
3040
|
+
var SIZE_CLASSES10 = {
|
|
2637
3041
|
small: "text-sm",
|
|
2638
3042
|
medium: "text-md",
|
|
2639
3043
|
large: "text-lg"
|
|
@@ -2673,7 +3077,7 @@ function getLabelAsNode(children) {
|
|
|
2673
3077
|
}
|
|
2674
3078
|
const flattened = Children2.toArray(children);
|
|
2675
3079
|
if (flattened.length === 1) return flattened[0];
|
|
2676
|
-
return /* @__PURE__ */
|
|
3080
|
+
return /* @__PURE__ */ jsx23(Fragment3, { children: flattened });
|
|
2677
3081
|
}
|
|
2678
3082
|
var injectStore2 = (children, store) => {
|
|
2679
3083
|
return Children2.map(children, (child) => {
|
|
@@ -2705,8 +3109,6 @@ var Select = ({
|
|
|
2705
3109
|
store,
|
|
2706
3110
|
(s) => s
|
|
2707
3111
|
);
|
|
2708
|
-
const isControlled = propValue !== void 0;
|
|
2709
|
-
const currentValue = isControlled ? propValue : value;
|
|
2710
3112
|
const findLabelForValue = (children2, targetValue) => {
|
|
2711
3113
|
let found = null;
|
|
2712
3114
|
const search = (nodes) => {
|
|
@@ -2724,14 +3126,13 @@ var Select = ({
|
|
|
2724
3126
|
search(children2);
|
|
2725
3127
|
return found;
|
|
2726
3128
|
};
|
|
2727
|
-
|
|
3129
|
+
useEffect4(() => {
|
|
2728
3130
|
if (!selectedLabel && defaultValue) {
|
|
2729
3131
|
const label = findLabelForValue(children, defaultValue);
|
|
2730
3132
|
if (label) store.setState({ selectedLabel: label });
|
|
2731
3133
|
}
|
|
2732
3134
|
}, [children, defaultValue, selectedLabel]);
|
|
2733
|
-
|
|
2734
|
-
setValue(currentValue);
|
|
3135
|
+
useEffect4(() => {
|
|
2735
3136
|
const handleClickOutside = (event) => {
|
|
2736
3137
|
if (selectRef.current && !selectRef.current.contains(event.target)) {
|
|
2737
3138
|
setOpen(false);
|
|
@@ -2766,13 +3167,19 @@ var Select = ({
|
|
|
2766
3167
|
document.removeEventListener("keydown", handleArrowKeys);
|
|
2767
3168
|
};
|
|
2768
3169
|
}, [open]);
|
|
2769
|
-
|
|
2770
|
-
|
|
2771
|
-
|
|
3170
|
+
useEffect4(() => {
|
|
3171
|
+
setValue(value);
|
|
3172
|
+
onValueChange?.(value);
|
|
3173
|
+
}, [value, onValueChange]);
|
|
3174
|
+
useEffect4(() => {
|
|
3175
|
+
if (propValue) {
|
|
3176
|
+
setValue(propValue);
|
|
3177
|
+
const label = findLabelForValue(children, propValue);
|
|
3178
|
+
if (label) store.setState({ selectedLabel: label });
|
|
2772
3179
|
}
|
|
2773
|
-
}, [
|
|
2774
|
-
const sizeClasses =
|
|
2775
|
-
return /* @__PURE__ */
|
|
3180
|
+
}, [propValue]);
|
|
3181
|
+
const sizeClasses = SIZE_CLASSES10[size];
|
|
3182
|
+
return /* @__PURE__ */ jsx23("div", { className: `relative ${sizeClasses} w-[288px]`, ref: selectRef, children: injectStore2(children, store) });
|
|
2776
3183
|
};
|
|
2777
3184
|
var SelectValue = ({
|
|
2778
3185
|
placeholder,
|
|
@@ -2781,7 +3188,7 @@ var SelectValue = ({
|
|
|
2781
3188
|
const store = useSelectStore(externalStore);
|
|
2782
3189
|
const selectedLabel = useStore2(store, (s) => s.selectedLabel);
|
|
2783
3190
|
const value = useStore2(store, (s) => s.value);
|
|
2784
|
-
return /* @__PURE__ */
|
|
3191
|
+
return /* @__PURE__ */ jsx23("span", { className: "text-inherit", children: selectedLabel || placeholder || value });
|
|
2785
3192
|
};
|
|
2786
3193
|
var SelectTrigger = forwardRef10(
|
|
2787
3194
|
({
|
|
@@ -2796,7 +3203,7 @@ var SelectTrigger = forwardRef10(
|
|
|
2796
3203
|
const open = useStore2(store, (s) => s.open);
|
|
2797
3204
|
const toggleOpen = () => store.setState({ open: !open });
|
|
2798
3205
|
const variantClasses = VARIANT_CLASSES4[variant];
|
|
2799
|
-
return /* @__PURE__ */
|
|
3206
|
+
return /* @__PURE__ */ jsxs18(
|
|
2800
3207
|
"button",
|
|
2801
3208
|
{
|
|
2802
3209
|
ref,
|
|
@@ -2815,7 +3222,7 @@ var SelectTrigger = forwardRef10(
|
|
|
2815
3222
|
...props,
|
|
2816
3223
|
children: [
|
|
2817
3224
|
props.children,
|
|
2818
|
-
/* @__PURE__ */
|
|
3225
|
+
/* @__PURE__ */ jsx23(
|
|
2819
3226
|
CaretDown,
|
|
2820
3227
|
{
|
|
2821
3228
|
className: `h-[1em] w-[1em] opacity-50 transition-transform ${open ? "rotate-180" : ""}`
|
|
@@ -2840,7 +3247,7 @@ var SelectContent = forwardRef10(
|
|
|
2840
3247
|
const open = useStore2(store, (s) => s.open);
|
|
2841
3248
|
if (!open) return null;
|
|
2842
3249
|
const getPositionClasses = () => `w-full min-w-full absolute ${SIDE_CLASSES2[side]} ${ALIGN_CLASSES2[align]}`;
|
|
2843
|
-
return /* @__PURE__ */
|
|
3250
|
+
return /* @__PURE__ */ jsx23(
|
|
2844
3251
|
"div",
|
|
2845
3252
|
{
|
|
2846
3253
|
role: "menu",
|
|
@@ -2863,8 +3270,12 @@ var SelectItem = forwardRef10(
|
|
|
2863
3270
|
...props
|
|
2864
3271
|
}, ref) => {
|
|
2865
3272
|
const store = useSelectStore(externalStore);
|
|
2866
|
-
const
|
|
2867
|
-
|
|
3273
|
+
const {
|
|
3274
|
+
value: selectedValue,
|
|
3275
|
+
setValue,
|
|
3276
|
+
setOpen,
|
|
3277
|
+
setSelectedLabel
|
|
3278
|
+
} = useStore2(store, (s) => s);
|
|
2868
3279
|
const handleClick = (e) => {
|
|
2869
3280
|
const labelNode = getLabelAsNode(children);
|
|
2870
3281
|
if (!disabled) {
|
|
@@ -2874,7 +3285,7 @@ var SelectItem = forwardRef10(
|
|
|
2874
3285
|
}
|
|
2875
3286
|
props.onClick?.(e);
|
|
2876
3287
|
};
|
|
2877
|
-
return /* @__PURE__ */
|
|
3288
|
+
return /* @__PURE__ */ jsxs18(
|
|
2878
3289
|
"div",
|
|
2879
3290
|
{
|
|
2880
3291
|
role: "menuitem",
|
|
@@ -2894,7 +3305,7 @@ var SelectItem = forwardRef10(
|
|
|
2894
3305
|
tabIndex: disabled ? -1 : 0,
|
|
2895
3306
|
...props,
|
|
2896
3307
|
children: [
|
|
2897
|
-
/* @__PURE__ */
|
|
3308
|
+
/* @__PURE__ */ jsx23("span", { className: "absolute right-2 flex h-3.5 w-3.5 items-center justify-center", children: selectedValue === value && /* @__PURE__ */ jsx23(Check3, { className: "" }) }),
|
|
2898
3309
|
children
|
|
2899
3310
|
]
|
|
2900
3311
|
}
|
|
@@ -2907,7 +3318,7 @@ var Select_default = Select;
|
|
|
2907
3318
|
// src/components/Menu/Menu.tsx
|
|
2908
3319
|
import { create as create4, useStore as useStore3 } from "zustand";
|
|
2909
3320
|
import {
|
|
2910
|
-
useEffect as
|
|
3321
|
+
useEffect as useEffect5,
|
|
2911
3322
|
useRef as useRef4,
|
|
2912
3323
|
forwardRef as forwardRef11,
|
|
2913
3324
|
isValidElement as isValidElement3,
|
|
@@ -2916,7 +3327,7 @@ import {
|
|
|
2916
3327
|
useState as useState7
|
|
2917
3328
|
} from "react";
|
|
2918
3329
|
import { CaretLeft, CaretRight } from "phosphor-react";
|
|
2919
|
-
import { jsx as
|
|
3330
|
+
import { jsx as jsx24, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
2920
3331
|
var createMenuStore = () => create4((set) => ({
|
|
2921
3332
|
value: "",
|
|
2922
3333
|
setValue: (value) => set({ value })
|
|
@@ -2944,15 +3355,15 @@ var Menu = forwardRef11(
|
|
|
2944
3355
|
storeRef.current ??= createMenuStore();
|
|
2945
3356
|
const store = storeRef.current;
|
|
2946
3357
|
const { setValue, value } = useStore3(store, (s) => s);
|
|
2947
|
-
|
|
3358
|
+
useEffect5(() => {
|
|
2948
3359
|
setValue(propValue ?? defaultValue);
|
|
2949
3360
|
}, [defaultValue, propValue, setValue]);
|
|
2950
|
-
|
|
3361
|
+
useEffect5(() => {
|
|
2951
3362
|
onValueChange?.(value);
|
|
2952
3363
|
}, [value, onValueChange]);
|
|
2953
3364
|
const baseClasses = "w-full flex flex-row items-center gap-2 py-2 px-6";
|
|
2954
3365
|
const variantClasses = VARIANT_CLASSES5[variant];
|
|
2955
|
-
return /* @__PURE__ */
|
|
3366
|
+
return /* @__PURE__ */ jsx24(
|
|
2956
3367
|
"ul",
|
|
2957
3368
|
{
|
|
2958
3369
|
ref,
|
|
@@ -2997,7 +3408,7 @@ var MenuItem = forwardRef11(
|
|
|
2997
3408
|
...props
|
|
2998
3409
|
};
|
|
2999
3410
|
const variants = {
|
|
3000
|
-
menu: /* @__PURE__ */
|
|
3411
|
+
menu: /* @__PURE__ */ jsx24(
|
|
3001
3412
|
"li",
|
|
3002
3413
|
{
|
|
3003
3414
|
"data-variant": "menu",
|
|
@@ -3012,7 +3423,7 @@ var MenuItem = forwardRef11(
|
|
|
3012
3423
|
children
|
|
3013
3424
|
}
|
|
3014
3425
|
),
|
|
3015
|
-
menu2: /* @__PURE__ */
|
|
3426
|
+
menu2: /* @__PURE__ */ jsx24(
|
|
3016
3427
|
"li",
|
|
3017
3428
|
{
|
|
3018
3429
|
"data-variant": "menu2",
|
|
@@ -3024,7 +3435,7 @@ var MenuItem = forwardRef11(
|
|
|
3024
3435
|
children
|
|
3025
3436
|
}
|
|
3026
3437
|
),
|
|
3027
|
-
breadcrumb: /* @__PURE__ */
|
|
3438
|
+
breadcrumb: /* @__PURE__ */ jsx24(
|
|
3028
3439
|
"li",
|
|
3029
3440
|
{
|
|
3030
3441
|
"data-variant": "breadcrumb",
|
|
@@ -3035,7 +3446,7 @@ var MenuItem = forwardRef11(
|
|
|
3035
3446
|
${className ?? ""}
|
|
3036
3447
|
`,
|
|
3037
3448
|
...commonProps,
|
|
3038
|
-
children: /* @__PURE__ */
|
|
3449
|
+
children: /* @__PURE__ */ jsx24(
|
|
3039
3450
|
"span",
|
|
3040
3451
|
{
|
|
3041
3452
|
className: `
|
|
@@ -3053,14 +3464,14 @@ var MenuItem = forwardRef11(
|
|
|
3053
3464
|
);
|
|
3054
3465
|
MenuItem.displayName = "MenuItem";
|
|
3055
3466
|
var MenuSeparator = forwardRef11(
|
|
3056
|
-
({ className, children, ...props }, ref) => /* @__PURE__ */
|
|
3467
|
+
({ className, children, ...props }, ref) => /* @__PURE__ */ jsx24(
|
|
3057
3468
|
"li",
|
|
3058
3469
|
{
|
|
3059
3470
|
ref,
|
|
3060
3471
|
"aria-hidden": "true",
|
|
3061
3472
|
className: `[&>svg]:w-4 [&>svg]:h-4 text-text-600 ${className ?? ""}`,
|
|
3062
3473
|
...props,
|
|
3063
|
-
children: children ?? /* @__PURE__ */
|
|
3474
|
+
children: children ?? /* @__PURE__ */ jsx24(CaretRight, {})
|
|
3064
3475
|
}
|
|
3065
3476
|
)
|
|
3066
3477
|
);
|
|
@@ -3095,6 +3506,7 @@ export {
|
|
|
3095
3506
|
MenuItem,
|
|
3096
3507
|
MenuLabel,
|
|
3097
3508
|
MenuSeparator,
|
|
3509
|
+
Modal_default as Modal,
|
|
3098
3510
|
NavButton_default as NavButton,
|
|
3099
3511
|
ProfileMenuFooter,
|
|
3100
3512
|
ProfileMenuHeader,
|