@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
@@ -1406,7 +1406,7 @@ function FooterBackgroundCard({
1406
1406
  patternOpacity,
1407
1407
  className: cn("bg-cover bg-center bg-no-repeat", className),
1408
1408
  style: sectionStyle,
1409
- children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-7xl rounded-lg bg-background p-8 shadow-lg md:p-12", cardClassName), children: [
1409
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-7xl rounded-lg p-8 shadow-lg md:p-12", cardClassName), children: [
1410
1410
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4 lg:gap-12", gridClassName), children: [
1411
1411
  (profileImage || tagline || personalMessage || ctaText) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:col-span-1", profileSectionClassName), children: [
1412
1412
  (profileImage || tagline) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center gap-4", children: [
@@ -1421,33 +1421,33 @@ function FooterBackgroundCard({
1421
1421
  ),
1422
1422
  tagline && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("text-2xl font-medium", taglineClassName), children: tagline })
1423
1423
  ] }),
1424
- personalMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6 text-sm leading-relaxed text-muted-foreground", messageClassName), children: personalMessage }),
1424
+ personalMessage && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6 text-sm leading-relaxed opacity-80", messageClassName), children: personalMessage }),
1425
1425
  ctaText && /* @__PURE__ */ jsxRuntime.jsx(
1426
1426
  Pressable,
1427
1427
  {
1428
1428
  href: ctaUrl || "#",
1429
- 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", ctaClassName),
1429
+ 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-10 px-4 py-2", ctaClassName),
1430
1430
  children: ctaText
1431
1431
  }
1432
1432
  )
1433
1433
  ] }),
1434
1434
  menuItems && menuItems.length > 0 && menuItems.map((menu, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(menuSectionClassName), children: [
1435
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider text-primary uppercase", menuTitleClassName), children: menu.title }),
1435
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", menuTitleClassName), children: menu.title }),
1436
1436
  /* @__PURE__ */ jsxRuntime.jsx("ul", { className: "space-y-3", children: menu.links.map((link, index) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
1437
1437
  Pressable,
1438
1438
  {
1439
1439
  href: link.url,
1440
- className: cn("border-b border-transparent text-muted-foreground transition-all duration-300 ease-in-out hover:border-primary hover:text-primary", menuLinkClassName),
1440
+ className: cn("border-b border-transparent opacity-80 transition-all duration-300 ease-in-out hover:opacity-100", menuLinkClassName),
1441
1441
  children: link.text
1442
1442
  }
1443
1443
  ) }, index)) })
1444
1444
  ] }, idx)),
1445
1445
  (contactTitle || contact) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(contactSectionClassName), children: [
1446
- contactTitle && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider text-primary uppercase", contactTitleClassName), children: contactTitle }),
1446
+ contactTitle && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", contactTitleClassName), children: contactTitle }),
1447
1447
  contact && /* @__PURE__ */ jsxRuntime.jsxs("ul", { className: "space-y-3", children: [
1448
- contact.phone && /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn("text-muted-foreground", contactItemClassName), children: contact.phone }),
1449
- contact.email && /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn("text-muted-foreground", contactItemClassName), children: contact.email }),
1450
- (contact.location || contact.timezone) && /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("text-muted-foreground", contactItemClassName), children: [
1448
+ contact.phone && /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.phone }),
1449
+ contact.email && /* @__PURE__ */ jsxRuntime.jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.email }),
1450
+ (contact.location || contact.timezone) && /* @__PURE__ */ jsxRuntime.jsxs("li", { className: cn("opacity-80", contactItemClassName), children: [
1451
1451
  contact.location,
1452
1452
  contact.location && contact.timezone && " \u2022 ",
1453
1453
  contact.timezone
@@ -1455,8 +1455,8 @@ function FooterBackgroundCard({
1455
1455
  ] })
1456
1456
  ] })
1457
1457
  ] }),
