@opensite/ui 1.6.2 → 1.6.3

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.
@@ -953,7 +953,11 @@ function FeatureCategoryImageCards({
953
953
  return features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsxs(
954
954
  Card,
955
955
  {
956
- className: cn("border-none", cardClassName, feature.className),
956
+ className: cn(
957
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border pt-6 shadow-sm border-none",
958
+ cardClassName,
959
+ feature.className
960
+ ),
957
961
  children: [
958
962
  /* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "text-center", children: [
959
963
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
@@ -985,7 +989,7 @@ function FeatureCategoryImageCards({
985
989
  }
986
990
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("md:text-lg", feature.categoryClassName), children: feature.category }))
987
991
  ] }),
988
- /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "px-7 pb-7", children: renderFeatureImage(feature) })
992
+ /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "px-7 pb-0", children: renderFeatureImage(feature) })
989
993
  ]
990
994
  },
991
995
  index
@@ -1015,7 +1019,7 @@ function FeatureCategoryImageCards({
1015
1019
  "h2",
1016
1020
  {
1017
1021
  className: cn(
1018
- "text-3xl font-semibold md:text-5xl",
1022
+ "text-3xl font-semibold md:text-5xl text-balance",
1019
1023
  titleClassName
1020
1024
  ),
1021
1025
  children: title
@@ -1024,13 +1028,31 @@ function FeatureCategoryImageCards({
1024
1028
  "div",
1025
1029
  {
1026
1030
  className: cn(
1027
- "text-3xl font-semibold md:text-5xl",
1031
+ "text-3xl font-semibold md:text-5xl text-balance",
1028
1032
  titleClassName
1029
1033
  ),
1030
1034
  children: title
1031
1035
  }
1032
1036
  )),
1033
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-2xl md:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-w-2xl md:text-lg", descriptionClassName), children: description }))
1037
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1038
+ "p",
1039
+ {
1040
+ className: cn(
1041
+ "max-w-2xl md:text-lg text-balance",
1042
+ descriptionClassName
1043
+ ),
1044
+ children: description
1045
+ }
1046
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
1047
+ "div",
1048
+ {
1049
+ className: cn(
1050
+ "max-w-2xl md:text-lg text-balance",
1051
+ descriptionClassName
1052
+ ),
1053
+ children: description
1054
+ }
1055
+ ))
1034
1056
  ]
1035
1057
  }
1036
1058
  ),
@@ -932,7 +932,11 @@ function FeatureCategoryImageCards({
932
932
  return features.map((feature, index) => /* @__PURE__ */ jsxs(
933
933
  Card,
934
934
  {
935
- className: cn("border-none", cardClassName, feature.className),
935
+ className: cn(
936
+ "bg-card text-card-foreground flex flex-col gap-6 rounded-xl border pt-6 shadow-sm border-none",
937
+ cardClassName,
938
+ feature.className
939
+ ),
936
940
  children: [
937
941
  /* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
938
942
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(
@@ -964,7 +968,7 @@ function FeatureCategoryImageCards({
964
968
  }
965
969
  ) : /* @__PURE__ */ jsx("div", { className: cn("md:text-lg", feature.categoryClassName), children: feature.category }))
966
970
  ] }),
967
- /* @__PURE__ */ jsx(CardContent, { className: "px-7 pb-7", children: renderFeatureImage(feature) })
971
+ /* @__PURE__ */ jsx(CardContent, { className: "px-7 pb-0", children: renderFeatureImage(feature) })
968
972
  ]
969
973
  },
970
974
  index
@@ -994,7 +998,7 @@ function FeatureCategoryImageCards({
994
998
  "h2",
995
999
  {
996
1000
  className: cn(
997
- "text-3xl font-semibold md:text-5xl",
1001
+ "text-3xl font-semibold md:text-5xl text-balance",
998
1002
  titleClassName
999
1003
  ),
1000
1004
  children: title
@@ -1003,13 +1007,31 @@ function FeatureCategoryImageCards({
1003
1007
  "div",
1004
1008
  {
1005
1009
  className: cn(
1006
- "text-3xl font-semibold md:text-5xl",
1010
+ "text-3xl font-semibold md:text-5xl text-balance",
1007
1011
  titleClassName
1008
1012
  ),
1009
1013
  children: title
1010
1014
  }
1011
1015
  )),
1012
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl md:text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("max-w-2xl md:text-lg", descriptionClassName), children: description }))
1016
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
1017
+ "p",
1018
+ {
1019
+ className: cn(
1020
+ "max-w-2xl md:text-lg text-balance",
1021
+ descriptionClassName
1022
+ ),
1023
+ children: description
1024
+ }
1025
+ ) : /* @__PURE__ */ jsx(
1026
+ "div",
1027
+ {
1028
+ className: cn(
1029
+ "max-w-2xl md:text-lg text-balance",
1030
+ descriptionClassName
1031
+ ),
1032
+ children: description
1033
+ }
1034
+ ))
1013
1035
  ]
