@opensite/ui 0.4.5 → 0.4.6
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 +87 -53
- package/dist/navbar-animated-preview.d.cts +6 -2
- package/dist/navbar-animated-preview.d.ts +6 -2
- package/dist/navbar-animated-preview.js +87 -53
- package/dist/navbar-centered-menu.cjs +89 -59
- package/dist/navbar-centered-menu.d.cts +6 -2
- package/dist/navbar-centered-menu.d.ts +6 -2
- package/dist/navbar-centered-menu.js +89 -59
- package/dist/navbar-dark-icons.cjs +50 -10
- package/dist/navbar-dark-icons.d.cts +6 -2
- package/dist/navbar-dark-icons.d.ts +6 -2
- package/dist/navbar-dark-icons.js +50 -10
- package/dist/navbar-dropdown-menu.cjs +89 -59
- package/dist/navbar-dropdown-menu.d.cts +6 -2
- package/dist/navbar-dropdown-menu.d.ts +6 -2
- package/dist/navbar-dropdown-menu.js +89 -59
- package/dist/navbar-education-platform.cjs +48 -10
- package/dist/navbar-education-platform.d.cts +6 -2
- package/dist/navbar-education-platform.d.ts +6 -2
- package/dist/navbar-education-platform.js +48 -10
- package/dist/navbar-enterprise-mega.cjs +50 -10
- package/dist/navbar-enterprise-mega.d.cts +6 -2
- package/dist/navbar-enterprise-mega.d.ts +6 -2
- package/dist/navbar-enterprise-mega.js +50 -10
- package/dist/navbar-feature-grid.cjs +47 -8
- package/dist/navbar-feature-grid.d.cts +6 -2
- package/dist/navbar-feature-grid.d.ts +6 -2
- package/dist/navbar-feature-grid.js +47 -8
- package/dist/navbar-floating-pill.cjs +50 -11
- package/dist/navbar-floating-pill.d.cts +6 -2
- package/dist/navbar-floating-pill.d.ts +6 -2
- package/dist/navbar-floating-pill.js +50 -11
- package/dist/navbar-fullscreen-menu.cjs +44 -5
- package/dist/navbar-fullscreen-menu.d.cts +6 -2
- package/dist/navbar-fullscreen-menu.d.ts +6 -2
- package/dist/navbar-fullscreen-menu.js +44 -5
- package/dist/navbar-icon-links.cjs +46 -8
- package/dist/navbar-icon-links.d.cts +6 -2
- package/dist/navbar-icon-links.d.ts +6 -2
- package/dist/navbar-icon-links.js +46 -8
- package/dist/navbar-image-preview.cjs +47 -8
- package/dist/navbar-image-preview.d.cts +6 -2
- package/dist/navbar-image-preview.d.ts +6 -2
- package/dist/navbar-image-preview.js +47 -8
- package/dist/navbar-mega-menu.cjs +56 -12
- package/dist/navbar-mega-menu.d.cts +7 -3
- package/dist/navbar-mega-menu.d.ts +7 -3
- package/dist/navbar-mega-menu.js +56 -12
- package/dist/navbar-multi-column-groups.cjs +47 -11
- package/dist/navbar-multi-column-groups.d.cts +6 -2
- package/dist/navbar-multi-column-groups.d.ts +6 -2
- package/dist/navbar-multi-column-groups.js +47 -11
- package/dist/navbar-platform-resources.cjs +184 -154
- package/dist/navbar-platform-resources.d.cts +6 -2
- package/dist/navbar-platform-resources.d.ts +6 -2
- package/dist/navbar-platform-resources.js +184 -154
- package/dist/navbar-search-focused.cjs +45 -7
- package/dist/navbar-search-focused.d.cts +6 -2
- package/dist/navbar-search-focused.d.ts +6 -2
- package/dist/navbar-search-focused.js +45 -7
- package/dist/navbar-sidebar-mobile.cjs +47 -8
- package/dist/navbar-sidebar-mobile.d.cts +6 -2
- package/dist/navbar-sidebar-mobile.d.ts +6 -2
- package/dist/navbar-sidebar-mobile.js +47 -8
- package/dist/navbar-simple-links.cjs +88 -59
- package/dist/navbar-simple-links.d.cts +6 -2
- package/dist/navbar-simple-links.d.ts +6 -2
- package/dist/navbar-simple-links.js +88 -59
- package/dist/navbar-split-cta.cjs +47 -8
- package/dist/navbar-split-cta.d.cts +6 -2
- package/dist/navbar-split-cta.d.ts +6 -2
- package/dist/navbar-split-cta.js +47 -8
- package/dist/navbar-sticky-compact.cjs +49 -10
- package/dist/navbar-sticky-compact.d.cts +6 -2
- package/dist/navbar-sticky-compact.d.ts +6 -2
- package/dist/navbar-sticky-compact.js +49 -10
- package/dist/navbar-tabbed-sections.cjs +47 -8
- package/dist/navbar-tabbed-sections.d.cts +6 -2
- package/dist/navbar-tabbed-sections.d.ts +6 -2
- package/dist/navbar-tabbed-sections.js +47 -8
- package/dist/navbar-transparent-overlay.cjs +47 -9
- package/dist/navbar-transparent-overlay.d.cts +6 -2
- package/dist/navbar-transparent-overlay.d.ts +6 -2
- package/dist/navbar-transparent-overlay.js +47 -9
- package/dist/registry.cjs +625 -463
- package/dist/registry.js +625 -463
- package/dist/{types-D2b35ylu.d.cts → types-COVDidbn.d.cts} +22 -1
- package/dist/{types-D2b35ylu.d.ts → types-COVDidbn.d.ts} +22 -1
- package/package.json +2 -2
|
@@ -986,7 +986,7 @@ function NavigationMenuList({
|
|
|
986
986
|
{
|
|
987
987
|
"data-slot": "navigation-menu-list",
|
|
988
988
|
className: cn(
|
|
989
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
989
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
990
990
|
className
|
|
991
991
|
),
|
|
992
992
|
...props
|
|
@@ -1026,8 +1026,9 @@ function NavigationMenuTrigger({
|
|
|
1026
1026
|
/* @__PURE__ */ jsx(
|
|
1027
1027
|
DynamicIcon,
|
|
1028
1028
|
{
|
|
1029
|
+
size: 18,
|
|
1029
1030
|
name: "lucide/chevron-down",
|
|
1030
|
-
className: "relative top-
|
|
1031
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1031
1032
|
"aria-hidden": "true"
|
|
1032
1033
|
}
|
|
1033
1034
|
)
|
|
@@ -1067,7 +1068,7 @@ function NavigationMenuViewport({
|
|
|
1067
1068
|
{
|
|
1068
1069
|
"data-slot": "navigation-menu-viewport",
|
|
1069
1070
|
className: cn(
|
|
1070
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-
|
|
1071
|
+
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
|
|
1071
1072
|
className
|
|
1072
1073
|
),
|
|
1073
1074
|
...props
|
|
@@ -1085,7 +1086,7 @@ function NavigationMenuLink({
|
|
|
1085
1086
|
{
|
|
1086
1087
|
"data-slot": "navigation-menu-link",
|
|
1087
1088
|
className: cn(
|
|
1088
|
-
"
|
|
1089
|
+
"group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
|
|
1089
1090
|
className
|
|
1090
1091
|
),
|
|
1091
1092
|
...props
|
|
@@ -1165,6 +1166,36 @@ function SheetTitle({
|
|
|
1165
1166
|
// lib/mediaPlaceholders.ts
|
|
1166
1167
|
var logoPlaceholders = {
|
|
1167
1168
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1169
|
+
|
|
1170
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1171
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1172
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1173
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1174
|
+
return {
|
|
1175
|
+
// Section wrapper classes
|
|
1176
|
+
sectionClasses: cn(
|
|
1177
|
+
"inset-x-0 z-20",
|
|
1178
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1179
|
+
customClasses?.className
|
|
1180
|
+
),
|
|
1181
|
+
// Outer container wrapper (only for floating bar)
|
|
1182
|
+
containerWrapperClasses: cn(
|
|
1183
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1184
|
+
),
|
|
1185
|
+
// Inner container classes
|
|
1186
|
+
innerContainerClasses: cn(
|
|
1187
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1188
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1189
|
+
customClasses?.containerClassName
|
|
1190
|
+
),
|
|
1191
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1192
|
+
navWrapperClasses: cn(
|
|
1193
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1194
|
+
),
|
|
1195
|
+
// Spacing adjustment for Section component
|
|
1196
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1197
|
+
};
|
|
1198
|
+
}
|
|
1168
1199
|
var MOBILE_BREAKPOINT = 1024;
|
|
1169
1200
|
var NavbarDarkIcons = ({
|
|
1170
1201
|
className,
|
|
@@ -1184,6 +1215,7 @@ var NavbarDarkIcons = ({
|
|
|
1184
1215
|
authActionsSlot,
|
|
1185
1216
|
githubUrl = "https://github.com/opensite-ai/opensite-ui",
|
|
1186
1217
|
githubSlot,
|
|
1218
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1187
1219
|
background = "white",
|
|
1188
1220
|
spacing = "none",
|
|
1189
1221
|
pattern,
|
|
@@ -1283,20 +1315,28 @@ var NavbarDarkIcons = ({
|
|
|
1283
1315
|
if (!githubUrl) return null;
|
|
1284
1316
|
return /* @__PURE__ */ jsx(GithubStars, { repoUrl: githubUrl });
|
|
1285
1317
|
};
|
|
1318
|
+
const {
|
|
1319
|
+
sectionClasses,
|
|
1320
|
+
containerWrapperClasses,
|
|
1321
|
+
innerContainerClasses,
|
|
1322
|
+
navWrapperClasses,
|
|
1323
|
+
spacingOverride
|
|
1324
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1286
1325
|
return /* @__PURE__ */ jsxs(
|
|
1287
1326
|
Section,
|
|
1288
1327
|
{
|
|
1289
1328
|
background,
|
|
1290
|
-
spacing,
|
|
1291
|
-
className: cn("dark pointer-events-auto relative z-999",
|
|
1329
|
+
spacing: spacingOverride ?? spacing,
|
|
1330
|
+
className: cn("dark pointer-events-auto relative z-999", sectionClasses),
|
|
1292
1331
|
pattern,
|
|
1293
1332
|
patternOpacity,
|
|
1294
1333
|
children: [
|
|
1295
|
-
/* @__PURE__ */ jsx("div", { className:
|
|
1296
|
-
"
|
|
1334
|
+
/* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
|
|
1335
|
+
"nav",
|
|
1297
1336
|
{
|
|
1298
1337
|
className: cn(
|
|
1299
|
-
"flex h-
|
|
1338
|
+
"flex h-16 items-center justify-between",
|
|
1339
|
+
navWrapperClasses,
|
|
1300
1340
|
navClassName
|
|
1301
1341
|
),
|
|
1302
1342
|
children: [
|
|
@@ -1339,7 +1379,7 @@ var NavbarDarkIcons = ({
|
|
|
1339
1379
|
] })
|
|
1340
1380
|
]
|
|
1341
1381
|
}
|
|
1342
|
-
) }),
|
|
1382
|
+
) }) }),
|
|
1343
1383
|
/* @__PURE__ */ jsx(
|
|
1344
1384
|
MobileNavigationMenu,
|
|
1345
1385
|
{
|
|
@@ -1010,7 +1010,7 @@ function NavigationMenuList({
|
|
|
1010
1010
|
{
|
|
1011
1011
|
"data-slot": "navigation-menu-list",
|
|
1012
1012
|
className: cn(
|
|
1013
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
1013
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
1014
1014
|
className
|
|
1015
1015
|
),
|
|
1016
1016
|
...props
|
|
@@ -1050,8 +1050,9 @@ function NavigationMenuTrigger({
|
|
|
1050
1050
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1051
1051
|
DynamicIcon,
|
|
1052
1052
|
{
|
|
1053
|
+
size: 18,
|
|
1053
1054
|
name: "lucide/chevron-down",
|
|
1054
|
-
className: "relative top-
|
|
1055
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1055
1056
|
"aria-hidden": "true"
|
|
1056
1057
|
}
|
|
1057
1058
|
)
|
|
@@ -1091,7 +1092,7 @@ function NavigationMenuViewport({
|
|
|
1091
1092
|
{
|
|
1092
1093
|
"data-slot": "navigation-menu-viewport",
|
|
1093
1094
|
className: cn(
|
|
1094
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-
|
|
1095
|
+
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
|
|
1095
1096
|
className
|
|
1096
1097
|
),
|
|
1097
1098
|
...props
|
|
@@ -1109,7 +1110,7 @@ function NavigationMenuLink({
|
|
|
1109
1110
|
{
|
|
1110
1111
|
"data-slot": "navigation-menu-link",
|
|
1111
1112
|
className: cn(
|
|
1112
|
-
"
|
|
1113
|
+
"group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
|
|
1113
1114
|
className
|
|
1114
1115
|
),
|
|
1115
1116
|
...props
|
|
@@ -1204,6 +1205,36 @@ function SheetTitle({
|
|
|
1204
1205
|
// lib/mediaPlaceholders.ts
|
|
1205
1206
|
var logoPlaceholders = {
|
|
1206
1207
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1208
|
+
|
|
1209
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1210
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1211
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1212
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1213
|
+
return {
|
|
1214
|
+
// Section wrapper classes
|
|
1215
|
+
sectionClasses: cn(
|
|
1216
|
+
"inset-x-0 z-20",
|
|
1217
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1218
|
+
customClasses?.className
|
|
1219
|
+
),
|
|
1220
|
+
// Outer container wrapper (only for floating bar)
|
|
1221
|
+
containerWrapperClasses: cn(
|
|
1222
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1223
|
+
),
|
|
1224
|
+
// Inner container classes
|
|
1225
|
+
innerContainerClasses: cn(
|
|
1226
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1227
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1228
|
+
customClasses?.containerClassName
|
|
1229
|
+
),
|
|
1230
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1231
|
+
navWrapperClasses: cn(
|
|
1232
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1233
|
+
),
|
|
1234
|
+
// Spacing adjustment for Section component
|
|
1235
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1236
|
+
};
|
|
1237
|
+
}
|
|
1207
1238
|
var SubMenuLink = ({
|
|
1208
1239
|
item,
|
|
1209
1240
|
optixFlowConfig
|
|
@@ -1280,6 +1311,7 @@ var NavbarDropdownMenu = ({
|
|
|
1280
1311
|
mobileNavClassName,
|
|
1281
1312
|
navigationMenuClassName,
|
|
1282
1313
|
actionsClassName,
|
|
1314
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1283
1315
|
background = "white",
|
|
1284
1316
|
spacing = "sm",
|
|
1285
1317
|
pattern,
|
|
@@ -1347,72 +1379,70 @@ var NavbarDropdownMenu = ({
|
|
|
1347
1379
|
if (!menu || menu.length === 0) return null;
|
|
1348
1380
|
return menu.map((item) => renderMobileMenuItem(item, optixFlowConfig));
|
|
1349
1381
|
};
|
|
1382
|
+
const {
|
|
1383
|
+
sectionClasses,
|
|
1384
|
+
containerWrapperClasses,
|
|
1385
|
+
innerContainerClasses,
|
|
1386
|
+
navWrapperClasses,
|
|
1387
|
+
spacingOverride
|
|
1388
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1350
1389
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1351
1390
|
Section,
|
|
1352
1391
|
{
|
|
1353
1392
|
background,
|
|
1354
|
-
spacing,
|
|
1355
|
-
className:
|
|
1393
|
+
spacing: spacingOverride ?? spacing,
|
|
1394
|
+
className: sectionClasses,
|
|
1356
1395
|
pattern,
|
|
1357
1396
|
patternOpacity,
|
|
1358
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1359
|
-
|
|
1360
|
-
|
|
1361
|
-
|
|
1362
|
-
|
|
1363
|
-
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
"
|
|
1397
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(innerContainerClasses, navWrapperClasses), children: [
|
|
1398
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1399
|
+
"nav",
|
|
1400
|
+
{
|
|
1401
|
+
className: cn(
|
|
1402
|
+
"hidden items-center justify-between lg:flex",
|
|
1403
|
+
desktopNavClassName
|
|
1404
|
+
),
|
|
1405
|
+
children: [
|
|
1406
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
|
|
1407
|
+
renderLogo(),
|
|
1408
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { className: navigationMenuClassName, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: renderMenu() }) }) })
|
|
1409
|
+
] }),
|
|
1410
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
|
|
1411
|
+
]
|
|
1412
|
+
}
|
|
1413
|
+
),
|
|
1414
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1415
|
+
renderLogo(),
|
|
1416
|
+
/* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
|
|
1417
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1418
|
+
Pressable,
|
|
1368
1419
|
{
|
|
1369
|
-
|
|
1370
|
-
|
|
1371
|
-
|
|
1372
|
-
)
|
|
1373
|
-
|
|
1374
|
-
|
|
1375
|
-
renderLogo(),
|
|
1376
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { className: navigationMenuClassName, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: renderMenu() }) }) })
|
|
1377
|
-
] }),
|
|
1378
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
|
|
1379
|
-
]
|
|
1420
|
+
variant: "outline",
|
|
1421
|
+
size: "icon",
|
|
1422
|
+
asButton: true,
|
|
1423
|
+
onClick: () => {
|
|
1424
|
+
},
|
|
1425
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1380
1426
|
}
|
|
1381
|
-
),
|
|
1382
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1383
|
-
renderLogo(),
|
|
1384
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1385
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1386
|
-
|
|
1427
|
+
) }),
|
|
1428
|
+
/* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { className: "overflow-y-auto", children: [
|
|
1429
|
+
/* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: renderLogo() }) }),
|
|
1430
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
|
|
1431
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1432
|
+
Accordion,
|
|
1387
1433
|
{
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
},
|
|
1393
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1434
|
+
type: "single",
|
|
1435
|
+
collapsible: true,
|
|
1436
|
+
className: "flex w-full flex-col gap-4",
|
|
1437
|
+
children: renderMobileMenu()
|
|
1394
1438
|
}
|
|
1395
|
-
)
|
|
1396
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1397
|
-
/* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: renderLogo() }) }),
|
|
1398
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
|
|
1399
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1400
|
-
Accordion,
|
|
1401
|
-
{
|
|
1402
|
-
type: "single",
|
|
1403
|
-
collapsible: true,
|
|
1404
|
-
className: "flex w-full flex-col gap-4",
|
|
1405
|
-
children: renderMobileMenu()
|
|
1406
|
-
}
|
|
1407
|
-
),
|
|
1408
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
|
|
1409
|
-
] })
|
|
1410
|
-
] })
|
|
1439
|
+
),
|
|
1440
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
|
|
1411
1441
|
] })
|
|
1412
|
-
] })
|
|
1413
|
-
]
|
|
1414
|
-
}
|
|
1415
|
-
)
|
|
1442
|
+
] })
|
|
1443
|
+
] })
|
|
1444
|
+
] }) })
|
|
1445
|
+
] }) })
|
|
1416
1446
|
}
|
|
1417
1447
|
);
|
|
1418
1448
|
};
|
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
|
|
4
4
|
import { SectionBackground, SectionSpacing } from './types.cjs';
|
|
5
|
-
import { L as LogoConfig } from './types-
|
|
5
|
+
import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
|
|
6
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.cjs';
|
|
@@ -91,6 +91,10 @@ interface NavbarDropdownMenuProps {
|
|
|
91
91
|
* Pattern overlay opacity (0-1)
|
|
92
92
|
*/
|
|
93
93
|
patternOpacity?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Layout variant for the navbar
|
|
96
|
+
*/
|
|
97
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
94
98
|
/**
|
|
95
99
|
* OptixFlow image optimization configuration
|
|
96
100
|
*/
|
|
@@ -103,6 +107,6 @@ interface NavbarDropdownMenuProps {
|
|
|
103
107
|
* menu with accordion navigation on mobile. Includes login and signup call-to-action buttons.
|
|
104
108
|
* The dropdown menus display icons and descriptions for each submenu item.
|
|
105
109
|
*/
|
|
106
|
-
declare const NavbarDropdownMenu: ({ logo, logoSlot, logoClassName, menu, menuSlot, authActions, authActionsSlot, className, containerClassName, desktopNavClassName, mobileNavClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDropdownMenuProps) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
declare const NavbarDropdownMenu: ({ logo, logoSlot, logoClassName, menu, menuSlot, authActions, authActionsSlot, className, containerClassName, desktopNavClassName, mobileNavClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDropdownMenuProps) => react_jsx_runtime.JSX.Element;
|
|
107
111
|
|
|
108
112
|
export { NavbarDropdownMenu, type NavbarDropdownMenuProps };
|
|
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { P as PatternName } from './pattern-background-a7gKHzHy.js';
|
|
4
4
|
import { SectionBackground, SectionSpacing } from './types.js';
|
|
5
|
-
import { L as LogoConfig } from './types-
|
|
5
|
+
import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.js';
|
|
6
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
7
7
|
import 'class-variance-authority';
|
|
8
8
|
import './button-variants-lRElsmTc.js';
|
|
@@ -91,6 +91,10 @@ interface NavbarDropdownMenuProps {
|
|
|
91
91
|
* Pattern overlay opacity (0-1)
|
|
92
92
|
*/
|
|
93
93
|
patternOpacity?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Layout variant for the navbar
|
|
96
|
+
*/
|
|
97
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
94
98
|
/**
|
|
95
99
|
* OptixFlow image optimization configuration
|
|
96
100
|
*/
|
|
@@ -103,6 +107,6 @@ interface NavbarDropdownMenuProps {
|
|
|
103
107
|
* menu with accordion navigation on mobile. Includes login and signup call-to-action buttons.
|
|
104
108
|
* The dropdown menus display icons and descriptions for each submenu item.
|
|
105
109
|
*/
|
|
106
|
-
declare const NavbarDropdownMenu: ({ logo, logoSlot, logoClassName, menu, menuSlot, authActions, authActionsSlot, className, containerClassName, desktopNavClassName, mobileNavClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDropdownMenuProps) => react_jsx_runtime.JSX.Element;
|
|
110
|
+
declare const NavbarDropdownMenu: ({ logo, logoSlot, logoClassName, menu, menuSlot, authActions, authActionsSlot, className, containerClassName, desktopNavClassName, mobileNavClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDropdownMenuProps) => react_jsx_runtime.JSX.Element;
|
|
107
111
|
|
|
108
112
|
export { NavbarDropdownMenu, type NavbarDropdownMenuProps };
|
|
@@ -986,7 +986,7 @@ function NavigationMenuList({
|
|
|
986
986
|
{
|
|
987
987
|
"data-slot": "navigation-menu-list",
|
|
988
988
|
className: cn(
|
|
989
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
989
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
990
990
|
className
|
|
991
991
|
),
|
|
992
992
|
...props
|
|
@@ -1026,8 +1026,9 @@ function NavigationMenuTrigger({
|
|
|
1026
1026
|
/* @__PURE__ */ jsx(
|
|
1027
1027
|
DynamicIcon,
|
|
1028
1028
|
{
|
|
1029
|
+
size: 18,
|
|
1029
1030
|
name: "lucide/chevron-down",
|
|
1030
|
-
className: "relative top-
|
|
1031
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1031
1032
|
"aria-hidden": "true"
|
|
1032
1033
|
}
|
|
1033
1034
|
)
|
|
@@ -1067,7 +1068,7 @@ function NavigationMenuViewport({
|
|
|
1067
1068
|
{
|
|
1068
1069
|
"data-slot": "navigation-menu-viewport",
|
|
1069
1070
|
className: cn(
|
|
1070
|
-
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-
|
|
1071
|
+
"origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
|
|
1071
1072
|
className
|
|
1072
1073
|
),
|
|
1073
1074
|
...props
|
|
@@ -1085,7 +1086,7 @@ function NavigationMenuLink({
|
|
|
1085
1086
|
{
|
|
1086
1087
|
"data-slot": "navigation-menu-link",
|
|
1087
1088
|
className: cn(
|
|
1088
|
-
"
|
|
1089
|
+
"group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
|
|
1089
1090
|
className
|
|
1090
1091
|
),
|
|
1091
1092
|
...props
|
|
@@ -1180,6 +1181,36 @@ function SheetTitle({
|
|
|
1180
1181
|
// lib/mediaPlaceholders.ts
|
|
1181
1182
|
var logoPlaceholders = {
|
|
1182
1183
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1184
|
+
|
|
1185
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1186
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1187
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1188
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1189
|
+
return {
|
|
1190
|
+
// Section wrapper classes
|
|
1191
|
+
sectionClasses: cn(
|
|
1192
|
+
"inset-x-0 z-20",
|
|
1193
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1194
|
+
customClasses?.className
|
|
1195
|
+
),
|
|
1196
|
+
// Outer container wrapper (only for floating bar)
|
|
1197
|
+
containerWrapperClasses: cn(
|
|
1198
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1199
|
+
),
|
|
1200
|
+
// Inner container classes
|
|
1201
|
+
innerContainerClasses: cn(
|
|
1202
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1203
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1204
|
+
customClasses?.containerClassName
|
|
1205
|
+
),
|
|
1206
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1207
|
+
navWrapperClasses: cn(
|
|
1208
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1209
|
+
),
|
|
1210
|
+
// Spacing adjustment for Section component
|
|
1211
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1212
|
+
};
|
|
1213
|
+
}
|
|
1183
1214
|
var SubMenuLink = ({
|
|
1184
1215
|
item,
|
|
1185
1216
|
optixFlowConfig
|
|
@@ -1256,6 +1287,7 @@ var NavbarDropdownMenu = ({
|
|
|
1256
1287
|
mobileNavClassName,
|
|
1257
1288
|
navigationMenuClassName,
|
|
1258
1289
|
actionsClassName,
|
|
1290
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1259
1291
|
background = "white",
|
|
1260
1292
|
spacing = "sm",
|
|
1261
1293
|
pattern,
|
|
@@ -1323,72 +1355,70 @@ var NavbarDropdownMenu = ({
|
|
|
1323
1355
|
if (!menu || menu.length === 0) return null;
|
|
1324
1356
|
return menu.map((item) => renderMobileMenuItem(item, optixFlowConfig));
|
|
1325
1357
|
};
|
|
1358
|
+
const {
|
|
1359
|
+
sectionClasses,
|
|
1360
|
+
containerWrapperClasses,
|
|
1361
|
+
innerContainerClasses,
|
|
1362
|
+
navWrapperClasses,
|
|
1363
|
+
spacingOverride
|
|
1364
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1326
1365
|
return /* @__PURE__ */ jsx(
|
|
1327
1366
|
Section,
|
|
1328
1367
|
{
|
|
1329
1368
|
background,
|
|
1330
|
-
spacing,
|
|
1331
|
-
className:
|
|
1369
|
+
spacing: spacingOverride ?? spacing,
|
|
1370
|
+
className: sectionClasses,
|
|
1332
1371
|
pattern,
|
|
1333
1372
|
patternOpacity,
|
|
1334
|
-
children: /* @__PURE__ */ jsxs(
|
|
1335
|
-
|
|
1336
|
-
|
|
1337
|
-
|
|
1338
|
-
|
|
1339
|
-
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
"
|
|
1373
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxs("div", { className: cn(innerContainerClasses, navWrapperClasses), children: [
|
|
1374
|
+
/* @__PURE__ */ jsxs(
|
|
1375
|
+
"nav",
|
|
1376
|
+
{
|
|
1377
|
+
className: cn(
|
|
1378
|
+
"hidden items-center justify-between lg:flex",
|
|
1379
|
+
desktopNavClassName
|
|
1380
|
+
),
|
|
1381
|
+
children: [
|
|
1382
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-6", children: [
|
|
1383
|
+
renderLogo(),
|
|
1384
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(NavigationMenu, { className: navigationMenuClassName, children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu() }) }) })
|
|
1385
|
+
] }),
|
|
1386
|
+
/* @__PURE__ */ jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
|
|
1387
|
+
]
|
|
1388
|
+
}
|
|
1389
|
+
),
|
|
1390
|
+
/* @__PURE__ */ jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
|
|
1391
|
+
renderLogo(),
|
|
1392
|
+
/* @__PURE__ */ jsxs(Sheet, { children: [
|
|
1393
|
+
/* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
1394
|
+
Pressable,
|
|
1344
1395
|
{
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
)
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
renderLogo(),
|
|
1352
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(NavigationMenu, { className: navigationMenuClassName, children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu() }) }) })
|
|
1353
|
-
] }),
|
|
1354
|
-
/* @__PURE__ */ jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
|
|
1355
|
-
]
|
|
1396
|
+
variant: "outline",
|
|
1397
|
+
size: "icon",
|
|
1398
|
+
asButton: true,
|
|
1399
|
+
onClick: () => {
|
|
1400
|
+
},
|
|
1401
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1356
1402
|
}
|
|
1357
|
-
),
|
|
1358
|
-
/* @__PURE__ */
|
|
1359
|
-
renderLogo(),
|
|
1360
|
-
/* @__PURE__ */ jsxs(
|
|
1361
|
-
/* @__PURE__ */ jsx(
|
|
1362
|
-
|
|
1403
|
+
) }),
|
|
1404
|
+
/* @__PURE__ */ jsxs(SheetContent, { className: "overflow-y-auto", children: [
|
|
1405
|
+
/* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: renderLogo() }) }),
|
|
1406
|
+
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
|
|
1407
|
+
/* @__PURE__ */ jsx(
|
|
1408
|
+
Accordion,
|
|
1363
1409
|
{
|
|
1364
|
-
|
|
1365
|
-
|
|
1366
|
-
|
|
1367
|
-
|
|
1368
|
-
},
|
|
1369
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
|
|
1410
|
+
type: "single",
|
|
1411
|
+
collapsible: true,
|
|
1412
|
+
className: "flex w-full flex-col gap-4",
|
|
1413
|
+
children: renderMobileMenu()
|
|
1370
1414
|
}
|
|
1371
|
-
)
|
|
1372
|
-
/* @__PURE__ */
|
|
1373
|
-
/* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: renderLogo() }) }),
|
|
1374
|
-
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
|
|
1375
|
-
/* @__PURE__ */ jsx(
|
|
1376
|
-
Accordion,
|
|
1377
|
-
{
|
|
1378
|
-
type: "single",
|
|
1379
|
-
collapsible: true,
|
|
1380
|
-
className: "flex w-full flex-col gap-4",
|
|
1381
|
-
children: renderMobileMenu()
|
|
1382
|
-
}
|
|
1383
|
-
),
|
|
1384
|
-
/* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
|
|
1385
|
-
] })
|
|
1386
|
-
] })
|
|
1415
|
+
),
|
|
1416
|
+
/* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
|
|
1387
1417
|
] })
|
|
1388
|
-
] })
|
|
1389
|
-
]
|
|
1390
|
-
}
|
|
1391
|
-
)
|
|
1418
|
+
] })
|
|
1419
|
+
] })
|
|
1420
|
+
] }) })
|
|
1421
|
+
] }) })
|
|
1392
1422
|
}
|
|
1393
1423
|
);
|
|
1394
1424
|
};
|