@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.
- package/dist/components.cjs +155 -75
- package/dist/components.js +155 -75
- package/dist/feature-utility-cards-grid.cjs +1 -1
- package/dist/feature-utility-cards-grid.js +1 -1
- package/dist/footer-cta-banner.cjs +155 -75
- package/dist/footer-cta-banner.d.cts +5 -1
- package/dist/footer-cta-banner.d.ts +5 -1
- package/dist/footer-cta-banner.js +155 -75
- package/dist/hero-overlay-cta-grid.cjs +85 -90
- package/dist/hero-overlay-cta-grid.js +85 -90
- package/dist/hero-pattern-badge-logos.cjs +28 -9
- package/dist/hero-pattern-badge-logos.js +28 -9
- package/dist/hero-pattern-logo-tech-stack.cjs +133 -105
- package/dist/hero-pattern-logo-tech-stack.d.cts +1 -4
- package/dist/hero-pattern-logo-tech-stack.d.ts +1 -4
- package/dist/hero-pattern-logo-tech-stack.js +133 -105
- package/dist/index.cjs +155 -75
- package/dist/index.js +155 -75
- package/dist/link-page-newsletter-social.cjs +75 -137
- package/dist/link-page-newsletter-social.d.cts +1 -1
- package/dist/link-page-newsletter-social.d.ts +1 -1
- package/dist/link-page-newsletter-social.js +75 -137
- package/dist/link-tree-block.cjs +31 -32
- package/dist/link-tree-block.d.cts +1 -5
- package/dist/link-tree-block.d.ts +1 -5
- package/dist/link-tree-block.js +31 -32
- package/dist/registry.cjs +465 -317
- package/dist/registry.js +465 -317
- package/package.json +1 -1
|
@@ -1655,7 +1655,8 @@ function FooterCtaBanner({
|
|
|
1655
1655
|
legalLinksClassName,
|
|
1656
1656
|
legalLinkClassName,
|
|
1657
1657
|
background,
|
|
1658
|
-
|
|
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
|
|
1671
|
+
className,
|
|
1672
|
+
containerClassName,
|
|
1671
1673
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
|
|
1672
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1673
|
-
|
|
1674
|
-
|
|
1675
|
-
|
|
1676
|
-
|
|
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
|
-
|
|
1696
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
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
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
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
|
-
"
|
|
1752
|
+
"ul",
|
|
1708
1753
|
{
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
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
|
-
|
|
1717
|
-
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
1731
|
-
|
|
1732
|
-
|
|
1733
|
-
|
|
1734
|
-
}
|
|
1735
|
-
|
|
1736
|
-
|
|
1737
|
-
|
|
1738
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
1739
|
-
|
|
1740
|
-
|
|
1741
|
-
|
|
1742
|
-
|
|
1743
|
-
|
|
1744
|
-
|
|
1745
|
-
|
|
1746
|
-
|
|
1747
|
-
|
|
1748
|
-
|
|
1749
|
-
|
|
1750
|
-
|
|
1751
|
-
|
|
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
|
-
|
|
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
|
|
1650
|
+
className,
|
|
1651
|
+
containerClassName,
|
|
1650
1652
|
children: /* @__PURE__ */ jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxs("footer", { children: [
|
|
1651
|
-
/* @__PURE__ */ jsxs(
|
|
1652
|
-
|
|
1653
|
-
|
|
1654
|
-
|
|
1655
|
-
|
|
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
|
-
|
|
1675
|
-
/* @__PURE__ */ jsx(
|
|
1676
|
-
|
|
1677
|
-
|
|
1678
|
-
|
|
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
|
-
|
|
1681
|
-
|
|
1682
|
-
|
|
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
|
-
"
|
|
1731
|
+
"ul",
|
|
1687
1732
|
{
|
|
1688
|
-
|
|
1689
|
-
|
|
1690
|
-
|
|
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
|
-
|
|
1696
|
-
|
|
1697
|
-
|
|
1698
|
-
|
|
1699
|
-
|
|
1700
|
-
|
|
1701
|
-
|
|
1702
|
-
|
|
1703
|
-
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
}
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
/* @__PURE__ */ jsxs(
|
|
1718
|
-
|
|
1719
|
-
|
|
1720
|
-
|
|
1721
|
-
|
|
1722
|
-
|
|
1723
|
-
|
|
1724
|
-
|
|
1725
|
-
|
|
1726
|
-
|
|
1727
|
-
|
|
1728
|
-
|
|
1729
|
-
|
|
1730
|
-
|
|
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
|
);
|