@opensite/ui 1.0.9 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/navbar-animated-preview.cjs +30 -19
  2. package/dist/navbar-animated-preview.js +30 -19
  3. package/dist/navbar-centered-menu.cjs +21 -10
  4. package/dist/navbar-centered-menu.js +21 -10
  5. package/dist/navbar-dark-icons.cjs +21 -10
  6. package/dist/navbar-dark-icons.js +21 -10
  7. package/dist/navbar-dropdown-menu.cjs +21 -10
  8. package/dist/navbar-dropdown-menu.js +21 -10
  9. package/dist/navbar-education-platform.cjs +82 -56
  10. package/dist/navbar-education-platform.js +82 -56
  11. package/dist/navbar-enterprise-mega.cjs +22 -11
  12. package/dist/navbar-enterprise-mega.js +22 -11
  13. package/dist/navbar-feature-grid.cjs +21 -10
  14. package/dist/navbar-feature-grid.js +21 -10
  15. package/dist/navbar-icon-links.cjs +21 -10
  16. package/dist/navbar-icon-links.js +21 -10
  17. package/dist/navbar-image-preview.cjs +21 -10
  18. package/dist/navbar-image-preview.js +21 -10
  19. package/dist/navbar-mega-menu.cjs +21 -10
  20. package/dist/navbar-mega-menu.js +21 -10
  21. package/dist/navbar-multi-column-groups.cjs +53 -35
  22. package/dist/navbar-multi-column-groups.js +53 -35
  23. package/dist/navbar-platform-resources.cjs +21 -10
  24. package/dist/navbar-platform-resources.js +21 -10
  25. package/dist/navbar-search-focused.cjs +192 -103
  26. package/dist/navbar-search-focused.js +192 -103
  27. package/dist/navbar-sidebar-mobile.cjs +22 -10
  28. package/dist/navbar-sidebar-mobile.js +22 -10
  29. package/dist/navbar-simple-links.cjs +23 -12
  30. package/dist/navbar-simple-links.js +23 -12
  31. package/dist/navbar-split-cta.cjs +21 -10
  32. package/dist/navbar-split-cta.js +21 -10
  33. package/dist/navbar-sticky-compact.cjs +231 -123
  34. package/dist/navbar-sticky-compact.js +230 -123
  35. package/dist/navbar-tabbed-sections.cjs +21 -10
  36. package/dist/navbar-tabbed-sections.js +21 -10
  37. package/dist/navbar-transparent-overlay.cjs +23 -10
  38. package/dist/navbar-transparent-overlay.js +23 -10
  39. package/dist/registry.cjs +435 -302
  40. package/dist/registry.js +435 -302
  41. package/package.json +1 -1
