@opensite/ui 1.0.9 → 1.1.0
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 +27 -17
- package/dist/navbar-animated-preview.js +27 -17
- package/dist/navbar-centered-menu.cjs +20 -10
- package/dist/navbar-centered-menu.js +20 -10
- package/dist/navbar-dark-icons.cjs +20 -10
- package/dist/navbar-dark-icons.js +20 -10
- package/dist/navbar-dropdown-menu.cjs +20 -10
- package/dist/navbar-dropdown-menu.js +20 -10
- package/dist/navbar-education-platform.cjs +81 -56
- package/dist/navbar-education-platform.js +81 -56
- package/dist/navbar-enterprise-mega.cjs +21 -11
- package/dist/navbar-enterprise-mega.js +21 -11
- package/dist/navbar-feature-grid.cjs +20 -10
- package/dist/navbar-feature-grid.js +20 -10
- package/dist/navbar-icon-links.cjs +20 -10
- package/dist/navbar-icon-links.js +20 -10
- package/dist/navbar-image-preview.cjs +20 -10
- package/dist/navbar-image-preview.js +20 -10
- package/dist/navbar-mega-menu.cjs +20 -10
- package/dist/navbar-mega-menu.js +20 -10
- package/dist/navbar-multi-column-groups.cjs +52 -35
- package/dist/navbar-multi-column-groups.js +52 -35
- package/dist/navbar-platform-resources.cjs +20 -10
- package/dist/navbar-platform-resources.js +20 -10
- package/dist/navbar-search-focused.cjs +20 -10
- package/dist/navbar-search-focused.js +20 -10
- package/dist/navbar-sidebar-mobile.cjs +21 -10
- package/dist/navbar-sidebar-mobile.js +21 -10
- package/dist/navbar-simple-links.cjs +22 -12
- package/dist/navbar-simple-links.js +22 -12
- package/dist/navbar-split-cta.cjs +20 -10
- package/dist/navbar-split-cta.js +20 -10
- package/dist/navbar-sticky-compact.cjs +240 -123
- package/dist/navbar-sticky-compact.js +239 -123
- package/dist/navbar-tabbed-sections.cjs +20 -10
- package/dist/navbar-tabbed-sections.js +20 -10
- package/dist/navbar-transparent-overlay.cjs +21 -10
- package/dist/navbar-transparent-overlay.js +21 -10
- package/dist/registry.cjs +285 -206
- package/dist/registry.js +285 -206
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ import { twMerge } from 'tailwind-merge';
|
|
|
6
6
|
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
|
+
import * as AccordionPrimitive from '@radix-ui/react-accordion';
|
|
9
10
|
import * as NavigationMenuPrimitive from '@radix-ui/react-navigation-menu';
|
|
10
11
|
|
|
11
12
|
// components/blocks/navbars/navbar-sticky-compact.tsx
|
|
@@ -970,6 +971,66 @@ var NavbarLogo = ({
|
|
|
970
971
|
}
|
|
971
972
|
);
|
|
972
973
|
};
|
|
974
|
+
function Accordion({
|
|
975
|
+
...props
|
|
976
|
+
}) {
|
|
977
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Root, { "data-slot": "accordion", ...props });
|
|
978
|
+
}
|
|
979
|
+
function AccordionItem({
|
|
980
|
+
className,
|
|
981
|
+
...props
|
|
982
|
+
}) {
|
|
983
|
+
return /* @__PURE__ */ jsx(
|
|
984
|
+
AccordionPrimitive.Item,
|
|
985
|
+
{
|
|
986
|
+
"data-slot": "accordion-item",
|
|
987
|
+
className: cn("border-b ", className),
|
|
988
|
+
...props
|
|
989
|
+
}
|
|
990
|
+
);
|
|
991
|
+
}
|
|
992
|
+
function AccordionTrigger({
|
|
993
|
+
className,
|
|
994
|
+
children,
|
|
995
|
+
...props
|
|
996
|
+
}) {
|
|
997
|
+
return /* @__PURE__ */ jsx(AccordionPrimitive.Header, { className: "flex", children: /* @__PURE__ */ jsxs(
|
|
998
|
+
AccordionPrimitive.Trigger,
|
|
999
|
+
{
|
|
1000
|
+
"data-slot": "accordion-trigger",
|
|
1001
|
+
className: cn(
|
|
1002
|
+
"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",
|
|
1003
|
+
className
|
|
1004
|
+
),
|
|
1005
|
+
...props,
|
|
1006
|
+
children: [
|
|
1007
|
+
children,
|
|
1008
|
+
/* @__PURE__ */ jsx(
|
|
1009
|
+
DynamicIcon,
|
|
1010
|
+
{
|
|
1011
|
+
name: "lucide/chevron-down",
|
|
1012
|
+
className: "text-muted-foreground pointer-events-none size-4 shrink-0 translate-y-0.5 transition-transform duration-200"
|
|
1013
|
+
}
|
|
1014
|
+
)
|
|
1015
|
+
]
|
|
1016
|
+
}
|
|
1017
|
+
) });
|
|
1018
|
+
}
|
|
1019
|
+
function AccordionContent({
|
|
1020
|
+
className,
|
|
1021
|
+
children,
|
|
1022
|
+
...props
|
|
1023
|
+
}) {
|
|
1024
|
+
return /* @__PURE__ */ jsx(
|
|
1025
|
+
AccordionPrimitive.Content,
|
|
1026
|
+
{
|
|
1027
|
+
"data-slot": "accordion-content",
|
|
1028
|
+
className: "data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down overflow-hidden text-sm",
|
|
1029
|
+
...props,
|
|
1030
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("pt-0 pb-4", className), children })
|
|
1031
|
+
}
|
|
1032
|
+
);
|
|
1033
|
+
}
|
|
973
1034
|
function NavigationMenu({
|
|
974
1035
|
className,
|
|
975
1036
|
children,
|
|
@@ -1114,6 +1175,7 @@ var NavbarMobileMenu = ({
|
|
|
1114
1175
|
children,
|
|
1115
1176
|
className,
|
|
1116
1177
|
contentClassName,
|
|
1178
|
+
closeContainerClassName = "",
|
|
1117
1179
|
title = "Mobile Navigation"
|
|
1118
1180
|
}) => {
|
|
1119
1181
|
React.useEffect(() => {
|
|
@@ -1138,18 +1200,27 @@ var NavbarMobileMenu = ({
|
|
|
1138
1200
|
"data-state": open ? "open" : "closed",
|
|
1139
1201
|
children: [
|
|
1140
1202
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1141
|
-
/* @__PURE__ */ jsx(
|
|
1142
|
-
"
|
|
1203
|
+
/* @__PURE__ */ jsx(
|
|
1204
|
+
"div",
|
|
1143
1205
|
{
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1206
|
+
className: cn(
|
|
1207
|
+
closeContainerClassName,
|
|
1208
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
|
|
1209
|
+
),
|
|
1210
|
+
children: /* @__PURE__ */ jsxs(
|
|
1211
|
+
"button",
|
|
1212
|
+
{
|
|
1213
|
+
onClick: onClose,
|
|
1214
|
+
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",
|
|
1215
|
+
"aria-label": "Close mobile menu",
|
|
1216
|
+
children: [
|
|
1217
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1218
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1219
|
+
]
|
|
1220
|
+
}
|
|
1221
|
+
)
|
|
1151
1222
|
}
|
|
1152
|
-
)
|
|
1223
|
+
),
|
|
1153
1224
|
/* @__PURE__ */ jsx(
|
|
1154
1225
|
"div",
|
|
1155
1226
|
{
|
|
@@ -1299,37 +1370,6 @@ var NavbarStickyCompact = ({
|
|
|
1299
1370
|
) }, index)
|
|
1300
1371
|
);
|
|
1301
1372
|
}, [menuSlot, menu, isScrolled]);
|
|
1302
|
-
const renderMobileMenu = useMemo(() => {
|
|
1303
|
-
if (menuSlot) return menuSlot;
|
|
1304
|
-
if (!menu || menu.length === 0) return null;
|
|
1305
|
-
return menu.map(
|
|
1306
|
-
(item, index) => item.items ? /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
1307
|
-
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.title }),
|
|
1308
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1 pl-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxs(
|
|
1309
|
-
Pressable,
|
|
1310
|
-
{
|
|
1311
|
-
href: subItem.url,
|
|
1312
|
-
className: "flex items-center gap-2 rounded-md py-2 text-sm hover:text-foreground",
|
|
1313
|
-
onClick: () => setIsOpen(false),
|
|
1314
|
-
children: [
|
|
1315
|
-
subItem.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: subItem.icon, size: 14 }),
|
|
1316
|
-
subItem.title
|
|
1317
|
-
]
|
|
1318
|
-
},
|
|
1319
|
-
subIndex
|
|
1320
|
-
)) })
|
|
1321
|
-
] }, index) : /* @__PURE__ */ jsx(
|
|
1322
|
-
Pressable,
|
|
1323
|
-
{
|
|
1324
|
-
href: item.url,
|
|
1325
|
-
className: "text-sm font-medium",
|
|
1326
|
-
onClick: () => setIsOpen(false),
|
|
1327
|
-
children: item.title
|
|
1328
|
-
},
|
|
1329
|
-
index
|
|
1330
|
-
)
|
|
1331
|
-
);
|
|
1332
|
-
}, [menuSlot, menu]);
|
|
1333
1373
|
const {
|
|
1334
1374
|
sectionClasses,
|
|
1335
1375
|
containerWrapperClasses,
|
|
@@ -1339,99 +1379,175 @@ var NavbarStickyCompact = ({
|
|
|
1339
1379
|
sectionContainerMaxWidth,
|
|
1340
1380
|
spacingOverride
|
|
1341
1381
|
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1342
|
-
return /* @__PURE__ */
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
"
|
|
1382
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1383
|
+
/* @__PURE__ */ jsx(
|
|
1384
|
+
Section,
|
|
1385
|
+
{
|
|
1386
|
+
background,
|
|
1387
|
+
spacing: spacingOverride ?? spacing,
|
|
1388
|
+
className: cn(
|
|
1389
|
+
sectionClasses,
|
|
1390
|
+
"fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
|
|
1391
|
+
isScrolled ? "shadow-sm" : ""
|
|
1392
|
+
),
|
|
1393
|
+
pattern,
|
|
1394
|
+
patternOpacity,
|
|
1395
|
+
containerClassName: sectionContainerClassName,
|
|
1396
|
+
containerMaxWidth: sectionContainerMaxWidth,
|
|
1397
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
|
|
1398
|
+
"nav",
|
|
1399
|
+
{
|
|
1400
|
+
className: cn(
|
|
1401
|
+
"flex items-center justify-between transition-all duration-300",
|
|
1402
|
+
isScrolled ? "h-14" : "h-16",
|
|
1403
|
+
navClassName
|
|
1404
|
+
),
|
|
1405
|
+
children: [
|
|
1406
|
+
/* @__PURE__ */ jsx(
|
|
1407
|
+
NavbarLogo,
|
|
1408
|
+
{
|
|
1409
|
+
logo,
|
|
1410
|
+
logoSlot,
|
|
1411
|
+
logoClassName: cn(
|
|
1412
|
+
isScrolled ? "[&_img]:h-6 [&_span]:text-base" : "[&_img]:h-8 [&_span]:text-lg",
|
|
1413
|
+
"[&_img]:transition-all [&_img]:duration-300 [&_span]:transition-all [&_span]:duration-300",
|
|
1414
|
+
logoClassName
|
|
1415
|
+
),
|
|
1416
|
+
optixFlowConfig
|
|
1417
|
+
}
|
|
1418
|
+
),
|
|
1419
|
+
/* @__PURE__ */ jsx(NavigationMenu, { className: "hidden lg:flex", viewport: false, children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu }) }),
|
|
1420
|
+
/* @__PURE__ */ jsx(
|
|
1421
|
+
"div",
|
|
1422
|
+
{
|
|
1423
|
+
className: cn(
|
|
1424
|
+
"hidden items-center gap-2 lg:flex",
|
|
1425
|
+
actionsClassName
|
|
1426
|
+
),
|
|
1427
|
+
children: renderAuthActions
|
|
1428
|
+
}
|
|
1429
|
+
),
|
|
1430
|
+
/* @__PURE__ */ jsxs(
|
|
1431
|
+
Pressable,
|
|
1432
|
+
{
|
|
1433
|
+
variant: "ghost",
|
|
1434
|
+
size: isScrolled ? "sm" : "icon",
|
|
1435
|
+
asButton: true,
|
|
1436
|
+
className: "lg:hidden transition-all duration-300",
|
|
1437
|
+
onClick: () => setIsOpen(!isOpen),
|
|
1438
|
+
children: [
|
|
1439
|
+
/* @__PURE__ */ jsx(
|
|
1440
|
+
DynamicIcon,
|
|
1441
|
+
{
|
|
1442
|
+
name: "lucide/menu",
|
|
1443
|
+
size: isScrolled ? 18 : 20
|
|
1444
|
+
}
|
|
1445
|
+
),
|
|
1446
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
|
|
1447
|
+
]
|
|
1448
|
+
}
|
|
1449
|
+
)
|
|
1450
|
+
]
|
|
1451
|
+
}
|
|
1452
|
+
) }) }) })
|
|
1453
|
+
}
|
|
1454
|
+
),
|
|
1455
|
+
/* @__PURE__ */ jsx(
|
|
1456
|
+
MobileNavigationMenu,
|
|
1457
|
+
{
|
|
1458
|
+
open: isOpen,
|
|
1459
|
+
setOpen: setIsOpen,
|
|
1460
|
+
menu: menu ?? [],
|
|
1461
|
+
menuSlot,
|
|
1462
|
+
authActions,
|
|
1463
|
+
authActionsSlot
|
|
1464
|
+
}
|
|
1465
|
+
)
|
|
1466
|
+
] });
|
|
1467
|
+
};
|
|
1468
|
+
var MobileNavigationMenu = ({
|
|
1469
|
+
open,
|
|
1470
|
+
setOpen,
|
|
1471
|
+
menu,
|
|
1472
|
+
menuSlot,
|
|
1473
|
+
authActions,
|
|
1474
|
+
authActionsSlot
|
|
1475
|
+
}) => {
|
|
1476
|
+
const handleClose = () => setOpen(false);
|
|
1477
|
+
const renderMobileAuthActions = useMemo(() => {
|
|
1478
|
+
if (authActionsSlot) return authActionsSlot;
|
|
1479
|
+
if (!authActions || authActions.length === 0) return null;
|
|
1480
|
+
return /* @__PURE__ */ jsx("div", { className: "mt-6 flex flex-col gap-4", children: authActions.map((action, index) => {
|
|
1481
|
+
const {
|
|
1482
|
+
label,
|
|
1483
|
+
icon,
|
|
1484
|
+
iconAfter,
|
|
1485
|
+
children,
|
|
1486
|
+
className: actionClassName,
|
|
1487
|
+
...pressableProps
|
|
1488
|
+
} = action;
|
|
1489
|
+
return /* @__PURE__ */ jsx(
|
|
1490
|
+
Pressable,
|
|
1358
1491
|
{
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1492
|
+
asButton: true,
|
|
1493
|
+
className: cn("w-full", actionClassName),
|
|
1494
|
+
onClick: handleClose,
|
|
1495
|
+
...pressableProps,
|
|
1496
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1497
|
+
icon,
|
|
1498
|
+
label,
|
|
1499
|
+
iconAfter
|
|
1500
|
+
] })
|
|
1501
|
+
},
|
|
1502
|
+
index
|
|
1503
|
+
);
|
|
1504
|
+
}) });
|
|
1505
|
+
}, [authActionsSlot, authActions]);
|
|
1506
|
+
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: [
|
|
1507
|
+
/* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
|
|
1508
|
+
(item, index) => item.items ? /* @__PURE__ */ jsxs(
|
|
1509
|
+
AccordionItem,
|
|
1510
|
+
{
|
|
1511
|
+
value: `nav-${index}`,
|
|
1512
|
+
className: "border-b-0",
|
|
1364
1513
|
children: [
|
|
1365
|
-
/* @__PURE__ */ jsx(
|
|
1366
|
-
|
|
1367
|
-
{
|
|
1368
|
-
logo,
|
|
1369
|
-
logoSlot,
|
|
1370
|
-
logoClassName: cn(
|
|
1371
|
-
isScrolled ? "[&_img]:h-6 [&_span]:text-base" : "[&_img]:h-8 [&_span]:text-lg",
|
|
1372
|
-
"[&_img]:transition-all [&_img]:duration-300 [&_span]:transition-all [&_span]:duration-300",
|
|
1373
|
-
logoClassName
|
|
1374
|
-
),
|
|
1375
|
-
optixFlowConfig
|
|
1376
|
-
}
|
|
1377
|
-
),
|
|
1378
|
-
/* @__PURE__ */ jsx(NavigationMenu, { className: "hidden lg:flex", children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu }) }),
|
|
1379
|
-
/* @__PURE__ */ jsx(
|
|
1380
|
-
"div",
|
|
1381
|
-
{
|
|
1382
|
-
className: cn(
|
|
1383
|
-
"hidden items-center gap-2 lg:flex",
|
|
1384
|
-
actionsClassName
|
|
1385
|
-
),
|
|
1386
|
-
children: renderAuthActions
|
|
1387
|
-
}
|
|
1388
|
-
),
|
|
1389
|
-
/* @__PURE__ */ jsxs(
|
|
1514
|
+
/* @__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 }),
|
|
1515
|
+
/* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxs(
|
|
1390
1516
|
Pressable,
|
|
1391
1517
|
{
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
className: "lg:hidden transition-all duration-300",
|
|
1396
|
-
onClick: () => setIsOpen(!isOpen),
|
|
1518
|
+
href: subItem.url,
|
|
1519
|
+
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",
|
|
1520
|
+
onClick: handleClose,
|
|
1397
1521
|
children: [
|
|
1398
|
-
/* @__PURE__ */ jsx(
|
|
1522
|
+
subItem.icon && /* @__PURE__ */ jsx(
|
|
1399
1523
|
DynamicIcon,
|
|
1400
1524
|
{
|
|
1401
|
-
name:
|
|
1402
|
-
size:
|
|
1525
|
+
name: subItem.icon,
|
|
1526
|
+
size: 16,
|
|
1527
|
+
className: "stroke-muted-foreground"
|
|
1403
1528
|
}
|
|
1404
1529
|
),
|
|
1405
|
-
|
|
1530
|
+
subItem.title
|
|
1406
1531
|
]
|
|
1407
|
-
}
|
|
1408
|
-
|
|
1409
|
-
|
|
1410
|
-
NavbarMobileMenu,
|
|
1411
|
-
{
|
|
1412
|
-
open: isOpen,
|
|
1413
|
-
onClose: () => setIsOpen(false),
|
|
1414
|
-
title: "Navigation Menu",
|
|
1415
|
-
children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
1416
|
-
renderMobileMenu,
|
|
1417
|
-
/* @__PURE__ */ jsx(
|
|
1418
|
-
"div",
|
|
1419
|
-
{
|
|
1420
|
-
className: cn(
|
|
1421
|
-
"mt-4 flex flex-col gap-2 border-t pt-4",
|
|
1422
|
-
actionsClassName
|
|
1423
|
-
),
|
|
1424
|
-
children: renderAuthActions
|
|
1425
|
-
}
|
|
1426
|
-
)
|
|
1427
|
-
] }) })
|
|
1428
|
-
}
|
|
1429
|
-
)
|
|
1532
|
+
},
|
|
1533
|
+
`mobile-link-${index}-${subIndex}`
|
|
1534
|
+
)) })
|
|
1430
1535
|
]
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1536
|
+
},
|
|
1537
|
+
`nav-item-${index}`
|
|
1538
|
+
) : /* @__PURE__ */ jsx(
|
|
1539
|
+
Pressable,
|
|
1540
|
+
{
|
|
1541
|
+
href: item.url,
|
|
1542
|
+
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",
|
|
1543
|
+
onClick: handleClose,
|
|
1544
|
+
children: item.title
|
|
1545
|
+
},
|
|
1546
|
+
`nav-link-${index}`
|
|
1547
|
+
)
|
|
1548
|
+
) }),
|
|
1549
|
+
renderMobileAuthActions
|
|
1550
|
+
] }) }) });
|
|
1435
1551
|
};
|
|
1436
1552
|
|
|
1437
1553
|
export { NavbarStickyCompact };
|
|
@@ -1138,6 +1138,7 @@ var NavbarMobileMenu = ({
|
|
|
1138
1138
|
children,
|
|
1139
1139
|
className,
|
|
1140
1140
|
contentClassName,
|
|
1141
|
+
closeContainerClassName = "",
|
|
1141
1142
|
title = "Mobile Navigation"
|
|
1142
1143
|
}) => {
|
|
1143
1144
|
React__namespace.useEffect(() => {
|
|
@@ -1162,18 +1163,27 @@ var NavbarMobileMenu = ({
|
|
|
1162
1163
|
"data-state": open ? "open" : "closed",
|
|
1163
1164
|
children: [
|
|
1164
1165
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1165
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1166
|
-
"
|
|
1166
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1167
|
+
"div",
|
|
1167
1168
|
{
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1169
|
+
className: cn(
|
|
1170
|
+
closeContainerClassName,
|
|
1171
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
|
|
1172
|
+
),
|
|
1173
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1174
|
+
"button",
|
|
1175
|
+
{
|
|
1176
|
+
onClick: onClose,
|
|
1177
|
+
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",
|
|
1178
|
+
"aria-label": "Close mobile menu",
|
|
1179
|
+
children: [
|
|
1180
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1181
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1182
|
+
]
|
|
1183
|
+
}
|
|
1184
|
+
)
|
|
1175
1185
|
}
|
|
1176
|
-
)
|
|
1186
|
+
),
|
|
1177
1187
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1178
1188
|
"div",
|
|
1179
1189
|
{
|
|
@@ -1115,6 +1115,7 @@ var NavbarMobileMenu = ({
|
|
|
1115
1115
|
children,
|
|
1116
1116
|
className,
|
|
1117
1117
|
contentClassName,
|
|
1118
|
+
closeContainerClassName = "",
|
|
1118
1119
|
title = "Mobile Navigation"
|
|
1119
1120
|
}) => {
|
|
1120
1121
|
React.useEffect(() => {
|
|
@@ -1139,18 +1140,27 @@ var NavbarMobileMenu = ({
|
|
|
1139
1140
|
"data-state": open ? "open" : "closed",
|
|
1140
1141
|
children: [
|
|
1141
1142
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1142
|
-
/* @__PURE__ */ jsx(
|
|
1143
|
-
"
|
|
1143
|
+
/* @__PURE__ */ jsx(
|
|
1144
|
+
"div",
|
|
1144
1145
|
{
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1146
|
+
className: cn(
|
|
1147
|
+
closeContainerClassName,
|
|
1148
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
|
|
1149
|
+
),
|
|
1150
|
+
children: /* @__PURE__ */ jsxs(
|
|
1151
|
+
"button",
|
|
1152
|
+
{
|
|
1153
|
+
onClick: onClose,
|
|
1154
|
+
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",
|
|
1155
|
+
"aria-label": "Close mobile menu",
|
|
1156
|
+
children: [
|
|
1157
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1158
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1159
|
+
]
|
|
1160
|
+
}
|
|
1161
|
+
)
|
|
1152
1162
|
}
|
|
1153
|
-
)
|
|
1163
|
+
),
|
|
1154
1164
|
/* @__PURE__ */ jsx(
|
|
1155
1165
|
"div",
|
|
1156
1166
|
{
|
|
@@ -998,6 +998,7 @@ var NavbarMobileMenu = ({
|
|
|
998
998
|
children,
|
|
999
999
|
className,
|
|
1000
1000
|
contentClassName,
|
|
1001
|
+
closeContainerClassName = "",
|
|
1001
1002
|
title = "Mobile Navigation"
|
|
1002
1003
|
}) => {
|
|
1003
1004
|
React__namespace.useEffect(() => {
|
|
@@ -1022,18 +1023,27 @@ var NavbarMobileMenu = ({
|
|
|
1022
1023
|
"data-state": open ? "open" : "closed",
|
|
1023
1024
|
children: [
|
|
1024
1025
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1025
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1026
|
-
"
|
|
1026
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1027
|
+
"div",
|
|
1027
1028
|
{
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1029
|
+
className: cn(
|
|
1030
|
+
closeContainerClassName,
|
|
1031
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
|
|
1032
|
+
),
|
|
1033
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1034
|
+
"button",
|
|
1035
|
+
{
|
|
1036
|
+
onClick: onClose,
|
|
1037
|
+
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",
|
|
1038
|
+
"aria-label": "Close mobile menu",
|
|
1039
|
+
children: [
|
|
1040
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1041
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1042
|
+
]
|
|
1043
|
+
}
|
|
1044
|
+
)
|
|
1035
1045
|
}
|
|
1036
|
-
)
|
|
1046
|
+
),
|
|
1037
1047
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1038
1048
|
"div",
|
|
1039
1049
|
{
|
|
@@ -1488,6 +1498,7 @@ var MobileNavigationMenu = ({
|
|
|
1488
1498
|
title: "Mobile Navigation",
|
|
1489
1499
|
className: cn("bg-black/95", mobileMenuClassName),
|
|
1490
1500
|
contentClassName: "flex flex-col items-center justify-center",
|
|
1501
|
+
closeContainerClassName: "bg-black/95",
|
|
1491
1502
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
|
|
1492
1503
|
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1493
1504
|
Pressable,
|
|
@@ -976,6 +976,7 @@ var NavbarMobileMenu = ({
|
|
|
976
976
|
children,
|
|
977
977
|
className,
|
|
978
978
|
contentClassName,
|
|
979
|
+
closeContainerClassName = "",
|
|
979
980
|
title = "Mobile Navigation"
|
|
980
981
|
}) => {
|
|
981
982
|
React.useEffect(() => {
|
|
@@ -1000,18 +1001,27 @@ var NavbarMobileMenu = ({
|
|
|
1000
1001
|
"data-state": open ? "open" : "closed",
|
|
1001
1002
|
children: [
|
|
1002
1003
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1003
|
-
/* @__PURE__ */ jsx(
|
|
1004
|
-
"
|
|
1004
|
+
/* @__PURE__ */ jsx(
|
|
1005
|
+
"div",
|
|
1005
1006
|
{
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1007
|
+
className: cn(
|
|
1008
|
+
closeContainerClassName,
|
|
1009
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
|
|
1010
|
+
),
|
|
1011
|
+
children: /* @__PURE__ */ jsxs(
|
|
1012
|
+
"button",
|
|
1013
|
+
{
|
|
1014
|
+
onClick: onClose,
|
|
1015
|
+
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",
|
|
1016
|
+
"aria-label": "Close mobile menu",
|
|
1017
|
+
children: [
|
|
1018
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1019
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1020
|
+
]
|
|
1021
|
+
}
|
|
1022
|
+
)
|
|
1013
1023
|
}
|
|
1014
|
-
)
|
|
1024
|
+
),
|
|
1015
1025
|
/* @__PURE__ */ jsx(
|
|
1016
1026
|
"div",
|
|
1017
1027
|
{
|
|
@@ -1466,6 +1476,7 @@ var MobileNavigationMenu = ({
|
|
|
1466
1476
|
title: "Mobile Navigation",
|
|
1467
1477
|
className: cn("bg-black/95", mobileMenuClassName),
|
|
1468
1478
|
contentClassName: "flex flex-col items-center justify-center",
|
|
1479
|
+
closeContainerClassName: "bg-black/95",
|
|
1469
1480
|
children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
|
|
1470
1481
|
/* @__PURE__ */ jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxs(
|
|
1471
1482
|
Pressable,
|