@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
@@ -986,7 +986,7 @@ function NavigationMenuList({
986
986
  {
987
987
  "data-slot": "navigation-menu-list",
988
988
  className: cn(
989
- "group flex flex-1 list-none items-center justify-center gap-6",
989
+ "group flex flex-1 list-none items-center justify-center gap-2 lg:gap-4 xl:gap-6",
990
990
  className
991
991
  ),
992
992
  ...props
@@ -1026,8 +1026,9 @@ function NavigationMenuTrigger({
1026
1026
  /* @__PURE__ */ jsx(
1027
1027
  DynamicIcon,
1028
1028
  {
1029
+ size: 18,
1029
1030
  name: "lucide/chevron-down",
1030
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1031
+ className: "relative top-px opacity-50 transition duration-300 group-data-[state=open]:rotate-180",
1031
1032
  "aria-hidden": "true"
1032
1033
  }
1033
1034
  )
@@ -1067,7 +1068,7 @@ function NavigationMenuViewport({
1067
1068
  {
1068
1069
  "data-slot": "navigation-menu-viewport",
1069
1070
  className: cn(
1070
- "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-[var(--radix-navigation-menu-viewport-height)] w-full overflow-hidden rounded-md border shadow md:w-[var(--radix-navigation-menu-viewport-width)]",
1071
+ "origin-top-center bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-90 relative mt-1.5 h-(--radix-navigation-menu-viewport-height) w-full overflow-hidden rounded-md border border-border/50 shadow-sm md:w-(--radix-navigation-menu-viewport-width)",
1071
1072
  className
1072
1073
  ),
1073
1074
  ...props
@@ -1085,7 +1086,7 @@ function NavigationMenuLink({
1085
1086
  {
1086
1087
  "data-slot": "navigation-menu-link",
1087
1088
  className: cn(
1088
- "data-[active=true]:focus:bg-muted data-[active=true]:hover:bg-muted data-[active=true]:bg-muted/50 data-[active=true]:text-foreground hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground focus-visible:ring-ring/50 [&_svg:not([class*='text-'])]:text-muted-foreground flex flex-col gap-1 rounded-sm p-2 text-sm transition-all outline-none focus-visible:ring-[3px] focus-visible:outline-1 [&_svg:not([class*='size-'])]:size-4",
1089
+ "group inline-flex w-max items-center justify-center rounded-md text-sm disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:focus:bg-muted focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 group h-auto bg-transparent px-3 py-2 font-normal text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground data-[state=open]:bg-muted/50 data-[state=open]:text-foreground",
1089
1090
  className
1090
1091
  ),
1091
1092
  ...props
@@ -1180,6 +1181,36 @@ function SheetTitle({
1180
1181
  // lib/mediaPlaceholders.ts
1181
1182
  var logoPlaceholders = {
1182
1183
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1184
+
1185
+ // components/blocks/navbars/layout-variant-utils.ts
1186
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1187
+ const isFloatingBar = layoutVariant === "floatingBar";
1188
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1189
+ return {
1190
+ // Section wrapper classes
1191
+ sectionClasses: cn(
1192
+ "inset-x-0 z-20",
1193
+ isFloatingBar ? "sticky top-4" : "top-0",
1194
+ customClasses?.className
1195
+ ),
1196
+ // Outer container wrapper (only for floating bar)
1197
+ containerWrapperClasses: cn(
1198
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1199
+ ),
1200
+ // Inner container classes
1201
+ innerContainerClasses: cn(
1202
+ !isFloatingBar && !isFullWidthLinks && "container",
1203
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1204
+ customClasses?.containerClassName
1205
+ ),
1206
+ // Navigation wrapper classes (for border and shadow)
1207
+ navWrapperClasses: cn(
1208
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1209
+ ),
1210
+ // Spacing adjustment for Section component
1211
+ spacingOverride: isFloatingBar ? "none" : void 0
1212
+ };
1213
+ }
1183
1214
  var SubMenuLink = ({
1184
1215
  item,
1185
1216
  optixFlowConfig
@@ -1256,6 +1287,7 @@ var NavbarDropdownMenu = ({
1256
1287
  mobileNavClassName,
1257
1288
  navigationMenuClassName,
1258
1289
  actionsClassName,
1290
+ layoutVariant = "fullScreenContainerizedLinks",
1259
1291
  background = "white",
1260
1292
  spacing = "sm",
1261
1293
  pattern,
@@ -1323,15 +1355,22 @@ var NavbarDropdownMenu = ({
1323
1355
  if (!menu || menu.length === 0) return null;
1324
1356
  return menu.map((item) => renderMobileMenuItem(item, optixFlowConfig));
1325
1357
  };
1358
+ const {
1359
+ sectionClasses,
1360
+ containerWrapperClasses,
1361
+ innerContainerClasses,
1362
+ navWrapperClasses,
1363
+ spacingOverride
1364
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1326
1365
  return /* @__PURE__ */ jsx(
1327
1366
  Section,
1328
1367
  {
1329
1368
  background,
1330
- spacing,
1331
- className: cn(className),
1369
+ spacing: spacingOverride ?? spacing,
1370
+ className: sectionClasses,
1332
1371
  pattern,
1333
1372
  patternOpacity,
1334
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1373
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxs("div", { className: cn(innerContainerClasses, navWrapperClasses), children: [
1335
1374
  /* @__PURE__ */ jsxs(
1336
1375
  "nav",
1337
1376
  {
@@ -1379,7 +1418,7 @@ var NavbarDropdownMenu = ({
1379
1418
  ] })
1380
1419
  ] })
1381
1420
  ] }) })
1382
- ] })
1421
+ ] }) })
1383
1422
  }
1384
1423
  );
1385
1424
  };
@@ -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
@@ -1257,6 +1258,36 @@ var imagePlaceholders = [
1257
1258
  "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
1258
1259
  "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
1259
1260
  ];
1261
+
1262
+ // components/blocks/navbars/layout-variant-utils.ts
1263
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1264
+ const isFloatingBar = layoutVariant === "floatingBar";
1265
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1266
+ return {
1267
+ // Section wrapper classes
1268
+ sectionClasses: cn(
1269
+ "inset-x-0 z-20",
1270
+ isFloatingBar ? "sticky top-4" : "top-0",
1271
+ customClasses?.className
1272
+ ),
1273
+ // Outer container wrapper (only for floating bar)
1274
+ containerWrapperClasses: cn(
1275
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1276
+ ),
1277
+ // Inner container classes
1278
+ innerContainerClasses: cn(
1279
+ !isFloatingBar && !isFullWidthLinks && "container",
1280
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1281
+ customClasses?.containerClassName
1282
+ ),
1283
+ // Navigation wrapper classes (for border and shadow)
1284
+ navWrapperClasses: cn(
1285
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1286
+ ),
1287
+ // Spacing adjustment for Section component
1288
+ spacingOverride: isFloatingBar ? "none" : void 0
1289
+ };
1290
+ }
1260
1291
  var NavbarEducationPlatform = ({
1261
1292
  className,
1262
1293
  containerClassName,
@@ -1275,6 +1306,7 @@ var NavbarEducationPlatform = ({
1275
1306
  company,
1276
1307
  authActions,
1277
1308
  authActionsSlot,
1309
+ layoutVariant = "fullScreenContainerizedLinks",
1278
1310
  background = "white",
1279
1311
  spacing = "none",
1280
1312
  pattern,
@@ -1324,23 +1356,29 @@ var NavbarEducationPlatform = ({
1324
1356
  ] }) }, index);
1325
1357
  });
1326
1358
  };
1359
+ const {
1360
+ sectionClasses,
1361
+ containerWrapperClasses,
1362
+ innerContainerClasses,
1363
+ navWrapperClasses,
1364
+ spacingOverride
1365
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1327
1366
  return /* @__PURE__ */ jsxRuntime.jsxs(
1328
1367
  Section,
1329
1368
  {
1330
1369
  background,
1331
- spacing,
1370
+ spacing: spacingOverride ?? spacing,
1332
1371
  className: cn(
1333
- "border-b border-border lg:border-b",
1334
1372
  isOpen && "border-b-0",
1335
- className
1373
+ sectionClasses
1336
1374
  ),
1337
1375
  pattern,
1338
1376
  patternOpacity,
1339
1377
  children: [
1340
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
1378
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1341
1379
  "nav",
1342
1380
  {
1343
- className: cn("flex items-center justify-between py-4", navClassName),
1381
+ className: cn("flex items-center justify-between py-4", navWrapperClasses, navClassName),
1344
1382
  children: [
1345
1383
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
1346
1384
  renderLogo(),
@@ -1531,7 +1569,7 @@ var NavbarEducationPlatform = ({
1531
1569
  )
1532
1570
  ]
1533
1571
  }
1534
- ) }),
1572
+ ) }) }),
1535
1573
  isOpen && /* @__PURE__ */ jsxRuntime.jsx(
1536
1574
  "div",
1537
1575
  {
@@ -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';
@@ -24,16 +25,6 @@ interface CompanyItem {
24
25
  icon: string;
25
26
  link: string;
26
27
  }
27
- /**
28
- * Logo configuration interface
29
- */
30
- interface LogoConfig {
31
- url?: string;
32
- src?: string;
33
- alt?: string;
34
- title?: React.ReactNode;
35
- className?: string;
36
- }
37
28
  /**
38
29
  * Props for the NavbarEducationPlatform component
39
30
  */
@@ -110,6 +101,10 @@ interface NavbarEducationPlatformProps {
110
101
  * Pattern overlay opacity (0-1)
111
102
  */
112
103
  patternOpacity?: number;
104
+ /**
105
+ * Layout variant for the navbar
106
+ */
107
+ layoutVariant?: NavbarLayoutVariant;
113
108
  /**
114
109
  * OptixFlow image optimization configuration
115
110
  */
@@ -124,6 +119,6 @@ interface NavbarEducationPlatformProps {
124
119
  * Mobile view uses accordion navigation with categorized sections. Ideal for e-learning platforms,
125
120
  * course management systems, and educational technology products.
126
121
  */
127
- declare const NavbarEducationPlatform: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, features, docs, company, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEducationPlatformProps) => react_jsx_runtime.JSX.Element;
122
+ declare const NavbarEducationPlatform: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, features, docs, company, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEducationPlatformProps) => react_jsx_runtime.JSX.Element;
128
123
 
129
124
  export { NavbarEducationPlatform, type NavbarEducationPlatformProps };
@@ -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';
@@ -24,16 +25,6 @@ interface CompanyItem {
24
25
  icon: string;
25
26
  link: string;
26
27
  }
27
- /**
28
- * Logo configuration interface
29
- */
30
- interface LogoConfig {
31
- url?: string;
32
- src?: string;
33
- alt?: string;
34
- title?: React.ReactNode;
35
- className?: string;
36
- }
37
28
  /**
38
29
  * Props for the NavbarEducationPlatform component
39
30
  */
@@ -110,6 +101,10 @@ interface NavbarEducationPlatformProps {
110
101
  * Pattern overlay opacity (0-1)
111
102
  */
112
103
  patternOpacity?: number;
104
+ /**
105
+ * Layout variant for the navbar
106
+ */
107
+ layoutVariant?: NavbarLayoutVariant;
113
108
  /**
114
109
  * OptixFlow image optimization configuration
115
110
  */
@@ -124,6 +119,6 @@ interface NavbarEducationPlatformProps {
124
119
  * Mobile view uses accordion navigation with categorized sections. Ideal for e-learning platforms,
125
120
  * course management systems, and educational technology products.
126
121
  */
127
- declare const NavbarEducationPlatform: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, features, docs, company, authActions, authActionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEducationPlatformProps) => react_jsx_runtime.JSX.Element;
122
+ declare const NavbarEducationPlatform: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, features, docs, company, authActions, authActionsSlot, layoutVariant, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarEducationPlatformProps) => react_jsx_runtime.JSX.Element;
128
123
 
129
124
  export { NavbarEducationPlatform, type NavbarEducationPlatformProps };
@@ -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
@@ -1233,6 +1234,36 @@ var imagePlaceholders = [
1233
1234
  "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
1234
1235
  "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
1235
1236
  ];
1237
+
1238
+ // components/blocks/navbars/layout-variant-utils.ts
1239
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1240
+ const isFloatingBar = layoutVariant === "floatingBar";
1241
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1242
+ return {
1243
+ // Section wrapper classes
1244
+ sectionClasses: cn(
1245
+ "inset-x-0 z-20",
1246
+ isFloatingBar ? "sticky top-4" : "top-0",
1247
+ customClasses?.className
1248
+ ),
1249
+ // Outer container wrapper (only for floating bar)
1250
+ containerWrapperClasses: cn(
1251
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1252
+ ),
1253
+ // Inner container classes
1254
+ innerContainerClasses: cn(
1255
+ !isFloatingBar && !isFullWidthLinks && "container",
1256
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1257
+ customClasses?.containerClassName
1258
+ ),
1259
+ // Navigation wrapper classes (for border and shadow)
1260
+ navWrapperClasses: cn(
1261
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1262
+ ),
1263
+ // Spacing adjustment for Section component
1264
+ spacingOverride: isFloatingBar ? "none" : void 0
1265
+ };
1266
+ }
1236
1267
  var NavbarEducationPlatform = ({
1237
1268
  className,
1238
1269
  containerClassName,
@@ -1251,6 +1282,7 @@ var NavbarEducationPlatform = ({
1251
1282
  company,
1252
1283
  authActions,
1253
1284
  authActionsSlot,
1285
+ layoutVariant = "fullScreenContainerizedLinks",
1254
1286
  background = "white",
1255
1287
  spacing = "none",
1256
1288
  pattern,
@@ -1300,23 +1332,29 @@ var NavbarEducationPlatform = ({
1300
1332
  ] }) }, index);
1301
1333
  });
