@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.
Files changed (89) hide show
  1. package/dist/navbar-animated-preview.cjs +97 -58
  2. package/dist/navbar-animated-preview.d.cts +9 -64
  3. package/dist/navbar-animated-preview.d.ts +9 -64
  4. package/dist/navbar-animated-preview.js +97 -58
  5. package/dist/navbar-centered-menu.cjs +46 -7
  6. package/dist/navbar-centered-menu.d.cts +7 -11
  7. package/dist/navbar-centered-menu.d.ts +7 -11
  8. package/dist/navbar-centered-menu.js +46 -7
  9. package/dist/navbar-dark-icons.cjs +50 -10
  10. package/dist/navbar-dark-icons.d.cts +6 -11
  11. package/dist/navbar-dark-icons.d.ts +6 -11
  12. package/dist/navbar-dark-icons.js +50 -10
  13. package/dist/navbar-dropdown-menu.cjs +47 -8
  14. package/dist/navbar-dropdown-menu.d.cts +8 -12
  15. package/dist/navbar-dropdown-menu.d.ts +8 -12
  16. package/dist/navbar-dropdown-menu.js +47 -8
  17. package/dist/navbar-education-platform.cjs +48 -10
  18. package/dist/navbar-education-platform.d.cts +6 -11
  19. package/dist/navbar-education-platform.d.ts +6 -11
  20. package/dist/navbar-education-platform.js +48 -10
  21. package/dist/navbar-enterprise-mega.cjs +50 -10
  22. package/dist/navbar-enterprise-mega.d.cts +7 -37
  23. package/dist/navbar-enterprise-mega.d.ts +7 -37
  24. package/dist/navbar-enterprise-mega.js +50 -10
  25. package/dist/navbar-feature-grid.cjs +47 -8
  26. package/dist/navbar-feature-grid.d.cts +6 -11
  27. package/dist/navbar-feature-grid.d.ts +6 -11
  28. package/dist/navbar-feature-grid.js +47 -8
  29. package/dist/navbar-floating-pill.cjs +50 -11
  30. package/dist/navbar-floating-pill.d.cts +6 -11
  31. package/dist/navbar-floating-pill.d.ts +6 -11
  32. package/dist/navbar-floating-pill.js +50 -11
  33. package/dist/navbar-fullscreen-menu.cjs +44 -5
  34. package/dist/navbar-fullscreen-menu.d.cts +6 -11
  35. package/dist/navbar-fullscreen-menu.d.ts +6 -11
  36. package/dist/navbar-fullscreen-menu.js +44 -5
  37. package/dist/navbar-icon-links.cjs +46 -8
  38. package/dist/navbar-icon-links.d.cts +9 -11
  39. package/dist/navbar-icon-links.d.ts +9 -11
  40. package/dist/navbar-icon-links.js +46 -8
  41. package/dist/navbar-image-preview.cjs +56 -12
  42. package/dist/navbar-image-preview.d.cts +11 -17
  43. package/dist/navbar-image-preview.d.ts +11 -17
  44. package/dist/navbar-image-preview.js +56 -12
  45. package/dist/navbar-mega-menu.cjs +69 -20
  46. package/dist/navbar-mega-menu.d.cts +8 -74
  47. package/dist/navbar-mega-menu.d.ts +8 -74
  48. package/dist/navbar-mega-menu.js +69 -20
  49. package/dist/navbar-multi-column-groups.cjs +47 -11
  50. package/dist/navbar-multi-column-groups.d.cts +6 -11
  51. package/dist/navbar-multi-column-groups.d.ts +6 -11
  52. package/dist/navbar-multi-column-groups.js +47 -11
  53. package/dist/navbar-platform-resources.cjs +199 -164
  54. package/dist/navbar-platform-resources.d.cts +7 -37
  55. package/dist/navbar-platform-resources.d.ts +7 -37
  56. package/dist/navbar-platform-resources.js +199 -164
  57. package/dist/navbar-search-focused.cjs +45 -7
  58. package/dist/navbar-search-focused.d.cts +6 -11
  59. package/dist/navbar-search-focused.d.ts +6 -11
  60. package/dist/navbar-search-focused.js +45 -7
  61. package/dist/navbar-sidebar-mobile.cjs +47 -8
  62. package/dist/navbar-sidebar-mobile.d.cts +6 -11
  63. package/dist/navbar-sidebar-mobile.d.ts +6 -11
  64. package/dist/navbar-sidebar-mobile.js +47 -8
  65. package/dist/navbar-simple-links.cjs +45 -7
  66. package/dist/navbar-simple-links.d.cts +6 -11
  67. package/dist/navbar-simple-links.d.ts +6 -11
  68. package/dist/navbar-simple-links.js +45 -7
  69. package/dist/navbar-split-cta.cjs +47 -8
  70. package/dist/navbar-split-cta.d.cts +6 -11
  71. package/dist/navbar-split-cta.d.ts +6 -11
  72. package/dist/navbar-split-cta.js +47 -8
  73. package/dist/navbar-sticky-compact.cjs +49 -10
  74. package/dist/navbar-sticky-compact.d.cts +6 -11
  75. package/dist/navbar-sticky-compact.d.ts +6 -11
  76. package/dist/navbar-sticky-compact.js +49 -10
  77. package/dist/navbar-tabbed-sections.cjs +47 -8
  78. package/dist/navbar-tabbed-sections.d.cts +6 -11
  79. package/dist/navbar-tabbed-sections.d.ts +6 -11
  80. package/dist/navbar-tabbed-sections.js +47 -8
  81. package/dist/navbar-transparent-overlay.cjs +47 -9
  82. package/dist/navbar-transparent-overlay.d.cts +6 -11
  83. package/dist/navbar-transparent-overlay.d.ts +6 -11
  84. package/dist/navbar-transparent-overlay.js +47 -9
  85. package/dist/registry.cjs +522 -328
  86. package/dist/registry.js +522 -328
  87. package/dist/types-COVDidbn.d.cts +119 -0
  88. package/dist/types-COVDidbn.d.ts +119 -0
  89. package/package.json +2 -2
