@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/navbar-enterprise-mega.cjs +731 -457
- package/dist/navbar-enterprise-mega.d.cts +2 -2
- package/dist/navbar-enterprise-mega.d.ts +2 -2
- package/dist/navbar-enterprise-mega.js +731 -457
- package/dist/registry.cjs +727 -458
- package/dist/registry.js +727 -458
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/package.json +1 -1
|
@@ -7,10 +7,10 @@ var tailwindMerge = require('tailwind-merge');
|
|
|
7
7
|
var pressable = require('@page-speed/pressable');
|
|
8
8
|
var icon = require('@page-speed/icon');
|
|
9
9
|
var jsxRuntime = require('react/jsx-runtime');
|
|
10
|
+
var img = require('@page-speed/img');
|
|
10
11
|
var AccordionPrimitive = require('@radix-ui/react-accordion');
|
|
11
12
|
var NavigationMenuPrimitive = require('@radix-ui/react-navigation-menu');
|
|
12
13
|
var classVarianceAuthority = require('class-variance-authority');
|
|
13
|
-
var img = require('@page-speed/img');
|
|
14
14
|
|
|
15
15
|
function _interopNamespace(e) {
|
|
16
16
|
if (e && e.__esModule) return e;
|
|
@@ -728,6 +728,11 @@ var NavbarLogo = ({
|
|
|
728
728
|
);
|
|
729
729
|
};
|
|
730
730
|
|
|
731
|
+
// components/blocks/navbars/types.ts
|
|
732
|
+
function getLinkUrl(item) {
|
|
733
|
+
return item.href || item.url || "#";
|
|
734
|
+
}
|
|
735
|
+
|
|
731
736
|
// components/blocks/navbars/layout-variant-utils.ts
|
|
732
737
|
function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks", customClasses) {
|
|
733
738
|
const isFloatingBar = layoutVariant === "floatingBar";
|
|
@@ -763,6 +768,64 @@ function getNavbarLayoutClasses(layoutVariant = "fullScreenContainerizedLinks",
|
|
|
763
768
|
spacingOverride: isFloatingBar ? "none" : "py-0 md:py-0"
|
|
764
769
|
};
|
|
765
770
|
}
|
|
771
|
+
var PANEL_MAX_WIDTH_CLASS = "max-w-[calc(100vw-4rem)]";
|
|
772
|
+
var hasItems = (items) => Array.isArray(items) && items.length > 0;
|
|
773
|
+
var hasFeaturedHeroCardContent = (card) => Boolean(
|
|
774
|
+
card && (card.title || card.subtitle || card.description || card.image)
|
|
775
|
+
);
|
|
776
|
+
var FeaturedHeroCardPanel = ({
|
|
777
|
+
card,
|
|
778
|
+
optixFlowConfig,
|
|
779
|
+
className,
|
|
780
|
+
contentClassName,
|
|
781
|
+
imageContainerClassName = "relative aspect-video w-full overflow-hidden",
|
|
782
|
+
imageClassName,
|
|
783
|
+
contentFirst
|
|
784
|
+
}) => {
|
|
785
|
+
const image = card.image ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: imageContainerClassName, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
786
|
+
img.Img,
|
|
787
|
+
{
|
|
788
|
+
src: card.image,
|
|
789
|
+
alt: card.title,
|
|
790
|
+
className: cn("h-full w-full object-cover", imageClassName),
|
|
791
|
+
optixFlowConfig,
|
|
792
|
+
loading: "eager"
|
|
793
|
+
}
|
|
794
|
+
) }) : null;
|
|
795
|
+
const content = /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col p-5", contentClassName), children: [
|
|
796
|
+
card.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: card.subtitle }),
|
|
797
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
|
|
798
|
+
card.title,
|
|
799
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
800
|
+
DynamicIcon,
|
|
801
|
+
{
|
|
802
|
+
name: "lucide/arrow-right",
|
|
803
|
+
size: 16,
|
|
804
|
+
className: "shrink-0 transition-transform group-hover:translate-x-1"
|
|
805
|
+
}
|
|
806
|
+
)
|
|
807
|
+
] }),
|
|
808
|
+
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed opacity-90", children: card.description })
|
|
809
|
+
] });
|
|
810
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
811
|
+
pressable.Pressable,
|
|
812
|
+
{
|
|
813
|
+
href: card.href,
|
|
814
|
+
className: cn(
|
|
815
|
+
"group flex h-full flex-col overflow-hidden rounded-lg text-primary-foreground",
|
|
816
|
+
card.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary",
|
|
817
|
+
className
|
|
818
|
+
),
|
|
819
|
+
children: contentFirst ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
820
|
+
content,
|
|
821
|
+
image
|
|
822
|
+
] }) : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
823
|
+
image,
|
|
824
|
+
content
|
|
825
|
+
] })
|
|
826
|
+
}
|
|
827
|
+
);
|
|
828
|
+
};
|
|
766
829
|
var SolutionsMenu = ({
|
|
767
830
|
solutionCards,
|
|
768
831
|
platformItems,
|
|
@@ -770,492 +833,458 @@ var SolutionsMenu = ({
|
|
|
770
833
|
featuredHeroCard,
|
|
771
834
|
optixFlowConfig
|
|
772
835
|
}) => {
|
|
773
|
-
const
|
|
774
|
-
|
|
836
|
+
const visibleSolutionCards = solutionCards.filter(Boolean);
|
|
837
|
+
const visiblePlatformItems = platformItems.filter(Boolean);
|
|
838
|
+
const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
|
|
839
|
+
const hasPlatformSection = hasItems(visiblePlatformItems);
|
|
840
|
+
const hasSolutionSection = hasItems(visibleSolutionCards);
|
|
841
|
+
const hasRightColumn = hasPlatformSection || hasSolutionSection;
|
|
842
|
+
if (!hasFeaturedCard && !hasRightColumn) return null;
|
|
843
|
+
const featuredCard = hasFeaturedCard && featuredHeroCard ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
844
|
+
FeaturedHeroCardPanel,
|
|
775
845
|
{
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
children: [
|
|
782
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex shrink-0 flex-col justify-between p-5", children: [
|
|
783
|
-
featuredHeroCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mb-2 text-xs font-medium tracking-wider uppercase", children: featuredHeroCard.subtitle }),
|
|
784
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
785
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1.5 text-base font-semibold", children: [
|
|
786
|
-
featuredHeroCard.title,
|
|
787
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
788
|
-
DynamicIcon,
|
|
789
|
-
{
|
|
790
|
-
name: "lucide/arrow-right",
|
|
791
|
-
size: 16,
|
|
792
|
-
className: "transition-transform group-hover:translate-x-1"
|
|
793
|
-
}
|
|
794
|
-
)
|
|
795
|
-
] }),
|
|
796
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
|
|
797
|
-
] })
|
|
798
|
-
] }),
|
|
799
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative min-h-0 flex-1 overflow-hidden", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
800
|
-
img.Img,
|
|
801
|
-
{
|
|
802
|
-
src: featuredHeroCard.image,
|
|
803
|
-
alt: featuredHeroCard.title,
|
|
804
|
-
className: "h-full w-full object-cover",
|
|
805
|
-
optixFlowConfig,
|
|
806
|
-
loading: "eager"
|
|
807
|
-
}
|
|
808
|
-
) })
|
|
809
|
-
]
|
|
846
|
+
card: featuredHeroCard,
|
|
847
|
+
optixFlowConfig,
|
|
848
|
+
contentFirst: true,
|
|
849
|
+
className: cn(featuredHeroCard.image && "min-h-[420px]"),
|
|
850
|
+
imageContainerClassName: "relative min-h-0 flex-1 overflow-hidden"
|
|
810
851
|
}
|
|
811
852
|
) : null;
|
|
812
|
-
const platformSection =
|
|
853
|
+
const platformSection = hasPlatformSection ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
813
854
|
/* @__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 }) }),
|
|
814
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
815
|
-
|
|
855
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
856
|
+
"div",
|
|
816
857
|
{
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
820
|
-
|
|
821
|
-
|
|
822
|
-
{
|
|
823
|
-
name: technology.icon,
|
|
824
|
-
size: 16,
|
|
825
|
-
className: "shrink-0"
|
|
826
|
-
}
|
|
827
|
-
),
|
|
828
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
|
|
829
|
-
]
|
|
830
|
-
},
|
|
831
|
-
technology.id
|
|
832
|
-
)) })
|
|
833
|
-
] }) : null;
|
|
834
|
-
const solutionSection = solutionCards.length > 0 ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: solutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
835
|
-
"div",
|
|
836
|
-
{
|
|
837
|
-
className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
|
|
838
|
-
children: [
|
|
839
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
840
|
-
pressable.Pressable,
|
|
841
|
-
{
|
|
842
|
-
href: solution.href,
|
|
843
|
-
className: "group flex min-w-0 flex-col text-left",
|
|
844
|
-
children: [
|
|
845
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
|
|
846
|
-
/* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
|
|
847
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
848
|
-
DynamicIcon,
|
|
849
|
-
{
|
|
850
|
-
name: "lucide/arrow-right",
|
|
851
|
-
size: 14,
|
|
852
|
-
className: "shrink-0 transition-transform group-hover:translate-x-1"
|
|
853
|
-
}
|
|
854
|
-
)
|
|
855
|
-
] }),
|
|
856
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
|
|
857
|
-
]
|
|
858
|
-
}
|
|
859
|
-
) }),
|
|
860
|
-
/* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: solution.subpages.map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
858
|
+
className: cn(
|
|
859
|
+
"grid gap-2",
|
|
860
|
+
hasFeaturedCard ? "grid-cols-2" : "grid-cols-[repeat(auto-fit,minmax(160px,1fr))]"
|
|
861
|
+
),
|
|
862
|
+
children: visiblePlatformItems.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
861
863
|
NavigationMenuLink,
|
|
862
864
|
{
|
|
863
|
-
href:
|
|
864
|
-
className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2
|
|
865
|
+
href: technology.href,
|
|
866
|
+
className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
|
|
865
867
|
children: [
|
|
866
868
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
867
869
|
DynamicIcon,
|
|
868
870
|
{
|
|
869
|
-
name:
|
|
870
|
-
size:
|
|
871
|
+
name: technology.icon,
|
|
872
|
+
size: 16,
|
|
871
873
|
className: "shrink-0"
|
|
872
874
|
}
|
|
873
875
|
),
|
|
874
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1
|
|
876
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 text-sm font-medium", children: technology.title })
|
|
875
877
|
]
|
|
876
878
|
},
|
|
877
|
-
|
|
878
|
-
))
|
|
879
|
-
|
|
880
|
-
|
|
881
|
-
|
|
882
|
-
|
|
883
|
-
|
|
884
|
-
|
|
885
|
-
|
|
886
|
-
|
|
887
|
-
|
|
888
|
-
|
|
889
|
-
|
|
890
|
-
|
|
891
|
-
|
|
892
|
-
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
897
|
-
|
|
898
|
-
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
879
|
+
technology.id
|
|
880
|
+
))
|
|
881
|
+
}
|
|
882
|
+
)
|
|
883
|
+
] }) : null;
|
|
884
|
+
const solutionSection = hasSolutionSection ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
885
|
+
"div",
|
|
886
|
+
{
|
|
887
|
+
className: cn(
|
|
888
|
+
"grid gap-3",
|
|
889
|
+
hasFeaturedCard ? "grid-cols-2" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
|
|
890
|
+
),
|
|
891
|
+
children: visibleSolutionCards.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
892
|
+
"div",
|
|
893
|
+
{
|
|
894
|
+
className: "flex min-w-0 flex-col rounded-lg border border-border p-4",
|
|
895
|
+
children: [
|
|
896
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b border-border pb-3", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
897
|
+
pressable.Pressable,
|
|
898
|
+
{
|
|
899
|
+
href: solution.href,
|
|
900
|
+
className: "group flex min-w-0 flex-col text-left",
|
|
901
|
+
children: [
|
|
902
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 items-center gap-1", children: [
|
|
903
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { className: "min-w-0 break-words text-sm font-medium", children: solution.title }),
|
|
904
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
905
|
+
DynamicIcon,
|
|
906
|
+
{
|
|
907
|
+
name: "lucide/arrow-right",
|
|
908
|
+
size: 14,
|
|
909
|
+
className: "shrink-0 transition-transform group-hover:translate-x-1"
|
|
910
|
+
}
|
|
911
|
+
)
|
|
912
|
+
] }),
|
|
913
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 break-words text-xs text-muted-foreground", children: solution.description })
|
|
914
|
+
]
|
|
915
|
+
}
|
|
916
|
+
) }),
|
|
917
|
+
/* @__PURE__ */ jsxRuntime.jsx("menu", { className: "mt-3 grid gap-2", children: (solution.subpages ?? []).map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
918
|
+
NavigationMenuLink,
|
|
919
|
+
{
|
|
920
|
+
href: subpage.href,
|
|
921
|
+
className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
|
|
922
|
+
children: [
|
|
907
923
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
908
924
|
DynamicIcon,
|
|
909
925
|
{
|
|
910
|
-
name:
|
|
926
|
+
name: subpage.icon,
|
|
911
927
|
size: 14,
|
|
912
|
-
className: "shrink-0
|
|
928
|
+
className: "shrink-0"
|
|
913
929
|
}
|
|
914
|
-
)
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
919
|
-
|
|
920
|
-
|
|
921
|
-
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
|
|
931
|
-
|
|
932
|
-
|
|
933
|
-
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
|
|
938
|
-
|
|
939
|
-
]
|
|
940
|
-
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
] });
|
|
930
|
+
),
|
|
931
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: subpage.title })
|
|
932
|
+
]
|
|
933
|
+
},
|
|
934
|
+
subpage.id
|
|
935
|
+
)) })
|
|
936
|
+
]
|
|
937
|
+
},
|
|
938
|
+
solution.id
|
|
939
|
+
))
|
|
940
|
+
}
|
|
941
|
+
) : null;
|
|
942
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
943
|
+
"div",
|
|
944
|
+
{
|
|
945
|
+
className: cn(
|
|
946
|
+
"grid gap-4",
|
|
947
|
+
PANEL_MAX_WIDTH_CLASS,
|
|
948
|
+
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"
|
|
949
|
+
),
|
|
950
|
+
children: [
|
|
951
|
+
featuredCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0", children: featuredCard }),
|
|
952
|
+
hasRightColumn && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex min-w-0 flex-col gap-4", children: [
|
|
953
|
+
platformSection,
|
|
954
|
+
solutionSection
|
|
955
|
+
] })
|
|
956
|
+
]
|
|
957
|
+
}
|
|
958
|
+
);
|
|
944
959
|
};
|
|
945
960
|
var ProductsMenu = ({
|
|
946
961
|
productCategories,
|
|
947
962
|
featuredHeroCard,
|
|
948
963
|
optixFlowConfig
|
|
949
|
-
}) =>
|
|
950
|
-
|
|
951
|
-
|
|
964
|
+
}) => {
|
|
965
|
+
const visibleCategories = productCategories.filter(
|
|
966
|
+
(category) => hasItems(category.products)
|
|
967
|
+
);
|
|
968
|
+
const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
|
|
969
|
+
const hasProductContent = hasItems(visibleCategories);
|
|
970
|
+
if (!hasFeaturedCard && !hasProductContent) return null;
|
|
971
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
972
|
+
"div",
|
|
952
973
|
{
|
|
953
|
-
href: featuredHeroCard.href,
|
|
954
974
|
className: cn(
|
|
955
|
-
"
|
|
956
|
-
|
|
975
|
+
"grid gap-6",
|
|
976
|
+
PANEL_MAX_WIDTH_CLASS,
|
|
977
|
+
hasFeaturedCard && hasProductContent ? "w-[1100px] grid-cols-[320px_1fr]" : hasProductContent ? "w-[860px] grid-cols-1" : "w-[360px] grid-cols-1"
|
|
957
978
|
),
|
|
958
979
|
children: [
|
|
959
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
960
|
-
|
|
980
|
+
hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
981
|
+
FeaturedHeroCardPanel,
|
|
961
982
|
{
|
|
962
|
-
|
|
963
|
-
|
|
964
|
-
className: "h-full w-full object-cover",
|
|
965
|
-
optixFlowConfig,
|
|
966
|
-
loading: "eager"
|
|
983
|
+
card: featuredHeroCard,
|
|
984
|
+
optixFlowConfig
|
|
967
985
|
}
|
|
968
986
|
) }),
|
|
969
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col
|
|
970
|
-
/* @__PURE__ */ jsxRuntime.
|
|
971
|
-
|
|
972
|
-
|
|
973
|
-
DynamicIcon,
|
|
974
|
-
{
|
|
975
|
-
name: "lucide/arrow-right",
|
|
976
|
-
size: 16,
|
|
977
|
-
className: "transition-transform group-hover:translate-x-1"
|
|
978
|
-
}
|
|
979
|
-
)
|
|
980
|
-
] }),
|
|
981
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed text-primary-foreground/85", children: featuredHeroCard.description })
|
|
982
|
-
] })
|
|
983
|
-
]
|
|
984
|
-
}
|
|
985
|
-
) }),
|
|
986
|
-
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: [
|
|
987
|
-
/* @__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 }) }),
|
|
988
|
-
/* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid grid-cols-3 gap-3", children: category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
989
|
-
NavigationMenuLink,
|
|
990
|
-
{
|
|
991
|
-
href: product.href,
|
|
992
|
-
className: "group col-span-1 !flex !w-full items-center gap-3 rounded-lg p-3 text-left hover:bg-muted",
|
|
993
|
-
children: [
|
|
994
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative flex size-12 shrink-0 items-center justify-center overflow-hidden rounded", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
995
|
-
img.Img,
|
|
987
|
+
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: [
|
|
988
|
+
/* @__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 }) }),
|
|
989
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
990
|
+
"menu",
|
|
996
991
|
{
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
992
|
+
className: cn(
|
|
993
|
+
"grid gap-3",
|
|
994
|
+
hasFeaturedCard ? "grid-cols-3" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
|
|
995
|
+
),
|
|
996
|
+
children: category.products.map((product) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
997
|
+
NavigationMenuLink,
|
|
998
|
+
{
|
|
999
|
+
href: product.href,
|
|
1000
|
+
className: "group col-span-1 !flex !w-full min-w-0 items-center gap-3 rounded-lg p-3 text-left hover:bg-muted",
|
|
1001
|
+
children: [
|
|
1002
|
+
/* @__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(
|
|
1003
|
+
img.Img,
|
|
1004
|
+
{
|
|
1005
|
+
src: product.image,
|
|
1006
|
+
alt: product.title,
|
|
1007
|
+
className: "h-full w-full object-cover",
|
|
1008
|
+
optixFlowConfig,
|
|
1009
|
+
loading: "eager"
|
|
1010
|
+
}
|
|
1011
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/package", size: 18 }) }),
|
|
1012
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1013
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: product.title }),
|
|
1014
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: product.description })
|
|
1015
|
+
] })
|
|
1016
|
+
]
|
|
1017
|
+
},
|
|
1018
|
+
product.id
|
|
1019
|
+
))
|
|
1002
1020
|
}
|
|
1003
|
-
)
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
},
|
|
1010
|
-
product.id
|
|
1011
|
-
)) })
|
|
1012
|
-
] }, category.title)) })
|
|
1013
|
-
] });
|
|
1021
|
+
)
|
|
1022
|
+
] }, category.title)) })
|
|
1023
|
+
]
|
|
1024
|
+
}
|
|
1025
|
+
);
|
|
1026
|
+
};
|
|
1014
1027
|
var ResourcesMenu = ({
|
|
1015
1028
|
resourceItems,
|
|
1016
1029
|
resourcesTitle = "Resources",
|
|
1017
1030
|
topicGroups,
|
|
1018
|
-
featuredHeroCard
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1031
|
+
featuredHeroCard,
|
|
1032
|
+
optixFlowConfig
|
|
1033
|
+
}) => {
|
|
1034
|
+
const visibleTopicGroups = topicGroups.filter(
|
|
1035
|
+
(group) => hasItems(group.topics)
|
|
1036
|
+
);
|
|
1037
|
+
const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
|
|
1038
|
+
const hasResourceContent = hasItems(resourceItems);
|
|
1039
|
+
const hasTopicContent = hasItems(visibleTopicGroups);
|
|
1040
|
+
if (!hasFeaturedCard && !hasResourceContent && !hasTopicContent) return null;
|
|
1041
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1042
|
+
"div",
|
|
1022
1043
|
{
|
|
1023
|
-
href: featuredHeroCard.href,
|
|
1024
1044
|
className: cn(
|
|
1025
|
-
"
|
|
1026
|
-
|
|
1045
|
+
"grid gap-6",
|
|
1046
|
+
PANEL_MAX_WIDTH_CLASS,
|
|
1047
|
+
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"
|
|
1027
1048
|
),
|
|
1028
1049
|
children: [
|
|
1029
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1030
|
-
|
|
1050
|
+
hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1051
|
+
FeaturedHeroCardPanel,
|
|
1031
1052
|
{
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1053
|
+
card: featuredHeroCard,
|
|
1054
|
+
optixFlowConfig,
|
|
1055
|
+
imageContainerClassName: "relative aspect-[4/3] w-full overflow-hidden",
|
|
1056
|
+
imageClassName: "invert"
|
|
1036
1057
|
}
|
|
1037
1058
|
) }),
|
|
1038
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "
|
|
1039
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1040
|
-
featuredHeroCard.title,
|
|
1041
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1042
|
-
DynamicIcon,
|
|
1043
|
-
{
|
|
1044
|
-
name: "lucide/arrow-right",
|
|
1045
|
-
size: 16,
|
|
1046
|
-
className: "transition-transform group-hover:translate-x-1"
|
|
1047
|
-
}
|
|
1048
|
-
)
|
|
1049
|
-
] }),
|
|
1050
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm leading-relaxed", children: featuredHeroCard.description })
|
|
1051
|
-
] })
|
|
1052
|
-
]
|
|
1053
|
-
}
|
|
1054
|
-
) }),
|
|
1055
|
-
resourceItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1", children: [
|
|
1056
|
-
/* @__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 }) }),
|
|
1057
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-3", children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1058
|
-
NavigationMenuLink,
|
|
1059
|
-
{
|
|
1060
|
-
href: resource.href,
|
|
1061
|
-
className: "group col-span-1 !flex !w-full items-start gap-3 rounded-lg border border-border p-3 hover:bg-muted",
|
|
1062
|
-
children: [
|
|
1059
|
+
hasResourceContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "col-span-1 min-w-0", children: [
|
|
1060
|
+
/* @__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 }) }),
|
|
1063
1061
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1064
|
-
|
|
1062
|
+
"div",
|
|
1065
1063
|
{
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
|
|
1064
|
+
className: cn(
|
|
1065
|
+
"grid gap-3",
|
|
1066
|
+
resourceItems.length > 1 ? "grid-cols-2" : "grid-cols-1"
|
|
1067
|
+
),
|
|
1068
|
+
children: resourceItems.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1069
|
+
NavigationMenuLink,
|
|
1070
|
+
{
|
|
1071
|
+
href: resource.href,
|
|
1072
|
+
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",
|
|
1073
|
+
children: [
|
|
1074
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1075
|
+
DynamicIcon,
|
|
1076
|
+
{
|
|
1077
|
+
name: resource.icon,
|
|
1078
|
+
size: 18,
|
|
1079
|
+
className: "mt-0.5 shrink-0"
|
|
1080
|
+
}
|
|
1081
|
+
),
|
|
1082
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1083
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: resource.title }),
|
|
1084
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: resource.description })
|
|
1085
|
+
] })
|
|
1086
|
+
]
|
|
1087
|
+
},
|
|
1088
|
+
resource.id
|
|
1089
|
+
))
|
|
1069
1090
|
}
|
|
1070
|
-
)
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1075
|
-
|
|
1076
|
-
},
|
|
1077
|
-
resource.id
|
|
1078
|
-
)) })
|
|
1079
|
-
] }),
|
|
1080
|
-
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: [
|
|
1081
|
-
/* @__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 }) }),
|
|
1082
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1083
|
-
NavigationMenuLink,
|
|
1084
|
-
{
|
|
1085
|
-
href: topic.href,
|
|
1086
|
-
className: "group !flex !w-full items-center gap-2 rounded-lg p-2 hover:bg-muted",
|
|
1087
|
-
children: [
|
|
1088
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1089
|
-
DynamicIcon,
|
|
1091
|
+
)
|
|
1092
|
+
] }),
|
|
1093
|
+
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: [
|
|
1094
|
+
/* @__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 }) }),
|
|
1095
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1.5", children: group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1096
|
+
NavigationMenuLink,
|
|
1090
1097
|
{
|
|
1091
|
-
|
|
1092
|
-
|
|
1093
|
-
|
|
1094
|
-
|
|
1095
|
-
|
|
1096
|
-
|
|
1097
|
-
|
|
1098
|
-
|
|
1099
|
-
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1098
|
+
href: topic.href,
|
|
1099
|
+
className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 hover:bg-muted",
|
|
1100
|
+
children: [
|
|
1101
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1102
|
+
DynamicIcon,
|
|
1103
|
+
{
|
|
1104
|
+
name: topic.icon,
|
|
1105
|
+
size: 14,
|
|
1106
|
+
className: "shrink-0"
|
|
1107
|
+
}
|
|
1108
|
+
),
|
|
1109
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: topic.title })
|
|
1110
|
+
]
|
|
1111
|
+
},
|
|
1112
|
+
topic.id
|
|
1113
|
+
)) })
|
|
1114
|
+
] }, group.title)) })
|
|
1115
|
+
]
|
|
1116
|
+
}
|
|
1117
|
+
);
|
|
1118
|
+
};
|
|
1103
1119
|
var GlobalMenu = ({
|
|
1104
1120
|
featureCategories,
|
|
1105
1121
|
regions,
|
|
1106
1122
|
locationsTitle = "Locations",
|
|
1107
1123
|
featuredHeroCard,
|
|
1108
1124
|
optixFlowConfig
|
|
1109
|
-
}) =>
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1117
|
-
|
|
1118
|
-
|
|
1119
|
-
|
|
1120
|
-
|
|
1121
|
-
|
|
1122
|
-
|
|
1123
|
-
|
|
1124
|
-
|
|
1125
|
-
|
|
1126
|
-
|
|
1127
|
-
|
|
1128
|
-
|
|
1129
|
-
|
|
1130
|
-
|
|
1131
|
-
|
|
1132
|
-
|
|
1133
|
-
|
|
1134
|
-
|
|
1125
|
+
}) => {
|
|
1126
|
+
const visibleFeatureCategories = featureCategories.filter(
|
|
1127
|
+
(category) => hasItems(category.features)
|
|
1128
|
+
);
|
|
1129
|
+
const visibleRegions = regions.filter((region) => hasItems(region.locations));
|
|
1130
|
+
const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
|
|
1131
|
+
const hasFeatureContent = hasItems(visibleFeatureCategories);
|
|
1132
|
+
const hasRegionContent = hasItems(visibleRegions);
|
|
1133
|
+
if (!hasFeaturedCard && !hasFeatureContent && !hasRegionContent) return null;
|
|
1134
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1135
|
+
"div",
|
|
1136
|
+
{
|
|
1137
|
+
className: cn(
|
|
1138
|
+
PANEL_MAX_WIDTH_CLASS,
|
|
1139
|
+
hasFeatureContent && hasFeaturedCard ? "w-[1100px]" : hasFeatureContent || hasRegionContent ? "w-[900px]" : "w-[320px]"
|
|
1140
|
+
),
|
|
1141
|
+
children: [
|
|
1142
|
+
(hasFeaturedCard || hasFeatureContent) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1143
|
+
"div",
|
|
1144
|
+
{
|
|
1145
|
+
className: cn(
|
|
1146
|
+
"grid gap-6",
|
|
1147
|
+
hasFeaturedCard && hasFeatureContent ? "grid-cols-[280px_1fr]" : "grid-cols-1"
|
|
1148
|
+
),
|
|
1149
|
+
children: [
|
|
1150
|
+
hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1151
|
+
"div",
|
|
1135
1152
|
{
|
|
1136
|
-
|
|
1137
|
-
|
|
1138
|
-
|
|
1153
|
+
className: cn(
|
|
1154
|
+
"col-span-1 min-w-0",
|
|
1155
|
+
!hasFeatureContent && hasRegionContent && "max-w-[320px]"
|
|
1156
|
+
),
|
|
1157
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1158
|
+
FeaturedHeroCardPanel,
|
|
1159
|
+
{
|
|
1160
|
+
card: featuredHeroCard,
|
|
1161
|
+
optixFlowConfig,
|
|
1162
|
+
imageContainerClassName: "relative aspect-[4/3] w-full overflow-hidden"
|
|
1163
|
+
}
|
|
1164
|
+
)
|
|
1139
1165
|
}
|
|
1140
|
-
)
|
|
1141
|
-
|
|
1142
|
-
|
|
1143
|
-
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
|
|
1150
|
-
|
|
1151
|
-
|
|
1152
|
-
|
|
1153
|
-
|
|
1154
|
-
|
|
1155
|
-
|
|
1156
|
-
|
|
1157
|
-
|
|
1158
|
-
|
|
1159
|
-
|
|
1160
|
-
|
|
1161
|
-
|
|
1162
|
-
|
|
1163
|
-
|
|
1164
|
-
|
|
1165
|
-
|
|
1166
|
-
|
|
1167
|
-
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
|
|
1171
|
-
className:
|
|
1172
|
-
|
|
1173
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1174
|
-
|
|
1175
|
-
NavigationMenuLink,
|
|
1166
|
+
),
|
|
1167
|
+
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: [
|
|
1168
|
+
/* @__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 }) }),
|
|
1169
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1170
|
+
"menu",
|
|
1171
|
+
{
|
|
1172
|
+
className: cn(
|
|
1173
|
+
"grid gap-3",
|
|
1174
|
+
hasFeaturedCard ? "grid-cols-3" : "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]"
|
|
1175
|
+
),
|
|
1176
|
+
children: category.features.map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1177
|
+
NavigationMenuLink,
|
|
1178
|
+
{
|
|
1179
|
+
href: feature.href,
|
|
1180
|
+
className: "group col-span-1 !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
|
|
1181
|
+
children: [
|
|
1182
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-8 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 18 }) }),
|
|
1183
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1184
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: feature.title }),
|
|
1185
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: feature.description })
|
|
1186
|
+
] })
|
|
1187
|
+
]
|
|
1188
|
+
},
|
|
1189
|
+
feature.id
|
|
1190
|
+
))
|
|
1191
|
+
}
|
|
1192
|
+
)
|
|
1193
|
+
] }, category.title)) })
|
|
1194
|
+
]
|
|
1195
|
+
}
|
|
1196
|
+
),
|
|
1197
|
+
hasRegionContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(hasFeaturedCard || hasFeatureContent ? "mt-6" : ""), children: [
|
|
1198
|
+
/* @__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 }) }),
|
|
1199
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-[repeat(auto-fit,minmax(150px,1fr))] gap-4", children: visibleRegions.map((region) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1200
|
+
"div",
|
|
1176
1201
|
{
|
|
1177
|
-
|
|
1178
|
-
className: "group !flex !w-full items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
|
|
1202
|
+
className: "col-span-1 flex w-full min-w-0 flex-col gap-3",
|
|
1179
1203
|
children: [
|
|
1180
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1181
|
-
|
|
1204
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-left text-xs font-medium text-muted-foreground", children: region.title }),
|
|
1205
|
+
/* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1206
|
+
NavigationMenuLink,
|
|
1182
1207
|
{
|
|
1183
|
-
|
|
1184
|
-
|
|
1185
|
-
|
|
1186
|
-
|
|
1187
|
-
|
|
1188
|
-
|
|
1208
|
+
href: location.href,
|
|
1209
|
+
className: "group !flex !w-full min-w-0 items-center gap-2 rounded-lg p-2 text-left hover:bg-muted",
|
|
1210
|
+
children: [
|
|
1211
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex size-4 shrink-0 items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1212
|
+
DynamicIcon,
|
|
1213
|
+
{
|
|
1214
|
+
name: location.icon,
|
|
1215
|
+
size: 16,
|
|
1216
|
+
className: "shrink-0"
|
|
1217
|
+
}
|
|
1218
|
+
) }),
|
|
1219
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "min-w-0 flex-1 break-words text-sm font-medium", children: location.title })
|
|
1220
|
+
]
|
|
1221
|
+
},
|
|
1222
|
+
location.title
|
|
1223
|
+
)) })
|
|
1189
1224
|
]
|
|
1190
1225
|
},
|
|
1191
|
-
|
|
1226
|
+
region.title
|
|
1192
1227
|
)) })
|
|
1193
|
-
]
|
|
1194
|
-
|
|
1195
|
-
|
|
1196
|
-
|
|
1197
|
-
|
|
1198
|
-
] });
|
|
1228
|
+
] })
|
|
1229
|
+
]
|
|
1230
|
+
}
|
|
1231
|
+
);
|
|
1232
|
+
};
|
|
1199
1233
|
var PartnersMenu = ({
|
|
1200
1234
|
partnerCards,
|
|
1201
1235
|
featuredHeroCard,
|
|
1202
1236
|
optixFlowConfig
|
|
1203
|
-
}) =>
|
|
1204
|
-
|
|
1205
|
-
|
|
1237
|
+
}) => {
|
|
1238
|
+
const hasFeaturedCard = hasFeaturedHeroCardContent(featuredHeroCard);
|
|
1239
|
+
const hasPartnerContent = hasItems(partnerCards);
|
|
1240
|
+
if (!hasFeaturedCard && !hasPartnerContent) return null;
|
|
1241
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1242
|
+
"div",
|
|
1206
1243
|
{
|
|
1207
|
-
href: featuredHeroCard.href,
|
|
1208
1244
|
className: cn(
|
|
1209
|
-
"
|
|
1210
|
-
|
|
1245
|
+
"grid gap-6",
|
|
1246
|
+
PANEL_MAX_WIDTH_CLASS,
|
|
1247
|
+
hasFeaturedCard && hasPartnerContent ? "w-[1000px] grid-cols-[2fr_1fr]" : hasPartnerContent ? "w-[680px] grid-cols-1" : "w-[360px] grid-cols-1"
|
|
1211
1248
|
),
|
|
1212
1249
|
children: [
|
|
1213
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
1214
|
-
|
|
1250
|
+
hasFeaturedCard && featuredHeroCard && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "col-span-1 min-w-0", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1251
|
+
FeaturedHeroCardPanel,
|
|
1215
1252
|
{
|
|
1216
|
-
|
|
1217
|
-
alt: featuredHeroCard.title,
|
|
1218
|
-
className: cn(
|
|
1219
|
-
"h-full w-full object-cover",
|
|
1220
|
-
featuredHeroCard.imagePosition === "background" && "invert"
|
|
1221
|
-
),
|
|
1253
|
+
card: featuredHeroCard,
|
|
1222
1254
|
optixFlowConfig,
|
|
1223
|
-
|
|
1255
|
+
imageClassName: cn(
|
|
1256
|
+
featuredHeroCard.imagePosition === "background" && "invert"
|
|
1257
|
+
)
|
|
1224
1258
|
}
|
|
1225
1259
|
) }),
|
|
1226
|
-
/* @__PURE__ */ jsxRuntime.
|
|
1227
|
-
|
|
1228
|
-
|
|
1229
|
-
|
|
1230
|
-
|
|
1260
|
+
hasPartnerContent && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1261
|
+
"div",
|
|
1262
|
+
{
|
|
1263
|
+
className: cn(
|
|
1264
|
+
"col-span-1 min-w-0 gap-3",
|
|
1265
|
+
hasFeaturedCard ? "flex flex-col" : "grid grid-cols-[repeat(auto-fit,minmax(240px,1fr))]"
|
|
1266
|
+
),
|
|
1267
|
+
children: partnerCards.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1268
|
+
NavigationMenuLink,
|
|
1231
1269
|
{
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
|
|
1237
|
-
|
|
1238
|
-
|
|
1239
|
-
|
|
1270
|
+
href: card.href,
|
|
1271
|
+
className: "group !flex !w-full min-w-0 items-start gap-3 rounded-lg border border-border p-4 hover:bg-muted",
|
|
1272
|
+
children: [
|
|
1273
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 28, className: "shrink-0" }),
|
|
1274
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1275
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-bold", children: card.title }),
|
|
1276
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: card.description })
|
|
1277
|
+
] })
|
|
1278
|
+
]
|
|
1279
|
+
},
|
|
1280
|
+
card.title
|
|
1281
|
+
))
|
|
1282
|
+
}
|
|
1283
|
+
)
|
|
1240
1284
|
]
|
|
1241
1285
|
}
|
|
1242
|
-
)
|
|
1243
|
-
|
|
1244
|
-
NavigationMenuLink,
|
|
1245
|
-
{
|
|
1246
|
-
href: card.href,
|
|
1247
|
-
className: "group !flex !w-full items-start gap-3 rounded-lg border border-border p-4 hover:bg-muted",
|
|
1248
|
-
children: [
|
|
1249
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 28, className: "shrink-0" }),
|
|
1250
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1251
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm font-bold", children: card.title }),
|
|
1252
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 text-xs text-muted-foreground", children: card.description })
|
|
1253
|
-
] })
|
|
1254
|
-
]
|
|
1255
|
-
},
|
|
1256
|
-
card.title
|
|
1257
|
-
)) })
|
|
1258
|
-
] });
|
|
1286
|
+
);
|
|
1287
|
+
};
|
|
1259
1288
|
var MOBILE_BREAKPOINT = 1024;
|
|
1260
1289
|
var NavbarEnterpriseMega = ({
|
|
1261
1290
|
className,
|
|
@@ -1425,20 +1454,48 @@ var NavbarEnterpriseMega = ({
|
|
|
1425
1454
|
)
|
|
1426
1455
|
] });
|
|
1427
1456
|
};
|
|
1457
|
+
var hasItems2 = (items) => Array.isArray(items) && items.length > 0;
|
|
1458
|
+
var hasFeaturedHeroCardContent2 = (card) => Boolean(
|
|
1459
|
+
card && (card.title || card.subtitle || card.description || card.image)
|
|
1460
|
+
);
|
|
1461
|
+
var hasGenericDropdownContent = (item) => hasItems2(item.links) || Boolean(item.dropdownGroups?.some((group) => hasItems2(group.links)));
|
|
1462
|
+
var hasLayoutSpecificDropdownContent = (item) => {
|
|
1463
|
+
switch (item.layout) {
|
|
1464
|
+
case "solutions-with-platform":
|
|
1465
|
+
return hasItems2(item.solutionCards) || hasItems2(item.platformItems) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
|
|
1466
|
+
case "products-categorized":
|
|
1467
|
+
return Boolean(
|
|
1468
|
+
item.productCategories?.some(
|
|
1469
|
+
(category) => hasItems2(category.products)
|
|
1470
|
+
)
|
|
1471
|
+
) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
|
|
1472
|
+
case "features-with-locations":
|
|
1473
|
+
return Boolean(
|
|
1474
|
+
item.featureCategories?.some(
|
|
1475
|
+
(category) => hasItems2(category.features)
|
|
1476
|
+
)
|
|
1477
|
+
) || Boolean(item.regions?.some((region) => hasItems2(region.locations))) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
|
|
1478
|
+
case "partners-promotional":
|
|
1479
|
+
return hasItems2(item.partnerCards) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
|
|
1480
|
+
case "resources-with-topics":
|
|
1481
|
+
return hasItems2(item.resourceItems) || Boolean(
|
|
1482
|
+
item.topicGroups?.some((group) => hasItems2(group.topics))
|
|
1483
|
+
) || hasFeaturedHeroCardContent2(item.featuredHeroCard);
|
|
1484
|
+
default:
|
|
1485
|
+
return false;
|
|
1486
|
+
}
|
|
1487
|
+
};
|
|
1488
|
+
var hasDropdownContent = (item) => hasLayoutSpecificDropdownContent(item) || hasGenericDropdownContent(item);
|
|
1428
1489
|
var DesktopMenuItem = ({
|
|
1429
1490
|
item,
|
|
1430
1491
|
index,
|
|
1431
1492
|
optixFlowConfig
|
|
1432
1493
|
}) => {
|
|
1433
|
-
const hasDropdown =
|
|
1434
|
-
const effectiveLayout = item.layout || "solutions-with-platform";
|
|
1494
|
+
const hasDropdown = hasDropdownContent(item);
|
|
1435
1495
|
if (hasDropdown) {
|
|
1436
1496
|
return /* @__PURE__ */ jsxRuntime.jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
1437
1497
|
/* @__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 }),
|
|
1438
|
-
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(
|
|
1439
|
-
{ ...item, layout: effectiveLayout },
|
|
1440
|
-
optixFlowConfig
|
|
1441
|
-
) })
|
|
1498
|
+
/* @__PURE__ */ jsxRuntime.jsx(NavigationMenuContent, { className: "max-h-[calc(100vh-6rem)] overflow-y-auto rounded-xl! border-0! p-4!", children: renderDropdownContent(item, optixFlowConfig) })
|
|
1442
1499
|
] }, `desktop-menu-item-${index}`);
|
|
1443
1500
|
}
|
|
1444
1501
|
return /* @__PURE__ */ jsxRuntime.jsx(NavigationMenuItem, { value: `${index}`, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1451,6 +1508,9 @@ var DesktopMenuItem = ({
|
|
|
1451
1508
|
) }, `desktop-menu-item-${index}`);
|
|
1452
1509
|
};
|
|
1453
1510
|
var renderDropdownContent = (item, optixFlowConfig) => {
|
|
1511
|
+
if (!hasLayoutSpecificDropdownContent(item)) {
|
|
1512
|
+
return renderGenericDropdownContent(item, optixFlowConfig);
|
|
1513
|
+
}
|
|
1454
1514
|
switch (item.layout) {
|
|
1455
1515
|
case "solutions-with-platform":
|
|
1456
1516
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1499,73 +1559,287 @@ var renderDropdownContent = (item, optixFlowConfig) => {
|
|
|
1499
1559
|
resourceItems: item.resourceItems ?? [],
|
|
1500
1560
|
resourcesTitle: item.resourcesTitle,
|
|
1501
1561
|
topicGroups: item.topicGroups ?? [],
|
|
1502
|
-
featuredHeroCard: item.featuredHeroCard
|
|
1562
|
+
featuredHeroCard: item.featuredHeroCard,
|
|
1563
|
+
optixFlowConfig
|
|
1503
1564
|
}
|
|
1504
1565
|
);
|
|
1505
1566
|
default:
|
|
1506
|
-
return
|
|
1567
|
+
return renderGenericDropdownContent(item, optixFlowConfig);
|
|
1507
1568
|
}
|
|
1508
1569
|
};
|
|
1509
|
-
var
|
|
1510
|
-
|
|
1511
|
-
|
|
1512
|
-
|
|
1513
|
-
|
|
1514
|
-
|
|
1570
|
+
var renderGenericDropdownContent = (item, optixFlowConfig) => {
|
|
1571
|
+
const links = item.links ?? [];
|
|
1572
|
+
const groups = (item.dropdownGroups ?? []).filter(
|
|
1573
|
+
(group) => hasItems2(group.links)
|
|
1574
|
+
);
|
|
1575
|
+
const hasLinks = hasItems2(links);
|
|
1576
|
+
const hasGroups = hasItems2(groups);
|
|
1577
|
+
if (!hasLinks && !hasGroups) return null;
|
|
1578
|
+
const renderGenericLink = (link, key) => {
|
|
1579
|
+
const iconName = link.icon ?? link.iconName;
|
|
1580
|
+
const label = typeof link.label === "string" ? link.label : "";
|
|
1581
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1582
|
+
NavigationMenuLink,
|
|
1583
|
+
{
|
|
1584
|
+
href: getLinkUrl(link),
|
|
1585
|
+
className: "group !flex !w-full min-w-0 items-start gap-3 rounded-lg p-3 text-left hover:bg-muted",
|
|
1586
|
+
children: [
|
|
1587
|
+
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(
|
|
1588
|
+
img.Img,
|
|
1589
|
+
{
|
|
1590
|
+
src: link.image,
|
|
1591
|
+
alt: label,
|
|
1592
|
+
className: "h-full w-full object-cover",
|
|
1593
|
+
optixFlowConfig,
|
|
1594
|
+
loading: "eager"
|
|
1595
|
+
}
|
|
1596
|
+
) }) : iconName ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1597
|
+
DynamicIcon,
|
|
1598
|
+
{
|
|
1599
|
+
name: iconName,
|
|
1600
|
+
size: 18,
|
|
1601
|
+
className: "mt-0.5 shrink-0"
|
|
1602
|
+
}
|
|
1603
|
+
) : null,
|
|
1604
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0 flex-1", children: [
|
|
1605
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "break-words text-sm font-medium", children: link.label }),
|
|
1606
|
+
link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-0.5 break-words text-xs text-muted-foreground", children: link.description })
|
|
1607
|
+
] })
|
|
1608
|
+
]
|
|
1609
|
+
},
|
|
1610
|
+
key
|
|
1611
|
+
);
|
|
1612
|
+
};
|
|
1613
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1614
|
+
"div",
|
|
1615
|
+
{
|
|
1616
|
+
className: cn(
|
|
1617
|
+
"grid max-w-[calc(100vw-4rem)] gap-6",
|
|
1618
|
+
hasLinks && hasGroups ? "w-[900px] grid-cols-[minmax(0,1fr)_minmax(220px,0.45fr)]" : hasGroups ? "w-[780px] grid-cols-1" : "w-[420px] grid-cols-1"
|
|
1619
|
+
),
|
|
1620
|
+
children: [
|
|
1621
|
+
hasGroups && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1622
|
+
"div",
|
|
1515
1623
|
{
|
|
1516
|
-
|
|
1517
|
-
|
|
1518
|
-
|
|
1624
|
+
className: cn(
|
|
1625
|
+
"grid min-w-0 gap-5",
|
|
1626
|
+
!hasLinks && groups.length > 1 ? "grid-cols-[repeat(auto-fit,minmax(220px,1fr))]" : "grid-cols-1"
|
|
1627
|
+
),
|
|
1628
|
+
children: groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "min-w-0", children: [
|
|
1629
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 border-b border-border pb-2 text-left", children: [
|
|
1630
|
+
/* @__PURE__ */ jsxRuntime.jsx("strong", { className: "text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.label }),
|
|
1631
|
+
group.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs text-muted-foreground", children: group.description })
|
|
1632
|
+
] }),
|
|
1633
|
+
/* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid gap-1.5", children: group.links.map(
|
|
1634
|
+
(link, linkIndex) => renderGenericLink(link, `${groupIndex}-${linkIndex}`)
|
|
1635
|
+
) })
|
|
1636
|
+
] }, groupIndex))
|
|
1519
1637
|
}
|
|
1520
1638
|
),
|
|
1521
|
-
|
|
1639
|
+
hasLinks && /* @__PURE__ */ jsxRuntime.jsx("menu", { className: "grid min-w-0 gap-1.5", children: links.map((link, linkIndex) => renderGenericLink(link, linkIndex)) })
|
|
1640
|
+
]
|
|
1641
|
+
}
|
|
1642
|
+
);
|
|
1643
|
+
};
|
|
1644
|
+
var renderMobileFeaturedHeroCard = (card) => {
|
|
1645
|
+
if (!hasFeaturedHeroCardContent2(card) || !card) return null;
|
|
1646
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1647
|
+
pressable.Pressable,
|
|
1648
|
+
{
|
|
1649
|
+
href: card.href,
|
|
1650
|
+
className: cn(
|
|
1651
|
+
"block rounded-lg p-4 text-sm font-medium text-primary-foreground",
|
|
1652
|
+
card.variant === "accent" ? "bg-accent text-accent-foreground" : "bg-primary"
|
|
1653
|
+
),
|
|
1654
|
+
children: [
|
|
1655
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: card.title }),
|
|
1656
|
+
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-xs leading-relaxed opacity-90", children: card.description })
|
|
1657
|
+
]
|
|
1658
|
+
}
|
|
1659
|
+
);
|
|
1660
|
+
};
|
|
1661
|
+
var renderMobileDropdownContent = (item) => {
|
|
1662
|
+
if (!hasLayoutSpecificDropdownContent(item)) {
|
|
1663
|
+
return renderMobileGenericDropdownContent(item);
|
|
1664
|
+
}
|
|
1665
|
+
switch (item.layout) {
|
|
1666
|
+
case "solutions-with-platform":
|
|
1667
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-2", children: [
|
|
1668
|
+
renderMobileFeaturedHeroCard(item.featuredHeroCard),
|
|
1669
|
+
item.platformItems?.map((technology) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1522
1670
|
pressable.Pressable,
|
|
1523
1671
|
{
|
|
1524
|
-
href:
|
|
1672
|
+
href: technology.href,
|
|
1525
1673
|
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1526
1674
|
children: [
|
|
1527
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name:
|
|
1528
|
-
|
|
1675
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: technology.icon, size: 14 }),
|
|
1676
|
+
technology.title
|
|
1529
1677
|
]
|
|
1530
1678
|
},
|
|
1531
|
-
|
|
1532
|
-
))
|
|
1533
|
-
|
|
1679
|
+
technology.id
|
|
1680
|
+
)),
|
|
1681
|
+
item.solutionCards?.map((solution) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
1682
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1683
|
+
pressable.Pressable,
|
|
1684
|
+
{
|
|
1685
|
+
href: solution.href,
|
|
1686
|
+
className: "block pt-4 text-sm font-medium",
|
|
1687
|
+
children: solution.title
|
|
1688
|
+
}
|
|
1689
|
+
),
|
|
1690
|
+
(solution.subpages ?? []).map((subpage) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1691
|
+
pressable.Pressable,
|
|
1692
|
+
{
|
|
1693
|
+
href: subpage.href,
|
|
1694
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1695
|
+
children: [
|
|
1696
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: subpage.icon, size: 14 }),
|
|
1697
|
+
subpage.title
|
|
1698
|
+
]
|
|
1699
|
+
},
|
|
1700
|
+
subpage.id
|
|
1701
|
+
))
|
|
1702
|
+
] }, solution.id))
|
|
1703
|
+
] });
|
|
1534
1704
|
case "products-categorized":
|
|
1535
|
-
return /* @__PURE__ */ jsxRuntime.
|
|
1536
|
-
(
|
|
1705
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1706
|
+
renderMobileFeaturedHeroCard(item.featuredHeroCard),
|
|
1707
|
+
item.productCategories?.flatMap(
|
|
1708
|
+
(category) => (category.products ?? []).map((product) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
1709
|
+
pressable.Pressable,
|
|
1710
|
+
{
|
|
1711
|
+
href: product.href,
|
|
1712
|
+
className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
|
|
1713
|
+
children: product.title
|
|
1714
|
+
},
|
|
1715
|
+
product.id
|
|
1716
|
+
))
|
|
1717
|
+
)
|
|
1718
|
+
] });
|
|
1719
|
+
case "resources-with-topics":
|
|
1720
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1721
|
+
renderMobileFeaturedHeroCard(item.featuredHeroCard),
|
|
1722
|
+
item.resourceItems?.map((resource) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1537
1723
|
pressable.Pressable,
|
|
1538
1724
|
{
|
|
1539
|
-
href:
|
|
1725
|
+
href: resource.href,
|
|
1540
1726
|
className: "flex items-center pl-4 gap-2 text-sm text-muted-foreground",
|
|
1541
|
-
children:
|
|
1727
|
+
children: [
|
|
1728
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: resource.icon, size: 14 }),
|
|
1729
|
+
resource.title
|
|
1730
|
+
]
|
|
1542
1731
|
},
|
|
1543
|
-
|
|
1732
|
+
resource.id
|
|
1733
|
+
)),
|
|
1734
|
+
item.topicGroups?.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
1735
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.title }),
|
|
1736
|
+
group.topics.map((topic) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1737
|
+
pressable.Pressable,
|
|
1738
|
+
{
|
|
1739
|
+
href: topic.href,
|
|
1740
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1741
|
+
children: [
|
|
1742
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: topic.icon, size: 14 }),
|
|
1743
|
+
topic.title
|
|
1744
|
+
]
|
|
1745
|
+
},
|
|
1746
|
+
topic.id
|
|
1747
|
+
))
|
|
1748
|
+
] }, group.title))
|
|
1749
|
+
] });
|
|
1750
|
+
case "features-with-locations":
|
|
1751
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1752
|
+
renderMobileFeaturedHeroCard(item.featuredHeroCard),
|
|
1753
|
+
item.featureCategories?.flatMap(
|
|
1754
|
+
(category) => (category.features ?? []).map((feature) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1755
|
+
pressable.Pressable,
|
|
1756
|
+
{
|
|
1757
|
+
href: feature.href,
|
|
1758
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1759
|
+
children: [
|
|
1760
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: feature.icon, size: 14 }),
|
|
1761
|
+
feature.title
|
|
1762
|
+
]
|
|
1763
|
+
},
|
|
1764
|
+
feature.id
|
|
1765
|
+
))
|
|
1766
|
+
),
|
|
1767
|
+
item.regions?.map((region) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
1768
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: region.title }),
|
|
1769
|
+
region.locations.map((location) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1770
|
+
pressable.Pressable,
|
|
1771
|
+
{
|
|
1772
|
+
href: location.href,
|
|
1773
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1774
|
+
children: [
|
|
1775
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: location.icon, size: 14 }),
|
|
1776
|
+
location.title
|
|
1777
|
+
]
|
|
1778
|
+
},
|
|
1779
|
+
location.title
|
|
1780
|
+
))
|
|
1781
|
+
] }, region.title))
|
|
1782
|
+
] });
|
|
1783
|
+
case "partners-promotional":
|
|
1784
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1785
|
+
renderMobileFeaturedHeroCard(item.featuredHeroCard),
|
|
1786
|
+
item.partnerCards?.map((card) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1787
|
+
pressable.Pressable,
|
|
1788
|
+
{
|
|
1789
|
+
href: card.href,
|
|
1790
|
+
className: "flex items-start gap-2 pl-4 text-sm text-muted-foreground",
|
|
1791
|
+
children: [
|
|
1792
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: card.icon, size: 14, className: "mt-0.5" }),
|
|
1793
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { children: card.title })
|
|
1794
|
+
]
|
|
1795
|
+
},
|
|
1796
|
+
card.title
|
|
1544
1797
|
))
|
|
1545
|
-
|
|
1546
|
-
|
|
1547
|
-
return
|
|
1798
|
+
] });
|
|
1799
|
+
default:
|
|
1800
|
+
return renderMobileGenericDropdownContent(item);
|
|
1801
|
+
}
|
|
1802
|
+
};
|
|
1803
|
+
var renderMobileGenericDropdownContent = (item) => {
|
|
1804
|
+
const links = item.links ?? [];
|
|
1805
|
+
const groups = (item.dropdownGroups ?? []).filter(
|
|
1806
|
+
(group) => hasItems2(group.links)
|
|
1807
|
+
);
|
|
1808
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1809
|
+
groups.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-2", children: [
|
|
1810
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-2 text-xs font-medium tracking-wider text-muted-foreground uppercase", children: group.label }),
|
|
1811
|
+
group.links.map((link, linkIndex) => {
|
|
1812
|
+
const iconName = link.icon ?? link.iconName;
|
|
1813
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1814
|
+
pressable.Pressable,
|
|
1815
|
+
{
|
|
1816
|
+
href: getLinkUrl(link),
|
|
1817
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1818
|
+
children: [
|
|
1819
|
+
iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 14 }),
|
|
1820
|
+
link.label
|
|
1821
|
+
]
|
|
1822
|
+
},
|
|
1823
|
+
`${groupIndex}-${linkIndex}`
|
|
1824
|
+
);
|
|
1825
|
+
})
|
|
1826
|
+
] }, groupIndex)),
|
|
1827
|
+
links.map((link, linkIndex) => {
|
|
1828
|
+
const iconName = link.icon ?? link.iconName;
|
|
1829
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1548
1830
|
pressable.Pressable,
|
|
1549
1831
|
{
|
|
1550
|
-
href:
|
|
1551
|
-
className: "flex items-center pl-4
|
|
1832
|
+
href: getLinkUrl(link),
|
|
1833
|
+
className: "flex items-center gap-2 pl-4 text-sm text-muted-foreground",
|
|
1552
1834
|
children: [
|
|
1553
|
-
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name:
|
|
1554
|
-
|
|
1835
|
+
iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 14 }),
|
|
1836
|
+
link.label
|
|
1555
1837
|
]
|
|
1556
1838
|
},
|
|
1557
|
-
|
|
1558
|
-
)
|
|
1559
|
-
|
|
1560
|
-
|
|
1561
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm text-muted-foreground", children: /* @__PURE__ */ jsxRuntime.jsxs(pressable.Pressable, { href: "#", children: [
|
|
1562
|
-
"View all",
|
|
1563
|
-
" ",
|
|
1564
|
-
typeof item.label === "string" ? item.label.toLowerCase() : "items"
|
|
1565
|
-
] }) });
|
|
1566
|
-
default:
|
|
1567
|
-
return null;
|
|
1568
|
-
}
|
|
1839
|
+
linkIndex
|
|
1840
|
+
);
|
|
1841
|
+
})
|
|
1842
|
+
] });
|
|
1569
1843
|
};
|
|
1570
1844
|
var MobileNavigationMenu = ({
|
|
1571
1845
|
open,
|
|
@@ -1612,7 +1886,7 @@ var MobileNavigationMenu = ({
|
|
|
1612
1886
|
title: "Mobile Navigation",
|
|
1613
1887
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-screen-sm mx-auto", children: [
|
|
1614
1888
|
/* @__PURE__ */ jsxRuntime.jsx(Accordion, { type: "multiple", className: "w-full", children: menuLinks.map((item, index) => {
|
|
1615
|
-
const hasDropdown =
|
|
1889
|
+
const hasDropdown = hasDropdownContent(item);
|
|
1616
1890
|
if (hasDropdown) {
|
|
1617
1891
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1618
1892
|
AccordionItem,
|