@opensite/ui 3.7.9 → 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
@@ -15069,7 +15069,7 @@ function ContactDemo({
15069
15069
  as: "h2",
15070
15070
  text: heading,
15071
15071
  className: cn(
15072
- "text-5xl lg:text-6xl xl:text-7xl text-pretty font-bold text-left md:text-center",
15072
+ "justify-start text-left text-5xl font-bold text-pretty md:justify-center md:text-center lg:text-6xl xl:text-7xl",
15073
15073
  headingClassName
15074
15074
  ),
15075
15075
  animateBy: "words",
@@ -35827,7 +35827,6 @@ function BlogCardsTaglineCta({
35827
35827
  postsSlot,
35828
35828
  readMoreText,
35829
35829
  className,
35830
- containerClassName,
35831
35830
  headerClassName,
35832
35831
  badgeClassName,
35833
35832
  headingClassName,
@@ -35837,7 +35836,8 @@ function BlogCardsTaglineCta({
35837
35836
  postCardClassName,
35838
35837
  optixFlowConfig,
35839
35838
  background,
35840
- spacing,
35839
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
35840
+ spacing = "lg",
35841
35841
  pattern,
35842
35842
  patternOpacity
35843
35843
  }) {
@@ -35881,7 +35881,7 @@ function BlogCardsTaglineCta({
35881
35881
  Card,
35882
35882
  {
35883
35883
  className: cn(
35884
- "grid grid-rows-[auto_auto_1fr_auto] overflow-hidden pt-0",
35884
+ "grid grid-rows-[auto_auto_1fr_auto] gap-4 overflow-hidden pt-0",
35885
35885
  postCardClassName
35886
35886
  ),
35887
35887
  children: [
@@ -35896,13 +35896,14 @@ function BlogCardsTaglineCta({
35896
35896
  src: post.image,
35897
35897
  alt: postTitle,
35898
35898
  className: "h-full w-full object-cover object-center",
35899
- optixFlowConfig
35899
+ optixFlowConfig,
35900
+ loading: "eager"
35900
35901
  }
35901
35902
  )
35902
35903
  }
35903
35904
  ) }),
35904
- /* @__PURE__ */ jsxRuntime.jsx(CardHeader, { children: post.title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold hover:underline md:text-xl", children: /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: postHref, children: post.title }) }) }),
35905
- /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: postSummary && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: postSummary }) }),
35905
+ /* @__PURE__ */ jsxRuntime.jsx(CardHeader, { className: post.image ? "pt-0" : "pt-6", children: post.title && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-semibold hover:underline md:text-xl", children: /* @__PURE__ */ jsxRuntime.jsx(pressable.Pressable, { href: postHref, children: post.title }) }) }),
35906
+ /* @__PURE__ */ jsxRuntime.jsx(CardContent, { children: postSummary && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-70 line-clamp-4", children: postSummary }) }),
35906
35907
  /* @__PURE__ */ jsxRuntime.jsx(CardFooter, { children: readMoreText && /* @__PURE__ */ jsxRuntime.jsxs(
35907
35908
  pressable.Pressable,
35908
35909
  {
@@ -35936,60 +35937,52 @@ function BlogCardsTaglineCta({
35936
35937
  className: cn(className),
35937
35938
  pattern,
35938
35939
  patternOpacity,
35939
- children: /* @__PURE__ */ jsxRuntime.jsxs(
35940
- "div",
35941
- {
35942
- className: cn(
35943
- "container mx-auto flex flex-col items-center gap-16 lg:px-16",
35944
- containerClassName
35945
- ),
35946
- children: [
35947
- /* @__PURE__ */ jsxRuntime.jsxs(
35948
- "div",
35949
- {
35950
- className: cn(
35951
- "text-center flex flex-col items-center px-4 md:px-0",
35952
- headerClassName
35953
- ),
35954
- children: [
35955
- badge && (typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "secondary", className: cn("mb-6", badgeClassName), children: badge }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", badgeClassName), children: badge })),
35956
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
35957
- "h2",
35958
- {
35959
- className: cn(
35960
- "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl",
35961
- headingClassName
35962
- ),
35963
- children: heading
35964
- }
35965
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
35966
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
35967
- "p",
35968
- {
35969
- className: cn(
35970
- "mb-8 text-muted-foreground md:text-base lg:max-w-2xl lg:text-lg text-balance",
35971
- descriptionClassName
35972
- ),
35973
- children: description
35974
- }
35975
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
35976
- ctaActionContent
35977
- ]
35978
- }
35940
+ containerClassName,
35941
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto flex flex-col items-center gap-16 lg:px-16", children: [
35942
+ /* @__PURE__ */ jsxRuntime.jsxs(
35943
+ "div",
35944
+ {
35945
+ className: cn(
35946
+ "text-center flex flex-col items-center px-4 md:px-0",
35947
+ headerClassName
35979
35948
  ),
35980
- /* @__PURE__ */ jsxRuntime.jsx(
35981
- "div",
35982
- {
35983
- className: cn(
35984
- "grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8",
35985
- postsClassName
35986
- ),
35987
- children: postsContent
35988
- }
35989
- )
35990
- ]
35991
- }
35992
- )
35949
+ children: [
35950
+ badge && (typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("mb-6", badgeClassName), children: badge }) : badge),
35951
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
35952
+ "h2",
35953
+ {
35954
+ className: cn(
35955
+ "mb-3 text-3xl font-semibold text-pretty md:mb-4 md:text-4xl lg:mb-6 lg:max-w-3xl lg:text-5xl",
35956
+ headingClassName
35957
+ ),
35958
+ children: heading
35959
+ }
35960
+ ) : heading),
35961
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
35962
+ "p",
35963
+ {
35964
+ className: cn(
35965
+ "mb-8 md:text-base max-w-full md:max-w-md lg:text-lg text-balance",
35966
+ descriptionClassName
35967
+ ),
35968
+ children: description
35969
+ }
35970
+ ) : description),
35971
+ ctaActionContent
35972
+ ]
35973
+ }
35974
+ ),
35975
+ /* @__PURE__ */ jsxRuntime.jsx(
35976
+ "div",
35977
+ {
35978
+ className: cn(
35979
+ "grid gap-6 md:grid-cols-2 lg:grid-cols-3 lg:gap-8",
35980
+ postsClassName
35981
+ ),
35982
+ children: postsContent
35983
+ }
35984
+ )
35985
+ ] })
35993
35986
  }
35994
35987
  );
35995
35988
  }
@@ -64542,6 +64535,64 @@ var NavbarMegaMenu = ({
64542
64535
  }
64543
64536
  );
64544
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
+ };
64545
64596
  var SolutionsMenu = ({
64546
64597
  solutionCards,
64547
64598
  platformItems,
@@ -64549,492 +64600,458 @@ var SolutionsMenu = ({
64549
64600
  featuredHeroCard,
64550
64601
  optixFlowConfig
64551
64602
  }) => {
64552
- const featuredCard = featuredHeroCard ? /* @__PURE__ */ jsxRuntime.jsxs(
64553
- pressable.Pressable,
64554
- {
64555
- href: featuredHeroCard.href,
64556
- className: cn(
64557
- "group flex h-full min-h-[420px] flex-col overflow-hidden rounded-lg text-primary-foreground",
64558
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64559
- ),
64560
- children: [
64561
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-col justify-between p-5", children: [
64562
- featuredHeroCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: featuredHeroCard.subtitle }),
64563
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
64564
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64565
- featuredHeroCard.title,
64566
- /* @__PURE__ */ jsxRuntime.jsx(
64567
- DynamicIcon,
64568
- {
64569
- name: "lucide/arrow-right",
64570
- size: 16,
64571
- className: "transition-transform group-hover:translate-x-1"
64572
- }
64573
- )
64574
- ] }),
64575
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64576
- ] })
64577
- ] }),
64578
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64579
- img$1.Img,
64580
- {
64581
- src: featuredHeroCard.image,
64582
- alt: featuredHeroCard.title,
64583
- className: "h-full w-full object-cover",
64584
- optixFlowConfig,
64585
- loading: "eager"
64586
- }
64587
- ) })
64588
- ]
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"
64589
64618
  }
