@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,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';
@@ -13,16 +14,6 @@ interface NavItem {
13
14
  icon?: React.ReactNode;
14
15
  iconName?: string;
15
16
  }
16
- /**
17
- * Logo configuration interface
18
- */
19
- interface LogoConfig {
20
- url?: string;
21
- src?: string;
22
- alt?: string;
23
- title?: React.ReactNode;
24
- className?: string;
25
- }
26
17
  /**
27
18
  * Props for the NavbarSearchFocused component
28
19
  */
@@ -115,6 +106,10 @@ interface NavbarSearchFocusedProps {
115
106
  * OptixFlow image optimization configuration
116
107
  */
117
108
  optixFlowConfig?: OptixFlowConfig;
109
+ /**
110
+ * Layout variant for the navbar
111
+ */
112
+ layoutVariant?: NavbarLayoutVariant;
118
113
  }
119
114
  /**
120
115
  * NavbarSearchFocused - A navigation bar with a prominent search input.
@@ -125,6 +120,6 @@ interface NavbarSearchFocusedProps {
125
120
  * below the logo and hamburger menu, with navigation in a slide-out sheet. Ideal for
126
121
  * e-commerce sites, marketplaces, documentation sites, and content-heavy platforms.
127
122
  */
128
- declare const NavbarSearchFocused: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, searchPlaceholder, onSearch, searchSlot, authActions, authActionsSlot, mobileMenuActions, mobileMenuActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSearchFocusedProps) => react_jsx_runtime.JSX.Element;
123
+ declare const NavbarSearchFocused: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navigationSlot, searchPlaceholder, onSearch, searchSlot, authActions, authActionsSlot, mobileMenuActions, mobileMenuActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSearchFocusedProps) => react_jsx_runtime.JSX.Element;
129
124
 
130
125
  export { NavbarSearchFocused, type NavbarSearchFocusedProps };
