@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.
@@ -1655,7 +1655,8 @@ function FooterCtaBanner({
1655
1655
  legalLinksClassName,
1656
1656
  legalLinkClassName,
1657
1657
  background,
1658
- spacing,
1658
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1659
+ spacing = "py-6 md:py-32",
1659
1660
  pattern,
1660
1661
  patternOpacity,
1661
1662
  optixFlowConfig
@@ -1667,89 +1668,168 @@ function FooterCtaBanner({
1667
1668
  spacing,
1668
1669
  pattern,
1669
1670
  patternOpacity,
1670
- className: cn("dark", className),
1671
+ className,
1672
+ containerClassName,
1671
1673
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
1672
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-16 rounded-lg border p-8 text-center md:p-12", ctaBannerClassName), children: [
1673
- /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", ctaHeadingClassName), children: ctaHeading }),
1674
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-6 max-w-2xl opacity-80", ctaDescriptionClassName), children: ctaDescription }),
1675
- /* @__PURE__ */ jsxRuntime.jsx(
1676
- Pressable,
1677
- {
1678
- href: ctaButtonUrl,
1679
- className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:opacity-80 h-11 px-8", ctaButtonClassName),
1680
- children: ctaButtonText
1681
- }
1682
- )
1683
- ] }),
1684
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid gap-10 lg:grid-cols-5", gridClassName), children: [
1685
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:col-span-2", brandClassName), children: [
1686
- logo && /* @__PURE__ */ jsxRuntime.jsx(
1687
- FooterLogo,
1688
- {
1689
- logo,
1690
- logoClassName: cn("mb-6", logoWrapperClassName),
1691
- logoImageClassName: logoClassName,
1692
- optixFlowConfig
1693
- }
1674
+ /* @__PURE__ */ jsxRuntime.jsxs(
1675
+ "div",
1676
+ {
1677
+ className: cn(
1678
+ "mb-16 rounded-lg border p-8 text-center md:p-12",
1679
+ ctaBannerClassName
1694
1680
  ),
1695
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-6", newsletterClassName), children: [
1696
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-medium", children: newsletterLabel }),
1697
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-sm gap-2", children: [
1698
- /* @__PURE__ */ jsxRuntime.jsx(
1699
- "input",
1681
+ children: [
1682
+ /* @__PURE__ */ jsxRuntime.jsx(
1683
+ "h2",
1684
+ {
1685
+ className: cn(
1686
+ "mb-4 text-3xl font-bold md:text-4xl text-balance",
1687
+ ctaHeadingClassName
1688
+ ),
1689
+ children: ctaHeading
1690
+ }
1691
+ ),
1692
+ /* @__PURE__ */ jsxRuntime.jsx(
1693
+ "p",
1694
+ {
1695
+ className: cn(
1696
+ "mx-auto mb-6 max-w-2xl opacity-80 text-balance",
1697
+ ctaDescriptionClassName
1698
+ ),
1699
+ children: ctaDescription
1700
+ }
1701
+ ),
1702
+ /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: ctaButtonUrl, asButton: true, variant: "default", children: ctaButtonText })
1703
+ ]
1704
+ }
1705
+ ),
1706
+ /* @__PURE__ */ jsxRuntime.jsxs(
1707
+ "div",
1708
+ {
1709
+ className: cn(
1710
+ "grid gap-10 grid-cols-2 md:grid-cols-5",
1711
+ gridClassName
1712
+ ),
1713
+ children: [
1714
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("col-span-2", brandClassName), children: [
1715
+ logo && /* @__PURE__ */ jsxRuntime.jsx(
1716
+ FooterLogo,
1700
1717
  {
1701
- type: "email",
1702
- placeholder: newsletterPlaceholder,
1703
- className: cn("flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", newsletterInputClassName)
1718
+ logo,
1719
+ logoClassName: cn("mb-6", logoWrapperClassName),
1720
+ logoImageClassName: logoClassName,
1721
+ optixFlowConfig
1704
1722
  }
1705
1723
  ),
1724
+ newsletterClassName && newsletterLabel && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-6", newsletterClassName), children: [
1725
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-medium", children: newsletterLabel }),
1726
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-sm gap-2", children: [
1727
+ /* @__PURE__ */ jsxRuntime.jsx(
1728
+ "input",
1729
+ {
1730
+ type: "email",
1731
+ placeholder: newsletterPlaceholder,
1732
+ className: cn(
1733
+ "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
1734
+ newsletterInputClassName
1735
+ )
1736
+ }
1737
+ ),
1738
+ /* @__PURE__ */ jsxRuntime.jsx(
1739
+ "button",
1740
+ {
1741
+ type: "submit",
1742
+ className: cn(
1743
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1744
+ newsletterButtonClassName
1745
+ ),
1746
+ children: newsletterButtonText
1747
+ }
1748
+ )
1749
+ ] })
1750
+ ] }),
1706
1751
  /* @__PURE__ */ jsxRuntime.jsx(
1707
- "button",
1752
+ "ul",
1708
1753
  {
1709
- type: "submit",
1710
- className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2", newsletterButtonClassName),
1711
- children: newsletterButtonText
1754
+ className: cn("flex items-center gap-4", socialLinksClassName),
1755
+ children: socialLinks?.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1756
+ SocialLinkIcon,
1757
+ {
1758
+ href: social.href,
1759
+ label: social.label,
1760
+ iconNameOverride: social.iconNameOverride,
1761
+ className: cn(
1762
+ "opacity-80 transition-colors hover:opacity-100",
1763
+ socialLinkClassName
1764
+ )
1765
+ }
1766
+ ) }, idx))
1712
1767
  }
