@opensite/ui 1.0.7 → 1.0.9

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 (47) hide show
  1. package/dist/navbar-animated-preview.cjs +16 -16
  2. package/dist/navbar-animated-preview.js +16 -16
  3. package/dist/navbar-centered-menu.cjs +1 -1
  4. package/dist/navbar-centered-menu.js +1 -1
  5. package/dist/navbar-dark-icons.cjs +1 -1
  6. package/dist/navbar-dark-icons.js +1 -1
  7. package/dist/navbar-dropdown-menu.cjs +1 -1
  8. package/dist/navbar-dropdown-menu.js +1 -1
  9. package/dist/navbar-education-platform.cjs +278 -236
  10. package/dist/navbar-education-platform.d.cts +61 -36
  11. package/dist/navbar-education-platform.d.ts +61 -36
  12. package/dist/navbar-education-platform.js +279 -237
  13. package/dist/navbar-enterprise-mega.cjs +6 -6
  14. package/dist/navbar-enterprise-mega.js +6 -6
  15. package/dist/navbar-feature-grid.cjs +1 -1
  16. package/dist/navbar-feature-grid.js +1 -1
  17. package/dist/navbar-icon-links.cjs +2 -1
  18. package/dist/navbar-icon-links.js +2 -1
  19. package/dist/navbar-image-preview.cjs +129 -50
  20. package/dist/navbar-image-preview.js +128 -50
  21. package/dist/navbar-mega-menu.cjs +1 -1
  22. package/dist/navbar-mega-menu.js +1 -1
  23. package/dist/navbar-multi-column-groups.cjs +53 -49
  24. package/dist/navbar-multi-column-groups.js +53 -49
  25. package/dist/navbar-platform-resources.cjs +5 -4
  26. package/dist/navbar-platform-resources.js +5 -4
  27. package/dist/navbar-search-focused.cjs +1 -1
  28. package/dist/navbar-search-focused.js +1 -1
  29. package/dist/navbar-sidebar-mobile.cjs +235 -166
  30. package/dist/navbar-sidebar-mobile.js +236 -167
  31. package/dist/navbar-simple-links.cjs +228 -184
  32. package/dist/navbar-simple-links.d.cts +15 -3
  33. package/dist/navbar-simple-links.d.ts +15 -3
  34. package/dist/navbar-simple-links.js +228 -183
  35. package/dist/navbar-split-cta.cjs +3 -3
  36. package/dist/navbar-split-cta.js +3 -3
  37. package/dist/navbar-sticky-compact.cjs +1 -1
  38. package/dist/navbar-sticky-compact.js +1 -1
  39. package/dist/navbar-tabbed-sections.cjs +1 -1
  40. package/dist/navbar-tabbed-sections.js +1 -1
  41. package/dist/navbar-transparent-overlay.cjs +244 -123
  42. package/dist/navbar-transparent-overlay.d.cts +30 -1
  43. package/dist/navbar-transparent-overlay.d.ts +30 -1
  44. package/dist/navbar-transparent-overlay.js +244 -123
  45. package/dist/registry.cjs +1008 -894
  46. package/dist/registry.js +1008 -894
  47. package/package.json +1 -1
package/dist/registry.cjs CHANGED
@@ -57132,7 +57132,7 @@ var NavbarMobileMenu = ({
57132
57132
  "data-state": open ? "open" : "closed",
57133
57133
  children: [
57134
57134
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsxRuntime.jsx("h2", { children: title }) }),
57135
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-4 right-4 z-10", children: /* @__PURE__ */ jsxRuntime.jsxs(
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
57136
  "button",
57137
57137
  {
57138
57138
  onClick: onClose,
@@ -58662,7 +58662,7 @@ var DesktopMenuItem2 = ({
58662
58662
  if (hasDropdown) {
58663
58663
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
58664
58664
  /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-3 py-2 font-normal hover:bg-muted focus:bg-muted data-[state=open]:bg-muted/50", children: item.label }),
58665
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "!rounded-xl !border-0 !p-6", children: renderDropdownContent(
58665
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "rounded-xl! border-0! p-4!", children: renderDropdownContent(
58666
58666
  { ...item, layout: effectiveLayout },
58667
58667
  optixFlowConfig
58668
58668
  ) })
@@ -58733,7 +58733,7 @@ var renderDropdownContent = (item, optixFlowConfig) => {
58733
58733
  var renderMobileDropdownContent = (item) => {
58734
58734
  switch (item.layout) {
58735
58735
  case "solutions-with-platform":
58736
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: item.solutionCards?.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
58736
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col space-y-2", children: item.solutionCards?.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
58737
58737
  /* @__PURE__ */ jsxRuntime.jsx(
58738
58738
  Pressable,
58739
58739
  {
@@ -58761,7 +58761,7 @@ var renderMobileDropdownContent = (item) => {
58761
58761
  Pressable,
58762
58762
  {
58763
58763
  href: product.href,
58764
- className: "flex items-center gap-2 text-sm text-muted-foreground",
58764
+ className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
58765
58765
  children: product.title
58766
58766
  },
58767
58767
  product.id
@@ -58772,7 +58772,7 @@ var renderMobileDropdownContent = (item) => {
58772
58772
  Pressable,
58773
58773
  {
58774
58774
  href: resource.href,
58775
- className: "flex items-center gap-2 text-sm text-muted-foreground",
58775
+ className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
58776
58776
  children: [
58777
58777
  /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: resource.icon, size: 14 }),
58778
58778
  resource.title
@@ -58861,7 +58861,7 @@ var MobileNavigationMenu = ({
58861
58861
  typeof item.label === "string" ? item.label : `nav-${index}`
58862
58862
  );
58863
58863
  }) }),
58864
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6 flex flex-col gap-4", actionsClassName), children: renderActions })
58864
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4 flex flex-col gap-4", actionsClassName), children: renderActions })
58865
58865
  ] })
58866
58866
  }
58867
58867
  );
@@ -59606,6 +59606,7 @@ var NavbarPlatformResources = ({
59606
59606
  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(
59607
59607
  NavigationMenu,
59608
59608
  {
59609
+ viewport: false,
59609
59610
  className: cn("min-w-full", navigationMenuClassName),
59610
59611
  children: [
59611
59612
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full items-center justify-between gap-12 py-4", children: [
@@ -59628,7 +59629,7 @@ var NavbarPlatformResources = ({
59628
59629
  NavigationMenuItem,
59629
59630
  {
59630
59631
  children: [
59631
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-0 py-0 font-normal text-muted-foreground hover:bg-transparent focus:bg-transparent data-[state=open]:bg-transparent", children: link.label }),
59632
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { className: "h-auto bg-transparent px-4 py-2 font-normal hover:bg-muted focus:bg-transparent data-[state=open]:bg-transparent", children: link.label }),
59632
59633
  renderDropdownContent3(link)
59633
59634
  ]
59634
59635
  },
@@ -59645,7 +59646,7 @@ var NavbarPlatformResources = ({
59645
59646
  NavigationMenuLink,
59646
59647
  {
59647
59648
  href: link.href,
59648
- className: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted hover:text-accent-foreground",
59649
+ className: "group inline-flex h-10 w-max items-center justify-center rounded-md bg-background px-4 py-2 text-sm font-medium transition-colors hover:bg-muted",
59649
59650
  children: link.label
59650
59651
  }
59651
59652
  )
@@ -59696,7 +59697,7 @@ var NavbarPlatformResources = ({
59696
59697
  className: "border-b-0",
59697
59698
  children: [
59698
59699
  /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "h-15 items-center text-base font-normal text-foreground hover:no-underline", children: link.label }),
59699
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
59700
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none space-y-4", children: link.links?.map((item, itemIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
59700
59701
  Pressable,
59701
59702
  {
59702
59703
  href: getLinkUrl(item),
@@ -60000,7 +60001,7 @@ var DesktopMenuItem3 = ({
60000
60001
  onMouseLeave: handleMouseLeave,
60001
60002
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60002
60003
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-sm leading-normal font-medium", children: link.label }),
60003
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-normal text-muted-foreground", children: link.description })
60004
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-normal", children: link.description })
60004
60005
  ] })
60005
60006
  }
60006
60007
  ) }, `desktop-nav-sublink-${linkIndex}`)) })
@@ -60028,44 +60029,17 @@ var MobileNavigationMenu2 = ({
60028
60029
  authActions,
60029
60030
  authActionsSlot
60030
60031
  }) => {
60031
- const renderMobileNavigation = React52.useMemo(() => {
60032
- if (mobileNavigationSlot) return mobileNavigationSlot;
60033
- if (!mobileNavigation || mobileNavigation.length === 0) return null;
60034
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid w-full grid-cols-2 gap-x-4 gap-y-10", children: mobileNavigation.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
60035
- "div",
60036
- {
60037
- className: cn(
60038
- "flex flex-col gap-4 text-primary-foreground",
60039
- item.className
60040
- ),
60041
- children: [
60042
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground uppercase", children: item.title }),
60043
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-3", children: item.links?.map((link, i) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
60044
- Pressable,
60045
- {
60046
- href: getLinkUrl(link),
60047
- className: cn(
60048
- "text-primary-foreground leading-normal font-medium",
60049
- index === 0 ? "text-2xl" : "text-base"
60050
- ),
60051
- children: link.label
60052
- }
60053
- ) }, `mobile-nav-link-${i}`)) })
60054
- ]
60055
- },
60056
- `mobile-menu-item-${index}`
60057
- )) });
60058
- }, [mobileNavigationSlot, mobileNavigation]);
60032
+ const handleClose = () => setOpen(false);
60059
60033
  const renderSocialLinks = React52.useMemo(() => {
60060
60034
  if (socialLinksSlot) return socialLinksSlot;
60061
60035
  if (!socialLinks || socialLinks.length === 0) return null;
60062
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-2 flex flex-col gap-4", children: [
60063
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-xs text-muted-foreground uppercase", children: "SOCIAL" }),
60064
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4", children: socialLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsxs(
60036
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 mt-6", children: [
60037
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "px-4 text-[10px] text-muted-foreground uppercase", children: "SOCIAL" }),
60038
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 px-4", children: socialLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsxs(
60065
60039
  Pressable,
60066
60040
  {
60067
60041
  href: link.url,
60068
- className: "text-primary-foreground",
60042
+ onClick: handleClose,
60069
60043
  children: [
60070
60044
  link.icon ?? (link.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.iconName, size: 20 })),
60071
60045
  !link.icon && !link.iconName && link.label
@@ -60074,11 +60048,11 @@ var MobileNavigationMenu2 = ({
60074
60048
  `social-link-${index}`
60075
60049
  )) })
60076
60050
  ] });
