@opensite/ui 1.0.9 → 1.1.0

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 (41) hide show
  1. package/dist/navbar-animated-preview.cjs +27 -17
  2. package/dist/navbar-animated-preview.js +27 -17
  3. package/dist/navbar-centered-menu.cjs +20 -10
  4. package/dist/navbar-centered-menu.js +20 -10
  5. package/dist/navbar-dark-icons.cjs +20 -10
  6. package/dist/navbar-dark-icons.js +20 -10
  7. package/dist/navbar-dropdown-menu.cjs +20 -10
  8. package/dist/navbar-dropdown-menu.js +20 -10
  9. package/dist/navbar-education-platform.cjs +81 -56
  10. package/dist/navbar-education-platform.js +81 -56
  11. package/dist/navbar-enterprise-mega.cjs +21 -11
  12. package/dist/navbar-enterprise-mega.js +21 -11
  13. package/dist/navbar-feature-grid.cjs +20 -10
  14. package/dist/navbar-feature-grid.js +20 -10
  15. package/dist/navbar-icon-links.cjs +20 -10
  16. package/dist/navbar-icon-links.js +20 -10
  17. package/dist/navbar-image-preview.cjs +20 -10
  18. package/dist/navbar-image-preview.js +20 -10
  19. package/dist/navbar-mega-menu.cjs +20 -10
  20. package/dist/navbar-mega-menu.js +20 -10
  21. package/dist/navbar-multi-column-groups.cjs +52 -35
  22. package/dist/navbar-multi-column-groups.js +52 -35
  23. package/dist/navbar-platform-resources.cjs +20 -10
  24. package/dist/navbar-platform-resources.js +20 -10
  25. package/dist/navbar-search-focused.cjs +20 -10
  26. package/dist/navbar-search-focused.js +20 -10
  27. package/dist/navbar-sidebar-mobile.cjs +21 -10
  28. package/dist/navbar-sidebar-mobile.js +21 -10
  29. package/dist/navbar-simple-links.cjs +22 -12
  30. package/dist/navbar-simple-links.js +22 -12
  31. package/dist/navbar-split-cta.cjs +20 -10
  32. package/dist/navbar-split-cta.js +20 -10
  33. package/dist/navbar-sticky-compact.cjs +240 -123
  34. package/dist/navbar-sticky-compact.js +239 -123
  35. package/dist/navbar-tabbed-sections.cjs +20 -10
  36. package/dist/navbar-tabbed-sections.js +20 -10
  37. package/dist/navbar-transparent-overlay.cjs +21 -10
  38. package/dist/navbar-transparent-overlay.js +21 -10
  39. package/dist/registry.cjs +285 -206
  40. package/dist/registry.js +285 -206
  41. package/package.json +1 -1