64590
64619
  ) : null;
64591
- 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: [
64592
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 }) }),
64593
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-2", children: platformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
64594
- NavigationMenuLink,
64622
+ /* @__PURE__ */ jsxRuntime.jsx(
64623
+ "div",
64595
64624
  {
64596
- href: technology.href,
64597
- className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
64598
- children: [
64599
- /* @__PURE__ */ jsxRuntime.jsx(
64600
- DynamicIcon,
64601
- {
64602
- name: technology.icon,
64603
- size: 16,
64604
- className: "shrink-0"
64605
- }
64606
- ),
64607
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
64608
- ]
64609
- },
64610
- technology.id
64611
- )) })
64612
- ] }) : null;
64613
- const solutionSection = solutionCards.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
64614
- "div",
64615
- {
64616
- className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
64617
- children: [
64618
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
64619
- pressable.Pressable,
64620
- {
64621
- href: solution.href,
64622
- className: "group flex min-w-0 flex-col text-left",
64623
- children: [
64624
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
64625
- /* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
64626
- /* @__PURE__ */ jsxRuntime.jsx(
64627
- DynamicIcon,
64628
- {
64629
- name: "lucide/arrow-right",
64630
- size: 14,
64631
- className: "shrink-0 transition-transform group-hover:translate-x-1"
64632
- }
64633
- )
64634
- ] }),
64635
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
64636
- ]
64637
- }
64638
- ) }),
64639
- /* @__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(
64640
64630
  NavigationMenuLink,
64641
64631
  {
64642
- href: subpage.href,
64643
- 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",
64644
64634
  children: [
64645
64635
  /* @__PURE__ */ jsxRuntime.jsx(
64646
64636
  DynamicIcon,
64647
64637
  {
64648
- name: subpage.icon,
64649
- size: 14,
64638
+ name: technology.icon,
64639
+ size: 16,
64650
64640
  className: "shrink-0"
64651
64641
  }
64652
64642
  ),