@@ -931,7 +931,7 @@ function NavigationMenuList({
931
931
  {
932
932
  "data-slot": "navigation-menu-list",
933
933
  className: cn(
934
- "group flex flex-1 list-none items-center justify-center gap-6",
934
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
935
935
  className
936
936
  ),
937
937
  ...props
@@ -969,7 +969,7 @@ function NavigationMenuViewport({
969
969
  {
970
970
  "data-slot": "navigation-menu-viewport",
971
971
  className: cn(
972
- "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)]",
972
+ "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)",
973
973
  className
974
974
  ),
975
975
  ...props
@@ -987,7 +987,7 @@ function NavigationMenuLink({
987
987
  {
988
988
  "data-slot": "navigation-menu-link",
989
989
  className: cn(
990
- "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",
990
+ "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",
991
991
  className
992
992
  ),
993
993
  ...props
@@ -1072,6 +1072,36 @@ function SheetTitle({
1072
1072
  // lib/mediaPlaceholders.ts
1073
1073
  var logoPlaceholders = {
1074
1074
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1075
+
1076
+ // components/blocks/navbars/layout-variant-utils.ts
1077
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1078
+ const isFloatingBar = layoutVariant === "floatingBar";
1079
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1080
+ return {
1081
+ // Section wrapper classes
1082
+ sectionClasses: cn(
1083
+ "inset-x-0 z-20",
1084
+ isFloatingBar ? "sticky top-4" : "top-0",
1085
+ customClasses?.className
1086
+ ),
1087
+ // Outer container wrapper (only for floating bar)
1088
+ containerWrapperClasses: cn(
1089
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1090
+ ),
1091
+ // Inner container classes
1092
+ innerContainerClasses: cn(
1093
+ !isFloatingBar && !isFullWidthLinks && "container",
1094
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1095
+ customClasses?.containerClassName
1096
+ ),
1097
+ // Navigation wrapper classes (for border and shadow)
1098
+ navWrapperClasses: cn(
1099
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1100
+ ),
1101
+ // Spacing adjustment for Section component
1102
+ spacingOverride: isFloatingBar ? "none" : void 0
1103
+ };
1104
+ }
1075
1105
  var NavbarSearchFocused = ({
1076
1106
  className,
1077
1107
  containerClassName,
@@ -1093,6 +1123,7 @@ var NavbarSearchFocused = ({
1093
1123
  authActionsSlot,
1094
1124
  mobileMenuActions,
1095
1125
  mobileMenuActionsSlot,
1126
+ layoutVariant = "fullScreenContainerizedLinks",
1096
1127
  background = "white",
1097
1128
  spacing = "none",
1098
1129
  pattern,
@@ -1188,15 +1219,22 @@ var NavbarSearchFocused = ({
1188
1219
  );
1189
1220
  }) });
1190
1221
  };
1222
+ const {
1223
+ sectionClasses,
1224
+ containerWrapperClasses,
1225
+ innerContainerClasses,
1226
+ navWrapperClasses,
1227
+ spacingOverride
1228
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1191
1229
  return /* @__PURE__ */ jsx(
1192
1230
  Section,
1193
1231
  {
1194
1232
  background,
1195
- spacing,
1196
- className: cn("border-b", className),
1233
+ spacing: spacingOverride ?? spacing,
1234
+ className: sectionClasses,
1197
1235
  pattern,
1198
1236
  patternOpacity,
1199
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs(
1237
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: cn(innerContainerClasses, navWrapperClasses), children: /* @__PURE__ */ jsxs(
1200
1238
  "nav",
1201
1239
  {
1202
1240
  className: cn("flex items-center gap-4 py-3 lg:gap-8", navClassName),
@@ -1264,7 +1302,7 @@ var NavbarSearchFocused = ({
1264
1302
  ] })
1265
1303
  ]
1266
1304
  }
1267
- ) })
1305
+ ) }) })
1268
1306
  }
1269
1307
  );
1270
1308
  };
@@ -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
@@ -1194,6 +1195,36 @@ function SheetTitle({
1194
1195
  // lib/mediaPlaceholders.ts
1195
1196
  var logoPlaceholders = {
1196
1197
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1198
+
1199
+ // components/blocks/navbars/layout-variant-utils.ts
1200
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1201
+ const isFloatingBar = layoutVariant === "floatingBar";
1202
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1203
+ return {
1204
+ // Section wrapper classes
1205
+ sectionClasses: cn(
1206
+ "inset-x-0 z-20",
1207
+ isFloatingBar ? "sticky top-4" : "top-0",
1208
+ customClasses?.className
1209
+ ),
1210
+ // Outer container wrapper (only for floating bar)
1211
+ containerWrapperClasses: cn(
1212
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1213
+ ),
1214
+ // Inner container classes
1215
+ innerContainerClasses: cn(
1216
+ !isFloatingBar && !isFullWidthLinks && "container",
1217
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1218
+ customClasses?.containerClassName
1219
+ ),
1220
+ // Navigation wrapper classes (for border and shadow)
1221
+ navWrapperClasses: cn(
1222
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1223
+ ),
1224
+ // Spacing adjustment for Section component
1225
+ spacingOverride: isFloatingBar ? "none" : void 0
1226
+ };
1227
+ }
1197
1228
  var NavbarSidebarMobile = ({
1198
1229
  logo = {
1199
1230
  url: "/",
@@ -1212,6 +1243,7 @@ var NavbarSidebarMobile = ({
1212
1243
  navClassName,
1213
1244
  navigationMenuClassName,
1214
1245
  actionsClassName,
1246
+ layoutVariant = "fullScreenContainerizedLinks",
1215
1247
  background = "white",
1216
1248
  spacing = "none",
1217
1249
  pattern,
@@ -1280,15 +1312,22 @@ var NavbarSidebarMobile = ({
1280
1312
  if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
1281
1313
  return mobileExtraLinks;
1282
1314
  };
1315
+ const {
1316
+ sectionClasses,
1317
+ containerWrapperClasses,
1318
+ innerContainerClasses,
1319
+ navWrapperClasses,
1320
+ spacingOverride
1321
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1283
1322
  return /* @__PURE__ */ jsxRuntime.jsx(
1284
1323
  Section,
1285
1324
  {
1286
1325
  background,
1287
- spacing,
1288
- className: cn("border-b", className),
1326
+ spacing: spacingOverride ?? spacing,
1327
+ className: sectionClasses,
1289
1328
  pattern,
1290
1329
  patternOpacity,
1291
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
1330
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(innerContainerClasses, navWrapperClasses), children: /* @__PURE__ */ jsxRuntime.jsxs(
1292
1331
  "nav",
1293
1332
  {
1294
1333
  className: cn("flex items-center justify-between py-4", navClassName),
@@ -1413,7 +1452,7 @@ var NavbarSidebarMobile = ({
1413
1452
  ] })
1414
1453
  ]
1415
1454
  }
1416
- ) })
1455
+ ) }) })
1417
1456
  }
1418
1457
  );
1419
1458
  };
@@ -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';
@@ -18,16 +19,6 @@ interface MenuItem {
18
19
  url?: string;
19
20
  items?: SubMenuItem[];
20
21
  }
21
- /**
22
- * Logo configuration interface
23
- */
24
- interface LogoConfig {
25
- url?: string;
26
- src?: string;
27
- alt?: string;
28
- title?: React.ReactNode;
29
- className?: string;
30
- }
31
22
  /**
32
23
  * Props for the NavbarSidebarMobile component
33
24
  */
@@ -111,6 +102,10 @@ interface NavbarSidebarMobileProps {
111
102
  * OptixFlow image optimization configuration
112
103
  */
113
104
  optixFlowConfig?: OptixFlowConfig;
105
+ /**
106
+ * Layout variant for the navbar
107
+ */
108
+ layoutVariant?: NavbarLayoutVariant;
114
109
  }
115
110
  /**
116
111
  * NavbarSidebarMobile - A navigation bar with a slide-out sidebar for mobile devices.
@@ -121,6 +116,6 @@ interface NavbarSidebarMobileProps {
121
116
  * header with logo and close button. Ideal for applications that need a more app-like
122
117
  * mobile navigation experience.
123
118
  */
124
- declare const NavbarSidebarMobile: ({ logo, logoSlot, logoClassName, menu, menuSlot, mobileExtraLinks, mobileExtraLinksSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSidebarMobileProps) => react_jsx_runtime.JSX.Element;
119
+ declare const NavbarSidebarMobile: ({ logo, logoSlot, logoClassName, menu, menuSlot, mobileExtraLinks, mobileExtraLinksSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSidebarMobileProps) => react_jsx_runtime.JSX.Element;
125
120
 
126
121
  export { NavbarSidebarMobile, type NavbarSidebarMobileProps };
@@ -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';
@@ -18,16 +19,6 @@ interface MenuItem {
18
19
  url?: string;
19
20
  items?: SubMenuItem[];
20
21
  }
21
- /**
22
- * Logo configuration interface
23
- */
24
- interface LogoConfig {
25
- url?: string;
26
- src?: string;
27
- alt?: string;
28
- title?: React.ReactNode;
29
- className?: string;
30
- }
31
22
  /**
32
23
  * Props for the NavbarSidebarMobile component
33
24
  */
@@ -111,6 +102,10 @@ interface NavbarSidebarMobileProps {
111
102
  * OptixFlow image optimization configuration
112
103
  */
113
104
  optixFlowConfig?: OptixFlowConfig;
105
+ /**
106
+ * Layout variant for the navbar
107
+ */
108
+ layoutVariant?: NavbarLayoutVariant;
114
109
  }
115
110
  /**
116
111
  * NavbarSidebarMobile - A navigation bar with a slide-out sidebar for mobile devices.
@@ -121,6 +116,6 @@ interface NavbarSidebarMobileProps {
121
116
  * header with logo and close button. Ideal for applications that need a more app-like
122
117
  * mobile navigation experience.
123
118
  */
124
- declare const NavbarSidebarMobile: ({ logo, logoSlot, logoClassName, menu, menuSlot, mobileExtraLinks, mobileExtraLinksSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSidebarMobileProps) => react_jsx_runtime.JSX.Element;
119
+ declare const NavbarSidebarMobile: ({ logo, logoSlot, logoClassName, menu, menuSlot, mobileExtraLinks, mobileExtraLinksSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSidebarMobileProps) => react_jsx_runtime.JSX.Element;
125
120
 
126
121
  export { NavbarSidebarMobile, type NavbarSidebarMobileProps };
@@ -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
@@ -1170,6 +1171,36 @@ function SheetTitle({
1170
1171
  // lib/mediaPlaceholders.ts
1171
1172
  var logoPlaceholders = {
1172
1173
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1174
+
1175
+ // components/blocks/navbars/layout-variant-utils.ts
1176
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1177
+ const isFloatingBar = layoutVariant === "floatingBar";
1178
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1179
+ return {
1180
+ // Section wrapper classes
1181
+ sectionClasses: cn(
1182
+ "inset-x-0 z-20",
1183
+ isFloatingBar ? "sticky top-4" : "top-0",
1184
+ customClasses?.className
1185
+ ),
1186
+ // Outer container wrapper (only for floating bar)
1187
+ containerWrapperClasses: cn(
1188
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1189
+ ),
1190
+ // Inner container classes
1191
+ innerContainerClasses: cn(
1192
+ !isFloatingBar && !isFullWidthLinks && "container",
1193
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1194
+ customClasses?.containerClassName
1195
+ ),
1196
+ // Navigation wrapper classes (for border and shadow)
1197
+ navWrapperClasses: cn(
1198
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1199
+ ),
1200
+ // Spacing adjustment for Section component
1201
+ spacingOverride: isFloatingBar ? "none" : void 0
1202
+ };
1203
+ }
1173
1204
  var NavbarSidebarMobile = ({
1174
1205
  logo = {
1175
1206
  url: "/",
@@ -1188,6 +1219,7 @@ var NavbarSidebarMobile = ({
1188
1219
  navClassName,
1189
1220
  navigationMenuClassName,
1190
1221
  actionsClassName,
1222
+ layoutVariant = "fullScreenContainerizedLinks",
1191
1223
  background = "white",
1192
1224
  spacing = "none",
1193
1225
  pattern,
@@ -1256,15 +1288,22 @@ var NavbarSidebarMobile = ({
1256
1288
  if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
1257
1289
  return mobileExtraLinks;
1258
1290
  };
1291
+ const {
1292
+ sectionClasses,
1293
+ containerWrapperClasses,
1294
+ innerContainerClasses,
1295
+ navWrapperClasses,
1296
+ spacingOverride
1297
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1259
1298
  return /* @__PURE__ */ jsx(
1260
1299
  Section,
1261
1300
  {
1262
1301
  background,
1263
- spacing,
1264
- className: cn("border-b", className),
1302
+ spacing: spacingOverride ?? spacing,
1303
+ className: sectionClasses,
1265
1304
  pattern,
1266
1305
  patternOpacity,
1267
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs(
1306
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: cn(innerContainerClasses, navWrapperClasses), children: /* @__PURE__ */ jsxs(
1268
1307
  "nav",
1269
1308
  {
1270
1309
  className: cn("flex items-center justify-between py-4", navClassName),
@@ -1389,7 +1428,7 @@ var NavbarSidebarMobile = ({
1389
1428
  ] })
1390
1429
  ]
1391
1430
  }
1392
- ) })
1431
+ ) }) })
1393
1432
  }
1394
1433
  );
1395
1434
  };
@@ -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
@@ -992,7 +992,7 @@ function NavigationMenuViewport({
992
992
  {
993
993
  "data-slot": "navigation-menu-viewport",
994
994
  className: cn(
995
- "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)]",
995
+ "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)",
996
996
  className
997
997
  ),
998
998
  ...props
@@ -1010,7 +1010,7 @@ function NavigationMenuLink({
1010
1010
  {
1011
1011
  "data-slot": "navigation-menu-link",
1012
1012
  className: cn(
1013
- "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",
1013
+ "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",
1014
1014
  className
1015
1015
  ),
1016
1016
  ...props
@@ -1051,6 +1051,36 @@ function PopoverContent({
1051
1051
  // lib/mediaPlaceholders.ts
1052
1052
  var logoPlaceholders = {
1053
1053
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1054
+
1055
+ // components/blocks/navbars/layout-variant-utils.ts
1056
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1057
+ const isFloatingBar = layoutVariant === "floatingBar";
1058
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1059
+ return {
1060
+ // Section wrapper classes
1061
+ sectionClasses: cn(
1062
+ "inset-x-0 z-20",
1063
+ isFloatingBar ? "sticky top-4" : "top-0",
1064
+ customClasses?.className
1065
+ ),
1066
+ // Outer container wrapper (only for floating bar)
1067
+ containerWrapperClasses: cn(
1068
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1069
+ ),
1070
+ // Inner container classes
1071
+ innerContainerClasses: cn(
1072
+ !isFloatingBar && !isFullWidthLinks && "container",
1073
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1074
+ customClasses?.containerClassName
1075
+ ),
1076
+ // Navigation wrapper classes (for border and shadow)
1077
+ navWrapperClasses: cn(
1078
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1079
+ ),
1080
+ // Spacing adjustment for Section component
1081
+ spacingOverride: isFloatingBar ? "none" : void 0
1082
+ };
1083
+ }
1054
1084
  var AnimatedHamburger = ({ isOpen }) => {
1055
1085
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "group relative size-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute flex size-full items-center justify-center", children: [
1056
1086
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1149,6 +1179,7 @@ var NavbarSimpleLinks = ({
1149
1179
  defaultActiveItem,
1150
1180
  actions,
1151
1181
  actionsSlot,
1182
+ layoutVariant = "fullScreenContainerizedLinks",
1152
1183
  background = "white",
1153
1184
  spacing = "sm",
1154
1185
  pattern,
@@ -1240,15 +1271,22 @@ var NavbarSimpleLinks = ({
1240
1271
  );
1241
1272
  });
1242
1273
  };
1274
+ const {
1275
+ sectionClasses,
1276
+ containerWrapperClasses,
1277
+ innerContainerClasses,
1278
+ navWrapperClasses,
1279
+ spacingOverride
1280
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1243
1281
  return /* @__PURE__ */ jsxRuntime.jsx(
1244
1282
  Section,
1245
1283
  {
1246
1284
  background,
1247
- spacing,
1248
- className: cn(className),
1285
+ spacing: spacingOverride ?? spacing,
1286
+ className: sectionClasses,
1249
1287
  pattern,
1250
1288
  patternOpacity,
1251
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("nav", { className: cn("flex items-center justify-between", navClassName), children: [
1289
+ 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: [
1252
1290
  renderLogo(),
1253
1291
  /* @__PURE__ */ jsxRuntime.jsx(
1254
1292
  NavigationMenu,
@@ -1297,7 +1335,7 @@ var NavbarSimpleLinks = ({
1297
1335
  children: renderActions()
1298
1336
  }
1299
1337
  )
1300
- ] }) })
1338
+ ] }) }) })
1301
1339
  }
1302
1340
  );
1303
1341
  };
@@ -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';
@@ -14,16 +15,6 @@ interface NavItem {
14
15
  name: string;
15
16
  link: string;
16
17
  }
17
- /**
18
- * Logo configuration interface
19
- */
20
- interface LogoConfig {
21
- url?: string;
22
- src?: string;
23
- alt?: string;
24
- title?: React.ReactNode;
25
- className?: string;
26
- }
27
18
  /**
28
19
  * Props for the NavbarSimpleLinks component
29
20
  */
@@ -100,6 +91,10 @@ interface NavbarSimpleLinksProps {
100
91
  * Pattern overlay opacity (0-1)
101
92
  */
102
93
  patternOpacity?: number;
94
+ /**
95
+ * Layout variant for the navbar
96
+ */
97
+ layoutVariant?: NavbarLayoutVariant;
103
98
  /**
104
99
  * OptixFlow image optimization configuration
105
100
  */
@@ -114,6 +109,6 @@ interface NavbarSimpleLinksProps {
114
109
  * with a left border indicator for the active item. Perfect for simple marketing
115
110
  * sites and portfolios.
116
111
  */
117
- declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
112
+ declare const NavbarSimpleLinks: ({ className, containerClassName, navClassName, navigationMenuClassName, menuListClassName, actionsClassName, logo, logoSlot, logoClassName, navItems, navItemsSlot, defaultActiveItem, actions, actionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarSimpleLinksProps) => react_jsx_runtime.JSX.Element;
118
113
 
119
114
  export { NavbarSimpleLinks, type NavbarSimpleLinksProps };