package/dist/registry.cjs CHANGED
@@ -57108,6 +57108,7 @@ var NavbarMobileMenu = ({
57108
57108
  children,
57109
57109
  className,
57110
57110
  contentClassName,
57111
+ closeContainerClassName = "",
57111
57112
  title = "Mobile Navigation"
57112
57113
  }) => {
57113
57114
  React52__namespace.useEffect(() => {
@@ -57132,18 +57133,27 @@ var NavbarMobileMenu = ({
57132
57133
  "data-state": open ? "open" : "closed",
57133
57134
  children: [
57134
57135
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
57135
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen", children: /* @__PURE__ */ jsxRuntime.jsxs(
57136
- "button",
57136
+ /* @__PURE__ */ jsxRuntime.jsx(
57137
+ "div",
57137
57138
  {
57138
- onClick: onClose,
57139
- className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
57140
- "aria-label": "Close mobile menu",
57141
- children: [
57142
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
57143
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
57144
- ]
57139
+ className: cn(
57140
+ closeContainerClassName,
57141
+ "absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen"
57142
+ ),
57143
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
57144
+ "button",
57145
+ {
57146
+ onClick: onClose,
57147
+ className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
57148
+ "aria-label": "Close mobile menu",
57149
+ children: [
57150
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
57151
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Close" })
57152
+ ]
57153
+ }
57154
+ )
57145
57155
  }
57146
- ) }),
57156
+ ),
57147
57157
  /* @__PURE__ */ jsxRuntime.jsx(
57148
57158
  "div",
57149
57159
  {
@@ -58738,7 +58748,7 @@ var renderMobileDropdownContent = (item) => {
58738
58748
  Pressable,
58739
58749
  {
58740
58750
  href: solution.href,
58741
- className: "block pb-2 text-sm font-medium",
58751
+ className: "block pt-4 text-sm font-medium",
58742
58752
  children: solution.title
58743
58753
  }
58744
58754
  ),
@@ -60788,7 +60798,7 @@ var GroupedLinksImageDropdown = ({
60788
60798
  imageLink,
60789
60799
  optixFlowConfig
60790
60800
  }) => {
60791
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
60801
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
60792
60802
  /* @__PURE__ */ jsxRuntime.jsx(GroupLinks, { groupLinks }),
60793
60803
  /* @__PURE__ */ jsxRuntime.jsx(FeaturedImageLink, { link: imageLink, optixFlowConfig })
60794
60804
  ] });
@@ -60809,7 +60819,7 @@ var GroupLinks = ({ groupLinks }) => {
60809
60819
  };
60810
60820
  if (!groupLinks) return null;
60811
60821
  let linkIndex = 0;
60812
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between gap-4", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60822
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-4", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60813
60823
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs", children: group.label }),
60814
60824
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-4", children: group.links.map((link, index2) => {
60815
60825
  const idx = linkIndex++;
@@ -60867,7 +60877,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
60867
60877
  Pressable,
60868
60878
  {
60869
60879
  href: getLinkUrl(link),
60870
- className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-12",
60880
+ className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-4 pt-12 pb-4",
60871
60881
  children: [
60872
60882
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
60873
60883
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-background shadow-lg", children: link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -60983,10 +60993,10 @@ var renderMobileMenuItem4 = (item, index) => {
60983
60993
  children: [
60984
60994
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-10 items-center text-base font-normal text-foreground hover:no-underline", children: item.label }),
60985
60995
  /* @__PURE__ */ jsxRuntime.jsxs(AccordionContent, { className: "flex flex-col gap-6 p-2", children: [
60986
- item.featuredLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-2", children: item.featuredLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60987
- item.links && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-2", children: item.links.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60988
- item.groupLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2 p-2", children: item.groupLinks.map((group, groupIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-8 last:mb-0", children: [
60989
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs text-muted-foreground", children: group.label }),
60996
+ item.featuredLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 p-2", children: item.featuredLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60997
+ item.links && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 p-2", children: item.links.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60998
+ item.groupLinks && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 p-2", children: item.groupLinks.map((group, groupIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
60999
+ group.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs text-muted-foreground", children: group.label }),
60990
61000
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-2", children: group.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(NavLink, { link }) }, `group-link-${groupIdx}-${linkIdx}`)) })
60991
61001
  ] }, `group-link-${groupIdx}`)) })
60992
61002
  ] })
@@ -61176,8 +61186,8 @@ var NavbarMultiColumnGroups = ({
61176
61186
  open,
61177
61187
  setOpen,
61178
61188
  navigation: navigation ?? [],
61179
- authActions: mobileAuthActions,
61180
- authActionsSlot: mobileAuthActionsSlot
61189
+ authActions: mobileAuthActions ?? authActions,
61190
+ authActionsSlot: mobileAuthActionsSlot ?? authActionsSlot
61181
61191
  }
61182
61192
  )
61183
61193
  ] });
@@ -61274,29 +61284,36 @@ var MobileNavigationMenu5 = ({
61274
61284
  className: "border-b-0",
61275
61285
  children: [
61276
61286
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center p-0 px-4! text-base leading-[3.75] font-normal text-muted-foreground hover:bg-muted hover:no-underline", children: item.title }),
61277
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
61278
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.title }),
61279
- group.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61280
- Pressable,
61281
- {
61282
- href: link.url,
61283
- className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
61284
- onClick: handleClose,
61285
- children: [
61286
- link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
61287
- DynamicIcon,
61288
- {
61289
- name: link.iconName,
61290
- size: 16,
61291
- className: "stroke-muted-foreground"
61292
- }
61293
- ) : null,
61294
- link.label
61295
- ]
61296
- },
61297
- `mobile-link-${groupIndex}-${linkIndex}`
61298
- ))
61299
- ] }, `mobile-group-${groupIndex}`)) })
61287
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61288
+ "div",
61289
+ {
61290
+ className: "mb-4",
61291
+ children: [
61292
+ group.title && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 px-4 text-xs font-semibold text-muted-foreground uppercase", children: group.title }),
61293
+ group.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61294
+ Pressable,
61295
+ {
61296
+ href: link.url,
61297
+ className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
61298
+ onClick: handleClose,
61299
+ children: [
61300
+ link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
61301
+ DynamicIcon,
61302
+ {
61303
+ name: link.iconName,
61304
+ size: 16,
61305
+ className: "stroke-muted-foreground"
61306
+ }
61307
+ ) : null,
61308
+ link.label
61309
+ ]
61310
+ },
61311
+ `mobile-link-${groupIndex}-${linkIndex}`
61312
+ ))
61313
+ ]
61314
+ },
61315
+ `mobile-group-${groupIndex}`
61316
+ )) })
61300
61317
  ]