1713
1768
  )
1714
- ] })
1715
- ] }),
1716
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("flex items-center gap-4", socialLinksClassName), children: socialLinks?.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1717
- SocialLinkIcon,
1718
- {
1719
- href: social.href,
1720
- label: social.label,
1721
- iconNameOverride: social.iconNameOverride,
1722
- className: cn("opacity-80 transition-colors hover:opacity-100", socialLinkClassName)
1723
- }
1724
- ) }, idx)) })
1725
- ] }),
1726
- sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
1727
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1728
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-3 text-sm opacity-80", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1729
- Pressable,
1730
- {
1731
- href: link.href,
1732
- className: cn("hover:opacity-100", navLinkClassName),
1733
- children: link.name
1734
- }
1735
- ) }, linkIdx)) })
1736
- ] }, sectionIdx))
1737
- ] }),
1738
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm opacity-80 md:flex-row md:items-center", bottomClassName), children: [
1739
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1740
- /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1741
- /* @__PURE__ */ jsxRuntime.jsx(
1742
- BrandAttribution,
1743
- {
1744
- internalBrandSlug: "open_site_ai",
1745
- optionIndex: 8,
1746
- variant: "span",
1747
- linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1748
- }
1749
- )
1750
- ] }),
1751
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("flex gap-4", legalLinksClassName), children: legalLinks?.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, className: cn("hover:opacity-100", legalLinkClassName), children: link.name }) }, idx)) })
1752
- ] })
1769
+ ] }),
1770
+ sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
1771
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1772
+ /* @__PURE__ */ jsxRuntime.jsx(
1773
+ "ul",
1774
+ {
1775
+ className: cn(
1776
+ "space-y-3 text-sm opacity-80",
1777
+ navLinksClassName
1778
+ ),
1779
+ children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1780
+ Pressable,
1781
+ {
1782
+ href: link.href,
1783
+ className: cn("hover:opacity-100", navLinkClassName),
1784
+ children: link.name
1785
+ }
1786
+ ) }, linkIdx))
1787
+ }
1788
+ )
1789
+ ] }, sectionIdx))
1790
+ ]
1791
+ }
1792
+ ),
1793
+ /* @__PURE__ */ jsxRuntime.jsxs(
1794
+ "div",
1795
+ {
1796
+ className: cn(
1797
+ "mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm opacity-80 md:flex-row md:items-center",
1798
+ bottomClassName
1799
+ ),
1800
+ children: [
1801
+ /* @__PURE__ */ jsxRuntime.jsxs(
1802
+ "div",
1803
+ {
1804
+ className: cn(
1805
+ "flex flex-col gap-2 md:flex-row md:items-center md:gap-4",
1806
+ copyrightClassName
1807
+ ),
1808
+ children: [
1809
+ /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1810
+ /* @__PURE__ */ jsxRuntime.jsx(
1811
+ BrandAttribution,
1812
+ {
1813
+ internalBrandSlug: "open_site_ai",
1814
+ optionIndex: 8,
1815
+ variant: "span",
1816
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1817
+ }
1818
+ )
1819
+ ]
1820
+ }
1821
+ ),
1822
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("flex gap-4", legalLinksClassName), children: legalLinks?.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1823
+ Pressable,
1824
+ {
1825
+ href: link.href,
1826
+ className: cn("hover:opacity-100", legalLinkClassName),
1827
+ children: link.name
1828
+ }
1829
+ ) }, idx)) })
1830
+ ]
1831
+ }
1832
+ )
1753
1833
  ] }) })
