@opensite/ui 3.8.0 → 3.8.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.
package/dist/registry.cjs CHANGED
@@ -64535,6 +64535,64 @@ var NavbarMegaMenu = ({
64535
64535
  }
64536
64536
  );
64537
64537
  };
64538
+ var PANEL_MAX_WIDTH_CLASS = "max-w-[calc(100vw-4rem)]";
64539
+ var hasItems = (items) => Array.isArray(items) && items.length > 0;
64540
+ var hasFeaturedHeroCardContent = (card) => Boolean(
64541
+ card && (card.title || card.subtitle || card.description || card.image)
64542
+ );
64543
+ var FeaturedHeroCardPanel = ({
64544
+ card,
64545
+ optixFlowConfig,
64546
+ className,
64547
+ contentClassName,
64548
+ imageContainerClassName = "relative aspect-video w-full overflow-hidden",
64549
+ imageClassName,
64550
+ contentFirst
64551
+ }) => {
64552
+ const image = card.image ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: imageContainerClassName, children: /* @__PURE__ */ jsxRuntime.jsx(
64553
+ img$1.Img,
64554
+ {
64555
+ src: card.image,
64556
+ alt: card.title,
64557
+ className: cn("h-full w-full object-cover", imageClassName),
64558
+ optixFlowConfig,
64559
+ loading: "eager"
64560
+ }
64561
+ ) }) : null;
64562
+ const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col p-5", contentClassName), children: [
64563
+ card.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: card.subtitle }),
64564
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64565
+ card.title,
64566
+ /* @__PURE__ */ jsxRuntime.jsx(
64567
+ DynamicIcon,
64568
+ {
64569
+ name: "lucide/arrow-right",
64570
+ size: 16,
64571
+ className: "shrink-0 transition-transform group-hover:translate-x-1"
64572
+ }
64573
+ )
64574
+ ] }),
64575
+ card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed opacity-90", children: card.description })
64576
+ ] });
64577
+ return /* @__PURE__ */ jsxRuntime.jsx(
64578
+ pressable.Pressable,
64579
+ {
64580
+ href: card.href,
64581
+ className: cn(
64582
+ "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64583
+ card.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary",
64584
+ className
64585
+ ),
64586
+ children: contentFirst ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
64587
+ content,
64588
+ image
64589
+ ] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
64590
+ image,
64591
+ content
64592
+ ] })
64593
+ }
64594
+ );
64595
+ };
64538
64596
  var SolutionsMenu = ({
64539
64597
  solutionCards,
64540
64598
  platformItems,
@@ -64542,492 +64600,458 @@ var SolutionsMenu = ({
64542
64600
  featuredHeroCard,
64543
64601
  optixFlowConfig
64544
64602
  }) => {
64545
- const featuredCard = featuredHeroCard ? /* @__PURE__ */ jsxRuntime.jsxs(
64546
- pressable.Pressable,
64547
- {
64548
- href: featuredHeroCard.href,
64549
- className: cn(
64550
- "group flex h-full min-h-[420px] flex-col overflow-hidden rounded-lg text-primary-foreground",
64551
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64552
- ),
64553
- children: [
64554
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-col justify-between p-5", children: [
64555
- featuredHeroCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: featuredHeroCard.subtitle }),
64556
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
64557
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64558
- featuredHeroCard.title,
64559
- /* @__PURE__ */ jsxRuntime.jsx(
64560
- DynamicIcon,
64561
- {
64562
- name: "lucide/arrow-right",
64563
- size: 16,
64564
- className: "transition-transform group-hover:translate-x-1"
64565
- }
64566
- )
64567
- ] }),
64568
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64569
- ] })
64570
- ] }),
64571
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64572
- img$1.Img,
64573
- {
64574
- src: featuredHeroCard.image,
64575
- alt: featuredHeroCard.title,
64576
- className: "h-full w-full object-cover",
64577
- optixFlowConfig,
64578
- loading: "eager"
64579
- }
64580
- ) })
64581
- ]
64603
+ const visibleSolutionCards = solutionCards.filter(Boolean);
64604
+ const visiblePlatformItems = platformItems.filter(Boolean);
64605
+ const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
64606
+ const hasPlatformSection = hasItems(visiblePlatformItems);
64607
+ const hasSolutionSection = hasItems(visibleSolutionCards);
64608
+ const hasRightColumn = hasPlatformSection || hasSolutionSection;
64609
+ if (!hasFeaturedCard && !hasRightColumn) return null;
64610
+ const featuredCard = hasFeaturedCard && featuredHeroCard ? /* @__PURE__ */ jsxRuntime.jsx(
64611
+ FeaturedHeroCardPanel,
64612
+ {
64613
+ card: featuredHeroCard,
64614
+ optixFlowConfig,
64615
+ contentFirst: true,
64616
+ className: cn(featuredHeroCard.image && "min-h-[420px]"),
64617
+ imageContainerClassName: "relative min-h-0 flex-1 overflow-hidden"
64582
64618
  }
64583
64619
  ) : null;
64584
- const platformSection = platformItems.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
64620
+ const platformSection = hasPlatformSection ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
64585
64621
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: platformTitle }) }),
64586
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
64587
- NavigationMenuLink,
64622
+ /* @__PURE__ */ jsxRuntime.jsx(
64623
+ "div",
64588
64624
  {
64589
- href: technology.href,
64590
- className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
64591
- children: [
64592
- /* @__PURE__ */ jsxRuntime.jsx(
64593
- DynamicIcon,
64594
- {
64595
- name: technology.icon,
64596
- size: 16,
64597
- className: "shrink-0"
64598
- }
64599
- ),
64600
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
64601
- ]
64602
- },
64603
- technology.id
64604
- )) })
64605
- ] }) : null;
64606
- const solutionSection = solutionCards.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
64607
- "div",
64608
- {
64609
- className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
64610
- children: [
64611
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
64612
- pressable.Pressable,
64613
- {
64614
- href: solution.href,
64615
- className: "group flex min-w-0 flex-col text-left",
64616
- children: [
64617
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
64618
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
64619
- /* @__PURE__ */ jsxRuntime.jsx(
64620
- DynamicIcon,
64621
- {
64622
- name: "lucide/arrow-right",
64623
- size: 14,
64624
- className: "shrink-0 transition-transform group-hover:translate-x-1"
64625
- }
64626
- )
64627
- ] }),
64628
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
64629
- ]
64630
- }
64631
- ) }),
64632
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
64625
+ className: cn(
64626
+ "grid gap-2",
64627
+ hasFeaturedCard ? "grid-cols-2" : "grid-cols-[repeat(auto-fit,minmax(160px,1fr))]"
64628
+ ),
64629
+ children: visiblePlatformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
64633
64630
  NavigationMenuLink,