60077
- }, [socialLinksSlot, socialLinks]);
60051
+ }, [socialLinksSlot, socialLinks, handleClose]);
60078
60052
  const renderMobileAuthActions = React52.useMemo(() => {
60079
60053
  if (authActionsSlot) return authActionsSlot;
60080
60054
  if (!authActions || authActions.length === 0) return null;
60081
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2", children: authActions.map((action, index) => {
60055
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 mt-6", children: authActions.map((action, index) => {
60082
60056
  const {
60083
60057
  label,
60084
60058
  icon,
@@ -60092,6 +60066,7 @@ var MobileNavigationMenu2 = ({
60092
60066
  {
60093
60067
  asButton: true,
60094
60068
  className: cn("w-full", actionClassName),
60069
+ onClick: handleClose,
60095
60070
  ...pressableProps,
60096
60071
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
60097
60072
  icon,
@@ -60102,20 +60077,63 @@ var MobileNavigationMenu2 = ({
60102
60077
  index
60103
60078
  );
60104
60079
  }) });
60105
- }, [authActionsSlot, authActions]);
60106
- return /* @__PURE__ */ jsxRuntime.jsx(
60107
- NavbarMobileMenu,
60108
- {
60109
- open,
60110
- onClose: () => setOpen(false),
60111
- title: "Mobile Navigation",
60112
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col justify-between gap-30", children: [
60113
- renderMobileNavigation,
60114
- renderSocialLinks,
60115
- renderMobileAuthActions
60116
- ] }) })
60117
- }
60118
- );
60080
+ }, [authActionsSlot, authActions, handleClose]);
60081
+ if (mobileNavigationSlot) {
60082
+ return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Mobile Navigation", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
60083
+ mobileNavigationSlot,
60084
+ renderSocialLinks,
60085
+ renderMobileAuthActions
60086
+ ] }) }) });
60087
+ }
60088
+ return /* @__PURE__ */ jsxRuntime.jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Mobile Navigation", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
60089
+ /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: mobileNavigation.map((item, index) => {
60090
+ if (item.links && item.links.length > 0) {
60091
+ return /* @__PURE__ */ jsxRuntime.jsxs(
60092
+ AccordionItem,
60093
+ {
60094
+ value: `nav-${index}`,
60095
+ className: "border-b-0",
60096
+ children: [
60097
+ /* @__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 }),
60098
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
60099
+ Pressable,
60100
+ {
60101
+ href: getLinkUrl(link),
60102
+ 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",
60103
+ onClick: handleClose,
60104
+ children: [
60105
+ link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
60106
+ DynamicIcon,
60107
+ {
60108
+ name: link.iconName,
60109
+ size: 16,
60110
+ className: "stroke-muted-foreground"
60111
+ }
60112
+ ) : null,
60113
+ link.label
60114
+ ]
60115
+ },
60116
+ `mobile-link-${linkIndex}`
60117
+ )) })
60118
+ ]
60119
+ },
60120
+ `nav-item-${index}`
60121
+ );
60122
+ }
60123
+ return /* @__PURE__ */ jsxRuntime.jsx(
60124
+ Pressable,
60125
+ {
60126
+ href: item.url,
60127
+ 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",
60128
+ onClick: handleClose,
60129
+ children: item.title
60130
+ },
60131
+ `nav-link-${index}`
60132
+ );
60133
+ }) }),
60134
+ renderSocialLinks,
60135
+ renderMobileAuthActions
60136
+ ] }) }) });
60119
60137
  };
60120
60138
  var MOBILE_BREAKPOINT3 = 1024;
60121
60139
  var NavbarDarkIcons = ({
@@ -60713,8 +60731,8 @@ var AnimatedImagePreviewDropdown = ({
60713
60731
  updateImageClasses(0);
60714
60732
  };
60715
60733
  if (!links) return null;
60716
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
60717
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid grid-cols-2 gap-8", children: links.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
60734
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
60735
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid grid-cols-2 gap-4", children: links.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
60718
60736
  NavLink,
60719
60737
  {
60720
60738
  link,
@@ -60753,7 +60771,7 @@ var FeaturedCardsGridDropdown = ({
60753
60771
  optixFlowConfig
60754
60772
  }) => {
60755
60773
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60756
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-8 pb-8", children: featuredLinks?.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
60774
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex gap-4 pb-8", children: featuredLinks?.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
60757
60775
  FeaturedLink,
60758
60776
  {
60759
60777
  link,
@@ -60770,7 +60788,7 @@ var GroupedLinksImageDropdown = ({
60770
60788
  imageLink,
60771
60789
  optixFlowConfig
60772
60790
  }) => {
60773
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
60791
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
60774
60792
  /* @__PURE__ */ jsxRuntime.jsx(GroupLinks, { groupLinks }),
60775
60793
  /* @__PURE__ */ jsxRuntime.jsx(FeaturedImageLink, { link: imageLink, optixFlowConfig })
60776
60794
  ] });
@@ -60791,9 +60809,9 @@ var GroupLinks = ({ groupLinks }) => {
60791
60809
  };
60792
60810
  if (!groupLinks) return null;
60793
60811
  let linkIndex = 0;
60794
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-8", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60795
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs text-muted-foreground", children: group.label }),
60796
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-8", children: group.links.map((link, index2) => {
60812
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between gap-4", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
60813
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4 text-xs", children: group.label }),
60814
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "flex flex-col gap-4", children: group.links.map((link, index2) => {
60797
60815
  const idx = linkIndex++;
60798
60816
  return /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
60799
60817
  NavLink,
@@ -60821,7 +60839,7 @@ var FeaturedImageLink = ({
60821
60839
  className: "overflow-hidden rounded-lg bg-muted",
60822
60840
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "size-full", children: [
60823
60841
  /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: "absolute top-2 left-2", children: "New" }),
60824
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full flex-col items-center justify-center gap-8 pt-10", children: [
60842
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex w-full flex-col items-center justify-center gap-4 pt-10", children: [
60825
60843
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xl font-semibold", children: link.label }),
60826
60844
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "w-[80%]", children: /* @__PURE__ */ jsxRuntime.jsx(
60827
60845
  AspectRatio,
@@ -60833,7 +60851,7 @@ var FeaturedImageLink = ({
60833
60851
  {
60834
60852
  src: link.image,
60835
60853
  alt: typeof link.label === "string" ? link.label : "",
60836
- className: "size-full object-cover object-left-top",
60854
+ className: "size-full object-cover object-center",
60837
60855
  optixFlowConfig
60838
60856
  }
60839
60857
  )
@@ -60849,7 +60867,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
60849
60867
  Pressable,
60850
60868
  {
60851
60869
  href: getLinkUrl(link),
60852
- className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-7",
60870
+ className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-12",
60853
60871
  children: [
60854
60872
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
60855
60873
  /* @__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(
@@ -60857,12 +60875,12 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
60857
60875
  {
60858
60876
  name: link.iconName,
60859
60877
  size: 20,
60860
- className: "m-auto stroke-foreground"
60878
+ className: "m-auto stroke-white"
60861
60879
  }
60862
60880
  ) : null }),
60863
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2", children: [
60864
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-semibold text-background", children: link.label }),
60865
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium text-background/80", children: link.description })
60881
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-2 text-white text-shadow-lg", children: [
60882
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-lg font-semibold", children: link.label }),
60883
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: link.description })
60866
60884
  ] })
60867
60885
  ] }),
60868
60886
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -60870,7 +60888,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
60870
60888
  {
60871
60889
  src: link.background,
60872
60890
  alt: typeof link.label === "string" ? link.label : "",
60873
- className: "absolute top-0 left-0 size-full object-cover object-left-top opacity-90 transition-opacity duration-300 ease-in-out group-hover:opacity-100",
60891
+ className: "absolute top-0 left-0 size-full brightness-50 object-cover object-center opacity-90 transition-opacity duration-300 ease-in-out group-hover:opacity-100",
60874
60892
  optixFlowConfig
60875
60893
  }
60876
60894
  )
@@ -61210,10 +61228,11 @@ var MobileNavigationMenu5 = ({
61210
61228
  authActions,
61211
61229
  authActionsSlot
61212
61230
  }) => {
61231
+ const handleClose = () => setOpen(false);
61213
61232
  const renderMobileAuthActions = React52.useMemo(() => {
61214
61233
  if (authActionsSlot) return authActionsSlot;
61215
61234
  if (!authActions || authActions.length === 0) return null;
61216
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: authActions.map((action, index) => {
61235
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 mt-6", children: authActions.map((action, index) => {
61217
61236
  const {
61218
61237
  label,
61219
61238
  icon,
@@ -61227,6 +61246,7 @@ var MobileNavigationMenu5 = ({
61227
61246
  {
61228
61247
  asButton: true,
61229
61248
  className: cn("w-full", actionClassName),
61249
+ onClick: handleClose,
61230
61250
  ...pressableProps,
61231
61251
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61232
61252
  icon,
@@ -61237,63 +61257,65 @@ var MobileNavigationMenu5 = ({
61237
61257
  index
61238
61258
  );
61239
61259
  }) });
61240
- }, [authActionsSlot, authActions]);
61260
+ }, [authActionsSlot, authActions, handleClose]);
61241
61261
  return /* @__PURE__ */ jsxRuntime.jsx(
61242
61262
  NavbarMobileMenu,
61243
61263
  {
61244
61264
  open,
61245
- onClose: () => setOpen(false),
61265
+ onClose: handleClose,
61246
61266
  title: "Mobile Navigation",
61247
61267
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
61248
- /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => renderMobileMenuItem5(item, index)) }),
61249
- renderMobileAuthActions
61250
- ] }) })
61251
- }
61252
- );
61253
- };
61254
- var renderMobileMenuItem5 = (item, index) => {
61255
- if (item.groups) {
61256
- return /* @__PURE__ */ jsxRuntime.jsxs(
61257
- AccordionItem,
61258
- {
61259
- value: `nav-${index}`,
61260
- className: "border-b-0",
61261
- children: [
61262
- /* @__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 }),
61263
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.flatMap(
61264
- (group, groupIndex) => group.links.map((link, linkIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61265
- Pressable,
61268
+ /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: navigation.map((item, index) => {
61269
+ if (item.groups && item.groups.length > 0) {
61270
+ return /* @__PURE__ */ jsxRuntime.jsxs(
61271
+ AccordionItem,
61266
61272
  {
61267
- href: link.url,
61268
- 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",
61273
+ value: `nav-${index}`,
61274
+ className: "border-b-0",
61269
61275
  children: [
61270
- link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
61271
- DynamicIcon,
61272
- {
61273
- name: link.iconName,
61274
- size: 16,
61275
- className: "stroke-muted-foreground"
61276
- }
61277
- ) : null,
61278
- link.label
61276
+ /* @__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}`)) })
61279
61300
  ]
61280
61301
  },
61281
- `mobile-link-${groupIndex}-${linkIndex}`
61282
- ))
61283
- ) })
61284
- ]
61285
- },
61286
- `nav-item-${index}`
61287
- );
61288
- }
61289
- return /* @__PURE__ */ jsxRuntime.jsx(
61290
- Pressable,
61291
- {
61292
- href: item.url,
61293
- 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 nth-last-1:border-0",
61294
- children: item.title
61295
- },
61296
- `nav-link-${index}`
61302
+ `nav-item-${index}`
61303
+ );
61304
+ }
61305
+ return /* @__PURE__ */ jsxRuntime.jsx(
61306
+ Pressable,
61307
+ {
61308
+ href: item.url,
61309
+ 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",
61310
+ onClick: handleClose,
61311
+ children: item.title
61312
+ },
61313
+ `nav-link-${index}`
61314
+ );
61315
+ }) }),
61316
+ renderMobileAuthActions
61317
+ ] }) })
61318
+ }
61297
61319
  );
61298
61320
  };
