@opensite/ui 0.4.4 → 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 (81) hide show
  1. package/dist/navbar-animated-preview.cjs +12 -7
  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 +12 -7
  5. package/dist/navbar-centered-menu.cjs +55 -46
  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 +55 -46
  9. package/dist/navbar-dark-icons.cjs +1 -1
  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 +1 -1
  13. package/dist/navbar-dropdown-menu.cjs +54 -45
  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 +54 -45
  17. package/dist/navbar-education-platform.cjs +1 -1
  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 +1 -1
  21. package/dist/navbar-enterprise-mega.cjs +2 -2
  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 +2 -2
  25. package/dist/navbar-feature-grid.cjs +1 -1
  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 +1 -1
  29. package/dist/navbar-floating-pill.cjs +1 -1
  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 +1 -1
  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.d.cts +4 -10
  36. package/dist/navbar-icon-links.d.ts +4 -10
  37. package/dist/navbar-image-preview.cjs +11 -6
  38. package/dist/navbar-image-preview.d.cts +6 -16
  39. package/dist/navbar-image-preview.d.ts +6 -16
  40. package/dist/navbar-image-preview.js +11 -6
  41. package/dist/navbar-mega-menu.cjs +16 -11
  42. package/dist/navbar-mega-menu.d.cts +3 -73
  43. package/dist/navbar-mega-menu.d.ts +3 -73
  44. package/dist/navbar-mega-menu.js +16 -11
  45. package/dist/navbar-multi-column-groups.cjs +1 -1
  46. package/dist/navbar-multi-column-groups.d.cts +1 -10
  47. package/dist/navbar-multi-column-groups.d.ts +1 -10
  48. package/dist/navbar-multi-column-groups.js +1 -1
  49. package/dist/navbar-platform-resources.cjs +17 -12
  50. package/dist/navbar-platform-resources.d.cts +2 -36
  51. package/dist/navbar-platform-resources.d.ts +2 -36
  52. package/dist/navbar-platform-resources.js +17 -12
  53. package/dist/navbar-search-focused.d.cts +1 -10
  54. package/dist/navbar-search-focused.d.ts +1 -10
  55. package/dist/navbar-sidebar-mobile.cjs +1 -1
  56. package/dist/navbar-sidebar-mobile.d.cts +1 -10
  57. package/dist/navbar-sidebar-mobile.d.ts +1 -10
  58. package/dist/navbar-sidebar-mobile.js +1 -1
  59. package/dist/navbar-simple-links.cjs +54 -45
  60. package/dist/navbar-simple-links.d.cts +1 -10
  61. package/dist/navbar-simple-links.d.ts +1 -10
  62. package/dist/navbar-simple-links.js +54 -45
  63. package/dist/navbar-split-cta.cjs +1 -1
  64. package/dist/navbar-split-cta.d.cts +1 -10
  65. package/dist/navbar-split-cta.d.ts +1 -10
  66. package/dist/navbar-split-cta.js +1 -1
  67. package/dist/navbar-sticky-compact.cjs +1 -1
  68. package/dist/navbar-sticky-compact.d.cts +1 -10
  69. package/dist/navbar-sticky-compact.d.ts +1 -10
  70. package/dist/navbar-sticky-compact.js +1 -1
  71. package/dist/navbar-tabbed-sections.cjs +1 -1
  72. package/dist/navbar-tabbed-sections.d.cts +1 -10
  73. package/dist/navbar-tabbed-sections.d.ts +1 -10
  74. package/dist/navbar-tabbed-sections.js +1 -1
  75. package/dist/navbar-transparent-overlay.d.cts +1 -10
  76. package/dist/navbar-transparent-overlay.d.ts +1 -10
  77. package/dist/registry.cjs +200 -168
  78. package/dist/registry.js +200 -168
  79. package/dist/types-D2b35ylu.d.cts +98 -0
  80. package/dist/types-D2b35ylu.d.ts +98 -0
  81. package/package.json +1 -1
@@ -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-2.5 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
  )
@@ -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(
@@ -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 };
@@ -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-2.5 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
  )
@@ -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(
@@ -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
  }
@@ -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-2.5 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
  )
@@ -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
  */
@@ -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 } 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';
@@ -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
  */
