@opensite/ui 1.4.0 → 1.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/dist/components.cjs +90 -90
  2. package/dist/components.js +90 -90
  3. package/dist/feature-bento-image-grid.cjs +219 -114
  4. package/dist/feature-bento-image-grid.js +219 -114
  5. package/dist/feature-icon-grid-bordered.cjs +1 -1
  6. package/dist/feature-icon-grid-bordered.js +1 -1
  7. package/dist/footer-accordion-social.cjs +6 -6
  8. package/dist/footer-accordion-social.js +6 -6
  9. package/dist/footer-animated-social.cjs +7 -7
  10. package/dist/footer-animated-social.js +7 -7
  11. package/dist/footer-background-card.cjs +13 -13
  12. package/dist/footer-background-card.js +13 -13
  13. package/dist/footer-brand-description.cjs +12 -10
  14. package/dist/footer-brand-description.d.cts +5 -1
  15. package/dist/footer-brand-description.d.ts +5 -1
  16. package/dist/footer-brand-description.js +12 -10
  17. package/dist/footer-brand-links-contact.cjs +9 -9
  18. package/dist/footer-brand-links-contact.js +9 -9
  19. package/dist/footer-comprehensive-links.cjs +1 -1
  20. package/dist/footer-comprehensive-links.js +1 -1
  21. package/dist/footer-contact-card.cjs +7 -39
  22. package/dist/footer-contact-card.js +7 -39
  23. package/dist/footer-cta-banner.cjs +10 -10
  24. package/dist/footer-cta-banner.js +10 -10
  25. package/dist/footer-cta-social.cjs +7 -7
  26. package/dist/footer-cta-social.js +7 -7
  27. package/dist/footer-info-cards-accordion.cjs +9 -9
  28. package/dist/footer-info-cards-accordion.js +9 -9
  29. package/dist/footer-links-grid.cjs +1 -1
  30. package/dist/footer-links-grid.js +1 -1
  31. package/dist/footer-nav-social.cjs +8 -8
  32. package/dist/footer-nav-social.js +8 -8
  33. package/dist/footer-newsletter-contact.cjs +5 -5
  34. package/dist/footer-newsletter-contact.js +5 -5
  35. package/dist/footer-newsletter-grid.cjs +9 -9
  36. package/dist/footer-newsletter-grid.js +9 -9
  37. package/dist/footer-newsletter-minimal.cjs +6 -6
  38. package/dist/footer-newsletter-minimal.js +6 -6
  39. package/dist/footer-simple-centered.cjs +6 -6
  40. package/dist/footer-simple-centered.js +6 -6
  41. package/dist/footer-social-apps.cjs +2 -2
  42. package/dist/footer-social-apps.js +2 -2
  43. package/dist/footer-social-newsletter.cjs +2 -2
  44. package/dist/footer-social-newsletter.js +2 -2
  45. package/dist/footer-split-image-accordion.cjs +6 -6
  46. package/dist/footer-split-image-accordion.js +6 -6
  47. package/dist/index.cjs +90 -90
  48. package/dist/index.js +90 -90
  49. package/dist/registry.cjs +346 -215
  50. package/dist/registry.js +346 -215
  51. package/package.json +1 -1
@@ -33,36 +33,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
33
  function cn(...inputs) {
34
34
  return tailwindMerge.twMerge(clsx.clsx(inputs));
35
35
  }
36
- function getNestedCardBg(parentBg, variant = "muted", options) {
37
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
38
- if (isDark) {
39
- switch (variant) {
40
- case "muted":
41
- return "bg-background";
42
- case "card":
43
- return "bg-card";
44
- case "accent":
45
- return "bg-accent";
46
- case "subtle":
47
- return "bg-background/50";
48
- }
49
- } else {
50
- switch (variant) {
51
- case "muted":
52
- return "bg-muted";
53
- case "card":
54
- return "bg-card";
55
- case "accent":
56
- return "bg-accent";
57
- case "subtle":
58
- return "bg-muted/50";
59
- }
60
- }
61
- }
62
- function getNestedCardTextColor(parentBg, options) {
63
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
64
- return isDark ? "text-foreground" : "";
65
- }
66
36
  function normalizePhoneNumber(input) {
67
37
  const trimmed = input.trim();
68
38
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1699,12 +1669,12 @@ function FooterContactCard({
1699
1669
  }
1700
1670
  ),
1701
1671
  heading && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }),
