@opensite/ui 0.8.9 → 0.9.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 (367) hide show
  1. package/dist/about-company-profile.cjs +32 -4
  2. package/dist/about-company-profile.js +32 -4
  3. package/dist/about-culture-tabs.cjs +38 -8
  4. package/dist/about-culture-tabs.js +38 -8
  5. package/dist/about-developer-profile.cjs +37 -5
  6. package/dist/about-developer-profile.js +37 -5
  7. package/dist/about-developer-story.cjs +31 -3
  8. package/dist/about-developer-story.js +31 -3
  9. package/dist/about-expandable-values.cjs +43 -9
  10. package/dist/about-expandable-values.js +43 -9
  11. package/dist/about-interactive-tabs.cjs +63 -4
  12. package/dist/about-interactive-tabs.js +63 -4
  13. package/dist/about-location-info-hero.cjs +28 -2
  14. package/dist/about-location-info-hero.js +28 -2
  15. package/dist/about-minimal-story.cjs +35 -4
  16. package/dist/about-minimal-story.js +35 -4
  17. package/dist/about-mission-dual-image.cjs +30 -2
  18. package/dist/about-mission-dual-image.js +30 -2
  19. package/dist/about-mission-features.cjs +36 -4
  20. package/dist/about-mission-features.js +36 -4
  21. package/dist/about-mission-principles.cjs +39 -6
  22. package/dist/about-mission-principles.js +39 -6
  23. package/dist/about-network-spotlight.cjs +33 -5
  24. package/dist/about-network-spotlight.js +33 -5
  25. package/dist/about-startup-team.cjs +47 -6
  26. package/dist/about-startup-team.js +47 -6
  27. package/dist/about-stats-showcase.cjs +31 -4
  28. package/dist/about-stats-showcase.js +31 -4
  29. package/dist/about-stats-sidebar.cjs +29 -3
  30. package/dist/about-stats-sidebar.js +29 -3
  31. package/dist/about-story-expertise.cjs +44 -8
  32. package/dist/about-story-expertise.js +44 -8
  33. package/dist/about-story-gallery.cjs +28 -1
  34. package/dist/about-story-gallery.js +28 -1
  35. package/dist/about-story-hero.cjs +36 -4
  36. package/dist/about-story-hero.js +36 -4
  37. package/dist/about-streamline-team.cjs +32 -4
  38. package/dist/about-streamline-team.js +32 -4
  39. package/dist/about-vision-gallery.cjs +32 -3
  40. package/dist/about-vision-gallery.js +32 -3
  41. package/dist/alternating-blocks.cjs +5 -1
  42. package/dist/alternating-blocks.js +5 -1
  43. package/dist/banner-announcement-dismissible.cjs +377 -1
  44. package/dist/banner-announcement-dismissible.d.cts +7 -1
  45. package/dist/banner-announcement-dismissible.d.ts +7 -1
  46. package/dist/banner-announcement-dismissible.js +378 -2
  47. package/dist/banner-countdown-sale.cjs +388 -8
  48. package/dist/banner-countdown-sale.d.cts +11 -1
  49. package/dist/banner-countdown-sale.d.ts +11 -1
  50. package/dist/banner-countdown-sale.js +379 -3
  51. package/dist/banner-delivery-countdown.cjs +377 -1
  52. package/dist/banner-delivery-countdown.d.cts +11 -1
  53. package/dist/banner-delivery-countdown.d.ts +11 -1
  54. package/dist/banner-delivery-countdown.js +378 -2
  55. package/dist/banner-event-promo.cjs +377 -1
  56. package/dist/banner-event-promo.d.cts +7 -1
  57. package/dist/banner-event-promo.d.ts +7 -1
  58. package/dist/banner-event-promo.js +378 -2
  59. package/dist/banner-floating-offer.cjs +379 -3
  60. package/dist/banner-floating-offer.d.cts +7 -1
  61. package/dist/banner-floating-offer.d.ts +7 -1
  62. package/dist/banner-floating-offer.js +380 -4
  63. package/dist/banner-gdpr-rights.cjs +398 -31
  64. package/dist/banner-gdpr-rights.d.cts +7 -1
  65. package/dist/banner-gdpr-rights.d.ts +7 -1
  66. package/dist/banner-gdpr-rights.js +399 -32
  67. package/dist/banner-privacy-notice.cjs +399 -32
  68. package/dist/banner-privacy-notice.d.cts +7 -1
  69. package/dist/banner-privacy-notice.d.ts +7 -1
  70. package/dist/banner-privacy-notice.js +400 -33
  71. package/dist/banner-promo-cta.cjs +382 -12
  72. package/dist/banner-promo-cta.d.cts +7 -1
  73. package/dist/banner-promo-cta.d.ts +7 -1
  74. package/dist/banner-promo-cta.js +383 -13
  75. package/dist/banner-social-follow.cjs +395 -28
  76. package/dist/banner-social-follow.d.cts +7 -1
  77. package/dist/banner-social-follow.d.ts +7 -1
  78. package/dist/banner-social-follow.js +396 -29
  79. package/dist/banner-survey-incentive.cjs +377 -1
  80. package/dist/banner-survey-incentive.d.cts +7 -1
  81. package/dist/banner-survey-incentive.d.ts +7 -1
  82. package/dist/banner-survey-incentive.js +378 -2
  83. package/dist/community-initiatives.cjs +43 -10
  84. package/dist/community-initiatives.js +43 -10
  85. package/dist/components.cjs +76 -36
  86. package/dist/components.js +76 -36
  87. package/dist/contact-floating-banner.cjs +378 -2
  88. package/dist/contact-floating-banner.d.cts +7 -1
  89. package/dist/contact-floating-banner.d.ts +7 -1
  90. package/dist/contact-floating-banner.js +379 -2
  91. package/dist/cta-accent-background.cjs +28 -1
  92. package/dist/cta-accent-background.js +28 -1
  93. package/dist/cta-app-download-newsletter.cjs +30 -2
  94. package/dist/cta-app-download-newsletter.js +30 -2
  95. package/dist/cta-documentation-links.cjs +28 -2
  96. package/dist/cta-documentation-links.js +28 -2
  97. package/dist/cta-feature-cards-grid.cjs +34 -3
  98. package/dist/cta-feature-cards-grid.js +34 -3
  99. package/dist/cta-feature-checklist.cjs +27 -1
  100. package/dist/cta-feature-checklist.js +27 -1
  101. package/dist/cta-feature-list.cjs +33 -2
  102. package/dist/cta-feature-list.js +33 -2
  103. package/dist/cta-gradient-logos-floating.cjs +28 -1
  104. package/dist/cta-gradient-logos-floating.js +28 -1
  105. package/dist/cta-minimal-separator.cjs +27 -1
  106. package/dist/cta-minimal-separator.js +27 -1
  107. package/dist/cta-platform-demo.cjs +28 -1
  108. package/dist/cta-platform-demo.js +28 -1
  109. package/dist/cta-simple-centered.cjs +28 -1
  110. package/dist/cta-simple-centered.js +28 -1
  111. package/dist/cta-split-gradient-image.cjs +28 -1
  112. package/dist/cta-split-gradient-image.js +28 -1
  113. package/dist/cta-split-image-logos.cjs +29 -2
  114. package/dist/cta-split-image-logos.js +29 -2
  115. package/dist/cta-split-image.cjs +29 -2
  116. package/dist/cta-split-image.js +29 -2
  117. package/dist/cta-stacked-cards.cjs +28 -1
  118. package/dist/cta-stacked-cards.js +28 -1
  119. package/dist/faq-badge-support.cjs +33 -5
  120. package/dist/faq-badge-support.js +33 -5
  121. package/dist/faq-bordered-badge.cjs +31 -3
  122. package/dist/faq-bordered-badge.js +31 -3
  123. package/dist/faq-card-categories.cjs +60 -4
  124. package/dist/faq-card-categories.js +60 -4
  125. package/dist/faq-categorized-sections.cjs +31 -3
  126. package/dist/faq-categorized-sections.js +31 -3
  127. package/dist/faq-centered-accordion.cjs +31 -3
  128. package/dist/faq-centered-accordion.js +31 -3
  129. package/dist/faq-gradient-categories.cjs +31 -3
  130. package/dist/faq-gradient-categories.js +31 -3
  131. package/dist/faq-icon-benefits.cjs +40 -5
  132. package/dist/faq-icon-benefits.js +40 -5
  133. package/dist/faq-muted-cards.cjs +29 -2
  134. package/dist/faq-muted-cards.js +29 -2
  135. package/dist/faq-numbered-grid.cjs +32 -3
  136. package/dist/faq-numbered-grid.js +32 -3
  137. package/dist/faq-numbered-list.cjs +32 -3
  138. package/dist/faq-numbered-list.js +32 -3
  139. package/dist/faq-profile-sidebar.cjs +36 -6
  140. package/dist/faq-profile-sidebar.js +36 -6
  141. package/dist/faq-sidebar-navigation.cjs +30 -3
  142. package/dist/faq-sidebar-navigation.js +30 -3
  143. package/dist/faq-simple-accordion.cjs +29 -2
  144. package/dist/faq-simple-accordion.js +29 -2
  145. package/dist/feature-accordion-image.cjs +28 -2
  146. package/dist/feature-accordion-image.js +28 -2
  147. package/dist/feature-badge-grid-six.cjs +27 -1
  148. package/dist/feature-badge-grid-six.js +27 -1
  149. package/dist/feature-bento-image-grid.cjs +27 -1
  150. package/dist/feature-bento-image-grid.js +27 -1
  151. package/dist/feature-bento-utilities.cjs +56 -4
  152. package/dist/feature-bento-utilities.js +56 -4
  153. package/dist/feature-capabilities-grid.cjs +29 -3
  154. package/dist/feature-capabilities-grid.js +29 -3
  155. package/dist/feature-card-grid-linked.cjs +29 -2
  156. package/dist/feature-card-grid-linked.js +29 -2
  157. package/dist/feature-carousel-progress.cjs +28 -2
  158. package/dist/feature-carousel-progress.js +28 -2
  159. package/dist/feature-category-image-cards.cjs +28 -2
  160. package/dist/feature-category-image-cards.js +28 -2
  161. package/dist/feature-checklist-image.cjs +30 -2
  162. package/dist/feature-checklist-image.js +30 -2
  163. package/dist/feature-checklist-three-column.cjs +35 -5
  164. package/dist/feature-checklist-three-column.js +35 -5
  165. package/dist/feature-icon-grid-accent.cjs +28 -2
  166. package/dist/feature-icon-grid-accent.js +28 -2
  167. package/dist/feature-icon-grid-bordered.cjs +9 -4
  168. package/dist/feature-icon-grid-bordered.js +9 -4
  169. package/dist/feature-icon-grid-muted.cjs +28 -2
  170. package/dist/feature-icon-grid-muted.js +28 -2
  171. package/dist/feature-icon-tabs-content.cjs +56 -5
  172. package/dist/feature-icon-tabs-content.js +56 -5
  173. package/dist/feature-image-cards-three-column.cjs +27 -1
  174. package/dist/feature-image-cards-three-column.js +27 -1
  175. package/dist/feature-integration-cards.cjs +28 -2
  176. package/dist/feature-integration-cards.js +28 -2
  177. package/dist/feature-pattern-grid-links.cjs +28 -2
  178. package/dist/feature-pattern-grid-links.js +28 -2
  179. package/dist/feature-utility-cards-grid.cjs +9 -4
  180. package/dist/feature-utility-cards-grid.js +9 -4
  181. package/dist/footer-comprehensive-links.cjs +231 -151
  182. package/dist/footer-comprehensive-links.js +231 -151
  183. package/dist/hero-ad-campaign-expert.cjs +24 -2
  184. package/dist/hero-ad-campaign-expert.js +24 -2
  185. package/dist/hero-adaptable-product-grid.cjs +27 -1
  186. package/dist/hero-adaptable-product-grid.js +27 -1
  187. package/dist/hero-ai-powered-carousel.cjs +27 -1
  188. package/dist/hero-ai-powered-carousel.js +27 -1
  189. package/dist/hero-announcement-badge.cjs +27 -1
  190. package/dist/hero-announcement-badge.js +27 -1
  191. package/dist/hero-architecture-fullscreen.cjs +50 -2
  192. package/dist/hero-architecture-fullscreen.js +50 -2
  193. package/dist/hero-badge-image-split.cjs +27 -1
  194. package/dist/hero-badge-image-split.js +27 -1
  195. package/dist/hero-business-carousel-dots.cjs +27 -1
  196. package/dist/hero-business-carousel-dots.js +27 -1
  197. package/dist/hero-centered-gradient-cta.cjs +28 -2
  198. package/dist/hero-centered-gradient-cta.js +28 -2
  199. package/dist/hero-centered-image-grid.cjs +27 -1
  200. package/dist/hero-centered-image-grid.js +27 -1
  201. package/dist/hero-centered-screenshot.cjs +50 -2
  202. package/dist/hero-centered-screenshot.js +50 -2
  203. package/dist/hero-coming-soon-countdown.cjs +37 -7
  204. package/dist/hero-coming-soon-countdown.js +37 -7
  205. package/dist/hero-community-survey-cta.cjs +27 -1
  206. package/dist/hero-community-survey-cta.js +27 -1
  207. package/dist/hero-conversation-intelligence.cjs +50 -2
  208. package/dist/hero-conversation-intelligence.js +50 -2
  209. package/dist/hero-conversion-video-play.cjs +55 -3
  210. package/dist/hero-conversion-video-play.js +55 -3
  211. package/dist/hero-creative-studio-stacked.cjs +28 -2
  212. package/dist/hero-creative-studio-stacked.js +28 -2
  213. package/dist/hero-crm-streamlined.cjs +27 -1
  214. package/dist/hero-crm-streamlined.js +27 -1
  215. package/dist/hero-customer-support-layered.cjs +51 -3
  216. package/dist/hero-customer-support-layered.js +51 -3
  217. package/dist/hero-dashed-border-features.cjs +27 -1
  218. package/dist/hero-dashed-border-features.js +27 -1
  219. package/dist/hero-design-showcase-logos.cjs +27 -1
  220. package/dist/hero-design-showcase-logos.js +27 -1
  221. package/dist/hero-design-system-3d.cjs +32 -2
  222. package/dist/hero-design-system-3d.js +32 -2
  223. package/dist/hero-developer-tools-code.cjs +27 -1
  224. package/dist/hero-developer-tools-code.js +27 -1
  225. package/dist/hero-digital-agency-fullscreen.cjs +33 -3
  226. package/dist/hero-digital-agency-fullscreen.js +33 -3
  227. package/dist/hero-ecommerce-product-showcase.cjs +32 -6
  228. package/dist/hero-ecommerce-product-showcase.js +32 -6
  229. package/dist/hero-enterprise-security.cjs +34 -4
  230. package/dist/hero-enterprise-security.js +34 -4
  231. package/dist/hero-event-registration.cjs +35 -5
  232. package/dist/hero-event-registration.js +35 -5
  233. package/dist/hero-feature-cards-grid.cjs +82 -4
  234. package/dist/hero-feature-cards-grid.js +82 -4
  235. package/dist/hero-gradient-avatars-rating.cjs +30 -4
  236. package/dist/hero-gradient-avatars-rating.js +30 -4
  237. package/dist/hero-gradient-client-focused.cjs +27 -1
  238. package/dist/hero-gradient-client-focused.js +27 -1
  239. package/dist/hero-grid-pattern-efficiency.cjs +28 -2
  240. package/dist/hero-grid-pattern-efficiency.js +28 -2
  241. package/dist/hero-grid-pattern-solutions.cjs +27 -1
  242. package/dist/hero-grid-pattern-solutions.js +27 -1
  243. package/dist/hero-image-left-content.cjs +27 -1
  244. package/dist/hero-image-left-content.js +27 -1
  245. package/dist/hero-innovation-image-grid.cjs +27 -1
  246. package/dist/hero-innovation-image-grid.js +27 -1
  247. package/dist/hero-logo-centered-screenshot.cjs +27 -1
  248. package/dist/hero-logo-centered-screenshot.js +27 -1
  249. package/dist/hero-marketplace-scattered-images.cjs +27 -1
  250. package/dist/hero-marketplace-scattered-images.js +27 -1
  251. package/dist/hero-mentorship-video-split.cjs +7 -3
  252. package/dist/hero-mentorship-video-split.js +7 -3
  253. package/dist/hero-minimal-centered-dark.cjs +55 -3
  254. package/dist/hero-minimal-centered-dark.js +55 -3
  255. package/dist/hero-mobile-app-download.cjs +34 -4
  256. package/dist/hero-mobile-app-download.js +34 -4
  257. package/dist/hero-newsletter-minimal.cjs +29 -3
  258. package/dist/hero-newsletter-minimal.js +29 -3
  259. package/dist/hero-overlay-cta-grid.cjs +33 -3
  260. package/dist/hero-overlay-cta-grid.js +33 -3
  261. package/dist/hero-pattern-badge-logos.cjs +28 -2
  262. package/dist/hero-pattern-badge-logos.js +28 -2
  263. package/dist/hero-pattern-logo-tech-stack.cjs +33 -3
  264. package/dist/hero-pattern-logo-tech-stack.js +33 -3
  265. package/dist/hero-platform-features-grid.cjs +28 -2
  266. package/dist/hero-platform-features-grid.js +28 -2
  267. package/dist/hero-portfolio-creative.cjs +29 -3
  268. package/dist/hero-portfolio-creative.js +29 -3
  269. package/dist/hero-pricing-comparison.cjs +52 -4
  270. package/dist/hero-pricing-comparison.js +52 -4
  271. package/dist/hero-product-showcase-floating.cjs +34 -4
  272. package/dist/hero-product-showcase-floating.js +34 -4
  273. package/dist/hero-productivity-launcher-video.cjs +29 -3
  274. package/dist/hero-productivity-launcher-video.js +29 -3
  275. package/dist/hero-saas-dashboard-preview.cjs +34 -4
  276. package/dist/hero-saas-dashboard-preview.js +34 -4
  277. package/dist/hero-shared-inbox-layered.cjs +51 -3
  278. package/dist/hero-shared-inbox-layered.js +51 -3
  279. package/dist/hero-simple-centered-image.cjs +27 -1
  280. package/dist/hero-simple-centered-image.js +27 -1
  281. package/dist/hero-software-growth-video-dialog.cjs +50 -2
  282. package/dist/hero-software-growth-video-dialog.js +50 -2
  283. package/dist/hero-spiral-pattern-cards.cjs +28 -2
  284. package/dist/hero-spiral-pattern-cards.js +28 -2
  285. package/dist/hero-split-icon-cards.cjs +34 -4
  286. package/dist/hero-split-icon-cards.js +34 -4
  287. package/dist/hero-split-image-newsletter.cjs +28 -2
  288. package/dist/hero-split-image-newsletter.js +28 -2
  289. package/dist/hero-split-spiral-shapes.cjs +28 -2
  290. package/dist/hero-split-spiral-shapes.js +28 -2
  291. package/dist/hero-startup-launch-cta.cjs +28 -2
  292. package/dist/hero-startup-launch-cta.js +28 -2
  293. package/dist/hero-stats-social-proof.cjs +34 -4
  294. package/dist/hero-stats-social-proof.js +34 -4
  295. package/dist/hero-tech-carousel.cjs +27 -1
  296. package/dist/hero-tech-carousel.js +27 -1
  297. package/dist/hero-ui-library-showcase.cjs +27 -1
  298. package/dist/hero-ui-library-showcase.js +27 -1
  299. package/dist/hero-video-background-dark.cjs +28 -2
  300. package/dist/hero-video-background-dark.js +28 -2
  301. package/dist/hero-video-dialog-gradient.cjs +27 -1
  302. package/dist/hero-video-dialog-gradient.js +27 -1
  303. package/dist/hero-welcome-asymmetric-images.cjs +30 -2
  304. package/dist/hero-welcome-asymmetric-images.js +30 -2
  305. package/dist/index.cjs +104 -36
  306. package/dist/index.d.cts +1 -1
  307. package/dist/index.d.ts +1 -1
  308. package/dist/index.js +102 -37
  309. package/dist/link-page-bento-layout.cjs +57 -28
  310. package/dist/link-page-bento-layout.d.cts +1 -5
  311. package/dist/link-page-bento-layout.d.ts +1 -5
  312. package/dist/link-page-bento-layout.js +57 -28
  313. package/dist/link-page-grid-cards.cjs +52 -23
  314. package/dist/link-page-grid-cards.d.cts +1 -5
  315. package/dist/link-page-grid-cards.d.ts +1 -5
  316. package/dist/link-page-grid-cards.js +52 -23
  317. package/dist/link-page-minimal-profile.cjs +46 -18
  318. package/dist/link-page-minimal-profile.d.cts +1 -5
  319. package/dist/link-page-minimal-profile.d.ts +1 -5
  320. package/dist/link-page-minimal-profile.js +46 -18
  321. package/dist/link-page-newsletter-social.cjs +53 -28
  322. package/dist/link-page-newsletter-social.d.cts +1 -5
  323. package/dist/link-page-newsletter-social.d.ts +1 -5
  324. package/dist/link-page-newsletter-social.js +53 -28
  325. package/dist/link-tree-block.cjs +122 -34
  326. package/dist/link-tree-block.d.cts +1 -8
  327. package/dist/link-tree-block.d.ts +1 -8
  328. package/dist/link-tree-block.js +122 -34
  329. package/dist/media-hover-ctas.cjs +28 -2
  330. package/dist/media-hover-ctas.js +28 -2
  331. package/dist/process-expandable-timeline.cjs +66 -10
  332. package/dist/process-expandable-timeline.js +66 -10
  333. package/dist/process-hover-cards.cjs +39 -6
  334. package/dist/process-hover-cards.js +39 -6
  335. package/dist/process-icon-timeline.cjs +53 -3
  336. package/dist/process-icon-timeline.js +53 -3
  337. package/dist/process-mission-principles.cjs +44 -6
  338. package/dist/process-mission-principles.js +44 -6
  339. package/dist/process-numbered-services.cjs +76 -22
  340. package/dist/process-numbered-services.js +76 -22
  341. package/dist/process-roadmap-timeline.cjs +63 -9
  342. package/dist/process-roadmap-timeline.js +63 -9
  343. package/dist/process-scroll-image.cjs +71 -32
  344. package/dist/process-scroll-image.js +71 -32
  345. package/dist/process-steps-grid.cjs +61 -5
  346. package/dist/process-steps-grid.js +61 -5
  347. package/dist/process-sticky-steps.cjs +49 -69
  348. package/dist/process-sticky-steps.d.cts +1 -13
  349. package/dist/process-sticky-steps.d.ts +1 -13
  350. package/dist/process-sticky-steps.js +49 -69
  351. package/dist/project-zigzag-layout.cjs +379 -3
  352. package/dist/project-zigzag-layout.d.cts +8 -1
  353. package/dist/project-zigzag-layout.d.ts +8 -1
  354. package/dist/project-zigzag-layout.js +380 -3
  355. package/dist/registry.cjs +2759 -2476
  356. package/dist/registry.js +2759 -2476
  357. package/dist/team-media-showcase.cjs +59 -4
  358. package/dist/team-media-showcase.d.cts +4 -0
  359. package/dist/team-media-showcase.d.ts +4 -0
  360. package/dist/team-media-showcase.js +59 -4
  361. package/dist/testimonials-carousel-image.d.cts +6 -0
  362. package/dist/testimonials-carousel-image.d.ts +6 -0
  363. package/dist/utils.cjs +58 -0
  364. package/dist/utils.d.cts +113 -1
  365. package/dist/utils.d.ts +113 -1
  366. package/dist/utils.js +56 -1
  367. package/package.json +1 -1
