@opensite/ui 1.0.6 → 1.0.7

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.
@@ -7,6 +7,7 @@ import { cva } from 'class-variance-authority';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import { Img } from '@page-speed/img';
9
9
  import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
10
+ import * as AccordionPrimitive from '@radix-ui/react-accordion';
10
11
 
11
12
  // components/blocks/navbars/navbar-mega-menu.tsx
12
13
  function cn(...inputs) {
@@ -1108,6 +1109,122 @@ function NavigationMenuLink({
1108
1109
  }
1109
1110
  );
1110
1111
  }
1112
+ function Accordion({
1113
+ ...props
1114
+ }) {
1115
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
1116
+ }
1117
+ function AccordionItem({
1118
+ className,
1119
+ ...props
1120
+ }) {
1121
+ return /* @__PURE__ */ jsx(
1122
+ AccordionPrimitive.Item,
1123
+ {
1124
+ "data-slot": "accordion-item",
1125
+ className: cn("border-b ", className),
1126
+ ...props
1127
+ }
1128
+ );
1129
+ }
1130
+ function AccordionTrigger({
1131
+ className,
1132
+ children,
1133
+ ...props
1134
+ }) {
1135
+ return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
1136
+ AccordionPrimitive.Trigger,
1137
+ {
1138
+ "data-slot": "accordion-trigger",
1139
+ className: cn(
1140
+ "focus-visible:border-ring focus-visible:ring-ring/50 flex flex-1 items-center justify-between gap-4 rounded-md py-4 text-left text-sm font-medium transition-all outline-none hover:underline focus-visible:ring-[3px] disabled:pointer-events-none disabled:opacity-50 [&[data-state=open]>svg]:rotate-180",
1141
+ className
1142
+ ),
1143
+ ...props,
1144
+ children: [
1145
+ children,
1146
+ /* @__PURE__ */ jsx(
1147
+ DynamicIcon,
1148
+ {
1149
+ name: "lucide/chevron-down",
1150
+ className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
1151
+ }
1152
+ )
1153
+ ]
1154
+ }
1155
+ ) });
1156
+ }
1157
+ function AccordionContent({
1158
+ className,
1159
+ children,
1160
+ ...props
1161
+ }) {
1162
+ return /* @__PURE__ */ jsx(
1163
+ AccordionPrimitive.Content,
1164
+ {
1165
+ "data-slot": "accordion-content",
1166
+ className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
1167
+ ...props,
1168
+ children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
1169
+ }
1170
+ );
1171
+ }
1172
+ var NavbarMobileMenu = ({
1173
+ open,
1174
+ onClose,
1175
+ children,
1176
+ className,
1177
+ contentClassName,
1178
+ title = "Mobile Navigation"
1179
+ }) => {
1180
+ React.useEffect(() => {
1181
+ if (open) {
1182
+ const originalOverflow = document.body.style.overflow;
1183
+ document.body.style.overflow = "hidden";
1184
+ return () => {
1185
+ document.body.style.overflow = originalOverflow;
1186
+ };
1187
+ }
1188
+ }, [open]);
1189
+ if (!open) return null;
1190
+ return /* @__PURE__ */ jsxs(
1191
+ "div",
1192
+ {
1193
+ className: cn(
1194
+ "fixed inset-0 z-998 flex flex-col bg-background",
1195
+ "animate-in slide-in-from-top duration-300",
1196
+ "data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=closed]:duration-300",
1197
+ className
1198
+ ),
1199
+ "data-state": open ? "open" : "closed",
1200
+ children: [
1201
+ /* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
1202
+ /* @__PURE__ */ jsx("div", { className: "absolute top-4 right-4 z-10", children: /* @__PURE__ */ jsxs(
1203
+ "button",
1204
+ {
1205
+ onClick: onClose,
1206
+ className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
1207
+ "aria-label": "Close mobile menu",
1208
+ children: [
1209
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
1210
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
1211
+ ]
1212
+ }
1213
+ ) }),
1214
+ /* @__PURE__ */ jsx(
1215
+ "div",
1216
+ {
1217
+ className: cn(
1218
+ "h-full overflow-y-auto pt-20 pb-8 px-4 sm:px-6",
1219
+ contentClassName
1220
+ ),
1221
+ children
1222
+ }
1223
+ )
1224
+ ]
1225
+ }
1226
+ );
1227
+ };
1111
1228
 