1702
- (email || phone || address) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-4 text-muted-foreground", contactClassName), children: [
1672
+ (email || phone || address) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-4 opacity-80", contactClassName), children: [
1703
1673
  email && /* @__PURE__ */ jsxRuntime.jsx("p", { children: /* @__PURE__ */ jsxRuntime.jsx(
1704
1674
  Pressable,
1705
1675
  {
1706
1676
  href: `mailto:${email}`,
1707
- className: "hover:text-primary",
1677
+ className: "hover:opacity-100",
1708
1678
  children: email
1709
1679
  }
1710
1680
  ) }),
@@ -1712,7 +1682,7 @@ function FooterContactCard({
1712
1682
  Pressable,
1713
1683
  {
1714
1684
  href: `tel:${phone}`,
1715
- className: "hover:text-primary",
1685
+ className: "hover:opacity-100",
1716
1686
  children: phone
1717
1687
  }
1718
1688
  ) }),
@@ -1729,9 +1699,7 @@ function FooterContactCard({
1729
1699
  label: social.label,
1730
1700
  iconNameOverride: social.iconNameOverride,
1731
1701
  className: cn(
1732
- "flex size-12 items-center justify-center rounded-full transition-colors hover:bg-primary hover:text-primary-foreground",
1733
- getNestedCardBg(background),
1734
- getNestedCardTextColor(background),
1702
+ "flex size-12 items-center justify-center rounded-full border transition-colors hover:opacity-80",
1735
1703
  socialLinkClassName
1736
1704
  )
1737
1705
  }
@@ -1741,13 +1709,13 @@ function FooterContactCard({
1741
1709
  Pressable,
1742
1710
  {
1743
1711
  href: link.href,
1744
- className: cn("text-muted-foreground hover:text-primary", navLinkClassName),
1712
+ className: cn("opacity-80 hover:opacity-100", navLinkClassName),
1745
1713
  children: link.name
1746
1714
  }
1747
1715
  ) }, idx)) }) })
1748
1716
  ] })
1749
1717
  ] }),