61299
61321
  var NavbarSidebarMobile = ({
@@ -61319,7 +61341,29 @@ var NavbarSidebarMobile = ({
61319
61341
  optixFlowConfig
61320
61342
  }) => {
61321
61343
  const [isOpen, setIsOpen] = React52.useState(false);
61322
- const renderAuthActions = () => {
61344
+ const MOBILE_BREAKPOINT8 = 1024;
61345
+ React52.useEffect(() => {
61346
+ if (typeof window === "undefined") return;
61347
+ const handleResize = () => {
61348
+ if (window.innerWidth > MOBILE_BREAKPOINT8) {
61349
+ setIsOpen(false);
61350
+ }
61351
+ };
61352
+ handleResize();
61353
+ window.addEventListener("resize", handleResize);
61354
+ return () => window.removeEventListener("resize", handleResize);
61355
+ }, []);
61356
+ React52.useEffect(() => {
61357
+ if (typeof document === "undefined") return;
61358
+ document.body.style.overflow = isOpen ? "hidden" : "auto";
61359
+ return () => {
61360
+ document.body.style.overflow = "auto";
61361
+ };
61362
+ }, [isOpen]);
61363
+ const handleMobileMenu = () => {
61364
+ setIsOpen(!isOpen);
61365
+ };
61366
+ const renderAuthActions = React52.useMemo(() => {
61323
61367
  if (authActionsSlot) return authActionsSlot;
61324
61368
  if (!authActions || authActions.length === 0) return null;
61325
61369
  return authActions.map((action, index) => {
@@ -61346,17 +61390,12 @@ var NavbarSidebarMobile = ({
61346
61390
  index
61347
61391
  );
61348
61392
  });
61349
- };
61393
+ }, [authActionsSlot, authActions]);
61350
61394
  const renderMenu = () => {
61351
61395
  if (menuSlot) return null;
61352
61396
  if (!menu || menu.length === 0) return null;
61353
61397
  return menu;
61354
61398
  };
61355
- const renderMobileExtraLinks = () => {
61356
- if (mobileExtraLinksSlot) return null;
61357
- if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
61358
- return mobileExtraLinks;
61359
- };
61360
61399
  const {
61361
61400
  sectionClasses,
61362
61401
  containerWrapperClasses,
@@ -61366,180 +61405,283 @@ var NavbarSidebarMobile = ({
61366
61405
  sectionContainerMaxWidth,
61367
61406
  spacingOverride
61368
61407
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
61369
- return /* @__PURE__ */ jsxRuntime.jsx(
61370
- Section,
61371
- {
61372
- background,
61373
- spacing: spacingOverride ?? spacing,
61374
- className: sectionClasses,
61375
- pattern,
61376
- patternOpacity,
61377
- containerClassName: sectionContainerClassName,
61378
- containerMaxWidth: sectionContainerMaxWidth,
61379
- 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(
61380
- "nav",
61381
- {
61382
- className: cn(
61383
- "flex items-center justify-between py-4",
61384
- navClassName
61385
- ),
61386
- children: [
61387
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-8", children: [
61408
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61409
+ /* @__PURE__ */ jsxRuntime.jsx(
61410
+ Section,
61411
+ {
61412
+ background,
61413
+ spacing: spacingOverride ?? spacing,
61414
+ className: sectionClasses,
61415
+ pattern,
61416
+ patternOpacity,
61417
+ containerClassName: sectionContainerClassName,
61418
+ containerMaxWidth: sectionContainerMaxWidth,
61419
+ 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(
61420
+ "nav",
61421
+ {
61422
+ className: cn(
61423
+ "flex items-center justify-between py-4",
61424
+ navClassName
61425
+ ),
61426
+ children: [
61427
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-8", children: [
61428
+ /* @__PURE__ */ jsxRuntime.jsx(
61429
+ NavbarLogo,
61430
+ {
61431
+ logo,
61432
+ logoSlot,
61433
+ logoClassName,
61434
+ optixFlowConfig
61435
+ }
61436
+ ),
61437
+ /* @__PURE__ */ jsxRuntime.jsx(
61438
+ NavigationMenu,
61439
+ {
61440
+ className: cn("hidden lg:flex", navigationMenuClassName),
61441
+ children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
61442
+ (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
61443
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.title }),
61444
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
61445
+ Pressable,
61446
+ {
61447
+ href: subItem.url,
61448
+ className: "block w-full select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-muted focus:bg-muted",
61449
+ children: [
61450
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
61451
+ subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
61452
+ DynamicIcon,
61453
+ {
61454
+ name: subItem.icon,
61455
+ size: 16
61456
+ }
61457
+ ),
61458
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium leading-none", children: subItem.title })
61459
+ ] }),
61460
+ subItem.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-2 text-sm leading-snug text-muted-foreground", children: subItem.description })
61461
+ ]
61462
+ }
61463
+ ) }) }, subIndex)) }) })
61464
+ ] }, index) : /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
61465
+ NavigationMenuLink,
61466
+ {
61467
+ asChild: true,
61468
+ className: navigationMenuTriggerStyle(),
61469
+ children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.url, children: item.title })
61470
+ }
61471
+ ) }, index)
61472
+ ) })
61473
+ }
61474
+ )
61475
+ ] }),
61388
61476
  /* @__PURE__ */ jsxRuntime.jsx(
61389
- NavbarLogo,
61477
+ "div",
61390
61478
  {
61391
- logo,
61392
- logoSlot,
61393
- logoClassName,
61394
- optixFlowConfig
61479
+ className: cn(
61480
+ "hidden items-center gap-2 lg:flex",
61481
+ actionsClassName
61482
+ ),
61483
+ children: renderAuthActions
61395
61484
  }
61396
61485
  ),
61397
- /* @__PURE__ */ jsxRuntime.jsx(
61398
- NavigationMenu,
61486
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
61487
+ Pressable,
61399
61488
  {
61400
- className: cn("hidden lg:flex", navigationMenuClassName),
61401
- children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
61402
- (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
61403
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.title }),
61404
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { children: /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "grid w-[400px] gap-3 p-4 md:w-[500px] md:grid-cols-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
61405
- Pressable,
61406
- {
61407
- href: subItem.url,
61408
- className: "block select-none space-y-1 rounded-md p-3 leading-none no-underline outline-none transition-colors hover:bg-accent hover:text-accent-foreground focus:bg-accent focus:text-accent-foreground",
61409
- children: [
61410
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
61411
- subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
61412
- DynamicIcon,
61413
- {
61414
- name: subItem.icon,
61415
- size: 16
61416
- }
61417
- ),
61418
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium leading-none", children: subItem.title })
61419
- ] }),
61420
- subItem.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "line-clamp-2 text-sm leading-snug text-muted-foreground", children: subItem.description })
61421
- ]
61422
- }
61423
- ) }) }, subIndex)) }) })
61424
- ] }, index) : /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
61425
- NavigationMenuLink,
61426
- {
61427
- asChild: true,
61428
- className: navigationMenuTriggerStyle(),
61429
- children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.url, children: item.title })
61430
- }
61431
- ) }, index)
61432
- ) })
61433
- }
61434
- )
61435
- ] }),
61436
- /* @__PURE__ */ jsxRuntime.jsx(
61437
- "div",
61438
- {
61439
- className: cn(
61440
- "hidden items-center gap-2 lg:flex",
61441
- actionsClassName
61442
- ),
61443
- children: renderAuthActions()
61444
- }
61445
- ),
61446
- /* @__PURE__ */ jsxRuntime.jsxs(
61447
- Pressable,
61448
- {
61449
- variant: "outline",
61450
- size: "icon",
61451
- asButton: true,
61452
- className: "lg:hidden",
61453
- onClick: () => setIsOpen(!isOpen),
61454
- children: [
61455
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
61456
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
61457
- ]
61458
- }
61459
- ),
61460
- /* @__PURE__ */ jsxRuntime.jsx(
61461
- NavbarMobileMenu,
61462
- {
61463
- open: isOpen,
61464
- onClose: () => setIsOpen(false),
61465
- title: "Navigation Menu",
61466
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col", children: [
61467
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center justify-between border-b pb-4", children: /* @__PURE__ */ jsxRuntime.jsx(
61468
- NavbarLogo,
61489
+ className: "size-11",
61490
+ variant: "ghost",
61491
+ size: "icon",
61492
+ asButton: true,
61493
+ onClick: handleMobileMenu,
61494
+ children: /* @__PURE__ */ jsxRuntime.jsx(
61495
+ DynamicIcon,
61469
61496
  {
61470
- logo,
61471
- logoSlot,
61472
- logoClassName,
61473
- optixFlowConfig
61497
+ name: "lucide/menu",
61498
+ size: 22,
61499
+ className: "stroke-foreground"
61474
61500
  }
61475
- ) }),
61476
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1 overflow-y-auto py-4", children: /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: menuSlot ? menuSlot : renderMenu()?.map(
61477
- (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
61478
- AccordionItem,
61479
- {
61480
- value: `item-${index}`,
61481
- children: [
61482
- /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "text-base hover:no-underline", children: item.title }),
61483
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col space-y-2 pl-4", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61484
- Pressable,
61485
- {
61486
- href: subItem.url,
61487
- className: "flex items-center gap-2 rounded-md py-2 text-sm text-muted-foreground hover:text-foreground",
61488
- onClick: () => setIsOpen(false),
61489
- children: [
61490
- subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
61491
- DynamicIcon,
61492
- {
61493
- name: subItem.icon,
61494
- size: 14
61495
- }
61496
- ),
61497
- subItem.title
61498
- ]
61499
- },
61500
- subIndex
61501
- )) }) })
61502
- ]
61503
- },
61504
- index
61505
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b py-4", children: /* @__PURE__ */ jsxRuntime.jsx(
61506
- Pressable,
61507
- {
61508
- href: item.url,
61509
- className: "text-base font-medium",
61510
- onClick: () => setIsOpen(false),
61511
- children: item.title
61512
- }
61513
- ) }, index)
61514
- ) }) }),
61515
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "border-t pt-4", children: [
61516
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-2", children: renderAuthActions() }),
61517
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex flex-wrap gap-x-4 gap-y-2", children: mobileExtraLinksSlot ? mobileExtraLinksSlot : renderMobileExtraLinks()?.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
61518
- Pressable,
61519
- {
61520
- href: link.url,
61521
- className: "text-xs text-muted-foreground hover:text-foreground",
61522
- onClick: () => setIsOpen(false),
61523
- children: link.title
61524
- },
61525
- index
61526
- )) })
61527
- ] })
61528
- ] }) })
61529
- }
61530
- )
61531
- ]
61532
- }
61533
- ) }) }) })
61501
+ )
61502
+ }
61503
+ ) })
61504
+ ]
61505
+ }
61506
+ ) }) }) })
61507
+ }
61508
+ ),
61509
+ /* @__PURE__ */ jsxRuntime.jsx(
61510
+ MobileNavigationMenu6,
61511
+ {
61512
+ open: isOpen,
61513
+ setOpen: setIsOpen,
61514
+ menu: menu ?? [],
61515
+ menuSlot,
61516
+ authActions,
61517
+ authActionsSlot,
61518
+ mobileExtraLinks,
61519
+ mobileExtraLinksSlot
61520
+ }
61521
+ )
61522
+ ] });
61523
+ };
61524
+ var MobileNavigationMenu6 = ({
61525
+ open,
61526
+ setOpen,
61527
+ menu,
61528
+ menuSlot,
61529
+ authActions,
61530
+ authActionsSlot,
61531
+ mobileExtraLinks,
61532
+ mobileExtraLinksSlot
61533
+ }) => {
61534
+ const renderMobileAuthActions = React52.useMemo(() => {
61535
+ if (authActionsSlot) return authActionsSlot;
61536
+ if (!authActions || authActions.length === 0) return null;
61537
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: authActions.map((action, index) => {
61538
+ const {
61539
+ label,
61540
+ icon,
61541
+ iconAfter,
61542
+ children,
61543
+ className: actionClassName,
61544
+ ...pressableProps
61545
+ } = action;
61546
+ return /* @__PURE__ */ jsxRuntime.jsx(
61547
+ Pressable,
61548
+ {
61549
+ asButton: true,
61550
+ className: cn("w-full", actionClassName),
61551
+ ...pressableProps,
61552
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61553
+ icon,
61554
+ label,
61555
+ iconAfter
61556
+ ] })
61557
+ },
61558
+ index
61559
+ );
61560
+ }) });
61561
+ }, [authActionsSlot, authActions]);
61562
+ const renderMobileExtraLinks = React52.useMemo(() => {
61563
+ if (mobileExtraLinksSlot) return mobileExtraLinksSlot;
61564
+ if (!mobileExtraLinks || mobileExtraLinks.length === 0) return null;
61565
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex flex-wrap gap-x-4 gap-y-2", children: mobileExtraLinks.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx(
61566
+ Pressable,
61567
+ {
61568
+ href: link.url,
61569
+ className: "text-xs text-muted-foreground hover:text-foreground",
61570
+ children: link.title
61571
+ },
61572
+ index
61573
+ )) });
61574
+ }, [mobileExtraLinksSlot, mobileExtraLinks]);
61575
+ return /* @__PURE__ */ jsxRuntime.jsx(
61576
+ NavbarMobileMenu,
61577
+ {
61578
+ open,
61579
+ onClose: () => setOpen(false),
61580
+ title: "Navigation Menu",
61581
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
61582
+ /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "single", collapsible: true, className: "w-full", children: menuSlot ? menuSlot : menu.map(
61583
+ (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs(
61584
+ AccordionItem,
61585
+ {
61586
+ value: `nav-${index}`,
61587
+ className: "border-b-0",
61588
+ children: [
61589
+ /* @__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 }),
61590
+ /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
61591
+ Pressable,
61592
+ {
61593
+ href: subItem.url,
61594
+ 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",
61595
+ children: [
61596
+ subItem.icon && /* @__PURE__ */ jsxRuntime.jsx(
61597
+ DynamicIcon,
61598
+ {
61599
+ name: subItem.icon,
61600
+ size: 16,
61601
+ className: "stroke-muted-foreground"
61602
+ }
61603
+ ),
61604
+ subItem.title
61605
+ ]
61606
+ },
61607
+ `mobile-link-${index}-${subIndex}`
61608
+ )) })
61609
+ ]
61610
+ },
61611
+ `nav-item-${index}`
61612
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
61613
+ Pressable,
61614
+ {
61615
+ href: item.url,
61616
+ 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 nth-last-1:border-0",
61617
+ children: item.title
61618
+ },
61619
+ `nav-link-${index}`
61620
+ )
61621
+ ) }),
61622
+ renderMobileAuthActions,
61623
+ renderMobileExtraLinks
61624
+ ] }) })
61534
61625
  }