64634
64631
  {
64635
- href: subpage.href,
64636
- className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64632
+ href: technology.href,
64633
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
64637
64634
  children: [
64638
64635
  /* @__PURE__ */ jsxRuntime.jsx(
64639
64636
  DynamicIcon,
64640
64637
  {
64641
- name: subpage.icon,
64642
- size: 14,
64638
+ name: technology.icon,
64639
+ size: 16,
64643
64640
  className: "shrink-0"
64644
64641
  }
64645
64642
  ),
64646
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
64643
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
64647
64644
  ]
64648
64645
  },
64649
- subpage.id
64650
- )) })
64651
- ]
64652
- },
64653
- solution.id
64654
- )) }) : null;
64655
- if (featuredCard) {
64656
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-[minmax(380px,1fr)_minmax(360px,0.95fr)] gap-4", children: [
64657
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: featuredCard }),
64658
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
64659
- platformSection,
64660
- solutionSection
64661
- ] })
64662
- ] });
64663
- }
64664
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-2 gap-4", children: [
64665
- platformSection,
64666
- solutionCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
64667
- "div",
64668
- {
64669
- className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
64670
- children: [
64671
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
64672
- pressable.Pressable,
64673
- {
64674
- href: solution.href,
64675
- className: "group flex min-w-0 flex-col text-left",
64676
- children: [
64677
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
64678
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
64646
+ technology.id
64647
+ ))
64648
+ }
64649
+ )
64650
+ ] }) : null;
64651
+ const solutionSection = hasSolutionSection ? /* @__PURE__ */ jsxRuntime.jsx(
64652
+ "div",
64653
+ {
64654
+ className: cn(
64655
+ "grid gap-3",
64656
+ hasFeaturedCard ? "grid-cols-2" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
64657
+ ),
64658
+ children: visibleSolutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
64659
+ "div",
64660
+ {
64661
+ className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
64662
+ children: [
64663
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
64664
+ pressable.Pressable,
64665
+ {
64666
+ href: solution.href,
64667
+ className: "group flex min-w-0 flex-col text-left",
64668
+ children: [
64669
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
64670
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
64671
+ /* @__PURE__ */ jsxRuntime.jsx(
64672
+ DynamicIcon,
64673
+ {
64674
+ name: "lucide/arrow-right",
64675
+ size: 14,
64676
+ className: "shrink-0 transition-transform group-hover:translate-x-1"
64677
+ }
64678
+ )
64679
+ ] }),
64680
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
64681
+ ]
64682
+ }
64683
+ ) }),
64684
+ /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: (solution.subpages ?? []).map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
64685
+ NavigationMenuLink,
64686
+ {
64687
+ href: subpage.href,
64688
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64689
+ children: [
64679
64690
  /* @__PURE__ */ jsxRuntime.jsx(
64680
64691
  DynamicIcon,
64681
64692
  {
64682
- name: "lucide/arrow-right",
64693
+ name: subpage.icon,
64683
64694
  size: 14,
64684
- className: "shrink-0 transition-transform group-hover:translate-x-1"
64695
+ className: "shrink-0"
64685
64696
  }
64686
- )
64687
- ] }),
64688
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
64689
- ]
64690
- }
64691
- ) }),
64692
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
64693
- NavigationMenuLink,
64694
- {
64695
- href: subpage.href,
64696
- className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64697
- children: [
64698
- /* @__PURE__ */ jsxRuntime.jsx(
64699
- DynamicIcon,
64700
- {
64701
- name: subpage.icon,
64702
- size: 14,
64703
- className: "shrink-0"
64704
- }
64705
- ),
64706
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
64707
- ]
64708
- },
64709
- subpage.id
64710
- )) })
64711
- ]
64712
- },
64713
- solution.id
64714
- )) })
64715
- ] });
64697
+ ),
64698
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
64699
+ ]
64700
+ },
64701
+ subpage.id
64702
+ )) })
64703
+ ]
64704
+ },
64705
+ solution.id
64706
+ ))
64707
+ }
64708
+ ) : null;
64709
+ return /* @__PURE__ */ jsxRuntime.jsxs(
64710
+ "div",
64711
+ {
64712
+ className: cn(
64713
+ "grid gap-4",
64714
+ PANEL_MAX_WIDTH_CLASS,
64715
+ hasFeaturedCard && hasRightColumn ? "w-[1200px] grid-cols-[minmax(380px,1fr)_minmax(360px,0.95fr)]" : hasFeaturedCard ? "w-[560px] grid-cols-1" : hasSolutionSection ? "w-[900px] grid-cols-1" : "w-[520px] grid-cols-1"
64716
+ ),
64717
+ children: [
64718
+ featuredCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: featuredCard }),
64719
+ hasRightColumn && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
64720
+ platformSection,
64721
+ solutionSection
64722
+ ] })
64723
+ ]
64724
+ }
64725
+ );
64716
64726
  };