1014
1036
  }
1015
1037
  ),
@@ -1098,7 +1098,7 @@ function FeatureUtilityCardsGrid({
1098
1098
  Card,
1099
1099
  {
1100
1100
  className: cn(
1101
- "py-0 shadow-sm overflow-hidden pt-0 transition-shadow duration-300 hover:shadow-lg",
1101
+ "gap-0! py-0 shadow-sm overflow-hidden pt-0 transition-shadow duration-300 hover:shadow-lg",
1102
1102
  cardClassName,
1103
1103
  utility.className
1104
1104
  ),
@@ -1076,7 +1076,7 @@ function FeatureUtilityCardsGrid({
1076
1076
  Card,
1077
1077
  {
1078
1078
  className: cn(
1079
- "py-0 shadow-sm overflow-hidden pt-0 transition-shadow duration-300 hover:shadow-lg",
1079
+ "gap-0! py-0 shadow-sm overflow-hidden pt-0 transition-shadow duration-300 hover:shadow-lg",
1080
1080
  cardClassName,
1081
1081
  utility.className
1082
1082
  ),
@@ -1755,7 +1755,8 @@ function FooterAccordionSocial({
1755
1755
  onSuccess,
1756
1756
  onError,
1757
1757
  background,
1758
- spacing,
1758
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1759
+ spacing = "py-6 md:py-32",
1759
1760
  pattern,
1760
1761
  patternOpacity,
1761
1762
  patternClassName
@@ -1809,6 +1810,7 @@ function FooterAccordionSocial({
1809
1810
  patternOpacity,
1810
1811
  patternClassName,
1811
1812
  className,
1813
+ containerClassName,
1812
1814
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-10", children: [
1813
1815
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-10 lg:grid-cols-2 lg:gap-20", children: [
1814
1816
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-6", children: [
@@ -95,6 +95,10 @@ interface FooterAccordionSocialProps {
95
95
  * Background style for the section
96
96
  */
97
97
  background?: SectionBackground;
98
+ /**
99
+ * Additional CSS classes for the container
100
+ */
101
+ containerClassName?: string;
98
102
  /**
99
103
  * Vertical spacing for the section
100
104
  */
@@ -131,6 +135,6 @@ interface FooterAccordionSocialProps {
131
135
  * />
132
136
  * ```
133
137
  */
134
- declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, formConfig, onSubmit, onSuccess, onError, background, spacing, pattern, patternOpacity, patternClassName, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
138
+ declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, formConfig, onSubmit, onSuccess, onError, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
135
139
 
136
140
  export { FooterAccordionSocial, type FooterAccordionSocialNavLink, type FooterAccordionSocialProps, type FooterAccordionSocialSection };
@@ -95,6 +95,10 @@ interface FooterAccordionSocialProps {
95
95
  * Background style for the section
96
96
  */
97
97
  background?: SectionBackground;
98
+ /**
99
+ * Additional CSS classes for the container
100
+ */
101
+ containerClassName?: string;
98
102
  /**
99
103
  * Vertical spacing for the section
100
104
  */
@@ -131,6 +135,6 @@ interface FooterAccordionSocialProps {
131
135
  * />
132
136
  * ```
133
137
  */
134
- declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, formConfig, onSubmit, onSuccess, onError, background, spacing, pattern, patternOpacity, patternClassName, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
138
+ declare function FooterAccordionSocial({ newsletterTitle, newsletterDescription, footerLinks, socialLinks, logo, copyright, className, optixFlowConfig, formConfig, onSubmit, onSuccess, onError, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, }: FooterAccordionSocialProps): react_jsx_runtime.JSX.Element;
135
139
 
136
140
  export { FooterAccordionSocial, type FooterAccordionSocialNavLink, type FooterAccordionSocialProps, type FooterAccordionSocialSection };
@@ -1734,7 +1734,8 @@ function FooterAccordionSocial({
1734
1734
  onSuccess,
1735
1735
  onError,
1736
1736
  background,
1737
- spacing,
1737
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1738
+ spacing = "py-6 md:py-32",
1738
1739
  pattern,
1739
1740
  patternOpacity,
1740
1741
  patternClassName
@@ -1788,6 +1789,7 @@ function FooterAccordionSocial({
1788
1789
  patternOpacity,
1789
1790
  patternClassName,
1790
1791
  className,
1792
+ containerClassName,
1791
1793
  children: /* @__PURE__ */ jsxs("div", { className: "space-y-10", children: [
1792
1794
  /* @__PURE__ */ jsxs("div", { className: "grid gap-10 lg:grid-cols-2 lg:gap-20", children: [
1793
1795
  /* @__PURE__ */ jsxs("div", { className: "space-y-6", children: [
@@ -1741,7 +1741,8 @@ function FooterInfoCardsAccordion({
1741
1741
  copyrightClassName,
1742
1742
  submenuLinksClassName,
1743
1743
  background,
1744
- spacing,
1744
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1745
+ spacing = "py-6 md:py-32",
1745
1746
  pattern,
1746
1747
  patternOpacity,
1747
1748
  optixFlowConfig
@@ -1761,6 +1762,7 @@ function FooterInfoCardsAccordion({
1761
1762
  pattern,
1762
1763
  patternOpacity,
1763
1764
  className: cn(className),
1765
+ containerClassName,
1764
1766
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-12 lg:space-y-14", contentClassName), children: [
1765
1767
  footerDetails?.image?.src && (newsletterTitle || newsletterDescription || subscribeText) && /* @__PURE__ */ jsxRuntime.jsxs(
1766
1768
  "div",
@@ -1913,61 +1915,43 @@ function FooterInfoCardsAccordion({
1913
1915
  brandGridClassName
1914
1916
  ),
1915
1917
  children: [
1916
- (footerDetails?.logo || footerDetails?.description) && /* @__PURE__ */ jsxRuntime.jsxs(
1917
- "div",
1918
- {
1919
- className: cn(
1920
- "space-y-5",
1921
- brandColumnClassName
1922
- ),
1923
- children: [
1924
- footerDetails?.logo && /* @__PURE__ */ jsxRuntime.jsx(
1925
- FooterLogo,
1926
- {
1927
- logo: {
1928
- ...footerDetails.logo,
1929
- url: footerDetails.logoUrl || "/"
1930
- },
1931
- logoClassName: cn(
1932
- "inline-block w-full max-w-64",
1933
- logoClassName
1934
- ),
1935
- optixFlowConfig
1936
- }
1918
+ (footerDetails?.logo || footerDetails?.description) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-5", brandColumnClassName), children: [
1919
+ footerDetails?.logo && /* @__PURE__ */ jsxRuntime.jsx(
1920
+ FooterLogo,
1921
+ {
1922
+ logo: {
1923
+ ...footerDetails.logo,
1924
+ url: footerDetails.logoUrl || "/"
1925
+ },
1926
+ logoClassName: cn(
1927
+ "inline-block w-full max-w-64",
1928
+ logoClassName
1937
1929
  ),
1938
- footerDetails?.description && /* @__PURE__ */ jsxRuntime.jsx(
1939
- "p",
1940
- {
1941
- className: cn(
1942
- "max-w-md text-sm leading-relaxed text-muted-foreground",
1943
- brandDescriptionClassName
1944
- ),
1945
- children: footerDetails.description
1946
- }
1947
- )
1948
- ]
1949
- }
1950
- ),
1951
- footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
1952
- "div",
1953
- {
1954
- className: cn(
1955
- "space-y-6",
1956
- accordionColumnClassName
1957
- ),
1958
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1959
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-sm font-semibold tracking-wide", children: section.title }),
1960
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2.5 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1961
- Pressable,
1962
- {
1963
- href: item.link,
1964
- className: "transition-colors hover:text-foreground",
1965
- children: item.text
1966
- }
1967
- ) }, idx)) })
1968
- ] }, section.id)) })
1969
- }
1970
- )
1930
+ optixFlowConfig
1931
+ }
1932
+ ),
1933
+ footerDetails?.description && /* @__PURE__ */ jsxRuntime.jsx(
1934
+ "p",
1935
+ {
1936
+ className: cn(
1937
+ "max-w-md text-sm leading-relaxed text-muted-foreground",
1938
+ brandDescriptionClassName
1939
+ ),
1940
+ children: footerDetails.description
1941
+ }
1942
+ )
1943
+ ] }),
1944
+ footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-6", accordionColumnClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid gap-8 grid-cols-2 md:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1945
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-sm font-semibold tracking-wide", children: section.title }),
1946
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-2.5 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1947
+ Pressable,
1948
+ {
1949
+ href: item.link,
1950
+ className: "transition-colors hover:text-foreground",
1951
+ children: item.text
1952
+ }
1953
+ ) }, idx)) })
1954
+ ] }, section.id)) }) })
1971
1955
  ]
1972
1956
  }
1973
1957
  ),