61535
61626
  );
61536
61627
  };
61628
+ var platformIconMap = {
61629
+ instagram: "cib/instagram",
61630
+ linkedin: "cib/linkedin",
61631
+ google: "cib/google",
61632
+ facebook: "cib/facebook",
61633
+ tiktok: "cib/tiktok",
61634
+ youtube: "cib/youtube",
61635
+ yelp: "cib/yelp",
61636
+ spotify: "cib/spotify",
61637
+ apple: "cib/apple",
61638
+ x: "line-md/twitter-x"
61639
+ };
61640
+ var SocialLinkIcon = React52__namespace.forwardRef(
61641
+ ({
61642
+ platformName,
61643
+ label,
61644
+ iconSize = 20,
61645
+ iconColor,
61646
+ iconClassName,
61647
+ className,
61648
+ ...pressableProps
61649
+ }, ref) => {
61650
+ const iconName = platformIconMap[platformName];
61651
+ const accessibleLabel = label || platformName;
61652
+ return /* @__PURE__ */ jsxRuntime.jsx(
61653
+ Pressable,
61654
+ {
61655
+ ref,
61656
+ "aria-label": accessibleLabel,
61657
+ className: cn(
61658
+ "inline-flex items-center justify-center transition-colors",
61659
+ className
61660
+ ),
61661
+ ...pressableProps,
61662
+ children: /* @__PURE__ */ jsxRuntime.jsx(
61663
+ DynamicIcon,
61664
+ {
61665
+ name: iconName,
61666
+ size: iconSize,
61667
+ color: iconColor,
61668
+ className: iconClassName,
61669
+ alt: accessibleLabel
61670
+ }
61671
+ )
61672
+ }
61673
+ );
61674
+ }
61675
+ );
61676
+ SocialLinkIcon.displayName = "SocialLinkIcon";
61537
61677
  var NavbarTransparentOverlay = ({
61538
61678
  className,
61539
61679
  containerClassName,
61540
61680
  navClassName,
61541
61681
  navigationMenuClassName,
61542
61682
  actionsClassName,
61683
+ mobileMenuClassName,
61684
+ socialLinksClassName,
61543
61685
  logo,
61544
61686
  logoSlot,
61545
61687
  logoClassName,
@@ -61549,6 +61691,8 @@ var NavbarTransparentOverlay = ({
61549
61691
  authActionsSlot,
61550
61692
  mobileAuthActions,
61551
61693
  mobileAuthActionsSlot,
61694
+ socialLinks,
61695
+ socialLinksSlot,
61552
61696
  layoutVariant = "fullScreenContainerizedLinks",
61553
61697
  background,
61554
61698
  spacing,
@@ -61567,14 +61711,7 @@ var NavbarTransparentOverlay = ({
61567
61711
  window.addEventListener("scroll", handleScroll);
61568
61712
  return () => window.removeEventListener("scroll", handleScroll);
61569
61713
  }, []);
61570
- React52.useEffect(() => {
61571
- if (typeof document === "undefined") return;
61572
- document.body.style.overflow = isOpen ? "hidden" : "auto";
61573
- return () => {
61574
- document.body.style.overflow = "auto";
61575
- };
61576
- }, [isOpen]);
61577
- const toggleMenu = () => setIsOpen(!isOpen);
61714
+ const handleMobileMenuClose = () => setIsOpen(false);
61578
61715
  const renderNavigation = React52.useMemo(() => {
61579
61716
  if (navigationSlot) return navigationSlot;
61580
61717
  if (!navItems || navItems.length === 0) return null;
@@ -61629,35 +61766,6 @@ var NavbarTransparentOverlay = ({
61629
61766
  );
61630
61767
  });
61631
61768
  }, [authActionsSlot, authActions, isScrolled]);
61632
- const renderMobileAuthActions = React52.useMemo(() => {
61633
- if (mobileAuthActionsSlot) return mobileAuthActionsSlot;
61634
- if (!mobileAuthActions || mobileAuthActions.length === 0) return null;
61635
- return mobileAuthActions.map((action, index) => {
61636
- const {
61637
- label,
61638
- icon,
61639
- iconAfter,
61640
- children,
61641
- className: actionClassName,
61642
- ...pressableProps
61643
- } = action;
61644
- return /* @__PURE__ */ jsxRuntime.jsx(
61645
- Pressable,
61646
- {
61647
- asButton: true,
61648
- className: cn("min-w-[200px]", actionClassName),
61649
- onClick: () => setIsOpen(false),
61650
- ...pressableProps,
61651
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61652
- icon,
61653
- label,
61654
- iconAfter
61655
- ] })
61656
- },
61657
- index
61658
- );
61659
- });
61660
- }, [mobileAuthActionsSlot, mobileAuthActions]);
61661
61769
  const {
61662
61770
  sectionClasses,
61663
61771
  containerWrapperClasses,
@@ -61667,18 +61775,18 @@ var NavbarTransparentOverlay = ({
61667
61775
  sectionContainerMaxWidth,
61668
61776
  spacingOverride
61669
61777
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
61670
- return /* @__PURE__ */ jsxRuntime.jsxs(
61671
- Section,
61672
- {
61673
- background,
61674
- spacing: spacingOverride ?? spacing,
61675
- className: sectionClasses,
61676
- pattern,
61677
- patternOpacity,
61678
- containerClassName: sectionContainerClassName,
61679
- containerMaxWidth: sectionContainerMaxWidth,
61680
- children: [
61681
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
61778
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61779
+ /* @__PURE__ */ jsxRuntime.jsx(
61780
+ Section,
61781
+ {
61782
+ background,
61783
+ spacing: spacingOverride ?? spacing,
61784
+ className: sectionClasses,
61785
+ pattern,
61786
+ patternOpacity,
61787
+ containerClassName: sectionContainerClassName,
61788
+ containerMaxWidth: sectionContainerMaxWidth,
61789
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx(
61682
61790
  "nav",
61683
61791
  {
61684
61792
  className: cn(
@@ -61718,95 +61826,144 @@ var NavbarTransparentOverlay = ({
61718
61826
  children: renderAuthActions
61719
61827
  }
61720
61828
  ),
61721
- /* @__PURE__ */ jsxRuntime.jsxs(
61722
- "button",
61829
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
61830
+ Pressable,
61723
61831
  {
61724
- onClick: toggleMenu,
61832
+ variant: "ghost",
61833
+ size: "icon",
61834
+ asButton: true,
61835
+ "aria-label": "Open menu",
61836
+ onClick: () => setIsOpen(true),
61725
61837
  className: cn(
61726
- "z-50 flex h-10 w-10 flex-col items-center justify-center gap-1.5 lg:hidden"
61838
+ "size-11",
61839
+ !isScrolled && "hover:bg-white/10"
61727
61840
  ),
61728
- "aria-label": "Toggle menu",
61729
- children: [
61730
- /* @__PURE__ */ jsxRuntime.jsx(
61731
- "span",
61732
- {
61733
- className: cn(
61734
- "h-0.5 w-6 transition-all duration-300",
61735
- isOpen ? "translate-y-2 rotate-45 bg-foreground" : isScrolled ? "bg-foreground" : "bg-white"
61736
- )
61737
- }
61738
- ),
61739
- /* @__PURE__ */ jsxRuntime.jsx(
61740
- "span",
61741
- {
61742
- className: cn(
61743
- "h-0.5 w-6 transition-all duration-300",
61744
- isOpen ? "opacity-0" : isScrolled ? "bg-foreground" : "bg-white"
61745
- )
61746
- }
61747
- ),
61748
- /* @__PURE__ */ jsxRuntime.jsx(
61749
- "span",
61750
- {
61751
- className: cn(
61752
- "h-0.5 w-6 transition-all duration-300",
61753
- isOpen ? "-translate-y-2 -rotate-45 bg-foreground" : isScrolled ? "bg-foreground" : "bg-white"
61754
- )
61755
- }
61756
- )
61757
- ]
61841
+ children: /* @__PURE__ */ jsxRuntime.jsx(
61842
+ DynamicIcon,
61843
+ {
61844
+ name: "lucide/menu",
61845
+ size: 16,
61846
+ className: cn(
61847
+ isScrolled ? "stroke-foreground" : "stroke-white"
61848
+ )
61849
+ }
61850
+ )
61758
61851
  }
61759
- )
61852
+ ) })
61760
61853
  ] }) })
61761
61854
  }
61762
- ) }),
61763
- /* @__PURE__ */ jsxRuntime.jsx(
61855
+ ) })
61856
+ }
61857
+ ),
61858
+ /* @__PURE__ */ jsxRuntime.jsx(
61859
+ MobileNavigationMenu7,
61860
+ {
61861
+ open: isOpen,
61862
+ onClose: handleMobileMenuClose,
61863
+ navItems,
61864
+ mobileAuthActions,
61865
+ mobileAuthActionsSlot,
61866
+ socialLinks,
61867
+ socialLinksSlot,
61868
+ mobileMenuClassName,
61869
+ socialLinksClassName
61870
+ }
61871
+ )
61872
+ ] });
61873
+ };
61874
+ var MobileNavigationMenu7 = ({
61875
+ open,
61876
+ onClose,
61877
+ navItems,
61878
+ mobileAuthActions,
61879
+ mobileAuthActionsSlot,
61880
+ socialLinks,
61881
+ socialLinksSlot,
61882
+ mobileMenuClassName,
61883
+ socialLinksClassName
61884
+ }) => {
61885
+ const renderMobileAuthActions = React52.useMemo(() => {
61886
+ if (mobileAuthActionsSlot) return mobileAuthActionsSlot;
61887
+ if (!mobileAuthActions || mobileAuthActions.length === 0) return null;
61888
+ return mobileAuthActions.map((action, index) => {
61889
+ const {
61890
+ label,
61891
+ icon,
61892
+ iconAfter,
61893
+ children,
61894
+ className: actionClassName,
61895
+ ...pressableProps
61896
+ } = action;
61897
+ return /* @__PURE__ */ jsxRuntime.jsx(
61898
+ Pressable,
61899
+ {
61900
+ asButton: true,
61901
+ className: cn("min-w-[200px]", actionClassName),
61902
+ onClick: onClose,
61903
+ ...pressableProps,
61904
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61905
+ icon,
61906
+ label,
61907
+ iconAfter
61908
+ ] })
61909
+ },
61910
+ index
61911
+ );
61912
+ });
61913
+ }, [mobileAuthActionsSlot, mobileAuthActions, onClose]);
61914
+ const renderSocialLinks = React52.useMemo(() => {
61915
+ if (socialLinksSlot) return socialLinksSlot;
61916
+ if (!socialLinks || socialLinks.length === 0) return null;
61917
+ return socialLinks.map((link) => /* @__PURE__ */ jsxRuntime.jsx(
61918
+ SocialLinkIcon,
61919
+ {
61920
+ platformName: link.platformName,
61921
+ href: link.href,
61922
+ label: link.label,
61923
+ iconSize: 24,
61924
+ className: "text-white/70 transition-all duration-300 hover:text-white hover:scale-110"
61925
+ },
61926
+ link.platformName
61927
+ ));
61928
+ }, [socialLinksSlot, socialLinks]);
61929
+ return /* @__PURE__ */ jsxRuntime.jsx(
61930
+ NavbarMobileMenu,
61931
+ {
61932
+ open,
61933
+ onClose,
61934
+ title: "Mobile Navigation",
61935
+ className: cn("bg-black/95", mobileMenuClassName),
61936
+ contentClassName: "flex flex-col items-center justify-center",
61937
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
61938
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
61939
+ Pressable,
61940
+ {
61941
+ href: item.url,
61942
+ className: "text-3xl font-medium text-white transition-all duration-300 hover:text-white/80",
61943
+ onClick: onClose,
61944
+ children: [
61945
+ item.icon ?? (item.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 24 })),
61946
+ item.title
61947
+ ]
61948
+ },
61949
+ index
61950
+ )) }),
61951
+ renderMobileAuthActions && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-12 flex flex-col items-center gap-4", children: renderMobileAuthActions }),
61952
+ renderSocialLinks && /* @__PURE__ */ jsxRuntime.jsx(
61764
61953
  "div",
61765
61954
  {
61766
61955
  className: cn(
61767
- "fixed inset-0 z-40 bg-background transition-all duration-500 lg:hidden",
61768
- isOpen ? "opacity-100 pointer-events-auto" : "opacity-0 pointer-events-none"
61956
+ "mt-12 flex flex-row flex-wrap items-center justify-center gap-6",
61957
+ socialLinksClassName
61769
61958
  ),
61770
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
61771
- /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs(
61772
- Pressable,
61773
- {
61774
- href: item.url,
61775
- className: cn(
61776
- "text-3xl font-medium text-foreground transition-all duration-300",
61777
- isOpen ? "translate-y-0 opacity-100" : "translate-y-4 opacity-0"
61778
- ),
61779
- style: {
61780
- transitionDelay: isOpen ? `${index * 100}ms` : "0ms"
61781
- },
61782
- onClick: () => setIsOpen(false),
61783
- children: [
61784
- item.icon ?? (item.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.iconName, size: 24 })),
61785
- item.title
61786
- ]
61787
- },
61788
- index
61789
- )) }),
61790
- /* @__PURE__ */ jsxRuntime.jsx(
61791
- "div",
61792
- {
61793
- className: cn(
61794
- "mt-12 flex flex-col items-center gap-4 transition-all duration-300",
61795
- isOpen ? "translate-y-0 opacity-100" : "translate-y-4 opacity-0"
61796
- ),
61797
- style: {
61798
- transitionDelay: isOpen ? `${(navItems?.length ?? 0) * 100}ms` : "0ms"
61799
- },
61800
- children: renderMobileAuthActions
61801
- }
61802
- )
61803
- ] })
61959
+ children: renderSocialLinks
61804
61960
  }