1750
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm text-muted-foreground md:flex-row md:items-center", bottomClassName), children: [
1718
+ /* @__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: [
1751
1719
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1752
1720
  /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1753
1721
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1756,7 +1724,7 @@ function FooterContactCard({
1756
1724
  internalBrandSlug: "open_site_ai",
1757
1725
  optionIndex: 7,
1758
1726
  variant: "span",
1759
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1727
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1760
1728
  }
1761
1729
  )
1762
1730
  ] }),
@@ -12,36 +12,6 @@ import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
12
12
  function cn(...inputs) {
13
13
  return twMerge(clsx(inputs));
14
14
  }
15
- function getNestedCardBg(parentBg, variant = "muted", options) {
16
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
17
- if (isDark) {
18
- switch (variant) {
19
- case "muted":
20
- return "bg-background";
21
- case "card":
22
- return "bg-card";
23
- case "accent":
24
- return "bg-accent";
25
- case "subtle":
26
- return "bg-background/50";
27
- }
28
- } else {
29
- switch (variant) {
30
- case "muted":
31
- return "bg-muted";
32
- case "card":
33
- return "bg-card";
34
- case "accent":
35
- return "bg-accent";
36
- case "subtle":
37
- return "bg-muted/50";
38
- }
39
- }
40
- }
41
- function getNestedCardTextColor(parentBg, options) {
42
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
43
- return isDark ? "text-foreground" : "";
44
- }
45
15
  function normalizePhoneNumber(input) {
46
16
  const trimmed = input.trim();
47
17
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1678,12 +1648,12 @@ function FooterContactCard({
1678
1648
  }
1679
1649
  ),
1680
1650
  heading && /* @__PURE__ */ jsx("h2", { className: cn("mb-8 text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }),
1681
- (email || phone || address) && /* @__PURE__ */ jsxs("div", { className: cn("space-y-4 text-muted-foreground", contactClassName), children: [
1651
+ (email || phone || address) && /* @__PURE__ */ jsxs("div", { className: cn("space-y-4 opacity-80", contactClassName), children: [
1682
1652
  email && /* @__PURE__ */ jsx("p", { children: /* @__PURE__ */ jsx(
1683
1653
  Pressable,
1684
1654
  {
1685
1655
  href: `mailto:${email}`,
1686
- className: "hover:text-primary",
1656
+ className: "hover:opacity-100",
1687
1657
  children: email
1688
1658
  }
1689
1659
  ) }),
@@ -1691,7 +1661,7 @@ function FooterContactCard({
1691
1661
  Pressable,
1692
1662
  {
1693
1663
  href: `tel:${phone}`,
1694
- className: "hover:text-primary",
1664
+ className: "hover:opacity-100",
1695
1665
  children: phone
1696
1666
  }
1697
1667
  ) }),
@@ -1708,9 +1678,7 @@ function FooterContactCard({
1708
1678
  label: social.label,
1709
1679
  iconNameOverride: social.iconNameOverride,
1710
1680
  className: cn(
1711
- "flex size-12 items-center justify-center rounded-full transition-colors hover:bg-primary hover:text-primary-foreground",
1712
- getNestedCardBg(background),
1713
- getNestedCardTextColor(background),
1681
+ "flex size-12 items-center justify-center rounded-full border transition-colors hover:opacity-80",
1714
1682
  socialLinkClassName
1715
1683
  )
1716
1684
  }
@@ -1720,13 +1688,13 @@ function FooterContactCard({
1720
1688
  Pressable,
1721
1689
  {
1722
1690
  href: link.href,
1723
- className: cn("text-muted-foreground hover:text-primary", navLinkClassName),
1691
+ className: cn("opacity-80 hover:opacity-100", navLinkClassName),
1724
1692
  children: link.name
1725
1693
  }
1726
1694
  ) }, idx)) }) })
1727
1695
  ] })
1728
1696
  ] }),
1729
- /* @__PURE__ */ jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t pt-8 text-sm text-muted-foreground md:flex-row md:items-center", bottomClassName), children: [
1697
+ /* @__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: [
1730
1698
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1731
1699
  /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1732
1700
  /* @__PURE__ */ jsx(
@@ -1735,7 +1703,7 @@ function FooterContactCard({
1735
1703
  internalBrandSlug: "open_site_ai",
1736
1704
  optionIndex: 7,
1737
1705
  variant: "span",
1738
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1706
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1739
1707
  }
1740
1708
  )
1741
1709
  ] }),
@@ -1663,14 +1663,14 @@ function FooterCtaBanner({
1663
1663
  patternOpacity,
1664
1664
  className: cn("dark", className),
1665
1665
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("footer", { children: [
1666
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-16 rounded-lg bg-primary/10 p-8 text-center md:p-12", ctaBannerClassName), children: [
1666
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-16 rounded-lg border p-8 text-center md:p-12", ctaBannerClassName), children: [
1667
1667
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", ctaHeadingClassName), children: ctaHeading }),
1668
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-muted-foreground", ctaDescriptionClassName), children: ctaDescription }),
1668
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mb-6 max-w-2xl opacity-80", ctaDescriptionClassName), children: ctaDescription }),
1669
1669
  /* @__PURE__ */ jsxRuntime.jsx(
1670
1670
  Pressable,
1671
1671
  {
1672
1672
  href: ctaButtonUrl,
1673
- 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-11 px-8", ctaButtonClassName),
1673
+ 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),
1674
1674
  children: ctaButtonText
1675
1675
  }
1676
1676
  )
@@ -1694,7 +1694,7 @@ function FooterCtaBanner({
1694
1694
  {
1695
1695
  type: "email",
1696
1696
  placeholder: newsletterPlaceholder,
1697
- className: cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground 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
+ 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)
1698
1698
  }
1699
1699
  ),
1700
1700
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1713,23 +1713,23 @@ function FooterCtaBanner({
1713
1713
  href: social.href,
1714
1714
  label: social.label,
1715
1715
  iconNameOverride: social.iconNameOverride,
1716
- className: cn("text-muted-foreground transition-colors hover:text-primary", socialLinkClassName)
1716
+ className: cn("opacity-80 transition-colors hover:opacity-100", socialLinkClassName)
1717
1717
  }
1718
1718
  ) }, idx)) })