@@ -222,6 +222,10 @@ interface FooterInfoCardsAccordionProps {
222
222
  * Section background variant
223
223
  */
224
224
  background?: SectionBackground;
225
+ /**
226
+ * Additional CSS classes for the container
227
+ */
228
+ containerClassName?: string;
225
229
  /**
226
230
  * Section spacing variant
227
231
  */
@@ -261,6 +265,6 @@ interface FooterInfoCardsAccordionProps {
261
265
  * />
262
266
  * ```
263
267
  */
264
- declare function FooterInfoCardsAccordion({ newsletterTitle, newsletterDescription, emailPlaceholder, subscribeText, termsText, termsLinkText, termsLinkUrl, privacyLinkText, privacyLinkUrl, infoItems, footerLinks, socialLinks, paymentPlatforms, submenuLinks, footerDetails, copyright, className, contentClassName, newsletterGridClassName, newsletterImageClassName, newsletterContentClassName, newsletterTitleClassName, newsletterDescriptionClassName, newsletterFormClassName, infoCardsGridClassName, infoCardClassName, brandGridClassName, brandColumnClassName, logoClassName, brandDescriptionClassName, accordionColumnClassName, paymentSocialRowClassName, paymentMethodsClassName, socialLinksClassName, bottomClassName, copyrightClassName, submenuLinksClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterInfoCardsAccordionProps): react_jsx_runtime.JSX.Element;
268
+ declare function FooterInfoCardsAccordion({ newsletterTitle, newsletterDescription, emailPlaceholder, subscribeText, termsText, termsLinkText, termsLinkUrl, privacyLinkText, privacyLinkUrl, infoItems, footerLinks, socialLinks, paymentPlatforms, submenuLinks, footerDetails, copyright, className, contentClassName, newsletterGridClassName, newsletterImageClassName, newsletterContentClassName, newsletterTitleClassName, newsletterDescriptionClassName, newsletterFormClassName, infoCardsGridClassName, infoCardClassName, brandGridClassName, brandColumnClassName, logoClassName, brandDescriptionClassName, accordionColumnClassName, paymentSocialRowClassName, paymentMethodsClassName, socialLinksClassName, bottomClassName, copyrightClassName, submenuLinksClassName, background, containerClassName, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterInfoCardsAccordionProps): react_jsx_runtime.JSX.Element;
265
269
 
266
270
  export { FooterInfoCardsAccordion, type FooterInfoCardsAccordionInfoItem, type FooterInfoCardsAccordionLink, type FooterInfoCardsAccordionProps, type FooterInfoCardsAccordionSection, FooterSocialLink, PaymentPlatformName };
@@ -222,6 +222,10 @@ interface FooterInfoCardsAccordionProps {
222
222
  * Section background variant
223
223
  */
224
224
  background?: SectionBackground;
225
+ /**
226
+ * Additional CSS classes for the container
227
+ */
228
+ containerClassName?: string;
225
229
  /**
226
230
  * Section spacing variant
227
231
  */
@@ -261,6 +265,6 @@ interface FooterInfoCardsAccordionProps {
261
265
  * />
262
266
  * ```
263
267
  */
264
- declare function FooterInfoCardsAccordion({ newsletterTitle, newsletterDescription, emailPlaceholder, subscribeText, termsText, termsLinkText, termsLinkUrl, privacyLinkText, privacyLinkUrl, infoItems, footerLinks, socialLinks, paymentPlatforms, submenuLinks, footerDetails, copyright, className, contentClassName, newsletterGridClassName, newsletterImageClassName, newsletterContentClassName, newsletterTitleClassName, newsletterDescriptionClassName, newsletterFormClassName, infoCardsGridClassName, infoCardClassName, brandGridClassName, brandColumnClassName, logoClassName, brandDescriptionClassName, accordionColumnClassName, paymentSocialRowClassName, paymentMethodsClassName, socialLinksClassName, bottomClassName, copyrightClassName, submenuLinksClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterInfoCardsAccordionProps): react_jsx_runtime.JSX.Element;
268
+ declare function FooterInfoCardsAccordion({ newsletterTitle, newsletterDescription, emailPlaceholder, subscribeText, termsText, termsLinkText, termsLinkUrl, privacyLinkText, privacyLinkUrl, infoItems, footerLinks, socialLinks, paymentPlatforms, submenuLinks, footerDetails, copyright, className, contentClassName, newsletterGridClassName, newsletterImageClassName, newsletterContentClassName, newsletterTitleClassName, newsletterDescriptionClassName, newsletterFormClassName, infoCardsGridClassName, infoCardClassName, brandGridClassName, brandColumnClassName, logoClassName, brandDescriptionClassName, accordionColumnClassName, paymentSocialRowClassName, paymentMethodsClassName, socialLinksClassName, bottomClassName, copyrightClassName, submenuLinksClassName, background, containerClassName, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterInfoCardsAccordionProps): react_jsx_runtime.JSX.Element;
265
269
 
266
270
  export { FooterInfoCardsAccordion, type FooterInfoCardsAccordionInfoItem, type FooterInfoCardsAccordionLink, type FooterInfoCardsAccordionProps, type FooterInfoCardsAccordionSection, FooterSocialLink, PaymentPlatformName };
@@ -1719,7 +1719,8 @@ function FooterInfoCardsAccordion({
1719
1719
  copyrightClassName,
1720
1720
  submenuLinksClassName,
1721
1721
  background,
1722
- spacing,
1722
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1723
+ spacing = "py-6 md:py-32",
1723
1724
  pattern,
1724
1725
  patternOpacity,
1725
1726
  optixFlowConfig
@@ -1739,6 +1740,7 @@ function FooterInfoCardsAccordion({
1739
1740
  pattern,
1740
1741
  patternOpacity,
1741
1742
  className: cn(className),
1743
+ containerClassName,
1742
1744
  children: /* @__PURE__ */ jsxs("div", { className: cn("space-y-12 lg:space-y-14", contentClassName), children: [
1743
1745
  footerDetails?.image?.src && (newsletterTitle || newsletterDescription || subscribeText) && /* @__PURE__ */ jsxs(
1744
1746
  "div",
@@ -1891,61 +1893,43 @@ function FooterInfoCardsAccordion({
1891
1893
  brandGridClassName
1892
1894
  ),
1893
1895
  children: [
1894
- (footerDetails?.logo || footerDetails?.description) && /* @__PURE__ */ jsxs(
1895
- "div",
1896
- {
1897
- className: cn(
1898
- "space-y-5",
1899
- brandColumnClassName
1900
- ),
1901
- children: [
1902
- footerDetails?.logo && /* @__PURE__ */ jsx(
1903
- FooterLogo,
1904
- {
1905
- logo: {
1906
- ...footerDetails.logo,
1907
- url: footerDetails.logoUrl || "/"
1908
- },
1909
- logoClassName: cn(
1910
- "inline-block w-full max-w-64",
1911
- logoClassName
1912
- ),
1913
- optixFlowConfig
1914
- }
1896
+ (footerDetails?.logo || footerDetails?.description) && /* @__PURE__ */ jsxs("div", { className: cn("space-y-5", brandColumnClassName), children: [
1897
+ footerDetails?.logo && /* @__PURE__ */ jsx(
1898
+ FooterLogo,
1899
+ {
1900
+ logo: {
1901
+ ...footerDetails.logo,
1902
+ url: footerDetails.logoUrl || "/"
1903
+ },
1904
+ logoClassName: cn(
1905
+ "inline-block w-full max-w-64",
1906
+ logoClassName
1915
1907
  ),
1916
- footerDetails?.description && /* @__PURE__ */ jsx(
1917
- "p",
1918
- {
1919
- className: cn(
1920
- "max-w-md text-sm leading-relaxed text-muted-foreground",
1921
- brandDescriptionClassName
1922
- ),
1923
- children: footerDetails.description
1924
- }
1925
- )
1926
- ]
1927
- }
1928
- ),
1929
- footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsx(
1930
- "div",
1931
- {
1932
- className: cn(
1933
- "space-y-6",
1934
- accordionColumnClassName
1935
- ),
1936
- children: /* @__PURE__ */ jsx("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxs("div", { children: [
1937
- /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-semibold tracking-wide", children: section.title }),
1938
- /* @__PURE__ */ jsx("ul", { className: "space-y-2.5 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1939
- Pressable,
1940
- {
1941
- href: item.link,
1942
- className: "transition-colors hover:text-foreground",
1943
- children: item.text
1944
- }
1945
- ) }, idx)) })
1946
- ] }, section.id)) })
1947
- }
1948
- )
1908
+ optixFlowConfig
1909
+ }
1910
+ ),
1911
+ footerDetails?.description && /* @__PURE__ */ jsx(
1912
+ "p",
1913
+ {
1914
+ className: cn(
1915
+ "max-w-md text-sm leading-relaxed text-muted-foreground",
1916
+ brandDescriptionClassName
1917
+ ),
1918
+ children: footerDetails.description
1919
+ }
1920
+ )
1921
+ ] }),
1922
+ footerLinks && footerLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("space-y-6", accordionColumnClassName), children: /* @__PURE__ */ jsx("div", { className: "grid gap-8 grid-cols-2 md:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxs("div", { children: [
1923
+ /* @__PURE__ */ jsx("h3", { className: "mb-4 text-sm font-semibold tracking-wide", children: section.title }),
1924
+ /* @__PURE__ */ jsx("ul", { className: "space-y-2.5 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1925
+ Pressable,
1926
+ {
1927
+ href: item.link,
1928
+ className: "transition-colors hover:text-foreground",
1929
+ children: item.text
1930
+ }
1931
+ ) }, idx)) })
1932
+ ] }, section.id)) }) })
1949
1933
  ]