64717
64727
  var ProductsMenu = ({
64718
64728
  productCategories,
64719
64729
  featuredHeroCard,
64720
64730
  optixFlowConfig
64721
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[320px_1fr] gap-6", children: [
64722
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64723
- pressable.Pressable,
64731
+ }) => {
64732
+ const visibleCategories = productCategories.filter(
64733
+ (category) => hasItems(category.products)
64734
+ );
64735
+ const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
64736
+ const hasProductContent = hasItems(visibleCategories);
64737
+ if (!hasFeaturedCard && !hasProductContent) return null;
64738
+ return /* @__PURE__ */ jsxRuntime.jsxs(
64739
+ "div",
64724
64740
  {
64725
- href: featuredHeroCard.href,
64726
64741
  className: cn(
64727
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64728
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64742
+ "grid gap-6",
64743
+ PANEL_MAX_WIDTH_CLASS,
64744
+ hasFeaturedCard && hasProductContent ? "w-[1100px] grid-cols-[320px_1fr]" : hasProductContent ? "w-[860px] grid-cols-1" : "w-[360px] grid-cols-1"
64729
64745
  ),
64730
64746
  children: [
64731
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64732
- img$1.Img,
64747
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
64748
+ FeaturedHeroCardPanel,
64733
64749
  {
64734
- src: featuredHeroCard.image,
64735
- alt: featuredHeroCard.title,
64736
- className: "h-full w-full object-cover",
64737
- optixFlowConfig,
64738
- loading: "eager"
64750
+ card: featuredHeroCard,
64751
+ optixFlowConfig
64739
64752
  }
64740
64753
  ) }),
64741
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64742
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64743
- featuredHeroCard.title,
64744
- /* @__PURE__ */ jsxRuntime.jsx(
64745
- DynamicIcon,
64746
- {
64747
- name: "lucide/arrow-right",
64748
- size: 16,
64749
- className: "transition-transform group-hover:translate-x-1"
64750
- }
64751
- )
64752
- ] }),
64753
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64754
- ] })
64755
- ]
64756
- }
64757
- ) }),
64758
- productCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex flex-col gap-6", children: productCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
64759
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: category.title }) }),
64760
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid grid-cols-3 gap-3", children: category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsxs(
64761
- NavigationMenuLink,
64762
- {
64763
- href: product.href,
64764
- className: "group col-span-1 !flex !w-full items-center gap-3 rounded-lg p-3 text-left hover:bg-muted",
64765
- children: [
64766
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex size-12 shrink-0 items-center justify-center overflow-hidden rounded", children: /* @__PURE__ */ jsxRuntime.jsx(
64767
- img$1.Img,
64754
+ hasProductContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex min-w-0 flex-col gap-6", children: visibleCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-3", children: [
64755
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: category.title }) }),
64756
+ /* @__PURE__ */ jsxRuntime.jsx(
64757
+ "menu",
64768
64758
  {
64769
- src: product.image,
64770
- alt: product.title,
64771
- className: "h-full w-full object-cover",
64772
- optixFlowConfig,
64773
- loading: "eager"
64759
+ className: cn(
64760
+ "grid gap-3",
64761
+ hasFeaturedCard ? "grid-cols-3" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
64762
+ ),
64763
+ children: category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsxs(
64764
+ NavigationMenuLink,
64765
+ {
64766
+ href: product.href,
64767
+ className: "group col-span-1 !flex !w-full min-w-0 items-center gap-3 rounded-lg p-3 text-left hover:bg-muted",
64768
+ children: [
64769
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex size-12 shrink-0 items-center justify-center overflow-hidden rounded bg-muted text-muted-foreground", children: product.image ? /* @__PURE__ */ jsxRuntime.jsx(
64770
+ img$1.Img,
64771
+ {
64772
+ src: product.image,
64773
+ alt: product.title,
64774
+ className: "h-full w-full object-cover",
64775
+ optixFlowConfig,
64776
+ loading: "eager"
64777
+ }
64778
+ ) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/package", size: 18 }) }),
64779
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64780
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: product.title }),
64781
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: product.description })
64782
+ ] })
64783
+ ]
64784
+ },
64785
+ product.id
64786
+ ))
64774
64787
  }