@@ -2,36 +2,12 @@ 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, a as IMenuLinkGroup, 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
- * SHARED BASE TYPE INTERFACES
12
- * These types provide a consistent interface across navbar components
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
11
  /**
36
12
  * SPECIALIZED TYPE INTERFACES FOR ENTERPRISE MEGA MENU
37
13
  * These extend the base types for specific layout requirements
@@ -228,16 +204,6 @@ interface IMenuLink {
228
204
  resourceItems?: IResourceItem[];
229
205
  topicGroups?: ITopicGroup[];
230
206
  }
231
- /**
232
- * Logo configuration interface
233
- */
234
- interface LogoConfig {
235
- url?: string;
236
- src?: string;
237
- alt?: string;
238
- title?: React.ReactNode;
239
- className?: string;
240
- }
241
207
  /**
242
208
  * Props for the NavbarEnterpriseMega component
243
209
  */
@@ -302,6 +268,10 @@ interface NavbarEnterpriseMegaProps {
302
268
  * Pattern overlay opacity (0-1)
303
269
  */
304
270
  patternOpacity?: number;
271
+ /**
272
+ * Layout variant for the navbar
273
+ */
274
+ layoutVariant?: NavbarLayoutVariant;
305
275
  /**
306
276
  * OptixFlow image optimization configuration
307
277
  */
@@ -317,6 +287,6 @@ interface NavbarEnterpriseMegaProps {
317
287
  * cards. Each menu spans full width with rich content layouts. Mobile view uses a full-screen sheet
318
288
  * with accordion navigation. Ideal for large enterprise SaaS platforms and B2B software companies.
319
289
  */
320
- declare const NavbarEnterpriseMega: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, menuLinks, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEnterpriseMegaProps) => react_jsx_runtime.JSX.Element;
290
+ declare const NavbarEnterpriseMega: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, menuLinks, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEnterpriseMegaProps) => react_jsx_runtime.JSX.Element;
321
291
 
322
- export { type IFeatureCategory, type IFeatureItem, type IFeaturedHeroCard, type ILinkItem, type ILocationItem, type IMenuLink, type IMenuLinkGroup, type IPartnerCard, type IProductCategory, type IProductItem, type IRegionItem, type IResourceItem, type ISolutionCard, type ISubpageItem, type ITechnologyItem, type ITopicGroup, type ITopicItem, type LogoConfig, type MegaMenuLayout, NavbarEnterpriseMega, type NavbarEnterpriseMegaProps };
292
+ export { type IFeatureCategory, type IFeatureItem, type IFeaturedHeroCard, ILinkItem, type ILocationItem, type IMenuLink, IMenuLinkGroup, type IPartnerCard, type IProductCategory, type IProductItem, type IRegionItem, type IResourceItem, type ISolutionCard, type ISubpageItem, type ITechnologyItem, type ITopicGroup, type ITopicItem, LogoConfig, type MegaMenuLayout, NavbarEnterpriseMega, type NavbarEnterpriseMegaProps };
@@ -2,36 +2,12 @@ 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, a as IMenuLinkGroup, 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
- * SHARED BASE TYPE INTERFACES
12
- * These types provide a consistent interface across navbar components
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
11
  /**
36
12
  * SPECIALIZED TYPE INTERFACES FOR ENTERPRISE MEGA MENU
37
13
  * These extend the base types for specific layout requirements
@@ -228,16 +204,6 @@ interface IMenuLink {
228
204
  resourceItems?: IResourceItem[];
229
205
  topicGroups?: ITopicGroup[];
230
206
  }
231
- /**
232
- * Logo configuration interface
233
- */
234
- interface LogoConfig {
235
- url?: string;
236
- src?: string;
237
- alt?: string;
238
- title?: React.ReactNode;
239
- className?: string;
240
- }
241
207
  /**
242
208
  * Props for the NavbarEnterpriseMega component
243
209
  */