61301
61318
  },
61302
61319
  `nav-item-${index}`
@@ -61438,6 +61455,7 @@ var NavbarSidebarMobile = ({
61438
61455
  NavigationMenu,
61439
61456
  {
61440
61457
  className: cn("hidden lg:flex", navigationMenuClassName),
61458
+ viewport: false,
61441
61459
  children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
61442
61460
  (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
61443
61461
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.title }),
@@ -61934,6 +61952,7 @@ var MobileNavigationMenu7 = ({
61934
61952
  title: "Mobile Navigation",
61935
61953
  className: cn("bg-black/95", mobileMenuClassName),
61936
61954
  contentClassName: "flex flex-col items-center justify-center",
61955
+ closeContainerClassName: "bg-black/95",
61937
61956
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
61938
61957
  /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
61939
61958
  Pressable,
@@ -62147,36 +62166,44 @@ var DesktopMenuItem7 = ({
62147
62166
  ),
62148
62167
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
62149
62168
  /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: group.label }),
62150
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: group.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
62151
- Pressable,
62169
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: group.links.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
62170
+ NavigationMenuLink,
62152
62171
  {
62153
- href: link.href,
62154
- className: "group flex cursor-pointer flex-row gap-3",
62155
- children: [
62156
- link.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon, size: 20 }) }),
62157
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
62158
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
62159
- link.title,
62160
- /* @__PURE__ */ jsxRuntime.jsx(
62161
- DynamicIcon,
62162
- {
62163
- name: "lucide/chevron-right",
62164
- size: 16,
62165
- className: "text-primary! opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
62166
- }
62167
- )
62168
- ] }),
62169
- link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: link.description })
62170
- ] })
62171
- ]
62172
- }
62173
- ) }, link.title)) }),
62172
+ asChild: true,
62173
+ className: "w-full",
62174
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
62175
+ Pressable,
62176
+ {
62177
+ href: link.href,
62178
+ className: "group flex cursor-pointer flex-row gap-3",
62179
+ children: [
62180
+ link.icon && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.icon, size: 20 }) }),
62181
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
62182
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
62183
+ link.title,
62184
+ /* @__PURE__ */ jsxRuntime.jsx(
62185
+ DynamicIcon,
62186
+ {
62187
+ name: "lucide/chevron-right",
62188
+ size: 16,
62189
+ className: "opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
62190
+ }
62191
+ )
62192
+ ] }),
62193
+ link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: link.description })
62194
+ ] })
62195
+ ]
62196
+ }
62197
+ )
62198
+ },
62199
+ link.title
62200
+ )) }),
62174
62201
  group.featuredImage && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: group.featuredImage.href || "#", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-muted p-3", children: /* @__PURE__ */ jsxRuntime.jsx(
62175
62202
  img.Img,
62176
62203
  {
62177
62204
  src: group.featuredImage.src,
62178
62205
  alt: group.featuredImage.alt || "Featured image",
62179
- className: "aspect-video w-full max-w-[240px] rounded-md object-cover object-center",
62206
+ className: "aspect-video w-full max-w-60 rounded-md object-cover object-center",
62180
62207
  optixFlowConfig
62181
62208
  }
62182
62209
  ) }) }) }) })