61805
61961
  )
61806
- ]
61962
+ ] })
61807
61963
  }
61808
61964
  );
61809
61965
  };
61966
+ var MOBILE_BREAKPOINT6 = 1024;
61810
61967
  var NavbarEducationPlatform = ({
61811
61968
  className,
61812
61969
  containerClassName,
@@ -61817,12 +61974,12 @@ var NavbarEducationPlatform = ({
61817
61974
  mobileMenuClassName,
61818
61975
  logo,
61819
61976
  logoSlot,
61820
- features,
61821
- docs,
61822
- company,
61823
- featuredImage,
61977
+ menu,
61978
+ menuSlot,
61824
61979
  authActions,
61825
61980
  authActionsSlot,
61981
+ mobileAuthActions,
61982
+ mobileAuthActionsSlot,
61826
61983
  layoutVariant = "fullScreenContainerizedLinks",
61827
61984
  background,
61828
61985
  spacing,
@@ -61831,6 +61988,33 @@ var NavbarEducationPlatform = ({
61831
61988
  optixFlowConfig
61832
61989
  }) => {
61833
61990
  const [isOpen, setIsOpen] = React52.useState(false);
61991
+ React52.useEffect(() => {
61992
+ if (typeof window === "undefined") return;
61993
+ const handleResize = () => {
61994
+ if (window.innerWidth > MOBILE_BREAKPOINT6) {
61995
+ setIsOpen(false);
61996
+ }
61997
+ };
61998
+ handleResize();
61999
+ window.addEventListener("resize", handleResize);
62000
+ return () => window.removeEventListener("resize", handleResize);
62001
+ }, []);
62002
+ const handleMobileMenuClose = () => {
62003
+ setIsOpen(false);
62004
+ };
62005
+ const renderNavigation = React52.useMemo(() => {
62006
+ if (menuSlot) return menuSlot;
62007
+ if (!menu || menu.length === 0) return null;
62008
+ return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuList, { children: menu.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
62009
+ DesktopMenuItem7,
62010
+ {
62011
+ item,
62012
+ index,
62013
+ optixFlowConfig
62014
+ },
62015
+ `desktop-link-${index}`
62016
+ )) });
62017
+ }, [menuSlot, menu, optixFlowConfig]);
61834
62018
  const renderAuthActions = React52.useMemo(() => {
61835
62019
  if (authActionsSlot) return authActionsSlot;
61836
62020
  if (!authActions || authActions.length === 0) return null;
@@ -61859,166 +62043,43 @@ var NavbarEducationPlatform = ({
61859
62043
  sectionContainerMaxWidth,
61860
62044
  spacingOverride
61861
62045
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
61862
- return /* @__PURE__ */ jsxRuntime.jsxs(
61863
- Section,
61864
- {
61865
- background,
61866
- spacing: spacingOverride ?? spacing,
61867
- className: cn(isOpen && "border-b-0", sectionClasses),
61868
- pattern,
61869
- patternOpacity,
61870
- containerClassName: sectionContainerClassName,
61871
- containerMaxWidth: sectionContainerMaxWidth,
61872
- children: [
61873
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxRuntime.jsxs(
61874
- "nav",
61875
- {
61876
- className: cn(
61877
- "flex items-center justify-between py-4",
61878
- navClassName
61879
- ),
61880
- children: [
61881
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
61882
- /* @__PURE__ */ jsxRuntime.jsx(
61883
- NavbarLogo,
61884
- {
61885
- logo,
61886
- logoSlot,
61887
- logoClassName,
61888
- optixFlowConfig
61889
- }
61890
- ),
61891
- /* @__PURE__ */ jsxRuntime.jsx(
61892
- "div",
61893
- {
61894
- className: cn(
61895
- "hidden items-center gap-1.5 lg:flex",
61896
- navigationMenuClassName
61897
- ),
61898
- children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { delayDuration: 0, children: /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuList, { children: [
61899
- /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
61900
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: "Products" }),
61901
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
61902
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
61903
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "TOOLS" }),
61904
- features?.map((feature) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
61905
- Pressable,
61906
- {
61907
- href: feature.link,
61908
- className: "group flex cursor-pointer flex-row gap-3",
61909
- children: [
61910
- /* @__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(
61911
- DynamicIcon,
61912
- {
61913
- name: feature.icon,
61914
- size: 20
61915
- }
61916
- ) }),
61917
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
61918
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
61919
- feature.title,
61920
- /* @__PURE__ */ jsxRuntime.jsx(
61921
- DynamicIcon,
61922
- {
61923
- name: "lucide/chevron-right",
61924
- size: 16,
61925
- className: "text-primary! opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
61926
- }
61927
- )
61928
- ] }),
61929
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: feature.description })
61930
- ] })
61931
- ]
61932
- }
61933
- ) }, feature.title))
61934
- ] }),
61935
- /* @__PURE__ */ jsxRuntime.jsx(
61936
- Separator,
61937
- {
61938
- orientation: "vertical",
61939
- className: "data-[orientation=vertical]:h-auto"
61940
- }
61941
- ),
61942
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
61943
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "QUICK START" }),
61944
- /* @__PURE__ */ jsxRuntime.jsx("div", {}),
61945
- featuredImage && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
61946
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-5 mb-3 text-[10px] text-muted-foreground uppercase", children: "LATEST UPDATES" }),
61947
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: featuredImage.href || "#", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-lg bg-primary p-3", children: /* @__PURE__ */ jsxRuntime.jsx(
61948
- img.Img,
61949
- {
61950
- src: featuredImage.src,
61951
- alt: featuredImage.alt || "Featured update",
61952
- className: "aspect-video min-w-52 rounded-md object-cover",
61953
- optixFlowConfig
61954
- }
61955
- ) }) }) })
61956
- ] })
61957
- ] })
61958
- ] }) })
61959
- ] }),
61960
- /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { children: [
61961
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: "Support" }),
61962
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex", children: [
61963
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
61964
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "GUIDES" }),
61965
- docs?.map((doc) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
61966
- Pressable,
61967
- {
61968
- href: doc.link,
61969
- className: "group flex flex-row gap-3",
61970
- children: [
61971
- /* @__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: doc.icon, size: 20 }) }),
61972
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col", children: [
61973
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
61974
- doc.title,
61975
- /* @__PURE__ */ jsxRuntime.jsx(
61976
- DynamicIcon,
61977
- {
61978
- name: "lucide/chevron-right",
61979
- size: 16,
61980
- className: "text-primary! opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
61981
- }
61982
- )
61983
- ] }),
61984
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: doc.description })
61985
- ] })
61986
- ]
61987
- }
61988
- ) }, doc.title))
61989
- ] }),
61990
- /* @__PURE__ */ jsxRuntime.jsx(
61991
- Separator,
61992
- {
61993
- orientation: "vertical",
61994
- className: "data-[orientation=vertical]:h-auto"
61995
- }
61996
- ),
61997
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
61998
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "ABOUT US" }),
61999
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: company?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsxs(
62000
- Pressable,
62001
- {
62002
- href: item.link,
62003
- className: "flex flex-row items-center gap-3",
62004
- children: [
62005
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 16 }),
62006
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium whitespace-nowrap", children: item.title })
62007
- ]
62008
- }
62009
- ) }, item.title)) })
62010
- ] })
62011
- ] }) })
62012
- ] }),
62013
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsxRuntime.jsx(
62014
- NavigationMenuLink,
62015
- {
62016
- asChild: true,
62017
- className: navigationMenuTriggerStyle(),
62018
- children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: "#", children: "About" })
62019
- }
62020
- ) })
62021
- ] }) })
62046
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62047
+ /* @__PURE__ */ jsxRuntime.jsx(
62048
+ Section,
62049
+ {
62050
+ background,
62051
+ spacing: spacingOverride ?? spacing,
62052
+ className: sectionClasses,
62053
+ pattern,
62054
+ patternOpacity,
62055
+ containerClassName: sectionContainerClassName,
62056
+ containerMaxWidth: sectionContainerMaxWidth,
62057
+ 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(
62058
+ "nav",
62059
+ {
62060
+ className: cn(
62061
+ "flex items-center justify-between py-4",
62062
+ navClassName
62063
+ ),
62064
+ children: [
62065
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-1 items-center gap-9", children: [
62066
+ /* @__PURE__ */ jsxRuntime.jsx(
62067
+ NavbarLogo,
62068
+ {
62069
+ logo,
62070
+ logoSlot,
62071
+ logoClassName,
62072
+ optixFlowConfig
62073
+ }
62074
+ ),
62075
+ /* @__PURE__ */ jsxRuntime.jsx(
62076
+ "div",
62077
+ {
62078
+ className: cn(
62079
+ "hidden items-center gap-1.5 lg:flex",
62080
+ navigationMenuClassName
62081
+ ),
62082
+ children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenu, { delayDuration: 0, viewport: false, children: renderNavigation })
62022
62083
  }
62023
62084
  )
62024
62085
  ] }),
@@ -62032,113 +62093,194 @@ var NavbarEducationPlatform = ({
62032
62093
  children: renderAuthActions
62033
62094
  }
62034
62095
  ),
62035
- /* @__PURE__ */ jsxRuntime.jsxs(
62096
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
62036
62097
  Pressable,
62037
62098
  {
62038
- variant: "outline",
62099
+ className: "size-11",
62100
+ variant: "ghost",
62039
62101
  size: "icon",
62040
62102
  asButton: true,
62041
- className: "lg:hidden",
62042
62103
  onClick: () => setIsOpen(!isOpen),
62043
- children: [
62044
- isOpen ? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 20 }) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
62045
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: "Toggle menu" })
62046
- ]
62104
+ children: /* @__PURE__ */ jsxRuntime.jsx(
62105
+ DynamicIcon,
62106
+ {
62107
+ name: "lucide/menu",
62108
+ size: 22,
62109
+ className: "stroke-foreground"
62110
+ }
62111
+ )
62047
62112
  }