64775
- ) }),
64776
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64777
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: product.title }),
64778
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: product.description })
64779
- ] })
64780
- ]
64781
- },
64782
- product.id
64783
- )) })
64784
- ] }, category.title)) })
64785
- ] });
64788
+ )
64789
+ ] }, category.title)) })
64790
+ ]
64791
+ }
64792
+ );
64793
+ };
64786
64794
  var ResourcesMenu = ({
64787
64795
  resourceItems,
64788
64796
  resourcesTitle = "Resources",
64789
64797
  topicGroups,
64790
- featuredHeroCard
64791
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[280px_1fr_220px] gap-6", children: [
64792
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64793
- pressable.Pressable,
64798
+ featuredHeroCard,
64799
+ optixFlowConfig
64800
+ }) => {
64801
+ const visibleTopicGroups = topicGroups.filter(
64802
+ (group) => hasItems(group.topics)
64803
+ );
64804
+ const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
64805
+ const hasResourceContent = hasItems(resourceItems);
64806
+ const hasTopicContent = hasItems(visibleTopicGroups);
64807
+ if (!hasFeaturedCard && !hasResourceContent && !hasTopicContent) return null;
64808
+ return /* @__PURE__ */ jsxRuntime.jsxs(
64809
+ "div",
64794
64810
  {
64795
- href: featuredHeroCard.href,
64796
64811
  className: cn(
64797
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64798
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64812
+ "grid gap-6",
64813
+ PANEL_MAX_WIDTH_CLASS,
64814
+ hasFeaturedCard && hasResourceContent && hasTopicContent ? "w-[1100px] grid-cols-[280px_1fr_220px]" : hasFeaturedCard && hasResourceContent ? "w-[900px] grid-cols-[280px_1fr]" : hasFeaturedCard && hasTopicContent ? "w-[560px] grid-cols-[280px_220px]" : hasResourceContent && hasTopicContent ? "w-[900px] grid-cols-[1fr_220px]" : hasResourceContent ? "w-[700px] grid-cols-1" : hasTopicContent ? "w-[280px] grid-cols-1" : "w-[320px] grid-cols-1"
64799
64815
  ),
64800
64816
  children: [
64801
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64802
- img$1.Img,
64817
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
64818
+ FeaturedHeroCardPanel,
64803
64819
  {
64804
- src: featuredHeroCard.image,
64805
- alt: featuredHeroCard.title,
64806
- className: "h-full w-full object-cover invert",
64807
- loading: "eager"
64820
+ card: featuredHeroCard,
64821
+ optixFlowConfig,
64822
+ imageContainerClassName: "relative aspect-[4/3] w-full overflow-hidden",
64823
+ imageClassName: "invert"
64808
64824
  }
64809
64825
  ) }),
64810
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64811
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64812
- featuredHeroCard.title,
64813
- /* @__PURE__ */ jsxRuntime.jsx(
64814
- DynamicIcon,
64815
- {
64816
- name: "lucide/arrow-right",
64817
- size: 16,
64818
- className: "transition-transform group-hover:translate-x-1"
64819
- }
64820
- )
64821
- ] }),
64822
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
64823
- ] })
64824
- ]
64825
- }
64826
- ) }),
64827
- resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
64828
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: resourcesTitle }) }),
64829
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
64830
- NavigationMenuLink,
64831
- {
64832
- href: resource.href,
64833
- className: "group col-span-1 !flex !w-full items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
64834
- children: [
64826
+ hasResourceContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1 min-w-0", children: [
64827
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: resourcesTitle }) }),
64835
64828
  /* @__PURE__ */ jsxRuntime.jsx(
64836
- DynamicIcon,
64829
+ "div",
64837
64830
  {
64838
- name: resource.icon,
64839
- size: 18,
64840
- className: "mt-0.5 shrink-0"
64831
+ className: cn(
64832
+ "grid gap-3",
64833
+ resourceItems.length > 1 ? "grid-cols-2" : "grid-cols-1"
64834
+ ),
64835
+ children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
64836
+ NavigationMenuLink,
64837
+ {
64838
+ href: resource.href,
64839
+ className: "group col-span-1 !flex !w-full min-w-0 items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
64840
+ children: [
64841
+ /* @__PURE__ */ jsxRuntime.jsx(
64842
+ DynamicIcon,
64843
+ {
64844
+ name: resource.icon,
64845
+ size: 18,
64846
+ className: "mt-0.5 shrink-0"
64847
+ }
64848
+ ),
64849
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64850
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: resource.title }),
64851
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: resource.description })
64852
+ ] })
64853
+ ]
64854
+ },
64855
+ resource.id
64856
+ ))
64841
64857
  }