64653
- /* @__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 })
64654
64644
  ]
64655
64645
  },
64656
- subpage.id
64657
- )) })
64658
- ]
64659
- },
64660
- solution.id
64661
- )) }) : null;
64662
- if (featuredCard) {
64663
- 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: [
64664
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: featuredCard }),
64665
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
64666
- platformSection,
64667
- solutionSection
64668
- ] })
64669
- ] });
64670
- }
64671
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1200px] max-w-[calc(100vw-4rem)] grid-cols-2 gap-4", children: [
64672
- platformSection,
64673
- solutionCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-2 grid grid-cols-4 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
64674
- "div",
64675
- {
64676
- className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
64677
- children: [
64678
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
64679
- pressable.Pressable,
64680
- {
64681
- href: solution.href,
64682
- className: "group flex min-w-0 flex-col text-left",
64683
- children: [
64684
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
64685
- /* @__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: [
64686
64690
  /* @__PURE__ */ jsxRuntime.jsx(
64687
64691
  DynamicIcon,
64688
64692
  {
64689
- name: "lucide/arrow-right",
64693
+ name: subpage.icon,
64690
64694
  size: 14,
64691
- className: "shrink-0 transition-transform group-hover:translate-x-1"
64695
+ className: "shrink-0"
64692
64696
  }
64693
- )
64694
- ] }),
64695
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
64696
- ]
64697
- }
64698
- ) }),
64699
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
64700
- NavigationMenuLink,
64701
- {
64702
- href: subpage.href,
64703
- className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64704
- children: [
64705
- /* @__PURE__ */ jsxRuntime.jsx(
64706
- DynamicIcon,
64707
- {
64708
- name: subpage.icon,
64709
- size: 14,
64710
- className: "shrink-0"
64711
- }
64712
- ),
64713
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
64714
- ]
64715
- },
64716
- subpage.id
64717
- )) })
64718
- ]
64719
- },
64720
- solution.id
64721
- )) })
64722
- ] });
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
+ );
64723
64726
  };
