@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
@@ -817,6 +817,36 @@ Section.displayName = "Section";
817
817
  // lib/mediaPlaceholders.ts
818
818
  var logoPlaceholders = {
819
819
  darkHorizontalLogo: "https://cdn.ing/assets/i/r/285986/5ivxh3ivywsmm6uslf3te38r6tg1/logo-dark.png"};
820
+
821
+ // components/blocks/navbars/layout-variant-utils.ts
822
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
823
+ const isFloatingBar = layoutVariant === "floatingBar";
824
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
825
+ return {
826
+ // Section wrapper classes
827
+ sectionClasses: cn(
828
+ "inset-x-0 z-20",
829
+ isFloatingBar ? "sticky top-4" : "top-0",
830
+ customClasses?.className
831
+ ),
832
+ // Outer container wrapper (only for floating bar)
833
+ containerWrapperClasses: cn(
834
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
835
+ ),
836
+ // Inner container classes
837
+ innerContainerClasses: cn(
838
+ !isFloatingBar && !isFullWidthLinks && "container",
839
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
840
+ customClasses?.containerClassName
841
+ ),
842
+ // Navigation wrapper classes (for border and shadow)
843
+ navWrapperClasses: cn(
844
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
845
+ ),
846
+ // Spacing adjustment for Section component
847
+ spacingOverride: isFloatingBar ? "none" : void 0
848
+ };
849
+ }
820
850
  var NavbarFullscreenMenu = ({
821
851
  logo = {
822
852
  url: "/",
@@ -834,6 +864,7 @@ var NavbarFullscreenMenu = ({
834
864
  overlayClassName,
835
865
  menuItemsClassName,
836
866
  socialLinksClassName,
867
+ layoutVariant = "fullScreenContainerizedLinks",
837
868
  background = "white",
838
869
  spacing = "none",
839
870
  pattern,
@@ -900,20 +931,28 @@ var NavbarFullscreenMenu = ({
900
931
  link.label
901
932
  ));
902
933
  };
934
+ const {
935
+ sectionClasses,
936
+ containerWrapperClasses,
937
+ innerContainerClasses,
938
+ navWrapperClasses,
939
+ spacingOverride
940
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
903
941
  return /* @__PURE__ */ jsxRuntime.jsx(
904
942
  Section,
905
943
  {
906
944
  background,
907
- spacing,
908
- className: cn(className),
945
+ spacing: spacingOverride ?? spacing,
946
+ className: sectionClasses,
909
947
  pattern,
910
948
  patternOpacity,
911
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(containerClassName), children: [
949
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: innerContainerClasses, children: [
912
950
  /* @__PURE__ */ jsxRuntime.jsxs(
913
- "div",
951
+ "nav",
914
952
  {
915
953
  className: cn(
916
954
  "flex items-center justify-between px-6 py-6",
955
+ navWrapperClasses,
917
956
  headerClassName
918
957
  ),
919
958
  children: [
@@ -969,7 +1008,7 @@ var NavbarFullscreenMenu = ({
969
1008
  ] })
970
1009
  }
971
1010
  )
972
- ] })
1011
+ ] }) })
973
1012
  }
974
1013
  );
975
1014
  };