64842
- ),
64843
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64844
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: resource.title }),
64845
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: resource.description })
64846
- ] })
64847
- ]
64848
- },
64849
- resource.id
64850
- )) })
64851
- ] }),
64852
- topicGroups.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: topicGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-5 last:mb-0", children: [
64853
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }) }),
64854
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
64855
- NavigationMenuLink,
64856
- {
64857
- href: topic.href,
64858
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
64859
- children: [
64860
- /* @__PURE__ */ jsxRuntime.jsx(
64861
- DynamicIcon,
64858
+ )
64859
+ ] }),
64860
+ hasTopicContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: visibleTopicGroups.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-5 last:mb-0", children: [
64861
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }) }),
64862
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
64863
+ NavigationMenuLink,
64862
64864
  {
64863
- name: topic.icon,
64864
- size: 14,
64865
- className: "shrink-0"
64866
- }
64867
- ),
64868
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
64869
- ]
64870
- },
64871
- topic.id
64872
- )) })
64873
- ] }, group.title)) })
64874
- ] });
64865
+ href: topic.href,
64866
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
64867
+ children: [
64868
+ /* @__PURE__ */ jsxRuntime.jsx(
64869
+ DynamicIcon,
64870
+ {
64871
+ name: topic.icon,
64872
+ size: 14,
64873
+ className: "shrink-0"
64874
+ }
64875
+ ),
64876
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: topic.title })
64877
+ ]
64878
+ },
64879
+ topic.id
64880
+ )) })
64881
+ ] }, group.title)) })
64882
+ ]
64883
+ }
64884
+ );
64885
+ };
64875
64886
  var GlobalMenu = ({
64876
64887
  featureCategories,
64877
64888
  regions,
64878
64889
  locationsTitle = "Locations",
64879
64890
  featuredHeroCard,
64880
64891
  optixFlowConfig
64881
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[1100px]", children: [
64882
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[280px_1fr] gap-6", children: [
64883
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64884
- pressable.Pressable,
64885
- {
64886
- href: featuredHeroCard.href,
64887
- className: cn(
64888
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64889
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64890
- ),
64891
- children: [
64892
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64893
- img$1.Img,
64894
- {
64895
- src: featuredHeroCard.image,
64896
- alt: featuredHeroCard.title,
64897
- className: "h-full w-full object-cover",
64898
- optixFlowConfig,
64899
- loading: "eager"
64900
- }
64901
- ) }),
64902
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64903
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64904
- featuredHeroCard.title,
64905
- /* @__PURE__ */ jsxRuntime.jsx(
64906
- DynamicIcon,
64892
+ }) => {
64893
+ const visibleFeatureCategories = featureCategories.filter(
64894
+ (category) => hasItems(category.features)
64895
+ );
64896
+ const visibleRegions = regions.filter((region) => hasItems(region.locations));
64897
+ const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
64898
+ const hasFeatureContent = hasItems(visibleFeatureCategories);
64899
+ const hasRegionContent = hasItems(visibleRegions);
64900
+ if (!hasFeaturedCard && !hasFeatureContent && !hasRegionContent) return null;
64901
+ return /* @__PURE__ */ jsxRuntime.jsxs(
64902
+ "div",
64903
+ {
64904
+ className: cn(
64905
+ PANEL_MAX_WIDTH_CLASS,
64906
+ hasFeatureContent && hasFeaturedCard ? "w-[1100px]" : hasFeatureContent || hasRegionContent ? "w-[900px]" : "w-[320px]"
64907
+ ),
64908
+ children: [
64909
+ (hasFeaturedCard || hasFeatureContent) && /* @__PURE__ */ jsxRuntime.jsxs(
64910
+ "div",
64911
+ {
64912
+ className: cn(
64913
+ "grid gap-6",
64914
+ hasFeaturedCard && hasFeatureContent ? "grid-cols-[280px_1fr]" : "grid-cols-1"
64915
+ ),
64916
+ children: [
64917
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx(
64918
+ "div",
64907
64919
  {
64908
- name: "lucide/arrow-right",
64909
- size: 16,
64910
- className: "transition-transform group-hover:translate-x-1"
64911
- }
64912
- )
64913
- ] }),
64914
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64915
- ] })
64916
- ]
64917
- }
64918
- ) }),
64919
- featureCategories.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex flex-col gap-6", children: featureCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [
64920
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: category.title }) }),
64921
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid grid-cols-3 gap-3", children: category.features.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
64922
- NavigationMenuLink,
64923
- {
64924
- href: feature.href,
64925
- className: "group col-span-1 !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64926
- children: [
64927
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-8 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 18 }) }),
64928
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64929
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: feature.title }),
64930
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: feature.description })
64931
- ] })
64932
- ]
64933
- },
64934
- feature.id
64935
- )) })
64936
- ] }, category.title)) })
64937
- ] }),
64938
- regions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
64939
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: locationsTitle }) }),
64940
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-4", children: regions.map((region) => /* @__PURE__ */ jsxRuntime.jsxs(
64941
- "div",
64942
- {
64943
- className: "col-span-1 flex w-full flex-col gap-3",
64944
- children: [
64945
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-left text-xs font-medium text-muted-foreground", children: region.title }),
64946
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
64947
- NavigationMenuLink,
64920
+ className: cn(
64921
+ "col-span-1 min-w-0",
64922
+ !hasFeatureContent && hasRegionContent && "max-w-[320px]"
64923
+ ),
64924
+ children: /* @__PURE__ */ jsxRuntime.jsx(
64925
+ FeaturedHeroCardPanel,
64926
+ {
64927
+ card: featuredHeroCard,
64928
+ optixFlowConfig,
64929
+ imageContainerClassName: "relative aspect-[4/3] w-full overflow-hidden"
64930
+ }
64931
+ )
64932
+ }
64933
+ ),
64934
+ hasFeatureContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex min-w-0 flex-col gap-6", children: visibleFeatureCategories.map((category) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-3", children: [
64935
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: category.title }) }),
64936
+ /* @__PURE__ */ jsxRuntime.jsx(
64937
+ "menu",
64938
+ {
64939
+ className: cn(
64940
+ "grid gap-3",
64941
+ hasFeaturedCard ? "grid-cols-3" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
64942
+ ),
64943
+ children: category.features.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
64944
+ NavigationMenuLink,
64945
+ {
64946
+ href: feature.href,
64947
+ className: "group col-span-1 !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64948
+ children: [
64949
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-8 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 18 }) }),
64950
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64951
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: feature.title }),
64952
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: feature.description })
64953
+ ] })
64954
+ ]
64955
+ },
64956
+ feature.id
64957
+ ))
64958
+ }
64959
+ )
64960
+ ] }, category.title)) })
64961
+ ]
64962
+ }
64963
+ ),
64964
+ hasRegionContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(hasFeaturedCard || hasFeatureContent ? "mt-6" : ""), children: [
64965
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 border-b border-border pb-2 text-left", children: /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: locationsTitle }) }),
64966
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-[repeat(auto-fit,minmax(150px,1fr))] gap-4", children: visibleRegions.map((region) => /* @__PURE__ */ jsxRuntime.jsxs(
64967
+ "div",
64948
64968
  {
64949
- href: location.href,
64950
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64969
+ className: "col-span-1 flex w-full min-w-0 flex-col gap-3",
64951
64970
  children: [
64952
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
64953
- DynamicIcon,
64971
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-left text-xs font-medium text-muted-foreground", children: region.title }),
64972
+ /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
64973
+ NavigationMenuLink,
64954
64974
  {
64955
- name: location.icon,
64956
- size: 16,
64957
- className: "shrink-0"
64958
- }
64959
- ) }),
64960
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: location.title })
64975
+ href: location.href,
64976
+ className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64977
+ children: [
64978
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
64979
+ DynamicIcon,
64980
+ {
64981
+ name: location.icon,
64982
+ size: 16,
64983
+ className: "shrink-0"
64984
+ }
64985
+ ) }),
64986
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: location.title })
64987
+ ]
64988
+ },
64989
+ location.title
64990
+ )) })
64961
64991
  ]
64962
64992
  },
64963
- location.title
64993
+ region.title
64964
64994
  )) })
64965
- ]
64966
- },
64967
- region.title
64968
- )) })
64969
- ] })
64970
- ] });
64995
+ ] })
64996
+ ]
64997
+ }
64998
+ );
64999
+ };
64971
65000
  var PartnersMenu = ({
64972
65001
  partnerCards,
64973
65002
  featuredHeroCard,
64974
65003
  optixFlowConfig
64975
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1000px] grid-cols-[2fr_1fr] gap-6", children: [
64976
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64977
- pressable.Pressable,
65004
+ }) => {
65005
+ const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
65006
+ const hasPartnerContent = hasItems(partnerCards);
65007
+ if (!hasFeaturedCard && !hasPartnerContent) return null;
65008
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65009
+ "div",
64978
65010
  {
64979
- href: featuredHeroCard.href,
64980
65011
  className: cn(
64981
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64982
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
65012
+ "grid gap-6",
65013
+ PANEL_MAX_WIDTH_CLASS,
65014
+ hasFeaturedCard && hasPartnerContent ? "w-[1000px] grid-cols-[2fr_1fr]" : hasPartnerContent ? "w-[680px] grid-cols-1" : "w-[360px] grid-cols-1"
64983
65015
  ),
64984
65016
  children: [
64985
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64986
- img$1.Img,
65017
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
65018
+ FeaturedHeroCardPanel,
64987
65019
  {
64988
- src: featuredHeroCard.image,
64989
- alt: featuredHeroCard.title,
64990
- className: cn(
64991
- "h-full w-full object-cover",
64992
- featuredHeroCard.imagePosition === "background" && "invert"
64993
- ),
65020
+ card: featuredHeroCard,
64994
65021
  optixFlowConfig,
64995
- loading: "eager"
65022
+ imageClassName: cn(
65023
+ featuredHeroCard.imagePosition === "background" && "invert"
65024
+ )
64996
65025
  }
64997
65026
  ) }),
