@opensite/ui 0.4.3 → 0.4.5

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 (87) hide show
  1. package/dist/navbar-animated-preview.cjs +17 -12
  2. package/dist/navbar-animated-preview.d.cts +4 -63
  3. package/dist/navbar-animated-preview.d.ts +4 -63
  4. package/dist/navbar-animated-preview.js +17 -12
  5. package/dist/navbar-centered-menu.cjs +60 -51
  6. package/dist/navbar-centered-menu.d.cts +2 -10
  7. package/dist/navbar-centered-menu.d.ts +2 -10
  8. package/dist/navbar-centered-menu.js +60 -51
  9. package/dist/navbar-dark-icons.cjs +4 -4
  10. package/dist/navbar-dark-icons.d.cts +1 -10
  11. package/dist/navbar-dark-icons.d.ts +1 -10
  12. package/dist/navbar-dark-icons.js +4 -4
  13. package/dist/navbar-dropdown-menu.cjs +59 -50
  14. package/dist/navbar-dropdown-menu.d.cts +3 -11
  15. package/dist/navbar-dropdown-menu.d.ts +3 -11
  16. package/dist/navbar-dropdown-menu.js +59 -50
  17. package/dist/navbar-education-platform.cjs +4 -4
  18. package/dist/navbar-education-platform.d.cts +1 -10
  19. package/dist/navbar-education-platform.d.ts +1 -10
  20. package/dist/navbar-education-platform.js +4 -4
  21. package/dist/navbar-enterprise-mega.cjs +7 -7
  22. package/dist/navbar-enterprise-mega.d.cts +2 -36
  23. package/dist/navbar-enterprise-mega.d.ts +2 -36
  24. package/dist/navbar-enterprise-mega.js +7 -7
  25. package/dist/navbar-feature-grid.cjs +4 -4
  26. package/dist/navbar-feature-grid.d.cts +1 -10
  27. package/dist/navbar-feature-grid.d.ts +1 -10
  28. package/dist/navbar-feature-grid.js +4 -4
  29. package/dist/navbar-floating-pill.cjs +4 -4
  30. package/dist/navbar-floating-pill.d.cts +1 -10
  31. package/dist/navbar-floating-pill.d.ts +1 -10
  32. package/dist/navbar-floating-pill.js +4 -4
  33. package/dist/navbar-fullscreen-menu.d.cts +1 -10
  34. package/dist/navbar-fullscreen-menu.d.ts +1 -10
  35. package/dist/navbar-icon-links.cjs +3 -3
  36. package/dist/navbar-icon-links.d.cts +4 -10
  37. package/dist/navbar-icon-links.d.ts +4 -10
  38. package/dist/navbar-icon-links.js +3 -3
  39. package/dist/navbar-image-preview.cjs +16 -11
  40. package/dist/navbar-image-preview.d.cts +6 -16
  41. package/dist/navbar-image-preview.d.ts +6 -16
  42. package/dist/navbar-image-preview.js +16 -11
  43. package/dist/navbar-mega-menu.cjs +26 -28
  44. package/dist/navbar-mega-menu.d.cts +3 -73
  45. package/dist/navbar-mega-menu.d.ts +3 -73
  46. package/dist/navbar-mega-menu.js +26 -28
  47. package/dist/navbar-multi-column-groups.cjs +4 -4
  48. package/dist/navbar-multi-column-groups.d.cts +1 -10
  49. package/dist/navbar-multi-column-groups.d.ts +1 -10
  50. package/dist/navbar-multi-column-groups.js +4 -4
  51. package/dist/navbar-platform-resources.cjs +20 -15
  52. package/dist/navbar-platform-resources.d.cts +2 -36
  53. package/dist/navbar-platform-resources.d.ts +2 -36
  54. package/dist/navbar-platform-resources.js +20 -15
  55. package/dist/navbar-search-focused.cjs +3 -3
  56. package/dist/navbar-search-focused.d.cts +1 -10
  57. package/dist/navbar-search-focused.d.ts +1 -10
  58. package/dist/navbar-search-focused.js +3 -3
  59. package/dist/navbar-sidebar-mobile.cjs +4 -4
  60. package/dist/navbar-sidebar-mobile.d.cts +1 -10
  61. package/dist/navbar-sidebar-mobile.d.ts +1 -10
  62. package/dist/navbar-sidebar-mobile.js +4 -4
  63. package/dist/navbar-simple-links.cjs +58 -49
  64. package/dist/navbar-simple-links.d.cts +1 -10
  65. package/dist/navbar-simple-links.d.ts +1 -10
  66. package/dist/navbar-simple-links.js +58 -49
  67. package/dist/navbar-split-cta.cjs +4 -4
  68. package/dist/navbar-split-cta.d.cts +1 -10
  69. package/dist/navbar-split-cta.d.ts +1 -10
  70. package/dist/navbar-split-cta.js +4 -4
  71. package/dist/navbar-sticky-compact.cjs +4 -4
  72. package/dist/navbar-sticky-compact.d.cts +1 -10
  73. package/dist/navbar-sticky-compact.d.ts +1 -10
  74. package/dist/navbar-sticky-compact.js +4 -4
  75. package/dist/navbar-tabbed-sections.cjs +4 -4
  76. package/dist/navbar-tabbed-sections.d.cts +1 -10
  77. package/dist/navbar-tabbed-sections.d.ts +1 -10
  78. package/dist/navbar-tabbed-sections.js +4 -4
  79. package/dist/navbar-transparent-overlay.cjs +3 -3
  80. package/dist/navbar-transparent-overlay.d.cts +1 -10
  81. package/dist/navbar-transparent-overlay.d.ts +1 -10
  82. package/dist/navbar-transparent-overlay.js +3 -3
  83. package/dist/registry.cjs +222 -192
  84. package/dist/registry.js +222 -192
  85. package/dist/types-D2b35ylu.d.cts +98 -0
  86. package/dist/types-D2b35ylu.d.ts +98 -0
  87. package/package.json +1 -1
