@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
|
@@ -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 NavbarFeatureGrid = ({
|
|
1208
1239
|
className,
|
|
1209
1240
|
containerClassName,
|
|
@@ -1219,6 +1250,7 @@ var NavbarFeatureGrid = ({
|
|
|
1219
1250
|
features,
|
|
1220
1251
|
authActions,
|
|
1221
1252
|
authActionsSlot,
|
|
1253
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1222
1254
|
background = "white",
|
|
1223
1255
|
spacing = "sm",
|
|
1224
1256
|
pattern,
|
|
@@ -1267,15 +1299,22 @@ var NavbarFeatureGrid = ({
|
|
|
1267
1299
|
] }) }, index);
|
|
1268
1300
|
});
|
|
1269
1301
|
};
|
|
1302
|
+
const {
|
|
1303
|
+
sectionClasses,
|
|
1304
|
+
containerWrapperClasses,
|
|
1305
|
+
innerContainerClasses,
|
|
1306
|
+
navWrapperClasses,
|
|
1307
|
+
spacingOverride
|
|
1308
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1270
1309
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1271
1310
|
Section,
|
|
1272
1311
|
{
|
|
1273
1312
|
background,
|
|
1274
|
-
spacing,
|
|
1275
|
-
className:
|
|
1313
|
+
spacing: spacingOverride ?? spacing,
|
|
1314
|
+
className: sectionClasses,
|
|
1276
1315
|
pattern,
|
|
1277
1316
|
patternOpacity,
|
|
1278
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1317
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: cn("flex items-center justify-between", navWrapperClasses, navClassName), children: [
|
|
1279
1318
|
renderLogo(),
|
|
1280
1319
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1281
1320
|
NavigationMenu,
|
|
@@ -1379,7 +1418,7 @@ var NavbarFeatureGrid = ({
|
|
|
1379
1418
|
] })
|
|
1380
1419
|
] })
|
|
1381
1420
|
] })
|
|
1382
|
-
] }) })
|
|
1421
|
+
] }) }) })
|
|
1383
1422
|
}
|
|
1384
1423
|
);
|
|
1385
1424
|
};
|
|
@@ -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';
|
|
@@ -77,6 +77,10 @@ interface NavbarFeatureGridProps {
|
|
|
77
77
|
* Pattern overlay opacity (0-1)
|
|
78
78
|
*/
|
|
79
79
|
patternOpacity?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Layout variant for the navbar
|
|
82
|
+
*/
|
|
83
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
80
84
|
/**
|
|
81
85
|
* OptixFlow image optimization configuration
|
|
82
86
|
*/
|
|
@@ -90,6 +94,6 @@ interface NavbarFeatureGridProps {
|
|
|
90
94
|
* view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
|
|
91
95
|
* with multiple feature categories.
|
|
92
96
|
*/
|
|
93
|
-
declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
|
|
97
|
+
declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
|
|
94
98
|
|
|
95
99
|
export { NavbarFeatureGrid, type NavbarFeatureGridProps };
|
|
@@ -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';
|
|
@@ -77,6 +77,10 @@ interface NavbarFeatureGridProps {
|
|
|
77
77
|
* Pattern overlay opacity (0-1)
|
|
78
78
|
*/
|
|
79
79
|
patternOpacity?: number;
|
|
80
|
+
/**
|
|
81
|
+
* Layout variant for the navbar
|
|
82
|
+
*/
|
|
83
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
80
84
|
/**
|
|
81
85
|
* OptixFlow image optimization configuration
|
|
82
86
|
*/
|
|
@@ -90,6 +94,6 @@ interface NavbarFeatureGridProps {
|
|
|
90
94
|
* view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
|
|
91
95
|
* with multiple feature categories.
|
|
92
96
|
*/
|
|
93
|
-
declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
|
|
97
|
+
declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
|
|
94
98
|
|
|
95
99
|
export { NavbarFeatureGrid, type NavbarFeatureGridProps };
|
|
@@ -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 NavbarFeatureGrid = ({
|
|
1184
1215
|
className,
|
|
1185
1216
|
containerClassName,
|
|
@@ -1195,6 +1226,7 @@ var NavbarFeatureGrid = ({
|
|
|
1195
1226
|
features,
|
|
1196
1227
|
authActions,
|
|
1197
1228
|
authActionsSlot,
|
|
1229
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1198
1230
|
background = "white",
|
|
1199
1231
|
spacing = "sm",
|
|
1200
1232
|
pattern,
|
|
@@ -1243,15 +1275,22 @@ var NavbarFeatureGrid = ({
|
|
|
1243
1275
|
] }) }, index);
|
|
1244
1276
|
});
|
|
1245
1277
|
};
|
|
1278
|
+
const {
|
|
1279
|
+
sectionClasses,
|
|
1280
|
+
containerWrapperClasses,
|
|
1281
|
+
innerContainerClasses,
|
|
1282
|
+
navWrapperClasses,
|
|
1283
|
+
spacingOverride
|
|
1284
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1246
1285
|
return /* @__PURE__ */ jsx(
|
|
1247
1286
|
Section,
|
|
1248
1287
|
{
|
|
1249
1288
|
background,
|
|
1250
|
-
spacing,
|
|
1251
|
-
className:
|
|
1289
|
+
spacing: spacingOverride ?? spacing,
|
|
1290
|
+
className: sectionClasses,
|
|
1252
1291
|
pattern,
|
|
1253
1292
|
patternOpacity,
|
|
1254
|
-
children: /* @__PURE__ */ jsx("div", { className:
|
|
1293
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs("nav", { className: cn("flex items-center justify-between", navWrapperClasses, navClassName), children: [
|
|
1255
1294
|
renderLogo(),
|
|
1256
1295
|
/* @__PURE__ */ jsx(
|
|
1257
1296
|
NavigationMenu,
|
|
@@ -1355,7 +1394,7 @@ var NavbarFeatureGrid = ({
|
|
|
1355
1394
|
] })
|
|
1356
1395
|
] })
|
|
1357
1396
|
] })
|
|
1358
|
-
] }) })
|
|
1397
|
+
] }) }) })
|
|
1359
1398
|
}
|
|
1360
1399
|
);
|
|
1361
1400
|
};
|
|
@@ -952,7 +952,7 @@ function NavigationMenuList({
|
|
|
952
952
|
{
|
|
953
953
|
"data-slot": "navigation-menu-list",
|
|
954
954
|
className: cn(
|
|
955
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
955
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
956
956
|
className
|
|
957
957
|
),
|
|
958
958
|
...props
|
|
@@ -992,8 +992,9 @@ function NavigationMenuTrigger({
|
|
|
992
992
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
993
993
|
DynamicIcon,
|
|
994
994
|
{
|
|
995
|
+
size: 18,
|
|
995
996
|
name: "lucide/chevron-down",
|
|
996
|
-
className: "relative top-
|
|
997
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
997
998
|
"aria-hidden": "true"
|
|
998
999
|
}
|
|
999
1000
|
)
|
|
@@ -1033,7 +1034,7 @@ function NavigationMenuViewport({
|
|
|
1033
1034
|
{
|
|
1034
1035
|
"data-slot": "navigation-menu-viewport",
|
|
1035
1036
|
className: cn(
|
|
1036
|
-
"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-
|
|
1037
|
+
"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)",
|
|
1037
1038
|
className
|
|
1038
1039
|
),
|
|
1039
1040
|
...props
|
|
@@ -1051,7 +1052,7 @@ function NavigationMenuLink({
|
|
|
1051
1052
|
{
|
|
1052
1053
|
"data-slot": "navigation-menu-link",
|
|
1053
1054
|
className: cn(
|
|
1054
|
-
"
|
|
1055
|
+
"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",
|
|
1055
1056
|
className
|
|
1056
1057
|
),
|
|
1057
1058
|
...props
|
|
@@ -1062,6 +1063,36 @@ function NavigationMenuLink({
|
|
|
1062
1063
|
// lib/mediaPlaceholders.ts
|
|
1063
1064
|
var logoPlaceholders = {
|
|
1064
1065
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1066
|
+
|
|
1067
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1068
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1069
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1070
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1071
|
+
return {
|
|
1072
|
+
// Section wrapper classes
|
|
1073
|
+
sectionClasses: cn(
|
|
1074
|
+
"inset-x-0 z-20",
|
|
1075
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1076
|
+
customClasses?.className
|
|
1077
|
+
),
|
|
1078
|
+
// Outer container wrapper (only for floating bar)
|
|
1079
|
+
containerWrapperClasses: cn(
|
|
1080
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1081
|
+
),
|
|
1082
|
+
// Inner container classes
|
|
1083
|
+
innerContainerClasses: cn(
|
|
1084
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1085
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1086
|
+
customClasses?.containerClassName
|
|
1087
|
+
),
|
|
1088
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1089
|
+
navWrapperClasses: cn(
|
|
1090
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1091
|
+
),
|
|
1092
|
+
// Spacing adjustment for Section component
|
|
1093
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1094
|
+
};
|
|
1095
|
+
}
|
|
1065
1096
|
var NavbarFloatingPill = ({
|
|
1066
1097
|
logo = {
|
|
1067
1098
|
url: "/",
|
|
@@ -1078,6 +1109,7 @@ var NavbarFloatingPill = ({
|
|
|
1078
1109
|
pillWrapperClassName,
|
|
1079
1110
|
navigationMenuClassName,
|
|
1080
1111
|
actionsClassName,
|
|
1112
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1081
1113
|
background = "white",
|
|
1082
1114
|
spacing = "none",
|
|
1083
1115
|
pattern,
|
|
@@ -1142,20 +1174,27 @@ var NavbarFloatingPill = ({
|
|
|
1142
1174
|
if (!items || items.length === 0) return null;
|
|
1143
1175
|
return items;
|
|
1144
1176
|
};
|
|
1177
|
+
const {
|
|
1178
|
+
sectionClasses,
|
|
1179
|
+
containerWrapperClasses,
|
|
1180
|
+
innerContainerClasses,
|
|
1181
|
+
navWrapperClasses,
|
|
1182
|
+
spacingOverride
|
|
1183
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1145
1184
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1146
1185
|
Section,
|
|
1147
1186
|
{
|
|
1148
1187
|
background,
|
|
1149
|
-
spacing,
|
|
1150
|
-
className:
|
|
1188
|
+
spacing: spacingOverride ?? spacing,
|
|
1189
|
+
className: sectionClasses,
|
|
1151
1190
|
pattern,
|
|
1152
1191
|
patternOpacity,
|
|
1153
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1154
|
-
"
|
|
1192
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1193
|
+
"nav",
|
|
1155
1194
|
{
|
|
1156
1195
|
className: cn(
|
|
1157
|
-
"absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full
|
|
1158
|
-
|
|
1196
|
+
"absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full bg-background/70 backdrop-blur-md lg:top-12",
|
|
1197
|
+
navWrapperClasses
|
|
1159
1198
|
),
|
|
1160
1199
|
children: [
|
|
1161
1200
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -1311,7 +1350,7 @@ var NavbarFloatingPill = ({
|
|
|
1311
1350
|
)
|
|
1312
1351
|
]
|
|
1313
1352
|
}
|
|
1314
|
-
)
|
|
1353
|
+
) }) })
|
|
1315
1354
|
}
|
|
1316
1355
|
);
|
|
1317
1356
|
};
|
|
@@ -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';
|
|
@@ -86,6 +86,10 @@ interface NavbarFloatingPillProps {
|
|
|
86
86
|
* Pattern overlay opacity (0-1)
|
|
87
87
|
*/
|
|
88
88
|
patternOpacity?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Layout variant for the navbar
|
|
91
|
+
*/
|
|
92
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
89
93
|
/**
|
|
90
94
|
* OptixFlow image optimization configuration
|
|
91
95
|
*/
|
|
@@ -99,6 +103,6 @@ interface NavbarFloatingPillProps {
|
|
|
99
103
|
* animations and a collapsible mobile menu. Perfect for landing pages and modern marketing
|
|
100
104
|
* sites where the navbar should float over hero content.
|
|
101
105
|
*/
|
|
102
|
-
declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
|
|
103
107
|
|
|
104
108
|
export { NavbarFloatingPill, type NavbarFloatingPillProps };
|
|
@@ -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';
|
|
@@ -86,6 +86,10 @@ interface NavbarFloatingPillProps {
|
|
|
86
86
|
* Pattern overlay opacity (0-1)
|
|
87
87
|
*/
|
|
88
88
|
patternOpacity?: number;
|
|
89
|
+
/**
|
|
90
|
+
* Layout variant for the navbar
|
|
91
|
+
*/
|
|
92
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
89
93
|
/**
|
|
90
94
|
* OptixFlow image optimization configuration
|
|
91
95
|
*/
|
|
@@ -99,6 +103,6 @@ interface NavbarFloatingPillProps {
|
|
|
99
103
|
* animations and a collapsible mobile menu. Perfect for landing pages and modern marketing
|
|
100
104
|
* sites where the navbar should float over hero content.
|
|
101
105
|
*/
|
|
102
|
-
declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
|
|
103
107
|
|
|
104
108
|
export { NavbarFloatingPill, type NavbarFloatingPillProps };
|
|
@@ -930,7 +930,7 @@ function NavigationMenuList({
|
|
|
930
930
|
{
|
|
931
931
|
"data-slot": "navigation-menu-list",
|
|
932
932
|
className: cn(
|
|
933
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
933
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
934
934
|
className
|
|
935
935
|
),
|
|
936
936
|
...props
|
|
@@ -970,8 +970,9 @@ function NavigationMenuTrigger({
|
|
|
970
970
|
/* @__PURE__ */ jsx(
|
|
971
971
|
DynamicIcon,
|
|
972
972
|
{
|
|
973
|
+
size: 18,
|
|
973
974
|
name: "lucide/chevron-down",
|
|
974
|
-
className: "relative top-
|
|
975
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
975
976
|
"aria-hidden": "true"
|
|
976
977
|
}
|
|
977
978
|
)
|
|
@@ -1011,7 +1012,7 @@ function NavigationMenuViewport({
|
|
|
1011
1012
|
{
|
|
1012
1013
|
"data-slot": "navigation-menu-viewport",
|
|
1013
1014
|
className: cn(
|
|
1014
|
-
"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-
|
|
1015
|
+
"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)",
|
|
1015
1016
|
className
|
|
1016
1017
|
),
|
|
1017
1018
|
...props
|
|
@@ -1029,7 +1030,7 @@ function NavigationMenuLink({
|
|
|
1029
1030
|
{
|
|
1030
1031
|
"data-slot": "navigation-menu-link",
|
|
1031
1032
|
className: cn(
|
|
1032
|
-
"
|
|
1033
|
+
"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",
|
|
1033
1034
|
className
|
|
1034
1035
|
),
|
|
1035
1036
|
...props
|
|
@@ -1040,6 +1041,36 @@ function NavigationMenuLink({
|
|
|
1040
1041
|
// lib/mediaPlaceholders.ts
|
|
1041
1042
|
var logoPlaceholders = {
|
|
1042
1043
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1044
|
+
|
|
1045
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1046
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1047
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1048
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1049
|
+
return {
|
|
1050
|
+
// Section wrapper classes
|
|
1051
|
+
sectionClasses: cn(
|
|
1052
|
+
"inset-x-0 z-20",
|
|
1053
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1054
|
+
customClasses?.className
|
|
1055
|
+
),
|
|
1056
|
+
// Outer container wrapper (only for floating bar)
|
|
1057
|
+
containerWrapperClasses: cn(
|
|
1058
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1059
|
+
),
|
|
1060
|
+
// Inner container classes
|
|
1061
|
+
innerContainerClasses: cn(
|
|
1062
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1063
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1064
|
+
customClasses?.containerClassName
|
|
1065
|
+
),
|
|
1066
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1067
|
+
navWrapperClasses: cn(
|
|
1068
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1069
|
+
),
|
|
1070
|
+
// Spacing adjustment for Section component
|
|
1071
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1072
|
+
};
|
|
1073
|
+
}
|
|
1043
1074
|
var NavbarFloatingPill = ({
|
|
1044
1075
|
logo = {
|
|
1045
1076
|
url: "/",
|
|
@@ -1056,6 +1087,7 @@ var NavbarFloatingPill = ({
|
|
|
1056
1087
|
pillWrapperClassName,
|
|
1057
1088
|
navigationMenuClassName,
|
|
1058
1089
|
actionsClassName,
|
|
1090
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1059
1091
|
background = "white",
|
|
1060
1092
|
spacing = "none",
|
|
1061
1093
|
pattern,
|
|
@@ -1120,20 +1152,27 @@ var NavbarFloatingPill = ({
|
|
|
1120
1152
|
if (!items || items.length === 0) return null;
|
|
1121
1153
|
return items;
|
|
1122
1154
|
};
|
|
1155
|
+
const {
|
|
1156
|
+
sectionClasses,
|
|
1157
|
+
containerWrapperClasses,
|
|
1158
|
+
innerContainerClasses,
|
|
1159
|
+
navWrapperClasses,
|
|
1160
|
+
spacingOverride
|
|
1161
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1123
1162
|
return /* @__PURE__ */ jsx(
|
|
1124
1163
|
Section,
|
|
1125
1164
|
{
|
|
1126
1165
|
background,
|
|
1127
|
-
spacing,
|
|
1128
|
-
className:
|
|
1166
|
+
spacing: spacingOverride ?? spacing,
|
|
1167
|
+
className: sectionClasses,
|
|
1129
1168
|
pattern,
|
|
1130
1169
|
patternOpacity,
|
|
1131
|
-
children: /* @__PURE__ */ jsxs(
|
|
1132
|
-
"
|
|
1170
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
|
|
1171
|
+
"nav",
|
|
1133
1172
|
{
|
|
1134
1173
|
className: cn(
|
|
1135
|
-
"absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full
|
|
1136
|
-
|
|
1174
|
+
"absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full bg-background/70 backdrop-blur-md lg:top-12",
|
|
1175
|
+
navWrapperClasses
|
|
1137
1176
|
),
|
|
1138
1177
|
children: [
|
|
1139
1178
|
/* @__PURE__ */ jsxs(
|
|
@@ -1289,7 +1328,7 @@ var NavbarFloatingPill = ({
|
|
|
1289
1328
|
)
|
|
1290
1329
|
]
|
|
1291
1330
|
}
|
|
1292
|
-
)
|
|
1331
|
+
) }) })
|
|
1293
1332
|
}
|
|
1294
1333
|
);
|
|
1295
1334
|
};
|