@opensite/ui 0.4.5 → 0.4.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (89) hide show
  1. package/dist/navbar-animated-preview.cjs +87 -53
  2. package/dist/navbar-animated-preview.d.cts +6 -2
  3. package/dist/navbar-animated-preview.d.ts +6 -2
  4. package/dist/navbar-animated-preview.js +87 -53
  5. package/dist/navbar-centered-menu.cjs +89 -59
  6. package/dist/navbar-centered-menu.d.cts +6 -2
  7. package/dist/navbar-centered-menu.d.ts +6 -2
  8. package/dist/navbar-centered-menu.js +89 -59
  9. package/dist/navbar-dark-icons.cjs +50 -10
  10. package/dist/navbar-dark-icons.d.cts +6 -2
  11. package/dist/navbar-dark-icons.d.ts +6 -2
  12. package/dist/navbar-dark-icons.js +50 -10
  13. package/dist/navbar-dropdown-menu.cjs +89 -59
  14. package/dist/navbar-dropdown-menu.d.cts +6 -2
  15. package/dist/navbar-dropdown-menu.d.ts +6 -2
  16. package/dist/navbar-dropdown-menu.js +89 -59
  17. package/dist/navbar-education-platform.cjs +48 -10
  18. package/dist/navbar-education-platform.d.cts +6 -2
  19. package/dist/navbar-education-platform.d.ts +6 -2
  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 +6 -2
  23. package/dist/navbar-enterprise-mega.d.ts +6 -2
  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 -2
  27. package/dist/navbar-feature-grid.d.ts +6 -2
  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 -2
  31. package/dist/navbar-floating-pill.d.ts +6 -2
  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 -2
  35. package/dist/navbar-fullscreen-menu.d.ts +6 -2
  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 +6 -2
  39. package/dist/navbar-icon-links.d.ts +6 -2
  40. package/dist/navbar-icon-links.js +46 -8
  41. package/dist/navbar-image-preview.cjs +47 -8
  42. package/dist/navbar-image-preview.d.cts +6 -2
  43. package/dist/navbar-image-preview.d.ts +6 -2
  44. package/dist/navbar-image-preview.js +47 -8
  45. package/dist/navbar-mega-menu.cjs +56 -12
  46. package/dist/navbar-mega-menu.d.cts +7 -3
  47. package/dist/navbar-mega-menu.d.ts +7 -3
  48. package/dist/navbar-mega-menu.js +56 -12
  49. package/dist/navbar-multi-column-groups.cjs +47 -11
  50. package/dist/navbar-multi-column-groups.d.cts +6 -2
  51. package/dist/navbar-multi-column-groups.d.ts +6 -2
  52. package/dist/navbar-multi-column-groups.js +47 -11
  53. package/dist/navbar-platform-resources.cjs +184 -154
  54. package/dist/navbar-platform-resources.d.cts +6 -2
  55. package/dist/navbar-platform-resources.d.ts +6 -2
  56. package/dist/navbar-platform-resources.js +184 -154
  57. package/dist/navbar-search-focused.cjs +45 -7
  58. package/dist/navbar-search-focused.d.cts +6 -2
  59. package/dist/navbar-search-focused.d.ts +6 -2
  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 -2
  63. package/dist/navbar-sidebar-mobile.d.ts +6 -2
  64. package/dist/navbar-sidebar-mobile.js +47 -8
  65. package/dist/navbar-simple-links.cjs +88 -59
  66. package/dist/navbar-simple-links.d.cts +6 -2
  67. package/dist/navbar-simple-links.d.ts +6 -2
  68. package/dist/navbar-simple-links.js +88 -59
  69. package/dist/navbar-split-cta.cjs +47 -8
  70. package/dist/navbar-split-cta.d.cts +6 -2
  71. package/dist/navbar-split-cta.d.ts +6 -2
  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 -2
  75. package/dist/navbar-sticky-compact.d.ts +6 -2
  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 -2
  79. package/dist/navbar-tabbed-sections.d.ts +6 -2
  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 -2
  83. package/dist/navbar-transparent-overlay.d.ts +6 -2
  84. package/dist/navbar-transparent-overlay.js +47 -9
  85. package/dist/registry.cjs +625 -463
  86. package/dist/registry.js +625 -463
  87. package/dist/{types-D2b35ylu.d.cts → types-COVDidbn.d.cts} +22 -1
  88. package/dist/{types-D2b35ylu.d.ts → types-COVDidbn.d.ts} +22 -1
  89. package/package.json +2 -2
