@prediktif/ui 0.1.25 → 0.1.27
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/index.js +172 -118
- package/dist/index.mjs +194 -140
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1396,14 +1396,29 @@ function formatSegment(segment, subHref, navMainItems = [], navSecondaryItems =
|
|
|
1396
1396
|
}
|
|
1397
1397
|
return segment.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
1398
1398
|
}
|
|
1399
|
-
function isRouteActive(url, pathname) {
|
|
1399
|
+
function isRouteActive(url, pathname, allItems) {
|
|
1400
1400
|
if (!pathname) return false;
|
|
1401
1401
|
const cleanUrl = url.replace(/\/$/, "") || "/";
|
|
1402
1402
|
const cleanPath = pathname.replace(/\/$/, "") || "/";
|
|
1403
1403
|
if (cleanUrl === "/") return cleanPath === "/";
|
|
1404
|
-
|
|
1404
|
+
if (cleanPath === "/") return false;
|
|
1405
|
+
if (cleanPath === cleanUrl) return true;
|
|
1406
|
+
if (cleanPath.startsWith(`${cleanUrl}/`)) return true;
|
|
1407
|
+
if (allItems == null ? void 0 : allItems.length) {
|
|
1408
|
+
const hasMoreSpecificMatch = allItems.some((item) => {
|
|
1409
|
+
const itemUrl = item.url.replace(/\/$/, "") || "/";
|
|
1410
|
+
if (itemUrl === "/" || itemUrl === cleanUrl) return false;
|
|
1411
|
+
return cleanPath === itemUrl || cleanPath.startsWith(`${itemUrl}/`);
|
|
1412
|
+
});
|
|
1413
|
+
if (hasMoreSpecificMatch) return false;
|
|
1414
|
+
}
|
|
1415
|
+
const urlFirstSegment = cleanUrl.split("/").filter(Boolean)[0];
|
|
1416
|
+
const pathFirstSegment = cleanPath.split("/").filter(Boolean)[0];
|
|
1417
|
+
return Boolean(
|
|
1418
|
+
urlFirstSegment && pathFirstSegment && urlFirstSegment === pathFirstSegment
|
|
1419
|
+
);
|
|
1405
1420
|
}
|
|
1406
|
-
|
|
1421
|
+
function AppSidebarInner({
|
|
1407
1422
|
name = "",
|
|
1408
1423
|
email = "",
|
|
1409
1424
|
orgRole = "",
|
|
@@ -1412,7 +1427,6 @@ var AppSidebar = (0, import_react.memo)(function AppSidebar2({
|
|
|
1412
1427
|
confirmDialog = false,
|
|
1413
1428
|
headerDropdown = false,
|
|
1414
1429
|
image,
|
|
1415
|
-
defaultOpen = true,
|
|
1416
1430
|
navMainItems,
|
|
1417
1431
|
navSecondaryItems = [],
|
|
1418
1432
|
organizations,
|
|
@@ -1420,11 +1434,20 @@ var AppSidebar = (0, import_react.memo)(function AppSidebar2({
|
|
|
1420
1434
|
setActiveOrg,
|
|
1421
1435
|
children
|
|
1422
1436
|
}) {
|
|
1423
|
-
const _isMobile = useIsMobile();
|
|
1424
1437
|
const pathname = (0, import_navigation.usePathname)();
|
|
1438
|
+
const { setOpenMobile } = useSidebar();
|
|
1425
1439
|
const segments = pathname ? pathname.split("/").filter(Boolean) : [];
|
|
1440
|
+
const allNavItems = [...navMainItems, ...navSecondaryItems];
|
|
1441
|
+
(0, import_react.useEffect)(() => {
|
|
1442
|
+
if (pathname) {
|
|
1443
|
+
setOpenMobile(false);
|
|
1444
|
+
}
|
|
1445
|
+
}, [pathname, setOpenMobile]);
|
|
1446
|
+
const handleLinkClick = () => {
|
|
1447
|
+
setOpenMobile(false);
|
|
1448
|
+
};
|
|
1426
1449
|
const initials = name ? name.trim().split(" ").map((n) => n[0]).join("").substring(0, 2).toUpperCase() : "U";
|
|
1427
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1450
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(import_jsx_runtime12.Fragment, { children: [
|
|
1428
1451
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Sidebar, { collapsible: "icon", children: [
|
|
1429
1452
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarHeader, { children: headerDropdown ? /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(DropdownMenu, { children: [
|
|
1430
1453
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
@@ -1473,55 +1496,73 @@ var AppSidebar = (0, import_react.memo)(function AppSidebar2({
|
|
|
1473
1496
|
] })
|
|
1474
1497
|
}
|
|
1475
1498
|
)
|
|
1476
|
-
] }) }) }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1477
|
-
|
|
1478
|
-
|
|
1479
|
-
|
|
1480
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1481
|
-
|
|
1482
|
-
|
|
1483
|
-
|
|
1484
|
-
|
|
1485
|
-
|
|
1486
|
-
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1518
|
-
]
|
|
1519
|
-
}
|
|
1520
|
-
),
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1499
|
+
] }) }) }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuItem, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1500
|
+
SidebarMenuButton,
|
|
1501
|
+
{
|
|
1502
|
+
size: "lg",
|
|
1503
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: "/", onClick: handleLinkClick }),
|
|
1504
|
+
children: [
|
|
1505
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.Command, { className: "size-4" }) }),
|
|
1506
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
|
|
1507
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate font-medium", children: brand }),
|
|
1508
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate text-xs capitalize", children: orgRole })
|
|
1509
|
+
] })
|
|
1510
|
+
]
|
|
1511
|
+
}
|
|
1512
|
+
) }) }) }),
|
|
1513
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1514
|
+
SidebarContent,
|
|
1515
|
+
{
|
|
1516
|
+
onClick: (e) => {
|
|
1517
|
+
const target = e.target;
|
|
1518
|
+
if (target.closest("a")) {
|
|
1519
|
+
setOpenMobile(false);
|
|
1520
|
+
}
|
|
1521
|
+
},
|
|
1522
|
+
children: [
|
|
1523
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarGroup, { children: [
|
|
1524
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarGroupLabel, { children: "Platform" }),
|
|
1525
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: navMainItems.map(({ title, url, icon, locked }) => {
|
|
1526
|
+
const isActive = isRouteActive(url, pathname, allNavItems);
|
|
1527
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarMenuItem, { children: [
|
|
1528
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1529
|
+
SidebarMenuButton,
|
|
1530
|
+
{
|
|
1531
|
+
isActive,
|
|
1532
|
+
tooltip: title,
|
|
1533
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: url, onClick: handleLinkClick }),
|
|
1534
|
+
children: [
|
|
1535
|
+
renderNavIcon(icon),
|
|
1536
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: title })
|
|
1537
|
+
]
|
|
1538
|
+
}
|
|
1539
|
+
),
|
|
1540
|
+
locked && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuBadge, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.LockIcon, { size: 12 }) })
|
|
1541
|
+
] }, title);
|
|
1542
|
+
}) })
|
|
1543
|
+
] }),
|
|
1544
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarGroup, { className: "mt-auto", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarGroupContent, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: navSecondaryItems.map(({ title, url, icon, locked }) => {
|
|
1545
|
+
const isActive = isRouteActive(url, pathname, allNavItems);
|
|
1546
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarMenuItem, { children: [
|
|
1547
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1548
|
+
SidebarMenuButton,
|
|
1549
|
+
{
|
|
1550
|
+
size: "sm",
|
|
1551
|
+
isActive,
|
|
1552
|
+
tooltip: title,
|
|
1553
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: url, onClick: handleLinkClick }),
|
|
1554
|
+
children: [
|
|
1555
|
+
renderNavIcon(icon),
|
|
1556
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: title })
|
|
1557
|
+
]
|
|
1558
|
+
}
|
|
1559
|
+
),
|
|
1560
|
+
locked && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuBadge, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.LockIcon, { size: 12 }) })
|
|
1561
|
+
] }, title);
|
|
1562
|
+
}) }) }) })
|
|
1563
|
+
]
|
|
1564
|
+
}
|
|
1565
|
+
),
|
|
1525
1566
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarFooter, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuItem, { children: confirmDialog ? /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(AlertDialog, { children: [
|
|
1526
1567
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1527
1568
|
AlertDialogTrigger,
|
|
@@ -1549,22 +1590,36 @@ var AppSidebar = (0, import_react.memo)(function AppSidebar2({
|
|
|
1549
1590
|
AlertDialogAction,
|
|
1550
1591
|
{
|
|
1551
1592
|
nativeButton: false,
|
|
1552
|
-
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1593
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1594
|
+
import_link.default,
|
|
1595
|
+
{
|
|
1596
|
+
href,
|
|
1597
|
+
target: "_blank",
|
|
1598
|
+
onClick: handleLinkClick
|
|
1599
|
+
}
|
|
1600
|
+
),
|
|
1553
1601
|
children: "Continue"
|
|
1554
1602
|
}
|
|
1555
1603
|
)
|
|
1556
1604
|
] })
|
|
1557
1605
|
] })
|
|
1558
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
|
|
1562
|
-
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
|
|
1566
|
-
|
|
1567
|
-
|
|
1606
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
|
|
1607
|
+
SidebarMenuButton,
|
|
1608
|
+
{
|
|
1609
|
+
size: "lg",
|
|
1610
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href, onClick: handleLinkClick }),
|
|
1611
|
+
children: [
|
|
1612
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Avatar, { children: [
|
|
1613
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AvatarImage, { src: image || "", alt: name || "" }),
|
|
1614
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AvatarFallback, { children: initials })
|
|
1615
|
+
] }),
|
|
1616
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
|
|
1617
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate font-medium", children: name }),
|
|
1618
|
+
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: email })
|
|
1619
|
+
] })
|
|
1620
|
+
]
|
|
1621
|
+
}
|
|
1622
|
+
) }) }) }),
|
|
1568
1623
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarRail, {})
|
|
1569
1624
|
] }),
|
|
1570
1625
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarInset, { children: [
|
|
@@ -1591,6 +1646,14 @@ var AppSidebar = (0, import_react.memo)(function AppSidebar2({
|
|
|
1591
1646
|
/* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "p-4 pt-0", children })
|
|
1592
1647
|
] })
|
|
1593
1648
|
] });
|
|
1649
|
+
}
|
|
1650
|
+
var AppSidebar = (0, import_react.memo)(function AppSidebar2(_a) {
|
|
1651
|
+
var _b = _a, {
|
|
1652
|
+
defaultOpen = true
|
|
1653
|
+
} = _b, props = __objRest(_b, [
|
|
1654
|
+
"defaultOpen"
|
|
1655
|
+
]);
|
|
1656
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AppSidebarInner, __spreadValues({}, props)) });
|
|
1594
1657
|
});
|
|
1595
1658
|
|
|
1596
1659
|
// src/components/composed/columns/avatar-group-invitations.tsx
|
|
@@ -1598,14 +1661,14 @@ var import_react2 = require("react");
|
|
|
1598
1661
|
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1599
1662
|
function getInitials(name, email) {
|
|
1600
1663
|
const target = (name || email || "U").trim();
|
|
1601
|
-
return target.split(/[\s.@]/).filter(Boolean).map((n) => n[0]).join("").slice(0,
|
|
1664
|
+
return target.split(/[\s.@]/).filter(Boolean).map((n) => n[0]).join("").slice(0, 1).toUpperCase();
|
|
1602
1665
|
}
|
|
1603
1666
|
var AvatarGroupInvitations = (0, import_react2.memo)(function AvatarGroupInvitations2({
|
|
1604
1667
|
invitations,
|
|
1605
1668
|
maxDisplay = 3,
|
|
1606
1669
|
onlyPending = true,
|
|
1607
1670
|
fallback = null,
|
|
1608
|
-
size = "
|
|
1671
|
+
size = "sm",
|
|
1609
1672
|
className
|
|
1610
1673
|
}) {
|
|
1611
1674
|
const list = invitations != null ? invitations : [];
|
|
@@ -1632,7 +1695,7 @@ var AvatarGroupInvitations = (0, import_react2.memo)(function AvatarGroupInvitat
|
|
|
1632
1695
|
Avatar,
|
|
1633
1696
|
{
|
|
1634
1697
|
size,
|
|
1635
|
-
className: "
|
|
1698
|
+
className: "border border-dashed border-primary/40",
|
|
1636
1699
|
children: [
|
|
1637
1700
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1638
1701
|
AvatarImage,
|
|
@@ -1641,7 +1704,7 @@ var AvatarGroupInvitations = (0, import_react2.memo)(function AvatarGroupInvitat
|
|
|
1641
1704
|
alt: displayName
|
|
1642
1705
|
}
|
|
1643
1706
|
),
|
|
1644
|
-
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(AvatarFallback, { className: "
|
|
1707
|
+
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(AvatarFallback, { children: /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("span", { className: "text-[10px]", children: initials }) })
|
|
1645
1708
|
]
|
|
1646
1709
|
}
|
|
1647
1710
|
)
|
|
@@ -1660,7 +1723,7 @@ var AvatarGroupInvitations = (0, import_react2.memo)(function AvatarGroupInvitat
|
|
|
1660
1723
|
/* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1661
1724
|
TooltipTrigger,
|
|
1662
1725
|
{
|
|
1663
|
-
render: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(AvatarGroupCount, { className: "
|
|
1726
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(AvatarGroupCount, { className: "border border-dashed border-primary/40 text-[10px]", children: [
|
|
1664
1727
|
"+",
|
|
1665
1728
|
remainingCount
|
|
1666
1729
|
] })
|
|
@@ -1696,7 +1759,7 @@ var AvatarGroupUsers = (0, import_react3.memo)(function AvatarGroupUsers2({
|
|
|
1696
1759
|
maxDisplay = 3,
|
|
1697
1760
|
fallback = null,
|
|
1698
1761
|
className,
|
|
1699
|
-
size = "
|
|
1762
|
+
size = "sm"
|
|
1700
1763
|
}) {
|
|
1701
1764
|
const list = users != null ? users : [];
|
|
1702
1765
|
if (list.length === 0) {
|
|
@@ -1714,9 +1777,9 @@ var AvatarGroupUsers = (0, import_react3.memo)(function AvatarGroupUsers2({
|
|
|
1714
1777
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1715
1778
|
TooltipTrigger,
|
|
1716
1779
|
{
|
|
1717
|
-
render: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Avatar, { size,
|
|
1780
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Avatar, { size, children: [
|
|
1718
1781
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AvatarImage, { src: (_b = u.image) != null ? _b : void 0, alt: displayName }),
|
|
1719
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AvatarFallback, { children: initials })
|
|
1782
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(AvatarFallback, { children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { className: "text-[10px]", children: initials }) })
|
|
1720
1783
|
] })
|
|
1721
1784
|
}
|
|
1722
1785
|
),
|
|
@@ -1727,7 +1790,7 @@ var AvatarGroupUsers = (0, import_react3.memo)(function AvatarGroupUsers2({
|
|
|
1727
1790
|
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1728
1791
|
TooltipTrigger,
|
|
1729
1792
|
{
|
|
1730
|
-
render: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(AvatarGroupCount, { className: "
|
|
1793
|
+
render: /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(AvatarGroupCount, { className: "text-[10px]", children: [
|
|
1731
1794
|
"+",
|
|
1732
1795
|
remainingCount
|
|
1733
1796
|
] })
|
|
@@ -2042,7 +2105,7 @@ var MetadataProgress = (0, import_react10.memo)(function MetadataProgress2({
|
|
|
2042
2105
|
fields = DEFAULT_METADATA_FIELDS,
|
|
2043
2106
|
completedCount: propCompleted,
|
|
2044
2107
|
totalCount: propTotal,
|
|
2045
|
-
title = "
|
|
2108
|
+
title = "Metadata",
|
|
2046
2109
|
fallback = null,
|
|
2047
2110
|
className
|
|
2048
2111
|
}) {
|
|
@@ -2140,10 +2203,14 @@ var MetadataProgress = (0, import_react10.memo)(function MetadataProgress2({
|
|
|
2140
2203
|
)
|
|
2141
2204
|
}
|
|
2142
2205
|
),
|
|
2143
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.
|
|
2144
|
-
|
|
2145
|
-
|
|
2146
|
-
|
|
2206
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)(TooltipContent, { className: "max-w-xs text-xs", children: completed === total ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { children: [
|
|
2207
|
+
"All ",
|
|
2208
|
+
total,
|
|
2209
|
+
" metadata fields completed"
|
|
2210
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex flex-col gap-1 py-0.5", children: [
|
|
2211
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between gap-4 font-medium text-xs", children: [
|
|
2212
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("span", { children: title }),
|
|
2213
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "font-mono text-[11px] opacity-80", children: [
|
|
2147
2214
|
completed,
|
|
2148
2215
|
"/",
|
|
2149
2216
|
total,
|
|
@@ -2152,15 +2219,12 @@ var MetadataProgress = (0, import_react10.memo)(function MetadataProgress2({
|
|
|
2152
2219
|
"%)"
|
|
2153
2220
|
] })
|
|
2154
2221
|
] }),
|
|
2155
|
-
missing.length > 0
|
|
2156
|
-
|
|
2157
|
-
|
|
2158
|
-
|
|
2159
|
-
|
|
2160
|
-
|
|
2161
|
-
missing.length > 4 ? ` +${missing.length - 4} more` : ""
|
|
2162
|
-
] }) : /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "text-[11px] text-emerald-600 dark:text-emerald-400 font-medium", children: "All metadata fields completed!" })
|
|
2163
|
-
] })
|
|
2222
|
+
missing.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("p", { className: "text-[11px] opacity-80 leading-normal", children: [
|
|
2223
|
+
"Missing: ",
|
|
2224
|
+
missing.slice(0, 3).join(", "),
|
|
2225
|
+
missing.length > 3 ? ` +${missing.length - 3} more` : ""
|
|
2226
|
+
] })
|
|
2227
|
+
] }) })
|
|
2164
2228
|
] });
|
|
2165
2229
|
});
|
|
2166
2230
|
var MetadataStatus = MetadataProgress;
|
|
@@ -2492,16 +2556,18 @@ var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
|
2492
2556
|
var RunningStatus = (0, import_react14.memo)(function RunningStatus2({
|
|
2493
2557
|
count = 0,
|
|
2494
2558
|
isRunning,
|
|
2495
|
-
accessTokens
|
|
2496
|
-
refreshTokens
|
|
2497
|
-
usersCount
|
|
2559
|
+
accessTokens,
|
|
2560
|
+
refreshTokens,
|
|
2561
|
+
usersCount,
|
|
2498
2562
|
runningLabel = "Running",
|
|
2499
2563
|
idleLabel = "Idle",
|
|
2500
|
-
tooltipTitle
|
|
2564
|
+
tooltipTitle,
|
|
2501
2565
|
className
|
|
2502
2566
|
}) {
|
|
2503
2567
|
const activeCount = count != null ? count : 0;
|
|
2504
2568
|
const running = isRunning != null ? isRunning : activeCount > 0;
|
|
2569
|
+
const hasDetails = accessTokens != null && accessTokens > 0 || refreshTokens != null && refreshTokens > 0 || usersCount != null && usersCount > 0;
|
|
2570
|
+
const title = tooltipTitle != null ? tooltipTitle : `${activeCount} Active Token${activeCount === 1 ? "" : "s"}`;
|
|
2505
2571
|
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(Tooltip, { children: [
|
|
2506
2572
|
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
|
|
2507
2573
|
TooltipTrigger,
|
|
@@ -2541,35 +2607,23 @@ var RunningStatus = (0, import_react14.memo)(function RunningStatus2({
|
|
|
2541
2607
|
)
|
|
2542
2608
|
}
|
|
2543
2609
|
),
|
|
2544
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
2545
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
2546
|
-
|
|
2547
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.
|
|
2548
|
-
"span",
|
|
2549
|
-
{
|
|
2550
|
-
className: (0, import_cn22.cn)(
|
|
2551
|
-
"text-[10px] px-1.5 py-0.5 rounded font-medium",
|
|
2552
|
-
running ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : "bg-muted text-muted-foreground"
|
|
2553
|
-
),
|
|
2554
|
-
children: running ? "Active" : "Idle"
|
|
2555
|
-
}
|
|
2556
|
-
)
|
|
2557
|
-
] }),
|
|
2558
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col gap-1 text-[11px]", children: [
|
|
2559
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between text-muted-foreground", children: [
|
|
2560
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Active Access Tokens:" }),
|
|
2561
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono font-medium text-foreground", children: accessTokens != null ? accessTokens : 0 })
|
|
2610
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)(TooltipContent, { className: "text-xs", children: running ? hasDetails ? /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex flex-col gap-1 py-0.5", children: [
|
|
2611
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-medium text-xs", children: title }),
|
|
2612
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "space-y-0.5 text-[11px] opacity-80", children: [
|
|
2613
|
+
accessTokens != null && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2614
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Access tokens" }),
|
|
2615
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono", children: accessTokens })
|
|
2562
2616
|
] }),
|
|
2563
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between
|
|
2564
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "
|
|
2565
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono
|
|
2617
|
+
refreshTokens != null && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2618
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Refresh tokens" }),
|
|
2619
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono", children: refreshTokens })
|
|
2566
2620
|
] }),
|
|
2567
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between
|
|
2568
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Authorized
|
|
2569
|
-
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono
|
|
2621
|
+
usersCount != null && usersCount > 0 && /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2622
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Authorized users" }),
|
|
2623
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono", children: usersCount })
|
|
2570
2624
|
] })
|
|
2571
2625
|
] })
|
|
2572
|
-
] })
|
|
2626
|
+
] }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: title }) : /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "No active tokens" }) })
|
|
2573
2627
|
] });
|
|
2574
2628
|
});
|
|
2575
2629
|
var TokenActivity = RunningStatus;
|
package/dist/index.mjs
CHANGED
|
@@ -35,7 +35,7 @@ var __objRest = (source, exclude) => {
|
|
|
35
35
|
import { ChevronsUpDown, Command, LockIcon } from "lucide-react";
|
|
36
36
|
import Link from "next/link";
|
|
37
37
|
import { usePathname } from "next/navigation";
|
|
38
|
-
import { memo } from "react";
|
|
38
|
+
import { memo, useEffect as useEffect3 } from "react";
|
|
39
39
|
|
|
40
40
|
// src/components/ui/alert-dialog.tsx
|
|
41
41
|
import { AlertDialog as AlertDialogPrimitive } from "@base-ui/react/alert-dialog";
|
|
@@ -1287,7 +1287,7 @@ function SidebarMenuBadge(_a) {
|
|
|
1287
1287
|
}
|
|
1288
1288
|
|
|
1289
1289
|
// src/components/composed/app-sidebar.tsx
|
|
1290
|
-
import { jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1290
|
+
import { Fragment, jsx as jsx12, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1291
1291
|
function renderNavIcon(icon) {
|
|
1292
1292
|
if (!icon) return null;
|
|
1293
1293
|
if (typeof icon === "function" || typeof icon === "object" && icon !== null && "render" in icon) {
|
|
@@ -1305,14 +1305,29 @@ function formatSegment(segment, subHref, navMainItems = [], navSecondaryItems =
|
|
|
1305
1305
|
}
|
|
1306
1306
|
return segment.split("-").map((word) => word.charAt(0).toUpperCase() + word.slice(1)).join(" ");
|
|
1307
1307
|
}
|
|
1308
|
-
function isRouteActive(url, pathname) {
|
|
1308
|
+
function isRouteActive(url, pathname, allItems) {
|
|
1309
1309
|
if (!pathname) return false;
|
|
1310
1310
|
const cleanUrl = url.replace(/\/$/, "") || "/";
|
|
1311
1311
|
const cleanPath = pathname.replace(/\/$/, "") || "/";
|
|
1312
1312
|
if (cleanUrl === "/") return cleanPath === "/";
|
|
1313
|
-
|
|
1313
|
+
if (cleanPath === "/") return false;
|
|
1314
|
+
if (cleanPath === cleanUrl) return true;
|
|
1315
|
+
if (cleanPath.startsWith(`${cleanUrl}/`)) return true;
|
|
1316
|
+
if (allItems == null ? void 0 : allItems.length) {
|
|
1317
|
+
const hasMoreSpecificMatch = allItems.some((item) => {
|
|
1318
|
+
const itemUrl = item.url.replace(/\/$/, "") || "/";
|
|
1319
|
+
if (itemUrl === "/" || itemUrl === cleanUrl) return false;
|
|
1320
|
+
return cleanPath === itemUrl || cleanPath.startsWith(`${itemUrl}/`);
|
|
1321
|
+
});
|
|
1322
|
+
if (hasMoreSpecificMatch) return false;
|
|
1323
|
+
}
|
|
1324
|
+
const urlFirstSegment = cleanUrl.split("/").filter(Boolean)[0];
|
|
1325
|
+
const pathFirstSegment = cleanPath.split("/").filter(Boolean)[0];
|
|
1326
|
+
return Boolean(
|
|
1327
|
+
urlFirstSegment && pathFirstSegment && urlFirstSegment === pathFirstSegment
|
|
1328
|
+
);
|
|
1314
1329
|
}
|
|
1315
|
-
|
|
1330
|
+
function AppSidebarInner({
|
|
1316
1331
|
name = "",
|
|
1317
1332
|
email = "",
|
|
1318
1333
|
orgRole = "",
|
|
@@ -1321,7 +1336,6 @@ var AppSidebar = memo(function AppSidebar2({
|
|
|
1321
1336
|
confirmDialog = false,
|
|
1322
1337
|
headerDropdown = false,
|
|
1323
1338
|
image,
|
|
1324
|
-
defaultOpen = true,
|
|
1325
1339
|
navMainItems,
|
|
1326
1340
|
navSecondaryItems = [],
|
|
1327
1341
|
organizations,
|
|
@@ -1329,11 +1343,20 @@ var AppSidebar = memo(function AppSidebar2({
|
|
|
1329
1343
|
setActiveOrg,
|
|
1330
1344
|
children
|
|
1331
1345
|
}) {
|
|
1332
|
-
const _isMobile = useIsMobile();
|
|
1333
1346
|
const pathname = usePathname();
|
|
1347
|
+
const { setOpenMobile } = useSidebar();
|
|
1334
1348
|
const segments = pathname ? pathname.split("/").filter(Boolean) : [];
|
|
1349
|
+
const allNavItems = [...navMainItems, ...navSecondaryItems];
|
|
1350
|
+
useEffect3(() => {
|
|
1351
|
+
if (pathname) {
|
|
1352
|
+
setOpenMobile(false);
|
|
1353
|
+
}
|
|
1354
|
+
}, [pathname, setOpenMobile]);
|
|
1355
|
+
const handleLinkClick = () => {
|
|
1356
|
+
setOpenMobile(false);
|
|
1357
|
+
};
|
|
1335
1358
|
const initials = name ? name.trim().split(" ").map((n) => n[0]).join("").substring(0, 2).toUpperCase() : "U";
|
|
1336
|
-
return /* @__PURE__ */ jsxs7(
|
|
1359
|
+
return /* @__PURE__ */ jsxs7(Fragment, { children: [
|
|
1337
1360
|
/* @__PURE__ */ jsxs7(Sidebar, { collapsible: "icon", children: [
|
|
1338
1361
|
/* @__PURE__ */ jsx12(SidebarHeader, { children: headerDropdown ? /* @__PURE__ */ jsx12(SidebarMenu, { children: /* @__PURE__ */ jsx12(SidebarMenuItem, { children: /* @__PURE__ */ jsxs7(DropdownMenu, { children: [
|
|
1339
1362
|
/* @__PURE__ */ jsx12(
|
|
@@ -1382,55 +1405,73 @@ var AppSidebar = memo(function AppSidebar2({
|
|
|
1382
1405
|
] })
|
|
1383
1406
|
}
|
|
1384
1407
|
)
|
|
1385
|
-
] }) }) }) : /* @__PURE__ */ jsx12(SidebarMenu, { children: /* @__PURE__ */ jsx12(SidebarMenuItem, { children: /* @__PURE__ */ jsxs7(
|
|
1386
|
-
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
/* @__PURE__ */ jsx12(
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1396
|
-
|
|
1397
|
-
|
|
1398
|
-
|
|
1399
|
-
|
|
1400
|
-
|
|
1401
|
-
|
|
1402
|
-
|
|
1403
|
-
|
|
1404
|
-
|
|
1405
|
-
|
|
1406
|
-
|
|
1407
|
-
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
|
|
1411
|
-
|
|
1412
|
-
|
|
1413
|
-
|
|
1414
|
-
|
|
1415
|
-
|
|
1416
|
-
|
|
1417
|
-
|
|
1418
|
-
|
|
1419
|
-
|
|
1420
|
-
|
|
1421
|
-
|
|
1422
|
-
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
|
|
1426
|
-
/* @__PURE__ */ jsx12(
|
|
1427
|
-
]
|
|
1428
|
-
}
|
|
1429
|
-
),
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1408
|
+
] }) }) }) : /* @__PURE__ */ jsx12(SidebarMenu, { children: /* @__PURE__ */ jsx12(SidebarMenuItem, { children: /* @__PURE__ */ jsxs7(
|
|
1409
|
+
SidebarMenuButton,
|
|
1410
|
+
{
|
|
1411
|
+
size: "lg",
|
|
1412
|
+
render: /* @__PURE__ */ jsx12(Link, { href: "/", onClick: handleLinkClick }),
|
|
1413
|
+
children: [
|
|
1414
|
+
/* @__PURE__ */ jsx12("div", { className: "flex aspect-square size-8 items-center justify-center rounded-lg bg-sidebar-primary text-sidebar-primary-foreground", children: /* @__PURE__ */ jsx12(Command, { className: "size-4" }) }),
|
|
1415
|
+
/* @__PURE__ */ jsxs7("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
|
|
1416
|
+
/* @__PURE__ */ jsx12("span", { className: "truncate font-medium", children: brand }),
|
|
1417
|
+
/* @__PURE__ */ jsx12("span", { className: "truncate text-xs capitalize", children: orgRole })
|
|
1418
|
+
] })
|
|
1419
|
+
]
|
|
1420
|
+
}
|
|
1421
|
+
) }) }) }),
|
|
1422
|
+
/* @__PURE__ */ jsxs7(
|
|
1423
|
+
SidebarContent,
|
|
1424
|
+
{
|
|
1425
|
+
onClick: (e) => {
|
|
1426
|
+
const target = e.target;
|
|
1427
|
+
if (target.closest("a")) {
|
|
1428
|
+
setOpenMobile(false);
|
|
1429
|
+
}
|
|
1430
|
+
},
|
|
1431
|
+
children: [
|
|
1432
|
+
/* @__PURE__ */ jsxs7(SidebarGroup, { children: [
|
|
1433
|
+
/* @__PURE__ */ jsx12(SidebarGroupLabel, { children: "Platform" }),
|
|
1434
|
+
/* @__PURE__ */ jsx12(SidebarMenu, { children: navMainItems.map(({ title, url, icon, locked }) => {
|
|
1435
|
+
const isActive = isRouteActive(url, pathname, allNavItems);
|
|
1436
|
+
return /* @__PURE__ */ jsxs7(SidebarMenuItem, { children: [
|
|
1437
|
+
/* @__PURE__ */ jsxs7(
|
|
1438
|
+
SidebarMenuButton,
|
|
1439
|
+
{
|
|
1440
|
+
isActive,
|
|
1441
|
+
tooltip: title,
|
|
1442
|
+
render: /* @__PURE__ */ jsx12(Link, { href: url, onClick: handleLinkClick }),
|
|
1443
|
+
children: [
|
|
1444
|
+
renderNavIcon(icon),
|
|
1445
|
+
/* @__PURE__ */ jsx12("span", { children: title })
|
|
1446
|
+
]
|
|
1447
|
+
}
|
|
1448
|
+
),
|
|
1449
|
+
locked && /* @__PURE__ */ jsx12(SidebarMenuBadge, { children: /* @__PURE__ */ jsx12(LockIcon, { size: 12 }) })
|
|
1450
|
+
] }, title);
|
|
1451
|
+
}) })
|
|
1452
|
+
] }),
|
|
1453
|
+
/* @__PURE__ */ jsx12(SidebarGroup, { className: "mt-auto", children: /* @__PURE__ */ jsx12(SidebarGroupContent, { children: /* @__PURE__ */ jsx12(SidebarMenu, { children: navSecondaryItems.map(({ title, url, icon, locked }) => {
|
|
1454
|
+
const isActive = isRouteActive(url, pathname, allNavItems);
|
|
1455
|
+
return /* @__PURE__ */ jsxs7(SidebarMenuItem, { children: [
|
|
1456
|
+
/* @__PURE__ */ jsxs7(
|
|
1457
|
+
SidebarMenuButton,
|
|
1458
|
+
{
|
|
1459
|
+
size: "sm",
|
|
1460
|
+
isActive,
|
|
1461
|
+
tooltip: title,
|
|
1462
|
+
render: /* @__PURE__ */ jsx12(Link, { href: url, onClick: handleLinkClick }),
|
|
1463
|
+
children: [
|
|
1464
|
+
renderNavIcon(icon),
|
|
1465
|
+
/* @__PURE__ */ jsx12("span", { children: title })
|
|
1466
|
+
]
|
|
1467
|
+
}
|
|
1468
|
+
),
|
|
1469
|
+
locked && /* @__PURE__ */ jsx12(SidebarMenuBadge, { children: /* @__PURE__ */ jsx12(LockIcon, { size: 12 }) })
|
|
1470
|
+
] }, title);
|
|
1471
|
+
}) }) }) })
|
|
1472
|
+
]
|
|
1473
|
+
}
|
|
1474
|
+
),
|
|
1434
1475
|
/* @__PURE__ */ jsx12(SidebarFooter, { children: /* @__PURE__ */ jsx12(SidebarMenu, { children: /* @__PURE__ */ jsx12(SidebarMenuItem, { children: confirmDialog ? /* @__PURE__ */ jsxs7(AlertDialog, { children: [
|
|
1435
1476
|
/* @__PURE__ */ jsx12(
|
|
1436
1477
|
AlertDialogTrigger,
|
|
@@ -1458,22 +1499,36 @@ var AppSidebar = memo(function AppSidebar2({
|
|
|
1458
1499
|
AlertDialogAction,
|
|
1459
1500
|
{
|
|
1460
1501
|
nativeButton: false,
|
|
1461
|
-
render: /* @__PURE__ */ jsx12(
|
|
1502
|
+
render: /* @__PURE__ */ jsx12(
|
|
1503
|
+
Link,
|
|
1504
|
+
{
|
|
1505
|
+
href,
|
|
1506
|
+
target: "_blank",
|
|
1507
|
+
onClick: handleLinkClick
|
|
1508
|
+
}
|
|
1509
|
+
),
|
|
1462
1510
|
children: "Continue"
|
|
1463
1511
|
}
|
|
1464
1512
|
)
|
|
1465
1513
|
] })
|
|
1466
1514
|
] })
|
|
1467
|
-
] }) : /* @__PURE__ */ jsxs7(
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
|
|
1474
|
-
|
|
1475
|
-
|
|
1476
|
-
|
|
1515
|
+
] }) : /* @__PURE__ */ jsxs7(
|
|
1516
|
+
SidebarMenuButton,
|
|
1517
|
+
{
|
|
1518
|
+
size: "lg",
|
|
1519
|
+
render: /* @__PURE__ */ jsx12(Link, { href, onClick: handleLinkClick }),
|
|
1520
|
+
children: [
|
|
1521
|
+
/* @__PURE__ */ jsxs7(Avatar, { children: [
|
|
1522
|
+
/* @__PURE__ */ jsx12(AvatarImage, { src: image || "", alt: name || "" }),
|
|
1523
|
+
/* @__PURE__ */ jsx12(AvatarFallback, { children: initials })
|
|
1524
|
+
] }),
|
|
1525
|
+
/* @__PURE__ */ jsxs7("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
|
|
1526
|
+
/* @__PURE__ */ jsx12("span", { className: "truncate font-medium", children: name }),
|
|
1527
|
+
/* @__PURE__ */ jsx12("span", { className: "truncate text-xs text-muted-foreground", children: email })
|
|
1528
|
+
] })
|
|
1529
|
+
]
|
|
1530
|
+
}
|
|
1531
|
+
) }) }) }),
|
|
1477
1532
|
/* @__PURE__ */ jsx12(SidebarRail, {})
|
|
1478
1533
|
] }),
|
|
1479
1534
|
/* @__PURE__ */ jsxs7(SidebarInset, { children: [
|
|
@@ -1500,21 +1555,29 @@ var AppSidebar = memo(function AppSidebar2({
|
|
|
1500
1555
|
/* @__PURE__ */ jsx12("div", { className: "p-4 pt-0", children })
|
|
1501
1556
|
] })
|
|
1502
1557
|
] });
|
|
1558
|
+
}
|
|
1559
|
+
var AppSidebar = memo(function AppSidebar2(_a) {
|
|
1560
|
+
var _b = _a, {
|
|
1561
|
+
defaultOpen = true
|
|
1562
|
+
} = _b, props = __objRest(_b, [
|
|
1563
|
+
"defaultOpen"
|
|
1564
|
+
]);
|
|
1565
|
+
return /* @__PURE__ */ jsx12(SidebarProvider, { defaultOpen, children: /* @__PURE__ */ jsx12(AppSidebarInner, __spreadValues({}, props)) });
|
|
1503
1566
|
});
|
|
1504
1567
|
|
|
1505
1568
|
// src/components/composed/columns/avatar-group-invitations.tsx
|
|
1506
1569
|
import { memo as memo2 } from "react";
|
|
1507
|
-
import { Fragment, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1570
|
+
import { Fragment as Fragment2, jsx as jsx13, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1508
1571
|
function getInitials(name, email) {
|
|
1509
1572
|
const target = (name || email || "U").trim();
|
|
1510
|
-
return target.split(/[\s.@]/).filter(Boolean).map((n) => n[0]).join("").slice(0,
|
|
1573
|
+
return target.split(/[\s.@]/).filter(Boolean).map((n) => n[0]).join("").slice(0, 1).toUpperCase();
|
|
1511
1574
|
}
|
|
1512
1575
|
var AvatarGroupInvitations = memo2(function AvatarGroupInvitations2({
|
|
1513
1576
|
invitations,
|
|
1514
1577
|
maxDisplay = 3,
|
|
1515
1578
|
onlyPending = true,
|
|
1516
1579
|
fallback = null,
|
|
1517
|
-
size = "
|
|
1580
|
+
size = "sm",
|
|
1518
1581
|
className
|
|
1519
1582
|
}) {
|
|
1520
1583
|
const list = invitations != null ? invitations : [];
|
|
@@ -1524,7 +1587,7 @@ var AvatarGroupInvitations = memo2(function AvatarGroupInvitations2({
|
|
|
1524
1587
|
}) : list;
|
|
1525
1588
|
if (targetInvites.length === 0) {
|
|
1526
1589
|
if (!fallback) return null;
|
|
1527
|
-
return /* @__PURE__ */ jsx13(
|
|
1590
|
+
return /* @__PURE__ */ jsx13(Fragment2, { children: fallback });
|
|
1528
1591
|
}
|
|
1529
1592
|
const visibleInvites = targetInvites.slice(0, maxDisplay);
|
|
1530
1593
|
const remainingCount = targetInvites.length - visibleInvites.length;
|
|
@@ -1541,7 +1604,7 @@ var AvatarGroupInvitations = memo2(function AvatarGroupInvitations2({
|
|
|
1541
1604
|
Avatar,
|
|
1542
1605
|
{
|
|
1543
1606
|
size,
|
|
1544
|
-
className: "
|
|
1607
|
+
className: "border border-dashed border-primary/40",
|
|
1545
1608
|
children: [
|
|
1546
1609
|
/* @__PURE__ */ jsx13(
|
|
1547
1610
|
AvatarImage,
|
|
@@ -1550,7 +1613,7 @@ var AvatarGroupInvitations = memo2(function AvatarGroupInvitations2({
|
|
|
1550
1613
|
alt: displayName
|
|
1551
1614
|
}
|
|
1552
1615
|
),
|
|
1553
|
-
/* @__PURE__ */ jsx13(AvatarFallback, { className: "
|
|
1616
|
+
/* @__PURE__ */ jsx13(AvatarFallback, { children: /* @__PURE__ */ jsx13("span", { className: "text-[10px]", children: initials }) })
|
|
1554
1617
|
]
|
|
1555
1618
|
}
|
|
1556
1619
|
)
|
|
@@ -1569,7 +1632,7 @@ var AvatarGroupInvitations = memo2(function AvatarGroupInvitations2({
|
|
|
1569
1632
|
/* @__PURE__ */ jsx13(
|
|
1570
1633
|
TooltipTrigger,
|
|
1571
1634
|
{
|
|
1572
|
-
render: /* @__PURE__ */ jsxs8(AvatarGroupCount, { className: "
|
|
1635
|
+
render: /* @__PURE__ */ jsxs8(AvatarGroupCount, { className: "border border-dashed border-primary/40 text-[10px]", children: [
|
|
1573
1636
|
"+",
|
|
1574
1637
|
remainingCount
|
|
1575
1638
|
] })
|
|
@@ -1595,7 +1658,7 @@ var OrganizationInvitations = AvatarGroupInvitations;
|
|
|
1595
1658
|
|
|
1596
1659
|
// src/components/composed/columns/avatar-group-users.tsx
|
|
1597
1660
|
import { memo as memo3 } from "react";
|
|
1598
|
-
import { Fragment as
|
|
1661
|
+
import { Fragment as Fragment3, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1599
1662
|
function getInitials2(name, email) {
|
|
1600
1663
|
const target = (name || email || "U").trim();
|
|
1601
1664
|
return target.split(" ").map((w) => w[0]).join("").slice(0, 2).toUpperCase();
|
|
@@ -1605,12 +1668,12 @@ var AvatarGroupUsers = memo3(function AvatarGroupUsers2({
|
|
|
1605
1668
|
maxDisplay = 3,
|
|
1606
1669
|
fallback = null,
|
|
1607
1670
|
className,
|
|
1608
|
-
size = "
|
|
1671
|
+
size = "sm"
|
|
1609
1672
|
}) {
|
|
1610
1673
|
const list = users != null ? users : [];
|
|
1611
1674
|
if (list.length === 0) {
|
|
1612
1675
|
if (!fallback) return null;
|
|
1613
|
-
return /* @__PURE__ */ jsx14(
|
|
1676
|
+
return /* @__PURE__ */ jsx14(Fragment3, { children: fallback });
|
|
1614
1677
|
}
|
|
1615
1678
|
const visibleUsers = list.slice(0, maxDisplay);
|
|
1616
1679
|
const remainingCount = list.length - visibleUsers.length;
|
|
@@ -1623,9 +1686,9 @@ var AvatarGroupUsers = memo3(function AvatarGroupUsers2({
|
|
|
1623
1686
|
/* @__PURE__ */ jsx14(
|
|
1624
1687
|
TooltipTrigger,
|
|
1625
1688
|
{
|
|
1626
|
-
render: /* @__PURE__ */ jsxs9(Avatar, { size,
|
|
1689
|
+
render: /* @__PURE__ */ jsxs9(Avatar, { size, children: [
|
|
1627
1690
|
/* @__PURE__ */ jsx14(AvatarImage, { src: (_b = u.image) != null ? _b : void 0, alt: displayName }),
|
|
1628
|
-
/* @__PURE__ */ jsx14(AvatarFallback, { children: initials })
|
|
1691
|
+
/* @__PURE__ */ jsx14(AvatarFallback, { children: /* @__PURE__ */ jsx14("span", { className: "text-[10px]", children: initials }) })
|
|
1629
1692
|
] })
|
|
1630
1693
|
}
|
|
1631
1694
|
),
|
|
@@ -1636,7 +1699,7 @@ var AvatarGroupUsers = memo3(function AvatarGroupUsers2({
|
|
|
1636
1699
|
/* @__PURE__ */ jsx14(
|
|
1637
1700
|
TooltipTrigger,
|
|
1638
1701
|
{
|
|
1639
|
-
render: /* @__PURE__ */ jsxs9(AvatarGroupCount, { className: "
|
|
1702
|
+
render: /* @__PURE__ */ jsxs9(AvatarGroupCount, { className: "text-[10px]", children: [
|
|
1640
1703
|
"+",
|
|
1641
1704
|
remainingCount
|
|
1642
1705
|
] })
|
|
@@ -1698,7 +1761,7 @@ var createToastManager = ToastPrimitive.createToastManager;
|
|
|
1698
1761
|
var useToastManager = ToastPrimitive.useToastManager;
|
|
1699
1762
|
|
|
1700
1763
|
// src/components/composed/columns/copyable-code.tsx
|
|
1701
|
-
import { Fragment as
|
|
1764
|
+
import { Fragment as Fragment4, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
1702
1765
|
var CopyableCode = memo5(function CopyableCode2({
|
|
1703
1766
|
value,
|
|
1704
1767
|
label,
|
|
@@ -1737,7 +1800,7 @@ var CopyableCode = memo5(function CopyableCode2({
|
|
|
1737
1800
|
);
|
|
1738
1801
|
if (!value) {
|
|
1739
1802
|
if (!fallback) return null;
|
|
1740
|
-
return /* @__PURE__ */ jsx17(
|
|
1803
|
+
return /* @__PURE__ */ jsx17(Fragment4, { children: fallback });
|
|
1741
1804
|
}
|
|
1742
1805
|
const tooltipText = copied ? "Copied!" : `Copy ${label || "value"}`;
|
|
1743
1806
|
const copyButton = /* @__PURE__ */ jsx17(
|
|
@@ -1938,7 +2001,7 @@ var JoinedLabel = memo9(function JoinedLabel2({
|
|
|
1938
2001
|
// src/components/composed/columns/metadata-progress.tsx
|
|
1939
2002
|
import { cn as cn18 } from "cn";
|
|
1940
2003
|
import { memo as memo10, useMemo as useMemo2 } from "react";
|
|
1941
|
-
import { Fragment as
|
|
2004
|
+
import { Fragment as Fragment5, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
1942
2005
|
var DEFAULT_METADATA_FIELDS = [
|
|
1943
2006
|
{ key: "title", label: "Page Title" },
|
|
1944
2007
|
{ key: "description", label: "Meta Description" },
|
|
@@ -1958,7 +2021,7 @@ var MetadataProgress = memo10(function MetadataProgress2({
|
|
|
1958
2021
|
fields = DEFAULT_METADATA_FIELDS,
|
|
1959
2022
|
completedCount: propCompleted,
|
|
1960
2023
|
totalCount: propTotal,
|
|
1961
|
-
title = "
|
|
2024
|
+
title = "Metadata",
|
|
1962
2025
|
fallback = null,
|
|
1963
2026
|
className
|
|
1964
2027
|
}) {
|
|
@@ -2012,7 +2075,7 @@ var MetadataProgress = memo10(function MetadataProgress2({
|
|
|
2012
2075
|
}, [metadata, fields, propCompleted, propTotal]);
|
|
2013
2076
|
const { completed, total, percentage, missing } = stats;
|
|
2014
2077
|
if (completed === 0 && fallback !== null) {
|
|
2015
|
-
return /* @__PURE__ */ jsx22(
|
|
2078
|
+
return /* @__PURE__ */ jsx22(Fragment5, { children: fallback });
|
|
2016
2079
|
}
|
|
2017
2080
|
return /* @__PURE__ */ jsxs15(Tooltip, { children: [
|
|
2018
2081
|
/* @__PURE__ */ jsx22(
|
|
@@ -2056,10 +2119,14 @@ var MetadataProgress = memo10(function MetadataProgress2({
|
|
|
2056
2119
|
)
|
|
2057
2120
|
}
|
|
2058
2121
|
),
|
|
2059
|
-
/* @__PURE__ */
|
|
2060
|
-
|
|
2061
|
-
|
|
2062
|
-
|
|
2122
|
+
/* @__PURE__ */ jsx22(TooltipContent, { className: "max-w-xs text-xs", children: completed === total ? /* @__PURE__ */ jsxs15("span", { children: [
|
|
2123
|
+
"All ",
|
|
2124
|
+
total,
|
|
2125
|
+
" metadata fields completed"
|
|
2126
|
+
] }) : /* @__PURE__ */ jsxs15("div", { className: "flex flex-col gap-1 py-0.5", children: [
|
|
2127
|
+
/* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between gap-4 font-medium text-xs", children: [
|
|
2128
|
+
/* @__PURE__ */ jsx22("span", { children: title }),
|
|
2129
|
+
/* @__PURE__ */ jsxs15("span", { className: "font-mono text-[11px] opacity-80", children: [
|
|
2063
2130
|
completed,
|
|
2064
2131
|
"/",
|
|
2065
2132
|
total,
|
|
@@ -2068,15 +2135,12 @@ var MetadataProgress = memo10(function MetadataProgress2({
|
|
|
2068
2135
|
"%)"
|
|
2069
2136
|
] })
|
|
2070
2137
|
] }),
|
|
2071
|
-
missing.length > 0
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
missing.length > 4 ? ` +${missing.length - 4} more` : ""
|
|
2078
|
-
] }) : /* @__PURE__ */ jsx22("p", { className: "text-[11px] text-emerald-600 dark:text-emerald-400 font-medium", children: "All metadata fields completed!" })
|
|
2079
|
-
] })
|
|
2138
|
+
missing.length > 0 && /* @__PURE__ */ jsxs15("p", { className: "text-[11px] opacity-80 leading-normal", children: [
|
|
2139
|
+
"Missing: ",
|
|
2140
|
+
missing.slice(0, 3).join(", "),
|
|
2141
|
+
missing.length > 3 ? ` +${missing.length - 3} more` : ""
|
|
2142
|
+
] })
|
|
2143
|
+
] }) })
|
|
2080
2144
|
] });
|
|
2081
2145
|
});
|
|
2082
2146
|
var MetadataStatus = MetadataProgress;
|
|
@@ -2359,7 +2423,7 @@ var PermissionsBadges = PermissionBadges;
|
|
|
2359
2423
|
// src/components/composed/columns/redirect-uris.tsx
|
|
2360
2424
|
import { cn as cn21 } from "cn";
|
|
2361
2425
|
import { memo as memo13, useMemo as useMemo3 } from "react";
|
|
2362
|
-
import { Fragment as
|
|
2426
|
+
import { Fragment as Fragment6, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
2363
2427
|
var RedirectUris = memo13(function RedirectUris2({
|
|
2364
2428
|
uris,
|
|
2365
2429
|
maxDisplay = 1,
|
|
@@ -2374,7 +2438,7 @@ var RedirectUris = memo13(function RedirectUris2({
|
|
|
2374
2438
|
}, [uris]);
|
|
2375
2439
|
if (list.length === 0) {
|
|
2376
2440
|
if (!fallback) return null;
|
|
2377
|
-
return /* @__PURE__ */ jsx25(
|
|
2441
|
+
return /* @__PURE__ */ jsx25(Fragment6, { children: fallback });
|
|
2378
2442
|
}
|
|
2379
2443
|
const primaryUri = list[0];
|
|
2380
2444
|
const remainingCount = list.length - maxDisplay;
|
|
@@ -2415,16 +2479,18 @@ import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
|
2415
2479
|
var RunningStatus = memo14(function RunningStatus2({
|
|
2416
2480
|
count = 0,
|
|
2417
2481
|
isRunning,
|
|
2418
|
-
accessTokens
|
|
2419
|
-
refreshTokens
|
|
2420
|
-
usersCount
|
|
2482
|
+
accessTokens,
|
|
2483
|
+
refreshTokens,
|
|
2484
|
+
usersCount,
|
|
2421
2485
|
runningLabel = "Running",
|
|
2422
2486
|
idleLabel = "Idle",
|
|
2423
|
-
tooltipTitle
|
|
2487
|
+
tooltipTitle,
|
|
2424
2488
|
className
|
|
2425
2489
|
}) {
|
|
2426
2490
|
const activeCount = count != null ? count : 0;
|
|
2427
2491
|
const running = isRunning != null ? isRunning : activeCount > 0;
|
|
2492
|
+
const hasDetails = accessTokens != null && accessTokens > 0 || refreshTokens != null && refreshTokens > 0 || usersCount != null && usersCount > 0;
|
|
2493
|
+
const title = tooltipTitle != null ? tooltipTitle : `${activeCount} Active Token${activeCount === 1 ? "" : "s"}`;
|
|
2428
2494
|
return /* @__PURE__ */ jsxs19(Tooltip, { children: [
|
|
2429
2495
|
/* @__PURE__ */ jsx26(
|
|
2430
2496
|
TooltipTrigger,
|
|
@@ -2464,35 +2530,23 @@ var RunningStatus = memo14(function RunningStatus2({
|
|
|
2464
2530
|
)
|
|
2465
2531
|
}
|
|
2466
2532
|
),
|
|
2467
|
-
/* @__PURE__ */
|
|
2468
|
-
/* @__PURE__ */
|
|
2469
|
-
|
|
2470
|
-
/* @__PURE__ */
|
|
2471
|
-
"span",
|
|
2472
|
-
{
|
|
2473
|
-
className: cn22(
|
|
2474
|
-
"text-[10px] px-1.5 py-0.5 rounded font-medium",
|
|
2475
|
-
running ? "bg-emerald-500/10 text-emerald-600 dark:text-emerald-400" : "bg-muted text-muted-foreground"
|
|
2476
|
-
),
|
|
2477
|
-
children: running ? "Active" : "Idle"
|
|
2478
|
-
}
|
|
2479
|
-
)
|
|
2480
|
-
] }),
|
|
2481
|
-
/* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-1 text-[11px]", children: [
|
|
2482
|
-
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between text-muted-foreground", children: [
|
|
2483
|
-
/* @__PURE__ */ jsx26("span", { children: "Active Access Tokens:" }),
|
|
2484
|
-
/* @__PURE__ */ jsx26("span", { className: "font-mono font-medium text-foreground", children: accessTokens != null ? accessTokens : 0 })
|
|
2533
|
+
/* @__PURE__ */ jsx26(TooltipContent, { className: "text-xs", children: running ? hasDetails ? /* @__PURE__ */ jsxs19("div", { className: "flex flex-col gap-1 py-0.5", children: [
|
|
2534
|
+
/* @__PURE__ */ jsx26("span", { className: "font-medium text-xs", children: title }),
|
|
2535
|
+
/* @__PURE__ */ jsxs19("div", { className: "space-y-0.5 text-[11px] opacity-80", children: [
|
|
2536
|
+
accessTokens != null && /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2537
|
+
/* @__PURE__ */ jsx26("span", { children: "Access tokens" }),
|
|
2538
|
+
/* @__PURE__ */ jsx26("span", { className: "font-mono", children: accessTokens })
|
|
2485
2539
|
] }),
|
|
2486
|
-
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between
|
|
2487
|
-
/* @__PURE__ */ jsx26("span", { children: "
|
|
2488
|
-
/* @__PURE__ */ jsx26("span", { className: "font-mono
|
|
2540
|
+
refreshTokens != null && /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2541
|
+
/* @__PURE__ */ jsx26("span", { children: "Refresh tokens" }),
|
|
2542
|
+
/* @__PURE__ */ jsx26("span", { className: "font-mono", children: refreshTokens })
|
|
2489
2543
|
] }),
|
|
2490
|
-
/* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between
|
|
2491
|
-
/* @__PURE__ */ jsx26("span", { children: "Authorized
|
|
2492
|
-
/* @__PURE__ */ jsx26("span", { className: "font-mono
|
|
2544
|
+
usersCount != null && usersCount > 0 && /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between gap-4", children: [
|
|
2545
|
+
/* @__PURE__ */ jsx26("span", { children: "Authorized users" }),
|
|
2546
|
+
/* @__PURE__ */ jsx26("span", { className: "font-mono", children: usersCount })
|
|
2493
2547
|
] })
|
|
2494
2548
|
] })
|
|
2495
|
-
] })
|
|
2549
|
+
] }) : /* @__PURE__ */ jsx26("span", { children: title }) : /* @__PURE__ */ jsx26("span", { children: "No active tokens" }) })
|
|
2496
2550
|
] });
|
|
2497
2551
|
});
|
|
2498
2552
|
var TokenActivity = RunningStatus;
|
|
@@ -3064,12 +3118,12 @@ function DataTableFooterPagination({
|
|
|
3064
3118
|
|
|
3065
3119
|
// src/components/composed/data-table/table-header-add.tsx
|
|
3066
3120
|
import { PlusIcon } from "lucide-react";
|
|
3067
|
-
import { Fragment as
|
|
3121
|
+
import { Fragment as Fragment7, jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
3068
3122
|
function DataTableHeaderAdd({
|
|
3069
3123
|
onAdd,
|
|
3070
3124
|
addLabel
|
|
3071
3125
|
}) {
|
|
3072
|
-
return /* @__PURE__ */ jsxs25(
|
|
3126
|
+
return /* @__PURE__ */ jsxs25(Fragment7, { children: [
|
|
3073
3127
|
/* @__PURE__ */ jsxs25(Tooltip, { children: [
|
|
3074
3128
|
/* @__PURE__ */ jsx36(
|
|
3075
3129
|
TooltipTrigger,
|
|
@@ -3787,7 +3841,7 @@ function SelectScrollDownButton(_a) {
|
|
|
3787
3841
|
}
|
|
3788
3842
|
|
|
3789
3843
|
// src/components/composed/data-table/table-header-filter.tsx
|
|
3790
|
-
import { Fragment as
|
|
3844
|
+
import { Fragment as Fragment8, jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
3791
3845
|
function smartFilterFn(row, columnId, filterValue) {
|
|
3792
3846
|
var _a, _b, _c;
|
|
3793
3847
|
if (filterValue === void 0 || filterValue === null || filterValue === "" || filterValue === "all") {
|
|
@@ -4129,7 +4183,7 @@ function DataTableHeaderFilter({
|
|
|
4129
4183
|
column.id
|
|
4130
4184
|
);
|
|
4131
4185
|
}) }),
|
|
4132
|
-
columnFilters.length > 0 && /* @__PURE__ */ jsxs28(
|
|
4186
|
+
columnFilters.length > 0 && /* @__PURE__ */ jsxs28(Fragment8, { children: [
|
|
4133
4187
|
/* @__PURE__ */ jsx41(DropdownMenuSeparator, {}),
|
|
4134
4188
|
/* @__PURE__ */ jsx41(
|
|
4135
4189
|
DropdownMenuItem,
|
|
@@ -4219,7 +4273,7 @@ function DataTableHeaderSearch({
|
|
|
4219
4273
|
|
|
4220
4274
|
// src/components/composed/data-table/table-header-sort.tsx
|
|
4221
4275
|
import { ArrowDownIcon, ArrowUpDownIcon, ArrowUpIcon } from "lucide-react";
|
|
4222
|
-
import { Fragment as
|
|
4276
|
+
import { Fragment as Fragment9, jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
|
|
4223
4277
|
function DataTableHeaderSort({
|
|
4224
4278
|
table,
|
|
4225
4279
|
sorting
|
|
@@ -4275,7 +4329,7 @@ function DataTableHeaderSort({
|
|
|
4275
4329
|
column.id
|
|
4276
4330
|
);
|
|
4277
4331
|
}),
|
|
4278
|
-
sorting.length > 0 && /* @__PURE__ */ jsxs31(
|
|
4332
|
+
sorting.length > 0 && /* @__PURE__ */ jsxs31(Fragment9, { children: [
|
|
4279
4333
|
/* @__PURE__ */ jsx44(DropdownMenuSeparator, {}),
|
|
4280
4334
|
/* @__PURE__ */ jsx44(
|
|
4281
4335
|
DropdownMenuItem,
|
|
@@ -4335,8 +4389,8 @@ function DataTableHeaderToggle({
|
|
|
4335
4389
|
|
|
4336
4390
|
// src/components/composed/data-table/data-row-actions.tsx
|
|
4337
4391
|
import { MoreHorizontal } from "lucide-react";
|
|
4338
|
-
import { Fragment as
|
|
4339
|
-
import { Fragment as
|
|
4392
|
+
import { Fragment as Fragment10 } from "react";
|
|
4393
|
+
import { Fragment as Fragment11, jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
|
|
4340
4394
|
function RowActions({
|
|
4341
4395
|
label = "Actions",
|
|
4342
4396
|
items = [],
|
|
@@ -4367,7 +4421,7 @@ function RowActions({
|
|
|
4367
4421
|
align,
|
|
4368
4422
|
className: cn26("w-40", contentClassName),
|
|
4369
4423
|
children: /* @__PURE__ */ jsxs33(DropdownMenuGroup, { children: [
|
|
4370
|
-
label && /* @__PURE__ */ jsxs33(
|
|
4424
|
+
label && /* @__PURE__ */ jsxs33(Fragment11, { children: [
|
|
4371
4425
|
/* @__PURE__ */ jsx46(DropdownMenuLabel, { children: label }),
|
|
4372
4426
|
/* @__PURE__ */ jsx46(DropdownMenuSeparator, {})
|
|
4373
4427
|
] }),
|
|
@@ -4375,7 +4429,7 @@ function RowActions({
|
|
|
4375
4429
|
var _a;
|
|
4376
4430
|
const itemKey = (_a = item.id) != null ? _a : `${item.label}-${index}`;
|
|
4377
4431
|
const isDestructive = item.variant === "destructive";
|
|
4378
|
-
return /* @__PURE__ */ jsxs33(
|
|
4432
|
+
return /* @__PURE__ */ jsxs33(Fragment10, { children: [
|
|
4379
4433
|
item.separatorBefore && /* @__PURE__ */ jsx46(DropdownMenuSeparator, {}),
|
|
4380
4434
|
/* @__PURE__ */ jsxs33(
|
|
4381
4435
|
DropdownMenuItem,
|