@@ -1015,7 +1015,7 @@ function NavigationMenuList({
1015
1015
  {
1016
1016
  "data-slot": "navigation-menu-list",
1017
1017
  className: cn(
1018
- "group flex flex-1 list-none items-center justify-center gap-1",
1018
+ "group flex flex-1 list-none items-center justify-center gap-6",
1019
1019
  className
1020
1020
  ),
1021
1021
  ...props
@@ -1036,7 +1036,7 @@ function NavigationMenuItem({
1036
1036
  );
1037
1037
  }
1038
1038
  var navigationMenuTriggerStyle = classVarianceAuthority.cva(
1039
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1039
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1040
1040
  );
1041
1041
  function NavigationMenuTrigger({
1042
1042
  className,
@@ -1056,7 +1056,7 @@ function NavigationMenuTrigger({
1056
1056
  DynamicIcon,
1057
1057
  {
1058
1058
  name: "lucide/chevron-down",
1059
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
1059
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1060
1060
  "aria-hidden": "true"
1061
1061
  }
1062
1062
  )
@@ -1114,7 +1114,7 @@ function NavigationMenuLink({
1114
1114
  {
1115
1115
  "data-slot": "navigation-menu-link",
1116
1116
  className: cn(
1117
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-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",
1117
+ "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",
1118
1118
  className
1119
1119
  ),
1120
1120
  ...props
@@ -1368,6 +1368,11 @@ var imagePlaceholders = [
1368
1368
  "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
1369
1369
  "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
1370
1370
  ];
1371
+
1372
+ // components/blocks/navbars/types.ts
1373
+ function getLinkUrl(item) {
1374
+ return item.href || item.url || "#";
1375
+ }
1371
1376
  var MOBILE_BREAKPOINT = 1280;
1372
1377
  var NavbarAnimatedPreview = ({
1373
1378
  className,
@@ -1496,7 +1501,7 @@ var NavbarAnimatedPreview = ({
1496
1501
  NavigationMenu,
1497
1502
  {
1498
1503
  className: cn(
1499
- "h-20 max-w-full after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1504
+ "h-20 max-w-full border-b border-border/50 shadow-sm after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1500
1505
  navigationMenuClassName
1501
1506
  ),
1502
1507
  children: /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1565,7 +1570,7 @@ var DesktopMenuItem = ({
1565
1570
  );
1566
1571
  if (hasDropdown) {
1567
1572
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
1568
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-0 py-0 font-normal text-foreground/60 hover:bg-transparent hover:text-foreground focus:bg-transparent focus:text-foreground data-[state=open]:bg-transparent data-[state=open]:text-foreground", children: item.label }),
1573
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "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", children: item.label }),
1569
1574
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "container", children: renderDropdownContent(item, optixFlowConfig) }) }) })
1570
1575
  ] }, `desktop-menu-item-${index}`);
1571
1576
  }
@@ -1573,7 +1578,7 @@ var DesktopMenuItem = ({
1573
1578
  NavigationMenuLink,
1574
1579
  {
1575
1580
  href: item.href,
1576
- className: `${navigationMenuTriggerStyle()} bg-transparent px-0 hover:bg-transparent focus:bg-transparent h-fit font-normal text-foreground/60`,
1581
+ className: `${navigationMenuTriggerStyle()} bg-transparent px-3 py-2 hover:bg-muted focus:bg-muted h-fit font-normal text-foreground/80`,
1577
1582
  children: item.label
1578
1583
  }
1579
1584
  ) }, `desktop-menu-item-${index}`);
@@ -1744,7 +1749,7 @@ var FeaturedImageLink = ({
1744
1749
  optixFlowConfig
1745
1750
  }) => {
1746
1751
  if (!link) return null;
1747
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url, className: "w-full max-w-147.5", children: /* @__PURE__ */ jsxRuntime.jsx(
1752
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.url || "#", className: "w-full max-w-147.5", children: /* @__PURE__ */ jsxRuntime.jsx(
1748
1753
  AspectRatio,
1749
1754
  {
1750
1755
  ratio: 1.77245509,
@@ -1778,7 +1783,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
1778
1783
  return /* @__PURE__ */ jsxRuntime.jsxs(
1779
1784
  Pressable,
1780
1785
  {
1781
- href: link.url,
1786
+ href: getLinkUrl(link),
1782
1787
  className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-7",
1783
1788
  children: [
1784
1789
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
@@ -1814,7 +1819,7 @@ var NavLink = React.forwardRef(
1814
1819
  Pressable,
1815
1820
  {
1816
1821
  ref,
1817
- href: link.url,
1822
+ href: getLinkUrl(link),
1818
1823
  className: "flex w-full gap-2 transition-opacity duration-300",
1819
1824
  onMouseEnter,
1820
1825
  onMouseLeave,
@@ -1828,8 +1833,8 @@ var NavLink = React.forwardRef(
1828
1833
  }
1829
1834
  ) }),
1830
1835
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-2", children: [
1831
- link.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-base leading-normal", children: link.label }),
1832
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-normal text-muted-foreground", children: link.description })
1836
+ link.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm leading-normal", children: link.label }),
1837
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs leading-normal text-muted-foreground", children: link.description })
1833
1838
  ] })
1834
1839
  ]
1835
1840
  }
@@ -2,38 +2,14 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
4
  import { SectionBackground, SectionSpacing } from './types.cjs';
5
+ import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup } from './types-D2b35ylu.cjs';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.cjs';
8
9
  import 'class-variance-authority/types';
9
10
 
10
11
  /**
11
- * SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
12
- * These types provide a consistent interface across all navbar blocks
13
- */
14
- /**
15
- * Base link item - used across all navbar components
16
- */
17
- interface ILinkItem {
18
- label: React.ReactNode;
19
- description?: React.ReactNode;
20
- url: string;
21
- icon?: React.ReactNode;
22
- iconName?: string;
23
- image?: string;
24
- background?: string;
25
- }
26
- /**
27
- * Group of links with optional metadata
28
- */
29
- interface IMenuLinkGroup {
30
- label: React.ReactNode;
31
- description?: string;
32
- image?: string;
33
- links: ILinkItem[];
34
- }
35
- /**
36
- * Featured image link with badge
12
+ * Featured image link with badge (specific to animated-preview)
37
13
  */
38
14
  interface IFeaturedImageLink {
39
15
  url: string;
@@ -42,35 +18,10 @@ interface IFeaturedImageLink {
42
18
  }
43
19
  /**
44
20
  * Layout types for animated preview dropdown menus
45
- *
46
- * LAYOUT OPTIONS FOR AI PAGE BUILDER:
47
- *
48
- * 1. "animated-image-preview"
49
- * - Visual: Grid layout with large image preview on left (360px wide), links list on right
50
- * - Behavior: Image changes on hover based on which link is being hovered
51
- * - Best for: Product showcases, feature highlights, visual content navigation
52
- * - Required data: links[] with label, description, url, image
53
- * - Example use case: Product categories where each has a hero image
54
- *
55
- * 2. "featured-cards-grid"
56
- * - Visual: 2-column grid of featured cards with background images and icons
57
- * - Behavior: Static grid, cards have hover effects
58
- * - Best for: Highlighting key features or products with visual emphasis
59
- * - Required data: featuredLinks[] with label, description, url, iconName, background
60
- * links[] for additional non-featured links
61
- * - Example use case: Premium features or flagship products
62
- *
63
- * 3. "grouped-links-image"
64
- * - Visual: Left side has grouped link sections, right side has single featured image card
65
- * - Behavior: Static layout with organized link groups
66
- * - Best for: Organized navigation with many links grouped by category
67
- * - Required data: groupLinks[] with title and links[]
68
- * imageLink with label, description, url, image, badge (optional)
69
- * - Example use case: Developer resources grouped by topic with featured documentation
70
21
  */
71
22
  type AnimatedPreviewLayout = "animated-image-preview" | "featured-cards-grid" | "grouped-links-image";
72
23
  /**
73
- * Menu link configuration with layout-based dropdown options
24
+ * Menu link configuration with layout-based dropdown options (specific to animated-preview)
74
25
  */
75
26
  interface IMenuLink {
76
27
  label: React.ReactNode;
@@ -82,16 +33,6 @@ interface IMenuLink {
82
33
  groupLinks?: IMenuLinkGroup[];
83
34
  imageLink?: IFeaturedImageLink;
84
35
  }
85
- /**
86
- * Logo configuration interface
87
- */
88
- interface LogoConfig {
89
- url?: string;
90
- src?: string;
91
- alt?: string;
92
- title?: React.ReactNode;
93
- className?: string;
94
- }
95
36
  /**
96
37
  * Props for the NavbarAnimatedPreview component
97
38
  */
@@ -176,4 +117,4 @@ interface NavbarAnimatedPreviewProps {
176
117
  */
177
118
  declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
178
119
 
179
- export { type AnimatedPreviewLayout, type IFeaturedImageLink, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
120
+ export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
@@ -2,38 +2,14 @@ import * as react_jsx_runtime from 'react/jsx-runtime';
2
2
  import * as React from 'react';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
4
  import { SectionBackground, SectionSpacing } from './types.js';
5
+ import { L as LogoConfig, b as ILinkItem, a as IMenuLinkGroup } from './types-D2b35ylu.js';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
6
7
  import 'class-variance-authority';
7
8
  import './button-variants-lRElsmTc.js';
8
9
  import 'class-variance-authority/types';
9
10
 
10
11
  /**
11
- * SHARED TYPE INTERFACES FOR ALL NAVBAR COMPONENTS
12
- * These types provide a consistent interface across all navbar blocks
13
- */
14
- /**
15
- * Base link item - used across all navbar components
16
- */
17
- interface ILinkItem {
18
- label: React.ReactNode;
19
- description?: React.ReactNode;
20
- url: string;
21
- icon?: React.ReactNode;
22
- iconName?: string;
23
- image?: string;
24
- background?: string;
25
- }
26
- /**
27
- * Group of links with optional metadata
28
- */
29
- interface IMenuLinkGroup {
30
- label: React.ReactNode;
31
- description?: string;
32
- image?: string;
33
- links: ILinkItem[];
34
- }
35
- /**
36
- * Featured image link with badge
12
+ * Featured image link with badge (specific to animated-preview)
37
13
  */
38
14
  interface IFeaturedImageLink {
39
15
  url: string;
@@ -42,35 +18,10 @@ interface IFeaturedImageLink {
42
18
  }
43
19
  /**
44
20
  * Layout types for animated preview dropdown menus
45
- *
46
- * LAYOUT OPTIONS FOR AI PAGE BUILDER:
47
- *
48
- * 1. "animated-image-preview"
49
- * - Visual: Grid layout with large image preview on left (360px wide), links list on right
50
- * - Behavior: Image changes on hover based on which link is being hovered
51
- * - Best for: Product showcases, feature highlights, visual content navigation
52
- * - Required data: links[] with label, description, url, image
53
- * - Example use case: Product categories where each has a hero image
54
- *
55
- * 2. "featured-cards-grid"
56
- * - Visual: 2-column grid of featured cards with background images and icons
57
- * - Behavior: Static grid, cards have hover effects
58
- * - Best for: Highlighting key features or products with visual emphasis
59
- * - Required data: featuredLinks[] with label, description, url, iconName, background
60
- * links[] for additional non-featured links
61
- * - Example use case: Premium features or flagship products
62
- *
63
- * 3. "grouped-links-image"
64
- * - Visual: Left side has grouped link sections, right side has single featured image card
65
- * - Behavior: Static layout with organized link groups
66
- * - Best for: Organized navigation with many links grouped by category
67
- * - Required data: groupLinks[] with title and links[]
68
- * imageLink with label, description, url, image, badge (optional)
69
- * - Example use case: Developer resources grouped by topic with featured documentation
70
21
  */
71
22
  type AnimatedPreviewLayout = "animated-image-preview" | "featured-cards-grid" | "grouped-links-image";
72
23
  /**
73
- * Menu link configuration with layout-based dropdown options
24
+ * Menu link configuration with layout-based dropdown options (specific to animated-preview)
74
25
  */
75
26
  interface IMenuLink {
76
27
  label: React.ReactNode;
@@ -82,16 +33,6 @@ interface IMenuLink {
82
33
  groupLinks?: IMenuLinkGroup[];
83
34
  imageLink?: IFeaturedImageLink;
84
35
  }
85
- /**
86
- * Logo configuration interface
87
- */
88
- interface LogoConfig {
89
- url?: string;
90
- src?: string;
91
- alt?: string;
92
- title?: React.ReactNode;
93
- className?: string;
94
- }
95
36
  /**
96
37
  * Props for the NavbarAnimatedPreview component
97
38
  */
@@ -176,4 +117,4 @@ interface NavbarAnimatedPreviewProps {
176
117
  */
177
118
  declare const NavbarAnimatedPreview: ({ className, containerClassName, navClassName, navigationMenuClassName, actionsClassName, logo, logoSlot, logoClassName, menuLinks, navigationSlot, actions, actionsSlot, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarAnimatedPreviewProps) => react_jsx_runtime.JSX.Element;
178
119
 
179
- export { type AnimatedPreviewLayout, type IFeaturedImageLink, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
120
+ export { type AnimatedPreviewLayout, type IFeaturedImageLink, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarAnimatedPreview, type NavbarAnimatedPreviewProps };
@@ -989,7 +989,7 @@ function NavigationMenuList({
989
989
  {
990
990
  "data-slot": "navigation-menu-list",
991
991
  className: cn(
992
- "group flex flex-1 list-none items-center justify-center gap-1",
992
+ "group flex flex-1 list-none items-center justify-center gap-6",
993
993
  className
994
994
  ),
995
995
  ...props
@@ -1010,7 +1010,7 @@ function NavigationMenuItem({
1010
1010
  );
1011
1011
  }
1012
1012
  var navigationMenuTriggerStyle = cva(
1013
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1013
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1014
1014
  );
1015
1015
  function NavigationMenuTrigger({
1016
1016
  className,
@@ -1030,7 +1030,7 @@ function NavigationMenuTrigger({
1030
1030
  DynamicIcon,
1031
1031
  {
1032
1032
  name: "lucide/chevron-down",
1033
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
1033
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1034
1034
  "aria-hidden": "true"
1035
1035
  }
1036
1036
  )
@@ -1088,7 +1088,7 @@ function NavigationMenuLink({
1088
1088
  {
1089
1089
  "data-slot": "navigation-menu-link",
1090
1090
  className: cn(
1091
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-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",
1091
+ "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",
1092
1092
  className
1093
1093
  ),
1094
1094
  ...props
@@ -1342,6 +1342,11 @@ var imagePlaceholders = [
1342
1342
  "https://toastability-production.s3.amazonaws.com/e13qu3083lkhdg7th64vb628172a",
1343
1343
  "https://toastability-production.s3.amazonaws.com/w87w0fyjdol9yzwo7yywkgxidvzo"
1344
1344
  ];
1345
+
1346
+ // components/blocks/navbars/types.ts
1347
+ function getLinkUrl(item) {
1348
+ return item.href || item.url || "#";
1349
+ }
1345
1350
  var MOBILE_BREAKPOINT = 1280;
1346
1351
  var NavbarAnimatedPreview = ({
1347
1352
  className,
@@ -1470,7 +1475,7 @@ var NavbarAnimatedPreview = ({
1470
1475
  NavigationMenu,
1471
1476
  {
1472
1477
  className: cn(
1473
- "h-20 max-w-full after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1478
+ "h-20 max-w-full border-b border-border/50 shadow-sm after:absolute after:inset-0 after:z-998 after:block after:size-full after:bg-background after:content-[''] [&>div:last-child>div]:mt-0 [&>div:last-child>div]:animate-none [&>div:last-child>div]:rounded-none [&>div:last-child>div]:border-0 [&>div:last-child>div]:shadow-[0px_-1px_0px_0px_rgba(0,0,0,0.05),0px_0px_0px_1px_rgba(17,26,37,0.05),0px_2px_5px_0px_rgba(16,25,36,0.1),0px_5px_20px_0px_rgba(16,25,36,0.1)]!",
1474
1479
  navigationMenuClassName
1475
1480
  ),
1476
1481
  children: /* @__PURE__ */ jsxs(
@@ -1539,7 +1544,7 @@ var DesktopMenuItem = ({
1539
1544
  );
1540
1545
  if (hasDropdown) {
1541
1546
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
1542
- /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-0 py-0 font-normal text-foreground/60 hover:bg-transparent hover:text-foreground focus:bg-transparent focus:text-foreground data-[state=open]:bg-transparent data-[state=open]:text-foreground", children: item.label }),
1547
+ /* @__PURE__ */ jsx(NavigationMenuTrigger, { className: "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", children: item.label }),
1543
1548
  /* @__PURE__ */ jsx(NavigationMenuContent, { className: "hidden rounded-xl! border-0! p-0! xl:block", children: /* @__PURE__ */ jsx("div", { className: "w-dvw animate-[fade-in-slide-down_0.35s_cubic-bezier(0.33,1,0.68,1)_forwards] px-8 pt-6 pb-12", children: /* @__PURE__ */ jsx("div", { className: "container", children: renderDropdownContent(item, optixFlowConfig) }) }) })
1544
1549
  ] }, `desktop-menu-item-${index}`);
1545
1550
  }
@@ -1547,7 +1552,7 @@ var DesktopMenuItem = ({
1547
1552
  NavigationMenuLink,
1548
1553
  {
1549
1554
  href: item.href,
1550
- className: `${navigationMenuTriggerStyle()} bg-transparent px-0 hover:bg-transparent focus:bg-transparent h-fit font-normal text-foreground/60`,
1555
+ className: `${navigationMenuTriggerStyle()} bg-transparent px-3 py-2 hover:bg-muted focus:bg-muted h-fit font-normal text-foreground/80`,
1551
1556
  children: item.label
1552
1557
  }
1553
1558
  ) }, `desktop-menu-item-${index}`);
@@ -1718,7 +1723,7 @@ var FeaturedImageLink = ({
1718
1723
  optixFlowConfig
1719
1724
  }) => {
1720
1725
  if (!link) return null;
1721
- return /* @__PURE__ */ jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsx(Pressable, { href: link.url, className: "w-full max-w-147.5", children: /* @__PURE__ */ jsx(
1726
+ return /* @__PURE__ */ jsx("div", { className: "hidden xl:block", children: /* @__PURE__ */ jsx(Pressable, { href: link.url || "#", className: "w-full max-w-147.5", children: /* @__PURE__ */ jsx(
1722
1727
  AspectRatio,
1723
1728
  {
1724
1729
  ratio: 1.77245509,
@@ -1752,7 +1757,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
1752
1757
  return /* @__PURE__ */ jsxs(
1753
1758
  Pressable,
1754
1759
  {
1755
- href: link.url,
1760
+ href: getLinkUrl(link),
1756
1761
  className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-7",
1757
1762
  children: [
1758
1763
  /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
@@ -1788,7 +1793,7 @@ var NavLink = forwardRef(
1788
1793
  Pressable,
1789
1794
  {
1790
1795
  ref,
1791
- href: link.url,
1796
+ href: getLinkUrl(link),
1792
1797
  className: "flex w-full gap-2 transition-opacity duration-300",
1793
1798
  onMouseEnter,
1794
1799
  onMouseLeave,
@@ -1802,8 +1807,8 @@ var NavLink = forwardRef(
1802
1807
  }
1803
1808
  ) }),
1804
1809
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-2", children: [
1805
- link.label && /* @__PURE__ */ jsx("div", { className: "text-base leading-normal", children: link.label }),
1806
- /* @__PURE__ */ jsx("div", { className: "text-sm leading-normal text-muted-foreground", children: link.description })
1810
+ link.label && /* @__PURE__ */ jsx("div", { className: "text-sm leading-normal", children: link.label }),
1811
+ /* @__PURE__ */ jsx("div", { className: "text-xs leading-normal text-muted-foreground", children: link.description })
1807
1812
  ] })
1808
1813
  ]
1809
1814
  }
@@ -987,7 +987,7 @@ function NavigationMenuList({
987
987
  {
988
988
  "data-slot": "navigation-menu-list",
989
989
  className: cn(
990
- "group flex flex-1 list-none items-center justify-center gap-1",
990
+ "group flex flex-1 list-none items-center justify-center gap-6",
991
991
  className
992
992
  ),
993
993
  ...props
@@ -1008,7 +1008,7 @@ function NavigationMenuItem({
1008
1008
  );
1009
1009
  }
1010
1010
  var navigationMenuTriggerStyle = classVarianceAuthority.cva(
1011
- "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-accent data-[state=open]:text-accent-foreground data-[state=open]:focus:bg-accent data-[state=open]:bg-accent/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1011
+ "group inline-flex h-9 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium text-foreground/80 hover:bg-muted hover:text-foreground focus:bg-muted focus:text-foreground disabled:pointer-events-none disabled:opacity-50 data-[state=open]:hover:bg-muted data-[state=open]:text-foreground data-[state=open]:focus:bg-muted data-[state=open]:bg-muted/50 focus-visible:ring-ring/50 outline-none transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1"
1012
1012
  );
1013
1013
  function NavigationMenuTrigger({
1014
1014
  className,
@@ -1028,7 +1028,7 @@ function NavigationMenuTrigger({
1028
1028
  DynamicIcon,
1029
1029
  {
1030
1030
  name: "lucide/chevron-down",
1031
- className: "relative top-[1px] ml-1 size-3 transition duration-300 group-data-[state=open]:rotate-180",
1031
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1032
1032
  "aria-hidden": "true"
1033
1033
  }
1034
1034
  )
@@ -1062,7 +1062,7 @@ function NavigationMenuLink({
1062
1062
  {
1063
1063
  "data-slot": "navigation-menu-link",
1064
1064
  className: cn(
1065
- "data-[active=true]:focus:bg-accent data-[active=true]:hover:bg-accent data-[active=true]:bg-accent/50 data-[active=true]:text-accent-foreground hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-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",
1065
+ "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",
1066
1066
  className
1067
1067
  ),
1068
1068
  ...props
@@ -1179,7 +1179,7 @@ var SubMenuLink = ({ item }) => {
1179
1179
  return /* @__PURE__ */ jsxRuntime.jsxs(
1180
1180
  Pressable,
1181
1181
  {
1182
- className: "flex flex-row gap-4 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-muted hover:text-accent-foreground",
1182
+ className: "flex flex-row gap-4 rounded-md p-3 leading-none no-underline transition-colors outline-none select-none hover:bg-muted hover:text-foreground",
1183
1183
  href: item.url,
1184
1184
  children: [
1185
1185
  item.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 20, className: "shrink-0" }) }),
@@ -1202,7 +1202,7 @@ var renderMenuItem = (item) => {
1202
1202
  NavigationMenuLink,
1203
1203
  {
1204
1204
  href: item.url,
1205
- className: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-accent-foreground",
1205
+ className: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-foreground",
1206
1206
  children: item.title
1207
1207
  }
1208
1208
  ) }, item.title);
@@ -1316,56 +1316,65 @@ var NavbarCenteredMenu = ({
1316
1316
  className: cn(className),
1317
1317
  pattern,
1318
1318
  patternOpacity,
1319
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
1320
- /* @__PURE__ */ jsxRuntime.jsxs(
1321
- "nav",
1322
- {
1323
- className: cn("hidden justify-between lg:flex", desktopNavClassName),
1324
- children: [
1325
- renderLogo(),
1326
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
1327
- NavigationMenuWithoutViewport,
1328
- {
1329
- className: navigationMenuClassName,
1330
- children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { className: "relative", children: renderMenu() })
1331
- }
1332
- ) }) }),
1333
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
1334
- ]
1335
- }
1336
- ),
1337
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1338
- renderLogo(),
1339
- /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
1340
- /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
1341
- Pressable,
1319
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
1320
+ "div",
1321
+ {
1322
+ className: cn(
1323
+ "container border-b border-border/50 shadow-sm",
1324
+ containerClassName
1325
+ ),
1326
+ children: [
1327
+ /* @__PURE__ */ jsxRuntime.jsxs(
1328
+ "nav",
1342
1329
  {
1343
- variant: "outline",
1344
- size: "icon",
1345
- asButton: true,
1346
- onClick: () => {
1347
- },
1348
- children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
1330
+ className: cn("hidden justify-between lg:flex", desktopNavClassName),
1331
+ children: [
1332
+ renderLogo(),
1333
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-6", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsxRuntime.jsx(
1334
+ NavigationMenuWithoutViewport,
1335
+ {
1336
+ className: navigationMenuClassName,
1337
+ children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { className: "relative", children: renderMenu() })
1338
+ }
1339
+ ) }) }),
1340
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
1341
+ ]
1349
1342
  }
1350
- ) }),
1351
- /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { className: "overflow-y-auto", children: [
1352
- /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: renderLogo() }) }),
1353
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
1354
- /* @__PURE__ */ jsxRuntime.jsx(
1355
- Accordion,
1343
+ ),
1344
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center justify-between", children: [
1345
+ renderLogo(),
1346
+ /* @__PURE__ */ jsxRuntime.jsxs(Sheet, { children: [
1347
+ /* @__PURE__ */ jsxRuntime.jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
1348
+ Pressable,
1356
1349
  {
1357
- type: "single",
1358
- collapsible: true,
1359
- className: "flex w-full flex-col gap-4",
1360
- children: renderMobileMenu()
1350
+ variant: "outline",
1351
+ size: "icon",
1352
+ asButton: true,
1353
+ onClick: () => {
1354
+ },
1355
+ children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
1361
1356
  }
1362
- ),
1363
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
1357
+ ) }),
1358
+ /* @__PURE__ */ jsxRuntime.jsxs(SheetContent, { className: "overflow-y-auto", children: [
1359
+ /* @__PURE__ */ jsxRuntime.jsx(SheetHeader, { children: /* @__PURE__ */ jsxRuntime.jsx(SheetTitle, { children: renderLogo() }) }),
1360
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
1361
+ /* @__PURE__ */ jsxRuntime.jsx(
1362
+ Accordion,
1363
+ {
1364
+ type: "single",
1365
+ collapsible: true,
1366
+ className: "flex w-full flex-col gap-4",
1367
+ children: renderMobileMenu()
1368
+ }
1369
+ ),
1370
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
1371
+ ] })
1372
+ ] })
1364
1373
  ] })
1365
- ] })
1366
- ] })
1367
- ] }) })
1368
- ] })
1374
+ ] }) })
1375
+ ]
1376
+ }
1377
+ )
1369
1378
  }
1370
1379
  );
1371
1380
  };
@@ -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 } from './types-D2b35ylu.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';
@@ -9,6 +10,7 @@ import 'class-variance-authority/types';
9
10
 
10
11
  /**
11
12
  * Menu item interface for navigation
13
+ * Component-specific type using 'title' and 'url' fields
12
14
  */
13
15
  interface MenuItem {
14
16
  title: string;
@@ -17,16 +19,6 @@ interface MenuItem {
17
19
  icon?: string;
18
20
  items?: MenuItem[];
19
21
  }
20
- /**
21
- * Logo configuration interface
22
- */
23
- interface LogoConfig {
24
- url?: string;
25
- src?: string;
26
- alt?: string;
27
- title?: React.ReactNode;
28
- className?: string;
29
- }
30
22
  /**
31
23
  * Props for the NavbarCenteredMenu component
32
24
  */