64724
64727
  var ProductsMenu = ({
64725
64728
  productCategories,
64726
64729
  featuredHeroCard,
64727
64730
  optixFlowConfig
64728
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[320px_1fr] gap-6", children: [
64729
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64730
- 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",
64731
64740
  {
64732
- href: featuredHeroCard.href,
64733
64741
  className: cn(
64734
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64735
- 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"
64736
64745
  ),
64737
64746
  children: [
64738
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64739
- img$1.Img,
64747
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
64748
+ FeaturedHeroCardPanel,
64740
64749
  {
64741
- src: featuredHeroCard.image,
64742
- alt: featuredHeroCard.title,
64743
- className: "h-full w-full object-cover",
64744
- optixFlowConfig,
64745
- loading: "eager"
64750
+ card: featuredHeroCard,
64751
+ optixFlowConfig
64746
64752
  }
64747
64753
  ) }),
64748
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64749
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64750
- featuredHeroCard.title,
64751
- /* @__PURE__ */ jsxRuntime.jsx(
64752
- DynamicIcon,
64753
- {
64754
- name: "lucide/arrow-right",
64755
- size: 16,
64756
- className: "transition-transform group-hover:translate-x-1"
64757
- }
64758
- )
64759
- ] }),
64760
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64761
- ] })
64762
- ]
64763
- }
64764
- ) }),
64765
- 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: [
64766
- /* @__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 }) }),
64767
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid grid-cols-3 gap-3", children: category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsxs(
64768
- NavigationMenuLink,
64769
- {
64770
- href: product.href,
64771
- className: "group col-span-1 !flex !w-full items-center gap-3 rounded-lg p-3 text-left hover:bg-muted",
64772
- children: [
64773
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex size-12 shrink-0 items-center justify-center overflow-hidden rounded", children: /* @__PURE__ */ jsxRuntime.jsx(
64774
- 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",
64775
64758
  {
64776
- src: product.image,
64777
- alt: product.title,
64778
- className: "h-full w-full object-cover",
64779
- optixFlowConfig,
64780
- 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
+ ))
64781
64787
  }
64782
- ) }),
64783
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64784
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: product.title }),
64785
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: product.description })
64786
- ] })
64787
- ]
64788
- },
64789
- product.id
64790
- )) })
64791
- ] }, category.title)) })
64792
- ] });
64788
+ )
64789
+ ] }, category.title)) })
64790
+ ]
64791
+ }
64792
+ );
64793
+ };
64793
64794
  var ResourcesMenu = ({
64794
64795
  resourceItems,
64795
64796
  resourcesTitle = "Resources",
64796
64797
  topicGroups,
64797
- featuredHeroCard
64798
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1100px] grid-cols-[280px_1fr_220px] gap-6", children: [
64799
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64800
- 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",
64801
64810
  {
64802
- href: featuredHeroCard.href,
64803
64811
  className: cn(
64804
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64805
- 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"
64806
64815
  ),
64807
64816
  children: [
64808
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64809
- img$1.Img,
64817
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
64818
+ FeaturedHeroCardPanel,
64810
64819
  {
64811
- src: featuredHeroCard.image,
64812
- alt: featuredHeroCard.title,
64813
- className: "h-full w-full object-cover invert",
64814
- loading: "eager"
64820
+ card: featuredHeroCard,
64821
+ optixFlowConfig,
64822
+ imageContainerClassName: "relative aspect-[4/3] w-full overflow-hidden",
64823
+ imageClassName: "invert"
64815
64824
  }
64816
64825
  ) }),
64817
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64818
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64819
- featuredHeroCard.title,
64820
- /* @__PURE__ */ jsxRuntime.jsx(
64821
- DynamicIcon,
64822
- {
64823
- name: "lucide/arrow-right",
64824
- size: 16,
64825
- className: "transition-transform group-hover:translate-x-1"
64826
- }
64827
- )
64828
- ] }),
64829
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
64830
- ] })
64831
- ]
64832
- }
64833
- ) }),
64834
- resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
64835
- /* @__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 }) }),
64836
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
64837
- NavigationMenuLink,
64838
- {
64839
- href: resource.href,
64840
- className: "group col-span-1 !flex !w-full items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
64841
- 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 }) }),
64842
64828
  /* @__PURE__ */ jsxRuntime.jsx(
64843
- DynamicIcon,
64829
+ "div",
64844
64830
  {
64845
- name: resource.icon,
64846
- size: 18,
64847
- 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
+ ))
64848
64857
  }
