@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
@@ -2,83 +2,13 @@ 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, I as IMenuLink } from './types-D2b35ylu.js';
6
+ export { b as ILinkItem, a as IMenuLinkGroup, M as MegaMenuLayout } from './types-D2b35ylu.js';
5
7
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
6
8
  import 'class-variance-authority';
7
9
  import './button-variants-lRElsmTc.js';
8
10
  import 'class-variance-authority/types';
9
11
 
10
- /**
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
- * Layout types for mega menu dropdowns
37
- *
38
- * LAYOUT OPTIONS FOR AI PAGE BUILDER:
39
- *
40
- * 1. "animated-image-preview"
41
- * - Visual: Grid layout with large image preview on left (360px wide), links list on right
42
- * - Behavior: Image changes on hover based on which link is being hovered over
43
- * - Best for: Product showcases, visual content navigation, feature highlights
44
- * - Required data: links[] with label, description, url, image
45
- * - Example use case: Product categories where each product has a hero image that displays on hover
46
- *
47
- * 2. "simple-grid"
48
- * - Visual: 2-column responsive grid of cards with icons or images
49
- * - Behavior: Static grid with hover effects on cards
50
- * - Best for: Feature lists, service offerings, general navigation with icons
51
- * - Required data: links[] with label, description, url, icon/iconName OR image
52
- * - Example use case: Features menu showing analytics, reports, dashboards with icons
53
- *
54
- * 3. "list-with-icons"
55
- * - Visual: Single column list of items with small icons on the left
56
- * - Behavior: Compact list with hover effects
57
- * - Best for: Simple navigation, documentation links, resource lists
58
- * - Required data: links[] with label, description (optional), url, icon/iconName
59
- * - Example use case: Resources menu with documentation, API reference, guides
60
- */
61
- type MegaMenuLayout = "animated-image-preview" | "simple-grid" | "list-with-icons";
62
- /**
63
- * Menu link configuration with layout-based dropdown options
64
- */
65
- interface IMenuLink {
66
- label: React.ReactNode;
67
- href?: string;
68
- layout?: MegaMenuLayout;
69
- links?: ILinkItem[];
70
- dropdownGroups?: IMenuLinkGroup[];
71
- }
72
- /**
73
- * Logo configuration interface
74
- */
75
- interface LogoConfig {
76
- url?: string;
77
- desktopSrc?: string;
78
- mobileSrc?: string;
79
- alt?: string;
80
- className?: string;
81
- }
82
12
  /**
83
13
  * Props for the NavbarMegaMenu component
84
14
  */
