@opensite/ui 1.6.3 → 1.6.5

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.
@@ -32,36 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getTextColor(parentBg, variant = "default", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "default":
40
- return "text-foreground";
41
- case "muted":
42
- return "text-foreground/80";
43
- case "subtle":
44
- return "text-foreground/60";
45
- case "accent":
46
- return "text-accent-foreground";
47
- }
48
- } else {
49
- switch (variant) {
50
- case "default":
51
- return "text-foreground";
52
- case "muted":
53
- return "text-muted-foreground";
54
- case "subtle":
55
- return "text-muted-foreground/70";
56
- case "accent":
57
- return "text-primary";
58
- }
59
- }
60
- }
61
- function getAccentColor(parentBg, options) {
62
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
63
- return isDark ? "text-accent-foreground" : "text-primary";
64
- }
65
35
  function normalizePhoneNumber(input) {
66
36
  const trimmed = input.trim();
67
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -859,20 +829,19 @@ function HeroPatternLogoTechStack({
859
829
  logo,
860
830
  logoSlot,
861
831
  heading,
862
- highlightedWord = "Blocks",
832
+ highlightedWord,
863
833
  description,
864
834
  actions,
865
835
  actionsSlot,
866
- techStackLabel = "Built with open-source technologies",
836
+ techStackLabel,
867
837
  techLogos,
868
838
  techLogosSlot,
869
- backgroundImage = "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
870
839
  background,
871
- spacing,
840
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
841
+ spacing = "py-12 md:py-32",
872
842
  pattern,
873
843
  patternOpacity,
874
844
  className,
875
- containerClassName,
876
845
  contentClassName,
877
846
  headingClassName,
878
847
  descriptionClassName,
@@ -884,12 +853,12 @@ function HeroPatternLogoTechStack({
884
853
  if (logoSlot) return logoSlot;
885
854
  if (!logo) return null;
886
855
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
887
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-xl bg-background/30 p-4 shadow-sm backdrop-blur-sm", children: /* @__PURE__ */ jsxRuntime.jsx(
856
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx(
888
857
  img.Img,
889
858
  {
890
859
  src: logoSrc,
891
860
  alt: logo.alt,
892
- className: cn("h-16", logo.imgClassName),
861
+ className: cn("h-16 w-auto object-contain", logo.imgClassName),
893
862
  optixFlowConfig
894
863
  }
895
864
  ) });
@@ -897,56 +866,89 @@ function HeroPatternLogoTechStack({
897
866
  const renderActions = React.useMemo(() => {
898
867
  if (actionsSlot) return actionsSlot;
899
868
  if (!actions || actions.length === 0) return null;
900
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6 flex justify-center gap-3", actionsClassName), children: actions.map((action, index) => {
901
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
902
- return /* @__PURE__ */ jsxRuntime.jsx(
903
- Pressable,
904
- {
905
- asButton: true,
906
- className: actionClassName,
907
- ...pressableProps,
908
- children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
909
- icon,
869
+ return /* @__PURE__ */ jsxRuntime.jsx(
870
+ "div",
871
+ {
872
+ className: cn(
873
+ "mt-6 flex justify-center flex-col md:flex-row gap-3",
874
+ actionsClassName
875
+ ),
876
+ children: actions.map((action, index) => {
877
+ const {
910
878
  label,
911
- iconAfter
912
- ] })
913
- },
914
- index
915
- );
916
- }) });
879
+ icon,
880
+ iconAfter,
881
+ children,
882
+ className: actionClassName,
883
+ ...pressableProps
884
+ } = action;
885
+ return /* @__PURE__ */ jsxRuntime.jsx(
886
+ Pressable,
887
+ {
888
+ asButton: true,
889
+ className: actionClassName,
890
+ ...pressableProps,
891
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
892
+ icon,
893
+ label,
894
+ iconAfter
895
+ ] })
896
+ },
897
+ index
898
+ );
899
+ })
900
+ }
901
+ );
917
902
  }, [actionsSlot, actions, actionsClassName]);