@@ -302,6 +268,10 @@ interface NavbarEnterpriseMegaProps {
302
268
  * Pattern overlay opacity (0-1)
303
269
  */
304
270
  patternOpacity?: number;
271
+ /**
272
+ * Layout variant for the navbar
273
+ */
274
+ layoutVariant?: NavbarLayoutVariant;
305
275
  /**
306
276
  * OptixFlow image optimization configuration
307
277
  */
@@ -317,6 +287,6 @@ interface NavbarEnterpriseMegaProps {
317
287
  * cards. Each menu spans full width with rich content layouts. Mobile view uses a full-screen sheet
318
288
  * with accordion navigation. Ideal for large enterprise SaaS platforms and B2B software companies.
319
289
  */
320
- declare const NavbarEnterpriseMega: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, menuLinks, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEnterpriseMegaProps) => react_jsx_runtime.JSX.Element;
290
+ declare const NavbarEnterpriseMega: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, menuLinks, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEnterpriseMegaProps) => react_jsx_runtime.JSX.Element;
321
291
 
322
- export { type IFeatureCategory, type IFeatureItem, type IFeaturedHeroCard, type ILinkItem, type ILocationItem, type IMenuLink, type IMenuLinkGroup, type IPartnerCard, type IProductCategory, type IProductItem, type IRegionItem, type IResourceItem, type ISolutionCard, type ISubpageItem, type ITechnologyItem, type ITopicGroup, type ITopicItem, type LogoConfig, type MegaMenuLayout, NavbarEnterpriseMega, type NavbarEnterpriseMegaProps };
292
+ export { type IFeatureCategory, type IFeatureItem, type IFeaturedHeroCard, ILinkItem, type ILocationItem, type IMenuLink, IMenuLinkGroup, type IPartnerCard, type IProductCategory, type IProductItem, type IRegionItem, type IResourceItem, type ISolutionCard, type ISubpageItem, type ITechnologyItem, type ITopicGroup, type ITopicItem, LogoConfig, type MegaMenuLayout, NavbarEnterpriseMega, type NavbarEnterpriseMegaProps };
@@ -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-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
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-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
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
- "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",
1089
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1089
1090
  className
1090
1091
  ),
1091
1092
  ...props
@@ -1165,6 +1166,36 @@ function SheetTitle({
1165
1166
  // lib/mediaPlaceholders.ts
1166
1167
  var logoPlaceholders = {
1167
1168
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1169
+
1170
+ // components/blocks/navbars/layout-variant-utils.ts
1171
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1172
+ const isFloatingBar = layoutVariant === "floatingBar";
1173
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1174
+ return {
1175
+ // Section wrapper classes
1176
+ sectionClasses: cn(
1177
+ "inset-x-0 z-20",
1178
+ isFloatingBar ? "sticky top-4" : "top-0",
1179
+ customClasses?.className
1180
+ ),
1181
+ // Outer container wrapper (only for floating bar)
1182
+ containerWrapperClasses: cn(
1183
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1184
+ ),
1185
+ // Inner container classes
1186
+ innerContainerClasses: cn(
1187
+ !isFloatingBar && !isFullWidthLinks && "container",
1188
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1189
+ customClasses?.containerClassName
1190
+ ),
1191
+ // Navigation wrapper classes (for border and shadow)
1192
+ navWrapperClasses: cn(
1193
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1194
+ ),
1195
+ // Spacing adjustment for Section component
1196
+ spacingOverride: isFloatingBar ? "none" : void 0
1197
+ };
1198
+ }
1168
1199
  var MOBILE_BREAKPOINT = 1024;
1169
1200
  var NavbarEnterpriseMega = ({
1170
1201
  className,
@@ -1181,6 +1212,7 @@ var NavbarEnterpriseMega = ({
1181
1212
  menuLinks,
1182
1213
  actions,
1183
1214
  actionsSlot,
1215
+ layoutVariant = "fullScreenContainerizedLinks",
1184
1216
  background = "white",
1185
1217
  spacing = "none",
1186
1218
  pattern,
@@ -1249,23 +1281,31 @@ var NavbarEnterpriseMega = ({
1249
1281
  ] }) }, index);
1250
1282
  });
1251
1283
  };