64849
- ),
64850
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64851
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: resource.title }),
64852
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: resource.description })
64853
- ] })
64854
- ]
64855
- },
64856
- resource.id
64857
- )) })
64858
- ] }),
64859
- 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: [
64860
- /* @__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 }) }),
64861
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
64862
- NavigationMenuLink,
64863
- {
64864
- href: topic.href,
64865
- className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
64866
- children: [
64867
- /* @__PURE__ */ jsxRuntime.jsx(
64868
- 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,
64869
64864
  {
64870
- name: topic.icon,
64871
- size: 14,
64872
- className: "shrink-0"
64873
- }
64874
- ),
64875
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 text-sm font-medium", children: topic.title })
64876
- ]
64877
- },
64878
- topic.id
64879
- )) })
64880
- ] }, group.title)) })
64881
- ] });
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
+ };
64882
64886
  var GlobalMenu = ({
64883
64887
  featureCategories,
64884
64888
  regions,
64885
64889
  locationsTitle = "Locations",
64886
64890
  featuredHeroCard,
64887
64891
  optixFlowConfig
64888
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-[1100px]", children: [
64889
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-[280px_1fr] gap-6", children: [
64890
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64891
- pressable.Pressable,
64892
- {
64893
- href: featuredHeroCard.href,
64894
- className: cn(
64895
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64896
- featuredHeroCard.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
64897
- ),
64898
- children: [
64899
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-[4/3] w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64900
- img$1.Img,
64901
- {
64902
- src: featuredHeroCard.image,
64903
- alt: featuredHeroCard.title,
64904
- className: "h-full w-full object-cover",
64905
- optixFlowConfig,
64906
- loading: "eager"
64907
- }
64908
- ) }),
64909
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
64910
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
64911
- featuredHeroCard.title,
64912
- /* @__PURE__ */ jsxRuntime.jsx(
64913
- 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",
64914
64919
  {
64915
- name: "lucide/arrow-right",
64916
- size: 16,
64917
- className: "transition-transform group-hover:translate-x-1"
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
+ )
64918
64932
  }
64919
- )
64920
- ] }),
64921
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
64922
- ] })
64923
- ]
64924
- }
64925
- ) }),
64926
- 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: [
64927
- /* @__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 }) }),
64928
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid grid-cols-3 gap-3", children: category.features.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
64929
- NavigationMenuLink,
64930
- {
64931
- href: feature.href,
64932
- className: "group col-span-1 !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
64933
- children: [
64934
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-8 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 18 }) }),
64935
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
64936
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-medium", children: feature.title }),
64937
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: feature.description })
64938
- ] })
64939
- ]
64940
- },
64941
- feature.id
64942
- )) })
64943
- ] }, category.title)) })
64944
- ] }),
64945
- regions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-6", children: [
64946
- /* @__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 }) }),
64947
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-4 gap-4", children: regions.map((region) => /* @__PURE__ */ jsxRuntime.jsxs(
64948
- "div",
64949
- {
64950
- className: "col-span-1 flex w-full flex-col gap-3",
64951
- children: [
64952
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-left text-xs font-medium text-muted-foreground", children: region.title }),
64953
- /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
64954
- NavigationMenuLink,
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",
64955
64968
  {
64956
- href: location.href,
64957
- 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",
64958
64970
  children: [
64959
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
64960
- 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,
64961
64974
  {
64962
- name: location.icon,
64963
- size: 16,
64964
- className: "shrink-0"
64965
- }
64966
- ) }),
64967
- /* @__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
+ )) })
64968
64991
  ]
64969
64992
  },
64970
- location.title
64993
+ region.title
64971
64994
  )) })
64972
- ]
64973
- },
64974
- region.title
64975
- )) })
64976
- ] })
64977
- ] });
64995
+ ] })
64996
+ ]
64997
+ }
64998
+ );
64999
+ };
64978
65000
  var PartnersMenu = ({
64979
65001
  partnerCards,
64980
65002
  featuredHeroCard,
64981
65003
  optixFlowConfig
64982
- }) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid w-[1000px] grid-cols-[2fr_1fr] gap-6", children: [
64983
- featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1", children: /* @__PURE__ */ jsxRuntime.jsxs(
64984
- 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",
64985
65010
  {
64986
- href: featuredHeroCard.href,
64987
65011
  className: cn(
64988
- "group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
64989
- 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"
64990
65015
  ),
64991
65016
  children: [
64992
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-video w-full overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
64993
- img$1.Img,
65017
+ hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
65018
+ FeaturedHeroCardPanel,
64994
65019
  {
64995
- src: featuredHeroCard.image,
64996
- alt: featuredHeroCard.title,
64997
- className: cn(
64998
- "h-full w-full object-cover",
64999
- featuredHeroCard.imagePosition === "background" && "invert"
65000
- ),
65020
+ card: featuredHeroCard,
65001
65021
  optixFlowConfig,
65002
- loading: "eager"
65022
+ imageClassName: cn(
65023
+ featuredHeroCard.imagePosition === "background" && "invert"
65024
+ )
65003
65025
  }
65004
65026
  ) }),
65005
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col p-5", children: [
65006
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
65007
- featuredHeroCard.title,
65008
- /* @__PURE__ */ jsxRuntime.jsx(
65009
- 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,
65010
65036
  {
65011
- name: "lucide/arrow-right",
65012
- size: 16,
65013
- className: "transition-transform group-hover:translate-x-1"
65014
- }
65015
- )
65016
- ] }),
65017
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
65018
- ] })
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
+ )
65019
65051
  ]