62048
- )
62113
+ ) })
62049
62114
  ]
62050
62115
  }
62051
- ) }) }) }),
62052
- isOpen && /* @__PURE__ */ jsxRuntime.jsx(
62053
- "div",
62116
+ ) }) }) })
62117
+ }
62118
+ ),
62119
+ /* @__PURE__ */ jsxRuntime.jsx(
62120
+ MobileNavigationMenu8,
62121
+ {
62122
+ open: isOpen,
62123
+ onClose: handleMobileMenuClose,
62124
+ menu: menu ?? [],
62125
+ mobileAuthActions,
62126
+ mobileAuthActionsSlot,
62127
+ mobileMenuClassName
62128
+ }
62129
+ )
62130
+ ] });
62131
+ };
62132
+ var DesktopMenuItem7 = ({
62133
+ item,
62134
+ index,
62135
+ optixFlowConfig
62136
+ }) => {
62137
+ if (item.groups && item.groups.length > 0) {
62138
+ return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
62139
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuTrigger, { children: item.label }),
62140
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(React52__namespace.Fragment, { children: [
62141
+ groupIndex > 0 && /* @__PURE__ */ jsxRuntime.jsx(
62142
+ Separator,
62054
62143
  {
62055
- className: cn(
62056
- "border-t bg-background lg:hidden",
62057
- mobileMenuClassName
62058
- ),
62059
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
62060
- /* @__PURE__ */ jsxRuntime.jsxs(Accordion, { type: "single", collapsible: true, className: "w-full", children: [
62061
- /* @__PURE__ */ jsxRuntime.jsxs(AccordionItem, { value: "learning-hub", children: [
62062
- /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "pr-2.5 text-base font-medium hover:no-underline", children: "Products" }),
62063
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-5", children: [
62064
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
62065
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "TOOLS" }),
62066
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-5", children: features?.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
62067
- Pressable,
62068
- {
62069
- href: feature.link,
62070
- className: "group flex cursor-pointer flex-row gap-3 rounded-md transition-colors",
62071
- onClick: () => setIsOpen(false),
62072
- children: [
62073
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 16 }) }),
62074
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col", children: [
62075
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm leading-tight font-medium", children: feature.title }),
62076
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-tight text-muted-foreground", children: feature.description })
62077
- ] })
62078
- ]
62079
- },
62080
- feature.title
62081
- )) })
62082
- ] }),
62083
- /* @__PURE__ */ jsxRuntime.jsx(Separator, {}),
62084
- /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "QUICK START" }) })
62085
- ] }) })
62086
- ] }),
62087
- /* @__PURE__ */ jsxRuntime.jsxs(AccordionItem, { value: "support", className: "last:border-b", children: [
62088
- /* @__PURE__ */ jsxRuntime.jsx(AccordionTrigger, { className: "pr-2.5 text-base font-medium hover:no-underline", children: "Support" }),
62089
- /* @__PURE__ */ jsxRuntime.jsx(AccordionContent, { children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
62090
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
62091
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "GUIDES" }),
62092
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-5", children: docs?.map((doc) => /* @__PURE__ */ jsxRuntime.jsxs(
62093
- Pressable,
62094
- {
62095
- href: doc.link,
62096
- className: "group flex cursor-pointer flex-row gap-3 rounded-md transition-colors",
62097
- onClick: () => setIsOpen(false),
62098
- children: [
62099
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-8 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: doc.icon, size: 16 }) }),
62100
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col", children: [
62101
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm leading-tight font-medium", children: doc.title }),
62102
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs leading-tight text-muted-foreground", children: doc.description })
62103
- ] })
62104
- ]
62105
- },
62106
- doc.title
62107
- )) })
62108
- ] }),
62109
- /* @__PURE__ */ jsxRuntime.jsx(Separator, {}),
62110
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
62111
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: "ABOUT US" }),
62112
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-5", children: company?.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
62113
- Pressable,
62114
- {
62115
- href: item.link,
62116
- className: "flex cursor-pointer flex-row items-center gap-3 rounded-md transition-colors",
62117
- onClick: () => setIsOpen(false),
62118
- children: [
62119
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 16 }),
62120
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: item.title })
62121
- ]
62122
- },
62123
- item.title
62124
- )) })
62125
- ] })
62126
- ] }) })
62144
+ orientation: "vertical",
62145
+ className: "data-[orientation=vertical]:h-auto"
62146
+ }
62147
+ ),
62148
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-4", children: [
62149
+ /* @__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,
62152
+ {
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 })
62127
62170
  ] })
62128
- ] }),
62129
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-2", children: /* @__PURE__ */ jsxRuntime.jsx(
62130
- Pressable,
62131
- {
62132
- href: "#",
62133
- className: "block border-b border-border py-4 pr-3 text-base font-medium transition-colors",
62134
- onClick: () => setIsOpen(false),
62135
- children: "About"
62136
- }
62137
- ) })
62138
- ] })
62171
+ ]
62172
+ }
62173
+ ) }, link.title)) }),
62174
+ 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
+ img.Img,
62176
+ {
62177
+ src: group.featuredImage.src,
62178
+ alt: group.featuredImage.alt || "Featured image",
62179
+ className: "aspect-video w-full max-w-[240px] rounded-md object-cover object-center",
62180
+ optixFlowConfig
62181
+ }
62182
+ ) }) }) }) })
62183
+ ] })
62184
+ ] }, `group-${groupIndex}`)) }) })
62185
+ ] }, `desktop-menu-item-${index}`);
62186
+ }
62187
+ return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuLink, { asChild: true, className: navigationMenuTriggerStyle(), children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: item.href, children: item.label }) }) }, `desktop-menu-item-${index}`);
62188
+ };
62189
+ var MobileNavigationMenu8 = ({
62190
+ open,
62191
+ onClose,
62192
+ menu,
62193
+ mobileAuthActions,
62194
+ mobileAuthActionsSlot,
62195
+ mobileMenuClassName
62196
+ }) => {
62197
+ const renderMobileAuthActions = React52.useMemo(() => {
62198
+ if (mobileAuthActionsSlot) return mobileAuthActionsSlot;
62199
+ if (!mobileAuthActions || mobileAuthActions.length === 0) return null;
62200
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4", children: mobileAuthActions.map((action, index) => {
62201
+ const {
62202
+ label,
62203
+ icon,
62204
+ iconAfter,
62205
+ children,
62206
+ className: actionClassName,
62207
+ ...pressableProps
62208
+ } = action;
62209
+ return /* @__PURE__ */ jsxRuntime.jsx(
62210
+ Pressable,
62211
+ {
62212
+ asButton: true,
62213
+ className: cn("w-full", actionClassName),
62214
+ onClick: onClose,
62215
+ ...pressableProps,
62216
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62217
+ icon,
62218
+ label,
62219
+ iconAfter
62220
+ ] })
62221
+ },
62222
+ index
62223
+ );
62224
+ }) });
62225
+ }, [mobileAuthActionsSlot, mobileAuthActions, onClose]);
62226
+ return /* @__PURE__ */ jsxRuntime.jsx(
62227
+ NavbarMobileMenu,
62228
+ {
62229
+ open,
62230
+ onClose,
62231
+ title: "Mobile Navigation",
62232
+ className: mobileMenuClassName,
62233
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
62234
+ /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menu.map((item, index) => {
62235
+ if (item.groups && item.groups.length > 0) {
62236
+ return /* @__PURE__ */ jsxRuntime.jsxs(
62237
+ AccordionItem,
62238
+ {
62239
+ value: `nav-${index}`,
62240
+ className: "border-b-0",
62241
+ children: [
62242
+ /* @__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
+ ),
62260
+ link.title
62261
+ ]
62262
+ },
62263
+ link.title
62264
+ ))
62265
+ ] }, `mobile-group-${groupIndex}`)) })
62266
+ ]
62267
+ },
62268
+ `nav-item-${index}`
62269
+ );
62139
62270
  }
62140
- )
62141
- ]
62271
+ return /* @__PURE__ */ jsxRuntime.jsx(
62272
+ Pressable,
62273
+ {
62274
+ href: item.href,
62275
+ 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",
62276
+ onClick: onClose,
62277
+ children: item.label
62278
+ },
62279
+ `nav-link-${index}`
62280
+ );
62281
+ }) }),
62282
+ renderMobileAuthActions
62283
+ ] }) })
62142
62284
  }
62143
62285
  );
62144
62286
  };
@@ -62562,94 +62704,15 @@ var NavbarSearchFocused = ({
62562
62704
  )) }),
62563
62705
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t pt-4 mt-6", children: renderMobileMenuActions })
62564
62706
  ] })