package/dist/registry.js CHANGED
@@ -57068,6 +57068,8 @@ var NavbarMobileMenu = ({
57068
57068
  children,
57069
57069
  className,
57070
57070
  contentClassName,
57071
+ closeContainerClassName,
57072
+ closeIconClassName,
57071
57073
  title = "Mobile Navigation"
57072
57074
  }) => {
57073
57075
  React52.useEffect(() => {
@@ -57092,18 +57094,27 @@ var NavbarMobileMenu = ({
57092
57094
  "data-state": open ? "open" : "closed",
57093
57095
  children: [
57094
57096
  /* @__PURE__ */ jsx("div", { className: "sr-only", children: /* @__PURE__ */ jsx("h2", { children: title }) }),
57095
- /* @__PURE__ */ 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__ */ jsxs(
57096
- "button",
57097
+ /* @__PURE__ */ jsx(
57098
+ "div",
57097
57099
  {
57098
- onClick: onClose,
57099
- className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
57100
- "aria-label": "Close mobile menu",
57101
- children: [
57102
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: "size-4" }),
57103
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
57104
- ]
57100
+ className: cn(
57101
+ "absolute top-0 left-0 right-0 p-4 bg-background flex justify-end items-center z-10 w-screen",
57102
+ closeContainerClassName
57103
+ ),
57104
+ children: /* @__PURE__ */ jsxs(
57105
+ "button",
57106
+ {
57107
+ onClick: onClose,
57108
+ className: "flex size-10 items-center justify-center rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none",
57109
+ "aria-label": "Close mobile menu",
57110
+ children: [
57111
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", className: cn("size-4", closeIconClassName) }),
57112
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Close" })
57113
+ ]
57114
+ }
57115
+ )
57105
57116
  }
57106
- ) }),
57117
+ ),
57107
57118
  /* @__PURE__ */ jsx(
57108
57119
  "div",
57109
57120
  {
@@ -58698,7 +58709,7 @@ var renderMobileDropdownContent = (item) => {
58698
58709
  Pressable,
58699
58710
  {
58700
58711
  href: solution.href,
58701
- className: "block pb-2 text-sm font-medium",
58712
+ className: "block pt-4 text-sm font-medium",
58702
58713
  children: solution.title
58703
58714
  }
58704
58715
  ),
@@ -60552,7 +60563,7 @@ var NavbarAnimatedPreview = ({
60552
60563
  "div",
60553
60564
  {
60554
60565
  className: cn(
60555
- "relative z-999 grid w-full grid-cols-2 items-center justify-between gap-8 xl:grid-cols-3"
60566
+ "relative z-999 flex w-full items-center justify-between gap-4"
60556
60567
  ),
60557
60568
  children: [
60558
60569
  /* @__PURE__ */ jsx(
@@ -60748,7 +60759,7 @@ var GroupedLinksImageDropdown = ({
60748
60759
  imageLink,
60749
60760
  optixFlowConfig
60750
60761
  }) => {
60751
- return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
60762
+ return /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-8", children: [
60752
60763
  /* @__PURE__ */ jsx(GroupLinks, { groupLinks }),
60753
60764
  /* @__PURE__ */ jsx(FeaturedImageLink, { link: imageLink, optixFlowConfig })
60754
60765
  ] });
@@ -60769,7 +60780,7 @@ var GroupLinks = ({ groupLinks }) => {
60769
60780
  };
60770
60781
  if (!groupLinks) return null;
60771
60782
  let linkIndex = 0;
60772
- return /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between gap-4", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { children: [
60783
+ return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4", children: groupLinks.map((group, index1) => /* @__PURE__ */ jsxs("div", { children: [
60773
60784
  /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs", children: group.label }),
60774
60785
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-4", children: group.links.map((link, index2) => {
60775
60786
  const idx = linkIndex++;
@@ -60827,7 +60838,7 @@ var FeaturedLink = ({ link, optixFlowConfig }) => {
60827
60838
  Pressable,
60828
60839
  {
60829
60840
  href: getLinkUrl(link),
60830
- className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-8 py-12",
60841
+ className: "group relative flex w-full overflow-hidden rounded-xl bg-muted px-4 pt-24 pb-4",
60831
60842
  children: [
60832
60843
  /* @__PURE__ */ jsxs("div", { className: "relative z-10 flex w-full items-center gap-6", children: [
60833
60844
  /* @__PURE__ */ jsx("div", { className: "flex size-12 shrink-0 rounded-lg border bg-background shadow-lg", children: link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsx(
@@ -60942,11 +60953,11 @@ var renderMobileMenuItem4 = (item, index) => {
60942
60953
  className: "border-b-0",
60943
60954
  children: [
60944
60955
  /* @__PURE__ */ jsx(AccordionTrigger, { className: "h-10 items-center text-base font-normal text-foreground hover:no-underline", children: item.label }),
60945
- /* @__PURE__ */ jsxs(AccordionContent, { className: "flex flex-col gap-6 p-2", children: [
60946
- item.featuredLinks && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 p-2", children: item.featuredLinks.map((link, idx) => /* @__PURE__ */ jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60947
- item.links && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 p-2", children: item.links.map((link, idx) => /* @__PURE__ */ jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60948
- item.groupLinks && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2 p-2", children: item.groupLinks.map((group, groupIdx) => /* @__PURE__ */ jsxs("div", { className: "mb-8 last:mb-0", children: [
60949
- /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs text-muted-foreground", children: group.label }),
60956
+ /* @__PURE__ */ jsxs(AccordionContent, { className: "flex flex-col py-6 px-4", children: [
60957
+ item.featuredLinks && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: item.featuredLinks.map((link, idx) => /* @__PURE__ */ jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60958
+ item.links && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: item.links.map((link, idx) => /* @__PURE__ */ jsx(NavLink, { link }, `default-nav-link-${idx}`)) }),
60959
+ item.groupLinks && /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: item.groupLinks.map((group, groupIdx) => /* @__PURE__ */ jsxs("div", { className: "relative", children: [
60960
+ group.label && /* @__PURE__ */ jsx("div", { className: "mb-4 text-xs text-muted-foreground", children: group.label }),
60950
60961
  /* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-2", children: group.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(NavLink, { link }) }, `group-link-${groupIdx}-${linkIdx}`)) })
60951
60962
  ] }, `group-link-${groupIdx}`)) })
60952
60963
  ] })
@@ -61136,8 +61147,8 @@ var NavbarMultiColumnGroups = ({
61136
61147
  open,
61137
61148
  setOpen,
61138
61149
  navigation: navigation ?? [],
61139
- authActions: mobileAuthActions,
61140
- authActionsSlot: mobileAuthActionsSlot
61150
+ authActions: mobileAuthActions ?? authActions,
61151
+ authActionsSlot: mobileAuthActionsSlot ?? authActionsSlot
61141
61152
  }
61142
61153
  )
61143
61154
  ] });
@@ -61234,29 +61245,36 @@ var MobileNavigationMenu5 = ({
61234
61245
  className: "border-b-0",
61235
61246
  children: [
61236
61247
  /* @__PURE__ */ 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 }),
61237
- /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
61238
- /* @__PURE__ */ jsx("p", { className: "mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.title }),
61239
- group.links.map((link, linkIndex) => /* @__PURE__ */ jsxs(
61240
- Pressable,
61241
- {
61242
- href: link.url,
61243
- 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",
61244
- onClick: handleClose,
61245
- children: [
61246
- link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsx(
61247
- DynamicIcon,
61248
- {
61249
- name: link.iconName,
61250
- size: 16,
61251
- className: "stroke-muted-foreground"
61252
- }
61253
- ) : null,
61254
- link.label
61255
- ]
61256
- },
61257
- `mobile-link-${groupIndex}-${linkIndex}`
61258
- ))
61259
- ] }, `mobile-group-${groupIndex}`)) })
61248
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
61249
+ "div",
61250
+ {
61251
+ className: "mb-4",
61252
+ children: [
61253
+ group.title && /* @__PURE__ */ jsx("p", { className: "mt-4 px-4 text-xs font-semibold text-muted-foreground uppercase", children: group.title }),
61254
+ group.links.map((link, linkIndex) => /* @__PURE__ */ jsxs(
61255
+ Pressable,
61256
+ {
61257
+ href: link.url,
61258
+ 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",
61259
+ onClick: handleClose,
61260
+ children: [
61261
+ link.icon ? link.icon : link.iconName ? /* @__PURE__ */ jsx(
61262
+ DynamicIcon,
61263
+ {
61264
+ name: link.iconName,
61265
+ size: 16,
61266
+ className: "stroke-muted-foreground"
61267
+ }
61268
+ ) : null,
61269
+ link.label
61270
+ ]
61271
+ },
61272
+ `mobile-link-${groupIndex}-${linkIndex}`
61273
+ ))
61274
+ ]
61275
+ },
61276
+ `mobile-group-${groupIndex}`
61277
+ )) })
61260
61278
  ]
61261
61279
  },
61262
61280
  `nav-item-${index}`
@@ -61398,6 +61416,7 @@ var NavbarSidebarMobile = ({
61398
61416
  NavigationMenu,
61399
61417
  {
61400
61418
  className: cn("hidden lg:flex", navigationMenuClassName),
61419
+ viewport: false,
61401
61420
  children: /* @__PURE__ */ jsx(NavigationMenuList, { children: menuSlot ? menuSlot : renderMenu()?.map(
61402
61421
  (item, index) => item.items ? /* @__PURE__ */ jsxs(NavigationMenuItem, { children: [
61403
61422
  /* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.title }),
@@ -61894,6 +61913,8 @@ var MobileNavigationMenu7 = ({
61894
61913
  title: "Mobile Navigation",
61895
61914
  className: cn("bg-black/95", mobileMenuClassName),
61896
61915
  contentClassName: "flex flex-col items-center justify-center",
61916
+ closeContainerClassName: "bg-black/95",
61917
+ closeIconClassName: "text-white",
61897
61918
  children: /* @__PURE__ */ jsxs("div", { className: "flex h-full flex-col items-center justify-center", children: [
61898
61919
  /* @__PURE__ */ jsx("nav", { className: "flex flex-col items-center gap-8", children: navItems?.map((item, index) => /* @__PURE__ */ jsxs(
61899
61920
  Pressable,
@@ -62107,36 +62128,44 @@ var DesktopMenuItem7 = ({
62107
62128
  ),
62108
62129
  /* @__PURE__ */ jsxs("div", { className: "p-4", children: [
62109
62130
  /* @__PURE__ */ jsx("p", { className: "mb-3 text-[10px] text-muted-foreground uppercase", children: group.label }),
62110
- /* @__PURE__ */ jsx("div", { className: "space-y-1", children: group.links.map((link) => /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsxs(
62111
- Pressable,
62131
+ /* @__PURE__ */ jsx("div", { className: "space-y-1", children: group.links.map((link) => /* @__PURE__ */ jsx(
62132
+ NavigationMenuLink,
62112
62133
  {
62113
- href: link.href,
62114
- className: "group flex cursor-pointer flex-row gap-3",
62115
- children: [
62116
- link.icon && /* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon, size: 20 }) }),
62117
- /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
62118
- /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
62119
- link.title,
62120
- /* @__PURE__ */ jsx(
62121
- DynamicIcon,
62122
- {
62123
- name: "lucide/chevron-right",
62124
- size: 16,
62125
- className: "text-primary! opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
62126
- }
62127
- )
62128
- ] }),
62129
- link.description && /* @__PURE__ */ jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: link.description })
62130
- ] })
62131
- ]
62132
- }
62133
- ) }, link.title)) }),
62134
+ asChild: true,
62135
+ className: "w-full",
62136
+ children: /* @__PURE__ */ jsxs(
62137
+ Pressable,
62138
+ {
62139
+ href: link.href,
62140
+ className: "group flex cursor-pointer flex-row gap-3",
62141
+ children: [
62142
+ link.icon && /* @__PURE__ */ jsx("span", { className: "flex size-10 shrink-0 items-center justify-center rounded-md border border-border bg-background", children: /* @__PURE__ */ jsx(DynamicIcon, { name: link.icon, size: 20 }) }),
62143
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col", children: [
62144
+ /* @__PURE__ */ jsxs("span", { className: "flex items-center gap-0.5 text-sm font-medium whitespace-nowrap", children: [
62145
+ link.title,
62146
+ /* @__PURE__ */ jsx(
62147
+ DynamicIcon,
62148
+ {
62149
+ name: "lucide/chevron-right",
62150
+ size: 16,
62151
+ className: "opacity-0 transition-all duration-200 group-hover:translate-x-0.5 group-hover:opacity-100"
62152
+ }
62153
+ )
62154
+ ] }),
62155
+ link.description && /* @__PURE__ */ jsx("p", { className: "text-xs whitespace-nowrap text-muted-foreground", children: link.description })
62156
+ ] })
62157
+ ]
62158
+ }
62159
+ )
62160
+ },
62161
+ link.title
62162
+ )) }),
62134
62163
  group.featuredImage && /* @__PURE__ */ jsx("div", { className: "mt-4", children: /* @__PURE__ */ jsx(NavigationMenuLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: group.featuredImage.href || "#", children: /* @__PURE__ */ jsx("div", { className: "rounded-lg bg-muted p-3", children: /* @__PURE__ */ jsx(
62135
62164
  Img,
62136
62165
  {
62137
62166
  src: group.featuredImage.src,
62138
62167
  alt: group.featuredImage.alt || "Featured image",
62139
- className: "aspect-video w-full max-w-[240px] rounded-md object-cover object-center",
62168
+ className: "aspect-video w-full max-w-60 rounded-md object-cover object-center",
62140
62169
  optixFlowConfig
62141
62170
  }
62142
62171
  ) }) }) }) })
@@ -62200,29 +62229,36 @@ var MobileNavigationMenu8 = ({
62200
62229
  className: "border-b-0",
62201
62230
  children: [
62202
62231
  /* @__PURE__ */ 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 }),
62203
- /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs("div", { className: "mb-4", children: [
62204
- /* @__PURE__ */ jsx("p", { className: "mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.label }),
62205
- group.links.map((link) => /* @__PURE__ */ jsxs(
62206
- Pressable,
62207
- {
62208
- href: link.href,
62209
- 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",
62210
- onClick: onClose,
62211
- children: [
62212
- link.icon && /* @__PURE__ */ jsx(
62213
- DynamicIcon,
62214
- {
62215
- name: link.icon,
62216
- size: 16,
62217
- className: "stroke-muted-foreground"
62218
- }
62219
- ),
62232
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
62233
+ "div",
62234
+ {
62235
+ className: "mb-4",
62236
+ children: [
62237
+ group.label && /* @__PURE__ */ jsx("p", { className: "block mt-4 mb-2 px-4 text-[10px] text-muted-foreground uppercase", children: group.label }),
62238
+ group.links.map((link) => /* @__PURE__ */ jsxs(
62239
+ Pressable,
62240
+ {
62241
+ href: link.href,
62242
+ className: "flex min-h-12 items-center gap-2 rounded-lg pl-6 pr-4 text-muted-foreground transition-colors duration-300 hover:bg-muted hover:text-foreground",
62243
+ onClick: onClose,
62244
+ children: [
62245
+ link.icon && /* @__PURE__ */ jsx(
62246
+ DynamicIcon,
62247
+ {
62248
+ name: link.icon,
62249
+ size: 16,
62250
+ className: "stroke-muted-foreground"
62251
+ }
62252
+ ),
62253
+ link.title
62254
+ ]
62255
+ },
62220
62256
  link.title
62221
- ]
62222
- },
62223
- link.title
62224
- ))
62225
- ] }, `mobile-group-${groupIndex}`)) })
62257
+ ))
62258
+ ]
62259
+ },
62260
+ `mobile-group-${groupIndex}`
62261
+ )) })
62226
62262
  ]
62227
62263
  },
62228
62264
  `nav-item-${index}`
@@ -62343,37 +62379,6 @@ var NavbarStickyCompact = ({
62343
62379
  ) }, index)
62344
62380
  );
62345
62381
  }, [menuSlot, menu, isScrolled]);
62346
- const renderMobileMenu = useMemo$1(() => {
62347
- if (menuSlot) return menuSlot;
62348
- if (!menu || menu.length === 0) return null;
62349
- return menu.map(
62350
- (item, index) => item.items ? /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
62351
- /* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.title }),
62352
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-1 pl-2", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxs(
62353
- Pressable,
62354
- {
62355
- href: subItem.url,
62356
- className: "flex items-center gap-2 rounded-md py-2 text-sm hover:text-foreground",
62357
- onClick: () => setIsOpen(false),
62358
- children: [
62359
- subItem.icon && /* @__PURE__ */ jsx(DynamicIcon, { name: subItem.icon, size: 14 }),
62360
- subItem.title
62361
- ]
62362
- },
62363
- subIndex
62364
- )) })
62365
- ] }, index) : /* @__PURE__ */ jsx(
62366
- Pressable,
62367
- {
62368
- href: item.url,
62369
- className: "text-sm font-medium",
62370
- onClick: () => setIsOpen(false),
62371
- children: item.title
62372
- },
62373
- index
62374
- )
62375
- );
62376
- }, [menuSlot, menu]);
62377
62382
  const {
62378
62383
  sectionClasses,
62379
62384
  containerWrapperClasses,
@@ -62383,99 +62388,165 @@ var NavbarStickyCompact = ({
62383
62388
  sectionContainerMaxWidth,
62384
62389
  spacingOverride
62385
62390
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
62386
- return /* @__PURE__ */ jsx(
62387
- Section,
62388
- {
62389
- background,
62390
- spacing: spacingOverride ?? spacing,
62391
- className: cn(
62392
- sectionClasses,
62393
- "fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
62394
- isScrolled ? "shadow-sm" : ""
62395
- ),
62396
- pattern,
62397
- patternOpacity,
62398
- containerClassName: sectionContainerClassName,
62399
- containerMaxWidth: sectionContainerMaxWidth,
62400
- children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
62401
- "nav",
62391
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
62392
+ /* @__PURE__ */ jsx(
62393
+ Section,
62394
+ {
62395
+ background,
62396
+ spacing: spacingOverride ?? spacing,
62397
+ className: cn(
62398
+ sectionClasses,
62399
+ "fixed top-0 left-0 z-50 w-full bg-background/95 backdrop-blur-sm transition-all duration-300",
62400
+ isScrolled ? "shadow-sm" : ""
62401
+ ),
62402
+ pattern,
62403
+ patternOpacity,
62404
+ containerClassName: sectionContainerClassName,
62405
+ containerMaxWidth: sectionContainerMaxWidth,
62406
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
62407
+ "nav",
62408
+ {
62409
+ className: cn(
62410
+ "flex items-center justify-between transition-all duration-300",
62411
+ isScrolled ? "h-14" : "h-16",
62412
+ navClassName
62413
+ ),
62414
+ children: [
62415
+ /* @__PURE__ */ jsx(
62416
+ NavbarLogo,
62417
+ {
62418
+ logo,
62419
+ logoSlot,
62420
+ logoClassName,
62421
+ optixFlowConfig
62422
+ }
62423
+ ),
62424
+ /* @__PURE__ */ jsx(NavigationMenu, { className: "hidden lg:flex", viewport: false, children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu }) }),
62425
+ /* @__PURE__ */ jsx(
62426
+ "div",
62427
+ {
62428
+ className: cn(
62429
+ "hidden items-center gap-2 lg:flex",
62430
+ actionsClassName
62431
+ ),
62432
+ children: renderAuthActions
62433
+ }
62434
+ ),
62435
+ /* @__PURE__ */ jsxs(
62436
+ Pressable,
62437
+ {
62438
+ variant: "ghost",
62439
+ size: isScrolled ? "sm" : "icon",
62440
+ asButton: true,
62441
+ className: "lg:hidden transition-all duration-300",
62442
+ onClick: () => setIsOpen(!isOpen),
62443
+ children: [
62444
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: isScrolled ? 18 : 20 }),
62445
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
62446
+ ]
62447
+ }
62448
+ )
62449
+ ]
62450
+ }
62451
+ ) }) }) })
62452
+ }
62453
+ ),
62454
+ /* @__PURE__ */ jsx(
62455
+ MobileNavigationMenu9,
62456
+ {
62457
+ open: isOpen,
62458
+ setOpen: setIsOpen,
62459
+ menu: menu ?? [],
62460
+ menuSlot,
62461
+ authActions,
62462
+ authActionsSlot
62463
+ }
62464
+ )
62465
+ ] });
62466
+ };
62467
+ var MobileNavigationMenu9 = ({
62468
+ open,
62469
+ setOpen,
62470
+ menu,
62471
+ menuSlot,
62472
+ authActions,
62473
+ authActionsSlot
62474
+ }) => {
62475
+ const handleClose = () => setOpen(false);
62476
+ const renderMobileAuthActions = useMemo$1(() => {
62477
+ if (authActionsSlot) return authActionsSlot;
62478
+ if (!authActions || authActions.length === 0) return null;
62479
+ return /* @__PURE__ */ jsx("div", { className: "mt-6 flex flex-col gap-4", children: authActions.map((action, index) => {
62480
+ const {
62481
+ label,
62482
+ icon,
62483
+ iconAfter,
62484
+ children,
62485
+ className: actionClassName,
62486
+ ...pressableProps
62487
+ } = action;
62488
+ return /* @__PURE__ */ jsx(
62489
+ Pressable,
62402
62490
  {
62403
- className: cn(
62404
- "flex items-center justify-between transition-all duration-300",
62405
- isScrolled ? "h-14" : "h-16",
62406
- navClassName
62407
- ),
62491
+ asButton: true,
62492
+ className: cn("w-full", actionClassName),
62493
+ onClick: handleClose,
62494
+ ...pressableProps,
62495
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
62496
+ icon,
62497
+ label,
62498
+ iconAfter
62499
+ ] })
62500
+ },
62501
+ index
62502
+ );
62503
+ }) });
62504
+ }, [authActionsSlot, authActions]);
62505
+ return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
62506
+ /* @__PURE__ */ jsx(Accordion, { type: "multiple", className: "w-full", children: menuSlot ? menuSlot : menu.map(
62507
+ (item, index) => item.items ? /* @__PURE__ */ jsxs(
62508
+ AccordionItem,
62509
+ {
62510
+ value: `nav-${index}`,
62511
+ className: "border-b-0",
62408
62512
  children: [
62409
- /* @__PURE__ */ jsx(
62410
- NavbarLogo,
62513
+ /* @__PURE__ */ 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 }),
62514
+ /* @__PURE__ */ jsx(AccordionContent, { className: "overflow-x-none", children: item.items.map((subItem, subIndex) => /* @__PURE__ */ jsxs(
62515
+ Pressable,
62411
62516
  {
62412
- logo,
62413
- logoSlot,
62414
- logoClassName: cn(
62415
- isScrolled ? "[&_img]:h-6 [&_span]:text-base" : "[&_img]:h-8 [&_span]:text-lg",
62416
- "[&_img]:transition-all [&_img]:duration-300 [&_span]:transition-all [&_span]:duration-300",
62417
- logoClassName
62418
- ),
62419
- optixFlowConfig
62420
- }
62421
- ),
62422
- /* @__PURE__ */ jsx(NavigationMenu, { className: "hidden lg:flex", children: /* @__PURE__ */ jsx(NavigationMenuList, { children: renderMenu }) }),
62423
- /* @__PURE__ */ jsx(
62424
- "div",
62425
- {
62426
- className: cn(
62427
- "hidden items-center gap-2 lg:flex",
62428
- actionsClassName
62429
- ),
62430
- children: renderAuthActions
62431
- }
62432
- ),
62433
- /* @__PURE__ */ jsxs(
62434
- Pressable,
62435
- {
62436
- variant: "ghost",
62437
- size: isScrolled ? "sm" : "icon",
62438
- asButton: true,
62439
- className: "lg:hidden transition-all duration-300",
62440
- onClick: () => setIsOpen(!isOpen),
62517
+ href: subItem.url,
62518
+ 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",
62519
+ onClick: handleClose,
62441
62520
  children: [
62442
- /* @__PURE__ */ jsx(
62521
+ subItem.icon && /* @__PURE__ */ jsx(
62443
62522
  DynamicIcon,
62444
62523
  {
62445
- name: "lucide/menu",
62446
- size: isScrolled ? 18 : 20
62524
+ name: subItem.icon,
62525
+ size: 16,
62526
+ className: "stroke-muted-foreground"
62447
62527
  }
62448
62528
  ),
62449
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
62529
+ subItem.title
62450
62530
  ]
62451
- }
62452
- ),
62453
- /* @__PURE__ */ jsx(
62454
- NavbarMobileMenu,
62455
- {
62456
- open: isOpen,
62457
- onClose: () => setIsOpen(false),
62458
- title: "Navigation Menu",
62459
- children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
62460
- renderMobileMenu,
62461
- /* @__PURE__ */ jsx(
62462
- "div",
62463
- {
62464
- className: cn(
62465
- "mt-4 flex flex-col gap-2 border-t pt-4",
62466
- actionsClassName
62467
- ),
62468
- children: renderAuthActions
62469
- }
62470
- )
62471
- ] }) })
62472
- }
62473
- )
62531
+ },
62532
+ `mobile-link-${index}-${subIndex}`
62533
+ )) })
62474
62534
  ]