1719
1719
  ] }),
1720
1720
  sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(navSectionClassName), children: [
1721
1721
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1722
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("space-y-3 text-sm text-muted-foreground", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1722
+ /* @__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(
1723
1723
  Pressable,
1724
1724
  {
1725
1725
  href: link.href,
1726
- className: cn("hover:text-primary", navLinkClassName),
1726
+ className: cn("hover:opacity-100", navLinkClassName),
1727
1727
  children: link.name
1728
1728
  }
1729
1729
  ) }, linkIdx)) })
1730
1730
  ] }, sectionIdx))
1731
1731
  ] }),
1732
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground md:flex-row md:items-center", bottomClassName), children: [
1732
+ /* @__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: [
1733
1733
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1734
1734
  /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1735
1735
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1738,11 +1738,11 @@ function FooterCtaBanner({
1738
1738
  internalBrandSlug: "open_site_ai",
1739
1739
  optionIndex: 8,
1740
1740
  variant: "span",
1741
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1741
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1742
1742
  }
1743
1743
  )
1744
1744
  ] }),
1745
- /* @__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:text-primary", legalLinkClassName), children: link.name }) }, idx)) })
1745
+ /* @__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)) })
1746
1746
  ] })
1747
1747
  ] }) })
1748
1748
  }
@@ -1642,14 +1642,14 @@ function FooterCtaBanner({
1642
1642
  patternOpacity,
1643
1643
  className: cn("dark", className),
1644
1644
  children: /* @__PURE__ */ jsx("div", { className: cn(contentClassName), children: /* @__PURE__ */ jsxs("footer", { children: [
1645
- /* @__PURE__ */ jsxs("div", { className: cn("mb-16 rounded-lg bg-primary/10 p-8 text-center md:p-12", ctaBannerClassName), children: [
1645
+ /* @__PURE__ */ jsxs("div", { className: cn("mb-16 rounded-lg border p-8 text-center md:p-12", ctaBannerClassName), children: [
1646
1646
  /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-4xl", ctaHeadingClassName), children: ctaHeading }),
1647
- /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl text-muted-foreground", ctaDescriptionClassName), children: ctaDescription }),
1647
+ /* @__PURE__ */ jsx("p", { className: cn("mx-auto mb-6 max-w-2xl opacity-80", ctaDescriptionClassName), children: ctaDescription }),
1648
1648
  /* @__PURE__ */ jsx(
1649
1649
  Pressable,
1650
1650
  {
1651
1651
  href: ctaButtonUrl,
1652
- 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-11 px-8", ctaButtonClassName),
1652
+ 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),
1653
1653
  children: ctaButtonText
1654
1654
  }
1655
1655
  )
@@ -1673,7 +1673,7 @@ function FooterCtaBanner({
1673
1673
  {
1674
1674
  type: "email",
1675
1675
  placeholder: newsletterPlaceholder,
1676
- className: cn("flex h-10 w-full rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground 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)
1676
+ 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)
1677
1677
  }
1678
1678
  ),
1679
1679
  /* @__PURE__ */ jsx(
@@ -1692,23 +1692,23 @@ function FooterCtaBanner({
1692
1692
  href: social.href,
1693
1693
  label: social.label,
1694
1694
  iconNameOverride: social.iconNameOverride,
1695
- className: cn("text-muted-foreground transition-colors hover:text-primary", socialLinkClassName)
1695
+ className: cn("opacity-80 transition-colors hover:opacity-100", socialLinkClassName)
1696
1696
  }
1697
1697
  ) }, idx)) })
1698
1698
  ] }),
1699
1699
  sections?.map((section, sectionIdx) => /* @__PURE__ */ jsxs("div", { className: cn(navSectionClassName), children: [
1700
1700
  /* @__PURE__ */ jsx("h3", { className: cn("mb-4 font-semibold", navTitleClassName), children: section.title }),
1701
- /* @__PURE__ */ jsx("ul", { className: cn("space-y-3 text-sm text-muted-foreground", navLinksClassName), children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1701
+ /* @__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(
1702
1702
  Pressable,
1703
1703
  {
1704
1704
  href: link.href,
1705
- className: cn("hover:text-primary", navLinkClassName),
1705
+ className: cn("hover:opacity-100", navLinkClassName),
1706
1706
  children: link.name
1707
1707
  }
1708
1708
  ) }, linkIdx)) })
1709
1709
  ] }, sectionIdx))
1710
1710
  ] }),
1711
- /* @__PURE__ */ jsxs("div", { className: cn("mt-16 flex flex-col justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground md:flex-row md:items-center", bottomClassName), children: [
1711
+ /* @__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: [
1712
1712
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1713
1713
  /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1714
1714
  /* @__PURE__ */ jsx(
@@ -1717,11 +1717,11 @@ function FooterCtaBanner({
1717
1717
  internalBrandSlug: "open_site_ai",
1718
1718
  optionIndex: 8,
1719
1719
  variant: "span",
1720
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1720
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1721
1721
  }
1722
1722
  )
1723
1723
  ] }),
1724
- /* @__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:text-primary", legalLinkClassName), children: link.name }) }, idx)) })
1724
+ /* @__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)) })
1725
1725
  ] })
1726
1726
  ] }) })
1727
1727
  }
@@ -1595,16 +1595,16 @@ function FooterCtaSocial({
1595
1595
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("relative z-10", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-2 text-center", containerClassName), children: [
1596
1596
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex w-full items-center gap-4", preHeadingWrapperClassName), children: [
1597
1597
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-px flex-1 bg-[linear-gradient(270deg,hsl(var(--primary,0_0%_100%))_0%,hsl(var(--secondary,0_0%_0%))_100%)] opacity-50", decorativeLineClassName) }),
1598
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground italic md:text-base", preHeadingClassName), children: preHeading }),
1598
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm opacity-70 italic md:text-base", preHeadingClassName), children: preHeading }),
1599
1599
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-px flex-1 bg-[linear-gradient(270deg,hsl(var(--secondary,0_0%_0%))_0%,hsl(var(--primary,0_0%_100%))_100%)] opacity-50", decorativeLineClassName) })
1600
1600
  ] }),
1601
1601
  /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("py-6 text-5xl font-bold md:text-6xl", headingClassName), children: heading }),
1602
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-2xl text-base text-muted-foreground md:text-lg", descriptionClassName), children: description }),
1602
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-2xl text-base opacity-80 md:text-lg", descriptionClassName), children: description }),
1603
1603
  /* @__PURE__ */ jsxRuntime.jsxs(
1604
1604
  Pressable,
1605
1605
  {
1606
1606
  href: buttonUrl,
1607
- className: cn("group relative mt-4 inline-flex items-center gap-2 rounded-lg border bg-background px-8 py-4 text-base font-medium transition-all hover:bg-muted", buttonClassName),
1607
+ className: cn("group relative mt-4 inline-flex items-center gap-2 rounded-lg border px-8 py-4 text-base font-medium transition-all hover:opacity-80", buttonClassName),
1608
1608
  children: [
1609
1609
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: buttonText }),
1610
1610
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1619,15 +1619,15 @@ function FooterCtaSocial({
1619
1619
  }
1620
1620
  ),
1621
1621
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center gap-6 pt-8", socialLinksClassName), children: socialLinksContent }),
1622
- email && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("pt-2 text-sm text-muted-foreground md:text-base", emailClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
1622
+ email && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("pt-2 text-sm opacity-80 md:text-base", emailClassName), children: /* @__PURE__ */ jsxRuntime.jsx(
1623
1623
  Pressable,
1624
1624
  {
1625
1625
  href: `mailto:${email}`,
1626
- className: "transition-colors hover:text-primary",
1626
+ className: "transition-colors hover:opacity-100",
1627
1627
  children: email
1628
1628
  }
1629
1629
  ) }),
1630
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 border-t pt-8 text-sm text-muted-foreground", bottomClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2", copyrightClassName), children: [
1630
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 border-t pt-8 text-sm opacity-70", bottomClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2", copyrightClassName), children: [
1631
1631
  /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1632
1632
  /* @__PURE__ */ jsxRuntime.jsx(
1633
1633
  BrandAttribution,
@@ -1635,7 +1635,7 @@ function FooterCtaSocial({
1635
1635
  internalBrandSlug: "open_site_ai",
1636
1636
  optionIndex: 9,
1637
1637
  variant: "span",
1638
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1638
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1639
1639
  }
1640
1640
  )
1641
1641
  ] }) })
@@ -1574,16 +1574,16 @@ function FooterCtaSocial({
1574
1574
  children: /* @__PURE__ */ jsx("div", { className: cn("relative z-10", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto flex max-w-3xl flex-col items-center gap-2 text-center", containerClassName), children: [
1575
1575
  /* @__PURE__ */ jsxs("div", { className: cn("flex w-full items-center gap-4", preHeadingWrapperClassName), children: [
1576
1576
  /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[linear-gradient(270deg,hsl(var(--primary,0_0%_100%))_0%,hsl(var(--secondary,0_0%_0%))_100%)] opacity-50", decorativeLineClassName) }),
1577
- /* @__PURE__ */ jsx("p", { className: cn("text-sm text-muted-foreground italic md:text-base", preHeadingClassName), children: preHeading }),
1577
+ /* @__PURE__ */ jsx("p", { className: cn("text-sm opacity-70 italic md:text-base", preHeadingClassName), children: preHeading }),
1578
1578
  /* @__PURE__ */ jsx("div", { className: cn("h-px flex-1 bg-[linear-gradient(270deg,hsl(var(--secondary,0_0%_0%))_0%,hsl(var(--primary,0_0%_100%))_100%)] opacity-50", decorativeLineClassName) })
1579
1579
  ] }),
1580
1580
  /* @__PURE__ */ jsx("h2", { className: cn("py-6 text-5xl font-bold md:text-6xl", headingClassName), children: heading }),
1581
- /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl text-base text-muted-foreground md:text-lg", descriptionClassName), children: description }),
1581
+ /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl text-base opacity-80 md:text-lg", descriptionClassName), children: description }),
1582
1582
  /* @__PURE__ */ jsxs(
1583
1583
  Pressable,
1584
1584
  {
1585
1585
  href: buttonUrl,
1586
- className: cn("group relative mt-4 inline-flex items-center gap-2 rounded-lg border bg-background px-8 py-4 text-base font-medium transition-all hover:bg-muted", buttonClassName),
1586
+ className: cn("group relative mt-4 inline-flex items-center gap-2 rounded-lg border px-8 py-4 text-base font-medium transition-all hover:opacity-80", buttonClassName),
1587
1587
  children: [
1588
1588
  /* @__PURE__ */ jsx("span", { children: buttonText }),
1589
1589
  /* @__PURE__ */ jsx(
@@ -1598,15 +1598,15 @@ function FooterCtaSocial({
1598
1598
  }
1599
1599
  ),
1600
1600
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("flex items-center gap-6 pt-8", socialLinksClassName), children: socialLinksContent }),
1601
- email && /* @__PURE__ */ jsx("p", { className: cn("pt-2 text-sm text-muted-foreground md:text-base", emailClassName), children: /* @__PURE__ */ jsx(
1601
+ email && /* @__PURE__ */ jsx("p", { className: cn("pt-2 text-sm opacity-80 md:text-base", emailClassName), children: /* @__PURE__ */ jsx(
1602
1602
  Pressable,
1603
1603
  {
1604
1604
  href: `mailto:${email}`,
1605
- className: "transition-colors hover:text-primary",
1605
+ className: "transition-colors hover:opacity-100",
1606
1606
  children: email
1607
1607
  }
1608
1608
  ) }),
1609
- /* @__PURE__ */ jsx("div", { className: cn("mt-8 border-t pt-8 text-sm text-muted-foreground", bottomClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2", copyrightClassName), children: [
1609
+ /* @__PURE__ */ jsx("div", { className: cn("mt-8 border-t pt-8 text-sm opacity-70", bottomClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2", copyrightClassName), children: [
1610
1610
  /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1611
1611
  /* @__PURE__ */ jsx(
1612
1612
  BrandAttribution,
@@ -1614,7 +1614,7 @@ function FooterCtaSocial({
1614
1614
  internalBrandSlug: "open_site_ai",
1615
1615
  optionIndex: 9,
1616
1616
  variant: "span",
1617
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1617
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1618
1618
  }
1619
1619
  )
1620
1620
  ] }) })
@@ -1762,7 +1762,7 @@ function FooterInfoCardsAccordion({
1762
1762
  value: email,
1763
1763
  onChange: (e) => setEmail(e.target.value),
1764
1764
  placeholder: emailPlaceholder || "Email Address",
1765
- className: "flex h-10 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
1765
+ className: "flex h-10 flex-1 rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
1766
1766
  }
1767
1767
  ),
1768
1768
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -1778,7 +1778,7 @@ function FooterInfoCardsAccordion({
1778
1778
  ]
1779
1779
  }
1780
1780
  ),
1781
- (termsText || termsLinkText || privacyLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", children: [
1781
+ (termsText || termsLinkText || privacyLinkText) && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm opacity-80", children: [
1782
1782
  termsText,
1783
1783
  " ",
1784
1784
  termsLinkText && /* @__PURE__ */ jsxRuntime.jsx(
@@ -1825,10 +1825,10 @@ function FooterInfoCardsAccordion({
1825
1825
  Pressable,
1826
1826
  {
1827
1827
  href: item.link,
1828
- className: "break-all text-muted-foreground underline",
1828
+ className: "break-all opacity-80 underline",
1829
1829
  children: item.text
1830
1830
  }
1831
- ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: item.text })
1831
+ ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "opacity-80", children: item.text })
1832
1832
  ] }) })
1833
1833
  ] })
1834
1834
  },
@@ -1864,7 +1864,7 @@ function FooterInfoCardsAccordion({
1864
1864
  "p",
1865
1865
  {
1866
1866
  className: cn(
1867
- "max-w-md text-sm leading-relaxed text-muted-foreground",
1867
+ "max-w-md text-sm leading-relaxed opacity-80",
1868
1868
  brandDescriptionClassName
1869
1869
  ),
1870
1870
  children: footerDetails.description
@@ -1882,11 +1882,11 @@ function FooterInfoCardsAccordion({
1882
1882
  ),
1883
1883
  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: [
1884
1884
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-base font-bold", children: section.title }),
1885
- /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-3 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1885
+ /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-3 text-sm opacity-80", children: section.items.map((item, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1886
1886
  Pressable,
1887
1887
  {
1888
1888
  href: item.link,
1889
- className: "hover:text-primary",
1889
+ className: "hover:opacity-100",
1890
1890
  children: item.text
1891
1891
  }
1892
1892
  ) }, idx)) })
@@ -1945,7 +1945,7 @@ function FooterInfoCardsAccordion({
1945
1945
  bottomClassName
1946
1946
  ),
1947
1947
  children: [
1948
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center gap-4 text-sm text-muted-foreground", copyrightClassName), children: [
1948
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center gap-4 text-sm opacity-80", copyrightClassName), children: [
1949
1949
  /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1950
1950
  /* @__PURE__ */ jsxRuntime.jsx(
1951
1951
  BrandAttribution,
@@ -1953,7 +1953,7 @@ function FooterInfoCardsAccordion({
1953
1953
  internalBrandSlug: "open_site_ai",
1954
1954
  optionIndex: 0,
1955
1955
  variant: "span",
1956
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1956
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1957
1957
  }
1958
1958
  )
1959
1959
  ] }),
@@ -1740,7 +1740,7 @@ function FooterInfoCardsAccordion({
1740
1740
  value: email,
1741
1741
  onChange: (e) => setEmail(e.target.value),
1742
1742
  placeholder: emailPlaceholder || "Email Address",
1743
- className: "flex h-10 flex-1 rounded-md border border-input bg-background px-3 py-2 text-sm ring-offset-background placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
1743
+ className: "flex h-10 flex-1 rounded-md border border-input px-3 py-2 text-sm ring-offset-background placeholder:opacity-50 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2"
1744
1744
  }
1745
1745
  ),
1746
1746
  /* @__PURE__ */ jsx(
@@ -1756,7 +1756,7 @@ function FooterInfoCardsAccordion({
1756
1756
  ]
1757
1757
  }
1758
1758
  ),
1759
- (termsText || termsLinkText || privacyLinkText) && /* @__PURE__ */ jsxs("p", { className: "text-sm text-muted-foreground", children: [
1759
+ (termsText || termsLinkText || privacyLinkText) && /* @__PURE__ */ jsxs("p", { className: "text-sm opacity-80", children: [
1760
1760
  termsText,
1761
1761
  " ",
1762
1762
  termsLinkText && /* @__PURE__ */ jsx(
@@ -1803,10 +1803,10 @@ function FooterInfoCardsAccordion({
1803
1803
  Pressable,
1804
1804
  {
1805
1805
  href: item.link,
1806
- className: "break-all text-muted-foreground underline",
1806
+ className: "break-all opacity-80 underline",
1807
1807
  children: item.text
1808
1808
  }
1809
- ) : /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: item.text })
1809
+ ) : /* @__PURE__ */ jsx("p", { className: "opacity-80", children: item.text })
1810
1810
  ] }) })
1811
1811
  ] })
1812
1812
  },
@@ -1842,7 +1842,7 @@ function FooterInfoCardsAccordion({
1842
1842
  "p",
1843
1843
  {
1844
1844
  className: cn(
1845
- "max-w-md text-sm leading-relaxed text-muted-foreground",
1845
+ "max-w-md text-sm leading-relaxed opacity-80",
1846
1846
  brandDescriptionClassName
1847
1847
  ),
1848
1848
  children: footerDetails.description
@@ -1860,11 +1860,11 @@ function FooterInfoCardsAccordion({
1860
1860
  ),
1861
1861
  children: /* @__PURE__ */ jsx("div", { className: "grid gap-8 sm:grid-cols-2 lg:grid-cols-3", children: footerLinks.map((section) => /* @__PURE__ */ jsxs("div", { children: [
1862
1862
  /* @__PURE__ */ jsx("h3", { className: "mb-4 text-base font-bold", children: section.title }),
1863
- /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-sm text-muted-foreground", children: section.items.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1863
+ /* @__PURE__ */ jsx("ul", { className: "space-y-3 text-sm opacity-80", children: section.items.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1864
1864
  Pressable,
1865
1865
  {
1866
1866
  href: item.link,
1867
- className: "hover:text-primary",
1867
+ className: "hover:opacity-100",
1868
1868
  children: item.text
1869
1869
  }
1870
1870
  ) }, idx)) })
@@ -1923,7 +1923,7 @@ function FooterInfoCardsAccordion({
1923
1923
  bottomClassName
1924
1924
  ),
1925
1925
  children: [
1926
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-4 text-sm text-muted-foreground", copyrightClassName), children: [
1926
+ /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap items-center gap-4 text-sm opacity-80", copyrightClassName), children: [
1927
1927
  /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1928
1928
  /* @__PURE__ */ jsx(
1929
1929
  BrandAttribution,
@@ -1931,7 +1931,7 @@ function FooterInfoCardsAccordion({
1931
1931
  internalBrandSlug: "open_site_ai",
1932
1932
  optionIndex: 0,
1933
1933
  variant: "span",
1934
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1934
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1935
1935
  }
1936
1936
  )
1937
1937
  ] }),
@@ -1478,7 +1478,7 @@ function FooterLinksGrid({
1478
1478
  internalBrandSlug: "open_site_ai",
1479
1479
  optionIndex: 0,
1480
1480
  variant: "span",
1481
- linkClassName: "hover:text-primary"
1481
+ linkClassName: "hover:opacity-100"
1482
1482
  }
1483
1483
  )
1484
1484
  ] }),
@@ -1457,7 +1457,7 @@ function FooterLinksGrid({
1457
1457
  internalBrandSlug: "open_site_ai",
1458
1458
  optionIndex: 0,
1459
1459
  variant: "span",
1460
- linkClassName: "hover:text-primary"
1460
+ linkClassName: "hover:opacity-100"
1461
1461
  }
1462
1462
  )
1463
1463
  ] }),