@@ -66,6 +66,32 @@ function getNestedCardTextColor(parentBg, options) {
66
66
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
67
67
  return isDark ? "text-foreground" : "";
68
68
  }
69
+ function getTextColor(parentBg, variant = "default", options) {
70
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
71
+ if (isDark) {
72
+ switch (variant) {
73
+ case "default":
74
+ return "text-foreground";
75
+ case "muted":
76
+ return "text-foreground/80";
77
+ case "subtle":
78
+ return "text-foreground/60";
79
+ case "accent":
80
+ return "text-accent-foreground";
81
+ }
82
+ } else {
83
+ switch (variant) {
84
+ case "default":
85
+ return "text-foreground";
86
+ case "muted":
87
+ return "text-muted-foreground";
88
+ case "subtle":
89
+ return "text-muted-foreground/70";
90
+ case "accent":
91
+ return "text-primary";
92
+ }
93
+ }
94
+ }
69
95
  function normalizePhoneNumber(input) {
70
96
  const trimmed = input.trim();
71
97
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1131,8 +1157,7 @@ function LinkPageNewsletterSocial({
1131
1157
  linkLabelClassName,
1132
1158
  linkChevronClassName,
1133
1159
  footerClassName,
1134
- theme = "light",
1135
- background,
1160
+ background = "white",
1136
1161
  spacing,
1137
1162
  pattern,
1138
1163
  patternOpacity,
@@ -1143,8 +1168,7 @@ function LinkPageNewsletterSocial({
1143
1168
  onError,
1144
1169
  optixFlowConfig
1145
1170
  }) {
1146
- const isDark = theme === "dark";
1147
- const resolvedBackground = background ?? (isDark ? "dark" : "white");
1171
+ const resolvedBackground = background;
1148
1172
  const resolvedAvatar = avatar || (avatarUrl ? {
1149
1173
  src: avatarUrl,
1150
1174
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1238,7 +1262,8 @@ function LinkPageNewsletterSocial({
1238
1262
  "p",
1239
1263
  {
1240
1264
  className: cn(
1241
- "max-w-xs text-sm text-muted-foreground",
1265
+ "max-w-xs text-sm",
1266
+ getTextColor(resolvedBackground, "muted"),
1242
1267
  bioClassName
1243
1268
  ),
1244
1269
  children: bio
@@ -1248,7 +1273,7 @@ function LinkPageNewsletterSocial({
1248
1273
  ]
1249
1274
  }
1250
1275
  );
1251
- }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, isDark, nameClassName, bio, bioClassName, headerClassName]);
1276
+ }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, resolvedBackground, nameClassName, bio, bioClassName, headerClassName]);
1252
1277
  const renderSocialLinks = React.useMemo(() => {
1253
1278
  if (socialLinksSlot) return socialLinksSlot;
1254
1279
  if (!socialLinks || socialLinks.length === 0) return null;
@@ -1260,10 +1285,11 @@ function LinkPageNewsletterSocial({
1260
1285
  socialLinksClassName
1261
1286
  ),
1262
1287
  children: socialLinks.map((social, index) => {
1263
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1288
+ const { iconName, ...socialPressableProps } = social;
1289
+ const icon = social.icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1264
1290
  DynamicIcon,
1265
1291
  {
1266
- name: social.iconName,
1292
+ name: iconName,
1267
1293
  size: 20,
1268
1294
  className: socialIconClassName
1269
1295
  }
@@ -1272,14 +1298,14 @@ function LinkPageNewsletterSocial({
1272
1298
  return /* @__PURE__ */ jsxRuntime.jsx(
1273
1299
  Pressable,
1274
1300
  {
1275
- href: social.href,
1301
+ ...socialPressableProps,
1276
1302
  "aria-label": ariaLabel,
1277
1303
  className: cn(
1278
1304
  "rounded-full p-2.5 transition-all duration-200",
1279
1305
  "hover:scale-110 active:scale-95",
1280
1306
  getNestedCardBg(resolvedBackground),
1281
1307
  getNestedCardTextColor(resolvedBackground),
1282
- isDark ? "hover:bg-muted/20" : "hover:bg-muted/80",
1308
+ "hover:opacity-80",
1283
1309
  socialLinkClassName,
1284
1310
  social.className
1285
1311
  ),
@@ -1290,7 +1316,7 @@ function LinkPageNewsletterSocial({
1290
1316
  })
1291
1317
  }
1292
1318
  );
1293
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1319
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1294
1320
  const renderFormFields = React.useMemo(() => {
1295
1321
  if (formSlot) return formSlot;
1296
1322
  const {
@@ -1311,7 +1337,6 @@ function LinkPageNewsletterSocial({
1311
1337
  error: meta.touched && !!meta.error,
1312
1338
  className: cn(
1313
1339
  "w-full",
1314
- isDark && "border-border/20 bg-muted/10 placeholder:text-muted-foreground/50",
1315
1340
  inputClassName
1316
1341
  ),
1317
1342
  "aria-label": emailPlaceholder || "Email address"
@@ -1339,7 +1364,7 @@ function LinkPageNewsletterSocial({
1339
1364
  }
1340
1365
  )
1341
1366
  ] });
1342
- }, [formSlot, resolvedSubmitAction, emailPlaceholder, isDark, inputClassName, submitButtonClassName, form.isSubmitting, submittingIcon, submittingLabel]);
1367
+ }, [formSlot, resolvedSubmitAction, emailPlaceholder, inputClassName, submitButtonClassName, form.isSubmitting, submittingIcon, submittingLabel]);
1343
1368
  const renderNewsletter = React.useMemo(() => {
1344
1369
  if (newsletterSlot) return newsletterSlot;
1345
1370
  return /* @__PURE__ */ jsxRuntime.jsxs(
@@ -1347,7 +1372,7 @@ function LinkPageNewsletterSocial({
1347
1372
  {
1348
1373
  className: cn(
1349
1374
  "space-y-4 rounded-2xl p-6",
1350
- isDark ? "border border-border/10 bg-muted/5" : "border border-border bg-card shadow-sm",
1375
+ "border border-border bg-card shadow-sm",
1351
1376
  newsletterCardClassName
1352
1377
  ),
1353
1378
  children: [
@@ -1366,7 +1391,8 @@ function LinkPageNewsletterSocial({
1366
1391
  "p",
1367
1392
  {
1368
1393
  className: cn(
1369
- "text-sm text-muted-foreground",
1394
+ "text-sm",
1395
+ getTextColor(resolvedBackground, "muted"),
1370
1396
  newsletterDescriptionClassName
1371
1397
  ),
1372
1398
  children: newsletterDescription
@@ -1386,7 +1412,7 @@ function LinkPageNewsletterSocial({
1386
1412
  ]
1387
1413
  }
1388
1414
  );
1389
- }, [newsletterSlot, isDark, newsletterCardClassName, newsletterHeading, newsletterHeadingClassName, newsletterDescription, newsletterDescriptionClassName, form, formConfig?.endpoint, formMethod, formClassName, renderFormFields]);
1415
+ }, [newsletterSlot, newsletterCardClassName, newsletterHeading, newsletterHeadingClassName, newsletterDescription, resolvedBackground, newsletterDescriptionClassName, form, formConfig?.endpoint, formMethod, formClassName, renderFormFields]);
1390
1416
  const renderLinks = React.useMemo(() => {
1391
1417
  if (linksSlot) return linksSlot;
1392
1418
  if (!links || links.length === 0) return null;
@@ -1396,12 +1422,13 @@ function LinkPageNewsletterSocial({
1396
1422
  icon,
1397
1423
  children,
1398
1424
  className: linkItemClassName,
1425
+ iconName,
1399
1426
  ...pressableProps
1400
1427
  } = link;
1401
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1428
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1402
1429
  DynamicIcon,
1403
1430
  {
1404
- name: link.iconName,
1431
+ name: iconName,
1405
1432
  size: 18,
1406
1433
  className: linkIconClassName
1407
1434
  }
@@ -1413,7 +1440,7 @@ function LinkPageNewsletterSocial({
1413
1440
  className: cn(
1414
1441
  "flex w-full items-center gap-3 rounded-xl px-4 py-3 transition-all duration-200",
1415
1442
  "hover:scale-[1.02] active:scale-[0.98]",
1416
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card hover:bg-muted/50",
1443
+ "border border-border bg-card hover:opacity-80",
1417
1444
  linkClassName,
1418
1445
  linkItemClassName
1419
1446
  ),
@@ -1429,7 +1456,7 @@ function LinkPageNewsletterSocial({
1429
1456
  className: cn(
1430
1457
  "flex w-full items-center gap-3 rounded-xl px-4 py-3 transition-all duration-200",
1431
1458
  "hover:scale-[1.02] active:scale-[0.98]",
1432
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card hover:bg-muted/50",
1459
+ "border border-border bg-card hover:opacity-80",
1433
1460
  linkClassName,
1434
1461
  linkItemClassName
1435
1462
  ),
@@ -1450,7 +1477,7 @@ function LinkPageNewsletterSocial({
1450
1477
  "span",
1451
1478
  {
1452
1479
  className: cn(
1453
- "text-muted-foreground",
1480
+ getTextColor(resolvedBackground, "muted"),
1454
1481
  linkChevronClassName
1455
1482
  ),
1456
1483
  children: resolvedChevronIcon
@@ -1461,7 +1488,7 @@ function LinkPageNewsletterSocial({
1461
1488
  link.id ?? index
1462
1489
  );
1463
1490
  }) });
1464
- }, [linksSlot, links, linksClassName, linkIconClassName, isDark, linkClassName, linkLabelClassName, linkChevronClassName, resolvedChevronIcon]);
1491
+ }, [linksSlot, links, linksClassName, linkIconClassName, resolvedBackground, linkClassName, linkLabelClassName, linkChevronClassName, resolvedChevronIcon]);
1465
1492
  const renderFooter = React.useMemo(() => {
1466
1493
  if (footerSlot) return footerSlot;
1467
1494
  if (!footerAction) return null;
@@ -1480,7 +1507,8 @@ function LinkPageNewsletterSocial({
1480
1507
  {
1481
1508
  className: cn(
1482
1509
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1483
- "text-muted-foreground/50",
1510
+ getTextColor(resolvedBackground, "muted"),
1511
+ "opacity-50",
1484
1512
  footerClassName,
1485
1513
  actionClassName
1486
1514
  ),
@@ -1492,16 +1520,13 @@ function LinkPageNewsletterSocial({
1492
1520
  ] })
1493
1521
  }
1494
1522
  );
1495
- }, [footerSlot, footerAction, isDark, footerClassName]);
1523
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1496
1524
  return /* @__PURE__ */ jsxRuntime.jsx(
1497
1525
  Section,
1498
1526
  {
1499
1527
  background: resolvedBackground,
1500
1528
  spacing,
1501
- className: cn(
1502
- isDark ? "bg-foreground" : "bg-gradient-to-b from-background to-muted/30",
1503
- className
1504
- ),
1529
+ className,
1505
1530
  pattern,
1506
1531
  patternOpacity,
1507
1532
  patternClassName,
@@ -197,10 +197,6 @@ interface LinkPageNewsletterSocialProps {
197
197
  * Additional CSS classes for the footer
198
198
  */
199
199
  footerClassName?: string;
200
- /**
201
- * Theme variation: "light" or "dark"
202
- */
203
- theme?: "light" | "dark";
204
200
  /**
205
201
  * Background style for the section
206
202
  */
@@ -317,6 +313,6 @@ interface LinkPageNewsletterSocialProps {
317
313
  * />
318
314
  * ```
319
315
  */
320
- declare function LinkPageNewsletterSocial({ name, bio, avatar, avatarUrl, profileSlot, newsletterHeading, newsletterDescription, emailPlaceholder, buttonText, submitAction, newsletterSlot, formSlot, submittingLabel, submittingIcon, links, linksSlot, linkChevronIcon, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, inputClassName, submitButtonClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, linkChevronClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: LinkPageNewsletterSocialProps): React.JSX.Element;
316
+ declare function LinkPageNewsletterSocial({ name, bio, avatar, avatarUrl, profileSlot, newsletterHeading, newsletterDescription, emailPlaceholder, buttonText, submitAction, newsletterSlot, formSlot, submittingLabel, submittingIcon, links, linksSlot, linkChevronIcon, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, inputClassName, submitButtonClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, linkChevronClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: LinkPageNewsletterSocialProps): React.JSX.Element;
321
317
 
322
318
  export { LinkPageNewsletterSocial, type LinkPageNewsletterSocialProps, type NewsletterSocialLink, type NewsletterSocialSocialLink };
@@ -197,10 +197,6 @@ interface LinkPageNewsletterSocialProps {
197
197
  * Additional CSS classes for the footer
198
198
  */
199
199
  footerClassName?: string;
200
- /**
201
- * Theme variation: "light" or "dark"
202
- */
203
- theme?: "light" | "dark";
204
200
  /**
205
201
  * Background style for the section
206
202
  */
@@ -317,6 +313,6 @@ interface LinkPageNewsletterSocialProps {
317
313
  * />
318
314
  * ```
319
315
  */
320
- declare function LinkPageNewsletterSocial({ name, bio, avatar, avatarUrl, profileSlot, newsletterHeading, newsletterDescription, emailPlaceholder, buttonText, submitAction, newsletterSlot, formSlot, submittingLabel, submittingIcon, links, linksSlot, linkChevronIcon, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, inputClassName, submitButtonClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, linkChevronClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: LinkPageNewsletterSocialProps): React.JSX.Element;
316
+ declare function LinkPageNewsletterSocial({ name, bio, avatar, avatarUrl, profileSlot, newsletterHeading, newsletterDescription, emailPlaceholder, buttonText, submitAction, newsletterSlot, formSlot, submittingLabel, submittingIcon, links, linksSlot, linkChevronIcon, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, newsletterCardClassName, newsletterHeadingClassName, newsletterDescriptionClassName, formClassName, inputClassName, submitButtonClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, linkChevronClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, formConfig, onSubmit, onSuccess, onError, optixFlowConfig, }: LinkPageNewsletterSocialProps): React.JSX.Element;
321
317
 
322
318
  export { LinkPageNewsletterSocial, type LinkPageNewsletterSocialProps, type NewsletterSocialLink, type NewsletterSocialSocialLink };
@@ -45,6 +45,32 @@ function getNestedCardTextColor(parentBg, options) {
45
45
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
46
  return isDark ? "text-foreground" : "";
47
47
  }
48
+ function getTextColor(parentBg, variant = "default", options) {
49
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
50
+ if (isDark) {
51
+ switch (variant) {
52
+ case "default":
53
+ return "text-foreground";
54
+ case "muted":
55
+ return "text-foreground/80";
56
+ case "subtle":
57
+ return "text-foreground/60";
58
+ case "accent":
59
+ return "text-accent-foreground";
60
+ }
61
+ } else {
62
+ switch (variant) {
63
+ case "default":
64
+ return "text-foreground";
65
+ case "muted":
66
+ return "text-muted-foreground";
67
+ case "subtle":
68
+ return "text-muted-foreground/70";
69
+ case "accent":
70
+ return "text-primary";
71
+ }
72
+ }
73
+ }
48
74
  function normalizePhoneNumber(input) {
49
75
  const trimmed = input.trim();
50
76
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1110,8 +1136,7 @@ function LinkPageNewsletterSocial({
1110
1136
  linkLabelClassName,
1111
1137
  linkChevronClassName,
1112
1138
  footerClassName,
1113
- theme = "light",
1114
- background,
1139
+ background = "white",
1115
1140
  spacing,
1116
1141
  pattern,
1117
1142
  patternOpacity,
@@ -1122,8 +1147,7 @@ function LinkPageNewsletterSocial({
1122
1147
  onError,
1123
1148
  optixFlowConfig
1124
1149
  }) {
1125
- const isDark = theme === "dark";
1126
- const resolvedBackground = background ?? (isDark ? "dark" : "white");
1150
+ const resolvedBackground = background;
1127
1151
  const resolvedAvatar = avatar || (avatarUrl ? {
1128
1152
  src: avatarUrl,
1129
1153
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1217,7 +1241,8 @@ function LinkPageNewsletterSocial({
1217
1241
  "p",
1218
1242
  {
1219
1243
  className: cn(
1220
- "max-w-xs text-sm text-muted-foreground",
1244
+ "max-w-xs text-sm",
1245
+ getTextColor(resolvedBackground, "muted"),
1221
1246
  bioClassName
1222
1247
  ),
1223
1248
  children: bio
@@ -1227,7 +1252,7 @@ function LinkPageNewsletterSocial({
1227
1252
  ]
1228
1253
  }
1229
1254
  );
1230
- }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, isDark, nameClassName, bio, bioClassName, headerClassName]);
1255
+ }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, resolvedBackground, nameClassName, bio, bioClassName, headerClassName]);
1231
1256
  const renderSocialLinks = useMemo(() => {
1232
1257
  if (socialLinksSlot) return socialLinksSlot;
1233
1258
  if (!socialLinks || socialLinks.length === 0) return null;
@@ -1239,10 +1264,11 @@ function LinkPageNewsletterSocial({
1239
1264
  socialLinksClassName
1240
1265
  ),
1241
1266
  children: socialLinks.map((social, index) => {
1242
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsx(
1267
+ const { iconName, ...socialPressableProps } = social;
1268
+ const icon = social.icon || (iconName ? /* @__PURE__ */ jsx(
1243
1269
  DynamicIcon,
1244
1270
  {
1245
- name: social.iconName,
1271
+ name: iconName,
1246
1272
  size: 20,
1247
1273
  className: socialIconClassName
1248
1274
  }
@@ -1251,14 +1277,14 @@ function LinkPageNewsletterSocial({
1251
1277
  return /* @__PURE__ */ jsx(
1252
1278
  Pressable,
1253
1279
  {
1254
- href: social.href,
1280
+ ...socialPressableProps,
1255
1281
  "aria-label": ariaLabel,
1256
1282
  className: cn(
1257
1283
  "rounded-full p-2.5 transition-all duration-200",
1258
1284
  "hover:scale-110 active:scale-95",
1259
1285
  getNestedCardBg(resolvedBackground),
1260
1286
  getNestedCardTextColor(resolvedBackground),
1261
- isDark ? "hover:bg-muted/20" : "hover:bg-muted/80",
1287
+ "hover:opacity-80",
1262
1288
  socialLinkClassName,
1263
1289
  social.className
1264
1290
  ),
@@ -1269,7 +1295,7 @@ function LinkPageNewsletterSocial({
1269
1295
  })
1270
1296
  }
1271
1297
  );
1272
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1298
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1273
1299
  const renderFormFields = useMemo(() => {
1274
1300
  if (formSlot) return formSlot;
1275
1301
  const {
@@ -1290,7 +1316,6 @@ function LinkPageNewsletterSocial({
1290
1316
  error: meta.touched && !!meta.error,
1291
1317
  className: cn(
1292
1318
  "w-full",
1293
- isDark && "border-border/20 bg-muted/10 placeholder:text-muted-foreground/50",
1294
1319
  inputClassName
1295
1320
  ),
1296
1321
  "aria-label": emailPlaceholder || "Email address"
@@ -1318,7 +1343,7 @@ function LinkPageNewsletterSocial({
1318
1343
  }
1319
1344
  )
1320
1345
  ] });
1321
- }, [formSlot, resolvedSubmitAction, emailPlaceholder, isDark, inputClassName, submitButtonClassName, form.isSubmitting, submittingIcon, submittingLabel]);
1346
+ }, [formSlot, resolvedSubmitAction, emailPlaceholder, inputClassName, submitButtonClassName, form.isSubmitting, submittingIcon, submittingLabel]);
1322
1347
  const renderNewsletter = useMemo(() => {
1323
1348
  if (newsletterSlot) return newsletterSlot;
1324
1349
  return /* @__PURE__ */ jsxs(
@@ -1326,7 +1351,7 @@ function LinkPageNewsletterSocial({
1326
1351
  {
1327
1352
  className: cn(
1328
1353
  "space-y-4 rounded-2xl p-6",
1329
- isDark ? "border border-border/10 bg-muted/5" : "border border-border bg-card shadow-sm",
1354
+ "border border-border bg-card shadow-sm",
1330
1355
  newsletterCardClassName
1331
1356
  ),
1332
1357
  children: [
@@ -1345,7 +1370,8 @@ function LinkPageNewsletterSocial({
1345
1370
  "p",
1346
1371
  {
1347
1372
  className: cn(
1348
- "text-sm text-muted-foreground",
1373
+ "text-sm",
1374
+ getTextColor(resolvedBackground, "muted"),
1349
1375
  newsletterDescriptionClassName
1350
1376
  ),
1351
1377
  children: newsletterDescription
@@ -1365,7 +1391,7 @@ function LinkPageNewsletterSocial({
1365
1391
  ]
1366
1392
  }
1367
1393
  );
1368
- }, [newsletterSlot, isDark, newsletterCardClassName, newsletterHeading, newsletterHeadingClassName, newsletterDescription, newsletterDescriptionClassName, form, formConfig?.endpoint, formMethod, formClassName, renderFormFields]);
1394
+ }, [newsletterSlot, newsletterCardClassName, newsletterHeading, newsletterHeadingClassName, newsletterDescription, resolvedBackground, newsletterDescriptionClassName, form, formConfig?.endpoint, formMethod, formClassName, renderFormFields]);
1369
1395
  const renderLinks = useMemo(() => {
1370
1396
  if (linksSlot) return linksSlot;
1371
1397
  if (!links || links.length === 0) return null;
@@ -1375,12 +1401,13 @@ function LinkPageNewsletterSocial({
1375
1401
  icon,
1376
1402
  children,
1377
1403
  className: linkItemClassName,
1404
+ iconName,
1378
1405
  ...pressableProps
1379
1406
  } = link;
1380
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsx(
1407
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsx(
1381
1408
  DynamicIcon,
1382
1409
  {
1383
- name: link.iconName,
1410
+ name: iconName,
1384
1411
  size: 18,
1385
1412
  className: linkIconClassName
1386
1413
  }
@@ -1392,7 +1419,7 @@ function LinkPageNewsletterSocial({
1392
1419
  className: cn(
1393
1420
  "flex w-full items-center gap-3 rounded-xl px-4 py-3 transition-all duration-200",
1394
1421
  "hover:scale-[1.02] active:scale-[0.98]",
1395
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card hover:bg-muted/50",
1422
+ "border border-border bg-card hover:opacity-80",
1396
1423
  linkClassName,
1397
1424
  linkItemClassName
1398
1425
  ),
@@ -1408,7 +1435,7 @@ function LinkPageNewsletterSocial({
1408
1435
  className: cn(
1409
1436
  "flex w-full items-center gap-3 rounded-xl px-4 py-3 transition-all duration-200",
1410
1437
  "hover:scale-[1.02] active:scale-[0.98]",
1411
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card hover:bg-muted/50",
1438
+ "border border-border bg-card hover:opacity-80",
1412
1439
  linkClassName,
1413
1440
  linkItemClassName
1414
1441
  ),
@@ -1429,7 +1456,7 @@ function LinkPageNewsletterSocial({
1429
1456
  "span",
1430
1457
  {
1431
1458
  className: cn(
1432
- "text-muted-foreground",
1459
+ getTextColor(resolvedBackground, "muted"),
1433
1460
  linkChevronClassName
1434
1461
  ),
1435
1462
  children: resolvedChevronIcon
@@ -1440,7 +1467,7 @@ function LinkPageNewsletterSocial({
1440
1467
  link.id ?? index
1441
1468
  );
1442
1469
  }) });
1443
- }, [linksSlot, links, linksClassName, linkIconClassName, isDark, linkClassName, linkLabelClassName, linkChevronClassName, resolvedChevronIcon]);
1470
+ }, [linksSlot, links, linksClassName, linkIconClassName, resolvedBackground, linkClassName, linkLabelClassName, linkChevronClassName, resolvedChevronIcon]);
1444
1471
  const renderFooter = useMemo(() => {
1445
1472
  if (footerSlot) return footerSlot;
1446
1473
  if (!footerAction) return null;
@@ -1459,7 +1486,8 @@ function LinkPageNewsletterSocial({
1459
1486
  {
1460
1487
  className: cn(
1461
1488
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1462
- "text-muted-foreground/50",
1489
+ getTextColor(resolvedBackground, "muted"),
1490
+ "opacity-50",
1463
1491
  footerClassName,
1464
1492
  actionClassName
1465
1493
  ),
@@ -1471,16 +1499,13 @@ function LinkPageNewsletterSocial({
1471
1499
  ] })
1472
1500
  }
1473
1501
  );
1474
- }, [footerSlot, footerAction, isDark, footerClassName]);
1502
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1475
1503
  return /* @__PURE__ */ jsx(
1476
1504
  Section,
1477
1505
  {
1478
1506
  background: resolvedBackground,
1479
1507
  spacing,
1480
- className: cn(
1481
- isDark ? "bg-foreground" : "bg-gradient-to-b from-background to-muted/30",
1482
- className
1483
- ),
1508
+ className,
1484
1509
  pattern,
1485
1510
  patternOpacity,
1486
1511
  patternClassName,