@opensite/ui 1.1.4 → 1.1.6

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.
@@ -1542,7 +1542,7 @@ var DesktopMenuItem = ({
1542
1542
  if (hasDropdown) {
1543
1543
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
1544
1544
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
1545
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container", children: renderDropdownContent(item, optixFlowConfig) }) }) })
1545
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[calc(100vw-2rem)] max-w-7xl animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: renderDropdownContent(item, optixFlowConfig) }) })
1546
1546
  ] }, `desktop-menu-item-${index}`);
1547
1547
  }
1548
1548
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1697,7 +1697,7 @@ var GroupLinks = ({ groupLinks }) => {
1697
1697
  };
1698
1698
  if (!groupLinks) return null;
1699
1699
  let linkIndex = 0;
1700
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1700
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
1701
1701
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs", children: group.label }),
1702
1702
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-4 w-full", children: group.links.map((link, index2) => {
1703
1703
  const idx = linkIndex++;
@@ -1517,7 +1517,7 @@ var DesktopMenuItem = ({
1517
1517
  if (hasDropdown) {
1518
1518
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
1519
1519
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
1520
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsx("div", { className: "container", children: renderDropdownContent(item, optixFlowConfig) }) }) })
1520
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsx("div", { className: "w-[calc(100vw-2rem)] max-w-7xl animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: renderDropdownContent(item, optixFlowConfig) }) })
1521
1521
  ] }, `desktop-menu-item-${index}`);
1522
1522
  }
1523
1523
  return /* @__PURE__ */ jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsx(
@@ -1672,7 +1672,7 @@ var GroupLinks = ({ groupLinks }) => {
1672
1672
  };
1673
1673
  if (!groupLinks) return null;
1674
1674
  let linkIndex = 0;
1675
- return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { children: [
1675
+ return /* @__PURE__ */ jsx("div", { className: "flex items-start gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
1676
1676
  /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs", children: group.label }),
1677
1677
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-4 w-full", children: group.links.map((link, index2) => {
1678
1678
  const idx = linkIndex++;
@@ -1569,7 +1569,7 @@ var MobileNavigationMenu = ({
1569
1569
  onClose: () => setOpen(false),
1570
1570
  title: "Mobile Navigation",
1571
1571
  className: "dark",
1572
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between gap-20", children: [
1572
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between gap-4", children: [
1573
1573
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem(item, index)) }),
1574
1574
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 pb-20", children: renderMobileAuthActions })
1575
1575
  ] }) })
@@ -1587,7 +1587,7 @@ var renderMobileMenuItem = (item, index) => {
1587
1587
  Pressable,
1588
1588
  {
1589
1589
  href: item.url,
1590
- className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1 nth-last-1:border-0",
1590
+ className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1",
1591
1591
  children: item.title
1592
1592
  },
1593
1593
  `nav-link-${index}`
@@ -1546,7 +1546,7 @@ var MobileNavigationMenu = ({
1546
1546
  onClose: () => setOpen(false),
1547
1547
  title: "Mobile Navigation",
1548
1548
  className: "dark",
1549
- children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col justify-between gap-20", children: [
1549
+ children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col justify-between gap-4", children: [
1550
1550
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem(item, index)) }),
1551
1551
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 pb-20", children: renderMobileAuthActions })
1552
1552
  ] }) })