@@ -158,4 +88,4 @@ interface NavbarMegaMenuProps {
158
88
  */
159
89
  declare const NavbarMegaMenu: ({ className, containerClassName, navClassName, navigationMenuListClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, menuLinks, actions, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarMegaMenuProps) => react_jsx_runtime.JSX.Element;
160
90
 
161
- export { type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, type MegaMenuLayout, NavbarMegaMenu, type NavbarMegaMenuProps };
91
+ export { IMenuLink, LogoConfig, NavbarMegaMenu, type NavbarMegaMenuProps };
@@ -971,7 +971,7 @@ function NavigationMenuTrigger({
971
971
  DynamicIcon,
972
972
  {
973
973
  name: "lucide/chevron-down",
974
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
974
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
975
975
  "aria-hidden": "true"
976
976
  }
977
977
  )
@@ -1036,6 +1036,11 @@ function NavigationMenuLink({
1036
1036
  }
1037
1037
  );
1038
1038
  }
1039
+
1040
+ // components/blocks/navbars/types.ts
1041
+ function getLinkUrl(item) {
1042
+ return item.href || item.url || "#";
1043
+ }
1039
1044
  var DesktopMenuItem = ({
1040
1045
  link,
1041
1046
  index,
@@ -1088,14 +1093,14 @@ var DesktopMenuItem = ({
1088
1093
  /* @__PURE__ */ jsx("ul", { children: link.links.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1089
1094
  NavigationMenuLink,
1090
1095
  {
1091
- href: item.url,
1096
+ href: getLinkUrl(item),
1092
1097
  className: "flex items-center gap-4 rounded-lg px-4 py-3 hover:bg-muted",
1093
1098
  "data-index": idx,
1094
1099
  onMouseEnter: handleMouseEnter,
1095
1100
  onMouseLeave: handleMouseLeave,
1096
1101
  children: /* @__PURE__ */ jsxs("div", { children: [
1097
- /* @__PURE__ */ jsx("h3", { className: "leading-normal font-medium", children: item.label }),
1098
- item.description && /* @__PURE__ */ jsx("p", { className: "leading-normal text-muted-foreground", children: item.description })
1102
+ /* @__PURE__ */ jsx("h3", { className: "text-sm leading-normal font-medium", children: item.label }),
1103
+ item.description && /* @__PURE__ */ jsx("p", { className: "text-xs leading-normal text-muted-foreground", children: item.description })
1099
1104
  ] })
1100
1105
  }
1101
1106
  ) }, `desktop-nav-sublink-${idx}`)) })
@@ -1106,13 +1111,13 @@ var DesktopMenuItem = ({
1106
1111
  if (layout === "simple-grid" && link.links) {
1107
1112
  return /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
1108
1113
  /* @__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: link.label }),
1109
- /* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[520px] p-6", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1114
+ /* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[700px] p-6", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1110
1115
  NavigationMenuLink,
1111
1116
  {
1112
- href: item.url,
1117
+ href: getLinkUrl(item),
1113
1118
  className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-muted hover:text-foreground",
1114
1119
  children: [
1115
- item.image && /* @__PURE__ */ jsx("div", { className: "h-16 w-16 shrink-0 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
1120
+ item.image && /* @__PURE__ */ jsx("div", { className: "h-20 w-20 shrink-0 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
1116
1121
  Img,
1117
1122
  {
1118
1123
  src: item.image,
@@ -1121,7 +1126,7 @@ var DesktopMenuItem = ({
1121
1126
  optixFlowConfig
1122
1127
  }
1123
1128
  ) }),
1124
- !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-16 w-16 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
1129
+ !item.image && (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-10 w-10 shrink-0 items-center justify-center rounded-md border border-border bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
1125
1130
  /* @__PURE__ */ jsxs("div", { children: [
1126
1131
  /* @__PURE__ */ jsx("div", { className: "text-sm font-medium", children: item.label }),
1127
1132
  item.description && /* @__PURE__ */ jsx("div", { className: "text-sm font-normal text-muted-foreground", children: item.description })
@@ -1138,7 +1143,7 @@ var DesktopMenuItem = ({
1138
1143
  /* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[400px] p-4", children: /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-1", children: link.links.map((item, itemIndex) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
1139
1144
  NavigationMenuLink,
1140
1145
  {
1141
- href: item.url,
1146
+ href: getLinkUrl(item),
1142
1147
  className: "flex items-start gap-3 rounded-lg p-3 hover:bg-muted",
1143
1148
  children: [
1144
1149
  (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "flex h-8 w-8 items-center justify-center rounded-md bg-muted/40 text-muted-foreground", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
@@ -1182,7 +1187,7 @@ var MobileSubmenu = ({
1182
1187
  return /* @__PURE__ */ jsxs(
1183
1188
  Pressable,
1184
1189
  {
1185
- href: item.url,
1190
+ href: getLinkUrl(item),
1186
1191
  className: "flex items-start gap-4 border-b border-border px-8 py-5",
1187
1192
  children: [
1188
1193
  item.image && /* @__PURE__ */ jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
@@ -1297,7 +1302,7 @@ var NavbarMegaMenu = ({
1297
1302
  navClassName
1298
1303
  ),
1299
1304
  children: [
1300
- /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-12 py-4", children: [
1305
+ /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-between gap-12 border-b border-border/50 py-4 shadow-sm", children: [
1301
1306
  /* @__PURE__ */ jsxs("div", { children: [
1302
1307
  (!open || submenuIndex === null) && renderLogo(),
1303
1308
  open && submenuIndex !== null && /* @__PURE__ */ jsxs(
@@ -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
  )
@@ -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';
@@ -23,16 +24,6 @@ interface MenuItem {
23
24
  url?: string;
24
25
  groups?: MenuGroup[];
25
26
  }
26
- /**
27
- * Logo configuration interface
28
- */
29
- interface LogoConfig {
30
- url?: string;
31
- src?: string;
32
- alt?: string;
33
- title?: React.ReactNode;
34
- className?: string;
35
- }
36
27
  /**
37
28
  * Props for the NavbarMultiColumnGroups component
38
29
  */
@@ -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';
@@ -23,16 +24,6 @@ interface MenuItem {
23
24
  url?: string;
24
25
  groups?: MenuGroup[];
25
26
  }
26
- /**
27
- * Logo configuration interface
28
- */
29
- interface LogoConfig {
30
- url?: string;
31
- src?: string;
32
- alt?: string;
33
- title?: React.ReactNode;
34
- className?: string;
35
- }
36
27
  /**
37
28
  * Props for the NavbarMultiColumnGroups component
38
29
  */
@@ -1027,7 +1027,7 @@ function NavigationMenuTrigger({
1027
1027
  DynamicIcon,
1028
1028
  {
1029
1029
  name: "lucide/chevron-down",
1030
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1030
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1031
1031
  "aria-hidden": "true"
1032
1032
  }
1033
1033
  )
@@ -1049,7 +1049,7 @@ function NavigationMenuTrigger({
1049
1049
  DynamicIcon,
1050
1050
  {
1051
1051
  name: "lucide/chevron-down",
1052
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1052
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1053
1053
  "aria-hidden": "true"
1054
1054
  }
1055
1055
  )
@@ -1118,6 +1118,11 @@ function NavigationMenuLink({
1118
1118
  // lib/mediaPlaceholders.ts
1119
1119
  var logoPlaceholders = {
1120
1120
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1121
+
1122
+ // components/blocks/navbars/types.ts
1123
+ function getLinkUrl(item) {
1124
+ return item.href || item.url || "#";
1125
+ }
1121
1126
  var NavbarPlatformResources = ({
1122
1127
  className,
1123
1128
  containerClassName,
@@ -1170,7 +1175,7 @@ var NavbarPlatformResources = ({
1170
1175
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[640px] p-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1171
1176
  NavigationMenuLink,
1172
1177
  {
1173
- href: item.url,
1178
+ href: getLinkUrl(item),
1174
1179
  className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
1175
1180
  children: [
1176
1181
  item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1199,7 +1204,7 @@ var NavbarPlatformResources = ({
1199
1204
  /* @__PURE__ */ jsxRuntime.jsx(
1200
1205
  NavigationMenuLink,
1201
1206
  {
1202
- href: featuredItem.url,
1207
+ href: getLinkUrl(featuredItem),
1203
1208
  className: "group w-1/3 p-0 hover:bg-transparent",
1204
1209
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "overflow-clip rounded-lg border border-input bg-background", children: [
1205
1210
  /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1223,7 +1228,7 @@ var NavbarPlatformResources = ({
1223
1228
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-2 lg:gap-8", children: gridItems.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1224
1229
  NavigationMenuLink,
1225
1230
  {
1226
- href: item.url,
1231
+ href: getLinkUrl(item),
1227
1232
  className: "group block p-4",
1228
1233
  children: [
1229
1234
  (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-5 group-hover:opacity-60", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
@@ -1244,7 +1249,7 @@ var NavbarPlatformResources = ({
1244
1249
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-4", children: link.dropdownGroups[0].links.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1245
1250
  NavigationMenuLink,
1246
1251
  {
1247
- href: item.url,
1252
+ href: getLinkUrl(item),
1248
1253
  className: "group flex flex-row items-center gap-5",
1249
1254
  children: [
1250
1255
  (item.icon || item.iconName) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "group-hover:opacity-60", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
@@ -1257,7 +1262,7 @@ var NavbarPlatformResources = ({
1257
1262
  ctaItem && /* @__PURE__ */ jsxRuntime.jsx(
1258
1263
  NavigationMenuLink,
1259
1264
  {
1260
- href: ctaItem.url,
1265
+ href: getLinkUrl(ctaItem),
1261
1266
  className: "group flex-1 p-0 hover:bg-transparent",
1262
1267
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full rounded-lg border border-input bg-background p-0 hover:bg-transparent", children: [
1263
1268
  ctaItem.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-2/5 max-w-[310px] shrink-0 overflow-clip rounded-tl-lg rounded-bl-lg", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1291,7 +1296,7 @@ var NavbarPlatformResources = ({
1291
1296
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "-ml-2.5 space-y-2.5", children: listItems.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1292
1297
  NavigationMenuLink,
1293
1298
  {
1294
- href: item.url,
1299
+ href: getLinkUrl(item),
1295
1300
  className: "group flex flex-row items-center gap-2.5 rounded-md p-2.5 focus:text-accent-foreground",
1296
1301
  children: [
1297
1302
  (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null),
@@ -1304,7 +1309,7 @@ var NavbarPlatformResources = ({
1304
1309
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-[716px] flex-1 space-y-6", children: showcaseItems.map((showcase, showcaseIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1305
1310
  NavigationMenuLink,
1306
1311
  {
1307
- href: showcase.url,
1312
+ href: getLinkUrl(showcase),
1308
1313
  className: "flex flex-row items-center overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
1309
1314
  children: [
1310
1315
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 p-5 xl:p-8", children: [
@@ -1338,7 +1343,7 @@ var NavbarPlatformResources = ({
1338
1343
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid flex-1 grid-cols-1 gap-6 md:grid-cols-2", children: group.links.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsx(
1339
1344
  NavigationMenuLink,
1340
1345
  {
1341
- href: item.url,
1346
+ href: getLinkUrl(item),
1342
1347
  className: "flex h-full flex-col overflow-clip rounded-lg border border-input bg-background p-5 hover:bg-accent hover:text-accent-foreground xl:p-8",
1343
1348
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-auto", children: [
1344
1349
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-base", children: item.label }),
@@ -1355,7 +1360,7 @@ var NavbarPlatformResources = ({
1355
1360
  /* @__PURE__ */ jsxRuntime.jsxs(
1356
1361
  NavigationMenuLink,
1357
1362
  {
1358
- href: ctaItem.url,
1363
+ href: getLinkUrl(ctaItem),
1359
1364
  className: "mb-6 flex flex-row overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
1360
1365
  children: [
1361
1366
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1 p-5 xl:p-8", children: [
@@ -1384,7 +1389,7 @@ var NavbarPlatformResources = ({
1384
1389
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "min-w-[640px] p-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1385
1390
  NavigationMenuLink,
1386
1391
  {
1387
- href: item.url,
1392
+ href: getLinkUrl(item),
1388
1393
  className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
1389
1394
  children: [
1390
1395
  item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-12 w-12 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1524,7 +1529,7 @@ var NavbarPlatformResources = ({
1524
1529
  /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "px-2 pb-4", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
1525
1530
  Pressable,
1526
1531
  {
1527
- href: item.url,
1532
+ href: getLinkUrl(item),
1528
1533
  className: "group flex items-start gap-4 rounded-lg p-2 hover:bg-muted",
1529
1534
  children: [
1530
1535
  item.image && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -2,36 +2,12 @@ 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
- * 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
11
  /**
36
12
  * Layout types for dropdown menus
37
13
  *
@@ -87,16 +63,6 @@ interface IMenuLink {
87
63
  links?: ILinkItem[];
88
64
  dropdownGroups?: IMenuLinkGroup[];
89
65
  }
90
- /**
91
- * Logo configuration interface
92
- */
93
- interface LogoConfig {
94
- url?: string;
95
- src?: string;
96
- alt?: string;
97
- title?: React.ReactNode;
98
- className?: string;
99
- }
100
66
  /**
101
67
  * Props for the NavbarPlatformResources component
102
68
  */
@@ -175,4 +141,4 @@ interface NavbarPlatformResourcesProps {
175
141
  */
176
142
  declare const NavbarPlatformResources: ({ className, containerClassName, navigationMenuClassName, navigationMenuListClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, menuLinks, actions, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarPlatformResourcesProps) => react_jsx_runtime.JSX.Element;
177
143
 
178
- export { type DropdownLayout, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarPlatformResources, type NavbarPlatformResourcesProps };
144
+ export { type DropdownLayout, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarPlatformResources, type NavbarPlatformResourcesProps };
@@ -2,36 +2,12 @@ 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
- * 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
11
  /**
36
12
  * Layout types for dropdown menus
37
13
  *
@@ -87,16 +63,6 @@ interface IMenuLink {
87
63
  links?: ILinkItem[];
88
64
  dropdownGroups?: IMenuLinkGroup[];
89
65
  }
90
- /**
91
- * Logo configuration interface
92
- */
93
- interface LogoConfig {
94
- url?: string;
95
- src?: string;
96
- alt?: string;
97
- title?: React.ReactNode;
98
- className?: string;
99
- }
100
66
  /**
101
67
  * Props for the NavbarPlatformResources component
102
68
  */
@@ -175,4 +141,4 @@ interface NavbarPlatformResourcesProps {
175
141
  */
176
142
  declare const NavbarPlatformResources: ({ className, containerClassName, navigationMenuClassName, navigationMenuListClassName, actionsClassName, logoClassName, mobileMenuClassName, logo, logoSlot, menuLinks, actions, background, spacing, pattern, patternOpacity, optixFlowConfig, }: NavbarPlatformResourcesProps) => react_jsx_runtime.JSX.Element;
177
143
 
178
- export { type DropdownLayout, type ILinkItem, type IMenuLink, type IMenuLinkGroup, type LogoConfig, NavbarPlatformResources, type NavbarPlatformResourcesProps };
144
+ export { type DropdownLayout, ILinkItem, type IMenuLink, IMenuLinkGroup, LogoConfig, NavbarPlatformResources, type NavbarPlatformResourcesProps };
@@ -1026,7 +1026,7 @@ function NavigationMenuTrigger({
1026
1026
  DynamicIcon,
1027
1027
  {
1028
1028
  name: "lucide/chevron-down",
1029
- className: "relative top-[1px] ml-1 size-2.5 transition duration-300 group-data-[state=open]:rotate-180",
1029
+ className: "relative top-[1px] ml-1 size-2 transition duration-300 group-data-[state=open]:rotate-180",
1030
1030
  "aria-hidden": "true"
1031
1031
  }
1032
1032
  )
@@ -1095,6 +1095,11 @@ function NavigationMenuLink({
1095
1095
  // lib/mediaPlaceholders.ts
1096
1096
  var logoPlaceholders = {
1097
1097
  logoMark: "https://cdn.ing/assets/i/r/285975/eud79qeya11q5w6ueyhklueardyx/monochrome-rounded-square-app-icon-circular-emblem.png"};
1098
+
1099
+ // components/blocks/navbars/types.ts
1100
+ function getLinkUrl(item) {
1101
+ return item.href || item.url || "#";
1102
+ }
1098
1103
  var NavbarPlatformResources = ({
1099
1104
  className,
1100
1105
  containerClassName,
@@ -1147,7 +1152,7 @@ var NavbarPlatformResources = ({
1147
1152
  return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[640px] p-4", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1148
1153
  NavigationMenuLink,
1149
1154
  {
1150
- href: item.url,
1155
+ href: getLinkUrl(item),
1151
1156
  className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
1152
1157
  children: [
1153
1158
  item.image && /* @__PURE__ */ jsx("div", { className: "h-12 w-12 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
@@ -1176,7 +1181,7 @@ var NavbarPlatformResources = ({
1176
1181
  /* @__PURE__ */ jsx(
1177
1182
  NavigationMenuLink,
1178
1183
  {
1179
- href: featuredItem.url,
1184
+ href: getLinkUrl(featuredItem),
1180
1185
  className: "group w-1/3 p-0 hover:bg-transparent",
1181
1186
  children: /* @__PURE__ */ jsxs("div", { className: "overflow-clip rounded-lg border border-input bg-background", children: [
1182
1187
  /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(
@@ -1200,7 +1205,7 @@ var NavbarPlatformResources = ({
1200
1205
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-6 lg:grid-cols-2 lg:gap-8", children: gridItems.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1201
1206
  NavigationMenuLink,
1202
1207
  {
1203
- href: item.url,
1208
+ href: getLinkUrl(item),
1204
1209
  className: "group block p-4",
1205
1210
  children: [
1206
1211
  (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "mb-5 group-hover:opacity-60", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 }) : null }),
@@ -1221,7 +1226,7 @@ var NavbarPlatformResources = ({
1221
1226
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-2 gap-4", children: link.dropdownGroups[0].links.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1222
1227
  NavigationMenuLink,
1223
1228
  {
1224
- href: item.url,
1229
+ href: getLinkUrl(item),
1225
1230
  className: "group flex flex-row items-center gap-5",
1226
1231
  children: [
1227
1232
  (item.icon || item.iconName) && /* @__PURE__ */ jsx("div", { className: "group-hover:opacity-60", children: item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null }),
@@ -1234,7 +1239,7 @@ var NavbarPlatformResources = ({
1234
1239
  ctaItem && /* @__PURE__ */ jsx(
1235
1240
  NavigationMenuLink,
1236
1241
  {
1237
- href: ctaItem.url,
1242
+ href: getLinkUrl(ctaItem),
1238
1243
  className: "group flex-1 p-0 hover:bg-transparent",
1239
1244
  children: /* @__PURE__ */ jsxs("div", { className: "flex h-full rounded-lg border border-input bg-background p-0 hover:bg-transparent", children: [
1240
1245
  ctaItem.image && /* @__PURE__ */ jsx("div", { className: "w-2/5 max-w-[310px] shrink-0 overflow-clip rounded-tl-lg rounded-bl-lg", children: /* @__PURE__ */ jsx(
@@ -1268,7 +1273,7 @@ var NavbarPlatformResources = ({
1268
1273
  /* @__PURE__ */ jsx("div", { className: "-ml-2.5 space-y-2.5", children: listItems.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1269
1274
  NavigationMenuLink,
1270
1275
  {
1271
- href: item.url,
1276
+ href: getLinkUrl(item),
1272
1277
  className: "group flex flex-row items-center gap-2.5 rounded-md p-2.5 focus:text-accent-foreground",
1273
1278
  children: [
1274
1279
  (item.icon || item.iconName) && (item.icon ? item.icon : item.iconName ? /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 }) : null),
@@ -1281,7 +1286,7 @@ var NavbarPlatformResources = ({
1281
1286
  /* @__PURE__ */ jsx("div", { className: "max-w-[716px] flex-1 space-y-6", children: showcaseItems.map((showcase, showcaseIndex) => /* @__PURE__ */ jsxs(
1282
1287
  NavigationMenuLink,
1283
1288
  {
1284
- href: showcase.url,
1289
+ href: getLinkUrl(showcase),
1285
1290
  className: "flex flex-row items-center overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
1286
1291
  children: [
1287
1292
  /* @__PURE__ */ jsxs("div", { className: "flex-1 p-5 xl:p-8", children: [
@@ -1315,7 +1320,7 @@ var NavbarPlatformResources = ({
1315
1320
  /* @__PURE__ */ jsx("div", { className: "grid flex-1 grid-cols-1 gap-6 md:grid-cols-2", children: group.links.map((item, itemIndex) => /* @__PURE__ */ jsx(
1316
1321
  NavigationMenuLink,
1317
1322
  {
1318
- href: item.url,
1323
+ href: getLinkUrl(item),
1319
1324
  className: "flex h-full flex-col overflow-clip rounded-lg border border-input bg-background p-5 hover:bg-accent hover:text-accent-foreground xl:p-8",
1320
1325
  children: /* @__PURE__ */ jsxs("div", { className: "mt-auto", children: [
1321
1326
  /* @__PURE__ */ jsx("div", { className: "mb-2 text-base", children: item.label }),
@@ -1332,7 +1337,7 @@ var NavbarPlatformResources = ({
1332
1337
  /* @__PURE__ */ jsxs(
1333
1338
  NavigationMenuLink,
1334
1339
  {
1335
- href: ctaItem.url,
1340
+ href: getLinkUrl(ctaItem),
1336
1341
  className: "mb-6 flex flex-row overflow-clip rounded-lg border border-input bg-background p-0 hover:bg-transparent",
1337
1342
  children: [
1338
1343
  /* @__PURE__ */ jsxs("div", { className: "flex-1 p-5 xl:p-8", children: [
@@ -1361,7 +1366,7 @@ var NavbarPlatformResources = ({
1361
1366
  return /* @__PURE__ */ jsx(NavigationMenuContent, { className: "min-w-[640px] p-4", children: /* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1362
1367
  NavigationMenuLink,
1363
1368
  {
1364
- href: item.url,
1369
+ href: getLinkUrl(item),
1365
1370
  className: "flex flex-row items-start gap-4 rounded-lg border border-input bg-background p-4 hover:bg-accent hover:text-accent-foreground",
1366
1371
  children: [
1367
1372
  item.image && /* @__PURE__ */ jsx("div", { className: "h-12 w-12 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
@@ -1501,7 +1506,7 @@ var NavbarPlatformResources = ({
1501
1506
  /* @__PURE__ */ jsx(AccordionContent, { className: "px-2 pb-4", children: /* @__PURE__ */ jsx("div", { className: "space-y-3", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxs(
1502
1507
  Pressable,
1503
1508
  {
1504
- href: item.url,
1509
+ href: getLinkUrl(item),
1505
1510
  className: "group flex items-start gap-4 rounded-lg p-2 hover:bg-muted",
1506
1511
  children: [
1507
1512
  item.image && /* @__PURE__ */ jsx("div", { className: "h-10 w-10 overflow-hidden rounded-md border border-border", children: /* @__PURE__ */ jsx(
@@ -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';
@@ -13,16 +14,6 @@ interface NavItem {
13
14
  icon?: React.ReactNode;
14
15
  iconName?: string;
15
16
  }
16
- /**
17
- * Logo configuration interface
18
- */
19
- interface LogoConfig {
20
- url?: string;
21
- src?: string;
22
- alt?: string;
23
- title?: React.ReactNode;
24
- className?: string;
25
- }
26
17
  /**
27
18
  * Props for the NavbarSearchFocused component
28
19
  */