@@ -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 { O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.cjs';
@@ -88,6 +88,10 @@ interface NavbarFullscreenMenuProps {
88
88
  * Pattern overlay opacity (0-1)
89
89
  */
90
90
  patternOpacity?: number;
91
+ /**
92
+ * Layout variant for the navbar
93
+ */
94
+ layoutVariant?: NavbarLayoutVariant;
91
95
  /**
92
96
  * OptixFlow image optimization configuration
93
97
  */
@@ -101,6 +105,6 @@ interface NavbarFullscreenMenuProps {
101
105
  * on hover. Social links appear at the bottom with staggered animations. Uses Framer Motion
102
106
  * for smooth transitions. Perfect for creative agencies, portfolios, and artistic websites.
103
107
  */
104
- declare const NavbarFullscreenMenu: ({ logo, logoSlot, logoClassName, menuItems, menuSlot, socialLinks, socialLinksSlot, className, containerClassName, headerClassName, overlayClassName, menuItemsClassName, socialLinksClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFullscreenMenuProps) => react_jsx_runtime.JSX.Element;
108
+ declare const NavbarFullscreenMenu: ({ logo, logoSlot, logoClassName, menuItems, menuSlot, socialLinks, socialLinksSlot, className, containerClassName, headerClassName, overlayClassName, menuItemsClassName, socialLinksClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFullscreenMenuProps) => react_jsx_runtime.JSX.Element;
105
109
 
106
110
  export { NavbarFullscreenMenu, type NavbarFullscreenMenuProps };
@@ -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 { O as OptixFlowConfig } from './blocks-k17uluAz.js';
7
7
  import 'class-variance-authority';
8
8
  import './button-variants-lRElsmTc.js';
@@ -88,6 +88,10 @@ interface NavbarFullscreenMenuProps {
88
88
  * Pattern overlay opacity (0-1)
89
89
  */
90
90
  patternOpacity?: number;
91
+ /**
92
+ * Layout variant for the navbar
93
+ */
94
+ layoutVariant?: NavbarLayoutVariant;
91
95
  /**
92
96
  * OptixFlow image optimization configuration
93
97
  */
@@ -101,6 +105,6 @@ interface NavbarFullscreenMenuProps {
101
105
  * on hover. Social links appear at the bottom with staggered animations. Uses Framer Motion
102
106
  * for smooth transitions. Perfect for creative agencies, portfolios, and artistic websites.
103
107
  */
104
- declare const NavbarFullscreenMenu: ({ logo, logoSlot, logoClassName, menuItems, menuSlot, socialLinks, socialLinksSlot, className, containerClassName, headerClassName, overlayClassName, menuItemsClassName, socialLinksClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFullscreenMenuProps) => react_jsx_runtime.JSX.Element;
108
+ declare const NavbarFullscreenMenu: ({ logo, logoSlot, logoClassName, menuItems, menuSlot, socialLinks, socialLinksSlot, className, containerClassName, headerClassName, overlayClassName, menuItemsClassName, socialLinksClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarFullscreenMenuProps) => react_jsx_runtime.JSX.Element;
105
109
 
106
110
  export { NavbarFullscreenMenu, type NavbarFullscreenMenuProps };
@@ -796,6 +796,36 @@ Section.displayName = "Section";
796
796
  // lib/mediaPlaceholders.ts
797
797
  var logoPlaceholders = {
798
798
  darkHorizontalLogo: "https://cdn.ing/assets/i/r/285986/5ivxh3ivywsmm6uslf3te38r6tg1/logo-dark.png"};
799
+
800
+ // components/blocks/navbars/layout-variant-utils.ts
801
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
802
+ const isFloatingBar = layoutVariant === "floatingBar";
803
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
804
+ return {
805
+ // Section wrapper classes
806
+ sectionClasses: cn(
807
+ "inset-x-0 z-20",
808
+ isFloatingBar ? "sticky top-4" : "top-0",
809
+ customClasses?.className
810
+ ),
811
+ // Outer container wrapper (only for floating bar)
812
+ containerWrapperClasses: cn(
813
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
814
+ ),
815
+ // Inner container classes
816
+ innerContainerClasses: cn(
817
+ !isFloatingBar && !isFullWidthLinks && "container",
818
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
819
+ customClasses?.containerClassName
820
+ ),
821
+ // Navigation wrapper classes (for border and shadow)
822
+ navWrapperClasses: cn(
823
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
824
+ ),
825
+ // Spacing adjustment for Section component
826
+ spacingOverride: isFloatingBar ? "none" : void 0
827
+ };
828
+ }
799
829
  var NavbarFullscreenMenu = ({
800
830
  logo = {
801
831
  url: "/",
@@ -813,6 +843,7 @@ var NavbarFullscreenMenu = ({
813
843
  overlayClassName,
814
844
  menuItemsClassName,
815
845
  socialLinksClassName,
846
+ layoutVariant = "fullScreenContainerizedLinks",
816
847
  background = "white",
817
848
  spacing = "none",
818
849
  pattern,
@@ -879,20 +910,28 @@ var NavbarFullscreenMenu = ({
879
910
  link.label
880
911
  ));
881
912
  };
913
+ const {
914
+ sectionClasses,
915
+ containerWrapperClasses,
916
+ innerContainerClasses,
917
+ navWrapperClasses,
918
+ spacingOverride
919
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
882
920
  return /* @__PURE__ */ jsx(
883
921
  Section,
884
922
  {
885
923
  background,
886
- spacing,
887
- className: cn(className),
924
+ spacing: spacingOverride ?? spacing,
925
+ className: sectionClasses,
888
926
  pattern,
889
927
  patternOpacity,
890
- children: /* @__PURE__ */ jsxs("div", { className: cn(containerClassName), children: [
928
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxs("div", { className: innerContainerClasses, children: [
891
929
  /* @__PURE__ */ jsxs(
892
- "div",
930
+ "nav",
893
931
  {
894
932
  className: cn(
895
933
  "flex items-center justify-between px-6 py-6",
934
+ navWrapperClasses,
896
935
  headerClassName
897
936
  ),
898
937
  children: [
@@ -948,7 +987,7 @@ var NavbarFullscreenMenu = ({
948
987
  ] })
949
988
  }
950
989
  )
951
- ] })
990
+ ] }) })
952
991
  }
953
992
  );
954
993
  };
@@ -956,7 +956,7 @@ function NavigationMenuList({
956
956
  {
957
957
  "data-slot": "navigation-menu-list",
958
958
  className: cn(
959
- "group flex flex-1 list-none items-center justify-center gap-6",
959
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
960
960
  className
961
961
  ),
962
962
  ...props
@@ -994,7 +994,7 @@ function NavigationMenuViewport({
994
994
  {
995
995
  "data-slot": "navigation-menu-viewport",
996
996
  className: cn(
997
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
997
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
998
998
  className
999
999
  ),
1000
1000
  ...props
@@ -1012,7 +1012,7 @@ function NavigationMenuLink({
1012
1012
  {
1013
1013
  "data-slot": "navigation-menu-link",
1014
1014
  className: cn(
1015
- "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",
1015
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1016
1016
  className
1017
1017
  ),
1018
1018
  ...props
@@ -1143,6 +1143,36 @@ function TooltipContent({
1143
1143
  // lib/mediaPlaceholders.ts
1144
1144
  var logoPlaceholders = {
1145
1145
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1146
+
1147
+ // components/blocks/navbars/layout-variant-utils.ts
1148
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1149
+ const isFloatingBar = layoutVariant === "floatingBar";
1150
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1151
+ return {
1152
+ // Section wrapper classes
1153
+ sectionClasses: cn(
1154
+ "inset-x-0 z-20",
1155
+ isFloatingBar ? "sticky top-4" : "top-0",
1156
+ customClasses?.className
1157
+ ),
1158
+ // Outer container wrapper (only for floating bar)
1159
+ containerWrapperClasses: cn(
1160
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1161
+ ),
1162
+ // Inner container classes
1163
+ innerContainerClasses: cn(
1164
+ !isFloatingBar && !isFullWidthLinks && "container",
1165
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1166
+ customClasses?.containerClassName
1167
+ ),
1168
+ // Navigation wrapper classes (for border and shadow)
1169
+ navWrapperClasses: cn(
1170
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1171
+ ),
1172
+ // Spacing adjustment for Section component
1173
+ spacingOverride: isFloatingBar ? "none" : void 0
1174
+ };
1175
+ }
1146
1176
  var NavbarIconLinks = ({
1147
1177
  logo = {
1148
1178
  url: "/",
@@ -1159,6 +1189,7 @@ var NavbarIconLinks = ({
1159
1189
  navClassName,
1160
1190
  navigationMenuClassName,
1161
1191
  actionsClassName,
1192
+ layoutVariant = "fullScreenContainerizedLinks",
1162
1193
  background = "white",
1163
1194
  spacing = "none",
1164
1195
  pattern,
@@ -1225,18 +1256,25 @@ var NavbarIconLinks = ({
1225
1256
  if (!navItems || navItems.length === 0) return null;
1226
1257
  return navItems;
1227
1258
  };
1259
+ const {
1260
+ sectionClasses,
1261
+ containerWrapperClasses,
1262
+ innerContainerClasses,
1263
+ navWrapperClasses,
1264
+ spacingOverride
1265
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1228
1266
  return /* @__PURE__ */ jsxRuntime.jsx(
1229
1267
  Section,
1230
1268
  {
1231
1269
  background,
1232
- spacing,
1233
- className: cn("border-b", className),
1270
+ spacing: spacingOverride ?? spacing,
1271
+ className: sectionClasses,
1234
1272
  pattern,
1235
1273
  patternOpacity,
1236
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
1274
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1237
1275
  "nav",
1238
1276
  {
1239
- className: cn("flex items-center justify-between py-3", navClassName),
1277
+ className: cn("flex items-center justify-between py-3", navWrapperClasses, navClassName),
1240
1278
  children: [
1241
1279
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
1242
1280
  renderLogo(),
@@ -1330,7 +1368,7 @@ var NavbarIconLinks = ({
1330
1368
  ] })
1331
1369
  ]
1332
1370
  }
1333
- ) })
1371
+ ) }) })
1334
1372
  }
1335
1373
  );
1336
1374
  };
@@ -2,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';
@@ -84,6 +84,10 @@ interface NavbarIconLinksProps {
84
84
  * Pattern overlay opacity (0-1)
85
85
  */
86
86
  patternOpacity?: number;
87
+ /**
88
+ * Layout variant for the navbar
89
+ */
90
+ layoutVariant?: NavbarLayoutVariant;
87
91
  /**
88
92
  * OptixFlow image optimization configuration
89
93
  */
@@ -99,6 +103,6 @@ interface NavbarIconLinksProps {
99
103
  * Ideal for dashboards, admin panels, and applications where users are familiar
100
104
  * with the navigation structure.
101
105
  */
102
- declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
106
+ declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
103
107
 
104
108
  export { NavbarIconLinks, type NavbarIconLinksProps };
@@ -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';
@@ -84,6 +84,10 @@ interface NavbarIconLinksProps {
84
84
  * Pattern overlay opacity (0-1)
85
85
  */
86
86
  patternOpacity?: number;
87
+ /**
88
+ * Layout variant for the navbar
89
+ */
90
+ layoutVariant?: NavbarLayoutVariant;
87
91
  /**
88
92
  * OptixFlow image optimization configuration
89
93
  */
@@ -99,6 +103,6 @@ interface NavbarIconLinksProps {
99
103
  * Ideal for dashboards, admin panels, and applications where users are familiar
100
104
  * with the navigation structure.
101
105
  */
102
- declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
106
+ declare const NavbarIconLinks: ({ logo, logoSlot, logoClassName, navItems, navItemsSlot, authActions, authActionsSlot, className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarIconLinksProps) => react_jsx_runtime.JSX.Element;
103
107
 
104
108
  export { NavbarIconLinks, type NavbarIconLinksProps };
@@ -932,7 +932,7 @@ function NavigationMenuList({
932
932
  {
933
933
  "data-slot": "navigation-menu-list",
934
934
  className: cn(
935
- "group flex flex-1 list-none items-center justify-center gap-6",
935
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
936
936
  className
937
937
  ),
938
938
  ...props
@@ -970,7 +970,7 @@ function NavigationMenuViewport({
970
970
  {
971
971
  "data-slot": "navigation-menu-viewport",
972
972
  className: cn(
973
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
973
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
974
974
  className
975
975
  ),
976
976
  ...props
@@ -988,7 +988,7 @@ function NavigationMenuLink({
988
988
  {
989
989
  "data-slot": "navigation-menu-link",
990
990
  className: cn(
991
- "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",
991
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
992
992
  className
993
993
  ),
994
994
  ...props
@@ -1119,6 +1119,36 @@ function TooltipContent({
1119
1119
  // lib/mediaPlaceholders.ts
1120
1120
  var logoPlaceholders = {
1121
1121
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1122
+
1123
+ // components/blocks/navbars/layout-variant-utils.ts
1124
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1125
+ const isFloatingBar = layoutVariant === "floatingBar";
1126
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1127
+ return {
1128
+ // Section wrapper classes
1129
+ sectionClasses: cn(
1130
+ "inset-x-0 z-20",
1131
+ isFloatingBar ? "sticky top-4" : "top-0",
1132
+ customClasses?.className
1133
+ ),
1134
+ // Outer container wrapper (only for floating bar)
1135
+ containerWrapperClasses: cn(
1136
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1137
+ ),
1138
+ // Inner container classes
1139
+ innerContainerClasses: cn(
1140
+ !isFloatingBar && !isFullWidthLinks && "container",
1141
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1142
+ customClasses?.containerClassName
1143
+ ),
1144
+ // Navigation wrapper classes (for border and shadow)
1145
+ navWrapperClasses: cn(
1146
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1147
+ ),
1148
+ // Spacing adjustment for Section component
1149
+ spacingOverride: isFloatingBar ? "none" : void 0
1150
+ };
1151
+ }
1122
1152
  var NavbarIconLinks = ({
1123
1153
  logo = {
1124
1154
  url: "/",
@@ -1135,6 +1165,7 @@ var NavbarIconLinks = ({
1135
1165
  navClassName,
1136
1166
  navigationMenuClassName,
1137
1167
  actionsClassName,
1168
+ layoutVariant = "fullScreenContainerizedLinks",
1138
1169
  background = "white",
1139
1170
  spacing = "none",
1140
1171
  pattern,
@@ -1201,18 +1232,25 @@ var NavbarIconLinks = ({
1201
1232
  if (!navItems || navItems.length === 0) return null;
1202
1233
  return navItems;
1203
1234
  };
1235
+ const {
1236
+ sectionClasses,
1237
+ containerWrapperClasses,
1238
+ innerContainerClasses,
1239
+ navWrapperClasses,
1240
+ spacingOverride
1241
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1204
1242
  return /* @__PURE__ */ jsx(
1205
1243
  Section,
1206
1244
  {
1207
1245
  background,
1208
- spacing,
1209
- className: cn("border-b", className),
1246
+ spacing: spacingOverride ?? spacing,
1247
+ className: sectionClasses,
1210
1248
  pattern,
1211
1249
  patternOpacity,
1212
- children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs(
1250
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1213
1251
  "nav",
1214
1252
  {
1215
- className: cn("flex items-center justify-between py-3", navClassName),
1253
+ className: cn("flex items-center justify-between py-3", navWrapperClasses, navClassName),
1216
1254
  children: [
1217
1255
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-6", children: [
1218
1256
  renderLogo(),
@@ -1306,7 +1344,7 @@ var NavbarIconLinks = ({
1306
1344
  ] })
1307
1345
  ]
1308
1346
  }
1309
- ) })
1347
+ ) }) })
1310
1348
  }
1311
1349
  );
1312
1350
  };
@@ -954,7 +954,7 @@ function NavigationMenuList({
954
954
  {
955
955
  "data-slot": "navigation-menu-list",
956
956
  className: cn(
957
- "group flex flex-1 list-none items-center justify-center gap-6",
957
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
958
958
  className
959
959
  ),
960
960
  ...props
@@ -994,8 +994,9 @@ function NavigationMenuTrigger({
994
994
  /* @__PURE__ */ jsxRuntime.jsx(
995
995
  DynamicIcon,
996
996
  {
997
+ size: 18,
997
998
  name: "lucide/chevron-down",
998
- className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
999
+ className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
999
1000
  "aria-hidden": "true"
1000
1001
  }
1001
1002
  )
@@ -1035,7 +1036,7 @@ function NavigationMenuViewport({
1035
1036
  {
1036
1037
  "data-slot": "navigation-menu-viewport",
1037
1038
  className: cn(
1038
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1039
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
1039
1040
  className
1040
1041
  ),
1041
1042
  ...props
@@ -1053,7 +1054,7 @@ function NavigationMenuLink({
1053
1054
  {
1054
1055
  "data-slot": "navigation-menu-link",
1055
1056
  className: cn(
1056
- "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",
1057
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1057
1058
  className
1058
1059
  ),
1059
1060
  ...props
@@ -1260,6 +1261,36 @@ var imagePlaceholders = [
1260
1261
  function getLinkUrl(item) {
1261
1262
  return item.href || item.url || "#";
1262
1263
  }
1264
+
1265
+ // components/blocks/navbars/layout-variant-utils.ts
1266
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1267
+ const isFloatingBar = layoutVariant === "floatingBar";
1268
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1269
+ return {
1270
+ // Section wrapper classes
1271
+ sectionClasses: cn(
1272
+ "inset-x-0 z-20",
1273
+ isFloatingBar ? "sticky top-4" : "top-0",
1274
+ customClasses?.className
1275
+ ),
1276
+ // Outer container wrapper (only for floating bar)
1277
+ containerWrapperClasses: cn(
1278
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1279
+ ),
1280
+ // Inner container classes
1281
+ innerContainerClasses: cn(
1282
+ !isFloatingBar && !isFullWidthLinks && "container",
1283
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1284
+ customClasses?.containerClassName
1285
+ ),
1286
+ // Navigation wrapper classes (for border and shadow)
1287
+ navWrapperClasses: cn(
1288
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1289
+ ),
1290
+ // Spacing adjustment for Section component
1291
+ spacingOverride: isFloatingBar ? "none" : void 0
1292
+ };
1293
+ }
1263
1294
  var MOBILE_BREAKPOINT = 1024;
1264
1295
  var NavbarImagePreview = ({
1265
1296
  className,
@@ -1281,6 +1312,7 @@ var NavbarImagePreview = ({
1281
1312
  authActionsSlot,
1282
1313
  socialLinks,
1283
1314
  socialLinksSlot,
1315
+ layoutVariant = "fullScreenContainerizedLinks",
1284
1316
  background = "white",
1285
1317
  spacing = "none",
1286
1318
  pattern,
@@ -1389,12 +1421,19 @@ var NavbarImagePreview = ({
1389
1421
  );
1390
1422
  });
1391
1423
  };
1424
+ const {
1425
+ sectionClasses,
1426
+ containerWrapperClasses,
1427
+ innerContainerClasses,
1428
+ navWrapperClasses,
1429
+ spacingOverride
1430
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1392
1431
  return /* @__PURE__ */ jsxRuntime.jsxs(
1393
1432
  Section,
1394
1433
  {
1395
1434
  background,
1396
- spacing,
1397
- className: cn("", className),
1435
+ spacing: spacingOverride ?? spacing,
1436
+ className: sectionClasses,
1398
1437
  pattern,
1399
1438
  patternOpacity,
1400
1439
  children: [
@@ -1403,10 +1442,10 @@ var NavbarImagePreview = ({
1403
1442
  {
1404
1443
  className: cn(
1405
1444
  "fixed top-0 z-500 w-full bg-transparent transition-colors duration-500",
1406
- containerClassName
1445
+ containerWrapperClasses
1407
1446
  ),
1408
1447
  ref: navRef,
1409
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container border-b border-border/50 shadow-sm", children: /* @__PURE__ */ jsxRuntime.jsxs(
1448
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(innerContainerClasses, navWrapperClasses), children: /* @__PURE__ */ jsxRuntime.jsxs(
1410
1449
  "div",
1411
1450
  {
1412
1451
  className: cn(
@@ -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, b as ILinkItem } from './types-D2b35ylu.cjs';
5
+ import { L as LogoConfig, b as ILinkItem, 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';
@@ -109,6 +109,10 @@ interface NavbarImagePreviewProps {
109
109
  * Pattern overlay opacity (0-1)
110
110
  */
111
111
  patternOpacity?: number;
112
+ /**
113
+ * Layout variant for the navbar
114
+ */
115
+ layoutVariant?: NavbarLayoutVariant;
112
116
  /**
113
117
  * OptixFlow image optimization configuration
114
118
  */
@@ -122,6 +126,6 @@ interface NavbarImagePreviewProps {
122
126
  * Mobile view uses a full-screen dark overlay with categorized link columns and
123
127
  * social links. Ideal for content-rich sites where visual previews enhance navigation.
124
128
  */
125
- declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
129
+ declare const NavbarImagePreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, navigation, navigationSlot, mobileNavigation, mobileNavigationSlot, authActions, authActionsSlot, socialLinks, socialLinksSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarImagePreviewProps) => react_jsx_runtime.JSX.Element;
126
130
 
127
131
  export { NavbarImagePreview, type NavbarImagePreviewProps };