@opensite/ui 1.0.9 → 1.1.1
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 +30 -19
- package/dist/navbar-animated-preview.js +30 -19
- package/dist/navbar-centered-menu.cjs +21 -10
- package/dist/navbar-centered-menu.js +21 -10
- package/dist/navbar-dark-icons.cjs +21 -10
- package/dist/navbar-dark-icons.js +21 -10
- package/dist/navbar-dropdown-menu.cjs +21 -10
- package/dist/navbar-dropdown-menu.js +21 -10
- package/dist/navbar-education-platform.cjs +82 -56
- package/dist/navbar-education-platform.js +82 -56
- package/dist/navbar-enterprise-mega.cjs +22 -11
- package/dist/navbar-enterprise-mega.js +22 -11
- package/dist/navbar-feature-grid.cjs +21 -10
- package/dist/navbar-feature-grid.js +21 -10
- package/dist/navbar-icon-links.cjs +21 -10
- package/dist/navbar-icon-links.js +21 -10
- package/dist/navbar-image-preview.cjs +21 -10
- package/dist/navbar-image-preview.js +21 -10
- package/dist/navbar-mega-menu.cjs +21 -10
- package/dist/navbar-mega-menu.js +21 -10
- package/dist/navbar-multi-column-groups.cjs +53 -35
- package/dist/navbar-multi-column-groups.js +53 -35
- package/dist/navbar-platform-resources.cjs +21 -10
- package/dist/navbar-platform-resources.js +21 -10
- package/dist/navbar-search-focused.cjs +192 -103
- package/dist/navbar-search-focused.js +192 -103
- package/dist/navbar-sidebar-mobile.cjs +22 -10
- package/dist/navbar-sidebar-mobile.js +22 -10
- package/dist/navbar-simple-links.cjs +23 -12
- package/dist/navbar-simple-links.js +23 -12
- package/dist/navbar-split-cta.cjs +21 -10
- package/dist/navbar-split-cta.js +21 -10
- package/dist/navbar-sticky-compact.cjs +231 -123
- package/dist/navbar-sticky-compact.js +230 -123
- package/dist/navbar-tabbed-sections.cjs +21 -10
- package/dist/navbar-tabbed-sections.js +21 -10
- package/dist/navbar-transparent-overlay.cjs +23 -10
- package/dist/navbar-transparent-overlay.js +23 -10
- package/dist/registry.cjs +435 -302
- package/dist/registry.js +435 -302
- 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,8 @@ var NavbarMobileMenu = ({
|
|
|
1114
1175
|
children,
|
|
1115
1176
|
className,
|
|
1116
1177
|
contentClassName,
|
|
1178
|
+
closeContainerClassName,
|
|
1179
|
+
closeIconClassName,
|
|
1117
1180
|
title = "Mobile Navigation"
|
|
1118
1181
|
}) => {
|
|
1119
1182
|
React.useEffect(() => {
|
|
@@ -1138,18 +1201,27 @@ var NavbarMobileMenu = ({
|
|
|
1138
1201
|
"data-state": open ? "open" : "closed",
|
|
1139
1202
|
children: [
|
|
1140
1203
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1141
|
-
/* @__PURE__ */ jsx(
|
|
1142
|
-
"
|
|
1204
|
+
/* @__PURE__ */ jsx(
|
|
1205
|
+
"div",
|
|
1143
1206
|
{
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1207
|
+
className: cn(
|
|
1208
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
|
|
1209
|
+
closeContainerClassName
|
|
1210
|
+
),
|
|
1211
|
+
children: /* @__PURE__ */ jsxs(
|
|
1212
|
+
"button",
|
|
1213
|
+
{
|
|
1214
|
+
onClick: onClose,
|
|
1215
|
+
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",
|
|
1216
|
+
"aria-label": "Close mobile menu",
|
|
1217
|
+
children: [
|
|
1218
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
|
|
1219
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1220
|
+
]
|
|
1221
|
+
}
|
|
1222
|
+
)
|
|
1151
1223
|
}
|
|
1152
|
-
)
|
|
1224
|
+
),
|
|
1153
1225
|
/* @__PURE__ */ jsx(
|
|
1154
1226
|
"div",
|
|
1155
1227
|
{
|
|
@@ -1299,37 +1371,6 @@ var NavbarStickyCompact = ({
|
|
|
1299
1371
|
) }, index)
|
|
1300
1372
|
);
|
|
1301
1373
|
}, [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
1374
|
const {
|
|
1334
1375
|
sectionClasses,
|
|
1335
1376
|
containerWrapperClasses,
|
|
@@ -1339,99 +1380,165 @@ var NavbarStickyCompact = ({
|
|
|
1339
1380
|
sectionContainerMaxWidth,
|
|
1340
1381
|
spacingOverride
|
|
1341
1382
|
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1342
|
-
return /* @__PURE__ */
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1356
|
-
|
|
1357
|
-
"
|
|
1383
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1384
|
+
/* @__PURE__ */ jsx(
|
|
1385
|
+
Section,
|
|
1386
|
+
{
|
|
1387
|
+
background,
|
|
1388
|
+
spacing: spacingOverride ?? spacing,
|
|
1389
|
+
className: cn(
|
|
1390
|
+
sectionClasses,
|
|
1391
|
+
"fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
|
|
1392
|
+
isScrolled ? "shadow-sm" : ""
|
|
1393
|
+
),
|
|
1394
|
+
pattern,
|
|
1395
|
+
patternOpacity,
|
|
1396
|
+
containerClassName: sectionContainerClassName,
|
|
1397
|
+
containerMaxWidth: sectionContainerMaxWidth,
|
|
1398
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
|
|
1399
|
+
"nav",
|
|
1400
|
+
{
|
|
1401
|
+
className: cn(
|
|
1402
|
+
"flex items-center justify-between transition-all duration-300",
|
|
1403
|
+
isScrolled ? "h-14" : "h-16",
|
|
1404
|
+
navClassName
|
|
1405
|
+
),
|
|
1406
|
+
children: [
|
|
1407
|
+
/* @__PURE__ */ jsx(
|
|
1408
|
+
NavbarLogo,
|
|
1409
|
+
{
|
|
1410
|
+
logo,
|
|
1411
|
+
logoSlot,
|
|
1412
|
+
logoClassName,
|
|
1413
|
+
optixFlowConfig
|
|
1414
|
+
}
|
|
1415
|
+
),
|
|
1416
|
+
/* @__PURE__ */ jsx(NavigationMenu, { className: "hidden lg:flex", viewport: false, children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu }) }),
|
|
1417
|
+
/* @__PURE__ */ jsx(
|
|
1418
|
+
"div",
|
|
1419
|
+
{
|
|
1420
|
+
className: cn(
|
|
1421
|
+
"hidden items-center gap-2 lg:flex",
|
|
1422
|
+
actionsClassName
|
|
1423
|
+
),
|
|
1424
|
+
children: renderAuthActions
|
|
1425
|
+
}
|
|
1426
|
+
),
|
|
1427
|
+
/* @__PURE__ */ jsxs(
|
|
1428
|
+
Pressable,
|
|
1429
|
+
{
|
|
1430
|
+
variant: "ghost",
|
|
1431
|
+
size: isScrolled ? "sm" : "icon",
|
|
1432
|
+
asButton: true,
|
|
1433
|
+
className: "lg:hidden transition-all duration-300",
|
|
1434
|
+
onClick: () => setIsOpen(!isOpen),
|
|
1435
|
+
children: [
|
|
1436
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: isScrolled ? 18 : 20 }),
|
|
1437
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
|
|
1438
|
+
]
|
|
1439
|
+
}
|
|
1440
|
+
)
|
|
1441
|
+
]
|
|
1442
|
+
}
|
|
1443
|
+
) }) }) })
|
|
1444
|
+
}
|
|
1445
|
+
),
|
|
1446
|
+
/* @__PURE__ */ jsx(
|
|
1447
|
+
MobileNavigationMenu,
|
|
1448
|
+
{
|
|
1449
|
+
open: isOpen,
|
|
1450
|
+
setOpen: setIsOpen,
|
|
1451
|
+
menu: menu ?? [],
|
|
1452
|
+
menuSlot,
|
|
1453
|
+
authActions,
|
|
1454
|
+
authActionsSlot
|
|
1455
|
+
}
|
|
1456
|
+
)
|
|
1457
|
+
] });
|
|
1458
|
+
};
|
|
1459
|
+
var MobileNavigationMenu = ({
|
|
1460
|
+
open,
|
|
1461
|
+
setOpen,
|
|
1462
|
+
menu,
|
|
1463
|
+
menuSlot,
|
|
1464
|
+
authActions,
|
|
1465
|
+
authActionsSlot
|
|
1466
|
+
}) => {
|
|
1467
|
+
const handleClose = () => setOpen(false);
|
|
1468
|
+
const renderMobileAuthActions = useMemo(() => {
|
|
1469
|
+
if (authActionsSlot) return authActionsSlot;
|
|
1470
|
+
if (!authActions || authActions.length === 0) return null;
|
|
1471
|
+
return /* @__PURE__ */ jsx("div", { className: "mt-6 flex flex-col gap-4", children: authActions.map((action, index) => {
|
|
1472
|
+
const {
|
|
1473
|
+
label,
|
|
1474
|
+
icon,
|
|
1475
|
+
iconAfter,
|
|
1476
|
+
children,
|
|
1477
|
+
className: actionClassName,
|
|
1478
|
+
...pressableProps
|
|
1479
|
+
} = action;
|
|
1480
|
+
return /* @__PURE__ */ jsx(
|
|
1481
|
+
Pressable,
|
|
1358
1482
|
{
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1483
|
+
asButton: true,
|
|
1484
|
+
className: cn("w-full", actionClassName),
|
|
1485
|
+
onClick: handleClose,
|
|
1486
|
+
...pressableProps,
|
|
1487
|
+
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1488
|
+
icon,
|
|
1489
|
+
label,
|
|
1490
|
+
iconAfter
|
|
1491
|
+
] })
|
|
1492
|
+
},
|
|
1493
|
+
index
|
|
1494
|
+
);
|
|
1495
|
+
}) });
|
|
1496
|
+
}, [authActionsSlot, authActions]);
|
|
1497
|
+
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: [
|
|
1498
|
+
/* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
|
|
1499
|
+
(item, index) => item.items ? /* @__PURE__ */ jsxs(
|
|
1500
|
+
AccordionItem,
|
|
1501
|
+
{
|
|
1502
|
+
value: `nav-${index}`,
|
|
1503
|
+
className: "border-b-0",
|
|
1364
1504
|
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(
|
|
1505
|
+
/* @__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 }),
|
|
1506
|
+
/* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxs(
|
|
1390
1507
|
Pressable,
|
|
1391
1508
|
{
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
className: "lg:hidden transition-all duration-300",
|
|
1396
|
-
onClick: () => setIsOpen(!isOpen),
|
|
1509
|
+
href: subItem.url,
|
|
1510
|
+
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",
|
|
1511
|
+
onClick: handleClose,
|
|
1397
1512
|
children: [
|
|
1398
|
-
/* @__PURE__ */ jsx(
|
|
1513
|
+
subItem.icon && /* @__PURE__ */ jsx(
|
|
1399
1514
|
DynamicIcon,
|
|
1400
1515
|
{
|
|
1401
|
-
name:
|
|
1402
|
-
size:
|
|
1516
|
+
name: subItem.icon,
|
|
1517
|
+
size: 16,
|
|
1518
|
+
className: "stroke-muted-foreground"
|
|
1403
1519
|
}
|
|
1404
1520
|
),
|
|
1405
|
-
|
|
1521
|
+
subItem.title
|
|
1406
1522
|
]
|
|
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
|
-
)
|
|
1523
|
+
},
|
|
1524
|
+
`mobile-link-${index}-${subIndex}`
|
|
1525
|
+
)) })
|
|
1430
1526
|
]
|
|
1431
|
-
}
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1527
|
+
},
|
|
1528
|
+
`nav-item-${index}`
|
|
1529
|
+
) : /* @__PURE__ */ jsx(
|
|
1530
|
+
Pressable,
|
|
1531
|
+
{
|
|
1532
|
+
href: item.url,
|
|
1533
|
+
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",
|
|
1534
|
+
onClick: handleClose,
|
|
1535
|
+
children: item.title
|
|
1536
|
+
},
|
|
1537
|
+
`nav-link-${index}`
|
|
1538
|
+
)
|
|
1539
|
+
) }),
|
|
1540
|
+
renderMobileAuthActions
|
|
1541
|
+
] }) }) });
|
|
1435
1542
|
};
|
|
1436
1543
|
|
|
1437
1544
|
export { NavbarStickyCompact };
|
|
@@ -1138,6 +1138,8 @@ var NavbarMobileMenu = ({
|
|
|
1138
1138
|
children,
|
|
1139
1139
|
className,
|
|
1140
1140
|
contentClassName,
|
|
1141
|
+
closeContainerClassName,
|
|
1142
|
+
closeIconClassName,
|
|
1141
1143
|
title = "Mobile Navigation"
|
|
1142
1144
|
}) => {
|
|
1143
1145
|
React__namespace.useEffect(() => {
|
|
@@ -1162,18 +1164,27 @@ var NavbarMobileMenu = ({
|
|
|
1162
1164
|
"data-state": open ? "open" : "closed",
|
|
1163
1165
|
children: [
|
|
1164
1166
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1165
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1166
|
-
"
|
|
1167
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1168
|
+
"div",
|
|
1167
1169
|
{
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
|
|
1172
|
-
|
|
1173
|
-
|
|
1174
|
-
|
|
1170
|
+
className: cn(
|
|
1171
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
|
|
1172
|
+
closeContainerClassName
|
|
1173
|
+
),
|
|
1174
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1175
|
+
"button",
|
|
1176
|
+
{
|
|
1177
|
+
onClick: onClose,
|
|
1178
|
+
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",
|
|
1179
|
+
"aria-label": "Close mobile menu",
|
|
1180
|
+
children: [
|
|
1181
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
|
|
1182
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1183
|
+
]
|
|
1184
|
+
}
|
|
1185
|
+
)
|
|
1175
1186
|
}
|
|
1176
|
-
)
|
|
1187
|
+
),
|
|
1177
1188
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1178
1189
|
"div",
|
|
1179
1190
|
{
|
|
@@ -1115,6 +1115,8 @@ var NavbarMobileMenu = ({
|
|
|
1115
1115
|
children,
|
|
1116
1116
|
className,
|
|
1117
1117
|
contentClassName,
|
|
1118
|
+
closeContainerClassName,
|
|
1119
|
+
closeIconClassName,
|
|
1118
1120
|
title = "Mobile Navigation"
|
|
1119
1121
|
}) => {
|
|
1120
1122
|
React.useEffect(() => {
|
|
@@ -1139,18 +1141,27 @@ var NavbarMobileMenu = ({
|
|
|
1139
1141
|
"data-state": open ? "open" : "closed",
|
|
1140
1142
|
children: [
|
|
1141
1143
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1142
|
-
/* @__PURE__ */ jsx(
|
|
1143
|
-
"
|
|
1144
|
+
/* @__PURE__ */ jsx(
|
|
1145
|
+
"div",
|
|
1144
1146
|
{
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1147
|
+
className: cn(
|
|
1148
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
|
|
1149
|
+
closeContainerClassName
|
|
1150
|
+
),
|
|
1151
|
+
children: /* @__PURE__ */ jsxs(
|
|
1152
|
+
"button",
|
|
1153
|
+
{
|
|
1154
|
+
onClick: onClose,
|
|
1155
|
+
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",
|
|
1156
|
+
"aria-label": "Close mobile menu",
|
|
1157
|
+
children: [
|
|
1158
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
|
|
1159
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1160
|
+
]
|
|
1161
|
+
}
|
|
1162
|
+
)
|
|
1152
1163
|
}
|
|
1153
|
-
)
|
|
1164
|
+
),
|
|
1154
1165
|
/* @__PURE__ */ jsx(
|
|
1155
1166
|
"div",
|
|
1156
1167
|
{
|
|
@@ -998,6 +998,8 @@ var NavbarMobileMenu = ({
|
|
|
998
998
|
children,
|
|
999
999
|
className,
|
|
1000
1000
|
contentClassName,
|
|
1001
|
+
closeContainerClassName,
|
|
1002
|
+
closeIconClassName,
|
|
1001
1003
|
title = "Mobile Navigation"
|
|
1002
1004
|
}) => {
|
|
1003
1005
|
React__namespace.useEffect(() => {
|
|
@@ -1022,18 +1024,27 @@ var NavbarMobileMenu = ({
|
|
|
1022
1024
|
"data-state": open ? "open" : "closed",
|
|
1023
1025
|
children: [
|
|
1024
1026
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1025
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1026
|
-
"
|
|
1027
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1028
|
+
"div",
|
|
1027
1029
|
{
|
|
1028
|
-
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1030
|
+
className: cn(
|
|
1031
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
|
|
1032
|
+
closeContainerClassName
|
|
1033
|
+
),
|
|
1034
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1035
|
+
"button",
|
|
1036
|
+
{
|
|
1037
|
+
onClick: onClose,
|
|
1038
|
+
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",
|
|
1039
|
+
"aria-label": "Close mobile menu",
|
|
1040
|
+
children: [
|
|
1041
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
|
|
1042
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1043
|
+
]
|
|
1044
|
+
}
|
|
1045
|
+
)
|
|
1035
1046
|
}
|
|
1036
|
-
)
|
|
1047
|
+
),
|
|
1037
1048
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1038
1049
|
"div",
|
|
1039
1050
|
{
|
|
@@ -1488,6 +1499,8 @@ var MobileNavigationMenu = ({
|
|
|
1488
1499
|
title: "Mobile Navigation",
|
|
1489
1500
|
className: cn("bg-black/95", mobileMenuClassName),
|
|
1490
1501
|
contentClassName: "flex flex-col items-center justify-center",
|
|
1502
|
+
closeContainerClassName: "bg-black/95",
|
|
1503
|
+
closeIconClassName: "text-white",
|
|
1491
1504
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
|
|
1492
1505
|
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1493
1506
|
Pressable,
|
|
@@ -976,6 +976,8 @@ var NavbarMobileMenu = ({
|
|
|
976
976
|
children,
|
|
977
977
|
className,
|
|
978
978
|
contentClassName,
|
|
979
|
+
closeContainerClassName,
|
|
980
|
+
closeIconClassName,
|
|
979
981
|
title = "Mobile Navigation"
|
|
980
982
|
}) => {
|
|
981
983
|
React.useEffect(() => {
|
|
@@ -1000,18 +1002,27 @@ var NavbarMobileMenu = ({
|
|
|
1000
1002
|
"data-state": open ? "open" : "closed",
|
|
1001
1003
|
children: [
|
|
1002
1004
|
/* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
|
|
1003
|
-
/* @__PURE__ */ jsx(
|
|
1004
|
-
"
|
|
1005
|
+
/* @__PURE__ */ jsx(
|
|
1006
|
+
"div",
|
|
1005
1007
|
{
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1008
|
+
className: cn(
|
|
1009
|
+
"absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
|
|
1010
|
+
closeContainerClassName
|
|
1011
|
+
),
|
|
1012
|
+
children: /* @__PURE__ */ jsxs(
|
|
1013
|
+
"button",
|
|
1014
|
+
{
|
|
1015
|
+
onClick: onClose,
|
|
1016
|
+
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",
|
|
1017
|
+
"aria-label": "Close mobile menu",
|
|
1018
|
+
children: [
|
|
1019
|
+
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
|
|
1020
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
|
|
1021
|
+
]
|
|
1022
|
+
}
|
|
1023
|
+
)
|
|
1013
1024
|
}
|
|
1014
|
-
)
|
|
1025
|
+
),
|
|
1015
1026
|
/* @__PURE__ */ jsx(
|
|
1016
1027
|
"div",
|
|
1017
1028
|
{
|
|
@@ -1466,6 +1477,8 @@ var MobileNavigationMenu = ({
|
|
|
1466
1477
|
title: "Mobile Navigation",
|
|
1467
1478
|
className: cn("bg-black/95", mobileMenuClassName),
|
|
1468
1479
|
contentClassName: "flex flex-col items-center justify-center",
|
|
1480
|
+
closeContainerClassName: "bg-black/95",
|
|
1481
|
+
closeIconClassName: "text-white",
|
|
1469
1482
|
children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
|
|
1470
1483
|
/* @__PURE__ */ jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxs(
|
|
1471
1484
|
Pressable,
|