62565
- }
62566
- )
62567
- ]
62568
- }
62569
- ) }) }) })
62570
- }
62571
- );
62572
- };
62573
- var AnimatedHamburger = ({ isOpen }) => {
62574
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "group relative size-full", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "absolute flex size-full items-center justify-center", children: [
62575
- /* @__PURE__ */ jsxRuntime.jsx(
62576
- DynamicIcon,
62577
- {
62578
- name: "lucide/menu",
62579
- size: 24,
62580
- className: `absolute text-muted-foreground transition-all duration-300 group-hover:text-foreground ${isOpen ? "rotate-90 opacity-0" : "rotate-0 opacity-100"}`
62581
- }
62582
- ),
62583
- /* @__PURE__ */ jsxRuntime.jsx(
62584
- DynamicIcon,
62585
- {
62586
- name: "lucide/x",
62587
- size: 24,
62588
- className: `absolute text-muted-foreground transition-all duration-300 group-hover:text-foreground ${isOpen ? "rotate-0 opacity-100" : "-rotate-90 opacity-0"}`
62589
- }
62590
- )
62591
- ] }) });
62592
- };
62593
- var MobileNav = ({
62594
- navItems,
62595
- activeItem,
62596
- setActiveItem,
62597
- actions,
62598
- actionsSlot
62599
- }) => {
62600
- const [isOpen, setIsOpen] = React52.useState(false);
62601
- const renderActions = React52.useMemo(() => {
62602
- if (actionsSlot) return actionsSlot;
62603
- if (!actions || actions.length === 0) return null;
62604
- return actions.map((action, index) => {
62605
- const {
62606
- label,
62607
- icon,
62608
- iconAfter,
62609
- children,
62610
- className: actionClassName,
62611
- ...pressableProps
62612
- } = action;
62613
- return /* @__PURE__ */ jsxRuntime.jsx(
62614
- Pressable,
62615
- {
62616
- asButton: true,
62617
- className: actionClassName,
62618
- ...pressableProps,
62619
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62620
- icon,
62621
- label,
62622
- iconAfter
62623
- ] })
62624
- },
62625
- index
62626
- );
62627
- });
62628
- }, [actionsSlot, actions]);
62629
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-full items-center lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsxs(Popover, { open: isOpen, onOpenChange: setIsOpen, children: [
62630
- /* @__PURE__ */ jsxRuntime.jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { variant: "ghost", size: "icon", asButton: true, onClick: () => {
62631
- }, children: /* @__PURE__ */ jsxRuntime.jsx(AnimatedHamburger, { isOpen }) }) }),
62632
- /* @__PURE__ */ jsxRuntime.jsx(
62633
- PopoverContent,
62634
- {
62635
- align: "end",
62636
- className: "relative top-4 -right-4 block w-[calc(100vw-32px)] overflow-hidden rounded-xl p-0 sm:top-auto sm:right-auto sm:w-80 lg:hidden",
62637
- children: /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "w-full bg-background py-4 text-foreground", children: [
62638
- navItems.map((navItem, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
62639
- Pressable,
62640
- {
62641
- href: navItem.link,
62642
- onClick: () => setActiveItem(navItem.name),
62643
- className: `flex items-center border-l-[3px] px-6 py-4 text-sm font-medium text-foreground transition-all duration-75 ${activeItem === navItem.name ? "border-foreground text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"}`,
62644
- children: navItem.name
62645
- }
62646
- ) }, idx)),
62647
- (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("li", { className: "flex flex-col gap-3 px-7 py-2", children: renderActions })
62648
- ] })
62649
- }
62650
- )
62651
- ] }) });
62707
+ }
62708
+ )
62709
+ ]
62710
+ }
62711
+ ) }) }) })
62712
+ }
62713
+ );
62652
62714
  };
62715
+ var MOBILE_BREAKPOINT7 = 1024;
62653
62716
  var NavbarSimpleLinks = ({
62654
62717
  className,
62655
62718
  containerClassName,
@@ -62657,6 +62720,7 @@ var NavbarSimpleLinks = ({
62657
62720
  navigationMenuClassName,
62658
62721
  menuListClassName,
62659
62722
  actionsClassName,
62723
+ mobileMenuClassName,
62660
62724
  logo,
62661
62725
  logoSlot,
62662
62726
  logoClassName,
@@ -62665,6 +62729,8 @@ var NavbarSimpleLinks = ({
62665
62729
  defaultActiveItem,
62666
62730
  actions,
62667
62731
  actionsSlot,
62732
+ mobileActions,
62733
+ mobileActionsSlot,
62668
62734
  layoutVariant = "fullScreenContainerizedLinks",
62669
62735
  background,
62670
62736
  spacing,
@@ -62675,8 +62741,20 @@ var NavbarSimpleLinks = ({
62675
62741
  const [activeItem, setActiveItem] = React52.useState(
62676
62742
  defaultActiveItem || navItems?.[0]?.name || ""
62677
62743
  );
62744
+ const [isOpen, setIsOpen] = React52.useState(false);
62678
62745
  const indicatorRef = React52.useRef(null);
62679
62746
  const menuRef = React52.useRef(null);
62747
+ React52.useEffect(() => {
62748
+ if (typeof window === "undefined") return;
62749
+ const handleResize = () => {
62750
+ if (window.innerWidth > MOBILE_BREAKPOINT7) {
62751
+ setIsOpen(false);
62752
+ }
62753
+ };
62754
+ handleResize();
62755
+ window.addEventListener("resize", handleResize);
62756
+ return () => window.removeEventListener("resize", handleResize);
62757
+ }, []);
62680
62758
  React52.useEffect(() => {
62681
62759
  const updateIndicator = () => {
62682
62760
  const activeEl = document.querySelector(
@@ -62693,6 +62771,9 @@ var NavbarSimpleLinks = ({
62693
62771
  window.addEventListener("resize", updateIndicator);
62694
62772
  return () => window.removeEventListener("resize", updateIndicator);
62695
62773
  }, [activeItem]);
62774
+ const handleMobileMenuClose = () => {
62775
+ setIsOpen(false);
62776
+ };
62696
62777
  const renderNavItems = React52.useMemo(() => {
62697
62778
  if (navItemsSlot) return navItemsSlot;
62698
62779
  if (!navItems || navItems.length === 0) return null;
@@ -62746,80 +62827,161 @@ var NavbarSimpleLinks = ({
62746
62827
  sectionContainerMaxWidth,
62747
62828
  spacingOverride
62748
62829
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
62830
+ return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62831
+ /* @__PURE__ */ jsxRuntime.jsx(
62832
+ Section,
62833
+ {
62834
+ background,
62835
+ spacing: spacingOverride ?? spacing,
62836
+ className: sectionClasses,
62837
+ pattern,
62838
+ patternOpacity,
62839
+ containerClassName: sectionContainerClassName,
62840
+ containerMaxWidth: sectionContainerMaxWidth,
62841
+ 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(
62842
+ "nav",
62843
+ {
62844
+ className: cn("flex items-center justify-between", navClassName),
62845
+ children: [
62846
+ /* @__PURE__ */ jsxRuntime.jsx(
62847
+ NavbarLogo,
62848
+ {
62849
+ logo,
62850
+ logoSlot,
62851
+ logoClassName,
62852
+ optixFlowConfig
62853
+ }
62854
+ ),
62855
+ /* @__PURE__ */ jsxRuntime.jsx(
62856
+ NavigationMenu,
62857
+ {
62858
+ className: cn("hidden lg:block", navigationMenuClassName),
62859
+ children: /* @__PURE__ */ jsxRuntime.jsxs(
62860
+ NavigationMenuList,
62861
+ {
62862
+ ref: menuRef,
62863
+ className: cn(
62864
+ "flex items-center gap-6 rounded-4xl px-8 py-3",
62865
+ menuListClassName
62866
+ ),
62867
+ children: [
62868
+ renderNavItems,
62869
+ /* @__PURE__ */ jsxRuntime.jsx(
62870
+ "div",
62871
+ {
62872
+ ref: indicatorRef,
62873
+ className: "absolute bottom-2 flex h-1 items-center justify-center px-2 transition-all duration-300",
62874
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-0.5 w-full rounded-t-none bg-foreground transition-all duration-300" })
62875
+ }
62876
+ )
62877
+ ]
62878
+ }
62879
+ )
62880
+ }
62881
+ ),
62882
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
62883
+ Pressable,
62884
+ {
62885
+ className: "size-11",
62886
+ variant: "ghost",
62887
+ size: "icon",
62888
+ asButton: true,
62889
+ onClick: () => setIsOpen(!isOpen),
62890
+ children: /* @__PURE__ */ jsxRuntime.jsx(
62891
+ DynamicIcon,
62892
+ {
62893
+ name: "lucide/menu",
62894
+ size: 22,
62895
+ className: "stroke-foreground"
62896
+ }
62897
+ )
62898
+ }
62899
+ ) }),
62900
+ /* @__PURE__ */ jsxRuntime.jsx(
62901
+ "div",
62902
+ {
62903
+ className: cn(
62904
+ "hidden items-center gap-2 lg:flex",
62905
+ actionsClassName
62906
+ ),
62907
+ children: renderActions
62908
+ }
62909
+ )
62910
+ ]
62911
+ }
62912
+ ) }) }) })
62913
+ }
62914
+ ),
62915
+ /* @__PURE__ */ jsxRuntime.jsx(
62916
+ MobileNavigationMenu9,
62917
+ {
62918
+ open: isOpen,
62919
+ onClose: handleMobileMenuClose,
62920
+ navItems: navItems ?? [],
62921
+ mobileActions,
62922
+ mobileActionsSlot,
62923
+ mobileMenuClassName
62924
+ }
62925
+ )
62926
+ ] });
62927
+ };
62928
+ var MobileNavigationMenu9 = ({
62929
+ open,
62930
+ onClose,
62931
+ navItems,
62932
+ mobileActions,
62933
+ mobileActionsSlot,
62934
+ mobileMenuClassName
62935
+ }) => {
62936
+ const renderMobileActions = React52.useMemo(() => {
62937
+ if (mobileActionsSlot) return mobileActionsSlot;
62938
+ if (!mobileActions || mobileActions.length === 0) return null;
62939
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-4 px-4", children: mobileActions.map((action, index) => {
62940
+ const {
62941
+ label,
62942
+ icon,
62943
+ iconAfter,
62944
+ children,
62945
+ className: actionClassName,
62946
+ ...pressableProps
62947
+ } = action;
62948
+ return /* @__PURE__ */ jsxRuntime.jsx(
62949
+ Pressable,
62950
+ {
62951
+ asButton: true,
62952
+ className: cn("w-full", actionClassName),
62953
+ onClick: onClose,
62954
+ ...pressableProps,
62955
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
62956
+ icon,
62957
+ label,
62958
+ iconAfter
62959
+ ] })
62960
+ },
62961
+ index
62962
+ );
62963
+ }) });
62964
+ }, [mobileActionsSlot, mobileActions, onClose]);
62749
62965
  return /* @__PURE__ */ jsxRuntime.jsx(
62750
- Section,
62966
+ NavbarMobileMenu,
62751
62967
  {
62752
- background,
62753
- spacing: spacingOverride ?? spacing,
62754
- className: sectionClasses,
62755
- pattern,
62756
- patternOpacity,
62757
- containerClassName: sectionContainerClassName,
62758
- containerMaxWidth: sectionContainerMaxWidth,
62759
- 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(
62760
- "nav",
62761
- {
62762
- className: cn("flex items-center justify-between", navClassName),
62763
- children: [
62764
- /* @__PURE__ */ jsxRuntime.jsx(
62765
- NavbarLogo,
62766
- {
62767
- logo,
62768
- logoSlot,
62769
- logoClassName,
62770
- optixFlowConfig
62771
- }
62772
- ),
62773
- /* @__PURE__ */ jsxRuntime.jsx(
62774
- NavigationMenu,
62775
- {
62776
- className: cn("hidden lg:block", navigationMenuClassName),
62777
- children: /* @__PURE__ */ jsxRuntime.jsxs(
62778
- NavigationMenuList,
62779
- {
62780
- ref: menuRef,
62781
- className: cn(
62782
- "flex items-center gap-6 rounded-4xl px-8 py-3",
62783
- menuListClassName
62784
- ),
62785
- children: [
62786
- renderNavItems,
62787
- /* @__PURE__ */ jsxRuntime.jsx(
62788
- "div",
62789
- {
62790
- ref: indicatorRef,
62791
- className: "absolute bottom-2 flex h-1 items-center justify-center px-2 transition-all duration-300",
62792
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-0.5 w-full rounded-t-none bg-foreground transition-all duration-300" })
62793
- }
62794
- )
62795
- ]
62796
- }
62797
- )
62798
- }
62799
- ),
62800
- /* @__PURE__ */ jsxRuntime.jsx(
62801
- MobileNav,
62802
- {
62803
- navItems: navItems ?? [],
62804
- activeItem,
62805
- setActiveItem,
62806
- actions,
62807
- actionsSlot
62808
- }
62809
- ),
62810
- /* @__PURE__ */ jsxRuntime.jsx(
62811
- "div",
62812
- {
62813
- className: cn(
62814
- "hidden items-center gap-2 lg:flex",
62815
- actionsClassName
62816
- ),
62817
- children: renderActions
62818
- }
62819
- )
62820
- ]
62821
- }
62822
- ) }) }) })
62968
+ open,
62969
+ onClose,
62970
+ title: "Navigation",
62971
+ className: mobileMenuClassName,
62972
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
62973
+ /* @__PURE__ */ jsxRuntime.jsx("nav", { className: "flex flex-col", children: navItems.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
62974
+ Pressable,
62975
+ {
62976
+ href: item.link,
62977
+ className: "flex h-15 items-center rounded-md 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",
62978
+ onClick: onClose,
62979
+ children: item.name
62980
+ },
62981
+ `nav-link-${index}`
62982
+ )) }),
62983
+ renderMobileActions
62984
+ ] }) })
62823
62985
  }