@@ -1564,7 +1564,7 @@ var renderMobileMenuItem = (item, index) => {
1564
1564
  Pressable,
1565
1565
  {
1566
1566
  href: item.url,
1567
- className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1 nth-last-1:border-0",
1567
+ className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1",
1568
1568
  children: item.title
1569
1569
  },
1570
1570
  `nav-link-${index}`
@@ -1479,8 +1479,8 @@ var NavbarEducationPlatform = ({
1479
1479
  open: isOpen,
1480
1480
  onClose: handleMobileMenuClose,
1481
1481
  menu: menu ?? [],
1482
- mobileAuthActions,
1483
- mobileAuthActionsSlot,
1482
+ mobileAuthActions: mobileAuthActions ?? authActions,
1483
+ mobileAuthActionsSlot: mobileAuthActionsSlot ?? authActionsSlot,
1484
1484
  mobileMenuClassName
1485
1485
  }
1486
1486
  )
@@ -1455,8 +1455,8 @@ var NavbarEducationPlatform = ({
1455
1455
  open: isOpen,
1456
1456
  onClose: handleMobileMenuClose,
1457
1457
  menu: menu ?? [],
1458
- mobileAuthActions,
1459
- mobileAuthActionsSlot,
1458
+ mobileAuthActions: mobileAuthActions ?? authActions,
1459
+ mobileAuthActionsSlot: mobileAuthActionsSlot ?? authActionsSlot,
1460
1460
  mobileMenuClassName
1461
1461
  }
1462
1462
  )
@@ -1378,11 +1378,11 @@ var NavbarFeatureGrid = ({
1378
1378
  children: /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuList, { children: [
1379
1379
  features && features.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
1380
1380
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: "Features" }),
1381
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-[600px] grid-cols-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
1381
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-[600px] grid-cols-2 space-x-4 space-y-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
1382
1382
  NavigationMenuLink,
1383
1383
  {
1384
1384
  href: feature.href,
1385
- className: "rounded-md p-3 transition-colors hover:bg-muted/70",
1385
+ className: "w-full justify-start rounded-md p-3 transition-colors hover:bg-muted/70",
1386
1386
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1387
1387
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1 font-semibold", children: feature.title }),
1388
1388
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
@@ -1355,11 +1355,11 @@ var NavbarFeatureGrid = ({
1355
1355
  children: /* @__PURE__ */ jsxs(NavigationMenuList, { children: [
1356
1356
  features && features.length > 0 && /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
1357
1357
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { children: "Features" }),
1358
- /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsx("div", { className: "grid w-[600px] grid-cols-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsx(
1358
+ /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsx("div", { className: "grid w-[600px] grid-cols-2 space-x-4 space-y-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsx(
1359
1359
  NavigationMenuLink,
1360
1360
  {
1361
1361
  href: feature.href,
1362
- className: "rounded-md p-3 transition-colors hover:bg-muted/70",
1362
+ className: "w-full justify-start rounded-md p-3 transition-colors hover:bg-muted/70",
1363
1363
  children: /* @__PURE__ */ jsxs("div", { children: [
1364
1364
  /* @__PURE__ */ jsx("p", { className: "mb-1 font-semibold", children: feature.title }),
1365
1365
  /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
@@ -1643,7 +1643,10 @@ var NavbarMegaMenu = ({
1643
1643
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
1644
1644
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks?.map((link, index) => {
1645
1645
  if (hasDropdownItems(link)) {
1646
- const items = link.links || [];
1646
+ const hasGroups = link.dropdownGroups && link.dropdownGroups.length > 0;
1647
+ const items = hasGroups ? link.dropdownGroups.flatMap(
1648
+ (group) => group.links || []
1649
+ ) : link.links || [];
1647
1650
  return /* @__PURE__ */ jsxRuntime.jsxs(
1648
1651
  AccordionItem,
1649
1652
  {
@@ -1651,24 +1654,63 @@ var NavbarMegaMenu = ({
1651
1654
  className: "border-b-0",
1652
1655
  children: [
1653
1656
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
1654
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1655
- Pressable,
1656
- {
1657
- href: getLinkUrl(item),
1658
- className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
1659
- children: [
1660
- (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1661
- DynamicIcon,
1662
- {
1663
- name: item.iconName,
1664
- size: 14
1665
- }
1666
- ) : null),
1667
- item.label
1668
- ]
1669
- },
1670
- `mobile-link-${index}-${itemIndex}`
1671
- )) })
1657
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: hasGroups ? (
1658
+ // Render with group headers
1659
+ link.dropdownGroups.map(
1660
+ (group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1661
+ "div",
1662
+ {
1663
+ className: "mb-4",
1664
+ children: [
1665
+ group.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 pl-4 text-xs font-medium tracking-wider uppercase text-muted-foreground", children: group.label }),
1666
+ (group.links || []).map(
1667
+ (item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1668
+ Pressable,
1669
+ {
1670
+ href: getLinkUrl(item),
1671
+ onClick: () => setOpen(false),
1672
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
1673
+ children: [
1674
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1675
+ DynamicIcon,
1676
+ {
1677
+ name: item.iconName,
1678
+ size: 14
1679
+ }
1680
+ ) : null),
1681
+ item.label
1682
+ ]
1683
+ },
1684
+ `mobile-group-link-${groupIndex}-${itemIndex}`
1685
+ )
1686
+ )
1687
+ ]
1688
+ },
1689
+ `mobile-group-${groupIndex}`
1690
+ )
1691
+ )
1692
+ ) : (
1693
+ // Render flat list
1694
+ items.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1695
+ Pressable,
1696
+ {
1697
+ href: getLinkUrl(item),
1698
+ onClick: () => setOpen(false),
1699
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
1700
+ children: [
1701
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1702
+ DynamicIcon,
1703
+ {
1704
+ name: item.iconName,
1705
+ size: 14
1706
+ }
1707
+ ) : null),
1708
+ item.label
1709
+ ]
1710
+ },
1711
+ `mobile-link-${index}-${itemIndex}`
1712
+ ))
1713
+ ) })
1672
1714
  ]
1673
1715
  },
1674
1716
  `mobile-menu-link-${index}`
@@ -1681,6 +1723,7 @@ var NavbarMegaMenu = ({
1681
1723
  Pressable,
1682
1724
  {
1683
1725
  href: link.href,
1726
+ onClick: () => setOpen(false),
1684
1727
  className: "flex h-15 items-center text-base font-normal text-foreground",
1685
1728
  children: link.label
1686
1729
  },
@@ -1620,7 +1620,10 @@ var NavbarMegaMenu = ({
1620
1620
  children: /* @__PURE__ */ jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
1621
1621
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks?.map((link, index) => {
1622
1622
  if (hasDropdownItems(link)) {
1623
- const items = link.links || [];
1623
+ const hasGroups = link.dropdownGroups && link.dropdownGroups.length > 0;
1624
+ const items = hasGroups ? link.dropdownGroups.flatMap(
1625
+ (group) => group.links || []
1626
+ ) : link.links || [];
1624
1627
  return /* @__PURE__ */ jsxs(
1625
1628
  AccordionItem,
1626
1629
  {
@@ -1628,24 +1631,63 @@ var NavbarMegaMenu = ({
1628
1631
  className: "border-b-0",
1629
1632
  children: [
1630
1633
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
1631
- /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1632
- Pressable,
1633
- {
1634
- href: getLinkUrl(item),
1635
- className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
1636
- children: [
1637
- (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
1638
- DynamicIcon,
1639
- {
1640
- name: item.iconName,
1641
- size: 14
1642
- }
1643
- ) : null),
1644
- item.label
1645
- ]
1646
- },
1647
- `mobile-link-${index}-${itemIndex}`
1648
- )) })
1634
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: hasGroups ? (
1635
+ // Render with group headers
1636
+ link.dropdownGroups.map(
1637
+ (group, groupIndex) => /* @__PURE__ */ jsxs(
1638
+ "div",
1639
+ {
1640
+ className: "mb-4",
1641
+ children: [
1642
+ group.label && /* @__PURE__ */ jsx("div", { className: "mb-2 pl-4 text-xs font-medium tracking-wider uppercase text-muted-foreground", children: group.label }),
1643
+ (group.links || []).map(
1644
+ (item, itemIndex) => /* @__PURE__ */ jsxs(
1645
+ Pressable,
1646
+ {
1647
+ href: getLinkUrl(item),
1648
+ onClick: () => setOpen(false),
1649
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
1650
+ children: [
1651
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
1652
+ DynamicIcon,
1653
+ {
1654
+ name: item.iconName,
1655
+ size: 14
1656
+ }
1657
+ ) : null),
1658
+ item.label
1659
+ ]
1660
+ },
1661
+ `mobile-group-link-${groupIndex}-${itemIndex}`
1662
+ )
1663
+ )
1664
+ ]
1665
+ },
1666
+ `mobile-group-${groupIndex}`
1667
+ )
1668
+ )
1669
+ ) : (
1670
+ // Render flat list
1671
+ items.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1672
+ Pressable,
1673
+ {
1674
+ href: getLinkUrl(item),
1675
+ onClick: () => setOpen(false),
1676
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
1677
+ children: [
1678
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
1679
+ DynamicIcon,
1680
+ {
1681
+ name: item.iconName,
1682
+ size: 14
1683
+ }
1684
+ ) : null),
1685
+ item.label
1686
+ ]
1687
+ },
1688
+ `mobile-link-${index}-${itemIndex}`
1689
+ ))
1690
+ ) })
1649
1691
  ]
1650
1692
  },
1651
1693
  `mobile-menu-link-${index}`
@@ -1658,6 +1700,7 @@ var NavbarMegaMenu = ({
1658
1700
  Pressable,
1659
1701
  {
1660
1702
  href: link.href,
1703
+ onClick: () => setOpen(false),
1661
1704
  className: "flex h-15 items-center text-base font-normal text-foreground",
1662
1705
  children: link.label
1663
1706
  },
@@ -1520,7 +1520,7 @@ var MobileNavigationMenu = ({
1520
1520
  );
1521
1521
  }) });
1522
1522
  }, [authActionsSlot, authActions]);
1523
- return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
1523
+ return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0", children: [
1524
1524
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
1525
1525
  (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
1526
1526
  AccordionItem,
@@ -1497,7 +1497,7 @@ var MobileNavigationMenu = ({
1497
1497
  );
1498
1498
  }) });
1499
1499
  }, [authActionsSlot, authActions]);
1500
- return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
1500
+ return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0", children: [
1501
1501
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
1502
1502
  (item, index) => item.items ? /* @__PURE__ */ jsxs(
1503
1503
  AccordionItem,
@@ -1413,11 +1413,11 @@ var NavbarTabbedSections = ({
1413
1413
  (item, index) => item.tabs ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
1414
1414
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "bg-transparent hover:bg-muted", children: item.title }),
1415
1415
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { defaultValue: item.tabs[0]?.id, className: "w-[600px]", children: [
1416
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b-2 px-4 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
1416
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
1417
1417
  TabsTrigger,
1418
1418
  {
1419
1419
  value: tab.id,
1420
- className: "-mb-2 rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
1420
+ className: "rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
1421
1421
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
1422
1422
  tab.icon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: tab.icon, size: 16 }),
1423
1423
  tab.title
@@ -1430,12 +1430,12 @@ var NavbarTabbedSections = ({
1430
1430
  NavigationMenuLink,
1431
1431
  {
1432
1432
  asChild: true,
1433
- className: "w-full",
1433
+ className: "w-full justify-start",
1434
1434
  children: /* @__PURE__ */ jsxRuntime.jsxs(
1435
1435
  Pressable,
1436
1436
  {
1437
1437
  href: link.url,
1438
- className: "w-full flex items-start gap-3 rounded-md p-3 hover:bg-muted",
1438
+ className: "w-full flex items-start justify-start gap-3 rounded-md p-3 hover:bg-muted",
1439
1439
  children: [
1440
1440
  link.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon, size: 16 }) }),
1441
1441
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
@@ -1389,11 +1389,11 @@ var NavbarTabbedSections = ({
1389
1389
  (item, index) => item.tabs ? /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
1390
1390
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "bg-transparent hover:bg-muted", children: item.title }),
1391
1391
  /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxs(Tabs, { defaultValue: item.tabs[0]?.id, className: "w-[600px]", children: [
1392
- /* @__PURE__ */ jsx("div", { className: "border-b-2 px-4 pt-2", children: /* @__PURE__ */ jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsx(
1392
+ /* @__PURE__ */ jsx("div", { className: "px-4 pt-2", children: /* @__PURE__ */ jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsx(
1393
1393
  TabsTrigger,
1394
1394
  {
1395
1395
  value: tab.id,
1396
- className: "-mb-2 rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
1396
+ className: "rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
1397
1397
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
1398
1398
  tab.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: tab.icon, size: 16 }),
1399
1399
  tab.title
@@ -1406,12 +1406,12 @@ var NavbarTabbedSections = ({
1406
1406
  NavigationMenuLink,
1407
1407
  {
1408
1408
  asChild: true,
1409
- className: "w-full",
1409
+ className: "w-full justify-start",
1410
1410
  children: /* @__PURE__ */ jsxs(
1411
1411
  Pressable,
1412
1412
  {
1413
1413
  href: link.url,
1414
- className: "w-full flex items-start gap-3 rounded-md p-3 hover:bg-muted",
1414
+ className: "w-full flex items-start justify-start gap-3 rounded-md p-3 hover:bg-muted",
1415
1415
  children: [
1416
1416
  link.icon && /* @__PURE__ */ jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-background", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon, size: 16 }) }),
1417
1417
  /* @__PURE__ */ jsxs("div", { children: [
package/dist/registry.cjs CHANGED
@@ -58042,7 +58042,10 @@ var NavbarMegaMenu = ({
58042
58042
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
58043
58043
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks?.map((link, index) => {
58044
58044
  if (hasDropdownItems(link)) {
58045
- const items = link.links || [];
58045
+ const hasGroups = link.dropdownGroups && link.dropdownGroups.length > 0;
58046
+ const items = hasGroups ? link.dropdownGroups.flatMap(
58047
+ (group) => group.links || []
58048
+ ) : link.links || [];
58046
58049
  return /* @__PURE__ */ jsxRuntime.jsxs(
58047
58050
  AccordionItem,
58048
58051
  {
@@ -58050,24 +58053,63 @@ var NavbarMegaMenu = ({
58050
58053
  className: "border-b-0",
58051
58054
  children: [
58052
58055
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
58053
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
58054
- Pressable,
58055
- {
58056
- href: getLinkUrl(item),
58057
- className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
58058
- children: [
58059
- (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
58060
- DynamicIcon,
58061
- {
58062
- name: item.iconName,
58063
- size: 14
58064
- }
58065
- ) : null),
58066
- item.label
58067
- ]
58068
- },
58069
- `mobile-link-${index}-${itemIndex}`
58070
- )) })
58056
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: hasGroups ? (
58057
+ // Render with group headers
58058
+ link.dropdownGroups.map(
58059
+ (group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
58060
+ "div",
58061
+ {
58062
+ className: "mb-4",
58063
+ children: [
58064
+ group.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 pl-4 text-xs font-medium tracking-wider uppercase text-muted-foreground", children: group.label }),
58065
+ (group.links || []).map(
58066
+ (item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
58067
+ Pressable,
58068
+ {
58069
+ href: getLinkUrl(item),
58070
+ onClick: () => setOpen(false),
58071
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
58072
+ children: [
58073
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
58074
+ DynamicIcon,
58075
+ {
58076
+ name: item.iconName,
58077
+ size: 14
58078
+ }
58079
+ ) : null),
58080
+ item.label
58081
+ ]
58082
+ },
58083
+ `mobile-group-link-${groupIndex}-${itemIndex}`
58084
+ )
58085
+ )
58086
+ ]
58087
+ },
58088
+ `mobile-group-${groupIndex}`
58089
+ )
58090
+ )
58091
+ ) : (
58092
+ // Render flat list
58093
+ items.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
58094
+ Pressable,
58095
+ {
58096
+ href: getLinkUrl(item),
58097
+ onClick: () => setOpen(false),
58098
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
58099
+ children: [
58100
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
58101
+ DynamicIcon,
58102
+ {
58103
+ name: item.iconName,
58104
+ size: 14
58105
+ }
58106
+ ) : null),
58107
+ item.label
58108
+ ]
58109
+ },
58110
+ `mobile-link-${index}-${itemIndex}`
58111
+ ))
58112
+ ) })
58071
58113
  ]
58072
58114
  },
58073
58115
  `mobile-menu-link-${index}`
@@ -58080,6 +58122,7 @@ var NavbarMegaMenu = ({
58080
58122
  Pressable,
58081
58123
  {
58082
58124
  href: link.href,
58125
+ onClick: () => setOpen(false),
58083
58126
  className: "flex h-15 items-center text-base font-normal text-foreground",
58084
58127
  children: link.label
58085
58128
  },
@@ -58959,11 +59002,11 @@ var NavbarFeatureGrid = ({
58959
59002
  children: /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuList, { children: [
58960
59003
  features && features.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
58961
59004
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: "Features" }),
58962
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-[600px] grid-cols-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
59005
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-[600px] grid-cols-2 space-x-4 space-y-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
58963
59006
  NavigationMenuLink,
58964
59007
  {
58965
59008
  href: feature.href,
58966
- className: "rounded-md p-3 transition-colors hover:bg-muted/70",
59009
+ className: "w-full justify-start rounded-md p-3 transition-colors hover:bg-muted/70",
58967
59010
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
58968
59011
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-1 font-semibold", children: feature.title }),
58969
59012
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
@@ -60425,7 +60468,7 @@ var MobileNavigationMenu3 = ({
60425
60468
  onClose: () => setOpen(false),
60426
60469
  title: "Mobile Navigation",
60427
60470
  className: "dark",
60428
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between gap-20", children: [
60471
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between gap-4", children: [
60429
60472
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem3(item, index)) }),
60430
60473
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 pb-20", children: renderMobileAuthActions })
60431
60474
  ] }) })
@@ -60443,7 +60486,7 @@ var renderMobileMenuItem3 = (item, index) => {
60443
60486
  Pressable,
60444
60487
  {
60445
60488
  href: item.url,
60446
- className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1 nth-last-1:border-0",
60489
+ className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1",
60447
60490
  children: item.title
60448
60491
  },
60449
60492
  `nav-link-${index}`
@@ -60673,7 +60716,7 @@ var DesktopMenuItem5 = ({
60673
60716
  if (hasDropdown) {
60674
60717
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
60675
60718
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
60676
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container", children: renderDropdownContent2(item, optixFlowConfig) }) }) })
60719
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[calc(100vw-2rem)] max-w-7xl animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: renderDropdownContent2(item, optixFlowConfig) }) })
60677
60720
  ] }, `desktop-menu-item-${index}`);
60678
60721
  }
60679
60722
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -60828,7 +60871,7 @@ var GroupLinks = ({ groupLinks }) => {
60828
60871
  };
60829
60872
  if (!groupLinks) return null;
60830
60873
  let linkIndex = 0;
60831
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60874
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-start gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
60832
60875
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs", children: group.label }),
60833
60876
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-4 w-full", children: group.links.map((link, index2) => {
60834
60877
  const idx = linkIndex++;
@@ -62143,8 +62186,8 @@ var NavbarEducationPlatform = ({
62143
62186
  open: isOpen,
62144
62187
  onClose: handleMobileMenuClose,
62145
62188
  menu: menu ?? [],
62146
- mobileAuthActions,
62147
- mobileAuthActionsSlot,
62189
+ mobileAuthActions: mobileAuthActions ?? authActions,
62190
+ mobileAuthActionsSlot: mobileAuthActionsSlot ?? authActionsSlot,
62148
62191
  mobileMenuClassName
62149
62192
  }
62150
62193
  )
@@ -62542,7 +62585,7 @@ var MobileNavigationMenu9 = ({
62542
62585
  );
62543
62586
  }) });
62544
62587
  }, [authActionsSlot, authActions]);
62545
- return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
62588
+ return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0", children: [
62546
62589
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
62547
62590
  (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
62548
62591
  AccordionItem,
@@ -63572,11 +63615,11 @@ var NavbarTabbedSections = ({
63572
63615
  (item, index) => item.tabs ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
63573
63616
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "bg-transparent hover:bg-muted", children: item.title }),
63574
63617
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsxs(Tabs, { defaultValue: item.tabs[0]?.id, className: "w-[600px]", children: [
63575
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b-2 px-4 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
63618
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 pt-2", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
63576
63619
  TabsTrigger,
63577
63620
  {
63578
63621
  value: tab.id,
63579
- className: "-mb-2 rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
63622
+ className: "rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
63580
63623
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
63581
63624
  tab.icon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: tab.icon, size: 16 }),
63582
63625
  tab.title
@@ -63589,12 +63632,12 @@ var NavbarTabbedSections = ({
63589
63632
  NavigationMenuLink,
63590
63633
  {
63591
63634
  asChild: true,
63592
- className: "w-full",
63635
+ className: "w-full justify-start",
63593
63636
  children: /* @__PURE__ */ jsxRuntime.jsxs(
63594
63637
  Pressable,
63595
63638
  {
63596
63639
  href: link.url,
63597
- className: "w-full flex items-start gap-3 rounded-md p-3 hover:bg-muted",
63640
+ className: "w-full flex items-start justify-start gap-3 rounded-md p-3 hover:bg-muted",
63598
63641
  children: [
63599
63642
  link.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon, size: 16 }) }),
63600
63643
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
package/dist/registry.js CHANGED
@@ -58002,7 +58002,10 @@ var NavbarMegaMenu = ({
58002
58002
  children: /* @__PURE__ */ jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
58003
58003
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks?.map((link, index) => {
58004
58004
  if (hasDropdownItems(link)) {
58005
- const items = link.links || [];
58005
+ const hasGroups = link.dropdownGroups && link.dropdownGroups.length > 0;
58006
+ const items = hasGroups ? link.dropdownGroups.flatMap(
58007
+ (group) => group.links || []
58008
+ ) : link.links || [];
58006
58009
  return /* @__PURE__ */ jsxs(
58007
58010
  AccordionItem,
58008
58011
  {
@@ -58010,24 +58013,63 @@ var NavbarMegaMenu = ({
58010
58013
  className: "border-b-0",
58011
58014
  children: [
58012
58015
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
58013
- /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxs(
58014
- Pressable,
58015
- {
58016
- href: getLinkUrl(item),
58017
- className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
58018
- children: [
58019
- (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
58020
- DynamicIcon,
58021
- {
58022
- name: item.iconName,
58023
- size: 14
58024
- }
58025
- ) : null),
58026
- item.label
58027
- ]
58028
- },
58029
- `mobile-link-${index}-${itemIndex}`
58030
- )) })
58016
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: hasGroups ? (
58017
+ // Render with group headers
58018
+ link.dropdownGroups.map(
58019
+ (group, groupIndex) => /* @__PURE__ */ jsxs(
58020
+ "div",
58021
+ {
58022
+ className: "mb-4",
58023
+ children: [
58024
+ group.label && /* @__PURE__ */ jsx("div", { className: "mb-2 pl-4 text-xs font-medium tracking-wider uppercase text-muted-foreground", children: group.label }),
58025
+ (group.links || []).map(
58026
+ (item, itemIndex) => /* @__PURE__ */ jsxs(
58027
+ Pressable,
58028
+ {
58029
+ href: getLinkUrl(item),
58030
+ onClick: () => setOpen(false),
58031
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
58032
+ children: [
58033
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
58034
+ DynamicIcon,
58035
+ {
58036
+ name: item.iconName,
58037
+ size: 14
58038
+ }
58039
+ ) : null),
58040
+ item.label
58041
+ ]
58042
+ },
58043
+ `mobile-group-link-${groupIndex}-${itemIndex}`
58044
+ )
58045
+ )
58046
+ ]
58047
+ },
58048
+ `mobile-group-${groupIndex}`
58049
+ )
58050
+ )
58051
+ ) : (
58052
+ // Render flat list
58053
+ items.map((item, itemIndex) => /* @__PURE__ */ jsxs(
58054
+ Pressable,
58055
+ {
58056
+ href: getLinkUrl(item),
58057
+ onClick: () => setOpen(false),
58058
+ className: "flex items-center gap-2 rounded-md px-4 py-2 text-sm text-muted-foreground hover:bg-muted hover:text-foreground",
58059
+ children: [
58060
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
58061
+ DynamicIcon,
58062
+ {
58063
+ name: item.iconName,
58064
+ size: 14
58065
+ }
58066
+ ) : null),
58067
+ item.label
58068
+ ]
58069
+ },
58070
+ `mobile-link-${index}-${itemIndex}`
58071
+ ))
58072
+ ) })
58031
58073
  ]
58032
58074
  },
58033
58075
  `mobile-menu-link-${index}`
@@ -58040,6 +58082,7 @@ var NavbarMegaMenu = ({
58040
58082
  Pressable,
58041
58083
  {
58042
58084
  href: link.href,
58085
+ onClick: () => setOpen(false),
58043
58086
  className: "flex h-15 items-center text-base font-normal text-foreground",
58044
58087
  children: link.label
58045
58088
  },
@@ -58919,11 +58962,11 @@ var NavbarFeatureGrid = ({
58919
58962
  children: /* @__PURE__ */ jsxs(NavigationMenuList, { children: [
58920
58963
  features && features.length > 0 && /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
58921
58964
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { children: "Features" }),
58922
- /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsx("div", { className: "grid w-[600px] grid-cols-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsx(
58965
+ /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsx("div", { className: "grid w-[600px] grid-cols-2 space-x-4 space-y-2 p-3", children: features.map((feature, index) => /* @__PURE__ */ jsx(
58923
58966
  NavigationMenuLink,
58924
58967
  {
58925
58968
  href: feature.href,
58926
- className: "rounded-md p-3 transition-colors hover:bg-muted/70",
58969
+ className: "w-full justify-start rounded-md p-3 transition-colors hover:bg-muted/70",
58927
58970
  children: /* @__PURE__ */ jsxs("div", { children: [
58928
58971
  /* @__PURE__ */ jsx("p", { className: "mb-1 font-semibold", children: feature.title }),
58929
58972
  /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: feature.description })
@@ -60385,7 +60428,7 @@ var MobileNavigationMenu3 = ({
60385
60428
  onClose: () => setOpen(false),
60386
60429
  title: "Mobile Navigation",
60387
60430
  className: "dark",
60388
- children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col justify-between gap-20", children: [
60431
+ children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col justify-between gap-4", children: [
60389
60432
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem3(item, index)) }),
60390
60433
  /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 pb-20", children: renderMobileAuthActions })
60391
60434
  ] }) })
@@ -60403,7 +60446,7 @@ var renderMobileMenuItem3 = (item, index) => {
60403
60446
  Pressable,
60404
60447
  {
60405
60448
  href: item.url,
60406
- className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1 nth-last-1:border-0",
60449
+ className: "flex h-15 items-center border-b p-0 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all focus-visible:ring-4 focus-visible:outline-1",
60407
60450
  children: item.title
60408
60451
  },
60409
60452
  `nav-link-${index}`
@@ -60633,7 +60676,7 @@ var DesktopMenuItem5 = ({
60633
60676
  if (hasDropdown) {
60634
60677
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
60635
60678
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
60636
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsx("div", { className: "container", children: renderDropdownContent2(item, optixFlowConfig) }) }) })
60679
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsx("div", { className: "w-[calc(100vw-2rem)] max-w-7xl animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: renderDropdownContent2(item, optixFlowConfig) }) })
60637
60680
  ] }, `desktop-menu-item-${index}`);
60638
60681
  }
60639
60682
  return /* @__PURE__ */ jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsx(
@@ -60788,7 +60831,7 @@ var GroupLinks = ({ groupLinks }) => {
60788
60831
  };
60789
60832
  if (!groupLinks) return null;
60790
60833
  let linkIndex = 0;
60791
- return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { children: [
60834
+ return /* @__PURE__ */ jsx("div", { className: "flex items-start gap-4 w-full", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
60792
60835
  /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs", children: group.label }),
60793
60836
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-4 w-full", children: group.links.map((link, index2) => {
60794
60837
  const idx = linkIndex++;
@@ -62103,8 +62146,8 @@ var NavbarEducationPlatform = ({
62103
62146
  open: isOpen,
62104
62147
  onClose: handleMobileMenuClose,
62105
62148
  menu: menu ?? [],
62106
- mobileAuthActions,
62107
- mobileAuthActionsSlot,
62149
+ mobileAuthActions: mobileAuthActions ?? authActions,
62150
+ mobileAuthActionsSlot: mobileAuthActionsSlot ?? authActionsSlot,
62108
62151
  mobileMenuClassName
62109
62152
  }
62110
62153
  )
@@ -62502,7 +62545,7 @@ var MobileNavigationMenu9 = ({
62502
62545
  );
62503
62546
  }) });
62504
62547
  }, [authActionsSlot, authActions]);
62505
- return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
62548
+ return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-0", children: [
62506
62549
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
62507
62550
  (item, index) => item.items ? /* @__PURE__ */ jsxs(
62508
62551
  AccordionItem,
@@ -63532,11 +63575,11 @@ var NavbarTabbedSections = ({
63532
63575
  (item, index) => item.tabs ? /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
63533
63576
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "bg-transparent hover:bg-muted", children: item.title }),
63534
63577
  /* @__PURE__ */ jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxs(Tabs, { defaultValue: item.tabs[0]?.id, className: "w-[600px]", children: [
63535
- /* @__PURE__ */ jsx("div", { className: "border-b-2 px-4 pt-2", children: /* @__PURE__ */ jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsx(
63578
+ /* @__PURE__ */ jsx("div", { className: "px-4 pt-2", children: /* @__PURE__ */ jsx(TabsList, { className: "h-auto bg-transparent p-0", children: item.tabs.map((tab) => /* @__PURE__ */ jsx(
63536
63579
  TabsTrigger,
63537
63580
  {
63538
63581
  value: tab.id,
63539
- className: "-mb-2 rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
63582
+ className: "rounded-none border-b-2 border-transparent px-4 py-2 data-[state=active]:border-b-primary data-[state=active]:text-primary hover:border-b-primary data-[state=active]:bg-transparent data-[state=active]:shadow-none",
63540
63583
  children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
63541
63584
  tab.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: tab.icon, size: 16 }),
63542
63585
  tab.title
@@ -63549,12 +63592,12 @@ var NavbarTabbedSections = ({
63549
63592
  NavigationMenuLink,
63550
63593
  {
63551
63594
  asChild: true,
63552
- className: "w-full",
63595
+ className: "w-full justify-start",
63553
63596
  children: /* @__PURE__ */ jsxs(
63554
63597
  Pressable,
63555
63598
  {
63556
63599
  href: link.url,
63557
- className: "w-full flex items-start gap-3 rounded-md p-3 hover:bg-muted",
63600
+ className: "w-full flex items-start justify-start gap-3 rounded-md p-3 hover:bg-muted",
63558
63601
  children: [
63559
63602
  link.icon && /* @__PURE__ */ jsx("div", { className: "mt-0.5 flex h-8 w-8 shrink-0 items-center justify-center rounded-md border bg-background", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon, size: 16 }) }),
63560
63603
  /* @__PURE__ */ jsxs("div", { children: [
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "1.1.4",
3
+ "version": "1.1.6",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",