64998
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64999
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
65000
- featuredHeroCard.title,
65001
- /* @__PURE__ */ jsxRuntime.jsx(
65002
- DynamicIcon,
65027
+ hasPartnerContent && /* @__PURE__ */ jsxRuntime.jsx(
65028
+ "div",
65029
+ {
65030
+ className: cn(
65031
+ "col-span-1 min-w-0 gap-3",
65032
+ hasFeaturedCard ? "flex flex-col" : "grid grid-cols-[repeat(auto-fit,minmax(240px,1fr))]"
65033
+ ),
65034
+ children: partnerCards.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
65035
+ NavigationMenuLink,
65003
65036
  {
65004
- name: "lucide/arrow-right",
65005
- size: 16,
65006
- className: "transition-transform group-hover:translate-x-1"
65007
- }
65008
- )
65009
- ] }),
65010
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
65011
- ] })
65037
+ href: card.href,
65038
+ className: "group !flex !w-full min-w-0 items-start gap-3 rounded-lg border border-border p-4 hover:bg-muted",
65039
+ children: [
65040
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 28, className: "shrink-0" }),
65041
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
65042
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-bold", children: card.title }),
65043
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: card.description })
65044
+ ] })
65045
+ ]
65046
+ },
65047
+ card.title
65048
+ ))
65049
+ }
65050
+ )
65012
65051
  ]
65013
65052
  }
65014
- ) }),
65015
- partnerCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex flex-col gap-3", children: partnerCards.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
65016
- NavigationMenuLink,
65017
- {
65018
- href: card.href,
65019
- className: "group !flex !w-full items-start gap-3 rounded-lg border border-border p-4 hover:bg-muted",
65020
- children: [
65021
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 28, className: "shrink-0" }),
65022
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
65023
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-bold", children: card.title }),
65024
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: card.description })
65025
- ] })
65026
- ]
65027
- },
65028
- card.title
65029
- )) })
65030
- ] });
65053
+ );
65054
+ };
65031
65055
  var MOBILE_BREAKPOINT = 1024;
65032
65056
  var NavbarEnterpriseMega = ({
65033
65057
  className,
@@ -65197,20 +65221,48 @@ var NavbarEnterpriseMega = ({
65197
65221
  )
65198
65222
  ] });
65199
65223
  };
