@opensite/ui 0.4.3 → 0.4.5
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 +17 -12
- package/dist/navbar-animated-preview.d.cts +4 -63
- package/dist/navbar-animated-preview.d.ts +4 -63
- package/dist/navbar-animated-preview.js +17 -12
- package/dist/navbar-centered-menu.cjs +60 -51
- package/dist/navbar-centered-menu.d.cts +2 -10
- package/dist/navbar-centered-menu.d.ts +2 -10
- package/dist/navbar-centered-menu.js +60 -51
- package/dist/navbar-dark-icons.cjs +4 -4
- package/dist/navbar-dark-icons.d.cts +1 -10
- package/dist/navbar-dark-icons.d.ts +1 -10
- package/dist/navbar-dark-icons.js +4 -4
- package/dist/navbar-dropdown-menu.cjs +59 -50
- package/dist/navbar-dropdown-menu.d.cts +3 -11
- package/dist/navbar-dropdown-menu.d.ts +3 -11
- package/dist/navbar-dropdown-menu.js +59 -50
- package/dist/navbar-education-platform.cjs +4 -4
- package/dist/navbar-education-platform.d.cts +1 -10
- package/dist/navbar-education-platform.d.ts +1 -10
- package/dist/navbar-education-platform.js +4 -4
- package/dist/navbar-enterprise-mega.cjs +7 -7
- package/dist/navbar-enterprise-mega.d.cts +2 -36
- package/dist/navbar-enterprise-mega.d.ts +2 -36
- package/dist/navbar-enterprise-mega.js +7 -7
- package/dist/navbar-feature-grid.cjs +4 -4
- package/dist/navbar-feature-grid.d.cts +1 -10
- package/dist/navbar-feature-grid.d.ts +1 -10
- package/dist/navbar-feature-grid.js +4 -4
- package/dist/navbar-floating-pill.cjs +4 -4
- package/dist/navbar-floating-pill.d.cts +1 -10
- package/dist/navbar-floating-pill.d.ts +1 -10
- package/dist/navbar-floating-pill.js +4 -4
- package/dist/navbar-fullscreen-menu.d.cts +1 -10
- package/dist/navbar-fullscreen-menu.d.ts +1 -10
- package/dist/navbar-icon-links.cjs +3 -3
- package/dist/navbar-icon-links.d.cts +4 -10
- package/dist/navbar-icon-links.d.ts +4 -10
- package/dist/navbar-icon-links.js +3 -3
- package/dist/navbar-image-preview.cjs +16 -11
- package/dist/navbar-image-preview.d.cts +6 -16
- package/dist/navbar-image-preview.d.ts +6 -16
- package/dist/navbar-image-preview.js +16 -11
- package/dist/navbar-mega-menu.cjs +26 -28
- package/dist/navbar-mega-menu.d.cts +3 -73
- package/dist/navbar-mega-menu.d.ts +3 -73
- package/dist/navbar-mega-menu.js +26 -28
- package/dist/navbar-multi-column-groups.cjs +4 -4
- package/dist/navbar-multi-column-groups.d.cts +1 -10
- package/dist/navbar-multi-column-groups.d.ts +1 -10
- package/dist/navbar-multi-column-groups.js +4 -4
- package/dist/navbar-platform-resources.cjs +20 -15
- package/dist/navbar-platform-resources.d.cts +2 -36
- package/dist/navbar-platform-resources.d.ts +2 -36
- package/dist/navbar-platform-resources.js +20 -15
- package/dist/navbar-search-focused.cjs +3 -3
- package/dist/navbar-search-focused.d.cts +1 -10
- package/dist/navbar-search-focused.d.ts +1 -10
- package/dist/navbar-search-focused.js +3 -3
- package/dist/navbar-sidebar-mobile.cjs +4 -4
- package/dist/navbar-sidebar-mobile.d.cts +1 -10
- package/dist/navbar-sidebar-mobile.d.ts +1 -10
- package/dist/navbar-sidebar-mobile.js +4 -4
- package/dist/navbar-simple-links.cjs +58 -49
- package/dist/navbar-simple-links.d.cts +1 -10
- package/dist/navbar-simple-links.d.ts +1 -10
- package/dist/navbar-simple-links.js +58 -49
- package/dist/navbar-split-cta.cjs +4 -4
- package/dist/navbar-split-cta.d.cts +1 -10
- package/dist/navbar-split-cta.d.ts +1 -10
- package/dist/navbar-split-cta.js +4 -4
- package/dist/navbar-sticky-compact.cjs +4 -4
- package/dist/navbar-sticky-compact.d.cts +1 -10
- package/dist/navbar-sticky-compact.d.ts +1 -10
- package/dist/navbar-sticky-compact.js +4 -4
- package/dist/navbar-tabbed-sections.cjs +4 -4
- package/dist/navbar-tabbed-sections.d.cts +1 -10
- package/dist/navbar-tabbed-sections.d.ts +1 -10
- package/dist/navbar-tabbed-sections.js +4 -4
- package/dist/navbar-transparent-overlay.cjs +3 -3
- package/dist/navbar-transparent-overlay.d.cts +1 -10
- package/dist/navbar-transparent-overlay.d.ts +1 -10
- package/dist/navbar-transparent-overlay.js +3 -3
- package/dist/registry.cjs +222 -192
- package/dist/registry.js +222 -192
- package/dist/types-D2b35ylu.d.cts +98 -0
- package/dist/types-D2b35ylu.d.ts +98 -0
- package/package.json +1 -1
|
@@ -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-
|
|
955
|
+
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
956
956
|
className
|
|
957
957
|
),
|
|
958
958
|
...props
|
|
@@ -973,7 +973,7 @@ function NavigationMenuItem({
|
|
|
973
973
|
);
|
|
974
974
|
}
|
|
975
975
|
var navigationMenuTriggerStyle = classVarianceAuthority.cva(
|
|
976
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-
|
|
976
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
|
|
977
977
|
);
|
|
978
978
|
function NavigationMenuTrigger({
|
|
979
979
|
className,
|
|
@@ -993,7 +993,7 @@ function NavigationMenuTrigger({
|
|
|
993
993
|
DynamicIcon,
|
|
994
994
|
{
|
|
995
995
|
name: "lucide/chevron-down",
|
|
996
|
-
className: "relative top-[1px] ml-1 size-
|
|
996
|
+
className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
|
|
997
997
|
"aria-hidden": "true"
|
|
998
998
|
}
|
|
999
999
|
)
|
|
@@ -1051,7 +1051,7 @@ function NavigationMenuLink({
|
|
|
1051
1051
|
{
|
|
1052
1052
|
"data-slot": "navigation-menu-link",
|
|
1053
1053
|
className: cn(
|
|
1054
|
-
"data-[active=true]:focus:bg-
|
|
1054
|
+
"data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
|
|
1055
1055
|
className
|
|
1056
1056
|
),
|
|
1057
1057
|
...props
|
|
@@ -1059,10 +1059,10 @@ function NavigationMenuLink({
|
|
|
1059
1059
|
);
|
|
1060
1060
|
}
|
|
1061
1061
|
|
|
1062
|
-
//
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1062
|
+
// components/blocks/navbars/types.ts
|
|
1063
|
+
function getLinkUrl(item) {
|
|
1064
|
+
return item.href || item.url || "#";
|
|
1065
|
+
}
|
|
1066
1066
|
var DesktopMenuItem = ({
|
|
1067
1067
|
link,
|
|
1068
1068
|
index,
|
|
@@ -1090,7 +1090,7 @@ var DesktopMenuItem = ({
|
|
|
1090
1090
|
};
|
|
1091
1091
|
if (layout === "animated-image-preview" && link.links) {
|
|
1092
1092
|
return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
|
|
1093
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1093
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1094
1094
|
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "!rounded-2xl !p-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid min-h-[18.75rem] w-[45.25rem] grid-cols-[22.5rem_1fr] gap-4 p-3", children: [
|
|
1095
1095
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-square w-full overflow-hidden rounded-xl", children: link.links.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1096
1096
|
img.Img,
|
|
@@ -1115,14 +1115,14 @@ var DesktopMenuItem = ({
|
|
|
1115
1115
|
/* @__PURE__ */ jsxRuntime.jsx("ul", { children: link.links.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1116
1116
|
NavigationMenuLink,
|
|
1117
1117
|
{
|
|
1118
|
-
href: item
|
|
1118
|
+
href: getLinkUrl(item),
|
|
1119
1119
|
className: "flex items-center gap-4 rounded-lg px-4 py-3 hover:bg-muted",
|
|
1120
1120
|
"data-index": idx,
|
|
1121
1121
|
onMouseEnter: handleMouseEnter,
|
|
1122
1122
|
onMouseLeave: handleMouseLeave,
|
|
1123
1123
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1124
|
-
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "leading-normal font-medium", children: item.label }),
|
|
1125
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "leading-normal text-muted-foreground", children: item.description })
|
|
1124
|
+
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm leading-normal font-medium", children: item.label }),
|
|
1125
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-normal text-muted-foreground", children: item.description })
|
|
1126
1126
|
] })
|
|
1127
1127
|
}
|
|
1128
1128
|
) }, `desktop-nav-sublink-${idx}`)) })
|
|
@@ -1132,14 +1132,14 @@ var DesktopMenuItem = ({
|
|
|
1132
1132
|
}
|
|
1133
1133
|
if (layout === "simple-grid" && link.links) {
|
|
1134
1134
|
return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
|
|
1135
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1136
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[
|
|
1135
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1136
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[700px] p-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1137
1137
|
NavigationMenuLink,
|
|
1138
1138
|
{
|
|
1139
|
-
href: item
|
|
1140
|
-
className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-
|
|
1139
|
+
href: getLinkUrl(item),
|
|
1140
|
+
className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-muted hover:text-foreground",
|
|
1141
1141
|
children: [
|
|
1142
|
-
item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-
|
|
1142
|
+
item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1143
1143
|
img.Img,
|
|
1144
1144
|
{
|
|
1145
1145
|
src: item.image,
|
|
@@ -1148,9 +1148,9 @@ var DesktopMenuItem = ({
|
|
|
1148
1148
|
optixFlowConfig
|
|
1149
1149
|
}
|
|
1150
1150
|
) }),
|
|
1151
|
-
!item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-
|
|
1151
|
+
!item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
|
|
1152
1152
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1153
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-
|
|
1153
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: item.label }),
|
|
1154
1154
|
item.description && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-normal text-muted-foreground", children: item.description })
|
|
1155
1155
|
] })
|
|
1156
1156
|
]
|
|
@@ -1161,11 +1161,11 @@ var DesktopMenuItem = ({
|
|
|
1161
1161
|
}
|
|
1162
1162
|
if (layout === "list-with-icons" && link.links) {
|
|
1163
1163
|
return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
|
|
1164
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1164
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1165
1165
|
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[400px] p-4", children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-1", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1166
1166
|
NavigationMenuLink,
|
|
1167
1167
|
{
|
|
1168
|
-
href: item
|
|
1168
|
+
href: getLinkUrl(item),
|
|
1169
1169
|
className: "flex items-start gap-3 rounded-lg p-3 hover:bg-muted",
|
|
1170
1170
|
children: [
|
|
1171
1171
|
(item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded-md bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
|
|
@@ -1209,7 +1209,7 @@ var MobileSubmenu = ({
|
|
|
1209
1209
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1210
1210
|
Pressable,
|
|
1211
1211
|
{
|
|
1212
|
-
href: item
|
|
1212
|
+
href: getLinkUrl(item),
|
|
1213
1213
|
className: "flex items-start gap-4 border-b border-border px-8 py-5",
|
|
1214
1214
|
children: [
|
|
1215
1215
|
item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1244,9 +1244,7 @@ var NavbarMegaMenu = ({
|
|
|
1244
1244
|
logoClassName,
|
|
1245
1245
|
mobileMenuClassName,
|
|
1246
1246
|
logo = {
|
|
1247
|
-
url: "/"
|
|
1248
|
-
desktopSrc: logoPlaceholders.darkHorizontalLogo,
|
|
1249
|
-
mobileSrc: logoPlaceholders.logoMark
|
|
1247
|
+
url: "/"
|
|
1250
1248
|
},
|
|
1251
1249
|
logoSlot,
|
|
1252
1250
|
menuLinks,
|
|
@@ -1272,7 +1270,7 @@ var NavbarMegaMenu = ({
|
|
|
1272
1270
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1273
1271
|
img.Img,
|
|
1274
1272
|
{
|
|
1275
|
-
src: logo.desktopSrc
|
|
1273
|
+
src: logo.desktopSrc,
|
|
1276
1274
|
className: cn("hidden h-7 dark:invert md:block", logo.className),
|
|
1277
1275
|
alt: logo.alt || "Logo",
|
|
1278
1276
|
optixFlowConfig
|
|
@@ -1281,7 +1279,7 @@ var NavbarMegaMenu = ({
|
|
|
1281
1279
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1282
1280
|
img.Img,
|
|
1283
1281
|
{
|
|
1284
|
-
src: logo.mobileSrc
|
|
1282
|
+
src: logo.mobileSrc,
|
|
1285
1283
|
className: cn("h-7 dark:invert md:hidden", logo.className),
|
|
1286
1284
|
alt: logo.alt || "Logo",
|
|
1287
1285
|
optixFlowConfig
|
|
@@ -1326,7 +1324,7 @@ var NavbarMegaMenu = ({
|
|
|
1326
1324
|
navClassName
|
|
1327
1325
|
),
|
|
1328
1326
|
children: [
|
|
1329
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between gap-12 py-4", children: [
|
|
1327
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between gap-12 border-b border-border/50 py-4 shadow-sm", children: [
|
|
1330
1328
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1331
1329
|
(!open || submenuIndex === null) && renderLogo(),
|
|
1332
1330
|
open && submenuIndex !== null && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -2,83 +2,13 @@ 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, I as IMenuLink } from './types-D2b35ylu.cjs';
|
|
6
|
+
export { b as ILinkItem, a as IMenuLinkGroup, M as MegaMenuLayout } from './types-D2b35ylu.cjs';
|
|
5
7
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
|
|
6
8
|
import 'class-variance-authority';
|
|
7
9
|
import './button-variants-lRElsmTc.cjs';
|
|
8
10
|
import 'class-variance-authority/types';
|
|
9
11
|
|
|
10
|
-
/**
|
|
11
|
-
* SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
|
|
12
|
-
* These types provide a consistent interface across all navbar blocks
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Base link item - used across all navbar components
|
|
16
|
-
*/
|
|
17
|
-
interface ILinkItem {
|
|
18
|
-
label: React.ReactNode;
|
|
19
|
-
description?: React.ReactNode;
|
|
20
|
-
url: string;
|
|
21
|
-
icon?: React.ReactNode;
|
|
22
|
-
iconName?: string;
|
|
23
|
-
image?: string;
|
|
24
|
-
background?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Group of links with optional metadata
|
|
28
|
-
*/
|
|
29
|
-
interface IMenuLinkGroup {
|
|
30
|
-
label: React.ReactNode;
|
|
31
|
-
description?: string;
|
|
32
|
-
image?: string;
|
|
33
|
-
links: ILinkItem[];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Layout types for mega menu dropdowns
|
|
37
|
-
*
|
|
38
|
-
* LAYOUT OPTIONS FOR AI PAGE BUILDER:
|
|
39
|
-
*
|
|
40
|
-
* 1. "animated-image-preview"
|
|
41
|
-
* - Visual: Grid layout with large image preview on left (360px wide), links list on right
|
|
42
|
-
* - Behavior: Image changes on hover based on which link is being hovered over
|
|
43
|
-
* - Best for: Product showcases, visual content navigation, feature highlights
|
|
44
|
-
* - Required data: links[] with label, description, url, image
|
|
45
|
-
* - Example use case: Product categories where each product has a hero image that displays on hover
|
|
46
|
-
*
|
|
47
|
-
* 2. "simple-grid"
|
|
48
|
-
* - Visual: 2-column responsive grid of cards with icons or images
|
|
49
|
-
* - Behavior: Static grid with hover effects on cards
|
|
50
|
-
* - Best for: Feature lists, service offerings, general navigation with icons
|
|
51
|
-
* - Required data: links[] with label, description, url, icon/iconName OR image
|
|
52
|
-
* - Example use case: Features menu showing analytics, reports, dashboards with icons
|
|
53
|
-
*
|
|
54
|
-
* 3. "list-with-icons"
|
|
55
|
-
* - Visual: Single column list of items with small icons on the left
|
|
56
|
-
* - Behavior: Compact list with hover effects
|
|
57
|
-
* - Best for: Simple navigation, documentation links, resource lists
|
|
58
|
-
* - Required data: links[] with label, description (optional), url, icon/iconName
|
|
59
|
-
* - Example use case: Resources menu with documentation, API reference, guides
|
|
60
|
-
*/
|
|
61
|
-
type MegaMenuLayout = "animated-image-preview" | "simple-grid" | "list-with-icons";
|
|
62
|
-
/**
|
|
63
|
-
* Menu link configuration with layout-based dropdown options
|
|
64
|
-
*/
|
|
65
|
-
interface IMenuLink {
|
|
66
|
-
label: React.ReactNode;
|
|
67
|
-
href?: string;
|
|
68
|
-
layout?: MegaMenuLayout;
|
|
69
|
-
links?: ILinkItem[];
|
|
70
|
-
dropdownGroups?: IMenuLinkGroup[];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Logo configuration interface
|
|
74
|
-
*/
|
|
75
|
-
interface LogoConfig {
|
|
76
|
-
url?: string;
|
|
77
|
-
desktopSrc?: string;
|
|
78
|
-
mobileSrc?: string;
|
|
79
|
-
alt?: string;
|
|
80
|
-
className?: string;
|
|
81
|
-
}
|
|
82
12
|
/**
|
|
83
13
|
* Props for the NavbarMegaMenu component
|
|
84
14
|
*/
|
|
@@ -158,4 +88,4 @@ interface NavbarMegaMenuProps {
|
|
|
158
88
|
*/
|
|
159
89
|
declare const NavbarMegaMenu: ({ className, containerClassName, navClassName, navigationMenuListClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, menuLinks, actions, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarMegaMenuProps) => react_jsx_runtime.JSX.Element;
|
|
160
90
|
|
|
161
|
-
export {
|
|
91
|
+
export { IMenuLink, LogoConfig, NavbarMegaMenu, type NavbarMegaMenuProps };
|
|
@@ -2,83 +2,13 @@ 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, I as IMenuLink } from './types-D2b35ylu.js';
|
|
6
|
+
export { b as ILinkItem, a as IMenuLinkGroup, M as MegaMenuLayout } from './types-D2b35ylu.js';
|
|
5
7
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
|
|
6
8
|
import 'class-variance-authority';
|
|
7
9
|
import './button-variants-lRElsmTc.js';
|
|
8
10
|
import 'class-variance-authority/types';
|
|
9
11
|
|
|
10
|
-
/**
|
|
11
|
-
* SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
|
|
12
|
-
* These types provide a consistent interface across all navbar blocks
|
|
13
|
-
*/
|
|
14
|
-
/**
|
|
15
|
-
* Base link item - used across all navbar components
|
|
16
|
-
*/
|
|
17
|
-
interface ILinkItem {
|
|
18
|
-
label: React.ReactNode;
|
|
19
|
-
description?: React.ReactNode;
|
|
20
|
-
url: string;
|
|
21
|
-
icon?: React.ReactNode;
|
|
22
|
-
iconName?: string;
|
|
23
|
-
image?: string;
|
|
24
|
-
background?: string;
|
|
25
|
-
}
|
|
26
|
-
/**
|
|
27
|
-
* Group of links with optional metadata
|
|
28
|
-
*/
|
|
29
|
-
interface IMenuLinkGroup {
|
|
30
|
-
label: React.ReactNode;
|
|
31
|
-
description?: string;
|
|
32
|
-
image?: string;
|
|
33
|
-
links: ILinkItem[];
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Layout types for mega menu dropdowns
|
|
37
|
-
*
|
|
38
|
-
* LAYOUT OPTIONS FOR AI PAGE BUILDER:
|
|
39
|
-
*
|
|
40
|
-
* 1. "animated-image-preview"
|
|
41
|
-
* - Visual: Grid layout with large image preview on left (360px wide), links list on right
|
|
42
|
-
* - Behavior: Image changes on hover based on which link is being hovered over
|
|
43
|
-
* - Best for: Product showcases, visual content navigation, feature highlights
|
|
44
|
-
* - Required data: links[] with label, description, url, image
|
|
45
|
-
* - Example use case: Product categories where each product has a hero image that displays on hover
|
|
46
|
-
*
|
|
47
|
-
* 2. "simple-grid"
|
|
48
|
-
* - Visual: 2-column responsive grid of cards with icons or images
|
|
49
|
-
* - Behavior: Static grid with hover effects on cards
|
|
50
|
-
* - Best for: Feature lists, service offerings, general navigation with icons
|
|
51
|
-
* - Required data: links[] with label, description, url, icon/iconName OR image
|
|
52
|
-
* - Example use case: Features menu showing analytics, reports, dashboards with icons
|
|
53
|
-
*
|
|
54
|
-
* 3. "list-with-icons"
|
|
55
|
-
* - Visual: Single column list of items with small icons on the left
|
|
56
|
-
* - Behavior: Compact list with hover effects
|
|
57
|
-
* - Best for: Simple navigation, documentation links, resource lists
|
|
58
|
-
* - Required data: links[] with label, description (optional), url, icon/iconName
|
|
59
|
-
* - Example use case: Resources menu with documentation, API reference, guides
|
|
60
|
-
*/
|
|
61
|
-
type MegaMenuLayout = "animated-image-preview" | "simple-grid" | "list-with-icons";
|
|
62
|
-
/**
|
|
63
|
-
* Menu link configuration with layout-based dropdown options
|
|
64
|
-
*/
|
|
65
|
-
interface IMenuLink {
|
|
66
|
-
label: React.ReactNode;
|
|
67
|
-
href?: string;
|
|
68
|
-
layout?: MegaMenuLayout;
|
|
69
|
-
links?: ILinkItem[];
|
|
70
|
-
dropdownGroups?: IMenuLinkGroup[];
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Logo configuration interface
|
|
74
|
-
*/
|
|
75
|
-
interface LogoConfig {
|
|
76
|
-
url?: string;
|
|
77
|
-
desktopSrc?: string;
|
|
78
|
-
mobileSrc?: string;
|
|
79
|
-
alt?: string;
|
|
80
|
-
className?: string;
|
|
81
|
-
}
|
|
82
12
|
/**
|
|
83
13
|
* Props for the NavbarMegaMenu component
|
|
84
14
|
*/
|
|
@@ -158,4 +88,4 @@ interface NavbarMegaMenuProps {
|
|
|
158
88
|
*/
|
|
159
89
|
declare const NavbarMegaMenu: ({ className, containerClassName, navClassName, navigationMenuListClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, menuLinks, actions, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarMegaMenuProps) => react_jsx_runtime.JSX.Element;
|
|
160
90
|
|
|
161
|
-
export {
|
|
91
|
+
export { IMenuLink, LogoConfig, NavbarMegaMenu, type NavbarMegaMenuProps };
|
package/dist/navbar-mega-menu.js
CHANGED
|
@@ -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-
|
|
933
|
+
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
934
934
|
className
|
|
935
935
|
),
|
|
936
936
|
...props
|
|
@@ -951,7 +951,7 @@ function NavigationMenuItem({
|
|
|
951
951
|
);
|
|
952
952
|
}
|
|
953
953
|
var navigationMenuTriggerStyle = cva(
|
|
954
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-
|
|
954
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
|
|
955
955
|
);
|
|
956
956
|
function NavigationMenuTrigger({
|
|
957
957
|
className,
|
|
@@ -971,7 +971,7 @@ function NavigationMenuTrigger({
|
|
|
971
971
|
DynamicIcon,
|
|
972
972
|
{
|
|
973
973
|
name: "lucide/chevron-down",
|
|
974
|
-
className: "relative top-[1px] ml-1 size-
|
|
974
|
+
className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
|
|
975
975
|
"aria-hidden": "true"
|
|
976
976
|
}
|
|
977
977
|
)
|
|
@@ -1029,7 +1029,7 @@ function NavigationMenuLink({
|
|
|
1029
1029
|
{
|
|
1030
1030
|
"data-slot": "navigation-menu-link",
|
|
1031
1031
|
className: cn(
|
|
1032
|
-
"data-[active=true]:focus:bg-
|
|
1032
|
+
"data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
|
|
1033
1033
|
className
|
|
1034
1034
|
),
|
|
1035
1035
|
...props
|
|
@@ -1037,10 +1037,10 @@ function NavigationMenuLink({
|
|
|
1037
1037
|
);
|
|
1038
1038
|
}
|
|
1039
1039
|
|
|
1040
|
-
//
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1040
|
+
// components/blocks/navbars/types.ts
|
|
1041
|
+
function getLinkUrl(item) {
|
|
1042
|
+
return item.href || item.url || "#";
|
|
1043
|
+
}
|
|
1044
1044
|
var DesktopMenuItem = ({
|
|
1045
1045
|
link,
|
|
1046
1046
|
index,
|
|
@@ -1068,7 +1068,7 @@ var DesktopMenuItem = ({
|
|
|
1068
1068
|
};
|
|
1069
1069
|
if (layout === "animated-image-preview" && link.links) {
|
|
1070
1070
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
|
|
1071
|
-
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1071
|
+
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1072
1072
|
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "!rounded-2xl !p-0", children: /* @__PURE__ */ jsxs("div", { className: "grid min-h-[18.75rem] w-[45.25rem] grid-cols-[22.5rem_1fr] gap-4 p-3", children: [
|
|
1073
1073
|
/* @__PURE__ */ jsx("div", { className: "relative aspect-square w-full overflow-hidden rounded-xl", children: link.links.map((item, idx) => /* @__PURE__ */ jsx(
|
|
1074
1074
|
Img,
|
|
@@ -1093,14 +1093,14 @@ var DesktopMenuItem = ({
|
|
|
1093
1093
|
/* @__PURE__ */ jsx("ul", { children: link.links.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1094
1094
|
NavigationMenuLink,
|
|
1095
1095
|
{
|
|
1096
|
-
href: item
|
|
1096
|
+
href: getLinkUrl(item),
|
|
1097
1097
|
className: "flex items-center gap-4 rounded-lg px-4 py-3 hover:bg-muted",
|
|
1098
1098
|
"data-index": idx,
|
|
1099
1099
|
onMouseEnter: handleMouseEnter,
|
|
1100
1100
|
onMouseLeave: handleMouseLeave,
|
|
1101
1101
|
children: /* @__PURE__ */ jsxs("div", { children: [
|
|
1102
|
-
/* @__PURE__ */ jsx("h3", { className: "leading-normal font-medium", children: item.label }),
|
|
1103
|
-
item.description && /* @__PURE__ */ jsx("p", { className: "leading-normal text-muted-foreground", children: item.description })
|
|
1102
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm leading-normal font-medium", children: item.label }),
|
|
1103
|
+
item.description && /* @__PURE__ */ jsx("p", { className: "text-xs leading-normal text-muted-foreground", children: item.description })
|
|
1104
1104
|
] })
|
|
1105
1105
|
}
|
|
1106
1106
|
) }, `desktop-nav-sublink-${idx}`)) })
|
|
@@ -1110,14 +1110,14 @@ var DesktopMenuItem = ({
|
|
|
1110
1110
|
}
|
|
1111
1111
|
if (layout === "simple-grid" && link.links) {
|
|
1112
1112
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
|
|
1113
|
-
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1114
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[
|
|
1113
|
+
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1114
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[700px] p-6", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsxs(
|
|
1115
1115
|
NavigationMenuLink,
|
|
1116
1116
|
{
|
|
1117
|
-
href: item
|
|
1118
|
-
className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-
|
|
1117
|
+
href: getLinkUrl(item),
|
|
1118
|
+
className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-muted hover:text-foreground",
|
|
1119
1119
|
children: [
|
|
1120
|
-
item.image && /* @__PURE__ */ jsx("div", { className: "h-
|
|
1120
|
+
item.image && /* @__PURE__ */ jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
|
|
1121
1121
|
Img,
|
|
1122
1122
|
{
|
|
1123
1123
|
src: item.image,
|
|
@@ -1126,9 +1126,9 @@ var DesktopMenuItem = ({
|
|
|
1126
1126
|
optixFlowConfig
|
|
1127
1127
|
}
|
|
1128
1128
|
) }),
|
|
1129
|
-
!item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-
|
|
1129
|
+
!item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
|
|
1130
1130
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1131
|
-
/* @__PURE__ */ jsx("div", { className: "text-
|
|
1131
|
+
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: item.label }),
|
|
1132
1132
|
item.description && /* @__PURE__ */ jsx("div", { className: "text-sm font-normal text-muted-foreground", children: item.description })
|
|
1133
1133
|
] })
|
|
1134
1134
|
]
|
|
@@ -1139,11 +1139,11 @@ var DesktopMenuItem = ({
|
|
|
1139
1139
|
}
|
|
1140
1140
|
if (layout === "list-with-icons" && link.links) {
|
|
1141
1141
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
|
|
1142
|
-
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-
|
|
1142
|
+
/* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "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", children: link.label }),
|
|
1143
1143
|
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[400px] p-4", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1144
1144
|
NavigationMenuLink,
|
|
1145
1145
|
{
|
|
1146
|
-
href: item
|
|
1146
|
+
href: getLinkUrl(item),
|
|
1147
1147
|
className: "flex items-start gap-3 rounded-lg p-3 hover:bg-muted",
|
|
1148
1148
|
children: [
|
|
1149
1149
|
(item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded-md bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
|
|
@@ -1187,7 +1187,7 @@ var MobileSubmenu = ({
|
|
|
1187
1187
|
return /* @__PURE__ */ jsxs(
|
|
1188
1188
|
Pressable,
|
|
1189
1189
|
{
|
|
1190
|
-
href: item
|
|
1190
|
+
href: getLinkUrl(item),
|
|
1191
1191
|
className: "flex items-start gap-4 border-b border-border px-8 py-5",
|
|
1192
1192
|
children: [
|
|
1193
1193
|
item.image && /* @__PURE__ */ jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
|
|
@@ -1222,9 +1222,7 @@ var NavbarMegaMenu = ({
|
|
|
1222
1222
|
logoClassName,
|
|
1223
1223
|
mobileMenuClassName,
|
|
1224
1224
|
logo = {
|
|
1225
|
-
url: "/"
|
|
1226
|
-
desktopSrc: logoPlaceholders.darkHorizontalLogo,
|
|
1227
|
-
mobileSrc: logoPlaceholders.logoMark
|
|
1225
|
+
url: "/"
|
|
1228
1226
|
},
|
|
1229
1227
|
logoSlot,
|
|
1230
1228
|
menuLinks,
|
|
@@ -1250,7 +1248,7 @@ var NavbarMegaMenu = ({
|
|
|
1250
1248
|
/* @__PURE__ */ jsx(
|
|
1251
1249
|
Img,
|
|
1252
1250
|
{
|
|
1253
|
-
src: logo.desktopSrc
|
|
1251
|
+
src: logo.desktopSrc,
|
|
1254
1252
|
className: cn("hidden h-7 dark:invert md:block", logo.className),
|
|
1255
1253
|
alt: logo.alt || "Logo",
|
|
1256
1254
|
optixFlowConfig
|
|
@@ -1259,7 +1257,7 @@ var NavbarMegaMenu = ({
|
|
|
1259
1257
|
/* @__PURE__ */ jsx(
|
|
1260
1258
|
Img,
|
|
1261
1259
|
{
|
|
1262
|
-
src: logo.mobileSrc
|
|
1260
|
+
src: logo.mobileSrc,
|
|
1263
1261
|
className: cn("h-7 dark:invert md:hidden", logo.className),
|
|
1264
1262
|
alt: logo.alt || "Logo",
|
|
1265
1263
|
optixFlowConfig
|
|
@@ -1304,7 +1302,7 @@ var NavbarMegaMenu = ({
|
|
|
1304
1302
|
navClassName
|
|
1305
1303
|
),
|
|
1306
1304
|
children: [
|
|
1307
|
-
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-12 py-4", children: [
|
|
1305
|
+
/* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-12 border-b border-border/50 py-4 shadow-sm", children: [
|
|
1308
1306
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1309
1307
|
(!open || submenuIndex === null) && renderLogo(),
|
|
1310
1308
|
open && submenuIndex !== null && /* @__PURE__ */ jsxs(
|
|
@@ -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-
|
|
1013
|
+
"group flex flex-1 list-none items-center justify-center gap-6",
|
|
1014
1014
|
className
|
|
1015
1015
|
),
|
|
1016
1016
|
...props
|
|
@@ -1031,7 +1031,7 @@ function NavigationMenuItem({
|
|
|
1031
1031
|
);
|
|
1032
1032
|
}
|
|
1033
1033
|
var navigationMenuTriggerStyle = classVarianceAuthority.cva(
|
|
1034
|
-
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-
|
|
1034
|
+
"group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
|
|
1035
1035
|
);
|
|
1036
1036
|
function NavigationMenuTrigger({
|
|
1037
1037
|
className,
|
|
@@ -1051,7 +1051,7 @@ function NavigationMenuTrigger({
|
|
|
1051
1051
|
DynamicIcon,
|
|
1052
1052
|
{
|
|
1053
1053
|
name: "lucide/chevron-down",
|
|
1054
|
-
className: "relative top-[1px] ml-1 size-
|
|
1054
|
+
className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
|
|
1055
1055
|
"aria-hidden": "true"
|
|
1056
1056
|
}
|
|
1057
1057
|
)
|
|
@@ -1109,7 +1109,7 @@ function NavigationMenuLink({
|
|
|
1109
1109
|
{
|
|
1110
1110
|
"data-slot": "navigation-menu-link",
|
|
1111
1111
|
className: cn(
|
|
1112
|
-
"data-[active=true]:focus:bg-
|
|
1112
|
+
"data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
|
|
1113
1113
|
className
|
|
1114
1114
|
),
|
|
1115
1115
|
...props
|
|
@@ -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 } from './types-D2b35ylu.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';
|
|
@@ -23,16 +24,6 @@ interface MenuItem {
|
|
|
23
24
|
url?: string;
|
|
24
25
|
groups?: MenuGroup[];
|
|
25
26
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Logo configuration interface
|
|
28
|
-
*/
|
|
29
|
-
interface LogoConfig {
|
|
30
|
-
url?: string;
|
|
31
|
-
src?: string;
|
|
32
|
-
alt?: string;
|
|
33
|
-
title?: React.ReactNode;
|
|
34
|
-
className?: string;
|
|
35
|
-
}
|
|
36
27
|
/**
|
|
37
28
|
* Props for the NavbarMultiColumnGroups component
|
|
38
29
|
*/
|
|
@@ -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 } from './types-D2b35ylu.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';
|
|
@@ -23,16 +24,6 @@ interface MenuItem {
|
|
|
23
24
|
url?: string;
|
|
24
25
|
groups?: MenuGroup[];
|
|
25
26
|
}
|
|
26
|
-
/**
|
|
27
|
-
* Logo configuration interface
|
|
28
|
-
*/
|
|
29
|
-
interface LogoConfig {
|
|
30
|
-
url?: string;
|
|
31
|
-
src?: string;
|
|
32
|
-
alt?: string;
|
|
33
|
-
title?: React.ReactNode;
|
|
34
|
-
className?: string;
|
|
35
|
-
}
|
|
36
27
|
/**
|
|
37
28
|
* Props for the NavbarMultiColumnGroups component
|
|
38
29
|
*/
|