@@ -62240,29 +62267,36 @@ var MobileNavigationMenu8 = ({
62240
62267
  className: "border-b-0",
62241
62268
  children: [
62242
62269
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center p-0 px-4! text-base leading-[3.75] font-normal text-muted-foreground hover:bg-muted hover:no-underline", children: item.label }),
62243
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
62244
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.label }),
62245
- group.links.map((link) => /* @__PURE__ */ jsxRuntime.jsxs(
62246
- Pressable,
62247
- {
62248
- href: link.href,
62249
- className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
62250
- onClick: onClose,
62251
- children: [
62252
- link.icon && /* @__PURE__ */ jsxRuntime.jsx(
62253
- DynamicIcon,
62254
- {
62255
- name: link.icon,
62256
- size: 16,
62257
- className: "stroke-muted-foreground"
62258
- }
62259
- ),
62270
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
62271
+ "div",
62272
+ {
62273
+ className: "mb-4",
62274
+ children: [
62275
+ group.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "block mt-4 mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.label }),
62276
+ group.links.map((link) => /* @__PURE__ */ jsxRuntime.jsxs(
62277
+ Pressable,
62278
+ {
62279
+ href: link.href,
62280
+ className: "flex min-h-12 items-center gap-2 rounded-lg pl-6 pr-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
62281
+ onClick: onClose,
62282
+ children: [
62283
+ link.icon && /* @__PURE__ */ jsxRuntime.jsx(
62284
+ DynamicIcon,
62285
+ {
62286
+ name: link.icon,
62287
+ size: 16,
62288
+ className: "stroke-muted-foreground"
62289
+ }
62290
+ ),
62291
+ link.title
62292
+ ]
62293
+ },
62260
62294
  link.title
62261
- ]
62262
- },
62263
- link.title
62264
- ))
62265
- ] }, `mobile-group-${groupIndex}`)) })
62295
+ ))
62296
+ ]
62297
+ },
62298
+ `mobile-group-${groupIndex}`
62299
+ )) })
62266
62300
  ]
62267
62301
  },
62268
62302
  `nav-item-${index}`
@@ -62383,37 +62417,6 @@ var NavbarStickyCompact = ({
62383
62417
  ) }, index)
62384
62418
  );
62385
62419
  }, [menuSlot, menu, isScrolled]);