1458
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 md:flex-row", bottomClassName), children: [
1459
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 text-sm text-muted-foreground md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1458
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-12 flex flex-col items-center justify-between gap-4 border-t pt-8 md:flex-row", bottomClassName), children: [
1459
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1460
1460
  /* @__PURE__ */ jsxRuntime.jsx(FooterCopyright, { copyright }),
1461
1461
  /* @__PURE__ */ jsxRuntime.jsx(
1462
1462
  BrandAttribution,
@@ -1464,7 +1464,7 @@ function FooterBackgroundCard({
1464
1464
  internalBrandSlug: "open_site_ai",
1465
1465
  optionIndex: 3,
1466
1466
  variant: "span",
1467
- linkClassName: "hover:text-primary"
1467
+ linkClassName: "hover:opacity-100"
1468
1468
  }
1469
1469
  )
1470
1470
  ] }),
@@ -1472,7 +1472,7 @@ function FooterBackgroundCard({
1472
1472
  Pressable,
1473
1473
  {
1474
1474
  href: link.url,
1475
- className: "text-sm text-muted-foreground transition-colors hover:text-primary",
1475
+ className: "text-sm opacity-80 transition-colors hover:opacity-100",
1476
1476
  children: link.text
1477
1477
  },
1478
1478
  idx
@@ -1385,7 +1385,7 @@ function FooterBackgroundCard({
1385
1385
  patternOpacity,
1386
1386
  className: cn("bg-cover bg-center bg-no-repeat", className),
1387
1387
  style: sectionStyle,
1388
- children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-7xl rounded-lg bg-background p-8 shadow-lg md:p-12", cardClassName), children: [
1388
+ children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-7xl rounded-lg p-8 shadow-lg md:p-12", cardClassName), children: [
1389
1389
  /* @__PURE__ */ jsxs("div", { className: cn("grid grid-cols-1 gap-8 md:grid-cols-2 lg:grid-cols-4 lg:gap-12", gridClassName), children: [
1390
1390
  (profileImage || tagline || personalMessage || ctaText) && /* @__PURE__ */ jsxs("div", { className: cn("lg:col-span-1", profileSectionClassName), children: [
1391
1391
  (profileImage || tagline) && /* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center gap-4", children: [
@@ -1400,33 +1400,33 @@ function FooterBackgroundCard({
1400
1400
  ),
1401
1401
  tagline && /* @__PURE__ */ jsx("h3", { className: cn("text-2xl font-medium", taglineClassName), children: tagline })
1402
1402
  ] }),
1403
- personalMessage && /* @__PURE__ */ jsx("p", { className: cn("mb-6 text-sm leading-relaxed text-muted-foreground", messageClassName), children: personalMessage }),
1403
+ personalMessage && /* @__PURE__ */ jsx("p", { className: cn("mb-6 text-sm leading-relaxed opacity-80", messageClassName), children: personalMessage }),
1404
1404
  ctaText && /* @__PURE__ */ jsx(
1405
1405
  Pressable,
1406
1406
  {
1407
1407
  href: ctaUrl || "#",
1408
- 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", ctaClassName),
1408
+ 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-10 px-4 py-2", ctaClassName),
1409
1409
  children: ctaText
1410
1410
  }
1411
1411
  )
1412
1412
  ] }),
1413
1413
  menuItems && menuItems.length > 0 && menuItems.map((menu, idx) => /* @__PURE__ */ jsxs("div", { className: cn(menuSectionClassName), children: [
1414
- /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider text-primary uppercase", menuTitleClassName), children: menu.title }),
1414
+ /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", menuTitleClassName), children: menu.title }),
1415
1415
  /* @__PURE__ */ jsx("ul", { className: "space-y-3", children: menu.links.map((link, index) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
1416
1416
  Pressable,
1417
1417
  {
1418
1418
  href: link.url,
1419
- className: cn("border-b border-transparent text-muted-foreground transition-all duration-300 ease-in-out hover:border-primary hover:text-primary", menuLinkClassName),
1419
+ className: cn("border-b border-transparent opacity-80 transition-all duration-300 ease-in-out hover:opacity-100", menuLinkClassName),
1420
1420
  children: link.text
1421
1421
  }
1422
1422
  ) }, index)) })
1423
1423
  ] }, idx)),
1424
1424
  (contactTitle || contact) && /* @__PURE__ */ jsxs("div", { className: cn(contactSectionClassName), children: [
1425
- contactTitle && /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider text-primary uppercase", contactTitleClassName), children: contactTitle }),
1425
+ contactTitle && /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-sm font-medium tracking-wider uppercase", contactTitleClassName), children: contactTitle }),
1426
1426
  contact && /* @__PURE__ */ jsxs("ul", { className: "space-y-3", children: [
1427
- contact.phone && /* @__PURE__ */ jsx("li", { className: cn("text-muted-foreground", contactItemClassName), children: contact.phone }),
1428
- contact.email && /* @__PURE__ */ jsx("li", { className: cn("text-muted-foreground", contactItemClassName), children: contact.email }),
1429
- (contact.location || contact.timezone) && /* @__PURE__ */ jsxs("li", { className: cn("text-muted-foreground", contactItemClassName), children: [
1427
+ contact.phone && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.phone }),
1428
+ contact.email && /* @__PURE__ */ jsx("li", { className: cn("opacity-80", contactItemClassName), children: contact.email }),
1429
+ (contact.location || contact.timezone) && /* @__PURE__ */ jsxs("li", { className: cn("opacity-80", contactItemClassName), children: [
1430
1430
  contact.location,
1431
1431
  contact.location && contact.timezone && " \u2022 ",
1432
1432
  contact.timezone
@@ -1434,8 +1434,8 @@ function FooterBackgroundCard({
1434
1434
  ] })
1435
1435
  ] })
1436
1436
  ] }),
1437
- /* @__PURE__ */ jsxs("div", { className: cn("mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 md:flex-row", bottomClassName), children: [
1438
- /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 text-sm text-muted-foreground md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1437
+ /* @__PURE__ */ jsxs("div", { className: cn("mt-12 flex flex-col items-center justify-between gap-4 border-t pt-8 md:flex-row", bottomClassName), children: [
1438
+ /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-2 text-sm opacity-80 md:flex-row md:items-center md:gap-4", copyrightClassName), children: [
1439
1439
  /* @__PURE__ */ jsx(FooterCopyright, { copyright }),
1440
1440
  /* @__PURE__ */ jsx(
1441
1441
  BrandAttribution,
@@ -1443,7 +1443,7 @@ function FooterBackgroundCard({
1443
1443
  internalBrandSlug: "open_site_ai",
1444
1444
  optionIndex: 3,
1445
1445
  variant: "span",
1446
- linkClassName: "hover:text-primary"
1446
+ linkClassName: "hover:opacity-100"
1447
1447
  }
1448
1448
  )
1449
1449
  ] }),
@@ -1451,7 +1451,7 @@ function FooterBackgroundCard({
1451
1451
  Pressable,
1452
1452
  {
1453
1453
  href: link.url,
1454
- className: "text-sm text-muted-foreground transition-colors hover:text-primary",
1454
+ className: "text-sm opacity-80 transition-colors hover:opacity-100",
1455
1455
  children: link.text
1456
1456
  },
1457
1457
  idx
@@ -1638,10 +1638,11 @@ function FooterBrandDescription({
1638
1638
  legalLinksClassName,
1639
1639
  legalLinkClassName,
1640
1640
  background,
1641
- spacing,
1642
1641
  pattern,
1643
1642
  patternOpacity,
1644
- optixFlowConfig
1643
+ optixFlowConfig,
1644
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1645
+ spacing = "py-6 md:py-32"
1645
1646
  }) {
1646
1647
  return /* @__PURE__ */ jsxRuntime.jsx(
1647
1648
  Section,
@@ -1651,6 +1652,7 @@ function FooterBrandDescription({
1651
1652
  pattern,
1652
1653
  patternOpacity,
1653
1654
  className: cn(className),
1655
+ containerClassName,
1654
1656
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn(contentClassName), children: [
1655
1657
  /* @__PURE__ */ jsxRuntime.jsxs(
1656
1658
  "div",
@@ -1689,7 +1691,7 @@ function FooterBrandDescription({
1689
1691
  "p",
1690
1692
  {
1691
1693
  className: cn(
1692
- "max-w-[70%] text-sm text-muted-foreground",
1694
+ "max-w-[70%] text-sm opacity-80",
1693
1695
  descriptionClassName
1694
1696
  ),
1695
1697
  children: description
@@ -1699,7 +1701,7 @@ function FooterBrandDescription({
1699
1701
  "ul",
1700
1702
  {
1701
1703
  className: cn(
1702
- "flex items-center space-x-6 text-muted-foreground",
1704
+ "flex items-center space-x-6 opacity-80",
1703
1705
  socialLinksClassName
1704
1706
  ),
1705
1707
  children: socialLinks.map((social, idx) => /* @__PURE__ */ jsxRuntime.jsx("li", { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1709,7 +1711,7 @@ function FooterBrandDescription({
1709
1711
  label: social.label,
1710
1712
  iconNameOverride: social.iconNameOverride,
1711
1713
  className: cn(
1712
- "font-medium hover:text-primary",
1714
+ "font-medium hover:opacity-100",
1713
1715
  socialLinkClassName
1714
1716
  )
1715
1717
  }
@@ -1732,14 +1734,14 @@ function FooterBrandDescription({
1732
1734
  "ul",
1733
1735
  {
1734
1736
  className: cn(
1735
- "space-y-3 text-sm text-muted-foreground",
1737
+ "space-y-3 text-sm opacity-80",
1736
1738
  navLinksClassName
1737
1739
  ),
1738
1740
  children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx(
1739
1741
  "li",
1740
1742
  {
1741
1743
  className: cn(
1742
- "font-medium hover:text-primary",
1744
+ "font-medium hover:opacity-100",
1743
1745
  navLinkClassName
1744
1746
  ),
1745
1747
  children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, children: link.name })
@@ -1758,7 +1760,7 @@ function FooterBrandDescription({
1758
1760
  "div",
1759
1761
  {
1760
1762
  className: cn(
1761
- "mt-8 flex flex-col justify-between gap-4 border-t py-8 text-xs font-medium text-muted-foreground md:flex-row md:items-center md:text-left",
1763
+ "mt-8 flex flex-col justify-between gap-4 border-t py-8 text-xs font-medium opacity-70 md:flex-row md:items-center md:text-left",
1762
1764
  bottomClassName
1763
1765
  ),
1764
1766
  children: [
@@ -1777,7 +1779,7 @@ function FooterBrandDescription({
1777
1779
  internalBrandSlug: "open_site_ai",
1778
1780
  optionIndex: 4,
1779
1781
  variant: "span",
1780
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1782
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1781
1783
  }
1782
1784
  )
1783
1785
  ]
@@ -1793,7 +1795,7 @@ function FooterBrandDescription({
1793
1795
  children: legalLinks.map((link, idx) => /* @__PURE__ */ jsxRuntime.jsx(
1794
1796
  "li",
1795
1797
  {
1796
- className: cn("hover:text-primary", legalLinkClassName),
1798
+ className: cn("hover:opacity-100", legalLinkClassName),
1797
1799
  children: /* @__PURE__ */ jsxRuntime.jsx(Pressable, { href: link.href, children: link.name })
1798
1800
  },
1799
1801
  idx
@@ -98,6 +98,10 @@ interface FooterBrandDescriptionProps {
98
98
  pattern?: PatternName;
99
99
  /** Pattern opacity (0-1) */
100
100
  patternOpacity?: number;
101
+ /**
102
+ * Additional CSS classes for the container
103
+ */
104
+ containerClassName?: string;
101
105
  /** Optional Optix Flow configuration for @page-speed/img */
102
106
  optixFlowConfig?: OptixFlowConfig;
103
107
  }
@@ -108,6 +112,6 @@ interface FooterBrandDescriptionProps {
108
112
  * with multi-column navigation on the right. Ideal for brand-focused websites, startups,
109
113
  * and businesses that want to emphasize their identity and social presence in the footer.
110
114
  */
111
- declare function FooterBrandDescription({ logo, sections, description, socialLinks, copyright, legalLinks, className, contentClassName, layoutClassName, brandColumnClassName, logoWrapperClassName, logoClassName, descriptionClassName, socialLinksClassName, socialLinkClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterBrandDescriptionProps): React.JSX.Element;
115
+ declare function FooterBrandDescription({ logo, sections, description, socialLinks, copyright, legalLinks, className, contentClassName, layoutClassName, brandColumnClassName, logoWrapperClassName, logoClassName, descriptionClassName, socialLinksClassName, socialLinkClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, pattern, patternOpacity, optixFlowConfig, containerClassName, spacing, }: FooterBrandDescriptionProps): React.JSX.Element;
112
116
 
113
117
  export { FooterBrandDescription, type FooterBrandDescriptionLink, type FooterBrandDescriptionProps, type FooterBrandDescriptionSection };
@@ -98,6 +98,10 @@ interface FooterBrandDescriptionProps {
98
98
  pattern?: PatternName;
99
99
  /** Pattern opacity (0-1) */
100
100
  patternOpacity?: number;
101
+ /**
102
+ * Additional CSS classes for the container
103
+ */
104
+ containerClassName?: string;
101
105
  /** Optional Optix Flow configuration for @page-speed/img */
102
106
  optixFlowConfig?: OptixFlowConfig;
103
107
  }
@@ -108,6 +112,6 @@ interface FooterBrandDescriptionProps {
108
112
  * with multi-column navigation on the right. Ideal for brand-focused websites, startups,
109
113
  * and businesses that want to emphasize their identity and social presence in the footer.
110
114
  */
111
- declare function FooterBrandDescription({ logo, sections, description, socialLinks, copyright, legalLinks, className, contentClassName, layoutClassName, brandColumnClassName, logoWrapperClassName, logoClassName, descriptionClassName, socialLinksClassName, socialLinkClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, spacing, pattern, patternOpacity, optixFlowConfig, }: FooterBrandDescriptionProps): React.JSX.Element;
115
+ declare function FooterBrandDescription({ logo, sections, description, socialLinks, copyright, legalLinks, className, contentClassName, layoutClassName, brandColumnClassName, logoWrapperClassName, logoClassName, descriptionClassName, socialLinksClassName, socialLinkClassName, navGridClassName, navSectionClassName, navTitleClassName, navLinksClassName, navLinkClassName, bottomClassName, copyrightClassName, legalLinksClassName, legalLinkClassName, background, pattern, patternOpacity, optixFlowConfig, containerClassName, spacing, }: FooterBrandDescriptionProps): React.JSX.Element;
112
116
 
113
117
  export { FooterBrandDescription, type FooterBrandDescriptionLink, type FooterBrandDescriptionProps, type FooterBrandDescriptionSection };
@@ -1617,10 +1617,11 @@ function FooterBrandDescription({
1617
1617
  legalLinksClassName,
1618
1618
  legalLinkClassName,
1619
1619
  background,
1620
- spacing,
1621
1620
  pattern,
1622
1621
  patternOpacity,
1623
- optixFlowConfig
1622
+ optixFlowConfig,
1623
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
1624
+ spacing = "py-6 md:py-32"
1624
1625
  }) {
1625
1626
  return /* @__PURE__ */ jsx(
1626
1627
  Section,
@@ -1630,6 +1631,7 @@ function FooterBrandDescription({
1630
1631
  pattern,
1631
1632
  patternOpacity,
1632
1633
  className: cn(className),
1634
+ containerClassName,
1633
1635
  children: /* @__PURE__ */ jsxs("div", { className: cn(contentClassName), children: [
1634
1636
  /* @__PURE__ */ jsxs(
1635
1637
  "div",
@@ -1668,7 +1670,7 @@ function FooterBrandDescription({
1668
1670
  "p",
1669
1671
  {
1670
1672
  className: cn(
1671
- "max-w-[70%] text-sm text-muted-foreground",
1673
+ "max-w-[70%] text-sm opacity-80",
1672
1674
  descriptionClassName
1673
1675
  ),
1674
1676
  children: description
@@ -1678,7 +1680,7 @@ function FooterBrandDescription({
1678
1680
  "ul",
1679
1681
  {
1680
1682
  className: cn(
1681
- "flex items-center space-x-6 text-muted-foreground",
1683
+ "flex items-center space-x-6 opacity-80",
1682
1684
  socialLinksClassName
1683
1685
  ),
1684
1686
  children: socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
@@ -1688,7 +1690,7 @@ function FooterBrandDescription({
1688
1690
  label: social.label,
1689
1691
  iconNameOverride: social.iconNameOverride,
1690
1692
  className: cn(
1691
- "font-medium hover:text-primary",
1693
+ "font-medium hover:opacity-100",
1692
1694
  socialLinkClassName
1693
1695
  )
1694
1696
  }
@@ -1711,14 +1713,14 @@ function FooterBrandDescription({
1711
1713
  "ul",
1712
1714
  {
1713
1715
  className: cn(
1714
- "space-y-3 text-sm text-muted-foreground",
1716
+ "space-y-3 text-sm opacity-80",
1715
1717
  navLinksClassName
1716
1718
  ),
1717
1719
  children: section.links.map((link, linkIdx) => /* @__PURE__ */ jsx(
1718
1720
  "li",
1719
1721
  {
1720
1722
  className: cn(
1721
- "font-medium hover:text-primary",
1723
+ "font-medium hover:opacity-100",
1722
1724
  navLinkClassName
1723
1725
  ),
1724
1726
  children: /* @__PURE__ */ jsx(Pressable, { href: link.href, children: link.name })
@@ -1737,7 +1739,7 @@ function FooterBrandDescription({
1737
1739
  "div",
1738
1740
  {
1739
1741
  className: cn(
1740
- "mt-8 flex flex-col justify-between gap-4 border-t py-8 text-xs font-medium text-muted-foreground md:flex-row md:items-center md:text-left",
1742
+ "mt-8 flex flex-col justify-between gap-4 border-t py-8 text-xs font-medium opacity-70 md:flex-row md:items-center md:text-left",
1741
1743
  bottomClassName
1742
1744
  ),
1743
1745
  children: [
@@ -1756,7 +1758,7 @@ function FooterBrandDescription({
1756
1758
  internalBrandSlug: "open_site_ai",
1757
1759
  optionIndex: 4,
1758
1760
  variant: "span",
1759
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1761
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1760
1762
  }
1761
1763
  )
1762
1764
  ]
@@ -1772,7 +1774,7 @@ function FooterBrandDescription({
1772
1774
  children: legalLinks.map((link, idx) => /* @__PURE__ */ jsx(
1773
1775
  "li",
1774
1776
  {
1775
- className: cn("hover:text-primary", legalLinkClassName),
1777
+ className: cn("hover:opacity-100", legalLinkClassName),
1776
1778
  children: /* @__PURE__ */ jsx(Pressable, { href: link.href, children: link.name })
1777
1779
  },
1778
1780
  idx
@@ -1595,7 +1595,7 @@ function FooterBrandLinksContact({
1595
1595
  {
1596
1596
  href: link.href,
1597
1597
  className: cn(
1598
- "text-sm text-muted-foreground transition-colors hover:text-primary",
1598
+ "text-sm opacity-80 transition-colors hover:opacity-100",
1599
1599
  linkItemClassName
1600
1600
  ),
1601
1601
  children: link.label
@@ -1616,12 +1616,12 @@ function FooterBrandLinksContact({
1616
1616
  {
1617
1617
  className: cn("flex items-start gap-4", contactItemClassName),
1618
1618
  children: [
1619
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 20, className: "text-primary" }) }),
1619
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 20 }) }),
1620
1620
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-1", children: item.href ? /* @__PURE__ */ jsxRuntime.jsx(
1621
1621
  Pressable,
1622
1622
  {
1623
1623
  href: item.href,
1624
- className: "text-sm font-medium transition-colors hover:text-muted-foreground",
1624
+ className: "text-sm font-medium transition-colors hover:opacity-70",
1625
1625
  children: item.label
1626
1626
  }
1627
1627
  ) : /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-medium", children: item.label }) })
@@ -1680,7 +1680,7 @@ function FooterBrandLinksContact({
1680
1680
  "p",
1681
1681
  {
1682
1682
  className: cn(
1683
- "text-sm text-muted-foreground",
1683
+ "text-sm opacity-80",
1684
1684
  descriptionClassName
1685
1685
  ),
1686
1686
  children: description
@@ -1700,14 +1700,14 @@ function FooterBrandLinksContact({
1700
1700
  "ul",
1701
1701
  {
1702
1702
  className: cn(
1703
- "mt-4 space-y-3 text-sm text-muted-foreground",
1703
+ "mt-4 space-y-3 text-sm opacity-80",
1704
1704
  linkListClassName
1705
1705
  ),
1706
1706
  children: contactItemsContent
1707
1707
  }
1708
1708
  ),
1709
1709
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-8", socialSectionClassName), children: [
1710
- socialTitle && /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-semibold uppercase tracking-[0.2em] text-muted-foreground", children: socialTitle }),
1710
+ socialTitle && /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-semibold uppercase tracking-[0.2em] opacity-70", children: socialTitle }),
1711
1711
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-3 flex gap-4", children: socialLinksContent })
1712
1712
  ] })
1713
1713
  ] })
@@ -1718,7 +1718,7 @@ function FooterBrandLinksContact({
1718
1718
  "div",
1719
1719
  {
1720
1720
  className: cn(
1721
- "mt-12 border-t pt-8 text-sm text-muted-foreground",
1721
+ "mt-12 border-t pt-8 text-sm opacity-80",
1722
1722
  bottomBarClassName
1723
1723
  ),
1724
1724
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-between gap-4 md:flex-row", children: [
@@ -1737,7 +1737,7 @@ function FooterBrandLinksContact({
1737
1737
  internalBrandSlug: "open_site_ai",
1738
1738
  optionIndex: 5,
1739
1739
  variant: "span",
1740
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1740
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1741
1741
  }
1742
1742
  )
1743
1743
  ]
@@ -1754,7 +1754,7 @@ function FooterBrandLinksContact({
1754
1754
  Pressable,
1755
1755
  {
1756
1756
  href: link.href,
1757
- className: "underline transition-colors hover:text-primary",
1757
+ className: "underline transition-colors hover:opacity-100",
1758
1758
  children: link.label
1759
1759
  },
1760
1760
  idx
@@ -1574,7 +1574,7 @@ function FooterBrandLinksContact({
1574
1574
  {
1575
1575
  href: link.href,
1576
1576
  className: cn(
1577
- "text-sm text-muted-foreground transition-colors hover:text-primary",
1577
+ "text-sm opacity-80 transition-colors hover:opacity-100",
1578
1578
  linkItemClassName
1579
1579
  ),
1580
1580
  children: link.label
@@ -1595,12 +1595,12 @@ function FooterBrandLinksContact({
1595
1595
  {
1596
1596
  className: cn("flex items-start gap-4", contactItemClassName),
1597
1597
  children: [
1598
- /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 20, className: "text-primary" }) }),
1598
+ /* @__PURE__ */ jsx("div", { className: "shrink-0", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 20 }) }),
1599
1599
  /* @__PURE__ */ jsx("div", { className: "space-y-1", children: item.href ? /* @__PURE__ */ jsx(
1600
1600
  Pressable,
1601
1601
  {
1602
1602
  href: item.href,
1603
- className: "text-sm font-medium transition-colors hover:text-muted-foreground",
1603
+ className: "text-sm font-medium transition-colors hover:opacity-70",
1604
1604
  children: item.label
1605
1605
  }
1606
1606
  ) : /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: item.label }) })
@@ -1659,7 +1659,7 @@ function FooterBrandLinksContact({
1659
1659
  "p",
1660
1660
  {
1661
1661
  className: cn(
1662
- "text-sm text-muted-foreground",
1662
+ "text-sm opacity-80",
1663
1663
  descriptionClassName
1664
1664
  ),
1665
1665
  children: description
@@ -1679,14 +1679,14 @@ function FooterBrandLinksContact({
1679
1679
  "ul",
1680
1680
  {
1681
1681
  className: cn(
1682
- "mt-4 space-y-3 text-sm text-muted-foreground",
1682
+ "mt-4 space-y-3 text-sm opacity-80",
1683
1683
  linkListClassName
1684
1684
  ),
1685
1685
  children: contactItemsContent
1686
1686
  }
1687
1687
  ),
1688
1688
  socialLinks && socialLinks.length > 0 && /* @__PURE__ */ jsxs("div", { className: cn("mt-8", socialSectionClassName), children: [
1689
- socialTitle && /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold uppercase tracking-[0.2em] text-muted-foreground", children: socialTitle }),
1689
+ socialTitle && /* @__PURE__ */ jsx("h4", { className: "text-sm font-semibold uppercase tracking-[0.2em] opacity-70", children: socialTitle }),
1690
1690
  /* @__PURE__ */ jsx("div", { className: "mt-3 flex gap-4", children: socialLinksContent })
1691
1691
  ] })
1692
1692
  ] })
@@ -1697,7 +1697,7 @@ function FooterBrandLinksContact({
1697
1697
  "div",
1698
1698
  {
1699
1699
  className: cn(
1700
- "mt-12 border-t pt-8 text-sm text-muted-foreground",
1700
+ "mt-12 border-t pt-8 text-sm opacity-80",
1701
1701
  bottomBarClassName
1702
1702
  ),
1703
1703
  children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-between gap-4 md:flex-row", children: [
@@ -1716,7 +1716,7 @@ function FooterBrandLinksContact({
1716
1716
  internalBrandSlug: "open_site_ai",
1717
1717
  optionIndex: 5,
1718
1718
  variant: "span",
1719
- linkClassName: "underline underline-offset-4 transition-colors hover:text-primary"
1719
+ linkClassName: "underline underline-offset-4 transition-colors hover:opacity-100"
1720
1720
  }
1721
1721
  )
1722
1722
  ]
@@ -1733,7 +1733,7 @@ function FooterBrandLinksContact({
1733
1733
  Pressable,
1734
1734
  {
1735
1735
  href: link.href,
1736
- className: "underline transition-colors hover:text-primary",
1736
+ className: "underline transition-colors hover:opacity-100",
1737
1737
  children: link.label
1738
1738
  },
1739
1739
  idx
@@ -1671,7 +1671,7 @@ function FooterComprehensiveLinks({
1671
1671
  iconNameOverride: link.iconNameOverride,
1672
1672
  iconSize: 18,
1673
1673
  className: cn(
1674
- "flex size-fit p-2 items-center justify-center rounded-lg transition-shadow bg-muted border shadow-sm hover:shadow-lg"
1674
+ "flex size-fit p-2 items-center justify-center rounded-lg transition-shadow border shadow-sm hover:shadow-lg"
1675
1675
  )
1676
1676
  },
1677
1677
  idx
@@ -1650,7 +1650,7 @@ function FooterComprehensiveLinks({
1650
1650
  iconNameOverride: link.iconNameOverride,
1651
1651
  iconSize: 18,
1652
1652
  className: cn(
1653
- "flex size-fit p-2 items-center justify-center rounded-lg transition-shadow bg-muted border shadow-sm hover:shadow-lg"
1653
+ "flex size-fit p-2 items-center justify-center rounded-lg transition-shadow border shadow-sm hover:shadow-lg"
1654
1654
  )
1655
1655
  },
1656
1656
  idx