1112
1229
  // components/blocks/navbars/types.ts
1113
1230
  function getLinkUrl(item) {
@@ -1350,51 +1467,6 @@ var DesktopMenuItem = ({
1350
1467
  }
1351
1468
  return null;
1352
1469
  };
1353
- var MobileSubmenu = ({
1354
- submenu,
1355
- mobileMenuClassName,
1356
- optixFlowConfig
1357
- }) => {
1358
- const items = submenu.links || [];
1359
- return /* @__PURE__ */ jsxs(
1360
- "div",
1361
- {
1362
- className: cn(
1363
- "fixed inset-0 top-[72px] flex h-[calc(100vh-72px)] w-full flex-col overflow-scroll border-t border-border bg-background lg:hidden",
1364
- mobileMenuClassName
1365
- ),
1366
- children: [
1367
- /* @__PURE__ */ jsx("div", { className: "px-8 py-3.5 text-xs tracking-widest text-muted-foreground uppercase", children: submenu.label }),
1368
- items.map((item, index) => {
1369
- return /* @__PURE__ */ jsxs(
1370
- Pressable,
1371
- {
1372
- href: getLinkUrl(item),
1373
- className: "flex items-start gap-4 border-b border-border px-8 py-5",
1374
- children: [
1375
- item.image && /* @__PURE__ */ jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
1376
- Img,
1377
- {
1378
- src: item.image,
1379
- alt: typeof item.label === "string" ? item.label : "Menu item",
1380
- className: "h-full w-full object-cover object-center",
1381
- optixFlowConfig
1382
- }
1383
- ) }),
1384
- !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
1385
- /* @__PURE__ */ jsxs("div", { children: [
1386
- /* @__PURE__ */ jsx("div", { className: "text-base", children: item.label }),
1387
- item.description && /* @__PURE__ */ jsx("div", { className: "text-sm text-muted-foreground", children: item.description })
1388
- ] })
1389
- ]
1390
- },
1391
- `mobile-item-${index}`
1392
- );
1393
- })
1394
- ]
1395
- }
1396
- );
1397
- };
1398
1470
  var NavbarMegaMenu = ({
1399
1471
  className,
1400
1472
  containerClassName,
@@ -1415,8 +1487,6 @@ var NavbarMegaMenu = ({
1415
1487
  optixFlowConfig
1416
1488
  }) => {
1417
1489
  const [open, setOpen] = useState(false);
1418
- const [submenuIndex, setSubmenuIndex] = useState(null);
1419
- const activeSubmenu = submenuIndex !== null ? menuLinks?.[submenuIndex] : null;
1420
1490
  const hasDropdownItems = (link) => Boolean(
1421
1491
  link.links && link.links.length > 0 || link.dropdownGroups && link.dropdownGroups.length > 0
1422
1492
  );
@@ -1470,36 +1540,15 @@ var NavbarMegaMenu = ({
1470
1540
  ),
1471
1541
  children: [
1472
1542
  /* @__PURE__ */ jsxs("div", { className: navWrapperClasses, children: [
1473
- /* @__PURE__ */ jsxs("div", { children: [
1474
- (!open || submenuIndex === null) && /* @__PURE__ */ jsx(
1475
- NavbarLogo,
1476
- {
1477
- logo,
1478
- logoSlot,
1479
- logoClassName,
1480
- optixFlowConfig
1481
- }
1482
- ),
1483
- open && submenuIndex !== null && /* @__PURE__ */ jsxs(
1484
- Pressable,
1485
- {
1486
- variant: "outline",
1487
- asButton: true,
1488
- onClick: () => setSubmenuIndex(null),
1489
- children: [
1490
- "Back",
1491
- /* @__PURE__ */ jsx(
1492
- DynamicIcon,
1493
- {
1494
- name: "lucide/chevron-left",
1495
- size: 16,
1496
- className: "ml-2"
1497
- }
1498
- )
1499
- ]
1500
- }
1501
- )
1502
- ] }),
1543
+ /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
1544
+ NavbarLogo,
1545
+ {
1546
+ logo,
1547
+ logoSlot,
1548
+ logoClassName,
1549
+ optixFlowConfig
1550
+ }
1551
+ ) }),
1503
1552
  /* @__PURE__ */ jsx(
1504
1553
  NavigationMenuList,
1505
1554
  {
@@ -1540,14 +1589,7 @@ var NavbarMegaMenu = ({
1540
1589
  size: "icon",
1541
1590
  asButton: true,
1542
1591
  "aria-label": "Main Menu",
1543
- onClick: () => {
1544
- if (open) {
1545
- setOpen(false);
1546
- setSubmenuIndex(null);
1547
- } else {
1548
- setOpen(true);
1549
- }
1550
- },
1592
+ onClick: () => setOpen(!open),
1551
1593
  children: [
1552
1594
  !open && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 }),
1553
1595
  open && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16 })
@@ -1555,31 +1597,42 @@ var NavbarMegaMenu = ({
1555
1597
  }
1556
1598
  ) })
1557
1599
  ] }),
1558
- open && submenuIndex === null && /* @__PURE__ */ jsxs(
1559
- "div",
1600
+ /* @__PURE__ */ jsx(
1601
+ NavbarMobileMenu,
1560
1602
  {
1561
- className: cn(
1562
- "fixed inset-0 top-[72px] flex h-[calc(100vh-72px)] w-full flex-col overflow-scroll border-t border-border bg-background lg:hidden",
1563
- mobileMenuClassName
1564
- ),
1565
- children: [
1566
- /* @__PURE__ */ jsx("div", { children: menuLinks?.map((link, index) => {
1603
+ open,
1604
+ onClose: () => setOpen(false),
1605
+ title: "Mobile Navigation",
1606
+ contentClassName: "pt-10 pb-20",
1607
+ children: /* @__PURE__ */ jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
1608
+ /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks?.map((link, index) => {
1567
1609
  if (hasDropdownItems(link)) {
1610
+ const items = link.links || [];
1568
1611
  return /* @__PURE__ */ jsxs(
1569
- "button",
1612
+ AccordionItem,
1570
1613
  {
1571
- type: "button",
1572
- className: "flex w-full items-center border-b border-border px-8 py-7 text-left",
1573
- onClick: () => setSubmenuIndex(index),
1614
+ value: `menu-${index}`,
1615
+ className: "border-b-0",
1574
1616
  children: [
1575
- /* @__PURE__ */ jsx("span", { className: "flex-1", children: link.label }),
1576
- /* @__PURE__ */ jsx("span", { className: "shrink-0", children: /* @__PURE__ */ jsx(
1577
- DynamicIcon,
1617
+ /* @__PURE__ */ jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
1618
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: items.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1619
+ Pressable,
1578
1620
  {
1579
- name: "lucide/chevron-right",
1580
- size: 16
1581
- }
1582
- ) })
1621
+ href: getLinkUrl(item),
1622
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground hover:text-foreground",
1623
+ children: [
1624
+ (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(
1625
+ DynamicIcon,
1626
+ {
1627
+ name: item.iconName,
1628
+ size: 14
1629
+ }
1630
+ ) : null),
1631
+ item.label
1632
+ ]
1633
+ },
1634
+ `mobile-link-${index}-${itemIndex}`
1635
+ )) })
1583
1636
  ]
1584
1637
  },
1585
1638
  `mobile-menu-link-${index}`
@@ -1592,8 +1645,8 @@ var NavbarMegaMenu = ({
1592
1645
  Pressable,
1593
1646
  {
1594
1647
  href: link.href,
1595
- className: "flex w-full items-center border-b border-border px-8 py-7 text-left",
1596
- children: /* @__PURE__ */ jsx("span", { className: "flex-1", children: link.label })
1648
+ className: "flex h-15 items-center text-base font-normal text-foreground",
1649
+ children: link.label
1597
1650
  },
1598
1651
  `mobile-menu-link-${index}`
1599
1652
  );
@@ -1601,22 +1654,11 @@ var NavbarMegaMenu = ({
1601
1654
  /* @__PURE__ */ jsx(
1602
1655
  "div",
1603
1656
  {
1604
- className: cn(
1605
- "mx-8 mt-auto flex flex-col gap-4 py-12",
1606
- actionsClassName
1607
- ),
1657
+ className: cn("mt-6 flex flex-col gap-4", actionsClassName),
1608
1658
  children: renderActions()
1609
1659
  }
1610
1660
  )
1611
- ]
1612
- }
1613
- ),
1614
- open && activeSubmenu && hasDropdownItems(activeSubmenu) && /* @__PURE__ */ jsx(
1615
- MobileSubmenu,
1616
- {
1617
- submenu: activeSubmenu,
1618
- mobileMenuClassName,
1619
- optixFlowConfig
1661
+ ] })
1620
1662
  }
1621
1663
  )
1622
1664
  ]
@@ -1378,18 +1378,18 @@ var NavbarMultiColumnGroups = ({
1378
1378
  sectionContainerMaxWidth,
1379
1379
  spacingOverride
1380
1380
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1381
- return /* @__PURE__ */ jsxRuntime.jsxs(
1382
- Section,
1383
- {
1384
- background,
1385
- spacing: spacingOverride ?? spacing,
1386
- className: sectionClasses,
1387
- pattern,
1388
- patternOpacity,
1389
- containerClassName: sectionContainerClassName,
1390
- containerMaxWidth: sectionContainerMaxWidth,
1391
- children: [
1392
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1381
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1382
+ /* @__PURE__ */ jsxRuntime.jsx(
1383
+ Section,
1384
+ {
1385
+ background,
1386
+ spacing: spacingOverride ?? spacing,
1387
+ className: sectionClasses,
1388
+ pattern,
1389
+ patternOpacity,
1390
+ containerClassName: sectionContainerClassName,
1391
+ containerMaxWidth: sectionContainerMaxWidth,
1392
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1393
1393
  "div",
1394
1394
  {
1395
1395
  className: cn(
@@ -1431,16 +1431,10 @@ var NavbarMultiColumnGroups = ({
1431
1431
  {
1432
1432
  className: "size-11",
1433
1433
  variant: "ghost",
1434
+ size: "icon",
1434
1435
  asButton: true,
1435
1436
  onClick: handleMobileMenu,
1436
- children: open ? /* @__PURE__ */ jsxRuntime.jsx(
1437
- DynamicIcon,
1438
- {
1439
- name: "lucide/x",
1440
- size: 22,
1441
- className: "stroke-foreground"
1442
- }
1443
- ) : /* @__PURE__ */ jsxRuntime.jsx(
1437
+ children: /* @__PURE__ */ jsxRuntime.jsx(
1444
1438
  DynamicIcon,
1445
1439
  {
1446
1440
  name: "lucide/menu",
@@ -1452,20 +1446,20 @@ var NavbarMultiColumnGroups = ({
1452
1446
  ) })
1453
1447
  ]
1454
1448
  }
1455
- ) }) }) }),
1456
- /* @__PURE__ */ jsxRuntime.jsx(
1457
- MobileNavigationMenu,
1458
- {
1459
- open,
1460
- setOpen,
1461
- navigation: navigation ?? [],
1462
- authActions: mobileAuthActions,
1463
- authActionsSlot: mobileAuthActionsSlot
1464
- }
1465
- )
1466
- ]
1467
- }
1468
- );
1449
+ ) }) }) })
1450
+ }
1451
+ ),
1452
+ /* @__PURE__ */ jsxRuntime.jsx(
1453
+ MobileNavigationMenu,
1454
+ {
1455
+ open,
1456
+ setOpen,
1457
+ navigation: navigation ?? [],
1458
+ authActions: mobileAuthActions,
1459
+ authActionsSlot: mobileAuthActionsSlot
1460
+ }
1461
+ )
1462
+ ] });
1469
1463
  };