62386
- const renderMobileMenu = React52.useMemo(() => {
62387
- if (menuSlot) return menuSlot;
62388
- if (!menu || menu.length === 0) return null;
62389
- return menu.map(
62390
- (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
62391
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.title }),
62392
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1 pl-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
62393
- Pressable,
62394
- {
62395
- href: subItem.url,
62396
- className: "flex items-center gap-2 rounded-md py-2 text-sm hover:text-foreground",
62397
- onClick: () => setIsOpen(false),
62398
- children: [
62399
- subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subItem.icon, size: 14 }),
62400
- subItem.title
62401
- ]
62402
- },
62403
- subIndex
62404
- )) })
62405
- ] }, index) : /* @__PURE__ */ jsxRuntime.jsx(
62406
- Pressable,
62407
- {
62408
- href: item.url,
62409
- className: "text-sm font-medium",
62410
- onClick: () => setIsOpen(false),
62411
- children: item.title
62412
- },
62413
- index
62414
- )
62415
- );
62416
- }, [menuSlot, menu]);
62417
62420
  const {
62418
62421
  sectionClasses,
62419
62422
  containerWrapperClasses,
@@ -62423,99 +62426,175 @@ var NavbarStickyCompact = ({
62423
62426
  sectionContainerMaxWidth,
62424
62427
  spacingOverride
62425
62428
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
62426
- return /* @__PURE__ */ jsxRuntime.jsx(
62427
- Section,
62428
- {
62429
- background,
62430
- spacing: spacingOverride ?? spacing,
62431
- className: cn(
62432
- sectionClasses,
62433
- "fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
62434
- isScrolled ? "shadow-sm" : ""
62435
- ),
62436
- pattern,
62437
- patternOpacity,
62438
- containerClassName: sectionContainerClassName,
62439
- containerMaxWidth: sectionContainerMaxWidth,
62440
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
62441
- "nav",
62429
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62430
+ /* @__PURE__ */ jsxRuntime.jsx(
62431
+ Section,
62432
+ {
62433
+ background,
62434
+ spacing: spacingOverride ?? spacing,
62435
+ className: cn(
62436
+ sectionClasses,
62437
+ "fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
62438
+ isScrolled ? "shadow-sm" : ""
62439
+ ),
62440
+ pattern,
62441
+ patternOpacity,
62442
+ containerClassName: sectionContainerClassName,
62443
+ containerMaxWidth: sectionContainerMaxWidth,
62444
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
62445
+ "nav",
62446
+ {
62447
+ className: cn(
62448
+ "flex items-center justify-between transition-all duration-300",
62449
+ isScrolled ? "h-14" : "h-16",
62450
+ navClassName
62451
+ ),
62452
+ children: [
62453
+ /* @__PURE__ */ jsxRuntime.jsx(
62454
+ NavbarLogo,
62455
+ {
62456
+ logo,
62457
+ logoSlot,
62458
+ logoClassName: cn(
62459
+ isScrolled ? "[&_img]:h-6 [&_span]:text-base" : "[&_img]:h-8 [&_span]:text-lg",
62460
+ "[&_img]:transition-all [&_img]:duration-300 [&_span]:transition-all [&_span]:duration-300",
62461
+ logoClassName
62462
+ ),
62463
+ optixFlowConfig
62464
+ }
62465
+ ),
62466
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { className: "hidden lg:flex", viewport: false, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: renderMenu }) }),
62467
+ /* @__PURE__ */ jsxRuntime.jsx(
62468
+ "div",
62469
+ {
62470
+ className: cn(
62471
+ "hidden items-center gap-2 lg:flex",
62472
+ actionsClassName
62473
+ ),
62474
+ children: renderAuthActions
62475
+ }
62476
+ ),
62477
+ /* @__PURE__ */ jsxRuntime.jsxs(
62478
+ Pressable,
62479
+ {
62480
+ variant: "ghost",
62481
+ size: isScrolled ? "sm" : "icon",
62482
+ asButton: true,
62483
+ className: "lg:hidden transition-all duration-300",
62484
+ onClick: () => setIsOpen(!isOpen),
62485
+ children: [
62486
+ /* @__PURE__ */ jsxRuntime.jsx(
62487
+ DynamicIcon,
62488
+ {
62489
+ name: "lucide/menu",
62490
+ size: isScrolled ? 18 : 20
62491
+ }
62492
+ ),
62493
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
62494
+ ]
62495
+ }
62496
+ )
62497
+ ]
62498
+ }
62499
+ ) }) }) })
62500
+ }
62501
+ ),
62502
+ /* @__PURE__ */ jsxRuntime.jsx(
62503
+ MobileNavigationMenu9,
62504
+ {
62505
+ open: isOpen,
62506
+ setOpen: setIsOpen,
62507
+ menu: menu ?? [],
62508
+ menuSlot,
62509
+ authActions,
62510
+ authActionsSlot
62511
+ }
62512
+ )
62513
+ ] });
62514
+ };
62515
+ var MobileNavigationMenu9 = ({
62516
+ open,
62517
+ setOpen,
62518
+ menu,
62519
+ menuSlot,
62520
+ authActions,
62521
+ authActionsSlot
62522
+ }) => {
62523
+ const handleClose = () => setOpen(false);
62524
+ const renderMobileAuthActions = React52.useMemo(() => {
62525
+ if (authActionsSlot) return authActionsSlot;
62526
+ if (!authActions || authActions.length === 0) return null;
62527
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-6 flex flex-col gap-4", children: authActions.map((action, index) => {
62528
+ const {
62529
+ label,
62530
+ icon,
62531
+ iconAfter,
62532
+ children,
62533
+ className: actionClassName,
62534
+ ...pressableProps
62535
+ } = action;
62536
+ return /* @__PURE__ */ jsxRuntime.jsx(
62537
+ Pressable,
62442
62538
  {
62443
- className: cn(
62444
- "flex items-center justify-between transition-all duration-300",
62445
- isScrolled ? "h-14" : "h-16",
62446
- navClassName
62447
- ),
62539
+ asButton: true,
62540
+ className: cn("w-full", actionClassName),
62541
+ onClick: handleClose,
62542
+ ...pressableProps,
62543
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62544
+ icon,
62545
+ label,
62546
+ iconAfter
62547
+ ] })
62548
+ },
62549
+ index
62550
+ );
62551
+ }) });
62552
+ }, [authActionsSlot, authActions]);
62553
+ return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
62554
+ /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
62555
+ (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
62556
+ AccordionItem,
62557
+ {
62558
+ value: `nav-${index}`,
62559
+ className: "border-b-0",
62448
62560
  children: [
62449
- /* @__PURE__ */ jsxRuntime.jsx(
62450
- NavbarLogo,
62451
- {
62452
- logo,
62453
- logoSlot,
62454
- logoClassName: cn(
62455
- isScrolled ? "[&_img]:h-6 [&_span]:text-base" : "[&_img]:h-8 [&_span]:text-lg",
62456
- "[&_img]:transition-all [&_img]:duration-300 [&_span]:transition-all [&_span]:duration-300",
62457
- logoClassName
62458
- ),
62459
- optixFlowConfig
62460
- }
62461
- ),
62462
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { className: "hidden lg:flex", children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: renderMenu }) }),
62463
- /* @__PURE__ */ jsxRuntime.jsx(
62464
- "div",
62465
- {
62466
- className: cn(
62467
- "hidden items-center gap-2 lg:flex",
62468
- actionsClassName
62469
- ),
62470
- children: renderAuthActions
62471
- }
62472
- ),
62473
- /* @__PURE__ */ jsxRuntime.jsxs(
62561
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center p-0 px-4! text-base leading-[3.75] font-normal text-muted-foreground hover:bg-muted hover:no-underline", children: item.title }),
62562
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
62474
62563
  Pressable,
62475
62564
  {
62476
- variant: "ghost",
62477
- size: isScrolled ? "sm" : "icon",
62478
- asButton: true,
62479
- className: "lg:hidden transition-all duration-300",
62480
- onClick: () => setIsOpen(!isOpen),
62565
+ href: subItem.url,
62566
+ className: "flex min-h-12 items-center gap-2 rounded-lg px-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
62567
+ onClick: handleClose,
62481
62568
  children: [
62482
- /* @__PURE__ */ jsxRuntime.jsx(
62569
+ subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
62483
62570
  DynamicIcon,
62484
62571
  {
62485
- name: "lucide/menu",
62486
- size: isScrolled ? 18 : 20
62572
+ name: subItem.icon,
62573
+ size: 16,
62574
+ className: "stroke-muted-foreground"
62487
62575
  }
62488
62576
  ),
62489
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
62577
+ subItem.title
62490
62578
  ]
62491
- }
62492
- ),
62493
- /* @__PURE__ */ jsxRuntime.jsx(
62494
- NavbarMobileMenu,
62495
- {
62496
- open: isOpen,
62497
- onClose: () => setIsOpen(false),
62498
- title: "Navigation Menu",
62499
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
62500
- renderMobileMenu,
62501
- /* @__PURE__ */ jsxRuntime.jsx(
62502
- "div",
62503
- {
62504
- className: cn(
62505
- "mt-4 flex flex-col gap-2 border-t pt-4",
62506
- actionsClassName
62507
- ),
62508
- children: renderAuthActions
62509
- }
62510
- )
62511
- ] }) })
62512
- }
62513
- )
62579
+ },
62580
+ `mobile-link-${index}-${subIndex}`
62581
+ )) })
62514
62582
  ]