62824
62986
  );
62825
62987
  };
@@ -62983,8 +63145,8 @@ var NavbarSplitCta = ({
62983
63145
  open: isOpen,
62984
63146
  onClose: () => setIsOpen(false),
62985
63147
  title: "Navigation Menu",
62986
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6", children: [
62987
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-t pt-4", children: menuSlot ? menuSlot : renderMenu?.map(
63148
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
63149
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-0", children: menuSlot ? menuSlot : renderMenu?.map(
62988
63150
  (item, index) => item.items ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4", children: [
62989
63151
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-sm font-medium text-muted-foreground", children: item.title }),
62990
63152
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-1 pl-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
@@ -63065,6 +63227,7 @@ var NavbarIconLinks = ({
63065
63227
  /* @__PURE__ */ jsxRuntime.jsx(TooltipTrigger, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
63066
63228
  Pressable,
63067
63229
  {
63230
+ size: "icon",
63068
63231
  className: cn(
63069
63232
  "flex h-10 w-10 items-center justify-center rounded-md transition-colors",
63070
63233
  "text-muted-foreground hover:bg-accent hover:text-accent-foreground",
@@ -63464,55 +63627,6 @@ var NavbarTabbedSections = ({
63464
63627
  }
63465
63628
  );
63466
63629
  };
63467
- var platformIconMap = {
63468
- instagram: "cib/instagram",
63469
- linkedin: "cib/linkedin",
63470
- google: "cib/google",
63471
- facebook: "cib/facebook",
63472
- tiktok: "cib/tiktok",
63473
- youtube: "cib/youtube",
63474
- yelp: "cib/yelp",
63475
- spotify: "cib/spotify",
63476
- apple: "cib/apple",
63477
- x: "line-md/twitter-x"
63478
- };
63479
- var SocialLinkIcon = React52__namespace.forwardRef(
63480
- ({
63481
- platformName,
63482
- label,
63483
- iconSize = 20,
63484
- iconColor,
63485
- iconClassName,
63486
- className,
63487
- ...pressableProps
63488
- }, ref) => {
63489
- const iconName = platformIconMap[platformName];
63490
- const accessibleLabel = label || platformName;
63491
- return /* @__PURE__ */ jsxRuntime.jsx(
63492
- Pressable,
63493
- {
63494
- ref,
63495
- "aria-label": accessibleLabel,
63496
- className: cn(
63497
- "inline-flex items-center justify-center transition-colors",
63498
- className
63499
- ),
63500
- ...pressableProps,
63501
- children: /* @__PURE__ */ jsxRuntime.jsx(
63502
- DynamicIcon,
63503
- {
63504
- name: iconName,
63505
- size: iconSize,
63506
- color: iconColor,
63507
- className: iconClassName,
63508
- alt: accessibleLabel
63509
- }
63510
- )
63511
- }
63512
- );
63513
- }
63514
- );
63515
- SocialLinkIcon.displayName = "SocialLinkIcon";
63516
63630
  var NavbarFullscreenMenu = ({
63517
63631
  logo,
63518
63632
  logoSlot,
@@ -78535,7 +78649,7 @@ function ListSearchableGrid({
78535
78649
  }
78536
78650
  );
78537
78651
  }
78538
- var { useMemo: useMemo442 } = React52__namespace;
78652
+ var { useMemo: useMemo443 } = React52__namespace;
78539
78653
  function OfferModalNewsletterDiscount({
78540
78654
  title,
78541
78655
  emailPlaceholder,
@@ -78603,7 +78717,7 @@ function OfferModalNewsletterDiscount({
78603
78717
  });
78604
78718
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
78605
78719
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
78606
- const renderCloseButton = useMemo442(() => {
78720
+ const renderCloseButton = useMemo443(() => {
78607
78721
  if (closeButtonSlot) return closeButtonSlot;
78608
78722
  if (!closeButtonText) return null;
78609
78723
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -78617,12 +78731,12 @@ function OfferModalNewsletterDiscount({
78617
78731
  }
78618
78732
  ) }) });
78619
78733
  }, [closeButtonSlot, closeButtonText, closeClassName]);
78620
- const renderHeader = useMemo442(() => {
78734
+ const renderHeader = useMemo443(() => {
78621
78735
  if (headerSlot) return headerSlot;
78622
78736
  if (!title) return null;
78623
78737
  return /* @__PURE__ */ jsxRuntime.jsx(DialogHeader, { className: headerClassName, children: typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx(DialogTitle, { className: cn("text-start font-serif text-2xl font-normal leading-snug", titleClassName), children: title }) });
78624
78738
  }, [headerSlot, title, headerClassName, titleClassName]);
78625
- const renderForm = useMemo442(() => {
78739
+ const renderForm = useMemo443(() => {
78626
78740
  if (formSlot) return formSlot;
78627
78741
  return /* @__PURE__ */ jsxRuntime.jsxs(
78628
78742
  forms.Form,
@@ -78684,7 +78798,7 @@ function OfferModalNewsletterDiscount({
78684
78798
  }
78685
78799
  ) });
78686
78800
  }
78687
- var { useMemo: useMemo443 } = React52__namespace;
78801
+ var { useMemo: useMemo444 } = React52__namespace;
78688
78802
  function OfferModalMembershipImage({
78689
78803
  overline,
78690
78804
  title,
@@ -78761,7 +78875,7 @@ function OfferModalMembershipImage({
78761
78875
  });
78762
78876
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
78763
78877
  const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
78764
- const renderImage = useMemo443(() => {
78878
+ const renderImage = useMemo444(() => {
78765
78879
  if (imageSlot) return imageSlot;
78766
78880
  if (!image) return null;
78767
78881
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-h-[290px] h-full overflow-hidden max-lg:hidden", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -78774,7 +78888,7 @@ function OfferModalMembershipImage({
78774
78888
  }
78775
78889
  ) });
78776
78890
  }, [imageSlot, image, imageWrapperClassName, imageClassName, optixFlowConfig]);
78777
- const renderCloseButton = useMemo443(() => {
78891
+ const renderCloseButton = useMemo444(() => {
78778
78892
  if (closeButtonSlot) return closeButtonSlot;
78779
78893
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsxRuntime.jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsxRuntime.jsx(
78780
78894
  Pressable,
@@ -78790,7 +78904,7 @@ function OfferModalMembershipImage({
78790
78904
  }
78791
78905
  ) }) });
78792
78906
  }, [closeButtonSlot, closeClassName]);
78793
- const renderForm = useMemo443(() => {
78907
+ const renderForm = useMemo444(() => {
78794
78908
  if (formSlot) return formSlot;
78795
78909
  return /* @__PURE__ */ jsxRuntime.jsxs(
78796
78910
  forms.Form,
@@ -78853,7 +78967,7 @@ function OfferModalMembershipImage({
78853
78967
  }
78854
78968
  );
78855
78969
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
78856
- const renderFooter = useMemo443(() => {
78970
+ const renderFooter = useMemo444(() => {
78857
78971
  if (footerSlot) return footerSlot;
78858
78972
  if (!description) return null;
78859
78973
  return /* @__PURE__ */ jsxRuntime.jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsxRuntime.jsx(DialogDescription, { className: cn("text-muted-foreground text-center text-xs leading-relaxed", descriptionClassName), children: description }) });
@@ -78973,7 +79087,7 @@ function SheetDescription({
78973
79087
  }
78974
79088
  );
78975
79089
  }
78976
- var { useMemo: useMemo444 } = React52__namespace;
79090
+ var { useMemo: useMemo445 } = React52__namespace;
78977
79091
  function OfferModalSheetNewsletter({
78978
79092
  logo,
78979
79093
  logoSlot,
@@ -79056,7 +79170,7 @@ function OfferModalSheetNewsletter({
79056
79170
  });
79057
79171
  const formMethod = formConfig?.method?.toLowerCase() === "get" ? "get" : "post";
79058
79172
  const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
79059
- const renderLogo = useMemo444(() => {
79173
+ const renderLogo = useMemo445(() => {
79060
79174
  if (logoSlot) return logoSlot;
79061
79175
  if (!logo) return null;
79062
79176
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
@@ -79070,7 +79184,7 @@ function OfferModalSheetNewsletter({
79070
79184
  }
79071
79185
  );
79072
79186
  }, [logoSlot, logo, logoClassName, optixFlowConfig]);
79073
- const renderHeader = useMemo444(() => {
79187
+ const renderHeader = useMemo445(() => {
79074
79188
  if (headerSlot) return headerSlot;
79075
79189
  return /* @__PURE__ */ jsxRuntime.jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
79076
79190
  renderLogo,
@@ -79080,7 +79194,7 @@ function OfferModalSheetNewsletter({
79080
79194
  ] })
79081
79195
  ] });
79082
79196
  }, [headerSlot, renderLogo, headerClassName, title, titleClassName, description, descriptionClassName]);
79083
- const renderForm = useMemo444(() => {
79197
+ const renderForm = useMemo445(() => {
79084
79198
  if (formSlot) return formSlot;
79085
79199
  return /* @__PURE__ */ jsxRuntime.jsx(
79086
79200
  forms.Form,
@@ -79128,7 +79242,7 @@ function OfferModalSheetNewsletter({
79128
79242
  }
79129
79243
  );
79130
79244
  }, [formSlot, form, formConfig, formMethod, emailPlaceholder, inputClassName, submitClassName, buttonText, formClassName]);
79131
- const renderLegal = useMemo444(() => {
79245
+ const renderLegal = useMemo445(() => {
79132
79246
  if (legalSlot) return legalSlot;
79133
79247
  if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
79134
79248
  return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
@@ -79142,7 +79256,7 @@ function OfferModalSheetNewsletter({
79142
79256
  "."
79143
79257
  ] });
79144
79258
  }, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
79145
- const renderImage = useMemo444(() => {
79259
+ const renderImage = useMemo445(() => {
79146
79260
  if (imageSlot) return imageSlot;
79147
79261
  if (!image) return null;
79148
79262
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(