62475
- }
62476
- ) }) }) })
62477
- }
62478
- );
62535
+ },
62536
+ `nav-item-${index}`
62537
+ ) : /* @__PURE__ */ jsx(
62538
+ Pressable,
62539
+ {
62540
+ href: item.url,
62541
+ 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",
62542
+ onClick: handleClose,
62543
+ children: item.title
62544
+ },
62545
+ `nav-link-${index}`
62546
+ )
62547
+ ) }),
62548
+ renderMobileAuthActions
62549
+ ] }) }) });
62479
62550
  };
62480
62551
  var NavbarSearchFocused = ({
62481
62552
  className,
@@ -62503,6 +62574,11 @@ var NavbarSearchFocused = ({
62503
62574
  optixFlowConfig
62504
62575
  }) => {
62505
62576
  const [isOpen, setIsOpen] = useState(false);
62577
+ const [searchQuery, setSearchQuery] = useState("");
62578
+ const handleSearchSubmit = (e) => {
62579
+ e.preventDefault();
62580
+ onSearch?.(searchQuery);
62581
+ };
62506
62582
  const renderNavigation = (items) => {
62507
62583
  if (navigationSlot) return navigationSlot;
62508
62584
  if (!items || items.length === 0) return null;
@@ -62548,7 +62624,7 @@ var NavbarSearchFocused = ({
62548
62624
  );
62549
62625
  });
62550
62626
  }, [authActionsSlot, authActions]);
62551
- const renderMobileMenuActions = useMemo$1(() => {
62627
+ useMemo$1(() => {
62552
62628
  if (mobileMenuActionsSlot) return mobileMenuActionsSlot;
62553
62629
  if (!mobileMenuActions || mobileMenuActions.length === 0) return null;
62554
62630
  return /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: mobileMenuActions.map((action, index) => {
@@ -62577,100 +62653,157 @@ var NavbarSearchFocused = ({
62577
62653
  sectionContainerMaxWidth,
62578
62654
  spacingOverride
62579
62655
  } = getNavbarLayoutClasses(layoutVariant, { className, containerClassName });
62580
- return /* @__PURE__ */ jsx(
62581
- Section,
62582
- {
62583
- background,
62584
- spacing: spacingOverride ?? spacing,
62585
- className: sectionClasses,
62586
- pattern,
62587
- patternOpacity,
62588
- containerClassName: sectionContainerClassName,
62589
- containerMaxWidth: sectionContainerMaxWidth,
62590
- children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
62591
- "nav",
62592
- {
62593
- className: cn(
62594
- "flex items-center gap-4 py-3 lg:gap-8",
62595
- navClassName
62596
- ),
62597
- children: [
62598
- /* @__PURE__ */ jsx(
62599
- NavbarLogo,
62600
- {
62601
- logo,
62602
- logoSlot,
62603
- logoClassName,
62604
- optixFlowConfig
62605
- }
62606
- ),
62607
- /* @__PURE__ */ jsx(
62608
- NavigationMenu,
62609
- {
62610
- className: cn("hidden lg:flex", navigationMenuClassName),
62611
- children: renderNavigation(navItems?.slice(0, 2) ?? [])
62612
- }
62613
- ),
62614
- /* @__PURE__ */ jsx(
62615
- NavigationMenu,
62616
- {
62617
- className: cn("hidden lg:flex", navigationMenuClassName),
62618
- children: renderNavigation(navItems?.slice(2) ?? [])
62619
- }
62656
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [
62657
+ /* @__PURE__ */ jsx(
62658
+ Section,
62659
+ {
62660
+ background,
62661
+ spacing: spacingOverride ?? spacing,
62662
+ className: sectionClasses,
62663
+ pattern,
62664
+ patternOpacity,
62665
+ containerClassName: sectionContainerClassName,
62666
+ containerMaxWidth: sectionContainerMaxWidth,
62667
+ children: /* @__PURE__ */ jsx("div", { className: containerWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: navWrapperClasses, children: /* @__PURE__ */ jsx("div", { className: innerContainerClasses, children: /* @__PURE__ */ jsxs(
62668
+ "nav",
62669
+ {
62670
+ className: cn(
62671
+ "flex items-center justify-between gap-4 py-3 lg:gap-6",
62672
+ navClassName
62620
62673
  ),
62621
- /* @__PURE__ */ jsx(
62622
- "div",
62623
- {
62624
- className: cn(
62625
- "hidden shrink-0 items-center gap-2 lg:flex",
62626
- actionsClassName
62674
+ children: [
62675
+ /* @__PURE__ */ jsx(
62676
+ NavbarLogo,
62677
+ {
62678
+ logo,
62679
+ logoSlot,
62680
+ logoClassName,
62681
+ optixFlowConfig
62682
+ }
62683
+ ),
62684
+ /* @__PURE__ */ jsx(
62685
+ NavigationMenu,
62686
+ {
62687
+ className: cn("hidden lg:flex", navigationMenuClassName),
62688
+ children: renderNavigation(navItems ?? [])
62689
+ }
62690
+ ),
62691
+ /* @__PURE__ */ jsx("div", { className: "hidden flex-1 max-w-md lg:block", children: searchSlot ?? /* @__PURE__ */ jsxs("form", { onSubmit: handleSearchSubmit, className: "relative", children: [
62692
+ /* @__PURE__ */ jsx(
62693
+ DynamicIcon,
62694
+ {
62695
+ name: "lucide/search",
62696
+ size: 16,
62697
+ className: "absolute left-3 top-1/2 -translate-y-1/2 text-muted-foreground"
62698
+ }
62627
62699
  ),
62628
- children: renderAuthActions
62629
- }
62630
- ),
62631
- /* @__PURE__ */ jsxs(
62632
- Pressable,
62633
- {
62634
- variant: "ghost",
62635
- size: "icon",
62636
- asButton: true,
62637
- className: "lg:hidden",
62638
- onClick: () => setIsOpen(!isOpen),
62639
- children: [
62640
- /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
62641
- /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
62642
- ]
62643
- }
62644
- ),
62645
- /* @__PURE__ */ jsx(
62646
- NavbarMobileMenu,
62647
- {
62648
- open: isOpen,
62649
- onClose: () => setIsOpen(false),
62650
- title: "Navigation Menu",
62651
- children: /* @__PURE__ */ jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
62652
- /* @__PURE__ */ jsx("div", { className: "flex flex-col gap-2", children: navItems?.map((item, index) => /* @__PURE__ */ jsxs(
62653
- Pressable,
62654
- {
62655
- href: item.url,
62656
- className: "flex items-center gap-2 rounded-md py-2 text-base font-medium",
62657
- onClick: () => setIsOpen(false),
62658
- children: [
62659
- item.icon ?? (item.iconName && /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 })),
62660
- item.title
62661
- ]
62662
- },
62663
- index
62664
- )) }),
62665
- /* @__PURE__ */ jsx("div", { className: "border-t pt-4 mt-6", children: renderMobileMenuActions })
62666
- ] })
62667
- }
62668
- )
62669
- ]
62670
- }
62671
- ) }) }) })
62672
- }
62673
- );
62700
+ /* @__PURE__ */ jsx(
62701
+ Input,
62702
+ {
62703
+ type: "search",
62704
+ placeholder: typeof searchPlaceholder === "string" ? searchPlaceholder : "Search...",
62705
+ value: searchQuery,
62706
+ onChange: (e) => setSearchQuery(e.target.value),
62707
+ className: "pl-9 pr-4"
62708
+ }
62709
+ )
62710
+ ] }) }),
62711
+ /* @__PURE__ */ jsx(
62712
+ "div",
62713
+ {
62714
+ className: cn(
62715
+ "hidden shrink-0 items-center gap-2 lg:flex",
62716
+ actionsClassName
62717
+ ),
62718
+ children: renderAuthActions
62719
+ }
62720
+ ),
62721
+ /* @__PURE__ */ jsxs(
62722
+ Pressable,
62723
+ {
62724
+ variant: "ghost",
62725
+ size: "icon",
62726
+ asButton: true,
62727
+ className: "lg:hidden",
62728
+ onClick: () => setIsOpen(!isOpen),
62729
+ children: [
62730
+ /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/menu", size: 20 }),
62731
+ /* @__PURE__ */ jsx("span", { className: "sr-only", children: "Toggle menu" })
62732
+ ]
62733
+ }
62734
+ )
62735
+ ]
62736
+ }
62737
+ ) }) }) })
62738
+ }
62739
+ ),
62740
+ /* @__PURE__ */ jsx(
62741
+ MobileNavigationMenu10,
62742
+ {
62743
+ open: isOpen,
62744
+ setOpen: setIsOpen,
62745
+ navItems: navItems ?? [],
62746
+ navigationSlot,
62747
+ mobileMenuActions: mobileMenuActions ?? authActions,
62748
+ mobileMenuActionsSlot: mobileMenuActionsSlot ?? authActionsSlot
62749
+ }
62750
+ )
62751
+ ] });
62752
+ };
62753
+ var MobileNavigationMenu10 = ({
62754
+ open,
62755
+ setOpen,
62756
+ navItems,
62757
+ navigationSlot,
62758
+ mobileMenuActions,
62759
+ mobileMenuActionsSlot
62760
+ }) => {
62761
+ const handleClose = () => setOpen(false);
62762
+ const renderMobileActions = useMemo$1(() => {
62763
+ if (mobileMenuActionsSlot) return mobileMenuActionsSlot;
62764
+ if (!mobileMenuActions || mobileMenuActions.length === 0) return null;
62765
+ return /* @__PURE__ */ jsx("div", { className: "mt-6 flex flex-col gap-4", children: mobileMenuActions.map((action, index) => {
62766
+ const {
62767
+ label,
62768
+ icon,
62769
+ iconAfter,
62770
+ children,
62771
+ className: actionClassName,
62772
+ ...pressableProps
62773
+ } = action;
62774
+ return /* @__PURE__ */ jsx(
62775
+ Pressable,
62776
+ {
62777
+ asButton: true,
62778
+ className: cn("w-full", actionClassName),
62779
+ onClick: handleClose,
62780
+ ...pressableProps,
62781
+ children: children ?? /* @__PURE__ */ jsxs(Fragment$1, { children: [
62782
+ icon,
62783
+ label,
62784
+ iconAfter
62785
+ ] })
62786
+ },
62787
+ index
62788
+ );
62789
+ }) });
62790
+ }, [mobileMenuActionsSlot, mobileMenuActions]);
62791
+ return /* @__PURE__ */ jsx(NavbarMobileMenu, { open, onClose: handleClose, title: "Navigation Menu", children: /* @__PURE__ */ jsx("div", { className: "max-w-screen-sm mx-auto", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6", children: [
62792
+ navigationSlot ?? /* @__PURE__ */ jsx("nav", { className: "flex flex-col", children: navItems.map((item, index) => /* @__PURE__ */ jsxs(
62793
+ Pressable,
62794
+ {
62795
+ href: item.url,
62796
+ className: "flex h-15 items-center gap-2 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",
62797
+ onClick: handleClose,
62798
+ children: [
62799
+ item.icon ?? (item.iconName && /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 16 })),
62800
+ item.title
62801
+ ]
62802
+ },
62803
+ `nav-link-${index}`
62804
+ )) }),
62805
+ renderMobileActions
62806
+ ] }) }) });
62674
62807
  };
62675
62808
  var MOBILE_BREAKPOINT7 = 1024;
62676
62809
  var NavbarSimpleLinks = ({
@@ -62873,19 +63006,19 @@ var NavbarSimpleLinks = ({
62873
63006
  }
62874
63007
  ),
62875
63008
  /* @__PURE__ */ jsx(
62876
- MobileNavigationMenu9,
63009
+ MobileNavigationMenu11,
62877
63010
  {
62878
63011
  open: isOpen,
62879
63012
  onClose: handleMobileMenuClose,
62880
63013
  navItems: navItems ?? [],
62881
- mobileActions,
62882
- mobileActionsSlot,
63014
+ mobileActions: mobileActions ?? actions,
63015
+ mobileActionsSlot: mobileActionsSlot ?? actionsSlot,
62883
63016
  mobileMenuClassName
62884
63017
  }
62885
63018
  )
62886
63019
  ] });
62887
63020
  };
62888
- var MobileNavigationMenu9 = ({
63021
+ var MobileNavigationMenu11 = ({
62889
63022
  open,
62890
63023
  onClose,
62891
63024
  navItems,