@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
|
@@ -992,6 +992,111 @@ var NavbarLogo = ({
|
|
|
992
992
|
}
|
|
993
993
|
);
|
|
994
994
|
};
|
|
995
|
+
var NavbarMobileMenu = ({
|
|
996
|
+
open,
|
|
997
|
+
onClose,
|
|
998
|
+
children,
|
|
999
|
+
className,
|
|
1000
|
+
contentClassName,
|
|
1001
|
+
title = "Mobile Navigation"
|
|
1002
|
+
}) => {
|
|
1003
|
+
React__namespace.useEffect(() => {
|
|
1004
|
+
if (open) {
|
|
1005
|
+
const originalOverflow = document.body.style.overflow;
|
|
1006
|
+
document.body.style.overflow = "hidden";
|
|
1007
|
+
return () => {
|
|
1008
|
+
document.body.style.overflow = originalOverflow;
|
|
1009
|
+
};
|
|
1010
|
+
}
|
|
1011
|
+
}, [open]);
|
|
1012
|
+
if (!open) return null;
|
|
1013
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1014
|
+
"div",
|
|
1015
|
+
{
|
|
1016
|
+
className: cn(
|
|
1017
|
+
"fixed inset-0 z-998 flex flex-col bg-background",
|
|
1018
|
+
"animate-in slide-in-from-top duration-300",
|
|
1019
|
+
"data-[state=closed]:animate-out data-[state=closed]:slide-out-to-top data-[state=closed]:duration-300",
|
|
1020
|
+
className
|
|
1021
|
+
),
|
|
1022
|
+
"data-state": open ? "open" : "closed",
|
|
1023
|
+
children: [
|
|
1024
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
|
|
1025
|
+
/* @__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(
|
|
1026
|
+
"button",
|
|
1027
|
+
{
|
|
1028
|
+
onClick: onClose,
|
|
1029
|
+
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",
|
|
1030
|
+
"aria-label": "Close mobile menu",
|
|
1031
|
+
children: [
|
|
1032
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
|
|
1033
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
|
|
1034
|
+
]
|
|
1035
|
+
}
|
|
1036
|
+
) }),
|
|
1037
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1038
|
+
"div",
|
|
1039
|
+
{
|
|
1040
|
+
className: cn(
|
|
1041
|
+
"h-full overflow-y-auto pt-20 pb-8 px-4 sm:px-6",
|
|
1042
|
+
contentClassName
|
|
1043
|
+
),
|
|
1044
|
+
children
|
|
1045
|
+
}
|
|
1046
|
+
)
|
|
1047
|
+
]
|
|
1048
|
+
}
|
|
1049
|
+
);
|
|
1050
|
+
};
|
|
1051
|
+
var platformIconMap = {
|
|
1052
|
+
instagram: "cib/instagram",
|
|
1053
|
+
linkedin: "cib/linkedin",
|
|
1054
|
+
google: "cib/google",
|
|
1055
|
+
facebook: "cib/facebook",
|
|
1056
|
+
tiktok: "cib/tiktok",
|
|
1057
|
+
youtube: "cib/youtube",
|
|
1058
|
+
yelp: "cib/yelp",
|
|
1059
|
+
spotify: "cib/spotify",
|
|
1060
|
+
apple: "cib/apple",
|
|
1061
|
+
x: "line-md/twitter-x"
|
|
1062
|
+
};
|
|
1063
|
+
var SocialLinkIcon = React__namespace.forwardRef(
|
|
1064
|
+
({
|
|
1065
|
+
platformName,
|
|
1066
|
+
label,
|
|
1067
|
+
iconSize = 20,
|
|
1068
|
+
iconColor,
|
|
1069
|
+
iconClassName,
|
|
1070
|
+
className,
|
|
1071
|
+
...pressableProps
|
|
1072
|
+
}, ref) => {
|
|
1073
|
+
const iconName = platformIconMap[platformName];
|
|
1074
|
+
const accessibleLabel = label || platformName;
|
|
1075
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1076
|
+
Pressable,
|
|
1077
|
+
{
|
|
1078
|
+
ref,
|
|
1079
|
+
"aria-label": accessibleLabel,
|
|
1080
|
+
className: cn(
|
|
1081
|
+
"inline-flex items-center justify-center transition-colors",
|
|
1082
|
+
className
|
|
1083
|
+
),
|
|
1084
|
+
...pressableProps,
|
|
1085
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1086
|
+
DynamicIcon,
|
|
1087
|
+
{
|
|
1088
|
+
name: iconName,
|
|
1089
|
+
size: iconSize,
|
|
1090
|
+
color: iconColor,
|
|
1091
|
+
className: iconClassName,
|
|
1092
|
+
alt: accessibleLabel
|
|
1093
|
+
}
|
|
1094
|
+
)
|
|
1095
|
+
}
|
|
1096
|
+
);
|
|
1097
|
+
}
|
|
1098
|
+
);
|
|
1099
|
+
SocialLinkIcon.displayName = "SocialLinkIcon";
|
|
995
1100
|
function NavigationMenu({
|
|
996
1101
|
className,
|
|
997
1102
|
children,
|
|
@@ -1129,6 +1234,8 @@ var NavbarTransparentOverlay = ({
|
|
|
1129
1234
|
navClassName,
|
|
1130
1235
|
navigationMenuClassName,
|
|
1131
1236
|
actionsClassName,
|
|
1237
|
+
mobileMenuClassName,
|
|
1238
|
+
socialLinksClassName,
|
|
1132
1239
|
logo,
|
|
1133
1240
|
logoSlot,
|
|
1134
1241
|
logoClassName,
|
|
@@ -1138,6 +1245,8 @@ var NavbarTransparentOverlay = ({
|
|
|
1138
1245
|
authActionsSlot,
|
|
1139
1246
|
mobileAuthActions,
|
|
1140
1247
|
mobileAuthActionsSlot,
|
|
1248
|
+
socialLinks,
|
|
1249
|
+
socialLinksSlot,
|
|
1141
1250
|
layoutVariant = "fullScreenContainerizedLinks",
|
|
1142
1251
|
background,
|
|
1143
1252
|
spacing,
|
|
@@ -1156,14 +1265,7 @@ var NavbarTransparentOverlay = ({
|
|
|
1156
1265
|
window.addEventListener("scroll", handleScroll);
|
|
1157
1266
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
1158
1267
|
}, []);
|
|
1159
|
-
|
|
1160
|
-
if (typeof document === "undefined") return;
|
|
1161
|
-
document.body.style.overflow = isOpen ? "hidden" : "auto";
|
|
1162
|
-
return () => {
|
|
1163
|
-
document.body.style.overflow = "auto";
|
|
1164
|
-
};
|
|
1165
|
-
}, [isOpen]);
|
|
1166
|
-
const toggleMenu = () => setIsOpen(!isOpen);
|
|
1268
|
+
const handleMobileMenuClose = () => setIsOpen(false);
|
|
1167
1269
|
const renderNavigation = React.useMemo(() => {
|
|
1168
1270
|
if (navigationSlot) return navigationSlot;
|
|
1169
1271
|
if (!navItems || navItems.length === 0) return null;
|
|
@@ -1218,35 +1320,6 @@ var NavbarTransparentOverlay = ({
|
|
|
1218
1320
|
);
|
|
1219
1321
|
});
|
|
1220
1322
|
}, [authActionsSlot, authActions, isScrolled]);
|
|
1221
|
-
const renderMobileAuthActions = React.useMemo(() => {
|
|
1222
|
-
if (mobileAuthActionsSlot) return mobileAuthActionsSlot;
|
|
1223
|
-
if (!mobileAuthActions || mobileAuthActions.length === 0) return null;
|
|
1224
|
-
return mobileAuthActions.map((action, index) => {
|
|
1225
|
-
const {
|
|
1226
|
-
label,
|
|
1227
|
-
icon,
|
|
1228
|
-
iconAfter,
|
|
1229
|
-
children,
|
|
1230
|
-
className: actionClassName,
|
|
1231
|
-
...pressableProps
|
|
1232
|
-
} = action;
|
|
1233
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1234
|
-
Pressable,
|
|
1235
|
-
{
|
|
1236
|
-
asButton: true,
|
|
1237
|
-
className: cn("min-w-[200px]", actionClassName),
|
|
1238
|
-
onClick: () => setIsOpen(false),
|
|
1239
|
-
...pressableProps,
|
|
1240
|
-
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1241
|
-
icon,
|
|
1242
|
-
label,
|
|
1243
|
-
iconAfter
|
|
1244
|
-
] })
|
|
1245
|
-
},
|
|
1246
|
-
index
|
|
1247
|
-
);
|
|
1248
|
-
});
|
|
1249
|
-
}, [mobileAuthActionsSlot, mobileAuthActions]);
|
|
1250
1323
|
const {
|
|
1251
1324
|
sectionClasses,
|
|
1252
1325
|
containerWrapperClasses,
|
|
@@ -1256,18 +1329,18 @@ var NavbarTransparentOverlay = ({
|
|
|
1256
1329
|
sectionContainerMaxWidth,
|
|
1257
1330
|
spacingOverride
|
|
1258
1331
|
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1259
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
|
|
1264
|
-
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
|
|
1268
|
-
|
|
1269
|
-
|
|
1270
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1332
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1333
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1334
|
+
Section,
|
|
1335
|
+
{
|
|
1336
|
+
background,
|
|
1337
|
+
spacing: spacingOverride ?? spacing,
|
|
1338
|
+
className: sectionClasses,
|
|
1339
|
+
pattern,
|
|
1340
|
+
patternOpacity,
|
|
1341
|
+
containerClassName: sectionContainerClassName,
|
|
1342
|
+
containerMaxWidth: sectionContainerMaxWidth,
|
|
1343
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1271
1344
|
"nav",
|
|
1272
1345
|
{
|
|
1273
1346
|
className: cn(
|
|
@@ -1307,92 +1380,140 @@ var NavbarTransparentOverlay = ({
|
|
|
1307
1380
|
children: renderAuthActions
|
|
1308
1381
|
}
|
|
1309
1382
|
),
|
|
1310
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1311
|
-
|
|
1383
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1384
|
+
Pressable,
|
|
1312
1385
|
{
|
|
1313
|
-
|
|
1386
|
+
variant: "ghost",
|
|
1387
|
+
size: "icon",
|
|
1388
|
+
asButton: true,
|
|
1389
|
+
"aria-label": "Open menu",
|
|
1390
|
+
onClick: () => setIsOpen(true),
|
|
1314
1391
|
className: cn(
|
|
1315
|
-
"
|
|
1392
|
+
"size-11",
|
|
1393
|
+
!isScrolled && "hover:bg-white/10"
|
|
1316
1394
|
),
|
|
1317
|
-
|
|
1318
|
-
|
|
1319
|
-
|
|
1320
|
-
"
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1324
|
-
|
|
1325
|
-
|
|
1326
|
-
|
|
1327
|
-
),
|
|
1328
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1329
|
-
"span",
|
|
1330
|
-
{
|
|
1331
|
-
className: cn(
|
|
1332
|
-
"h-0.5 w-6 transition-all duration-300",
|
|
1333
|
-
isOpen ? "opacity-0" : isScrolled ? "bg-foreground" : "bg-white"
|
|
1334
|
-
)
|
|
1335
|
-
}
|
|
1336
|
-
),
|
|
1337
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1338
|
-
"span",
|
|
1339
|
-
{
|
|
1340
|
-
className: cn(
|
|
1341
|
-
"h-0.5 w-6 transition-all duration-300",
|
|
1342
|
-
isOpen ? "-translate-y-2 -rotate-45 bg-foreground" : isScrolled ? "bg-foreground" : "bg-white"
|
|
1343
|
-
)
|
|
1344
|
-
}
|
|
1345
|
-
)
|
|
1346
|
-
]
|
|
1395
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1396
|
+
DynamicIcon,
|
|
1397
|
+
{
|
|
1398
|
+
name: "lucide/menu",
|
|
1399
|
+
size: 16,
|
|
1400
|
+
className: cn(
|
|
1401
|
+
isScrolled ? "stroke-foreground" : "stroke-white"
|
|
1402
|
+
)
|
|
1403
|
+
}
|
|
1404
|
+
)
|
|
1347
1405
|
}
|
|
1348
|
-
)
|
|
1406
|
+
) })
|
|
1349
1407
|
] }) })
|
|
1350
1408
|
}
|
|
1351
|
-
) })
|
|
1352
|
-
|
|
1409
|
+
) })
|
|
1410
|
+
}
|
|
1411
|
+
),
|
|
1412
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1413
|
+
MobileNavigationMenu,
|
|
1414
|
+
{
|
|
1415
|
+
open: isOpen,
|
|
1416
|
+
onClose: handleMobileMenuClose,
|
|
1417
|
+
navItems,
|
|
1418
|
+
mobileAuthActions,
|
|
1419
|
+
mobileAuthActionsSlot,
|
|
1420
|
+
socialLinks,
|
|
1421
|
+
socialLinksSlot,
|
|
1422
|
+
mobileMenuClassName,
|
|
1423
|
+
socialLinksClassName
|
|
1424
|
+
}
|
|
1425
|
+
)
|
|
1426
|
+
] });
|
|
1427
|
+
};
|
|
1428
|
+
var MobileNavigationMenu = ({
|
|
1429
|
+
open,
|
|
1430
|
+
onClose,
|
|
1431
|
+
navItems,
|
|
1432
|
+
mobileAuthActions,
|
|
1433
|
+
mobileAuthActionsSlot,
|
|
1434
|
+
socialLinks,
|
|
1435
|
+
socialLinksSlot,
|
|
1436
|
+
mobileMenuClassName,
|
|
1437
|
+
socialLinksClassName
|
|
1438
|
+
}) => {
|
|
1439
|
+
const renderMobileAuthActions = React.useMemo(() => {
|
|
1440
|
+
if (mobileAuthActionsSlot) return mobileAuthActionsSlot;
|
|
1441
|
+
if (!mobileAuthActions || mobileAuthActions.length === 0) return null;
|
|
1442
|
+
return mobileAuthActions.map((action, index) => {
|
|
1443
|
+
const {
|
|
1444
|
+
label,
|
|
1445
|
+
icon,
|
|
1446
|
+
iconAfter,
|
|
1447
|
+
children,
|
|
1448
|
+
className: actionClassName,
|
|
1449
|
+
...pressableProps
|
|
1450
|
+
} = action;
|
|
1451
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1452
|
+
Pressable,
|
|
1453
|
+
{
|
|
1454
|
+
asButton: true,
|
|
1455
|
+
className: cn("min-w-[200px]", actionClassName),
|
|
1456
|
+
onClick: onClose,
|
|
1457
|
+
...pressableProps,
|
|
1458
|
+
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1459
|
+
icon,
|
|
1460
|
+
label,
|
|
1461
|
+
iconAfter
|
|
1462
|
+
] })
|
|
1463
|
+
},
|
|
1464
|
+
index
|
|
1465
|
+
);
|
|
1466
|
+
});
|
|
1467
|
+
}, [mobileAuthActionsSlot, mobileAuthActions, onClose]);
|
|
1468
|
+
const renderSocialLinks = React.useMemo(() => {
|
|
1469
|
+
if (socialLinksSlot) return socialLinksSlot;
|
|
1470
|
+
if (!socialLinks || socialLinks.length === 0) return null;
|
|
1471
|
+
return socialLinks.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1472
|
+
SocialLinkIcon,
|
|
1473
|
+
{
|
|
1474
|
+
platformName: link.platformName,
|
|
1475
|
+
href: link.href,
|
|
1476
|
+
label: link.label,
|
|
1477
|
+
iconSize: 24,
|
|
1478
|
+
className: "text-white/70 transition-all duration-300 hover:text-white hover:scale-110"
|
|
1479
|
+
},
|
|
1480
|
+
link.platformName
|
|
1481
|
+
));
|
|
1482
|
+
}, [socialLinksSlot, socialLinks]);
|
|
1483
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1484
|
+
NavbarMobileMenu,
|
|
1485
|
+
{
|
|
1486
|
+
open,
|
|
1487
|
+
onClose,
|
|
1488
|
+
title: "Mobile Navigation",
|
|
1489
|
+
className: cn("bg-black/95", mobileMenuClassName),
|
|
1490
|
+
contentClassName: "flex flex-col items-center justify-center",
|
|
1491
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
|
|
1492
|
+
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1493
|
+
Pressable,
|
|
1494
|
+
{
|
|
1495
|
+
href: item.url,
|
|
1496
|
+
className: "text-3xl font-medium text-white transition-all duration-300 hover:text-white/80",
|
|
1497
|
+
onClick: onClose,
|
|
1498
|
+
children: [
|
|
1499
|
+
item.icon ?? (item.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 24 })),
|
|
1500
|
+
item.title
|
|
1501
|
+
]
|
|
1502
|
+
},
|
|
1503
|
+
index
|
|
1504
|
+
)) }),
|
|
1505
|
+
renderMobileAuthActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-12 flex flex-col items-center gap-4", children: renderMobileAuthActions }),
|
|
1506
|
+
renderSocialLinks && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1353
1507
|
"div",
|
|
1354
1508
|
{
|
|
1355
1509
|
className: cn(
|
|
1356
|
-
"
|
|
1357
|
-
|
|
1510
|
+
"mt-12 flex flex-row flex-wrap items-center justify-center gap-6",
|
|
1511
|
+
socialLinksClassName
|
|
1358
1512
|
),
|
|
1359
|
-
children:
|
|
1360
|
-
/* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1361
|
-
Pressable,
|
|
1362
|
-
{
|
|
1363
|
-
href: item.url,
|
|
1364
|
-
className: cn(
|
|
1365
|
-
"text-3xl font-medium text-foreground transition-all duration-300",
|
|
1366
|
-
isOpen ? "translate-y-0 opacity-100" : "translate-y-4 opacity-0"
|
|
1367
|
-
),
|
|
1368
|
-
style: {
|
|
1369
|
-
transitionDelay: isOpen ? `${index * 100}ms` : "0ms"
|
|
1370
|
-
},
|
|
1371
|
-
onClick: () => setIsOpen(false),
|
|
1372
|
-
children: [
|
|
1373
|
-
item.icon ?? (item.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 24 })),
|
|
1374
|
-
item.title
|
|
1375
|
-
]
|
|
1376
|
-
},
|
|
1377
|
-
index
|
|
1378
|
-
)) }),
|
|
1379
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1380
|
-
"div",
|
|
1381
|
-
{
|
|
1382
|
-
className: cn(
|
|
1383
|
-
"mt-12 flex flex-col items-center gap-4 transition-all duration-300",
|
|
1384
|
-
isOpen ? "translate-y-0 opacity-100" : "translate-y-4 opacity-0"
|
|
1385
|
-
),
|
|
1386
|
-
style: {
|
|
1387
|
-
transitionDelay: isOpen ? `${(navItems?.length ?? 0) * 100}ms` : "0ms"
|
|
1388
|
-
},
|
|
1389
|
-
children: renderMobileAuthActions
|
|
1390
|
-
}
|
|
1391
|
-
)
|
|
1392
|
-
] })
|
|
1513
|
+
children: renderSocialLinks
|
|
1393
1514
|
}
|
|
1394
1515
|
)
|
|
1395
|
-
]
|
|
1516
|
+
] })
|
|
1396
1517
|
}
|
|
1397
1518
|
);
|
|
1398
1519
|
};
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { SocialPlatformName } from './social-link-icon.cjs';
|
|
3
4
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bz_A5vLU.cjs';
|
|
4
5
|
import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
7
|
+
import './pressable.cjs';
|
|
6
8
|
import 'class-variance-authority';
|
|
7
9
|
import './button-variants-lRElsmTc.cjs';
|
|
8
10
|
import 'class-variance-authority/types';
|
|
@@ -13,6 +15,17 @@ interface NavItem {
|
|
|
13
15
|
icon?: React.ReactNode;
|
|
14
16
|
iconName?: string;
|
|
15
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Social link configuration for transparent overlay navbar
|
|
20
|
+
*/
|
|
21
|
+
interface NavbarTransparentOverlaySocialLink {
|
|
22
|
+
/** Social platform name - determines which icon to display */
|
|
23
|
+
platformName: SocialPlatformName;
|
|
24
|
+
/** URL to the social profile */
|
|
25
|
+
href: string;
|
|
26
|
+
/** Optional label for accessibility (defaults to platform name) */
|
|
27
|
+
label?: string;
|
|
28
|
+
}
|
|
16
29
|
/**
|
|
17
30
|
* Props for the NavbarTransparentOverlay component
|
|
18
31
|
*/
|
|
@@ -37,6 +50,14 @@ interface NavbarTransparentOverlayProps {
|
|
|
37
50
|
* Additional CSS classes for the actions container
|
|
38
51
|
*/
|
|
39
52
|
actionsClassName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Additional CSS classes for the mobile menu
|
|
55
|
+
*/
|
|
56
|
+
mobileMenuClassName?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Additional CSS classes for the social links container
|
|
59
|
+
*/
|
|
60
|
+
socialLinksClassName?: string;
|
|
40
61
|
/**
|
|
41
62
|
* Logo configuration
|
|
42
63
|
*/
|
|
@@ -73,6 +94,14 @@ interface NavbarTransparentOverlayProps {
|
|
|
73
94
|
* Custom slot for mobile auth actions (overrides mobileAuthActions array)
|
|
74
95
|
*/
|
|
75
96
|
mobileAuthActionsSlot?: React.ReactNode;
|
|
97
|
+
/**
|
|
98
|
+
* Social links displayed in mobile menu
|
|
99
|
+
*/
|
|
100
|
+
socialLinks?: NavbarTransparentOverlaySocialLink[];
|
|
101
|
+
/**
|
|
102
|
+
* Custom slot for social links (overrides socialLinks array)
|
|
103
|
+
*/
|
|
104
|
+
socialLinksSlot?: React.ReactNode;
|
|
76
105
|
/**
|
|
77
106
|
* Background style for the section
|
|
78
107
|
*/
|
|
@@ -107,6 +136,6 @@ interface NavbarTransparentOverlayProps {
|
|
|
107
136
|
* with a staggered effect. The hamburger menu transforms into an X when open. Perfect for
|
|
108
137
|
* landing pages, portfolios, and creative websites with hero sections.
|
|
109
138
|
*/
|
|
110
|
-
declare const NavbarTransparentOverlay: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, authActions, authActionsSlot, mobileAuthActions, mobileAuthActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarTransparentOverlayProps) => react_jsx_runtime.JSX.Element;
|
|
139
|
+
declare const NavbarTransparentOverlay: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, mobileMenuClassName, socialLinksClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, authActions, authActionsSlot, mobileAuthActions, mobileAuthActionsSlot, socialLinks, socialLinksSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarTransparentOverlayProps) => react_jsx_runtime.JSX.Element;
|
|
111
140
|
|
|
112
141
|
export { NavbarTransparentOverlay, type NavbarTransparentOverlayProps };
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
|
+
import { SocialPlatformName } from './social-link-icon.js';
|
|
3
4
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-Bi_ClKrO.js';
|
|
4
5
|
import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.js';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
7
|
+
import './pressable.js';
|
|
6
8
|
import 'class-variance-authority';
|
|
7
9
|
import './button-variants-lRElsmTc.js';
|
|
8
10
|
import 'class-variance-authority/types';
|
|
@@ -13,6 +15,17 @@ interface NavItem {
|
|
|
13
15
|
icon?: React.ReactNode;
|
|
14
16
|
iconName?: string;
|
|
15
17
|
}
|
|
18
|
+
/**
|
|
19
|
+
* Social link configuration for transparent overlay navbar
|
|
20
|
+
*/
|
|
21
|
+
interface NavbarTransparentOverlaySocialLink {
|
|
22
|
+
/** Social platform name - determines which icon to display */
|
|
23
|
+
platformName: SocialPlatformName;
|
|
24
|
+
/** URL to the social profile */
|
|
25
|
+
href: string;
|
|
26
|
+
/** Optional label for accessibility (defaults to platform name) */
|
|
27
|
+
label?: string;
|
|
28
|
+
}
|
|
16
29
|
/**
|
|
17
30
|
* Props for the NavbarTransparentOverlay component
|
|
18
31
|
*/
|
|
@@ -37,6 +50,14 @@ interface NavbarTransparentOverlayProps {
|
|
|
37
50
|
* Additional CSS classes for the actions container
|
|
38
51
|
*/
|
|
39
52
|
actionsClassName?: string;
|
|
53
|
+
/**
|
|
54
|
+
* Additional CSS classes for the mobile menu
|
|
55
|
+
*/
|
|
56
|
+
mobileMenuClassName?: string;
|
|
57
|
+
/**
|
|
58
|
+
* Additional CSS classes for the social links container
|
|
59
|
+
*/
|
|
60
|
+
socialLinksClassName?: string;
|
|
40
61
|
/**
|
|
41
62
|
* Logo configuration
|
|
42
63
|
*/
|
|
@@ -73,6 +94,14 @@ interface NavbarTransparentOverlayProps {
|
|
|
73
94
|
* Custom slot for mobile auth actions (overrides mobileAuthActions array)
|
|
74
95
|
*/
|
|
75
96
|
mobileAuthActionsSlot?: React.ReactNode;
|
|
97
|
+
/**
|
|
98
|
+
* Social links displayed in mobile menu
|
|
99
|
+
*/
|
|
100
|
+
socialLinks?: NavbarTransparentOverlaySocialLink[];
|
|
101
|
+
/**
|
|
102
|
+
* Custom slot for social links (overrides socialLinks array)
|
|
103
|
+
*/
|
|
104
|
+
socialLinksSlot?: React.ReactNode;
|
|
76
105
|
/**
|
|
77
106
|
* Background style for the section
|
|
78
107
|
*/
|
|
@@ -107,6 +136,6 @@ interface NavbarTransparentOverlayProps {
|
|
|
107
136
|
* with a staggered effect. The hamburger menu transforms into an X when open. Perfect for
|
|
108
137
|
* landing pages, portfolios, and creative websites with hero sections.
|
|
109
138
|
*/
|
|
110
|
-
declare const NavbarTransparentOverlay: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, authActions, authActionsSlot, mobileAuthActions, mobileAuthActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarTransparentOverlayProps) => react_jsx_runtime.JSX.Element;
|
|
139
|
+
declare const NavbarTransparentOverlay: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, mobileMenuClassName, socialLinksClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, authActions, authActionsSlot, mobileAuthActions, mobileAuthActionsSlot, socialLinks, socialLinksSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarTransparentOverlayProps) => react_jsx_runtime.JSX.Element;
|
|
111
140
|
|
|
112
141
|
export { NavbarTransparentOverlay, type NavbarTransparentOverlayProps };
|