65224
+ var hasItems2 = (items) => Array.isArray(items) && items.length > 0;
65225
+ var hasFeaturedHeroCardContent2 = (card) => Boolean(
65226
+ card && (card.title || card.subtitle || card.description || card.image)
65227
+ );
65228
+ var hasGenericDropdownContent = (item) => hasItems2(item.links) || Boolean(item.dropdownGroups?.some((group) => hasItems2(group.links)));
65229
+ var hasLayoutSpecificDropdownContent = (item) => {
65230
+ switch (item.layout) {
65231
+ case "solutions-with-platform":
65232
+ return hasItems2(item.solutionCards) || hasItems2(item.platformItems) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
65233
+ case "products-categorized":
65234
+ return Boolean(
65235
+ item.productCategories?.some(
65236
+ (category) => hasItems2(category.products)
65237
+ )
65238
+ ) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
65239
+ case "features-with-locations":
65240
+ return Boolean(
65241
+ item.featureCategories?.some(
65242
+ (category) => hasItems2(category.features)
65243
+ )
65244
+ ) || Boolean(item.regions?.some((region) => hasItems2(region.locations))) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
65245
+ case "partners-promotional":
65246
+ return hasItems2(item.partnerCards) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
65247
+ case "resources-with-topics":
65248
+ return hasItems2(item.resourceItems) || Boolean(
65249
+ item.topicGroups?.some((group) => hasItems2(group.topics))
65250
+ ) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
65251
+ default:
65252
+ return false;
65253
+ }
65254
+ };
65255
+ var hasDropdownContent = (item) => hasLayoutSpecificDropdownContent(item) || hasGenericDropdownContent(item);
65200
65256
  var DesktopMenuItem2 = ({
65201
65257
  item,
65202
65258
  index,
65203
65259
  optixFlowConfig
65204
65260
  }) => {
65205
- const hasDropdown = Boolean(item.layout);
65206
- const effectiveLayout = item.layout || "solutions-with-platform";
65261
+ const hasDropdown = hasDropdownContent(item);
65207
65262
  if (hasDropdown) {
65208
65263
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
65209
65264
  /* @__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 }),
65210
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(
65211
- { ...item, layout: effectiveLayout },
65212
- optixFlowConfig
65213
- ) })
65265
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(item, optixFlowConfig) })
65214
65266
  ] }, `desktop-menu-item-${index}`);
65215
65267
  }
65216
65268
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -65223,6 +65275,9 @@ var DesktopMenuItem2 = ({
65223
65275
  ) }, `desktop-menu-item-${index}`);
65224
65276
  };
65225
65277
  var renderDropdownContent = (item, optixFlowConfig) => {
65278
+ if (!hasLayoutSpecificDropdownContent(item)) {
65279
+ return renderGenericDropdownContent(item, optixFlowConfig);
65280
+ }
65226
65281
  switch (item.layout) {
65227
65282
  case "solutions-with-platform":
65228
65283
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -65271,73 +65326,287 @@ var renderDropdownContent = (item, optixFlowConfig) => {
65271
65326
  resourceItems: item.resourceItems ?? [],
65272
65327
  resourcesTitle: item.resourcesTitle,
65273
65328
  topicGroups: item.topicGroups ?? [],
65274
- featuredHeroCard: item.featuredHeroCard
65329
+ featuredHeroCard: item.featuredHeroCard,
65330
+ optixFlowConfig
65275
65331
  }
65276
65332
  );
65277
65333
  default:
65278
- return null;
65334
+ return renderGenericDropdownContent(item, optixFlowConfig);
65279
65335
  }
65280
65336
  };
65281
- var renderMobileDropdownContent = (item) => {
65282
- switch (item.layout) {
65283
- case "solutions-with-platform":
65284
- 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: [
65285
- /* @__PURE__ */ jsxRuntime.jsx(
65286
- pressable.Pressable,
65337
+ var renderGenericDropdownContent = (item, optixFlowConfig) => {
65338
+ const links = item.links ?? [];
65339
+ const groups = (item.dropdownGroups ?? []).filter(
65340
+ (group) => hasItems2(group.links)
65341
+ );
65342
+ const hasLinks = hasItems2(links);
65343
+ const hasGroups = hasItems2(groups);
65344
+ if (!hasLinks && !hasGroups) return null;
65345
+ const renderGenericLink = (link, key) => {
65346
+ const iconName = link.icon ?? link.iconName;
65347
+ const label = typeof link.label === "string" ? link.label : "";
65348
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65349
+ NavigationMenuLink,
65350
+ {
65351
+ href: getLinkUrl(link),
65352
+ className: "group !flex !w-full min-w-0 items-start gap-3 rounded-lg p-3 text-left hover:bg-muted",
65353
+ children: [
65354
+ link.image ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex size-10 shrink-0 items-center justify-center overflow-hidden rounded bg-muted", children: /* @__PURE__ */ jsxRuntime.jsx(
65355
+ img$1.Img,
65356
+ {
65357
+ src: link.image,
65358
+ alt: label,
65359
+ className: "h-full w-full object-cover",
65360
+ optixFlowConfig,
65361
+ loading: "eager"
65362
+ }
65363
+ ) }) : iconName ? /* @__PURE__ */ jsxRuntime.jsx(
65364
+ DynamicIcon,
65365
+ {
65366
+ name: iconName,
65367
+ size: 18,
65368
+ className: "mt-0.5 shrink-0"
65369
+ }
65370
+ ) : null,
65371
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
65372
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: link.label }),
65373
+ link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: link.description })
65374
+ ] })
65375
+ ]
65376
+ },
65377
+ key
65378
+ );
65379
+ };
65380
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65381
+ "div",
65382
+ {
65383
+ className: cn(
65384
+ "grid max-w-[calc(100vw-4rem)] gap-6",
65385
+ hasLinks && hasGroups ? "w-[900px] grid-cols-[minmax(0,1fr)_minmax(220px,0.45fr)]" : hasGroups ? "w-[780px] grid-cols-1" : "w-[420px] grid-cols-1"
65386
+ ),
65387
+ children: [
65388
+ hasGroups && /* @__PURE__ */ jsxRuntime.jsx(
65389
+ "div",
65287
65390
  {
65288
- href: solution.href,
65289
- className: "block pt-4 text-sm font-medium",
65290
- children: solution.title
65391
+ className: cn(
65392
+ "grid min-w-0 gap-5",
65393
+ !hasLinks && groups.length > 1 ? "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]" : "grid-cols-1"
65394
+ ),
65395
+ children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
65396
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 border-b border-border pb-2 text-left", children: [
65397
+ /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.label }),
65398
+ group.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: group.description })
65399
+ ] }),
65400
+ /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: group.links.map(
65401
+ (link, linkIndex) => renderGenericLink(link, `${groupIndex}-${linkIndex}`)
65402
+ ) })
65403
+ ] }, groupIndex))
65291
65404
  }
65292
65405
  ),
65293
- solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
65406
+ hasLinks && /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid min-w-0 gap-1.5", children: links.map((link, linkIndex) => renderGenericLink(link, linkIndex)) })
65407
+ ]
65408
+ }
65409
+ );
65410
+ };
65411
+ var renderMobileFeaturedHeroCard = (card) => {
65412
+ if (!hasFeaturedHeroCardContent2(card) || !card) return null;
65413
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65414
+ pressable.Pressable,
65415
+ {
65416
+ href: card.href,
65417
+ className: cn(
65418
+ "block rounded-lg p-4 text-sm font-medium text-primary-foreground",
65419
+ card.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
65420
+ ),
65421
+ children: [
65422
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: card.title }),
65423
+ card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs leading-relaxed opacity-90", children: card.description })
65424
+ ]
65425
+ }
65426
+ );
65427
+ };
65428
+ var renderMobileDropdownContent = (item) => {
65429
+ if (!hasLayoutSpecificDropdownContent(item)) {
65430
+ return renderMobileGenericDropdownContent(item);
65431
+ }
65432
+ switch (item.layout) {
65433
+ case "solutions-with-platform":
65434
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-2", children: [
65435
+ renderMobileFeaturedHeroCard(item.featuredHeroCard),
65436
+ item.platformItems?.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
65294
65437
  pressable.Pressable,
65295
65438
  {
65296
- href: subpage.href,
65439
+ href: technology.href,
65297
65440
  className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65298
65441
  children: [
65299
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subpage.icon, size: 14 }),
65300
- subpage.title
65442
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: technology.icon, size: 14 }),
65443
+ technology.title
65301
65444
  ]
65302
65445
  },
65303
- subpage.id
65304
- ))
65305
- ] }, solution.id)) });
65446
+ technology.id
65447
+ )),
65448
+ item.solutionCards?.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
65449
+ /* @__PURE__ */ jsxRuntime.jsx(
65450
+ pressable.Pressable,
65451
+ {
65452
+ href: solution.href,
65453
+ className: "block pt-4 text-sm font-medium",
65454
+ children: solution.title
65455
+ }
65456
+ ),
65457
+ (solution.subpages ?? []).map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
65458
+ pressable.Pressable,
65459
+ {
65460
+ href: subpage.href,
65461
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65462
+ children: [
65463
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subpage.icon, size: 14 }),
65464
+ subpage.title
65465
+ ]
65466
+ },
65467
+ subpage.id
65468
+ ))
65469
+ ] }, solution.id))
65470
+ ] });
65306
65471
  case "products-categorized":
