@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
|
@@ -956,7 +956,7 @@ function NavigationMenuList({
|
|
|
956
956
|
{
|
|
957
957
|
"data-slot": "navigation-menu-list",
|
|
958
958
|
className: cn(
|
|
959
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
959
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
960
960
|
className
|
|
961
961
|
),
|
|
962
962
|
...props
|
|
@@ -994,7 +994,7 @@ function NavigationMenuViewport({
|
|
|
994
994
|
{
|
|
995
995
|
"data-slot": "navigation-menu-viewport",
|
|
996
996
|
className: cn(
|
|
997
|
-
"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-
|
|
997
|
+
"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)",
|
|
998
998
|
className
|
|
999
999
|
),
|
|
1000
1000
|
...props
|
|
@@ -1012,7 +1012,7 @@ function NavigationMenuLink({
|
|
|
1012
1012
|
{
|
|
1013
1013
|
"data-slot": "navigation-menu-link",
|
|
1014
1014
|
className: cn(
|
|
1015
|
-
"
|
|
1015
|
+
"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",
|
|
1016
1016
|
className
|
|
1017
1017
|
),
|
|
1018
1018
|
...props
|
|
@@ -1143,6 +1143,36 @@ function TooltipContent({
|
|
|
1143
1143
|
// lib/mediaPlaceholders.ts
|
|
1144
1144
|
var logoPlaceholders = {
|
|
1145
1145
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1146
|
+
|
|
1147
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1148
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1149
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1150
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1151
|
+
return {
|
|
1152
|
+
// Section wrapper classes
|
|
1153
|
+
sectionClasses: cn(
|
|
1154
|
+
"inset-x-0 z-20",
|
|
1155
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1156
|
+
customClasses?.className
|
|
1157
|
+
),
|
|
1158
|
+
// Outer container wrapper (only for floating bar)
|
|
1159
|
+
containerWrapperClasses: cn(
|
|
1160
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1161
|
+
),
|
|
1162
|
+
// Inner container classes
|
|
1163
|
+
innerContainerClasses: cn(
|
|
1164
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1165
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1166
|
+
customClasses?.containerClassName
|
|
1167
|
+
),
|
|
1168
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1169
|
+
navWrapperClasses: cn(
|
|
1170
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1171
|
+
),
|
|
1172
|
+
// Spacing adjustment for Section component
|
|
1173
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1174
|
+
};
|
|
1175
|
+
}
|
|
1146
1176
|
var NavbarIconLinks = ({
|
|
1147
1177
|
logo = {
|
|
1148
1178
|
url: "/",
|
|
@@ -1159,6 +1189,7 @@ var NavbarIconLinks = ({
|
|
|
1159
1189
|
navClassName,
|
|
1160
1190
|
navigationMenuClassName,
|
|
1161
1191
|
actionsClassName,
|
|
1192
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1162
1193
|
background = "white",
|
|
1163
1194
|
spacing = "none",
|
|
1164
1195
|
pattern,
|
|
@@ -1225,18 +1256,25 @@ var NavbarIconLinks = ({
|
|
|
1225
1256
|
if (!navItems || navItems.length === 0) return null;
|
|
1226
1257
|
return navItems;
|
|
1227
1258
|
};
|
|
1259
|
+
const {
|
|
1260
|
+
sectionClasses,
|
|
1261
|
+
containerWrapperClasses,
|
|
1262
|
+
innerContainerClasses,
|
|
1263
|
+
navWrapperClasses,
|
|
1264
|
+
spacingOverride
|
|
1265
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1228
1266
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1229
1267
|
Section,
|
|
1230
1268
|
{
|
|
1231
1269
|
background,
|
|
1232
|
-
spacing,
|
|
1233
|
-
className:
|
|
1270
|
+
spacing: spacingOverride ?? spacing,
|
|
1271
|
+
className: sectionClasses,
|
|
1234
1272
|
pattern,
|
|
1235
1273
|
patternOpacity,
|
|
1236
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1274
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1237
1275
|
"nav",
|
|
1238
1276
|
{
|
|
1239
|
-
className: cn("flex items-center justify-between py-3", navClassName),
|
|
1277
|
+
className: cn("flex items-center justify-between py-3", navWrapperClasses, navClassName),
|
|
1240
1278
|
children: [
|
|
1241
1279
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
|
|
1242
1280
|
renderLogo(),
|
|
@@ -1330,7 +1368,7 @@ var NavbarIconLinks = ({
|
|
|
1330
1368
|
] })
|
|
1331
1369
|
]
|
|
1332
1370
|
}
|
|
1333
|
-
) })
|
|
1371
|
+
) }) })
|
|
1334
1372
|
}
|
|
1335
1373
|
);
|
|
1336
1374
|
};
|
|
@@ -2,26 +2,20 @@ 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
|
|
|
11
|
+
/**
|
|
12
|
+
* Navigation item with icon for compact navbar display
|
|
13
|
+
*/
|
|
10
14
|
interface NavItem {
|
|
11
15
|
title: string;
|
|
12
16
|
url: string;
|
|
13
17
|
icon: string;
|
|
14
18
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Logo configuration interface
|
|
17
|
-
*/
|
|
18
|
-
interface LogoConfig {
|
|
19
|
-
url?: string;
|
|
20
|
-
src?: string;
|
|
21
|
-
alt?: string;
|
|
22
|
-
title?: React.ReactNode;
|
|
23
|
-
className?: string;
|
|
24
|
-
}
|
|
25
19
|
/**
|
|
26
20
|
* Props for the NavbarIconLinks component
|
|
27
21
|
*/
|
|
@@ -90,6 +84,10 @@ interface NavbarIconLinksProps {
|
|
|
90
84
|
* Pattern overlay opacity (0-1)
|
|
91
85
|
*/
|
|
92
86
|
patternOpacity?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Layout variant for the navbar
|
|
89
|
+
*/
|
|
90
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
93
91
|
/**
|
|
94
92
|
* OptixFlow image optimization configuration
|
|
95
93
|
*/
|
|
@@ -105,6 +103,6 @@ interface NavbarIconLinksProps {
|
|
|
105
103
|
* Ideal for dashboards, admin panels, and applications where users are familiar
|
|
106
104
|
* with the navigation structure.
|
|
107
105
|
*/
|
|
108
|
-
declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
|
|
109
107
|
|
|
110
108
|
export { NavbarIconLinks, type NavbarIconLinksProps };
|
|
@@ -2,26 +2,20 @@ 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
|
|
|
11
|
+
/**
|
|
12
|
+
* Navigation item with icon for compact navbar display
|
|
13
|
+
*/
|
|
10
14
|
interface NavItem {
|
|
11
15
|
title: string;
|
|
12
16
|
url: string;
|
|
13
17
|
icon: string;
|
|
14
18
|
}
|
|
15
|
-
/**
|
|
16
|
-
* Logo configuration interface
|
|
17
|
-
*/
|
|
18
|
-
interface LogoConfig {
|
|
19
|
-
url?: string;
|
|
20
|
-
src?: string;
|
|
21
|
-
alt?: string;
|
|
22
|
-
title?: React.ReactNode;
|
|
23
|
-
className?: string;
|
|
24
|
-
}
|
|
25
19
|
/**
|
|
26
20
|
* Props for the NavbarIconLinks component
|
|
27
21
|
*/
|
|
@@ -90,6 +84,10 @@ interface NavbarIconLinksProps {
|
|
|
90
84
|
* Pattern overlay opacity (0-1)
|
|
91
85
|
*/
|
|
92
86
|
patternOpacity?: number;
|
|
87
|
+
/**
|
|
88
|
+
* Layout variant for the navbar
|
|
89
|
+
*/
|
|
90
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
93
91
|
/**
|
|
94
92
|
* OptixFlow image optimization configuration
|
|
95
93
|
*/
|
|
@@ -105,6 +103,6 @@ interface NavbarIconLinksProps {
|
|
|
105
103
|
* Ideal for dashboards, admin panels, and applications where users are familiar
|
|
106
104
|
* with the navigation structure.
|
|
107
105
|
*/
|
|
108
|
-
declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
|
|
106
|
+
declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
|
|
109
107
|
|
|
110
108
|
export { NavbarIconLinks, type NavbarIconLinksProps };
|
|
@@ -932,7 +932,7 @@ function NavigationMenuList({
|
|
|
932
932
|
{
|
|
933
933
|
"data-slot": "navigation-menu-list",
|
|
934
934
|
className: cn(
|
|
935
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
935
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
936
936
|
className
|
|
937
937
|
),
|
|
938
938
|
...props
|
|
@@ -970,7 +970,7 @@ function NavigationMenuViewport({
|
|
|
970
970
|
{
|
|
971
971
|
"data-slot": "navigation-menu-viewport",
|
|
972
972
|
className: cn(
|
|
973
|
-
"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-
|
|
973
|
+
"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)",
|
|
974
974
|
className
|
|
975
975
|
),
|
|
976
976
|
...props
|
|
@@ -988,7 +988,7 @@ function NavigationMenuLink({
|
|
|
988
988
|
{
|
|
989
989
|
"data-slot": "navigation-menu-link",
|
|
990
990
|
className: cn(
|
|
991
|
-
"
|
|
991
|
+
"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",
|
|
992
992
|
className
|
|
993
993
|
),
|
|
994
994
|
...props
|
|
@@ -1119,6 +1119,36 @@ function TooltipContent({
|
|
|
1119
1119
|
// lib/mediaPlaceholders.ts
|
|
1120
1120
|
var logoPlaceholders = {
|
|
1121
1121
|
logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
|
|
1122
|
+
|
|
1123
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1124
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1125
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1126
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1127
|
+
return {
|
|
1128
|
+
// Section wrapper classes
|
|
1129
|
+
sectionClasses: cn(
|
|
1130
|
+
"inset-x-0 z-20",
|
|
1131
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1132
|
+
customClasses?.className
|
|
1133
|
+
),
|
|
1134
|
+
// Outer container wrapper (only for floating bar)
|
|
1135
|
+
containerWrapperClasses: cn(
|
|
1136
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1137
|
+
),
|
|
1138
|
+
// Inner container classes
|
|
1139
|
+
innerContainerClasses: cn(
|
|
1140
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1141
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1142
|
+
customClasses?.containerClassName
|
|
1143
|
+
),
|
|
1144
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1145
|
+
navWrapperClasses: cn(
|
|
1146
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1147
|
+
),
|
|
1148
|
+
// Spacing adjustment for Section component
|
|
1149
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1150
|
+
};
|
|
1151
|
+
}
|
|
1122
1152
|
var NavbarIconLinks = ({
|
|
1123
1153
|
logo = {
|
|
1124
1154
|
url: "/",
|
|
@@ -1135,6 +1165,7 @@ var NavbarIconLinks = ({
|
|
|
1135
1165
|
navClassName,
|
|
1136
1166
|
navigationMenuClassName,
|
|
1137
1167
|
actionsClassName,
|
|
1168
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1138
1169
|
background = "white",
|
|
1139
1170
|
spacing = "none",
|
|
1140
1171
|
pattern,
|
|
@@ -1201,18 +1232,25 @@ var NavbarIconLinks = ({
|
|
|
1201
1232
|
if (!navItems || navItems.length === 0) return null;
|
|
1202
1233
|
return navItems;
|
|
1203
1234
|
};
|
|
1235
|
+
const {
|
|
1236
|
+
sectionClasses,
|
|
1237
|
+
containerWrapperClasses,
|
|
1238
|
+
innerContainerClasses,
|
|
1239
|
+
navWrapperClasses,
|
|
1240
|
+
spacingOverride
|
|
1241
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1204
1242
|
return /* @__PURE__ */ jsx(
|
|
1205
1243
|
Section,
|
|
1206
1244
|
{
|
|
1207
1245
|
background,
|
|
1208
|
-
spacing,
|
|
1209
|
-
className:
|
|
1246
|
+
spacing: spacingOverride ?? spacing,
|
|
1247
|
+
className: sectionClasses,
|
|
1210
1248
|
pattern,
|
|
1211
1249
|
patternOpacity,
|
|
1212
|
-
children: /* @__PURE__ */ jsx("div", { className:
|
|
1250
|
+
children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
|
|
1213
1251
|
"nav",
|
|
1214
1252
|
{
|
|
1215
|
-
className: cn("flex items-center justify-between py-3", navClassName),
|
|
1253
|
+
className: cn("flex items-center justify-between py-3", navWrapperClasses, navClassName),
|
|
1216
1254
|
children: [
|
|
1217
1255
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-6", children: [
|
|
1218
1256
|
renderLogo(),
|
|
@@ -1306,7 +1344,7 @@ var NavbarIconLinks = ({
|
|
|
1306
1344
|
] })
|
|
1307
1345
|
]
|
|
1308
1346
|
}
|
|
1309
|
-
) })
|
|
1347
|
+
) }) })
|
|
1310
1348
|
}
|
|
1311
1349
|
);
|
|
1312
1350
|
};
|
|
@@ -954,7 +954,7 @@ function NavigationMenuList({
|
|
|
954
954
|
{
|
|
955
955
|
"data-slot": "navigation-menu-list",
|
|
956
956
|
className: cn(
|
|
957
|
-
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
957
|
+
"group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
|
|
958
958
|
className
|
|
959
959
|
),
|
|
960
960
|
...props
|
|
@@ -994,8 +994,9 @@ function NavigationMenuTrigger({
|
|
|
994
994
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
995
995
|
DynamicIcon,
|
|
996
996
|
{
|
|
997
|
+
size: 18,
|
|
997
998
|
name: "lucide/chevron-down",
|
|
998
|
-
className: "relative top-
|
|
999
|
+
className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
|
|
999
1000
|
"aria-hidden": "true"
|
|
1000
1001
|
}
|
|
1001
1002
|
)
|
|
@@ -1035,7 +1036,7 @@ function NavigationMenuViewport({
|
|
|
1035
1036
|
{
|
|
1036
1037
|
"data-slot": "navigation-menu-viewport",
|
|
1037
1038
|
className: cn(
|
|
1038
|
-
"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-
|
|
1039
|
+
"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)",
|
|
1039
1040
|
className
|
|
1040
1041
|
),
|
|
1041
1042
|
...props
|
|
@@ -1053,7 +1054,7 @@ function NavigationMenuLink({
|
|
|
1053
1054
|
{
|
|
1054
1055
|
"data-slot": "navigation-menu-link",
|
|
1055
1056
|
className: cn(
|
|
1056
|
-
"
|
|
1057
|
+
"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",
|
|
1057
1058
|
className
|
|
1058
1059
|
),
|
|
1059
1060
|
...props
|
|
@@ -1255,6 +1256,41 @@ var imagePlaceholders = [
|
|
|
1255
1256
|
"https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
|
|
1256
1257
|
"https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
|
|
1257
1258
|
];
|
|
1259
|
+
|
|
1260
|
+
// components/blocks/navbars/types.ts
|
|
1261
|
+
function getLinkUrl(item) {
|
|
1262
|
+
return item.href || item.url || "#";
|
|
1263
|
+
}
|
|
1264
|
+
|
|
1265
|
+
// components/blocks/navbars/layout-variant-utils.ts
|
|
1266
|
+
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
1267
|
+
const isFloatingBar = layoutVariant === "floatingBar";
|
|
1268
|
+
const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
|
|
1269
|
+
return {
|
|
1270
|
+
// Section wrapper classes
|
|
1271
|
+
sectionClasses: cn(
|
|
1272
|
+
"inset-x-0 z-20",
|
|
1273
|
+
isFloatingBar ? "sticky top-4" : "top-0",
|
|
1274
|
+
customClasses?.className
|
|
1275
|
+
),
|
|
1276
|
+
// Outer container wrapper (only for floating bar)
|
|
1277
|
+
containerWrapperClasses: cn(
|
|
1278
|
+
isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
|
|
1279
|
+
),
|
|
1280
|
+
// Inner container classes
|
|
1281
|
+
innerContainerClasses: cn(
|
|
1282
|
+
!isFloatingBar && !isFullWidthLinks && "container",
|
|
1283
|
+
isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
1284
|
+
customClasses?.containerClassName
|
|
1285
|
+
),
|
|
1286
|
+
// Navigation wrapper classes (for border and shadow)
|
|
1287
|
+
navWrapperClasses: cn(
|
|
1288
|
+
isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
|
|
1289
|
+
),
|
|
1290
|
+
// Spacing adjustment for Section component
|
|
1291
|
+
spacingOverride: isFloatingBar ? "none" : void 0
|
|
1292
|
+
};
|
|
1293
|
+
}
|
|
1258
1294
|
var MOBILE_BREAKPOINT = 1024;
|
|
1259
1295
|
var NavbarImagePreview = ({
|
|
1260
1296
|
className,
|
|
@@ -1276,6 +1312,7 @@ var NavbarImagePreview = ({
|
|
|
1276
1312
|
authActionsSlot,
|
|
1277
1313
|
socialLinks,
|
|
1278
1314
|
socialLinksSlot,
|
|
1315
|
+
layoutVariant = "fullScreenContainerizedLinks",
|
|
1279
1316
|
background = "white",
|
|
1280
1317
|
spacing = "none",
|
|
1281
1318
|
pattern,
|
|
@@ -1384,12 +1421,19 @@ var NavbarImagePreview = ({
|
|
|
1384
1421
|
);
|
|
1385
1422
|
});
|
|
1386
1423
|
};
|
|
1424
|
+
const {
|
|
1425
|
+
sectionClasses,
|
|
1426
|
+
containerWrapperClasses,
|
|
1427
|
+
innerContainerClasses,
|
|
1428
|
+
navWrapperClasses,
|
|
1429
|
+
spacingOverride
|
|
1430
|
+
} = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
|
|
1387
1431
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1388
1432
|
Section,
|
|
1389
1433
|
{
|
|
1390
1434
|
background,
|
|
1391
|
-
spacing,
|
|
1392
|
-
className:
|
|
1435
|
+
spacing: spacingOverride ?? spacing,
|
|
1436
|
+
className: sectionClasses,
|
|
1393
1437
|
pattern,
|
|
1394
1438
|
patternOpacity,
|
|
1395
1439
|
children: [
|
|
@@ -1398,10 +1442,10 @@ var NavbarImagePreview = ({
|
|
|
1398
1442
|
{
|
|
1399
1443
|
className: cn(
|
|
1400
1444
|
"fixed top-0 z-500 w-full bg-transparent transition-colors duration-500",
|
|
1401
|
-
|
|
1445
|
+
containerWrapperClasses
|
|
1402
1446
|
),
|
|
1403
1447
|
ref: navRef,
|
|
1404
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className:
|
|
1448
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(innerContainerClasses, navWrapperClasses), children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1405
1449
|
"div",
|
|
1406
1450
|
{
|
|
1407
1451
|
className: cn(
|
|
@@ -1503,14 +1547,14 @@ var DesktopMenuItem = ({
|
|
|
1503
1547
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { children: item.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1504
1548
|
Pressable,
|
|
1505
1549
|
{
|
|
1506
|
-
href: link
|
|
1550
|
+
href: getLinkUrl(link),
|
|
1507
1551
|
className: "flex items-center gap-4 rounded-lg px-4 py-3 hover:bg-muted",
|
|
1508
1552
|
"data-index": linkIndex,
|
|
1509
1553
|
onMouseEnter: handleMouseEnter,
|
|
1510
1554
|
onMouseLeave: handleMouseLeave,
|
|
1511
1555
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1512
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "leading-normal font-medium", children: link.label }),
|
|
1513
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "leading-normal text-muted-foreground", children: link.description })
|
|
1556
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm leading-normal font-medium", children: link.label }),
|
|
1557
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-normal text-muted-foreground", children: link.description })
|
|
1514
1558
|
] })
|
|
1515
1559
|
}
|
|
1516
1560
|
) }, `desktop-nav-sublink-${linkIndex}`)) })
|
|
@@ -1553,7 +1597,7 @@ var MobileNavigationMenu = ({
|
|
|
1553
1597
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-3", children: item.links?.map((link, i) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1554
1598
|
Pressable,
|
|
1555
1599
|
{
|
|
1556
|
-
href: link
|
|
1600
|
+
href: getLinkUrl(link),
|
|
1557
1601
|
className: cn(
|
|
1558
1602
|
"text-primary-foreground leading-normal font-medium",
|
|
1559
1603
|
index === 0 ? "text-2xl" : "text-base"
|
|
@@ -2,17 +2,17 @@ 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, b as ILinkItem, 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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
11
|
+
/**
|
|
12
|
+
* MenuLink type alias for backward compatibility
|
|
13
|
+
* Uses shared ILinkItem which supports both href and url
|
|
14
|
+
*/
|
|
15
|
+
type MenuLink = ILinkItem;
|
|
16
16
|
interface MenuItem {
|
|
17
17
|
title: React.ReactNode;
|
|
18
18
|
url?: string;
|
|
@@ -25,16 +25,6 @@ interface SocialLink {
|
|
|
25
25
|
icon?: React.ReactNode;
|
|
26
26
|
iconName?: string;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Logo configuration interface
|
|
30
|
-
*/
|
|
31
|
-
interface LogoConfig {
|
|
32
|
-
url?: string;
|
|
33
|
-
src?: string;
|
|
34
|
-
alt?: string;
|
|
35
|
-
title?: React.ReactNode;
|
|
36
|
-
className?: string;
|
|
37
|
-
}
|
|
38
28
|
/**
|
|
39
29
|
* Props for the NavbarImagePreview component
|
|
40
30
|
*/
|
|
@@ -119,6 +109,10 @@ interface NavbarImagePreviewProps {
|
|
|
119
109
|
* Pattern overlay opacity (0-1)
|
|
120
110
|
*/
|
|
121
111
|
patternOpacity?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Layout variant for the navbar
|
|
114
|
+
*/
|
|
115
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
122
116
|
/**
|
|
123
117
|
* OptixFlow image optimization configuration
|
|
124
118
|
*/
|
|
@@ -132,6 +126,6 @@ interface NavbarImagePreviewProps {
|
|
|
132
126
|
* Mobile view uses a full-screen dark overlay with categorized link columns and
|
|
133
127
|
* social links. Ideal for content-rich sites where visual previews enhance navigation.
|
|
134
128
|
*/
|
|
135
|
-
declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
|
|
129
|
+
declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
|
|
136
130
|
|
|
137
131
|
export { NavbarImagePreview, type NavbarImagePreviewProps };
|
|
@@ -2,17 +2,17 @@ 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, b as ILinkItem, 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
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
11
|
+
/**
|
|
12
|
+
* MenuLink type alias for backward compatibility
|
|
13
|
+
* Uses shared ILinkItem which supports both href and url
|
|
14
|
+
*/
|
|
15
|
+
type MenuLink = ILinkItem;
|
|
16
16
|
interface MenuItem {
|
|
17
17
|
title: React.ReactNode;
|
|
18
18
|
url?: string;
|
|
@@ -25,16 +25,6 @@ interface SocialLink {
|
|
|
25
25
|
icon?: React.ReactNode;
|
|
26
26
|
iconName?: string;
|
|
27
27
|
}
|
|
28
|
-
/**
|
|
29
|
-
* Logo configuration interface
|
|
30
|
-
*/
|
|
31
|
-
interface LogoConfig {
|
|
32
|
-
url?: string;
|
|
33
|
-
src?: string;
|
|
34
|
-
alt?: string;
|
|
35
|
-
title?: React.ReactNode;
|
|
36
|
-
className?: string;
|
|
37
|
-
}
|
|
38
28
|
/**
|
|
39
29
|
* Props for the NavbarImagePreview component
|
|
40
30
|
*/
|
|
@@ -119,6 +109,10 @@ interface NavbarImagePreviewProps {
|
|
|
119
109
|
* Pattern overlay opacity (0-1)
|
|
120
110
|
*/
|
|
121
111
|
patternOpacity?: number;
|
|
112
|
+
/**
|
|
113
|
+
* Layout variant for the navbar
|
|
114
|
+
*/
|
|
115
|
+
layoutVariant?: NavbarLayoutVariant;
|
|
122
116
|
/**
|
|
123
117
|
* OptixFlow image optimization configuration
|
|
124
118
|
*/
|
|
@@ -132,6 +126,6 @@ interface NavbarImagePreviewProps {
|
|
|
132
126
|
* Mobile view uses a full-screen dark overlay with categorized link columns and
|
|
133
127
|
* social links. Ideal for content-rich sites where visual previews enhance navigation.
|
|
134
128
|
*/
|
|
135
|
-
declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
|
|
129
|
+
declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
|
|
136
130
|
|
|
137
131
|
export { NavbarImagePreview, type NavbarImagePreviewProps };
|