@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
@@ -41,6 +41,32 @@ function getNestedCardTextColor(parentBg, options) {
41
41
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
42
  return isDark ? "text-foreground" : "";
43
43
  }
44
+ function getTextColor(parentBg, variant = "default", options) {
45
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
+ if (isDark) {
47
+ switch (variant) {
48
+ case "default":
49
+ return "text-foreground";
50
+ case "muted":
51
+ return "text-foreground/80";
52
+ case "subtle":
53
+ return "text-foreground/60";
54
+ case "accent":
55
+ return "text-accent-foreground";
56
+ }
57
+ } else {
58
+ switch (variant) {
59
+ case "default":
60
+ return "text-foreground";
61
+ case "muted":
62
+ return "text-muted-foreground";
63
+ case "subtle":
64
+ return "text-muted-foreground/70";
65
+ case "accent":
66
+ return "text-primary";
67
+ }
68
+ }
69
+ }
44
70
  function normalizePhoneNumber(input) {
45
71
  const trimmed = input.trim();
46
72
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -973,16 +999,14 @@ function LinkPageGridCards({
973
999
  cardLabelClassName,
974
1000
  cardDescriptionClassName,
975
1001
  footerClassName,
976
- theme = "light",
977
- background,
1002
+ background = "gray",
978
1003
  spacing,
979
1004
  pattern,
980
1005
  patternOpacity,
981
1006
  patternClassName,
982
1007
  optixFlowConfig
983
1008
  }) {
984
- const isDark = theme === "dark";
985
- const resolvedBackground = background ?? (isDark ? "dark" : "gray");
1009
+ const resolvedBackground = background;
986
1010
  const resolvedAvatar = avatar || (avatarUrl ? {
987
1011
  src: avatarUrl,
988
1012
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1001,8 +1025,7 @@ function LinkPageGridCards({
1001
1025
  "div",
1002
1026
  {
1003
1027
  className: cn(
1004
- "h-20 w-20 overflow-hidden rounded-2xl shadow-lg",
1005
- isDark ? "ring-2 ring-white/10" : "ring-2 ring-neutral-200",
1028
+ "h-20 w-20 overflow-hidden rounded-2xl shadow-lg ring-2 ring-neutral-200",
1006
1029
  avatarClassName
1007
1030
  ),
1008
1031
  children: /* @__PURE__ */ jsx(
@@ -1031,7 +1054,8 @@ function LinkPageGridCards({
1031
1054
  "p",
1032
1055
  {
1033
1056
  className: cn(
1034
- "text-sm text-muted-foreground",
1057
+ "text-sm",
1058
+ getTextColor(resolvedBackground, "muted"),
1035
1059
  bioClassName
1036
1060
  ),
1037
1061
  children: bio
@@ -1041,7 +1065,7 @@ function LinkPageGridCards({
1041
1065
  ]
1042
1066
  }
1043
1067
  );
1044
- }, [profileSlot, resolvedAvatar, isDark, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, headerClassName]);
1068
+ }, [profileSlot, resolvedAvatar, resolvedBackground, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, headerClassName]);
1045
1069
  const renderSocialLinks = useMemo(() => {
1046
1070
  if (socialLinksSlot) return socialLinksSlot;
1047
1071
  if (!socialLinks || socialLinks.length === 0) return null;
@@ -1053,10 +1077,11 @@ function LinkPageGridCards({
1053
1077
  socialLinksClassName
1054
1078
  ),
1055
1079
  children: socialLinks.map((social, index) => {
1056
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsx(
1080
+ const { iconName, ...socialPressableProps } = social;
1081
+ const icon = social.icon || (iconName ? /* @__PURE__ */ jsx(
1057
1082
  DynamicIcon,
1058
1083
  {
1059
- name: social.iconName,
1084
+ name: iconName,
1060
1085
  size: 18,
1061
1086
  className: socialIconClassName
1062
1087
  }
@@ -1065,12 +1090,13 @@ function LinkPageGridCards({
1065
1090
  return /* @__PURE__ */ jsx(
1066
1091
  Pressable,
1067
1092
  {
1068
- href: social.href,
1093
+ ...socialPressableProps,
1069
1094
  "aria-label": ariaLabel,
1070
1095
  className: cn(
1071
1096
  "rounded-lg p-2 transition-all duration-200",
1072
1097
  "hover:scale-110 active:scale-95",
1073
- isDark ? "bg-muted/5 text-muted-foreground hover:bg-muted/10" : "bg-card text-muted-foreground hover:bg-muted",
1098
+ "bg-card hover:opacity-80",
1099
+ getTextColor(resolvedBackground, "muted"),
1074
1100
  socialLinkClassName,
1075
1101
  social.className
1076
1102
  ),
@@ -1081,7 +1107,7 @@ function LinkPageGridCards({
1081
1107
  })
1082
1108
  }
1083
1109
  );
1084
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1110
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1085
1111
  const renderLinks = useMemo(() => {
1086
1112
  if (linksSlot) return linksSlot;
1087
1113
  if (!links || links.length === 0) return null;
@@ -1100,12 +1126,13 @@ function LinkPageGridCards({
1100
1126
  icon,
1101
1127
  children,
1102
1128
  className: linkClassName,
1129
+ iconName,
1103
1130
  ...pressableProps
1104
1131
  } = link;
1105
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsx(
1132
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsx(
1106
1133
  DynamicIcon,
1107
1134
  {
1108
- name: link.iconName,
1135
+ name: iconName,
1109
1136
  size: 24,
1110
1137
  className: cardIconClassName
1111
1138
  }
@@ -1117,7 +1144,7 @@ function LinkPageGridCards({
1117
1144
  className: cn(
1118
1145
  "group flex flex-col items-center gap-2 rounded-xl p-4 transition-all duration-200",
1119
1146
  "hover:scale-[1.03] active:scale-[0.97]",
1120
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card shadow-sm hover:shadow-md",
1147
+ "border border-border bg-card shadow-sm hover:shadow-md",
1121
1148
  cardClassName,
1122
1149
  linkClassName
1123
1150
  ),
@@ -1133,7 +1160,7 @@ function LinkPageGridCards({
1133
1160
  className: cn(
1134
1161
  "group flex flex-col items-center gap-2 rounded-xl p-4 transition-all duration-200",
1135
1162
  "hover:scale-[1.03] active:scale-[0.97]",
1136
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-card shadow-sm hover:shadow-md",
1163
+ "border border-border bg-card shadow-sm hover:shadow-md",
1137
1164
  cardClassName,
1138
1165
  linkClassName
1139
1166
  ),
@@ -1146,7 +1173,7 @@ function LinkPageGridCards({
1146
1173
  "flex h-12 w-12 items-center justify-center rounded-xl transition-colors",
1147
1174
  getNestedCardBg(resolvedBackground),
1148
1175
  getNestedCardTextColor(resolvedBackground),
1149
- isDark ? "group-hover:bg-muted/20" : "group-hover:bg-muted/80",
1176
+ "group-hover:opacity-80",
1150
1177
  cardIconWrapperClassName
1151
1178
  ),
1152
1179
  children: iconElement
@@ -1167,7 +1194,8 @@ function LinkPageGridCards({
1167
1194
  "span",
1168
1195
  {
1169
1196
  className: cn(
1170
- "block text-xs text-muted-foreground",
1197
+ "block text-xs",
1198
+ getTextColor(resolvedBackground, "muted"),
1171
1199
  cardDescriptionClassName
1172
1200
  ),
1173
1201
  children: description
@@ -1181,7 +1209,7 @@ function LinkPageGridCards({
1181
1209
  })
1182
1210
  }
1183
1211
  );
1184
- }, [linksSlot, links, columns, gridClassName, cardIconClassName, isDark, cardClassName, cardIconWrapperClassName, cardLabelClassName, cardDescriptionClassName]);
1212
+ }, [linksSlot, links, columns, gridClassName, cardIconClassName, resolvedBackground, cardClassName, cardIconWrapperClassName, cardLabelClassName, cardDescriptionClassName]);
1185
1213
  const renderFooter = useMemo(() => {
1186
1214
  if (footerSlot) return footerSlot;
1187
1215
  if (!footerAction) return null;
@@ -1200,7 +1228,8 @@ function LinkPageGridCards({
1200
1228
  {
1201
1229
  className: cn(
1202
1230
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1203
- "text-muted-foreground/50",
1231
+ getTextColor(resolvedBackground, "muted"),
1232
+ "opacity-50",
1204
1233
  footerClassName,
1205
1234
  actionClassName
1206
1235
  ),
@@ -1212,13 +1241,13 @@ function LinkPageGridCards({
1212
1241
  ] })
1213
1242
  }
1214
1243
  );
1215
- }, [footerSlot, footerAction, isDark, footerClassName]);
1244
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1216
1245
  return /* @__PURE__ */ jsx(
1217
1246
  Section,
1218
1247
  {
1219
1248
  background: resolvedBackground,
1220
1249
  spacing,
1221
- className: cn(isDark ? "bg-foreground" : "bg-muted/30", className),
1250
+ className,
1222
1251
  pattern,
1223
1252
  patternOpacity,
1224
1253
  patternClassName,
@@ -62,6 +62,32 @@ function getNestedCardTextColor(parentBg, options) {
62
62
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
63
63
  return isDark ? "text-foreground" : "";
64
64
  }
65
+ function getTextColor(parentBg, variant = "default", options) {
66
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
67
+ if (isDark) {
68
+ switch (variant) {
69
+ case "default":
70
+ return "text-foreground";
71
+ case "muted":
72
+ return "text-foreground/80";
73
+ case "subtle":
74
+ return "text-foreground/60";
75
+ case "accent":
76
+ return "text-accent-foreground";
77
+ }
78
+ } else {
79
+ switch (variant) {
80
+ case "default":
81
+ return "text-foreground";
82
+ case "muted":
83
+ return "text-muted-foreground";
84
+ case "subtle":
85
+ return "text-muted-foreground/70";
86
+ case "accent":
87
+ return "text-primary";
88
+ }
89
+ }
90
+ }
65
91
  function normalizePhoneNumber(input) {
66
92
  const trimmed = input.trim();
67
93
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -991,16 +1017,14 @@ function LinkPageMinimalProfile({
991
1017
  socialLinkClassName,
992
1018
  socialIconClassName,
993
1019
  footerClassName,
994
- theme = "light",
995
- background,
1020
+ background = "default",
996
1021
  spacing,
997
1022
  pattern,
998
1023
  patternOpacity,
999
1024
  patternClassName,
1000
1025
  optixFlowConfig
1001
1026
  }) {
1002
- const isDark = theme === "dark";
1003
- const resolvedBackground = background ?? (isDark ? "dark" : "white");
1027
+ const resolvedBackground = background;
1004
1028
  const resolvedAvatar = avatar || (avatarUrl ? {
1005
1029
  src: avatarUrl,
1006
1030
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1049,7 +1073,8 @@ function LinkPageMinimalProfile({
1049
1073
  "p",
1050
1074
  {
1051
1075
  className: cn(
1052
- "text-sm text-muted-foreground",
1076
+ "text-sm",
1077
+ getTextColor(resolvedBackground, "muted"),
1053
1078
  bioClassName
1054
1079
  ),
1055
1080
  children: bio
@@ -1059,7 +1084,7 @@ function LinkPageMinimalProfile({
1059
1084
  ]
1060
1085
  }
1061
1086
  );
1062
- }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, isDark, nameClassName, bio, bioClassName, headerClassName]);
1087
+ }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, resolvedBackground, nameClassName, bio, bioClassName, headerClassName]);
1063
1088
  const renderLinks = React.useMemo(() => {
1064
1089
  if (linksSlot) return linksSlot;
1065
1090
  if (!links || links.length === 0) return null;
@@ -1069,12 +1094,13 @@ function LinkPageMinimalProfile({
1069
1094
  icon,
1070
1095
  children,
1071
1096
  className: linkItemClassName,
1097
+ iconName,
1072
1098
  ...pressableProps
1073
1099
  } = link;
1074
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1100
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1075
1101
  DynamicIcon,
1076
1102
  {
1077
- name: link.iconName,
1103
+ name: iconName,
1078
1104
  size: 18,
1079
1105
  className: linkIconClassName
1080
1106
  }
@@ -1087,7 +1113,7 @@ function LinkPageMinimalProfile({
1087
1113
  "flex w-full items-center gap-3 rounded-lg px-4 py-3 transition-colors",
1088
1114
  getNestedCardBg(resolvedBackground),
1089
1115
  getNestedCardTextColor(resolvedBackground),
1090
- isDark ? "hover:bg-muted/30" : "hover:bg-muted/80",
1116
+ "hover:opacity-80",
1091
1117
  linkClassName,
1092
1118
  linkItemClassName
1093
1119
  ),
@@ -1104,7 +1130,7 @@ function LinkPageMinimalProfile({
1104
1130
  "flex w-full items-center gap-3 rounded-lg px-4 py-3 transition-colors",
1105
1131
  getNestedCardBg(resolvedBackground),
1106
1132
  getNestedCardTextColor(resolvedBackground),
1107
- isDark ? "hover:bg-muted/30" : "hover:bg-muted/80",
1133
+ "hover:opacity-80",
1108
1134
  linkClassName,
1109
1135
  linkItemClassName
1110
1136
  ),
@@ -1123,7 +1149,7 @@ function LinkPageMinimalProfile({
1123
1149
  link.id ?? index
1124
1150
  );
1125
1151
  }) });
1126
- }, [linksSlot, links, linksClassName, linkIconClassName, isDark, linkClassName, linkLabelClassName]);
1152
+ }, [linksSlot, links, linksClassName, linkIconClassName, resolvedBackground, linkClassName, linkLabelClassName]);
1127
1153
  const renderSocialLinks = React.useMemo(() => {
1128
1154
  if (socialLinksSlot) return socialLinksSlot;
1129
1155
  if (!socialLinks || socialLinks.length === 0) return null;
@@ -1135,10 +1161,11 @@ function LinkPageMinimalProfile({
1135
1161
  socialLinksClassName
1136
1162
  ),
1137
1163
  children: socialLinks.map((social, index) => {
1138
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1164
+ const { iconName: socialIconName, ...socialRest } = social;
1165
+ const icon = social.icon || (socialIconName ? /* @__PURE__ */ jsxRuntime.jsx(
1139
1166
  DynamicIcon,
1140
1167
  {
1141
- name: social.iconName,
1168
+ name: socialIconName,
1142
1169
  size: 20,
1143
1170
  className: socialIconClassName
1144
1171
  }
@@ -1151,7 +1178,8 @@ function LinkPageMinimalProfile({
1151
1178
  "aria-label": ariaLabel,
1152
1179
  className: cn(
1153
1180
  "rounded-full p-2 transition-colors",
1154
- isDark ? "text-muted-foreground hover:bg-muted/20" : "text-muted-foreground hover:bg-muted",
1181
+ getTextColor(resolvedBackground, "muted"),
1182
+ "hover:opacity-80",
1155
1183
  socialLinkClassName,
1156
1184
  social.className
1157
1185
  ),
@@ -1162,7 +1190,7 @@ function LinkPageMinimalProfile({
1162
1190
  })
1163
1191
  }
1164
1192
  );
1165
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1193
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1166
1194
  const renderFooter = React.useMemo(() => {
1167
1195
  if (footerSlot) return footerSlot;
1168
1196
  if (!footerAction) return null;
@@ -1181,7 +1209,7 @@ function LinkPageMinimalProfile({
1181
1209
  {
1182
1210
  className: cn(
1183
1211
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1184
- "text-muted-foreground/50",
1212
+ getTextColor(resolvedBackground, "subtle"),
1185
1213
  footerClassName,
1186
1214
  actionClassName
1187
1215
  ),
@@ -1193,13 +1221,13 @@ function LinkPageMinimalProfile({
1193
1221
  ] })
1194
1222
  }
1195
1223
  );
1196
- }, [footerSlot, footerAction, isDark, footerClassName]);
1224
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1197
1225
  return /* @__PURE__ */ jsxRuntime.jsx(
1198
1226
  Section,
1199
1227
  {
1200
1228
  background: resolvedBackground,
1201
1229
  spacing,
1202
- className: cn(isDark ? "bg-foreground" : "bg-background", className),
1230
+ className,
1203
1231
  pattern,
1204
1232
  patternOpacity,
1205
1233
  patternClassName,
@@ -128,10 +128,6 @@ interface LinkPageMinimalProfileProps {
128
128
  * Additional CSS classes for the footer
129
129
  */
130
130
  footerClassName?: string;
131
- /**
132
- * Theme variation: "light" or "dark"
133
- */
134
- theme?: "light" | "dark";
135
131
  /**
136
132
  * Background style for the section
137
133
  */
@@ -181,6 +177,6 @@ interface LinkPageMinimalProfileProps {
181
177
  * />
182
178
  * ```
183
179
  */
184
- declare function LinkPageMinimalProfile({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageMinimalProfileProps): React.JSX.Element;
180
+ declare function LinkPageMinimalProfile({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageMinimalProfileProps): React.JSX.Element;
185
181
 
186
182
  export { LinkPageMinimalProfile, type LinkPageMinimalProfileProps, type MinimalProfileLink, type MinimalProfileSocialLink };
@@ -128,10 +128,6 @@ interface LinkPageMinimalProfileProps {
128
128
  * Additional CSS classes for the footer
129
129
  */
130
130
  footerClassName?: string;
131
- /**
132
- * Theme variation: "light" or "dark"
133
- */
134
- theme?: "light" | "dark";
135
131
  /**
136
132
  * Background style for the section
137
133
  */
@@ -181,6 +177,6 @@ interface LinkPageMinimalProfileProps {
181
177
  * />
182
178
  * ```
183
179
  */
184
- declare function LinkPageMinimalProfile({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageMinimalProfileProps): React.JSX.Element;
180
+ declare function LinkPageMinimalProfile({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, linksClassName, linkClassName, linkIconClassName, linkLabelClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageMinimalProfileProps): React.JSX.Element;
185
181
 
186
182
  export { LinkPageMinimalProfile, type LinkPageMinimalProfileProps, type MinimalProfileLink, type MinimalProfileSocialLink };
@@ -41,6 +41,32 @@ function getNestedCardTextColor(parentBg, options) {
41
41
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
42
  return isDark ? "text-foreground" : "";
43
43
  }
44
+ function getTextColor(parentBg, variant = "default", options) {
45
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
+ if (isDark) {
47
+ switch (variant) {
48
+ case "default":
49
+ return "text-foreground";
50
+ case "muted":
51
+ return "text-foreground/80";
52
+ case "subtle":
53
+ return "text-foreground/60";
54
+ case "accent":
55
+ return "text-accent-foreground";
56
+ }
57
+ } else {
58
+ switch (variant) {
59
+ case "default":
60
+ return "text-foreground";
61
+ case "muted":
62
+ return "text-muted-foreground";
63
+ case "subtle":
64
+ return "text-muted-foreground/70";
65
+ case "accent":
66
+ return "text-primary";
67
+ }
68
+ }
69
+ }
44
70
  function normalizePhoneNumber(input) {
45
71
  const trimmed = input.trim();
46
72
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -970,16 +996,14 @@ function LinkPageMinimalProfile({
970
996
  socialLinkClassName,
971
997
  socialIconClassName,
972
998
  footerClassName,
973
- theme = "light",
974
- background,
999
+ background = "default",
975
1000
  spacing,
976
1001
  pattern,
977
1002
  patternOpacity,
978
1003
  patternClassName,
979
1004
  optixFlowConfig
980
1005
  }) {
981
- const isDark = theme === "dark";
982
- const resolvedBackground = background ?? (isDark ? "dark" : "white");
1006
+ const resolvedBackground = background;
983
1007
  const resolvedAvatar = avatar || (avatarUrl ? {
984
1008
  src: avatarUrl,
985
1009
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1028,7 +1052,8 @@ function LinkPageMinimalProfile({
1028
1052
  "p",
1029
1053
  {
1030
1054
  className: cn(
1031
- "text-sm text-muted-foreground",
1055
+ "text-sm",
1056
+ getTextColor(resolvedBackground, "muted"),
1032
1057
  bioClassName
1033
1058
  ),
1034
1059
  children: bio
@@ -1038,7 +1063,7 @@ function LinkPageMinimalProfile({
1038
1063
  ]
1039
1064
  }
1040
1065
  );
1041
- }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, isDark, nameClassName, bio, bioClassName, headerClassName]);
1066
+ }, [profileSlot, resolvedAvatar, avatarClassName, optixFlowConfig, name, resolvedBackground, nameClassName, bio, bioClassName, headerClassName]);
1042
1067
  const renderLinks = useMemo(() => {
1043
1068
  if (linksSlot) return linksSlot;
1044
1069
  if (!links || links.length === 0) return null;
@@ -1048,12 +1073,13 @@ function LinkPageMinimalProfile({
1048
1073
  icon,
1049
1074
  children,
1050
1075
  className: linkItemClassName,
1076
+ iconName,
1051
1077
  ...pressableProps
1052
1078
  } = link;
1053
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsx(
1079
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsx(
1054
1080
  DynamicIcon,
1055
1081
  {
1056
- name: link.iconName,
1082
+ name: iconName,
1057
1083
  size: 18,
1058
1084
  className: linkIconClassName
1059
1085
  }
@@ -1066,7 +1092,7 @@ function LinkPageMinimalProfile({
1066
1092
  "flex w-full items-center gap-3 rounded-lg px-4 py-3 transition-colors",
1067
1093
  getNestedCardBg(resolvedBackground),
1068
1094
  getNestedCardTextColor(resolvedBackground),
1069
- isDark ? "hover:bg-muted/30" : "hover:bg-muted/80",
1095
+ "hover:opacity-80",
1070
1096
  linkClassName,
1071
1097
  linkItemClassName
1072
1098
  ),
@@ -1083,7 +1109,7 @@ function LinkPageMinimalProfile({
1083
1109
  "flex w-full items-center gap-3 rounded-lg px-4 py-3 transition-colors",
1084
1110
  getNestedCardBg(resolvedBackground),
1085
1111
  getNestedCardTextColor(resolvedBackground),
1086
- isDark ? "hover:bg-muted/30" : "hover:bg-muted/80",
1112
+ "hover:opacity-80",
1087
1113
  linkClassName,
1088
1114
  linkItemClassName
1089
1115
  ),
@@ -1102,7 +1128,7 @@ function LinkPageMinimalProfile({
1102
1128
  link.id ?? index
1103
1129
  );
1104
1130
  }) });
1105
- }, [linksSlot, links, linksClassName, linkIconClassName, isDark, linkClassName, linkLabelClassName]);
1131
+ }, [linksSlot, links, linksClassName, linkIconClassName, resolvedBackground, linkClassName, linkLabelClassName]);
1106
1132
  const renderSocialLinks = useMemo(() => {
1107
1133
  if (socialLinksSlot) return socialLinksSlot;
1108
1134
  if (!socialLinks || socialLinks.length === 0) return null;
@@ -1114,10 +1140,11 @@ function LinkPageMinimalProfile({
1114
1140
  socialLinksClassName
1115
1141
  ),
1116
1142
  children: socialLinks.map((social, index) => {
1117
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsx(
1143
+ const { iconName: socialIconName, ...socialRest } = social;
1144
+ const icon = social.icon || (socialIconName ? /* @__PURE__ */ jsx(
1118
1145
  DynamicIcon,
1119
1146
  {
1120
- name: social.iconName,
1147
+ name: socialIconName,
1121
1148
  size: 20,
1122
1149
  className: socialIconClassName
1123
1150
  }
@@ -1130,7 +1157,8 @@ function LinkPageMinimalProfile({
1130
1157
  "aria-label": ariaLabel,
1131
1158
  className: cn(
1132
1159
  "rounded-full p-2 transition-colors",
1133
- isDark ? "text-muted-foreground hover:bg-muted/20" : "text-muted-foreground hover:bg-muted",
1160
+ getTextColor(resolvedBackground, "muted"),
1161
+ "hover:opacity-80",
1134
1162
  socialLinkClassName,
1135
1163
  social.className
1136
1164
  ),
@@ -1141,7 +1169,7 @@ function LinkPageMinimalProfile({
1141
1169
  })
1142
1170
  }
1143
1171
  );
1144
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1172
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1145
1173
  const renderFooter = useMemo(() => {
1146
1174
  if (footerSlot) return footerSlot;
1147
1175
  if (!footerAction) return null;
@@ -1160,7 +1188,7 @@ function LinkPageMinimalProfile({
1160
1188
  {
1161
1189
  className: cn(
1162
1190
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1163
- "text-muted-foreground/50",
1191
+ getTextColor(resolvedBackground, "subtle"),
1164
1192
  footerClassName,
1165
1193
  actionClassName
1166
1194
  ),
@@ -1172,13 +1200,13 @@ function LinkPageMinimalProfile({
1172
1200
  ] })
1173
1201
  }
1174
1202
  );
1175
- }, [footerSlot, footerAction, isDark, footerClassName]);
1203
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1176
1204
  return /* @__PURE__ */ jsx(
1177
1205
  Section,
1178
1206
  {
1179
1207
  background: resolvedBackground,
1180
1208
  spacing,
1181
- className: cn(isDark ? "bg-foreground" : "bg-background", className),
1209
+ className,
1182
1210
  pattern,
1183
1211
  patternOpacity,
1184
1212
  patternClassName,