65307
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: item.productCategories?.flatMap(
65308
- (category) => category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsx(
65472
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
65473
+ renderMobileFeaturedHeroCard(item.featuredHeroCard),
65474
+ item.productCategories?.flatMap(
65475
+ (category) => (category.products ?? []).map((product) => /* @__PURE__ */ jsxRuntime.jsx(
65476
+ pressable.Pressable,
65477
+ {
65478
+ href: product.href,
65479
+ className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
65480
+ children: product.title
65481
+ },
65482
+ product.id
65483
+ ))
65484
+ )
65485
+ ] });
65486
+ case "resources-with-topics":
65487
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
65488
+ renderMobileFeaturedHeroCard(item.featuredHeroCard),
65489
+ item.resourceItems?.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
65309
65490
  pressable.Pressable,
65310
65491
  {
65311
- href: product.href,
65492
+ href: resource.href,
65312
65493
  className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
65313
- children: product.title
65494
+ children: [
65495
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: resource.icon, size: 14 }),
65496
+ resource.title
65497
+ ]
65498
+ },
65499
+ resource.id
65500
+ )),
65501
+ item.topicGroups?.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
65502
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }),
65503
+ group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
65504
+ pressable.Pressable,
65505
+ {
65506
+ href: topic.href,
65507
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65508
+ children: [
65509
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14 }),
65510
+ topic.title
65511
+ ]
65512
+ },
65513
+ topic.id
65514
+ ))
65515
+ ] }, group.title))
65516
+ ] });
65517
+ case "features-with-locations":
65518
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
65519
+ renderMobileFeaturedHeroCard(item.featuredHeroCard),
65520
+ item.featureCategories?.flatMap(
65521
+ (category) => (category.features ?? []).map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
65522
+ pressable.Pressable,
65523
+ {
65524
+ href: feature.href,
65525
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65526
+ children: [
65527
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 14 }),
65528
+ feature.title
65529
+ ]
65530
+ },
65531
+ feature.id
65532
+ ))
65533
+ ),
65534
+ item.regions?.map((region) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
65535
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: region.title }),
65536
+ region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
65537
+ pressable.Pressable,
65538
+ {
65539
+ href: location.href,
65540
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65541
+ children: [
65542
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: location.icon, size: 14 }),
65543
+ location.title
65544
+ ]
65545
+ },
65546
+ location.title
65547
+ ))
65548
+ ] }, region.title))
65549
+ ] });
65550
+ case "partners-promotional":
65551
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
65552
+ renderMobileFeaturedHeroCard(item.featuredHeroCard),
65553
+ item.partnerCards?.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
65554
+ pressable.Pressable,
65555
+ {
65556
+ href: card.href,
65557
+ className: "flex items-start gap-2 pl-4 text-sm text-muted-foreground",
65558
+ children: [
65559
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 14, className: "mt-0.5" }),
65560
+ /* @__PURE__ */ jsxRuntime.jsx("span", { children: card.title })
65561
+ ]
65314
65562
  },
65315
- product.id
65563
+ card.title
65316
65564
  ))
65317
- ) });
65318
- case "resources-with-topics":
65319
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: item.resourceItems?.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
65565
+ ] });
65566
+ default:
65567
+ return renderMobileGenericDropdownContent(item);
65568
+ }
65569
+ };
65570
+ var renderMobileGenericDropdownContent = (item) => {
65571
+ const links = item.links ?? [];
65572
+ const groups = (item.dropdownGroups ?? []).filter(
65573
+ (group) => hasItems2(group.links)
65574
+ );
65575
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
65576
+ groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
65577
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.label }),
65578
+ group.links.map((link, linkIndex) => {
65579
+ const iconName = link.icon ?? link.iconName;
65580
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65581
+ pressable.Pressable,
65582
+ {
65583
+ href: getLinkUrl(link),
65584
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65585
+ children: [
65586
+ iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 14 }),
65587
+ link.label
65588
+ ]
65589
+ },
65590
+ `${groupIndex}-${linkIndex}`
65591
+ );
65592
+ })
65593
+ ] }, groupIndex)),
65594
+ links.map((link, linkIndex) => {
65595
+ const iconName = link.icon ?? link.iconName;
65596
+ return /* @__PURE__ */ jsxRuntime.jsxs(
65320
65597
  pressable.Pressable,
65321
65598
  {
65322
- href: resource.href,
65323
- className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
65599
+ href: getLinkUrl(link),
65600
+ className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65324
65601
  children: [
65325
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: resource.icon, size: 14 }),
65326
- resource.title
65602
+ iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 14 }),
65603
+ link.label
65327
65604
  ]
65328
65605
  },
65329
- resource.id
65330
- )) });
65331
- case "features-with-locations":
65332
- case "partners-promotional":
65333
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: "#", children: [
65334
- "View all",
65335
- " ",
65336
- typeof item.label === "string" ? item.label.toLowerCase() : "items"
65337
- ] }) });
65338
- default:
65339
- return null;
65340
- }
65606
+ linkIndex
65607
+ );
65608
+ })
65609
+ ] });
65341
65610
  };
65342
65611
  var MobileNavigationMenu = ({
65343
65612
  open,
@@ -65384,7 +65653,7 @@ var MobileNavigationMenu = ({
65384
65653
  title: "Mobile Navigation",
65385
65654
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
65386
65655
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks.map((item, index) => {
65387
- const hasDropdown = Boolean(item.layout);
65656
+ const hasDropdown = hasDropdownContent(item);
65388
65657
  if (hasDropdown) {
65389
65658
  return /* @__PURE__ */ jsxRuntime.jsxs(
65390
65659
  AccordionItem,