1754
1834
  }
1755
1835
  );
@@ -114,6 +114,10 @@ interface FooterCtaBannerProps {
114
114
  legalLinkClassName?: string;
115
115
  /** Section background variant */
116
116
  background?: SectionBackground;
117
+ /**
118
+ * Additional CSS classes for the container
119
+ */
120
+ containerClassName?: string;
117
121
  /** Section spacing variant */
118
122
  spacing?: SectionSpacing;
119
123
  /** Optional background pattern */
@@ -130,6 +134,6 @@ interface FooterCtaBannerProps {
130
134
  * followed by multi-column navigation, newsletter signup, and social links. Ideal for SaaS products,
131
135
  * marketing sites, and businesses that want to drive conversions directly from the footer.
132
136
  */
133
- declare function FooterCtaBanner({ logo, ctaHeading, ctaDescription, ctaButtonText, ctaButtonUrl, sections, socialLinks, newsletterLabel, newsletterPlaceholder, newsletterButtonText, copyright, legalLinks, className, contentClassName, ctaBannerClassName, ctaHeadingClassName, ctaDescriptionClassName, ctaButtonClassName, gridClassName, brandClassName, logoWrapperClassName, logoClassName, newsletterClassName, newsletterInputClassName, newsletterButtonClassName, socialLinksClassName, socialLinkClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterCtaBannerProps): React.JSX.Element;
137
+ declare function FooterCtaBanner({ logo, ctaHeading, ctaDescription, ctaButtonText, ctaButtonUrl, sections, socialLinks, newsletterLabel, newsletterPlaceholder, newsletterButtonText, copyright, legalLinks, className, contentClassName, ctaBannerClassName, ctaHeadingClassName, ctaDescriptionClassName, ctaButtonClassName, gridClassName, brandClassName, logoWrapperClassName, logoClassName, newsletterClassName, newsletterInputClassName, newsletterButtonClassName, socialLinksClassName, socialLinkClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, containerClassName, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterCtaBannerProps): React.JSX.Element;
134
138
 
135
139
  export { FooterCtaBanner, type FooterCtaBannerLink, type FooterCtaBannerProps, type FooterCtaBannerSection };
@@ -114,6 +114,10 @@ interface FooterCtaBannerProps {
114
114
  legalLinkClassName?: string;
115
115
  /** Section background variant */
116
116
  background?: SectionBackground;
117
+ /**
118
+ * Additional CSS classes for the container
119
+ */
120
+ containerClassName?: string;
117
121
  /** Section spacing variant */
118
122
  spacing?: SectionSpacing;
119
123
  /** Optional background pattern */
@@ -130,6 +134,6 @@ interface FooterCtaBannerProps {
130
134
  * followed by multi-column navigation, newsletter signup, and social links. Ideal for SaaS products,
131
135
  * marketing sites, and businesses that want to drive conversions directly from the footer.
132
136
  */
133
- declare function FooterCtaBanner({ logo, ctaHeading, ctaDescription, ctaButtonText, ctaButtonUrl, sections, socialLinks, newsletterLabel, newsletterPlaceholder, newsletterButtonText, copyright, legalLinks, className, contentClassName, ctaBannerClassName, ctaHeadingClassName, ctaDescriptionClassName, ctaButtonClassName, gridClassName, brandClassName, logoWrapperClassName, logoClassName, newsletterClassName, newsletterInputClassName, newsletterButtonClassName, socialLinksClassName, socialLinkClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterCtaBannerProps): React.JSX.Element;
137
+ declare function FooterCtaBanner({ logo, ctaHeading, ctaDescription, ctaButtonText, ctaButtonUrl, sections, socialLinks, newsletterLabel, newsletterPlaceholder, newsletterButtonText, copyright, legalLinks, className, contentClassName, ctaBannerClassName, ctaHeadingClassName, ctaDescriptionClassName, ctaButtonClassName, gridClassName, brandClassName, logoWrapperClassName, logoClassName, newsletterClassName, newsletterInputClassName, newsletterButtonClassName, socialLinksClassName, socialLinkClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, containerClassName, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterCtaBannerProps): React.JSX.Element;
134
138
 
135
139
  export { FooterCtaBanner, type FooterCtaBannerLink, type FooterCtaBannerProps, type FooterCtaBannerSection };
@@ -1634,7 +1634,8 @@ function FooterCtaBanner({
1634
1634
  legalLinksClassName,
1635
1635
  legalLinkClassName,
1636
1636
  background,
1637
- spacing,
1637
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1638
+ spacing = "py-6 md:py-32",
1638
1639
  pattern,
1639
1640
  patternOpacity,
1640
1641
  optixFlowConfig
@@ -1646,89 +1647,168 @@ function FooterCtaBanner({
1646
1647
  spacing,
1647
1648
  pattern,
1648
1649
  patternOpacity,
1649
- className: cn("dark", className),
1650
+ className,
1651
+ containerClassName,
1650
1652
  children: /* @__PURE__ */ jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxs("footer", { children: [
1651
- /* @__PURE__ */ jsxs("div", { className: cn("mb-16 rounded-lg border p-8 text-center md:p-12", ctaBannerClassName), children: [
1652
- /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", ctaHeadingClassName), children: ctaHeading }),
1653
- /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl opacity-80", ctaDescriptionClassName), children: ctaDescription }),
1654
- /* @__PURE__ */ jsx(
1655
- Pressable,
1656
- {
1657
- href: ctaButtonUrl,
1658
- className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md border text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 hover:opacity-80 h-11 px-8", ctaButtonClassName),
1659
- children: ctaButtonText
1660
- }
1661
- )
1662
- ] }),
1663
- /* @__PURE__ */ jsxs("div", { className: cn("grid gap-10 lg:grid-cols-5", gridClassName), children: [
1664
- /* @__PURE__ */ jsxs("div", { className: cn("lg:col-span-2", brandClassName), children: [
1665
- logo && /* @__PURE__ */ jsx(
1666
- FooterLogo,
1667
- {
1668
- logo,
1669
- logoClassName: cn("mb-6", logoWrapperClassName),
1670
- logoImageClassName: logoClassName,
1671
- optixFlowConfig
1672
- }
1653
+ /* @__PURE__ */ jsxs(
1654
+ "div",
1655
+ {
1656
+ className: cn(
1657
+ "mb-16 rounded-lg border p-8 text-center md:p-12",
1658
+ ctaBannerClassName
1673
1659
  ),
1674
- /* @__PURE__ */ jsxs("div", { className: cn("mb-6", newsletterClassName), children: [
1675
- /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-medium", children: newsletterLabel }),
1676
- /* @__PURE__ */ jsxs("div", { className: "flex max-w-sm gap-2", children: [
1677
- /* @__PURE__ */ jsx(
1678
- "input",
1660
+ children: [
1661
+ /* @__PURE__ */ jsx(
1662
+ "h2",
1663
+ {
1664
+ className: cn(
1665
+ "mb-4 text-3xl font-bold md:text-4xl text-balance",
1666
+ ctaHeadingClassName
1667
+ ),
1668
+ children: ctaHeading
1669
+ }
1670
+ ),
1671
+ /* @__PURE__ */ jsx(
1672
+ "p",
1673
+ {
1674
+ className: cn(
1675
+ "mx-auto mb-6 max-w-2xl opacity-80 text-balance",
1676
+ ctaDescriptionClassName
1677
+ ),
1678
+ children: ctaDescription
1679
+ }
1680
+ ),
1681
+ /* @__PURE__ */ jsx(Pressable, { href: ctaButtonUrl, asButton: true, variant: "default", children: ctaButtonText })
1682
+ ]
1683
+ }
1684
+ ),
1685
+ /* @__PURE__ */ jsxs(
1686
+ "div",
1687
+ {
1688
+ className: cn(
1689
+ "grid gap-10 grid-cols-2 md:grid-cols-5",
1690
+ gridClassName
1691
+ ),
1692
+ children: [
1693
+ /* @__PURE__ */ jsxs("div", { className: cn("col-span-2", brandClassName), children: [
1694
+ logo && /* @__PURE__ */ jsx(
1695
+ FooterLogo,
1679
1696
  {
1680
- type: "email",
1681
- placeholder: newsletterPlaceholder,
1682
- className: cn("flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50", newsletterInputClassName)
1697
+ logo,
1698
+ logoClassName: cn("mb-6", logoWrapperClassName),
1699
+ logoImageClassName: logoClassName,
1700
+ optixFlowConfig
1683
1701
  }
1684
1702
  ),
1703
+ newsletterClassName && newsletterLabel && /* @__PURE__ */ jsxs("div", { className: cn("mb-6", newsletterClassName), children: [
1704
+ /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-medium", children: newsletterLabel }),
1705
+ /* @__PURE__ */ jsxs("div", { className: "flex max-w-sm gap-2", children: [
1706
+ /* @__PURE__ */ jsx(
1707
+ "input",
1708
+ {
1709
+ type: "email",
1710
+ placeholder: newsletterPlaceholder,
1711
+ className: cn(
1712
+ "flex h-10 w-full rounded-md border border-input px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:cursor-not-allowed disabled:opacity-50",
1713
+ newsletterInputClassName
1714
+ )
1715
+ }
1716
+ ),
1717
+ /* @__PURE__ */ jsx(
1718
+ "button",
1719
+ {
1720
+ type: "submit",
1721
+ className: cn(
1722
+ "inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2",
1723
+ newsletterButtonClassName
1724
+ ),
1725
+ children: newsletterButtonText
1726
+ }
1727
+ )
1728
+ ] })
1729
+ ] }),
1685
1730
  /* @__PURE__ */ jsx(
1686
- "button",
1731
+ "ul",
1687
1732
  {
1688
- type: "submit",
1689
- className: cn("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 bg-primary text-primary-foreground hover:bg-primary/90 h-10 px-4 py-2", newsletterButtonClassName),
1690
- children: newsletterButtonText
1733
+ className: cn("flex items-center gap-4", socialLinksClassName),
1734
+ children: socialLinks?.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1735
+ SocialLinkIcon,
1736
+ {
1737
+ href: social.href,
1738
+ label: social.label,
1739
+ iconNameOverride: social.iconNameOverride,
1740
+ className: cn(
1741
+ "opacity-80 transition-colors hover:opacity-100",
1742
+ socialLinkClassName
1743
+ )
1744
+ }
1745
+ ) }, idx))
1691
1746
  }
1692
1747
  )
1693
- ] })
1694
- ] }),
1695
- /* @__PURE__ */ jsx("ul", { className: cn("flex items-center gap-4", socialLinksClassName), children: socialLinks?.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1696
- SocialLinkIcon,
1697
- {
1698
- href: social.href,
1699
- label: social.label,
1700
- iconNameOverride: social.iconNameOverride,
1701
- className: cn("opacity-80 transition-colors hover:opacity-100", socialLinkClassName)
1702
- }
1703
- ) }, idx)) })
1704
- ] }),
1705
- sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: cn(navSectionClassName), children: [
1706
- /* @__PURE__ */ jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1707
- /* @__PURE__ */ jsx("ul", { className: cn("space-y-3 text-sm opacity-80", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1708
- Pressable,
1709
- {
1710
- href: link.href,
1711
- className: cn("hover:opacity-100", navLinkClassName),
1712
- children: link.name
1713
- }
1714
- ) }, linkIdx)) })
1715
- ] }, sectionIdx))
1716
- ] }),
1717
- /* @__PURE__ */ jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm opacity-80 md:flex-row md:items-center", bottomClassName), children: [
1718
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1719
- /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1720
- /* @__PURE__ */ jsx(
1721
- BrandAttribution,
1722
- {
1723
- internalBrandSlug: "open_site_ai",
1724
- optionIndex: 8,
1725
- variant: "span",
1726
- linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1727
- }
1728
- )
1729
- ] }),
1730
- /* @__PURE__ */ jsx("ul", { className: cn("flex gap-4", legalLinksClassName), children: legalLinks?.map((link, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Pressable, { href: link.href, className: cn("hover:opacity-100", legalLinkClassName), children: link.name }) }, idx)) })
1731
- ] })
1748
+ ] }),
1749
+ sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: cn(navSectionClassName), children: [
1750
+ /* @__PURE__ */ jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1751
+ /* @__PURE__ */ jsx(
1752
+ "ul",
1753
+ {
1754
+ className: cn(
1755
+ "space-y-3 text-sm opacity-80",
1756
+ navLinksClassName
1757
+ ),
1758
+ children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1759
+ Pressable,
1760
+ {
1761
+ href: link.href,
1762
+ className: cn("hover:opacity-100", navLinkClassName),
1763
+ children: link.name
1764
+ }
1765
+ ) }, linkIdx))
1766
+ }
1767
+ )
1768
+ ] }, sectionIdx))
1769
+ ]
1770
+ }
1771
+ ),
1772
+ /* @__PURE__ */ jsxs(
1773
+ "div",
1774
+ {
1775
+ className: cn(
1776
+ "mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm opacity-80 md:flex-row md:items-center",
1777
+ bottomClassName
1778
+ ),
1779
+ children: [
1780
+ /* @__PURE__ */ jsxs(
1781
+ "div",
1782
+ {
1783
+ className: cn(
1784
+ "flex flex-col gap-2 md:flex-row md:items-center md:gap-4",
1785
+ copyrightClassName
1786
+ ),
1787
+ children: [
1788
+ /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1789
+ /* @__PURE__ */ jsx(
1790
+ BrandAttribution,
1791
+ {
1792
+ internalBrandSlug: "open_site_ai",
1793
+ optionIndex: 8,
1794
+ variant: "span",
1795
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1796
+ }
1797
+ )
1798
+ ]
1799
+ }
1800
+ ),
1801
+ /* @__PURE__ */ jsx("ul", { className: cn("flex gap-4", legalLinksClassName), children: legalLinks?.map((link, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1802
+ Pressable,
1803
+ {
1804
+ href: link.href,
1805
+ className: cn("hover:opacity-100", legalLinkClassName),
1806
+ children: link.name
1807
+ }
1808
+ ) }, idx)) })
1809
+ ]
1810
+ }
1811
+ )
1732
1812
  ] }) })
1733
1813
  }
1734
1814
  );