@@ -1004,7 +1004,7 @@ function NavigationMenuTrigger({
1004
1004
  DynamicIcon,
1005
1005
  {
1006
1006
  name: "lucide/chevron-down",
1007
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1007
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1008
1008
  "aria-hidden": "true"
1009
1009
  }
1010
1010
  )
@@ -1292,56 +1292,65 @@ var NavbarCenteredMenu = ({
1292
1292
  className: cn(className),
1293
1293
  pattern,
1294
1294
  patternOpacity,
1295
- children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
1296
- /* @__PURE__ */ jsxs(
1297
- "nav",
1298
- {
1299
- className: cn("hidden justify-between lg:flex", desktopNavClassName),
1300
- children: [
1301
- renderLogo(),
1302
- /* @__PURE__ */ jsx("div", { className: "flex items-center gap-6", children: /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(
1303
- NavigationMenuWithoutViewport,
1304
- {
1305
- className: navigationMenuClassName,
1306
- children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "relative", children: renderMenu() })
1307
- }
1308
- ) }) }),
1309
- /* @__PURE__ */ jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
1310
- ]
1311
- }
1312
- ),
1313
- /* @__PURE__ */ jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1314
- renderLogo(),
1315
- /* @__PURE__ */ jsxs(Sheet, { children: [
1316
- /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1317
- Pressable,
1295
+ children: /* @__PURE__ */ jsxs(
1296
+ "div",
1297
+ {
1298
+ className: cn(
1299
+ "container border-b border-border/50 shadow-sm",
1300
+ containerClassName
1301
+ ),
1302
+ children: [
1303
+ /* @__PURE__ */ jsxs(
1304
+ "nav",
1318
1305
  {
1319
- variant: "outline",
1320
- size: "icon",
1321
- asButton: true,
1322
- onClick: () => {
1323
- },
1324
- children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
1306
+ className: cn("hidden justify-between lg:flex", desktopNavClassName),
1307
+ children: [
1308
+ renderLogo(),
1309
+ /* @__PURE__ */ jsx("div", { className: "flex items-center gap-6", children: /* @__PURE__ */ jsx("div", { className: "flex items-center", children: /* @__PURE__ */ jsx(
1310
+ NavigationMenuWithoutViewport,
1311
+ {
1312
+ className: navigationMenuClassName,
1313
+ children: /* @__PURE__ */ jsx(NavigationMenuList, { className: "relative", children: renderMenu() })
1314
+ }
1315
+ ) }) }),
1316
+ /* @__PURE__ */ jsx("div", { className: cn("flex gap-2", actionsClassName), children: renderAuthActions() })
1317
+ ]
1325
1318
  }
1326
- ) }),
1327
- /* @__PURE__ */ jsxs(SheetContent, { className: "overflow-y-auto", children: [
1328
- /* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: renderLogo() }) }),
1329
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
1330
- /* @__PURE__ */ jsx(
1331
- Accordion,
1319
+ ),
1320
+ /* @__PURE__ */ jsx("div", { className: cn("block lg:hidden", mobileNavClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-between", children: [
1321
+ renderLogo(),
1322
+ /* @__PURE__ */ jsxs(Sheet, { children: [
1323
+ /* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsx(
1324
+ Pressable,
1332
1325
  {
1333
- type: "single",
1334
- collapsible: true,
1335
- className: "flex w-full flex-col gap-4",
1336
- children: renderMobileMenu()
1326
+ variant: "outline",
1327
+ size: "icon",
1328
+ asButton: true,
1329
+ onClick: () => {
1330
+ },
1331
+ children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 16 })
1337
1332
  }
1338
- ),
1339
- /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
1333
+ ) }),
1334
+ /* @__PURE__ */ jsxs(SheetContent, { className: "overflow-y-auto", children: [
1335
+ /* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: renderLogo() }) }),
1336
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 p-4", children: [
1337
+ /* @__PURE__ */ jsx(
1338
+ Accordion,
1339
+ {
1340
+ type: "single",
1341
+ collapsible: true,
1342
+ className: "flex w-full flex-col gap-4",
1343
+ children: renderMobileMenu()
1344
+ }
1345
+ ),
1346
+ /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", actionsClassName), children: renderAuthActions() })
1347
+ ] })
1348
+ ] })
1340
1349
  ] })
1341
- ] })
1342
- ] })
1343
- ] }) })
1344
- ] })
1350
+ ] }) })
1351
+ ]
1352
+ }
1353
+ )
1345
1354
  }
1346
1355
  );
1347
1356
  };
@@ -1051,7 +1051,7 @@ function NavigationMenuTrigger({
1051
1051
  DynamicIcon,
1052
1052
  {
1053
1053
  name: "lucide/chevron-down",
1054
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1054
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1055
1055
  "aria-hidden": "true"
1056
1056
  }
1057
1057
  )