1302
1334
  };
1335
+ const {
1336
+ sectionClasses,
1337
+ containerWrapperClasses,
1338
+ innerContainerClasses,
1339
+ navWrapperClasses,
1340
+ spacingOverride
1341
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1303
1342
  return /* @__PURE__ */ jsxs(
1304
1343
  Section,
1305
1344
  {
1306
1345
  background,
1307
- spacing,
1346
+ spacing: spacingOverride ?? spacing,
1308
1347
  className: cn(
1309
- "border-b border-border lg:border-b",
1310
1348
  isOpen && "border-b-0",
1311
- className
1349
+ sectionClasses
1312
1350
  ),
1313
1351
  pattern,
1314
1352
  patternOpacity,
1315
1353
  children: [
1316
- /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs(
1354
+ /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
1317
1355
  "nav",
1318
1356
  {
1319
- className: cn("flex items-center justify-between py-4", navClassName),
1357
+ className: cn("flex items-center justify-between py-4", navWrapperClasses, navClassName),
1320
1358
  children: [
1321
1359
  /* @__PURE__ */ jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
1322
1360
  renderLogo(),
@@ -1507,7 +1545,7 @@ var NavbarEducationPlatform = ({
1507
1545
  )
1508
1546
  ]
1509
1547
  }
1510
- ) }),
1548
+ ) }) }),
1511
1549
  isOpen && /* @__PURE__ */ jsx(
1512
1550
  "div",
1513
1551
  {
@@ -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
@@ -1189,6 +1190,36 @@ function SheetTitle({
1189
1190
  // lib/mediaPlaceholders.ts
1190
1191
  var logoPlaceholders = {
1191
1192
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1193
+
1194
+ // components/blocks/navbars/layout-variant-utils.ts
1195
+ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
1196
+ const isFloatingBar = layoutVariant === "floatingBar";
1197
+ const isFullWidthLinks = layoutVariant === "fullScreenFullWidthLinks";
1198
+ return {
1199
+ // Section wrapper classes
1200
+ sectionClasses: cn(
1201
+ "inset-x-0 z-20",
1202
+ isFloatingBar ? "sticky top-4" : "top-0",
1203
+ customClasses?.className
1204
+ ),
1205
+ // Outer container wrapper (only for floating bar)
1206
+ containerWrapperClasses: cn(
1207
+ isFloatingBar && "mx-auto w-full px-2 sm:px-4 lg:px-8 max-w-7xl relative z-10"
1208
+ ),
1209
+ // Inner container classes
1210
+ innerContainerClasses: cn(
1211
+ !isFloatingBar && !isFullWidthLinks && "container",
1212
+ isFullWidthLinks && "mx-auto w-full px-2 sm:px-4 lg:px-8",
1213
+ customClasses?.containerClassName
1214
+ ),
1215
+ // Navigation wrapper classes (for border and shadow)
1216
+ navWrapperClasses: cn(
1217
+ isFloatingBar ? "border border-border/50 shadow-sm rounded-full" : "border-b border-border/50 shadow-sm"
1218
+ ),
1219
+ // Spacing adjustment for Section component
1220
+ spacingOverride: isFloatingBar ? "none" : void 0
1221
+ };
1222
+ }
1192
1223
  var MOBILE_BREAKPOINT = 1024;
1193
1224
  var NavbarEnterpriseMega = ({
1194
1225
  className,
@@ -1205,6 +1236,7 @@ var NavbarEnterpriseMega = ({
1205
1236
  menuLinks,
1206
1237
  actions,
1207
1238
  actionsSlot,
1239
+ layoutVariant = "fullScreenContainerizedLinks",
1208
1240
  background = "white",
1209
1241
  spacing = "none",
1210
1242
  pattern,
@@ -1273,23 +1305,31 @@ var NavbarEnterpriseMega = ({
1273
1305
  ] }) }, index);
1274
1306
  });
1275
1307
  };
1308
+ const {
1309
+ sectionClasses,
1310
+ containerWrapperClasses,
1311
+ innerContainerClasses,
1312
+ navWrapperClasses,
1313
+ spacingOverride
1314
+ } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
1276
1315
  return /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
1277
1316
  /* @__PURE__ */ jsxRuntime.jsx(
1278
1317
  Section,
1279
1318
  {
1280
1319
  background,
1281
- spacing,
1320
+ spacing: spacingOverride ?? spacing,
1282
1321
  className: cn(
1283
- "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center border-b",
1284
- className
1322
+ "pointer-events-auto fixed top-0 z-999 flex w-full items-center justify-center",
1323
+ sectionClasses
1285
1324
  ),
1286
1325
  pattern,
1287
1326
  patternOpacity,
1288
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs(
1289
- "div",
1327
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
1328
+ "nav",
1290
1329
  {
1291
1330
  className: cn(
1292
1331
  "flex h-16 items-center justify-between gap-8",
1332
+ navWrapperClasses,
1293
1333
  navClassName
1294
1334
  ),
1295
1335
  children: [
@@ -1340,7 +1380,7 @@ var NavbarEnterpriseMega = ({
1340
1380
  ] })
1341
1381
  ]
1342
1382
  }
1343
- ) })
1383
+ ) }) })
1344
1384
  }
1345
1385
  ),
1346
1386
  /* @__PURE__ */ jsxRuntime.jsx(