@@ -1010,7 +1010,7 @@ function NavigationMenuList({
1010
1010
  {
1011
1011
  "data-slot": "navigation-menu-list",
1012
1012
  className: cn(
1013
- "group flex flex-1 list-none items-center justify-center gap-6",
1013
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
1014
1014
  className
1015
1015
  ),
1016
1016
  ...props
@@ -1050,8 +1050,9 @@ function NavigationMenuTrigger({
1050
1050
  /* @__PURE__ */ jsxRuntime.jsx(
1051
1051
  DynamicIcon,
1052
1052
  {
1053
+ size: 18,
1053
1054
  name: "lucide/chevron-down",
1054
- className: "relative top-[1px] ml-1 size-2 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,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
4
  import { SectionBackground, SectionSpacing } from './types.cjs';
5
- import { L as LogoConfig } from './types-D2b35ylu.cjs';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
6
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.cjs';
@@ -77,6 +77,10 @@ interface NavbarFeatureGridProps {
77
77
  * Pattern overlay opacity (0-1)
78
78
  */
79
79
  patternOpacity?: number;
80
+ /**
81
+ * Layout variant for the navbar
82
+ */
83
+ layoutVariant?: NavbarLayoutVariant;
80
84
  /**
81
85
  * OptixFlow image optimization configuration
82
86
  */
@@ -90,6 +94,6 @@ interface NavbarFeatureGridProps {
90
94
  * view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
91
95
  * with multiple feature categories.
92
96
  */
93
- declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
97
+ declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
94
98
 
95
99
  export { NavbarFeatureGrid, type NavbarFeatureGridProps };
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
4
  import { SectionBackground, SectionSpacing } from './types.js';
5
- import { L as LogoConfig } from './types-D2b35ylu.js';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.js';
6
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.js';
@@ -77,6 +77,10 @@ interface NavbarFeatureGridProps {
77
77
  * Pattern overlay opacity (0-1)
78
78
  */
79
79
  patternOpacity?: number;
80
+ /**
81
+ * Layout variant for the navbar
82
+ */
83
+ layoutVariant?: NavbarLayoutVariant;
80
84
  /**
81
85
  * OptixFlow image optimization configuration
82
86
  */
@@ -90,6 +94,6 @@ interface NavbarFeatureGridProps {
90
94
  * view uses a top-sliding sheet with accordion navigation. Ideal for SaaS applications
91
95
  * with multiple feature categories.
92
96
  */
93
- declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
97
+ declare const NavbarFeatureGrid: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, logo, logoSlot, features, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFeatureGridProps) => react_jsx_runtime.JSX.Element;
94
98
 
95
99
  export { NavbarFeatureGrid, type NavbarFeatureGridProps };
@@ -986,7 +986,7 @@ function NavigationMenuList({
986
986
  {
987
987
  "data-slot": "navigation-menu-list",
988
988
  className: cn(
989
- "group flex flex-1 list-none items-center justify-center gap-6",
989
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
990
990
  className
991
991
  ),
992
992
  ...props
@@ -1026,8 +1026,9 @@ function NavigationMenuTrigger({
1026
1026
  /* @__PURE__ */ jsx(
1027
1027
  DynamicIcon,
1028
1028
  {
1029
+ size: 18,
1029
1030
  name: "lucide/chevron-down",
1030
- className: "relative top-[1px] ml-1 size-2 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
  };
@@ -952,7 +952,7 @@ function NavigationMenuList({
952
952
  {
953
953
  "data-slot": "navigation-menu-list",
954
954
  className: cn(
955
- "group flex flex-1 list-none items-center justify-center gap-6",
955
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
956
956
  className
957
957
  ),
958
958
  ...props
@@ -992,8 +992,9 @@ function NavigationMenuTrigger({
992
992
  /* @__PURE__ */ jsxRuntime.jsx(
993
993
  DynamicIcon,
994
994
  {
995
+ size: 18,
995
996
  name: "lucide/chevron-down",
996
- className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
997
+ className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
997
998
  "aria-hidden": "true"
998
999
  }
999
1000
  )
@@ -1033,7 +1034,7 @@ function NavigationMenuViewport({
1033
1034
  {
1034
1035
  "data-slot": "navigation-menu-viewport",
1035
1036
  className: cn(
1036
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1037
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
1037
1038
  className
1038
1039
  ),
1039
1040
  ...props
@@ -1051,7 +1052,7 @@ function NavigationMenuLink({
1051
1052
  {
1052
1053
  "data-slot": "navigation-menu-link",
1053
1054
  className: cn(
1054
- "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
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1055
1056
  className
1056
1057
  ),
1057
1058
  ...props
@@ -1062,6 +1063,36 @@ function NavigationMenuLink({
1062
1063
  // lib/mediaPlaceholders.ts
1063
1064
  var logoPlaceholders = {
1064
1065
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1066
+
1067
+ // components/blocks/navbars/layout-variant-utils.ts
1068
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1069
+ const isFloatingBar = layoutVariant === "floatingBar";
1070
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1071
+ return {
1072
+ // Section wrapper classes
1073
+ sectionClasses: cn(
1074
+ "inset-x-0 z-20",
1075
+ isFloatingBar ? "sticky top-4" : "top-0",
1076
+ customClasses?.className
1077
+ ),
1078
+ // Outer container wrapper (only for floating bar)
1079
+ containerWrapperClasses: cn(
1080
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1081
+ ),
1082
+ // Inner container classes
1083
+ innerContainerClasses: cn(
1084
+ !isFloatingBar && !isFullWidthLinks && "container",
1085
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1086
+ customClasses?.containerClassName
1087
+ ),
1088
+ // Navigation wrapper classes (for border and shadow)
1089
+ navWrapperClasses: cn(
1090
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1091
+ ),
1092
+ // Spacing adjustment for Section component
1093
+ spacingOverride: isFloatingBar ? "none" : void 0
1094
+ };
1095
+ }
1065
1096
  var NavbarFloatingPill = ({
1066
1097
  logo = {
1067
1098
  url: "/",
@@ -1078,6 +1109,7 @@ var NavbarFloatingPill = ({
1078
1109
  pillWrapperClassName,
1079
1110
  navigationMenuClassName,
1080
1111
  actionsClassName,
1112
+ layoutVariant = "fullScreenContainerizedLinks",
1081
1113
  background = "white",
1082
1114
  spacing = "none",
1083
1115
  pattern,
@@ -1142,20 +1174,27 @@ var NavbarFloatingPill = ({
1142
1174
  if (!items || items.length === 0) return null;
1143
1175
  return items;
1144
1176
  };
1177
+ const {
1178
+ sectionClasses,
1179
+ containerWrapperClasses,
1180
+ innerContainerClasses,
1181
+ navWrapperClasses,
1182
+ spacingOverride
1183
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1145
1184
  return /* @__PURE__ */ jsxRuntime.jsx(
1146
1185
  Section,
1147
1186
  {
1148
1187
  background,
1149
- spacing,
1150
- className: cn(className),
1188
+ spacing: spacingOverride ?? spacing,
1189
+ className: sectionClasses,
1151
1190
  pattern,
1152
1191
  patternOpacity,
1153
- children: /* @__PURE__ */ jsxRuntime.jsxs(
1154
- "div",
1192
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1193
+ "nav",
1155
1194
  {
1156
1195
  className: cn(
1157
- "absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full border bg-background/70 backdrop-blur-md lg:top-12",
1158
- containerClassName
1196
+ "absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full bg-background/70 backdrop-blur-md lg:top-12",
1197
+ navWrapperClasses
1159
1198
  ),
1160
1199
  children: [
1161
1200
  /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1311,7 +1350,7 @@ var NavbarFloatingPill = ({
1311
1350
  )
1312
1351
  ]
1313
1352
  }
1314
- )
1353
+ ) }) })
1315
1354
  }
1316
1355
  );
1317
1356
  };
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
4
  import { SectionBackground, SectionSpacing } from './types.cjs';
5
- import { L as LogoConfig } from './types-D2b35ylu.cjs';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.cjs';
6
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.cjs';
@@ -86,6 +86,10 @@ interface NavbarFloatingPillProps {
86
86
  * Pattern overlay opacity (0-1)
87
87
  */
88
88
  patternOpacity?: number;
89
+ /**
90
+ * Layout variant for the navbar
91
+ */
92
+ layoutVariant?: NavbarLayoutVariant;
89
93
  /**
90
94
  * OptixFlow image optimization configuration
91
95
  */
@@ -99,6 +103,6 @@ interface NavbarFloatingPillProps {
99
103
  * animations and a collapsible mobile menu. Perfect for landing pages and modern marketing
100
104
  * sites where the navbar should float over hero content.
101
105
  */
102
- declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
106
+ declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
103
107
 
104
108
  export { NavbarFloatingPill, type NavbarFloatingPillProps };
@@ -2,7 +2,7 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
4
  import { SectionBackground, SectionSpacing } from './types.js';
5
- import { L as LogoConfig } from './types-D2b35ylu.js';
5
+ import { L as LogoConfig, N as NavbarLayoutVariant } from './types-COVDidbn.js';
6
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.js';
@@ -86,6 +86,10 @@ interface NavbarFloatingPillProps {
86
86
  * Pattern overlay opacity (0-1)
87
87
  */
88
88
  patternOpacity?: number;
89
+ /**
90
+ * Layout variant for the navbar
91
+ */
92
+ layoutVariant?: NavbarLayoutVariant;
89
93
  /**
90
94
  * OptixFlow image optimization configuration
91
95
  */
@@ -99,6 +103,6 @@ interface NavbarFloatingPillProps {
99
103
  * animations and a collapsible mobile menu. Perfect for landing pages and modern marketing
100
104
  * sites where the navbar should float over hero content.
101
105
  */
102
- declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
106
+ declare const NavbarFloatingPill: ({ logo, logoSlot, logoClassName, items, menuSlot, authActions, authActionsSlot, className, containerClassName, pillWrapperClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFloatingPillProps) => react_jsx_runtime.JSX.Element;
103
107
 
104
108
  export { NavbarFloatingPill, type NavbarFloatingPillProps };
@@ -930,7 +930,7 @@ function NavigationMenuList({
930
930
  {
931
931
  "data-slot": "navigation-menu-list",
932
932
  className: cn(
933
- "group flex flex-1 list-none items-center justify-center gap-6",
933
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
934
934
  className
935
935
  ),
936
936
  ...props
@@ -970,8 +970,9 @@ function NavigationMenuTrigger({
970
970
  /* @__PURE__ */ jsx(
971
971
  DynamicIcon,
972
972
  {
973
+ size: 18,
973
974
  name: "lucide/chevron-down",
974
- className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
975
+ className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
975
976
  "aria-hidden": "true"
976
977
  }
977
978
  )
@@ -1011,7 +1012,7 @@ function NavigationMenuViewport({
1011
1012
  {
1012
1013
  "data-slot": "navigation-menu-viewport",
1013
1014
  className: cn(
1014
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1015
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
1015
1016
  className
1016
1017
  ),
1017
1018
  ...props
@@ -1029,7 +1030,7 @@ function NavigationMenuLink({
1029
1030
  {
1030
1031
  "data-slot": "navigation-menu-link",
1031
1032
  className: cn(
1032
- "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
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1033
1034
  className
1034
1035
  ),
1035
1036
  ...props
@@ -1040,6 +1041,36 @@ function NavigationMenuLink({
1040
1041
  // lib/mediaPlaceholders.ts
1041
1042
  var logoPlaceholders = {
1042
1043
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1044
+
1045
+ // components/blocks/navbars/layout-variant-utils.ts
1046
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1047
+ const isFloatingBar = layoutVariant === "floatingBar";
1048
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1049
+ return {
1050
+ // Section wrapper classes
1051
+ sectionClasses: cn(
1052
+ "inset-x-0 z-20",
1053
+ isFloatingBar ? "sticky top-4" : "top-0",
1054
+ customClasses?.className
1055
+ ),
1056
+ // Outer container wrapper (only for floating bar)
1057
+ containerWrapperClasses: cn(
1058
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1059
+ ),
1060
+ // Inner container classes
1061
+ innerContainerClasses: cn(
1062
+ !isFloatingBar && !isFullWidthLinks && "container",
1063
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1064
+ customClasses?.containerClassName
1065
+ ),
1066
+ // Navigation wrapper classes (for border and shadow)
1067
+ navWrapperClasses: cn(
1068
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1069
+ ),
1070
+ // Spacing adjustment for Section component
1071
+ spacingOverride: isFloatingBar ? "none" : void 0
1072
+ };
1073
+ }
1043
1074
  var NavbarFloatingPill = ({
1044
1075
  logo = {
1045
1076
  url: "/",
@@ -1056,6 +1087,7 @@ var NavbarFloatingPill = ({
1056
1087
  pillWrapperClassName,
1057
1088
  navigationMenuClassName,
1058
1089
  actionsClassName,
1090
+ layoutVariant = "fullScreenContainerizedLinks",
1059
1091
  background = "white",
1060
1092
  spacing = "none",
1061
1093
  pattern,
@@ -1120,20 +1152,27 @@ var NavbarFloatingPill = ({
1120
1152
  if (!items || items.length === 0) return null;
1121
1153
  return items;
1122
1154
  };
1155
+ const {
1156
+ sectionClasses,
1157
+ containerWrapperClasses,
1158
+ innerContainerClasses,
1159
+ navWrapperClasses,
1160
+ spacingOverride
1161
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1123
1162
  return /* @__PURE__ */ jsx(
1124
1163
  Section,
1125
1164
  {
1126
1165
  background,
1127
- spacing,
1128
- className: cn(className),
1166
+ spacing: spacingOverride ?? spacing,
1167
+ className: sectionClasses,
1129
1168
  pattern,
1130
1169
  patternOpacity,
1131
- children: /* @__PURE__ */ jsxs(
1132
- "div",
1170
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1171
+ "nav",
1133
1172
  {
1134
1173
  className: cn(
1135
- "absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full border bg-background/70 backdrop-blur-md lg:top-12",
1136
- containerClassName
1174
+ "absolute top-5 left-1/2 z-50 w-[min(90%,700px)] -translate-x-1/2 rounded-full bg-background/70 backdrop-blur-md lg:top-12",
1175
+ navWrapperClasses
1137
1176
  ),
1138
1177
  children: [
1139
1178
  /* @__PURE__ */ jsxs(
@@ -1289,7 +1328,7 @@ var NavbarFloatingPill = ({
1289
1328
  )
1290
1329
  ]
1291
1330
  }
1292
- )
1331
+ ) }) })
1293
1332
  }
1294
1333
  );
1295
1334
  };