1470
1464
  var DesktopMenuItem = ({ item, index }) => {
1471
1465
  if (item.groups) {
@@ -1547,7 +1541,6 @@ var MobileNavigationMenu = ({
1547
1541
  open,
1548
1542
  onClose: () => setOpen(false),
1549
1543
  title: "Mobile Navigation",
1550
- className: "dark",
1551
1544
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
1552
1545
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem(item, index)) }),
1553
1546
  renderMobileAuthActions
@@ -1564,12 +1557,12 @@ var renderMobileMenuItem = (item, index) => {
1564
1557
  className: "border-b-0",
1565
1558
  children: [
1566
1559
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center p-0 px-4! text-base leading-[3.75] font-normal text-muted-foreground hover:bg-muted hover:no-underline", children: item.title }),
1567
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "max-h-[60dvh] overflow-x-auto", children: item.groups.flatMap(
1560
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.flatMap(
1568
1561
  (group, groupIndex) => group.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1569
1562
  Pressable,
1570
1563
  {
1571
1564
  href: link.url,
1572
- className: "flex h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
1565
+ className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
1573
1566
  children: [
1574
1567
  link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1575
1568
  DynamicIcon,
@@ -1355,18 +1355,18 @@ var NavbarMultiColumnGroups = ({
1355
1355
  sectionContainerMaxWidth,
1356
1356
  spacingOverride
1357
1357
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1358
- return /* @__PURE__ */ jsxs(
1359
- Section,
1360
- {
1361
- background,
1362
- spacing: spacingOverride ?? spacing,
1363
- className: sectionClasses,
1364
- pattern,
1365
- patternOpacity,
1366
- containerClassName: sectionContainerClassName,
1367
- containerMaxWidth: sectionContainerMaxWidth,
1368
- children: [
1369
- /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1358
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
1359
+ /* @__PURE__ */ jsx(
1360
+ Section,
1361
+ {
1362
+ background,
1363
+ spacing: spacingOverride ?? spacing,
1364
+ className: sectionClasses,
1365
+ pattern,
1366
+ patternOpacity,
1367
+ containerClassName: sectionContainerClassName,
1368
+ containerMaxWidth: sectionContainerMaxWidth,
1369
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1370
1370
  "div",
1371
1371
  {
1372
1372
  className: cn(
@@ -1408,16 +1408,10 @@ var NavbarMultiColumnGroups = ({
1408
1408
  {
1409
1409
  className: "size-11",
1410
1410
  variant: "ghost",
1411
+ size: "icon",
1411
1412
  asButton: true,
1412
1413
  onClick: handleMobileMenu,
1413
- children: open ? /* @__PURE__ */ jsx(
1414
- DynamicIcon,
1415
- {
1416
- name: "lucide/x",
1417
- size: 22,
1418
- className: "stroke-foreground"
1419
- }
1420
- ) : /* @__PURE__ */ jsx(
1414
+ children: /* @__PURE__ */ jsx(
1421
1415
  DynamicIcon,
1422
1416
  {
1423
1417
  name: "lucide/menu",
@@ -1429,20 +1423,20 @@ var NavbarMultiColumnGroups = ({
1429
1423
  ) })
1430
1424
  ]
1431
1425
  }
1432
- ) }) }) }),
1433
- /* @__PURE__ */ jsx(
1434
- MobileNavigationMenu,
1435
- {
1436
- open,
1437
- setOpen,
1438
- navigation: navigation ?? [],
1439
- authActions: mobileAuthActions,
1440
- authActionsSlot: mobileAuthActionsSlot
1441
- }
1442
- )
1443
- ]
1444
- }
1445
- );
1426
+ ) }) }) })
1427
+ }
1428
+ ),
1429
+ /* @__PURE__ */ jsx(
1430
+ MobileNavigationMenu,
1431
+ {
1432
+ open,
1433
+ setOpen,
1434
+ navigation: navigation ?? [],
1435
+ authActions: mobileAuthActions,
1436
+ authActionsSlot: mobileAuthActionsSlot
1437
+ }
1438
+ )
1439
+ ] });
1446
1440
  };