918
903
  const renderTechLogos = React.useMemo(() => {
919
904
  if (techLogosSlot) return techLogosSlot;
920
905
  if (!techLogos || techLogos.length === 0) return null;
921
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-20 flex flex-col items-center gap-5", techLogosClassName), children: [
922
- techStackLabel && (typeof techStackLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("font-medium lg:text-left", getTextColor(background, "muted")), children: techStackLabel }) : techStackLabel),
923
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: techLogos.map((techLogo, index) => {
924
- const techLogoSrc = typeof techLogo.src === "string" ? techLogo.src : techLogo.src.light;
925
- return /* @__PURE__ */ jsxRuntime.jsx(
926
- Pressable,
927
- {
928
- href: techLogo.href,
929
- className: cn(
930
- buttonVariants({ variant: "outline" }),
931
- "group flex aspect-square h-12 items-center justify-center p-0",
932
- techLogo.className
933
- ),
934
- children: /* @__PURE__ */ jsxRuntime.jsx(
935
- img.Img,
906
+ return /* @__PURE__ */ jsxRuntime.jsxs(
907
+ "div",
908
+ {
909
+ className: cn(
910
+ "mt-8 md:mt-20 flex flex-col items-center gap-5",
911
+ techLogosClassName
912
+ ),
913
+ children: [
914
+ techStackLabel && (typeof techStackLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("font-medium lg:text-left"), children: techStackLabel }) : techStackLabel),
915
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: techLogos.map((techLogo, index) => {
916
+ const techLogoSrc = typeof techLogo.src === "string" ? techLogo.src : techLogo.src.light;
917
+ return /* @__PURE__ */ jsxRuntime.jsx(
918
+ Pressable,
936
919
  {
937
- src: techLogoSrc,
938
- alt: techLogo.alt,
939
- className: cn("h-6 saturate-0 transition-all group-hover:saturate-100", techLogo.imgClassName),
940
- optixFlowConfig
941
- }
942
- )
943
- },
944
- index
945
- );
946
- }) })
947
- ] });
948
- }, [techLogosSlot, techLogos, techStackLabel, techLogosClassName, optixFlowConfig]);
949
- return /* @__PURE__ */ jsxRuntime.jsxs(
920
+ href: techLogo.href,
921
+ className: cn(
922
+ "group flex w-auto h-10 items-center justify-center max-w-12 max-h-10 min-h-10 p-1",
923
+ techLogo.className
924
+ ),
925
+ children: /* @__PURE__ */ jsxRuntime.jsx(
926
+ img.Img,
927
+ {
928
+ src: techLogoSrc,
929
+ alt: techLogo.alt,
930
+ className: cn(
931
+ "h-full w-auto object-contain",
932
+ techLogo.imgClassName
933
+ ),
934
+ optixFlowConfig
935
+ }
936
+ )
937
+ },
938
+ index
939
+ );
940
+ }) })
941
+ ]
942
+ }
943
+ );
944
+ }, [
945
+ techLogosSlot,
946
+ techLogos,
947
+ techStackLabel,
948
+ techLogosClassName,
949
+ optixFlowConfig
950
+ ]);
951
+ return /* @__PURE__ */ jsxRuntime.jsx(
950
952
  Section,
951
953
  {
952
954
  background,
@@ -954,30 +956,56 @@ function HeroPatternLogoTechStack({
954
956
  pattern,
955
957
  patternOpacity,
956
958
  className: cn(className),
957
- children: [
958
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute inset-x-0 top-0 flex h-full w-full items-center justify-center opacity-100", children: /* @__PURE__ */ jsxRuntime.jsx(
959
- img.Img,
960
- {
961
- alt: "background",
962
- src: backgroundImage,
963
- className: "mask-[radial-gradient(75%_75%_at_center,white,transparent)] opacity-90",
964
- optixFlowConfig
965
- }
966
- ) }),
967
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-10 container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center gap-6 text-center", contentClassName), children: [
968
- renderLogo,
969
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
970
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("h1", { className: cn("mb-6 text-2xl font-bold tracking-tight text-pretty lg:text-5xl", headingClassName), children: [
971
- heading,
972
- " ",
973
- highlightedWord && /* @__PURE__ */ jsxRuntime.jsx("span", { className: getAccentColor(background), children: highlightedWord })
974
- ] }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-6 text-2xl font-bold tracking-tight text-pretty lg:text-5xl", headingClassName), children: heading })),
975
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-3xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
976
- ] }),
977
- renderActions,
978
- renderTechLogos
979
- ] }) }) })
980
- ]
959
+ containerClassName,
960
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
961
+ "div",
962
+ {
963
+ className: cn(
964
+ "flex flex-col items-center gap-6 text-center",
965
+ contentClassName
966
+ ),
967
+ children: [
968
+ renderLogo,
969
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
970
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(
971
+ "h1",
972
+ {
973
+ className: cn(
974
+ "mb-6 text-2xl font-bold tracking-tight text-balance lg:text-5xl",
975
+ headingClassName
976
+ ),
977
+ children: [
978
+ heading,
979
+ " ",
980
+ highlightedWord && /* @__PURE__ */ jsxRuntime.jsx("span", { className: "opacity-75", children: highlightedWord })
981
+ ]
982
+ }
983
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
984
+ "h1",
985
+ {
986
+ className: cn(
987
+ "mb-6 text-2xl font-bold tracking-tight text-balance lg:text-5xl",
988
+ headingClassName
989
+ ),
990
+ children: heading
991
+ }
992
+ )),
993
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
994
+ "p",
995
+ {
996
+ className: cn(
997
+ "mx-auto max-w-3xl lg:text-xl text-balance",
998
+ descriptionClassName
999
+ ),
1000
+ children: description
1001
+ }
1002
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
1003
+ ] }),
1004
+ renderActions,
1005
+ renderTechLogos
1006
+ ]
1007
+ }
1008
+ ) }) })
981
1009
  }