65020
65052
  }
65021
- ) }),
65022
- partnerCards.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 flex flex-col gap-3", children: partnerCards.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
65023
- NavigationMenuLink,
65024
- {
65025
- href: card.href,
65026
- className: "group !flex !w-full items-start gap-3 rounded-lg border border-border p-4 hover:bg-muted",
65027
- children: [
65028
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 28, className: "shrink-0" }),
65029
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
65030
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-bold", children: card.title }),
65031
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: card.description })
65032
- ] })
65033
- ]
65034
- },
65035
- card.title
65036
- )) })
65037
- ] });
65053
+ );
65054
+ };
65038
65055
  var MOBILE_BREAKPOINT = 1024;
65039
65056
  var NavbarEnterpriseMega = ({
65040
65057
  className,
@@ -65204,20 +65221,48 @@ var NavbarEnterpriseMega = ({
65204
65221
  )
65205
65222
  ] });
65206
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);
65207
65256
  var DesktopMenuItem2 = ({
65208
65257
  item,
65209
65258
  index,
65210
65259
  optixFlowConfig
65211
65260
  }) => {
65212
- const hasDropdown = Boolean(item.layout);
65213
- const effectiveLayout = item.layout || "solutions-with-platform";
65261
+ const hasDropdown = hasDropdownContent(item);
65214
65262
  if (hasDropdown) {
65215
65263
  return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
65216
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 }),
65217
- /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(
65218
- { ...item, layout: effectiveLayout },
65219
- optixFlowConfig
65220
- ) })
65265
+ /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(item, optixFlowConfig) })
65221
65266
  ] }, `desktop-menu-item-${index}`);
65222
65267
  }
65223
65268
  return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -65230,6 +65275,9 @@ var DesktopMenuItem2 = ({
65230
65275
  ) }, `desktop-menu-item-${index}`);
65231
65276
  };
65232
65277
  var renderDropdownContent = (item, optixFlowConfig) => {
65278
+ if (!hasLayoutSpecificDropdownContent(item)) {
65279
+ return renderGenericDropdownContent(item, optixFlowConfig);
65280
+ }
65233
65281
  switch (item.layout) {
65234
65282
  case "solutions-with-platform":
65235
65283
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -65278,73 +65326,287 @@ var renderDropdownContent = (item, optixFlowConfig) => {
65278
65326
  resourceItems: item.resourceItems ?? [],
65279
65327
  resourcesTitle: item.resourcesTitle,
65280
65328
  topicGroups: item.topicGroups ?? [],
65281
- featuredHeroCard: item.featuredHeroCard
65329
+ featuredHeroCard: item.featuredHeroCard,
65330
+ optixFlowConfig
65282
65331
  }
65283
65332
  );
65284
65333
  default:
65285
- return null;
65334
+ return renderGenericDropdownContent(item, optixFlowConfig);
65286
65335
  }
65287
65336
  };
65288
- var renderMobileDropdownContent = (item) => {
65289
- switch (item.layout) {
65290
- case "solutions-with-platform":
65291
- 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: [
65292
- /* @__PURE__ */ jsxRuntime.jsx(
65293
- 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",
65294
65390
  {
65295
- href: solution.href,
65296
- className: "block pt-4 text-sm font-medium",
65297
- 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))
65298
65404
  }
65299
65405
  ),
65300
- 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(
65301
65437
  pressable.Pressable,
65302
65438
  {
65303
- href: subpage.href,
65439
+ href: technology.href,
65304
65440
  className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
65305
65441
  children: [
65306
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subpage.icon, size: 14 }),
65307
- subpage.title
65442
+ /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: technology.icon, size: 14 }),
65443
+ technology.title
65308
65444
  ]
65309
65445
  },