1447
1441
  var DesktopMenuItem = ({ item, index }) => {
1448
1442
  if (item.groups) {
@@ -1524,7 +1518,6 @@ var MobileNavigationMenu = ({
1524
1518
  open,
1525
1519
  onClose: () => setOpen(false),
1526
1520
  title: "Mobile Navigation",
1527
- className: "dark",
1528
1521
  children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
1529
1522
  /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem(item, index)) }),
1530
1523
  renderMobileAuthActions
@@ -1541,12 +1534,12 @@ var renderMobileMenuItem = (item, index) => {
1541
1534
  className: "border-b-0",
1542
1535
  children: [
1543
1536
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "h-15 items-center p-0 px-4! text-base leading-[3.75] font-normal text-muted-foreground hover:bg-muted hover:no-underline", children: item.title }),
1544
- /* @__PURE__ */ jsx(AccordionContent, { className: "max-h-[60dvh] overflow-x-auto", children: item.groups.flatMap(
1537
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.flatMap(
1545
1538
  (group, groupIndex) => group.links.map((link, linkIndex) => /* @__PURE__ */ jsxs(
1546
1539
  Pressable,
1547
1540
  {
1548
1541
  href: link.url,
1549
- className: "flex h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
1542
+ className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
1550
1543
  children: [
1551
1544
  link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsx(
1552
1545
  DynamicIcon,
@@ -1313,27 +1313,30 @@ var NavbarPlatformResources = ({
1313
1313
  const renderDropdownContent = (link) => {
1314
1314
  const layout = link.layout || "simple-list";
1315
1315
  if (layout === "simple-list") {
1316
- return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[640px] p-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1317
- NavigationMenuLink,
1316
+ return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "w-[400px] p-3", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-1", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1317
+ "li",
1318
1318
  {
1319
- href: getLinkUrl(item),
1320
- className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
1321
- children: [
1322
- item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
1323
- img.Img,
1324
- {
1325
- src: item.image,
1326
- alt: typeof item.label === "string" ? item.label : "Menu item",
1327
- className: "h-full w-full object-cover object-center",
1328
- optixFlowConfig
1329
- }
1330
- ) }),
1331
- !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 18 }) : null }),
1332
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1333
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium text-foreground", children: item.label }),
1334
- item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-normal text-muted-foreground", children: item.description })
1335
- ] })
1336
- ]
1319
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
1320
+ NavigationMenuLink,
1321
+ {
1322
+ href: getLinkUrl(item),
1323
+ className: "group/link flex-row gap-2 px-3 py-2 transition-colors duration-200",
1324
+ children: [
1325
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-8 shrink-0 rounded-lg border duration-400 fade-in group-hover/link:bg-background", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1326
+ DynamicIcon,
1327
+ {
1328
+ name: item.iconName,
1329
+ size: 16,
1330
+ className: "m-auto group-hover/link:stroke-black"
1331
+ }
1332
+ ) : null }),
1333
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-0.5", children: [
1334
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: item.label }),
1335
+ item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground group-hover/link:text-foreground", children: item.description })
1336
+ ] })
1337
+ ]
1338
+ }
1339
+ )
1337
1340
  },
1338
1341
  `${typeof item.label === "string" ? item.label : "item"}-${itemIndex}`
1339
1342
  )) }) });
@@ -1682,7 +1685,7 @@ var NavbarPlatformResources = ({
1682
1685
  className: "border-b-0",
1683
1686
  children: [
1684
1687
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
1685
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "max-h-[60dvh] overflow-y-auto space-y-4", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1688
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1686
1689
  Pressable,
1687
1690
  {
1688
1691
  href: getLinkUrl(item),