982
1010
  );
983
1011
  }
@@ -48,9 +48,6 @@ interface HeroPatternLogoTechStackProps {
48
48
  */
49
49
  techLogosSlot?: React.ReactNode;
50
50
  /**
51
- * Background pattern image URL
52
- */
53
- backgroundImage?: string; /**
54
51
  * Background style for the section
55
52
  */
56
53
  background?: SectionBackground;
@@ -99,6 +96,6 @@ interface HeroPatternLogoTechStackProps {
99
96
  */
100
97
  optixFlowConfig?: OptixFlowConfig;
101
98
  }
102
- declare function HeroPatternLogoTechStack({ logo, logoSlot, heading, highlightedWord, description, actions, actionsSlot, techStackLabel, techLogos, techLogosSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, techLogosClassName, optixFlowConfig, }: HeroPatternLogoTechStackProps): React.JSX.Element;
99
+ declare function HeroPatternLogoTechStack({ logo, logoSlot, heading, highlightedWord, description, actions, actionsSlot, techStackLabel, techLogos, techLogosSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, techLogosClassName, optixFlowConfig, }: HeroPatternLogoTechStackProps): React.JSX.Element;
103
100
 
104
101
  export { HeroPatternLogoTechStack, type HeroPatternLogoTechStackProps };
@@ -48,9 +48,6 @@ interface HeroPatternLogoTechStackProps {
48
48
  */
49
49
  techLogosSlot?: React.ReactNode;
50
50
  /**
51
- * Background pattern image URL
52
- */
53
- backgroundImage?: string; /**
54
51
  * Background style for the section
55
52
  */
56
53
  background?: SectionBackground;
@@ -99,6 +96,6 @@ interface HeroPatternLogoTechStackProps {
99
96
  */
100
97
  optixFlowConfig?: OptixFlowConfig;
101
98
  }
102
- declare function HeroPatternLogoTechStack({ logo, logoSlot, heading, highlightedWord, description, actions, actionsSlot, techStackLabel, techLogos, techLogosSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, techLogosClassName, optixFlowConfig, }: HeroPatternLogoTechStackProps): React.JSX.Element;
99
+ declare function HeroPatternLogoTechStack({ logo, logoSlot, heading, highlightedWord, description, actions, actionsSlot, techStackLabel, techLogos, techLogosSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, techLogosClassName, optixFlowConfig, }: HeroPatternLogoTechStackProps): React.JSX.Element;
103
100
 
104
101
  export { HeroPatternLogoTechStack, type HeroPatternLogoTechStackProps };
@@ -11,36 +11,6 @@ import { Img } from '@page-speed/img';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
- function getTextColor(parentBg, variant = "default", options) {
15
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
- if (isDark) {
17
- switch (variant) {
18
- case "default":
19
- return "text-foreground";
20
- case "muted":
21
- return "text-foreground/80";
22
- case "subtle":
23
- return "text-foreground/60";
24
- case "accent":
25
- return "text-accent-foreground";
26
- }
27
- } else {
28
- switch (variant) {
29
- case "default":
30
- return "text-foreground";
31
- case "muted":
32
- return "text-muted-foreground";
33
- case "subtle":
34
- return "text-muted-foreground/70";
35
- case "accent":
36
- return "text-primary";
37
- }
38
- }
39
- }
40
- function getAccentColor(parentBg, options) {
41
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
- return isDark ? "text-accent-foreground" : "text-primary";
43
- }
44
14
  function normalizePhoneNumber(input) {
45
15
  const trimmed = input.trim();
46
16
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -838,20 +808,19 @@ function HeroPatternLogoTechStack({
838
808
  logo,
839
809
  logoSlot,
840
810
  heading,
841
- highlightedWord = "Blocks",
811
+ highlightedWord,
842
812
  description,
843
813
  actions,
844
814
  actionsSlot,
845
- techStackLabel = "Built with open-source technologies",
815
+ techStackLabel,
846
816
  techLogos,
847
817
  techLogosSlot,
848
- backgroundImage = "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
849
818
  background,
850
- spacing,
819
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
820
+ spacing = "py-12 md:py-32",
851
821
  pattern,
852
822
  patternOpacity,
853
823
  className,
854
- containerClassName,
855
824
  contentClassName,
856
825
  headingClassName,
857
826
  descriptionClassName,
@@ -863,12 +832,12 @@ function HeroPatternLogoTechStack({
863
832
  if (logoSlot) return logoSlot;
864
833
  if (!logo) return null;
865
834
  const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
866
- return /* @__PURE__ */ jsx("div", { className: "rounded-xl bg-background/30 p-4 shadow-sm backdrop-blur-sm", children: /* @__PURE__ */ jsx(
835
+ return /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx(
867
836
  Img,
868
837
  {
869
838
  src: logoSrc,
870
839
  alt: logo.alt,
871
- className: cn("h-16", logo.imgClassName),
840
+ className: cn("h-16 w-auto object-contain", logo.imgClassName),
872
841
  optixFlowConfig
873
842
  }
874
843
  ) });
@@ -876,56 +845,89 @@ function HeroPatternLogoTechStack({
876
845
  const renderActions = useMemo(() => {
877
846
  if (actionsSlot) return actionsSlot;
878
847
  if (!actions || actions.length === 0) return null;
879
- return /* @__PURE__ */ jsx("div", { className: cn("mt-6 flex justify-center gap-3", actionsClassName), children: actions.map((action, index) => {
880
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
881
- return /* @__PURE__ */ jsx(
882
- Pressable,
883
- {
884
- asButton: true,
885
- className: actionClassName,
886
- ...pressableProps,
887
- children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
888
- icon,
848
+ return /* @__PURE__ */ jsx(
849
+ "div",
850
+ {
851
+ className: cn(
852
+ "mt-6 flex justify-center flex-col md:flex-row gap-3",
853
+ actionsClassName
854
+ ),
855
+ children: actions.map((action, index) => {
856
+ const {
889
857
  label,
890
- iconAfter
891
- ] })
892
- },
893
- index
894
- );
895
- }) });
858
+ icon,
859
+ iconAfter,
860
+ children,
861
+ className: actionClassName,
862
+ ...pressableProps
863
+ } = action;
864
+ return /* @__PURE__ */ jsx(
865
+ Pressable,
866
+ {
867
+ asButton: true,
868
+ className: actionClassName,
869
+ ...pressableProps,
870
+ children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
871
+ icon,
872
+ label,
873
+ iconAfter
874
+ ] })
875
+ },
876
+ index
877
+ );
878
+ })
879
+ }
880
+ );
896
881
  }, [actionsSlot, actions, actionsClassName]);
897
882
  const renderTechLogos = useMemo(() => {
898
883
  if (techLogosSlot) return techLogosSlot;
899
884
  if (!techLogos || techLogos.length === 0) return null;
900
- return /* @__PURE__ */ jsxs("div", { className: cn("mt-20 flex flex-col items-center gap-5", techLogosClassName), children: [
901
- techStackLabel && (typeof techStackLabel === "string" ? /* @__PURE__ */ jsx("p", { className: cn("font-medium lg:text-left", getTextColor(background, "muted")), children: techStackLabel }) : techStackLabel),
902
- /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: techLogos.map((techLogo, index) => {
903
- const techLogoSrc = typeof techLogo.src === "string" ? techLogo.src : techLogo.src.light;
904
- return /* @__PURE__ */ jsx(
905
- Pressable,
906
- {
907
- href: techLogo.href,
908
- className: cn(
909
- buttonVariants({ variant: "outline" }),
910
- "group flex aspect-square h-12 items-center justify-center p-0",
911
- techLogo.className
912
- ),
913
- children: /* @__PURE__ */ jsx(
914
- Img,
885
+ return /* @__PURE__ */ jsxs(
886
+ "div",
887
+ {
888
+ className: cn(
889
+ "mt-8 md:mt-20 flex flex-col items-center gap-5",
890
+ techLogosClassName
891
+ ),
892
+ children: [
893
+ techStackLabel && (typeof techStackLabel === "string" ? /* @__PURE__ */ jsx("p", { className: cn("font-medium lg:text-left"), children: techStackLabel }) : techStackLabel),
894
+ /* @__PURE__ */ jsx("div", { className: "flex flex-wrap items-center justify-center gap-4", children: techLogos.map((techLogo, index) => {
895
+ const techLogoSrc = typeof techLogo.src === "string" ? techLogo.src : techLogo.src.light;
896
+ return /* @__PURE__ */ jsx(
897
+ Pressable,
915
898
  {
916
- src: techLogoSrc,
917
- alt: techLogo.alt,
918
- className: cn("h-6 saturate-0 transition-all group-hover:saturate-100", techLogo.imgClassName),
919
- optixFlowConfig
920
- }
921
- )
922
- },
923
- index
924
- );
925
- }) })
926
- ] });
927
- }, [techLogosSlot, techLogos, techStackLabel, techLogosClassName, optixFlowConfig]);
928
- return /* @__PURE__ */ jsxs(
899
+ href: techLogo.href,
900
+ className: cn(
901
+ "group flex w-auto h-10 items-center justify-center max-w-12 max-h-10 min-h-10 p-1",
902
+ techLogo.className
903
+ ),
904
+ children: /* @__PURE__ */ jsx(
905
+ Img,
906
+ {
907
+ src: techLogoSrc,
908
+ alt: techLogo.alt,
909
+ className: cn(
910
+ "h-full w-auto object-contain",
911
+ techLogo.imgClassName
912
+ ),
913
+ optixFlowConfig
914
+ }
915
+ )
916
+ },
917
+ index
918
+ );
919
+ }) })
920
+ ]
921
+ }
922
+ );
923
+ }, [
924
+ techLogosSlot,
925
+ techLogos,
926
+ techStackLabel,
927
+ techLogosClassName,
928
+ optixFlowConfig
929
+ ]);
930
+ return /* @__PURE__ */ jsx(
929
931
  Section,
930
932
  {
931
933
  background,
@@ -933,30 +935,56 @@ function HeroPatternLogoTechStack({
933
935
  pattern,
934
936
  patternOpacity,
935
937
  className: cn(className),
936
- children: [
937
- /* @__PURE__ */ jsx("div", { className: "absolute inset-x-0 top-0 flex h-full w-full items-center justify-center opacity-100", children: /* @__PURE__ */ jsx(
938
- Img,
939
- {
940
- alt: "background",
941
- src: backgroundImage,
942
- className: "mask-[radial-gradient(75%_75%_at_center,white,transparent)] opacity-90",
943
- optixFlowConfig
944
- }
945
- ) }),
946
- /* @__PURE__ */ jsx("div", { className: cn("relative z-10 container", containerClassName), children: /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center gap-6 text-center", contentClassName), children: [
947
- renderLogo,
948
- /* @__PURE__ */ jsxs("div", { children: [
949
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("h1", { className: cn("mb-6 text-2xl font-bold tracking-tight text-pretty lg:text-5xl", headingClassName), children: [
950
- heading,
951
- " ",
952
- highlightedWord && /* @__PURE__ */ jsx("span", { className: getAccentColor(background), children: highlightedWord })
953
- ] }) : /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-2xl font-bold tracking-tight text-pretty lg:text-5xl", headingClassName), children: heading })),
954
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-3xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
955
- ] }),
956
- renderActions,
957
- renderTechLogos
958
- ] }) }) })
959
- ]
938
+ containerClassName,
939
+ children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
940
+ "div",
941
+ {
942
+ className: cn(
943
+ "flex flex-col items-center gap-6 text-center",
944
+ contentClassName
945
+ ),
946
+ children: [
947
+ renderLogo,
948
+ /* @__PURE__ */ jsxs("div", { children: [
949
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs(
950
+ "h1",
951
+ {
952
+ className: cn(
953
+ "mb-6 text-2xl font-bold tracking-tight text-balance lg:text-5xl",
954
+ headingClassName
955
+ ),
956
+ children: [
957
+ heading,
958
+ " ",
959
+ highlightedWord && /* @__PURE__ */ jsx("span", { className: "opacity-75", children: highlightedWord })
960
+ ]
961
+ }
962
+ ) : /* @__PURE__ */ jsx(
963
+ "h1",
964
+ {
965
+ className: cn(
966
+ "mb-6 text-2xl font-bold tracking-tight text-balance lg:text-5xl",
967
+ headingClassName
968
+ ),
969
+ children: heading
970
+ }
971
+ )),
972
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
973
+ "p",
974
+ {
975
+ className: cn(
976
+ "mx-auto max-w-3xl lg:text-xl text-balance",
977
+ descriptionClassName
978
+ ),
979
+ children: description
980
+ }
981
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
982
+ ] }),
983
+ renderActions,
984
+ renderTechLogos
985
+ ]
986
+ }
987
+ ) }) })
960
988
  }
961
989
  );
962
990
  }