1950
1934
  }
1951
1935
  ),
@@ -32,32 +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
35
  function normalizePhoneNumber(input) {
62
36
  const trimmed = input.trim();
63
37
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -861,11 +835,11 @@ function HeroLogoCenteredScreenshot({
861
835
  image,
862
836
  imageSlot,
863
837
  background,
864
- spacing,
838
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
839
+ spacing = "py-6 md:py-32",
865
840
  pattern,
866
841
  patternOpacity,
867
842
  className,
868
- containerClassName,
869
843
  contentClassName,
870
844
  headingClassName,
871
845
  descriptionClassName,
@@ -881,7 +855,7 @@ function HeroLogoCenteredScreenshot({
881
855
  {
882
856
  src: logoSrc,
883
857
  alt: logo.alt,
884
- className: cn("h-10 md:h-16", logo.className),
858
+ className: cn("h-10 md:h-16 object-contain", logo.className),
885
859
  optixFlowConfig
886
860
  }
887
861
  );
@@ -889,7 +863,14 @@ function HeroLogoCenteredScreenshot({
889
863
  const renderAction = React.useMemo(() => {
890
864
  if (actionSlot) return actionSlot;
891
865
  if (!action) return null;
892
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
866
+ const {
867
+ label,
868
+ icon,
869
+ iconAfter,
870
+ children,
871
+ className: actionClassName,
872
+ ...pressableProps
873
+ } = action;
893
874
  return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
894
875
  icon,
895
876
  label,
@@ -904,7 +885,11 @@ function HeroLogoCenteredScreenshot({
904
885
  {
905
886
  src: image.src,
906
887
  alt: image.alt,
907
- className: cn("mt-20 aspect-video w-full rounded-t-lg object-cover", imageClassName, image.className),
888
+ className: cn(
889
+ "mt-20 w-full rounded-xl object-cover h-auto shadow-xl",
890
+ imageClassName,
891
+ image.className
892
+ ),
908
893
  optixFlowConfig
909
894
  }
910
895
  );
@@ -917,15 +902,51 @@ function HeroLogoCenteredScreenshot({
917
902
  pattern,
918
903
  patternOpacity,
919
904
  className: cn(className),
920
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "border-b", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
921
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("z-10 flex flex-col items-center gap-6 text-center", contentClassName), children: [
922
- renderLogo,
923
- /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
924
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-4 text-3xl font-medium text-pretty lg:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-4 text-3xl font-medium text-pretty lg:text-5xl", headingClassName), children: heading })),
925
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-3xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
926
- ] }),
927
- renderAction
928
- ] }) }),
905
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
906
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
907
+ "div",
908
+ {
909
+ className: cn(
910
+ "z-10 flex flex-col items-center gap-6 text-center",
911
+ contentClassName
912
+ ),
913
+ children: [
914
+ renderLogo,
915
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center items-center w-full text-balance", children: [
916
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
917
+ "h1",
918
+ {
919
+ className: cn(
920
+ "mb-4 text-3xl font-medium lg:text-5xl",
921
+ headingClassName
922
+ ),
923
+ children: heading
924
+ }
925
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
926
+ "h1",
927
+ {
928
+ className: cn(
929
+ "mb-4 text-3xl font-medium lg:text-5xl",
930
+ headingClassName
931
+ ),
932
+ children: heading
933
+ }
934
+ )),
935
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
936
+ "p",
937
+ {
938
+ className: cn(
939
+ "max-w-3xl lg:text-xl",
940
+ descriptionClassName
941
+ ),
942
+ children: description
943
+ }
944
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
945
+ ] }),
946
+ renderAction
947
+ ]
948
+ }
949
+ ) }),
929
950
  renderImage
930
951
  ] }) })
931
952
  }