@opensite/ui 0.4.4 → 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 +97 -58
- package/dist/navbar-animated-preview.d.cts +9 -64
- package/dist/navbar-animated-preview.d.ts +9 -64
- package/dist/navbar-animated-preview.js +97 -58
- package/dist/navbar-centered-menu.cjs +46 -7
- package/dist/navbar-centered-menu.d.cts +7 -11
- package/dist/navbar-centered-menu.d.ts +7 -11
- package/dist/navbar-centered-menu.js +46 -7
- package/dist/navbar-dark-icons.cjs +50 -10
- package/dist/navbar-dark-icons.d.cts +6 -11
- package/dist/navbar-dark-icons.d.ts +6 -11
- package/dist/navbar-dark-icons.js +50 -10
- package/dist/navbar-dropdown-menu.cjs +47 -8
- package/dist/navbar-dropdown-menu.d.cts +8 -12
- package/dist/navbar-dropdown-menu.d.ts +8 -12
- package/dist/navbar-dropdown-menu.js +47 -8
- package/dist/navbar-education-platform.cjs +48 -10
- package/dist/navbar-education-platform.d.cts +6 -11
- package/dist/navbar-education-platform.d.ts +6 -11
- package/dist/navbar-education-platform.js +48 -10
- package/dist/navbar-enterprise-mega.cjs +50 -10
- package/dist/navbar-enterprise-mega.d.cts +7 -37
- package/dist/navbar-enterprise-mega.d.ts +7 -37
- package/dist/navbar-enterprise-mega.js +50 -10
- package/dist/navbar-feature-grid.cjs +47 -8
- package/dist/navbar-feature-grid.d.cts +6 -11
- package/dist/navbar-feature-grid.d.ts +6 -11
- package/dist/navbar-feature-grid.js +47 -8
- package/dist/navbar-floating-pill.cjs +50 -11
- package/dist/navbar-floating-pill.d.cts +6 -11
- package/dist/navbar-floating-pill.d.ts +6 -11
- package/dist/navbar-floating-pill.js +50 -11
- package/dist/navbar-fullscreen-menu.cjs +44 -5
- package/dist/navbar-fullscreen-menu.d.cts +6 -11
- package/dist/navbar-fullscreen-menu.d.ts +6 -11
- package/dist/navbar-fullscreen-menu.js +44 -5
- package/dist/navbar-icon-links.cjs +46 -8
- package/dist/navbar-icon-links.d.cts +9 -11
- package/dist/navbar-icon-links.d.ts +9 -11
- package/dist/navbar-icon-links.js +46 -8
- package/dist/navbar-image-preview.cjs +56 -12
- package/dist/navbar-image-preview.d.cts +11 -17
- package/dist/navbar-image-preview.d.ts +11 -17
- package/dist/navbar-image-preview.js +56 -12
- package/dist/navbar-mega-menu.cjs +69 -20
- package/dist/navbar-mega-menu.d.cts +8 -74
- package/dist/navbar-mega-menu.d.ts +8 -74
- package/dist/navbar-mega-menu.js +69 -20
- package/dist/navbar-multi-column-groups.cjs +47 -11
- package/dist/navbar-multi-column-groups.d.cts +6 -11
- package/dist/navbar-multi-column-groups.d.ts +6 -11
- package/dist/navbar-multi-column-groups.js +47 -11
- package/dist/navbar-platform-resources.cjs +199 -164
- package/dist/navbar-platform-resources.d.cts +7 -37
- package/dist/navbar-platform-resources.d.ts +7 -37
- package/dist/navbar-platform-resources.js +199 -164
- package/dist/navbar-search-focused.cjs +45 -7
- package/dist/navbar-search-focused.d.cts +6 -11
- package/dist/navbar-search-focused.d.ts +6 -11
- package/dist/navbar-search-focused.js +45 -7
- package/dist/navbar-sidebar-mobile.cjs +47 -8
- package/dist/navbar-sidebar-mobile.d.cts +6 -11
- package/dist/navbar-sidebar-mobile.d.ts +6 -11
- package/dist/navbar-sidebar-mobile.js +47 -8
- package/dist/navbar-simple-links.cjs +45 -7
- package/dist/navbar-simple-links.d.cts +6 -11
- package/dist/navbar-simple-links.d.ts +6 -11
- package/dist/navbar-simple-links.js +45 -7
- package/dist/navbar-split-cta.cjs +47 -8
- package/dist/navbar-split-cta.d.cts +6 -11
- package/dist/navbar-split-cta.d.ts +6 -11
- package/dist/navbar-split-cta.js +47 -8
- package/dist/navbar-sticky-compact.cjs +49 -10
- package/dist/navbar-sticky-compact.d.cts +6 -11
- package/dist/navbar-sticky-compact.d.ts +6 -11
- package/dist/navbar-sticky-compact.js +49 -10
- package/dist/navbar-tabbed-sections.cjs +47 -8
- package/dist/navbar-tabbed-sections.d.cts +6 -11
- package/dist/navbar-tabbed-sections.d.ts +6 -11
- package/dist/navbar-tabbed-sections.js +47 -8
- package/dist/navbar-transparent-overlay.cjs +47 -9
- package/dist/navbar-transparent-overlay.d.cts +6 -11
- package/dist/navbar-transparent-overlay.d.ts +6 -11
- package/dist/navbar-transparent-overlay.js +47 -9
- package/dist/registry.cjs +522 -328
- package/dist/registry.js +522 -328
- package/dist/types-COVDidbn.d.cts +119 -0
- package/dist/types-COVDidbn.d.ts +119 -0
- package/package.json +2 -2
|
@@ -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
|
|
@@ -1189,6 +1190,36 @@ function SheetTitle({
|
|
|
1189
1190
|
// lib/mediaPlaceholders.ts
|
|
1190
1191
|
var logoPlaceholders = {
|
|
1191
1192
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1193
|
+
|
|
1194
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1195
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1196
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1197
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1198
|
+
return {
|
|
1199
|
+
// Section wrapper classes
|
|
1200
|
+
sectionClasses: cn(
|
|
1201
|
+
"inset-x-0 z-20",
|
|
1202
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1203
|
+
customClasses?.className
|
|
1204
|
+
),
|
|
1205
|
+
// Outer container wrapper (only for floating bar)
|
|
1206
|
+
containerWrapperClasses: cn(
|
|
1207
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1208
|
+
),
|
|
1209
|
+
// Inner container classes
|
|
1210
|
+
innerContainerClasses: cn(
|
|
1211
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1212
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1213
|
+
customClasses?.containerClassName
|
|
1214
|
+
),
|
|
1215
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1216
|
+
navWrapperClasses: cn(
|
|
1217
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1218
|
+
),
|
|
1219
|
+
// Spacing adjustment for Section component
|
|
1220
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1221
|
+
};
|
|
1222
|
+
}
|
|
1192
1223
|
var MOBILE_BREAKPOINT = 1024;
|
|
1193
1224
|
var NavbarDarkIcons = ({
|
|
1194
1225
|
className,
|
|
@@ -1208,6 +1239,7 @@ var NavbarDarkIcons = ({
|
|
|
1208
1239
|
authActionsSlot,
|
|
1209
1240
|
githubUrl = "https://github.com/opensite-ai/opensite-ui",
|
|
1210
1241
|
githubSlot,
|
|
1242
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1211
1243
|
background = "white",
|
|
1212
1244
|
spacing = "none",
|
|
1213
1245
|
pattern,
|
|
@@ -1307,20 +1339,28 @@ var NavbarDarkIcons = ({
|
|
|
1307
1339
|
if (!githubUrl) return null;
|
|
1308
1340
|
return /* @__PURE__ */ jsxRuntime.jsx(GithubStars, { repoUrl: githubUrl });
|
|
1309
1341
|
};
|
|
1342
|
+
const {
|
|
1343
|
+
sectionClasses,
|
|
1344
|
+
containerWrapperClasses,
|
|
1345
|
+
innerContainerClasses,
|
|
1346
|
+
navWrapperClasses,
|
|
1347
|
+
spacingOverride
|
|
1348
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1310
1349
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1311
1350
|
Section,
|
|
1312
1351
|
{
|
|
1313
1352
|
background,
|
|
1314
|
-
spacing,
|
|
1315
|
-
className: cn("dark pointer-events-auto relative z-999",
|
|
1353
|
+
spacing: spacingOverride ?? spacing,
|
|
1354
|
+
className: cn("dark pointer-events-auto relative z-999", sectionClasses),
|
|
1316
1355
|
pattern,
|
|
1317
1356
|
patternOpacity,
|
|
1318
1357
|
children: [
|
|
1319
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1320
|
-
"
|
|
1358
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1359
|
+
"nav",
|
|
1321
1360
|
{
|
|
1322
1361
|
className: cn(
|
|
1323
|
-
"flex h-
|
|
1362
|
+
"flex h-16 items-center justify-between",
|
|
1363
|
+
navWrapperClasses,
|
|
1324
1364
|
navClassName
|
|
1325
1365
|
),
|
|
1326
1366
|
children: [
|
|
@@ -1363,7 +1403,7 @@ var NavbarDarkIcons = ({
|
|
|
1363
1403
|
] })
|
|
1364
1404
|
]
|
|
1365
1405
|
}
|
|
1366
|
-
) }),
|
|
1406
|
+
) }) }),
|
|
1367
1407
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1368
1408
|
MobileNavigationMenu,
|
|
1369
1409
|
{
|
|
@@ -2,6 +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, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import './button-variants-lRElsmTc.cjs';
|
|
@@ -20,16 +21,6 @@ interface MenuItem {
|
|
|
20
21
|
url?: string;
|
|
21
22
|
links?: MenuLink[];
|
|
22
23
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Logo configuration interface
|
|
25
|
-
*/
|
|
26
|
-
interface LogoConfig {
|
|
27
|
-
url?: string;
|
|
28
|
-
src?: string;
|
|
29
|
-
alt?: string;
|
|
30
|
-
title?: React.ReactNode;
|
|
31
|
-
className?: string;
|
|
32
|
-
}
|
|
33
24
|
/**
|
|
34
25
|
* Props for the NavbarDarkIcons component
|
|
35
26
|
*/
|
|
@@ -106,6 +97,10 @@ interface NavbarDarkIconsProps {
|
|
|
106
97
|
* Pattern overlay opacity (0-1)
|
|
107
98
|
*/
|
|
108
99
|
patternOpacity?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Layout variant for the navbar
|
|
102
|
+
*/
|
|
103
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
109
104
|
/**
|
|
110
105
|
* OptixFlow image optimization configuration
|
|
111
106
|
*/
|
|
@@ -119,6 +114,6 @@ interface NavbarDarkIconsProps {
|
|
|
119
114
|
* view uses a full-screen dark sheet with accordion navigation. Ideal for developer
|
|
120
115
|
* tools, open-source projects, and tech-focused applications.
|
|
121
116
|
*/
|
|
122
|
-
declare const NavbarDarkIcons: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, authActions, authActionsSlot, githubUrl, githubSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDarkIconsProps) => react_jsx_runtime.JSX.Element;
|
|
117
|
+
declare const NavbarDarkIcons: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, authActions, authActionsSlot, githubUrl, githubSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDarkIconsProps) => react_jsx_runtime.JSX.Element;
|
|
123
118
|
|
|
124
119
|
export { NavbarDarkIcons, type NavbarDarkIconsProps };
|
|
@@ -2,6 +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, N as NavbarLayoutVariant } from './types-COVDidbn.js';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import './button-variants-lRElsmTc.js';
|
|
@@ -20,16 +21,6 @@ interface MenuItem {
|
|
|
20
21
|
url?: string;
|
|
21
22
|
links?: MenuLink[];
|
|
22
23
|
}
|
|
23
|
-
/**
|
|
24
|
-
* Logo configuration interface
|
|
25
|
-
*/
|
|
26
|
-
interface LogoConfig {
|
|
27
|
-
url?: string;
|
|
28
|
-
src?: string;
|
|
29
|
-
alt?: string;
|
|
30
|
-
title?: React.ReactNode;
|
|
31
|
-
className?: string;
|
|
32
|
-
}
|
|
33
24
|
/**
|
|
34
25
|
* Props for the NavbarDarkIcons component
|
|
35
26
|
*/
|
|
@@ -106,6 +97,10 @@ interface NavbarDarkIconsProps {
|
|
|
106
97
|
* Pattern overlay opacity (0-1)
|
|
107
98
|
*/
|
|
108
99
|
patternOpacity?: number;
|
|
100
|
+
/**
|
|
101
|
+
* Layout variant for the navbar
|
|
102
|
+
*/
|
|
103
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
109
104
|
/**
|
|
110
105
|
* OptixFlow image optimization configuration
|
|
111
106
|
*/
|
|
@@ -119,6 +114,6 @@ interface NavbarDarkIconsProps {
|
|
|
119
114
|
* view uses a full-screen dark sheet with accordion navigation. Ideal for developer
|
|
120
115
|
* tools, open-source projects, and tech-focused applications.
|
|
121
116
|
*/
|
|
122
|
-
declare const NavbarDarkIcons: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, authActions, authActionsSlot, githubUrl, githubSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDarkIconsProps) => react_jsx_runtime.JSX.Element;
|
|
117
|
+
declare const NavbarDarkIcons: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, authActions, authActionsSlot, githubUrl, githubSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarDarkIconsProps) => react_jsx_runtime.JSX.Element;
|
|
123
118
|
|
|
124
119
|
export { NavbarDarkIcons, type NavbarDarkIconsProps };
|
|
@@ -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,15 +1379,22 @@ 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.
|
|
1397
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(innerContainerClasses, navWrapperClasses), children: [
|
|
1359
1398
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1360
1399
|
"nav",
|
|
1361
1400
|
{
|
|
@@ -1403,7 +1442,7 @@ var NavbarDropdownMenu = ({
|
|
|
1403
1442
|
] })
|
|
1404
1443
|
] })
|
|
1405
1444
|
] }) })
|
|
1406
|
-
] })
|
|
1445
|
+
] }) })
|
|
1407
1446
|
}
|
|
1408
1447
|
);
|
|
1409
1448
|
};
|
|
@@ -2,13 +2,15 @@ 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, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import './button-variants-lRElsmTc.cjs';
|
|
8
9
|
import 'class-variance-authority/types';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
|
-
* Menu item interface for navigation
|
|
12
|
+
* Menu item interface for navigation (component-specific)
|
|
13
|
+
* Note: This uses title/url pattern specific to this dropdown menu component
|
|
12
14
|
*/
|
|
13
15
|
interface MenuItem {
|
|
14
16
|
title: string;
|
|
@@ -17,16 +19,6 @@ interface MenuItem {
|
|
|
17
19
|
icon?: string;
|
|
18
20
|
items?: MenuItem[];
|
|
19
21
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Logo configuration interface
|
|
22
|
-
*/
|
|
23
|
-
interface LogoConfig {
|
|
24
|
-
url?: string;
|
|
25
|
-
src?: string;
|
|
26
|
-
alt?: string;
|
|
27
|
-
title?: React.ReactNode;
|
|
28
|
-
className?: string;
|
|
29
|
-
}
|
|
30
22
|
/**
|
|
31
23
|
* Props for the NavbarDropdownMenu component
|
|
32
24
|
*/
|
|
@@ -99,6 +91,10 @@ interface NavbarDropdownMenuProps {
|
|
|
99
91
|
* Pattern overlay opacity (0-1)
|
|
100
92
|
*/
|
|
101
93
|
patternOpacity?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Layout variant for the navbar
|
|
96
|
+
*/
|
|
97
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
102
98
|
/**
|
|
103
99
|
* OptixFlow image optimization configuration
|
|
104
100
|
*/
|
|
@@ -111,6 +107,6 @@ interface NavbarDropdownMenuProps {
|
|
|
111
107
|
* menu with accordion navigation on mobile. Includes login and signup call-to-action buttons.
|
|
112
108
|
* The dropdown menus display icons and descriptions for each submenu item.
|
|
113
109
|
*/
|
|
114
|
-
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;
|
|
115
111
|
|
|
116
112
|
export { NavbarDropdownMenu, type NavbarDropdownMenuProps };
|
|
@@ -2,13 +2,15 @@ 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, N as NavbarLayoutVariant } from './types-COVDidbn.js';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import './button-variants-lRElsmTc.js';
|
|
8
9
|
import 'class-variance-authority/types';
|
|
9
10
|
|
|
10
11
|
/**
|
|
11
|
-
* Menu item interface for navigation
|
|
12
|
+
* Menu item interface for navigation (component-specific)
|
|
13
|
+
* Note: This uses title/url pattern specific to this dropdown menu component
|
|
12
14
|
*/
|
|
13
15
|
interface MenuItem {
|
|
14
16
|
title: string;
|
|
@@ -17,16 +19,6 @@ interface MenuItem {
|
|
|
17
19
|
icon?: string;
|
|
18
20
|
items?: MenuItem[];
|
|
19
21
|
}
|
|
20
|
-
/**
|
|
21
|
-
* Logo configuration interface
|
|
22
|
-
*/
|
|
23
|
-
interface LogoConfig {
|
|
24
|
-
url?: string;
|
|
25
|
-
src?: string;
|
|
26
|
-
alt?: string;
|
|
27
|
-
title?: React.ReactNode;
|
|
28
|
-
className?: string;
|
|
29
|
-
}
|
|
30
22
|
/**
|
|
31
23
|
* Props for the NavbarDropdownMenu component
|
|
32
24
|
*/
|
|
@@ -99,6 +91,10 @@ interface NavbarDropdownMenuProps {
|
|
|
99
91
|
* Pattern overlay opacity (0-1)
|
|
100
92
|
*/
|
|
101
93
|
patternOpacity?: number;
|
|
94
|
+
/**
|
|
95
|
+
* Layout variant for the navbar
|
|
96
|
+
*/
|
|
97
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
102
98
|
/**
|
|
103
99
|
* OptixFlow image optimization configuration
|
|
104
100
|
*/
|
|
@@ -111,6 +107,6 @@ interface NavbarDropdownMenuProps {
|
|
|
111
107
|
* menu with accordion navigation on mobile. Includes login and signup call-to-action buttons.
|
|
112
108
|
* The dropdown menus display icons and descriptions for each submenu item.
|
|
113
109
|
*/
|
|
114
|
-
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;
|
|
115
111
|
|
|
116
112
|
export { NavbarDropdownMenu, type NavbarDropdownMenuProps };
|