@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.
Files changed (3) hide show
  1. package/dist/index.js +172 -118
  2. package/dist/index.mjs +194 -140
  3. 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
- return cleanPath === cleanUrl || cleanPath.startsWith(`${cleanUrl}/`);
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
- var AppSidebar = (0, import_react.memo)(function AppSidebar2({
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)(SidebarProvider, { defaultOpen, children: [
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)(SidebarMenuButton, { size: "lg", render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: "/" }), children: [
1477
- /* @__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" }) }),
1478
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
1479
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate font-medium", children: brand }),
1480
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate text-xs capitalize", children: orgRole })
1481
- ] })
1482
- ] }) }) }) }),
1483
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarContent, { children: [
1484
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarGroup, { children: [
1485
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarGroupLabel, { children: "Platform" }),
1486
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenu, { children: navMainItems.map(({ title, url, icon, locked }) => {
1487
- const isActive = isRouteActive(url, pathname);
1488
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarMenuItem, { children: [
1489
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1490
- SidebarMenuButton,
1491
- {
1492
- isActive,
1493
- tooltip: title,
1494
- render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: url }),
1495
- children: [
1496
- renderNavIcon(icon),
1497
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: title })
1498
- ]
1499
- }
1500
- ),
1501
- locked && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuBadge, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.LockIcon, { size: 12 }) })
1502
- ] }, title);
1503
- }) })
1504
- ] }),
1505
- /* @__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 }) => {
1506
- const isActive = isRouteActive(url, pathname);
1507
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(SidebarMenuItem, { children: [
1508
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
1509
- SidebarMenuButton,
1510
- {
1511
- size: "sm",
1512
- isActive,
1513
- tooltip: title,
1514
- render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href: url }),
1515
- children: [
1516
- renderNavIcon(icon),
1517
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: title })
1518
- ]
1519
- }
1520
- ),
1521
- locked && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(SidebarMenuBadge, { children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_lucide_react5.LockIcon, { size: 12 }) })
1522
- ] }, title);
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)(import_link.default, { href, target: "_blank" }),
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)(SidebarMenuButton, { size: "lg", render: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_link.default, { href }), children: [
1559
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(Avatar, { children: [
1560
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AvatarImage, { src: image || "", alt: name || "" }),
1561
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(AvatarFallback, { children: initials })
1562
- ] }),
1563
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
1564
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate font-medium", children: name }),
1565
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: "truncate text-xs text-muted-foreground", children: email })
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, 2).toUpperCase();
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 = "default",
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: "cursor-pointer border border-dashed border-primary/40",
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: "bg-muted text-xs", children: initials })
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: "cursor-pointer border border-dashed border-primary/40 font-mono", children: [
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 = "default"
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, className: "cursor-pointer", children: [
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: "cursor-pointer font-mono", children: [
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 = "Website Metadata",
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.jsxs)(TooltipContent, { className: "max-w-xs text-xs space-y-1.5 p-3", children: [
2144
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: "flex items-center justify-between border-b pb-1", children: [
2145
- /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "font-semibold text-xs", children: title }),
2146
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "font-mono text-[11px] text-muted-foreground", children: [
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 ? /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("p", { className: "text-[11px] text-muted-foreground leading-relaxed", children: [
2156
- /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("span", { className: "text-amber-600 dark:text-amber-400 font-medium", children: [
2157
- "Missing:",
2158
- " "
2159
- ] }),
2160
- missing.slice(0, 4).join(", "),
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 = 0,
2496
- refreshTokens = 0,
2497
- usersCount = 0,
2559
+ accessTokens,
2560
+ refreshTokens,
2561
+ usersCount,
2498
2562
  runningLabel = "Running",
2499
2563
  idleLabel = "Idle",
2500
- tooltipTitle = "Sessions & Active Tokens",
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.jsxs)(TooltipContent, { className: "text-xs space-y-2 p-3 min-w-[200px]", children: [
2545
- /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { className: "flex items-center justify-between border-b pb-1.5", children: [
2546
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-semibold text-xs", children: tooltipTitle }),
2547
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)(
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 text-muted-foreground", children: [
2564
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Active Refresh Tokens:" }),
2565
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono font-medium text-foreground", children: refreshTokens != null ? refreshTokens : 0 })
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 text-muted-foreground", children: [
2568
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: "Authorized Users:" }),
2569
- /* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { className: "font-mono font-medium text-foreground", children: usersCount != null ? usersCount : 0 })
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
- return cleanPath === cleanUrl || cleanPath.startsWith(`${cleanUrl}/`);
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
- var AppSidebar = memo(function AppSidebar2({
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(SidebarProvider, { defaultOpen, children: [
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(SidebarMenuButton, { size: "lg", render: /* @__PURE__ */ jsx12(Link, { href: "/" }), children: [
1386
- /* @__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" }) }),
1387
- /* @__PURE__ */ jsxs7("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
1388
- /* @__PURE__ */ jsx12("span", { className: "truncate font-medium", children: brand }),
1389
- /* @__PURE__ */ jsx12("span", { className: "truncate text-xs capitalize", children: orgRole })
1390
- ] })
1391
- ] }) }) }) }),
1392
- /* @__PURE__ */ jsxs7(SidebarContent, { children: [
1393
- /* @__PURE__ */ jsxs7(SidebarGroup, { children: [
1394
- /* @__PURE__ */ jsx12(SidebarGroupLabel, { children: "Platform" }),
1395
- /* @__PURE__ */ jsx12(SidebarMenu, { children: navMainItems.map(({ title, url, icon, locked }) => {
1396
- const isActive = isRouteActive(url, pathname);
1397
- return /* @__PURE__ */ jsxs7(SidebarMenuItem, { children: [
1398
- /* @__PURE__ */ jsxs7(
1399
- SidebarMenuButton,
1400
- {
1401
- isActive,
1402
- tooltip: title,
1403
- render: /* @__PURE__ */ jsx12(Link, { href: url }),
1404
- children: [
1405
- renderNavIcon(icon),
1406
- /* @__PURE__ */ jsx12("span", { children: title })
1407
- ]
1408
- }
1409
- ),
1410
- locked && /* @__PURE__ */ jsx12(SidebarMenuBadge, { children: /* @__PURE__ */ jsx12(LockIcon, { size: 12 }) })
1411
- ] }, title);
1412
- }) })
1413
- ] }),
1414
- /* @__PURE__ */ jsx12(SidebarGroup, { className: "mt-auto", children: /* @__PURE__ */ jsx12(SidebarGroupContent, { children: /* @__PURE__ */ jsx12(SidebarMenu, { children: navSecondaryItems.map(({ title, url, icon, locked }) => {
1415
- const isActive = isRouteActive(url, pathname);
1416
- return /* @__PURE__ */ jsxs7(SidebarMenuItem, { children: [
1417
- /* @__PURE__ */ jsxs7(
1418
- SidebarMenuButton,
1419
- {
1420
- size: "sm",
1421
- isActive,
1422
- tooltip: title,
1423
- render: /* @__PURE__ */ jsx12(Link, { href: url }),
1424
- children: [
1425
- renderNavIcon(icon),
1426
- /* @__PURE__ */ jsx12("span", { children: title })
1427
- ]
1428
- }
1429
- ),
1430
- locked && /* @__PURE__ */ jsx12(SidebarMenuBadge, { children: /* @__PURE__ */ jsx12(LockIcon, { size: 12 }) })
1431
- ] }, title);
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(Link, { href, target: "_blank" }),
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(SidebarMenuButton, { size: "lg", render: /* @__PURE__ */ jsx12(Link, { href }), children: [
1468
- /* @__PURE__ */ jsxs7(Avatar, { children: [
1469
- /* @__PURE__ */ jsx12(AvatarImage, { src: image || "", alt: name || "" }),
1470
- /* @__PURE__ */ jsx12(AvatarFallback, { children: initials })
1471
- ] }),
1472
- /* @__PURE__ */ jsxs7("div", { className: "grid flex-1 text-left text-sm leading-tight", children: [
1473
- /* @__PURE__ */ jsx12("span", { className: "truncate font-medium", children: name }),
1474
- /* @__PURE__ */ jsx12("span", { className: "truncate text-xs text-muted-foreground", children: email })
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, 2).toUpperCase();
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 = "default",
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(Fragment, { children: fallback });
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: "cursor-pointer border border-dashed border-primary/40",
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: "bg-muted text-xs", children: initials })
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: "cursor-pointer border border-dashed border-primary/40 font-mono", children: [
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 Fragment2, jsx as jsx14, jsxs as jsxs9 } from "react/jsx-runtime";
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 = "default"
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(Fragment2, { children: fallback });
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, className: "cursor-pointer", children: [
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: "cursor-pointer font-mono", children: [
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 Fragment3, jsx as jsx17, jsxs as jsxs12 } from "react/jsx-runtime";
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(Fragment3, { children: fallback });
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 Fragment4, jsx as jsx22, jsxs as jsxs15 } from "react/jsx-runtime";
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 = "Website Metadata",
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(Fragment4, { children: fallback });
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__ */ jsxs15(TooltipContent, { className: "max-w-xs text-xs space-y-1.5 p-3", children: [
2060
- /* @__PURE__ */ jsxs15("div", { className: "flex items-center justify-between border-b pb-1", children: [
2061
- /* @__PURE__ */ jsx22("p", { className: "font-semibold text-xs", children: title }),
2062
- /* @__PURE__ */ jsxs15("span", { className: "font-mono text-[11px] text-muted-foreground", children: [
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 ? /* @__PURE__ */ jsxs15("p", { className: "text-[11px] text-muted-foreground leading-relaxed", children: [
2072
- /* @__PURE__ */ jsxs15("span", { className: "text-amber-600 dark:text-amber-400 font-medium", children: [
2073
- "Missing:",
2074
- " "
2075
- ] }),
2076
- missing.slice(0, 4).join(", "),
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 Fragment5, jsx as jsx25, jsxs as jsxs18 } from "react/jsx-runtime";
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(Fragment5, { children: fallback });
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 = 0,
2419
- refreshTokens = 0,
2420
- usersCount = 0,
2482
+ accessTokens,
2483
+ refreshTokens,
2484
+ usersCount,
2421
2485
  runningLabel = "Running",
2422
2486
  idleLabel = "Idle",
2423
- tooltipTitle = "Sessions & Active Tokens",
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__ */ jsxs19(TooltipContent, { className: "text-xs space-y-2 p-3 min-w-[200px]", children: [
2468
- /* @__PURE__ */ jsxs19("div", { className: "flex items-center justify-between border-b pb-1.5", children: [
2469
- /* @__PURE__ */ jsx26("span", { className: "font-semibold text-xs", children: tooltipTitle }),
2470
- /* @__PURE__ */ jsx26(
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 text-muted-foreground", children: [
2487
- /* @__PURE__ */ jsx26("span", { children: "Active Refresh Tokens:" }),
2488
- /* @__PURE__ */ jsx26("span", { className: "font-mono font-medium text-foreground", children: refreshTokens != null ? refreshTokens : 0 })
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 text-muted-foreground", children: [
2491
- /* @__PURE__ */ jsx26("span", { children: "Authorized Users:" }),
2492
- /* @__PURE__ */ jsx26("span", { className: "font-mono font-medium text-foreground", children: usersCount != null ? usersCount : 0 })
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 Fragment6, jsx as jsx36, jsxs as jsxs25 } from "react/jsx-runtime";
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(Fragment6, { children: [
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 Fragment7, jsx as jsx41, jsxs as jsxs28 } from "react/jsx-runtime";
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(Fragment7, { children: [
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 Fragment8, jsx as jsx44, jsxs as jsxs31 } from "react/jsx-runtime";
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(Fragment8, { children: [
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 Fragment9 } from "react";
4339
- import { Fragment as Fragment10, jsx as jsx46, jsxs as jsxs33 } from "react/jsx-runtime";
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(Fragment10, { children: [
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(Fragment9, { children: [
4432
+ return /* @__PURE__ */ jsxs33(Fragment10, { children: [
4379
4433
  item.separatorBefore && /* @__PURE__ */ jsx46(DropdownMenuSeparator, {}),
4380
4434
  /* @__PURE__ */ jsxs33(
4381
4435
  DropdownMenuItem,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prediktif/ui",
3
- "version": "0.1.25",
3
+ "version": "0.1.27",
4
4
  "main": "./dist/index.js",
5
5
  "module": "./dist/index.mjs",
6
6
  "types": "./dist/index.d.ts",