1284
+ const {
1285
+ sectionClasses,
1286
+ containerWrapperClasses,
1287
+ innerContainerClasses,
1288
+ navWrapperClasses,
1289
+ spacingOverride
1290
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1252
1291
  return /* @__PURE__ */ jsxs(Fragment, { children: [
1253
1292
  /* @__PURE__ */ jsx(
1254
1293
  Section,
1255
1294
  {
1256
1295
  background,
1257
- spacing,
1296
+ spacing: spacingOverride ?? spacing,
1258
1297
  className: cn(
1259
- "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center border-b",
1260
- className
1298
+ "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
1299
+ sectionClasses
1261
1300
  ),
1262
1301
  pattern,
1263
1302
  patternOpacity,
1264
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs(
1265
- "div",
1303
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1304
+ "nav",
1266
1305
  {
1267
1306
  className: cn(
1268
1307
  "flex h-16 items-center justify-between gap-8",
1308
+ navWrapperClasses,
1269
1309
  navClassName
1270
1310
  ),
1271
1311
  children: [
@@ -1316,7 +1356,7 @@ var NavbarEnterpriseMega = ({
1316
1356
  ] })
1317
1357
  ]
1318
1358
  }
1319
- ) })
1359
+ ) }) })
1320
1360
  }
1321
1361
  ),
1322
1362
  /* @__PURE__ */ jsx(
@@ -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-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
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-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
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
- "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
+ "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: cn(className),
1313
+ spacing: spacingOverride ?? spacing,
1314
+ className: sectionClasses,
1276
1315
  pattern,
1277
1316
  patternOpacity,
1278
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: cn("flex items-center justify-between", navClassName), children: [
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,6 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
4
  import { SectionBackground, SectionSpacing } from './types.cjs';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.cjs';
@@ -12,16 +13,6 @@ interface FeatureItem {
12
13
  description: string;
13
14
  href: string;
14
15
  }
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
16
  /**
26
17
  * Props for the NavbarFeatureGrid component
27
18
  */
@@ -86,6 +77,10 @@ interface NavbarFeatureGridProps {
86
77
  * Pattern overlay opacity (0-1)
87
78
  */
88
79
  patternOpacity?: number;
80
+ /**
81
+ * Layout variant for the navbar
82
+ */
83
+ layoutVariant?: NavbarLayoutVariant;
89
84
  /**
90
85
  * OptixFlow image optimization configuration
91
86
  */
@@ -99,6 +94,6 @@ interface NavbarFeatureGridProps {
99
94
  * view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
100
95
  * with multiple feature categories.
101
96
  */
102
- 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;
103
98
 
104
99
  export { NavbarFeatureGrid, type NavbarFeatureGridProps };
@@ -2,6 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
4
  import { SectionBackground, SectionSpacing } from './types.js';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.js';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.js';
@@ -12,16 +13,6 @@ interface FeatureItem {
12
13
  description: string;
13
14
  href: string;
14
15
  }
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
16
  /**
26
17
  * Props for the NavbarFeatureGrid component
27
18
  */
@@ -86,6 +77,10 @@ interface NavbarFeatureGridProps {
86
77
  * Pattern overlay opacity (0-1)
87
78
  */
88
79
  patternOpacity?: number;
80
+ /**
81
+ * Layout variant for the navbar
82
+ */
83
+ layoutVariant?: NavbarLayoutVariant;
89
84
  /**
90
85
  * OptixFlow image optimization configuration
91
86
  */
@@ -99,6 +94,6 @@ interface NavbarFeatureGridProps {
99
94
  * view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
100
95
  * with multiple feature categories.
101
96
  */
102
- 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;
103
98
 
104
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-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
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-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
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
- "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",
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: cn(className),
1289
+ spacing: spacingOverride ?? spacing,
1290
+ className: sectionClasses,
1252
1291
  pattern,
1253
1292
  patternOpacity,
1254
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("nav", { className: cn("flex items-center justify-between", navClassName), children: [
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
  };