65310
- subpage.id
65311
- ))
65312
- ] }, 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
+ ] });
65313
65471
  case "products-categorized":
65314
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: item.productCategories?.flatMap(
65315
- (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(
65316
65490
  pressable.Pressable,
65317
65491
  {
65318
- href: product.href,
65492
+ href: resource.href,
65319
65493
  className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
65320
- 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
+ ]
65321
65562
  },
65322
- product.id
65563
+ card.title
65323
65564
  ))
65324
- ) });
65325
- case "resources-with-topics":
65326
- 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(
65327
65597
  pressable.Pressable,
65328
65598
  {
65329
- href: resource.href,
65330
- 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",
65331
65601
  children: [
65332
- /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: resource.icon, size: 14 }),
65333
- resource.title
65602
+ iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 14 }),
65603
+ link.label
65334
65604
  ]
65335
65605
  },
65336
- resource.id
65337
- )) });
65338
- case "features-with-locations":
65339
- case "partners-promotional":
65340
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: "#", children: [
65341
- "View all",
65342
- " ",
65343
- typeof item.label === "string" ? item.label.toLowerCase() : "items"
65344
- ] }) });
65345
- default:
65346
- return null;
65347
- }
65606
+ linkIndex
65607
+ );
65608
+ })
65609
+ ] });
65348
65610
  };
65349
65611
  var MobileNavigationMenu = ({
65350
65612
  open,
@@ -65391,7 +65653,7 @@ var MobileNavigationMenu = ({
65391
65653
  title: "Mobile Navigation",
65392
65654
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
65393
65655
  /* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks.map((item, index) => {
65394
- const hasDropdown = Boolean(item.layout);
65656
+ const hasDropdown = hasDropdownContent(item);
65395
65657
  if (hasDropdown) {
65396
65658
  return /* @__PURE__ */ jsxRuntime.jsxs(
65397
65659
  AccordionItem,
@@ -99701,7 +99963,7 @@ function StatsBarComparison({
99701
99963
  const badgeContent = React30.useMemo(() => {
99702
99964
  if (badgeSlot) return badgeSlot;
99703
99965
  if (!badge) return null;
99704
- return /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: cn("mb-4", badgeClassName), children: badge });
99966
+ return /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("mb-4", badgeClassName), children: badge });
99705
99967
  }, [badgeSlot, badge, badgeClassName]);
99706
99968
  const comparisonsContent = React30.useMemo(() => {
99707
99969
  if (comparisonsSlot) return comparisonsSlot;
@@ -99710,9 +99972,7 @@ function StatsBarComparison({
99710
99972
  "div",
99711
99973
  {
99712
99974
  className: cn(
99713
- "rounded-xl border p-6",
99714
- getNestedCardBg(background, "card"),
99715
- getNestedCardTextColor(background),
99975
+ "rounded-xl border p-6 bg-card text-card-foreground",
99716
99976
  group.className,
99717
99977
  groupCardClassName
99718
99978
  ),
@@ -99723,7 +99983,7 @@ function StatsBarComparison({
99723
99983
  className: cn("mb-6 text-lg font-semibold", groupTitleClassName),
99724
99984
  children: group.title
99725
99985
  }
99726
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
99986
+ ) : group.title),
99727
99987
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: bar.className, children: [
99728
99988
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
99729
99989
  /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
@@ -99734,7 +99994,6 @@ function StatsBarComparison({
99734
99994
  {
99735
99995
  className: cn(
99736
99996
  "h-3 w-full overflow-hidden rounded-full",
99737
- getNestedCardBg(background, "muted"),
99738
99997
  barTrackClassName
99739
99998
  ),
99740
99999
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -99792,17 +100051,17 @@ function StatsBarComparison({
99792
100051
  ),
99793
100052
  children: heading
99794
100053
  }
99795
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
100054
+ ) : heading),
99796
100055
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
99797
100056
  "p",
99798
100057
  {
99799
100058
  className: cn(
99800
- "mx-auto max-w-2xl text-muted-foreground",
100059
+ "mx-auto max-w-full md:max-w-md text-balance opacity-70",
99801
100060
  descriptionClassName
99802
100061
  ),
99803
100062
  children: description
99804
100063
  }
99805
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
100064
+ ) : description)
99806
100065
  ] }),
99807
100066
  (comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
99808
100067
  ] })