@opensite/ui 1.0.7 → 1.0.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/navbar-animated-preview.cjs +16 -16
- package/dist/navbar-animated-preview.js +16 -16
- package/dist/navbar-centered-menu.cjs +1 -1
- package/dist/navbar-centered-menu.js +1 -1
- package/dist/navbar-dark-icons.cjs +1 -1
- package/dist/navbar-dark-icons.js +1 -1
- package/dist/navbar-dropdown-menu.cjs +1 -1
- package/dist/navbar-dropdown-menu.js +1 -1
- package/dist/navbar-education-platform.cjs +278 -236
- package/dist/navbar-education-platform.d.cts +61 -36
- package/dist/navbar-education-platform.d.ts +61 -36
- package/dist/navbar-education-platform.js +279 -237
- package/dist/navbar-enterprise-mega.cjs +6 -6
- package/dist/navbar-enterprise-mega.js +6 -6
- package/dist/navbar-feature-grid.cjs +1 -1
- package/dist/navbar-feature-grid.js +1 -1
- package/dist/navbar-icon-links.cjs +2 -1
- package/dist/navbar-icon-links.js +2 -1
- package/dist/navbar-image-preview.cjs +129 -50
- package/dist/navbar-image-preview.js +128 -50
- package/dist/navbar-mega-menu.cjs +1 -1
- package/dist/navbar-mega-menu.js +1 -1
- package/dist/navbar-multi-column-groups.cjs +53 -49
- package/dist/navbar-multi-column-groups.js +53 -49
- package/dist/navbar-platform-resources.cjs +5 -4
- package/dist/navbar-platform-resources.js +5 -4
- package/dist/navbar-search-focused.cjs +1 -1
- package/dist/navbar-search-focused.js +1 -1
- package/dist/navbar-sidebar-mobile.cjs +235 -166
- package/dist/navbar-sidebar-mobile.js +236 -167
- package/dist/navbar-simple-links.cjs +228 -184
- package/dist/navbar-simple-links.d.cts +15 -3
- package/dist/navbar-simple-links.d.ts +15 -3
- package/dist/navbar-simple-links.js +228 -183
- package/dist/navbar-split-cta.cjs +3 -3
- package/dist/navbar-split-cta.js +3 -3
- package/dist/navbar-sticky-compact.cjs +1 -1
- package/dist/navbar-sticky-compact.js +1 -1
- package/dist/navbar-tabbed-sections.cjs +1 -1
- package/dist/navbar-tabbed-sections.js +1 -1
- package/dist/navbar-transparent-overlay.cjs +244 -123
- package/dist/navbar-transparent-overlay.d.cts +30 -1
- package/dist/navbar-transparent-overlay.d.ts +30 -1
- package/dist/navbar-transparent-overlay.js +244 -123
- package/dist/registry.cjs +1008 -894
- package/dist/registry.js +1008 -894
- package/package.json +1 -1
|
@@ -1222,7 +1222,7 @@ var NavbarMobileMenu = ({
|
|
|
1222
1222
|
"data-state": open ? "open" : "closed",
|
|
1223
1223
|
children: [
|
|
1224
1224
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1225
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-
|
|
1225
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1226
1226
|
"button",
|
|
1227
1227
|
{
|
|
1228
1228
|
onClick: onClose,
|
|
@@ -1307,7 +1307,29 @@ var NavbarSidebarMobile = ({
|
|
|
1307
1307
|
optixFlowConfig
|
|
1308
1308
|
}) => {
|
|
1309
1309
|
const [isOpen, setIsOpen] = React.useState(false);
|
|
1310
|
-
const
|
|
1310
|
+
const MOBILE_BREAKPOINT = 1024;
|
|
1311
|
+
React.useEffect(() => {
|
|
1312
|
+
if (typeof window === "undefined") return;
|
|
1313
|
+
const handleResize = () => {
|
|
1314
|
+
if (window.innerWidth > MOBILE_BREAKPOINT) {
|
|
1315
|
+
setIsOpen(false);
|
|
1316
|
+
}
|
|
1317
|
+
};
|
|
1318
|
+
handleResize();
|
|
1319
|
+
window.addEventListener("resize", handleResize);
|
|
1320
|
+
return () => window.removeEventListener("resize", handleResize);
|
|
1321
|
+
}, []);
|
|
1322
|
+
React.useEffect(() => {
|
|
1323
|
+
if (typeof document === "undefined") return;
|
|
1324
|
+
document.body.style.overflow = isOpen ? "hidden" : "auto";
|
|
1325
|
+
return () => {
|
|
1326
|
+
document.body.style.overflow = "auto";
|
|
1327
|
+
};
|
|
1328
|
+
}, [isOpen]);
|
|
1329
|
+
const handleMobileMenu = () => {
|
|
1330
|
+
setIsOpen(!isOpen);
|
|
1331
|
+
};
|
|
1332
|
+
const renderAuthActions = React.useMemo(() => {
|
|
1311
1333
|
if (authActionsSlot) return authActionsSlot;
|
|
1312
1334
|
if (!authActions || authActions.length === 0) return null;
|
|
1313
1335
|
return authActions.map((action, index) => {
|
|
@@ -1334,17 +1356,12 @@ var NavbarSidebarMobile = ({
|
|
|
1334
1356
|
index
|
|
1335
1357
|
);
|
|
1336
1358
|
});
|
|
1337
|
-
};
|
|
1359
|
+
}, [authActionsSlot, authActions]);
|
|
1338
1360
|
const renderMenu = () => {
|
|
1339
1361
|
if (menuSlot) return null;
|
|
1340
1362
|
if (!menu || menu.length === 0) return null;
|
|
1341
1363
|
return menu;
|
|
1342
1364
|
};
|
|
1343
|
-
const renderMobileExtraLinks = () => {
|
|
1344
|
-
if (mobileExtraLinksSlot) return null;
|
|
1345
|
-
if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
|
|
1346
|
-
return mobileExtraLinks;
|
|
1347
|
-
};
|
|
1348
1365
|
const {
|
|
1349
1366
|
sectionClasses,
|
|
1350
1367
|
containerWrapperClasses,
|
|
@@ -1354,171 +1371,223 @@ var NavbarSidebarMobile = ({
|
|
|
1354
1371
|
sectionContainerMaxWidth,
|
|
1355
1372
|
spacingOverride
|
|
1356
1373
|
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1357
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1358
|
-
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
"
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
|
|
1373
|
-
|
|
1374
|
-
children: [
|
|
1375
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-8", children: [
|
|
1376
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1377
|
-
NavbarLogo,
|
|
1378
|
-
{
|
|
1379
|
-
logo,
|
|
1380
|
-
logoSlot,
|
|
1381
|
-
logoClassName,
|
|
1382
|
-
optixFlowConfig
|
|
1383
|
-
}
|
|
1384
|
-
),
|
|
1385
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1386
|
-
NavigationMenu,
|
|
1387
|
-
{
|
|
1388
|
-
className: cn("hidden lg:flex", navigationMenuClassName),
|
|
1389
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
|
|
1390
|
-
(item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
|
|
1391
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.title }),
|
|
1392
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1393
|
-
Pressable,
|
|
1394
|
-
{
|
|
1395
|
-
href: subItem.url,
|
|
1396
|
-
className: "block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
|
|
1397
|
-
children: [
|
|
1398
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1399
|
-
subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1400
|
-
DynamicIcon,
|
|
1401
|
-
{
|
|
1402
|
-
name: subItem.icon,
|
|
1403
|
-
size: 16
|
|
1404
|
-
}
|
|
1405
|
-
),
|
|
1406
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium leading-none", children: subItem.title })
|
|
1407
|
-
] }),
|
|
1408
|
-
subItem.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-2 text-sm leading-snug text-muted-foreground", children: subItem.description })
|
|
1409
|
-
]
|
|
1410
|
-
}
|
|
1411
|
-
) }) }, subIndex)) }) })
|
|
1412
|
-
] }, index) : /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1413
|
-
NavigationMenuLink,
|
|
1414
|
-
{
|
|
1415
|
-
asChild: true,
|
|
1416
|
-
className: navigationMenuTriggerStyle(),
|
|
1417
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.url, children: item.title })
|
|
1418
|
-
}
|
|
1419
|
-
) }, index)
|
|
1420
|
-
) })
|
|
1421
|
-
}
|
|
1422
|
-
)
|
|
1423
|
-
] }),
|
|
1424
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1425
|
-
"div",
|
|
1426
|
-
{
|
|
1427
|
-
className: cn(
|
|
1428
|
-
"hidden items-center gap-2 lg:flex",
|
|
1429
|
-
actionsClassName
|
|
1430
|
-
),
|
|
1431
|
-
children: renderAuthActions()
|
|
1432
|
-
}
|
|
1433
|
-
),
|
|
1434
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1435
|
-
Pressable,
|
|
1436
|
-
{
|
|
1437
|
-
variant: "outline",
|
|
1438
|
-
size: "icon",
|
|
1439
|
-
asButton: true,
|
|
1440
|
-
className: "lg:hidden",
|
|
1441
|
-
onClick: () => setIsOpen(!isOpen),
|
|
1442
|
-
children: [
|
|
1443
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
|
|
1444
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
|
|
1445
|
-
]
|
|
1446
|
-
}
|
|
1374
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1375
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1376
|
+
Section,
|
|
1377
|
+
{
|
|
1378
|
+
background,
|
|
1379
|
+
spacing: spacingOverride ?? spacing,
|
|
1380
|
+
className: sectionClasses,
|
|
1381
|
+
pattern,
|
|
1382
|
+
patternOpacity,
|
|
1383
|
+
containerClassName: sectionContainerClassName,
|
|
1384
|
+
containerMaxWidth: sectionContainerMaxWidth,
|
|
1385
|
+
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(
|
|
1386
|
+
"nav",
|
|
1387
|
+
{
|
|
1388
|
+
className: cn(
|
|
1389
|
+
"flex items-center justify-between py-4",
|
|
1390
|
+
navClassName
|
|
1447
1391
|
),
|
|
1448
|
-
|
|
1449
|
-
|
|
1450
|
-
|
|
1451
|
-
|
|
1452
|
-
|
|
1453
|
-
|
|
1454
|
-
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
|
|
1460
|
-
|
|
1461
|
-
|
|
1462
|
-
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
|
|
1471
|
-
|
|
1472
|
-
|
|
1473
|
-
{
|
|
1474
|
-
href: subItem.url,
|
|
1475
|
-
className: "flex items-center gap-2 rounded-md py-2 text-sm text-muted-foreground hover:text-foreground",
|
|
1476
|
-
onClick: () => setIsOpen(false),
|
|
1477
|
-
children: [
|
|
1392
|
+
children: [
|
|
1393
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-8", children: [
|
|
1394
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1395
|
+
NavbarLogo,
|
|
1396
|
+
{
|
|
1397
|
+
logo,
|
|
1398
|
+
logoSlot,
|
|
1399
|
+
logoClassName,
|
|
1400
|
+
optixFlowConfig
|
|
1401
|
+
}
|
|
1402
|
+
),
|
|
1403
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1404
|
+
NavigationMenu,
|
|
1405
|
+
{
|
|
1406
|
+
className: cn("hidden lg:flex", navigationMenuClassName),
|
|
1407
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
|
|
1408
|
+
(item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
|
|
1409
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.title }),
|
|
1410
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1411
|
+
Pressable,
|
|
1412
|
+
{
|
|
1413
|
+
href: subItem.url,
|
|
1414
|
+
className: "block w-full select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-muted focus:bg-muted",
|
|
1415
|
+
children: [
|
|
1416
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1478
1417
|
subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1479
1418
|
DynamicIcon,
|
|
1480
1419
|
{
|
|
1481
1420
|
name: subItem.icon,
|
|
1482
|
-
size:
|
|
1421
|
+
size: 16
|
|
1483
1422
|
}
|
|
1484
1423
|
),
|
|
1485
|
-
subItem.title
|
|
1486
|
-
]
|
|
1487
|
-
|
|
1488
|
-
|
|
1489
|
-
|
|
1490
|
-
|
|
1491
|
-
},
|
|
1492
|
-
|
|
1493
|
-
|
|
1494
|
-
|
|
1495
|
-
|
|
1496
|
-
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1500
|
-
|
|
1501
|
-
|
|
1502
|
-
|
|
1503
|
-
|
|
1504
|
-
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
|
|
1508
|
-
|
|
1509
|
-
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1515
|
-
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1519
|
-
|
|
1520
|
-
|
|
1521
|
-
|
|
1424
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium leading-none", children: subItem.title })
|
|
1425
|
+
] }),
|
|
1426
|
+
subItem.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-2 text-sm leading-snug text-muted-foreground", children: subItem.description })
|
|
1427
|
+
]
|
|
1428
|
+
}
|
|
1429
|
+
) }) }, subIndex)) }) })
|
|
1430
|
+
] }, index) : /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1431
|
+
NavigationMenuLink,
|
|
1432
|
+
{
|
|
1433
|
+
asChild: true,
|
|
1434
|
+
className: navigationMenuTriggerStyle(),
|
|
1435
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.url, children: item.title })
|
|
1436
|
+
}
|
|
1437
|
+
) }, index)
|
|
1438
|
+
) })
|
|
1439
|
+
}
|
|
1440
|
+
)
|
|
1441
|
+
] }),
|
|
1442
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1443
|
+
"div",
|
|
1444
|
+
{
|
|
1445
|
+
className: cn(
|
|
1446
|
+
"hidden items-center gap-2 lg:flex",
|
|
1447
|
+
actionsClassName
|
|
1448
|
+
),
|
|
1449
|
+
children: renderAuthActions
|
|
1450
|
+
}
|
|
1451
|
+
),
|
|
1452
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1453
|
+
Pressable,
|
|
1454
|
+
{
|
|
1455
|
+
className: "size-11",
|
|
1456
|
+
variant: "ghost",
|
|
1457
|
+
size: "icon",
|
|
1458
|
+
asButton: true,
|
|
1459
|
+
onClick: handleMobileMenu,
|
|
1460
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1461
|
+
DynamicIcon,
|
|
1462
|
+
{
|
|
1463
|
+
name: "lucide/menu",
|
|
1464
|
+
size: 22,
|
|
1465
|
+
className: "stroke-foreground"
|
|
1466
|
+
}
|
|
1467
|
+
)
|
|
1468
|
+
}
|
|
1469
|
+
) })
|
|
1470
|
+
]
|
|
1471
|
+
}
|
|
1472
|
+
) }) }) })
|
|
1473
|
+
}
|
|
1474
|
+
),
|
|
1475
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1476
|
+
MobileNavigationMenu,
|
|
1477
|
+
{
|
|
1478
|
+
open: isOpen,
|
|
1479
|
+
setOpen: setIsOpen,
|
|
1480
|
+
menu: menu ?? [],
|
|
1481
|
+
menuSlot,
|
|
1482
|
+
authActions,
|
|
1483
|
+
authActionsSlot,
|
|
1484
|
+
mobileExtraLinks,
|
|
1485
|
+
mobileExtraLinksSlot
|
|
1486
|
+
}
|
|
1487
|
+
)
|
|
1488
|
+
] });
|
|
1489
|
+
};
|
|
1490
|
+
var MobileNavigationMenu = ({
|
|
1491
|
+
open,
|
|
1492
|
+
setOpen,
|
|
1493
|
+
menu,
|
|
1494
|
+
menuSlot,
|
|
1495
|
+
authActions,
|
|
1496
|
+
authActionsSlot,
|
|
1497
|
+
mobileExtraLinks,
|
|
1498
|
+
mobileExtraLinksSlot
|
|
1499
|
+
}) => {
|
|
1500
|
+
const renderMobileAuthActions = React.useMemo(() => {
|
|
1501
|
+
if (authActionsSlot) return authActionsSlot;
|
|
1502
|
+
if (!authActions || authActions.length === 0) return null;
|
|
1503
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: authActions.map((action, index) => {
|
|
1504
|
+
const {
|
|
1505
|
+
label,
|
|
1506
|
+
icon,
|
|
1507
|
+
iconAfter,
|
|
1508
|
+
children,
|
|
1509
|
+
className: actionClassName,
|
|
1510
|
+
...pressableProps
|
|
1511
|
+
} = action;
|
|
1512
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1513
|
+
Pressable,
|
|
1514
|
+
{
|
|
1515
|
+
asButton: true,
|
|
1516
|
+
className: cn("w-full", actionClassName),
|
|
1517
|
+
...pressableProps,
|
|
1518
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1519
|
+
icon,
|
|
1520
|
+
label,
|
|
1521
|
+
iconAfter
|
|
1522
|
+
] })
|
|
1523
|
+
},
|
|
1524
|
+
index
|
|
1525
|
+
);
|
|
1526
|
+
}) });
|
|
1527
|
+
}, [authActionsSlot, authActions]);
|
|
1528
|
+
const renderMobileExtraLinks = React.useMemo(() => {
|
|
1529
|
+
if (mobileExtraLinksSlot) return mobileExtraLinksSlot;
|
|
1530
|
+
if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
|
|
1531
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex flex-wrap gap-x-4 gap-y-2", children: mobileExtraLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1532
|
+
Pressable,
|
|
1533
|
+
{
|
|
1534
|
+
href: link.url,
|
|
1535
|
+
className: "text-xs text-muted-foreground hover:text-foreground",
|
|
1536
|
+
children: link.title
|
|
1537
|
+
},
|
|
1538
|
+
index
|
|
1539
|
+
)) });
|
|
1540
|
+
}, [mobileExtraLinksSlot, mobileExtraLinks]);
|
|
1541
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1542
|
+
NavbarMobileMenu,
|
|
1543
|
+
{
|
|
1544
|
+
open,
|
|
1545
|
+
onClose: () => setOpen(false),
|
|
1546
|
+
title: "Navigation Menu",
|
|
1547
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
|
|
1548
|
+
/* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: menuSlot ? menuSlot : menu.map(
|
|
1549
|
+
(item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1550
|
+
AccordionItem,
|
|
1551
|
+
{
|
|
1552
|
+
value: `nav-${index}`,
|
|
1553
|
+
className: "border-b-0",
|
|
1554
|
+
children: [
|
|
1555
|
+
/* @__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 }),
|
|
1556
|
+
/* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1557
|
+
Pressable,
|
|
1558
|
+
{
|
|
1559
|
+
href: subItem.url,
|
|
1560
|
+
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",
|
|
1561
|
+
children: [
|
|
1562
|
+
subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1563
|
+
DynamicIcon,
|
|
1564
|
+
{
|
|
1565
|
+
name: subItem.icon,
|
|
1566
|
+
size: 16,
|
|
1567
|
+
className: "stroke-muted-foreground"
|
|
1568
|
+
}
|
|
1569
|
+
),
|
|
1570
|
+
subItem.title
|
|
1571
|
+
]
|
|
1572
|
+
},
|
|
1573
|
+
`mobile-link-${index}-${subIndex}`
|
|
1574
|
+
)) })
|
|
1575
|
+
]
|
|
1576
|
+
},
|
|
1577
|
+
`nav-item-${index}`
|
|
1578
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1579
|
+
Pressable,
|
|
1580
|
+
{
|
|
1581
|
+
href: item.url,
|
|
1582
|
+
className: "flex h-15 items-center rounded-md p-0 px-4 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all hover:bg-muted focus-visible:ring-4 focus-visible:outline-1 nth-last-1:border-0",
|
|
1583
|
+
children: item.title
|
|
1584
|
+
},
|
|
1585
|
+
`nav-link-${index}`
|
|
1586
|
+
)
|
|
1587
|
+
) }),
|
|
1588
|
+
renderMobileAuthActions,
|
|
1589
|
+
renderMobileExtraLinks
|
|
1590
|
+
] }) })
|
|
1522
1591
|
}
|
|
1523
1592
|
);
|
|
1524
1593
|
};
|