62515
- }
62516
- ) }) }) })
62517
- }
62518
- );
62583
+ },
62584
+ `nav-item-${index}`
62585
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
62586
+ Pressable,
62587
+ {
62588
+ href: item.url,
62589
+ className: "flex h-15 items-center rounded-md p-0 px-4 text-left text-base leading-[3.75] font-normal text-muted-foreground ring-ring/10 outline-ring/50 transition-all hover:bg-muted focus-visible:ring-4 focus-visible:outline-1",
62590
+ onClick: handleClose,
62591
+ children: item.title
62592
+ },
62593
+ `nav-link-${index}`
62594
+ )
62595
+ ) }),
62596
+ renderMobileAuthActions
62597
+ ] }) }) });
62519
62598
  };
62520
62599
  var NavbarSearchFocused = ({
62521
62600
  className,
@@ -62913,19 +62992,19 @@ var NavbarSimpleLinks = ({
62913
62992
  }
62914
62993
  ),
62915
62994
  /* @__PURE__ */ jsxRuntime.jsx(
62916
- MobileNavigationMenu9,
62995
+ MobileNavigationMenu10,
62917
62996
  {
62918
62997
  open: isOpen,
62919
62998
  onClose: handleMobileMenuClose,
62920
62999
  navItems: navItems ?? [],
62921
- mobileActions,
62922
- mobileActionsSlot,
63000
+ mobileActions: mobileActions ?? actions,
63001
+ mobileActionsSlot: mobileActionsSlot ?? actionsSlot,
62923
63002
  mobileMenuClassName
62924
63003
  }
62925
63004
  )
62926
63005
  ] });
62927
63006
  };
62928
- var MobileNavigationMenu9 = ({
63007
+ var MobileNavigationMenu10 = ({
62929
63008
  open,
62930
63009
  onClose,
62931
63010
  navItems,