@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
package/dist/index.js CHANGED
@@ -55,6 +55,61 @@ function getNestedCardTextColor(parentBg, options) {
55
55
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
56
56
  return isDark ? "text-foreground" : "";
57
57
  }
58
+ function getTextColor(parentBg, variant = "default", options) {
59
+ if (options?.override) return options.override;
60
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
61
+ if (isDark) {
62
+ switch (variant) {
63
+ case "default":
64
+ return "text-foreground";
65
+ case "muted":
66
+ return "text-foreground/80";
67
+ case "subtle":
68
+ return "text-foreground/60";
69
+ case "accent":
70
+ return "text-accent-foreground";
71
+ }
72
+ } else {
73
+ switch (variant) {
74
+ case "default":
75
+ return "text-foreground";
76
+ case "muted":
77
+ return "text-muted-foreground";
78
+ case "subtle":
79
+ return "text-muted-foreground/70";
80
+ case "accent":
81
+ return "text-primary";
82
+ }
83
+ }
84
+ }
85
+ function getAccentColor(parentBg, options) {
86
+ if (options?.override) return options.override;
87
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
88
+ return isDark ? "text-accent-foreground" : "text-primary";
89
+ }
90
+ function getBorderColor(parentBg, variant = "default", options) {
91
+ if (options?.override) return options.override;
92
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
93
+ if (isDark) {
94
+ switch (variant) {
95
+ case "default":
96
+ return "border-foreground/20";
97
+ case "muted":
98
+ return "border-foreground/10";
99
+ case "accent":
100
+ return "border-accent-foreground";
101
+ }
102
+ } else {
103
+ switch (variant) {
104
+ case "default":
105
+ return "border-border";
106
+ case "muted":
107
+ return "border-muted";
108
+ case "accent":
109
+ return "border-primary";
110
+ }
111
+ }
112
+ }
58
113
  var maxWidthStyles = {
59
114
  sm: "max-w-screen-sm",
60
115
  md: "max-w-screen-md",
@@ -1638,7 +1693,7 @@ function AlternatingBlocks({
1638
1693
  className,
1639
1694
  children: [
1640
1695
  title && typeof title !== "string" || subtitle && typeof subtitle !== "string" ? /* @__PURE__ */ jsxs("div", { className: "mb-12 text-center md:mb-16", children: [
1641
- subtitle && typeof subtitle !== "string" && /* @__PURE__ */ jsx("div", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
1696
+ subtitle && typeof subtitle !== "string" && /* @__PURE__ */ jsx("div", { className: cn("mb-2 text-sm font-semibold uppercase tracking-wider", getAccentColor(background)), children: subtitle }),
1642
1697
  title && typeof title !== "string" && /* @__PURE__ */ jsx("div", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
1643
1698
  ] }) : null,
1644
1699
  /* @__PURE__ */ jsx("div", { className: cn("mx-auto w-full max-w-[900px]", contentClassName), children: sectionsContent })
@@ -1843,12 +1898,12 @@ function AboutMissionPrinciples({
1843
1898
  children: principles.map((principle, idx) => /* @__PURE__ */ jsxs(
1844
1899
  "div",
1845
1900
  {
1846
- className: "relative rounded-lg border p-6 transition-colors hover:bg-muted",
1901
+ className: cn("relative rounded-lg border p-6 transition-colors", `hover:${getNestedCardBg(background, "muted")}`),
1847
1902
  children: [
1848
- principle.number && /* @__PURE__ */ jsx("div", { className: "absolute right-4 top-4 text-3xl font-bold text-primary/20", children: principle.number }),
1903
+ principle.number && /* @__PURE__ */ jsx("div", { className: cn("absolute right-4 top-4 text-3xl font-bold", getAccentColor(background), "opacity-20"), children: principle.number }),
1849
1904
  /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1850
1905
  principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
1851
- principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: principle.description }) : principle.description)
1906
+ principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: principle.description }) : principle.description)
1852
1907
  ] })
1853
1908
  ]
1854
1909
  },
@@ -1899,7 +1954,8 @@ function AboutMissionPrinciples({
1899
1954
  "div",
1900
1955
  {
1901
1956
  className: cn(
1902
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1957
+ "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm",
1958
+ getAccentColor(background),
1903
1959
  badgeClassName
1904
1960
  ),
1905
1961
  children: badgeText
@@ -1919,7 +1975,8 @@ function AboutMissionPrinciples({
1919
1975
  "p",
1920
1976
  {
1921
1977
  className: cn(
1922
- "text-xl text-muted-foreground",
1978
+ "text-xl",
1979
+ getTextColor(background, "muted"),
1923
1980
  missionDescriptionClassName
1924
1981
  ),
1925
1982
  children: missionDescription
@@ -1954,7 +2011,8 @@ function AboutMissionPrinciples({
1954
2011
  "p",
1955
2012
  {
1956
2013
  className: cn(
1957
- "mb-4 text-muted-foreground",
2014
+ "mb-4",
2015
+ getTextColor(background, "muted"),
1958
2016
  visionDescriptionClassName
1959
2017
  ),
1960
2018
  children: visionDescription
@@ -2039,7 +2097,7 @@ function AboutExpandableValues({
2039
2097
  /* @__PURE__ */ jsx("div", { className: "shrink-0 rounded-md bg-primary/10 p-3", children: value.icon }),
2040
2098
  /* @__PURE__ */ jsxs("div", { children: [
2041
2099
  value.title && (typeof value.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: value.title }) : value.title),
2042
- value.shortDescription && (typeof value.shortDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: value.shortDescription }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: value.shortDescription }))
2100
+ value.shortDescription && (typeof value.shortDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-sm", getTextColor(background, "muted")), children: value.shortDescription }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: value.shortDescription }))
2043
2101
  ] })
2044
2102
  ] }),
2045
2103
  /* @__PURE__ */ jsx(
@@ -2048,7 +2106,8 @@ function AboutExpandableValues({
2048
2106
  name: "lucide/chevron-down",
2049
2107
  size: 20,
2050
2108
  className: cn(
2051
- "mt-1 shrink-0 text-muted-foreground transition-transform duration-300",
2109
+ "mt-1 shrink-0 transition-transform duration-300",
2110
+ getTextColor(background, "muted"),
2052
2111
  expandedValue === value.id ? "rotate-180" : ""
2053
2112
  )
2054
2113
  }
@@ -2060,16 +2119,16 @@ function AboutExpandableValues({
2060
2119
  value.longDescription && /* @__PURE__ */ jsx("div", { className: cn(
2061
2120
  "rounded-lg p-4",
2062
2121
  getNestedCardBg(background, "subtle")
2063
- ), children: typeof value.longDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: value.longDescription }) : value.longDescription }),
2122
+ ), children: typeof value.longDescription === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: value.longDescription }) : value.longDescription }),
2064
2123
  value.examples && value.examples.length > 0 && /* @__PURE__ */ jsxs("div", { children: [
2065
- /* @__PURE__ */ jsx("h4", { className: "mb-2 text-sm font-semibold text-muted-foreground", children: "How we put this into practice:" }),
2124
+ /* @__PURE__ */ jsx("h4", { className: cn("mb-2 text-sm font-semibold", getTextColor(background, "muted")), children: "How we put this into practice:" }),
2066
2125
  /* @__PURE__ */ jsx("ul", { className: "space-y-2", children: value.examples.map((example, index) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-2", children: [
2067
- /* @__PURE__ */ jsx("div", { className: "mt-1 flex size-5 shrink-0 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsx(
2126
+ /* @__PURE__ */ jsx("div", { className: cn("mt-1 flex size-5 shrink-0 items-center justify-center rounded-full", getNestedCardBg(background, "muted")), children: /* @__PURE__ */ jsx(
2068
2127
  DynamicIcon,
2069
2128
  {
2070
2129
  name: "lucide/check",
2071
2130
  size: 12,
2072
- className: "text-primary"
2131
+ className: getAccentColor(background)
2073
2132
  }
2074
2133
  ) }),
2075
2134
  typeof example === "string" ? /* @__PURE__ */ jsx("span", { className: "text-sm pt-2", children: example }) : example
@@ -2103,7 +2162,9 @@ function AboutExpandableValues({
2103
2162
  "div",
2104
2163
  {
2105
2164
  className: cn(
2106
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
2165
+ "inline-block rounded-lg px-3 py-1 text-sm",
2166
+ getNestedCardBg(background, "muted"),
2167
+ getAccentColor(background),
2107
2168
  badgeClassName
2108
2169
  ),
2109
2170
  children: badgeText
@@ -2123,7 +2184,8 @@ function AboutExpandableValues({
2123
2184
  "p",
2124
2185
  {
2125
2186
  className: cn(
2126
- "text-muted-foreground text-balance",
2187
+ "text-balance",
2188
+ getTextColor(background, "muted"),
2127
2189
  descriptionClassName
2128
2190
  ),
2129
2191
  children: description
@@ -2147,7 +2209,7 @@ function AboutExpandableValues({
2147
2209
  ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx(
2148
2210
  "p",
2149
2211
  {
2150
- className: cn("text-muted-foreground", ctaDescriptionClassName),
2212
+ className: cn(getTextColor(background, "muted"), ctaDescriptionClassName),
2151
2213
  children: ctaDescription
2152
2214
  }
2153
2215
  ) : /* @__PURE__ */ jsx("div", { className: ctaDescriptionClassName, children: ctaDescription })),
@@ -2308,7 +2370,7 @@ function CommunityInitiatives({
2308
2370
  category.id
2309
2371
  )) })
2310
2372
  ] }),
2311
- /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: currentCategory?.description }) }),
2373
+ /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted")), children: currentCategory?.description }) }),
2312
2374
  categories.map((category) => /* @__PURE__ */ jsx(
2313
2375
  TabsContent,
2314
2376
  {
@@ -2330,20 +2392,20 @@ function CommunityInitiatives({
2330
2392
  ),
2331
2393
  children: [
2332
2394
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
2333
- /* @__PURE__ */ jsx("div", { className: "rounded-md bg-primary/10 p-2", children: /* @__PURE__ */ jsx(
2395
+ /* @__PURE__ */ jsx("div", { className: cn("rounded-md p-2", getNestedCardBg(background, "muted")), children: /* @__PURE__ */ jsx(
2334
2396
  DynamicIcon,
2335
2397
  {
2336
2398
  name: initiative.icon,
2337
2399
  size: 24,
2338
- className: "text-primary"
2400
+ className: cn(getAccentColor(background))
2339
2401
  }
2340
2402
  ) }),
2341
2403
  /* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold", children: initiative.title })
2342
2404
  ] }),
2343
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: initiative.description }),
2405
+ /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted")), children: initiative.description }),
2344
2406
  initiative.metrics && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-4 pt-2", children: initiative.metrics.map((metric, i) => /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
2345
- /* @__PURE__ */ jsx("div", { className: "text-2xl font-bold text-primary", children: metric.value }),
2346
- /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: metric.label })
2407
+ /* @__PURE__ */ jsx("div", { className: cn("text-2xl font-bold", getAccentColor(background)), children: metric.value }),
2408
+ /* @__PURE__ */ jsx("div", { className: cn("mt-1 text-xs", getTextColor(background, "muted")), children: metric.label })
2347
2409
  ] }, i)) })
2348
2410
  ]
2349
2411
  }
@@ -2381,7 +2443,7 @@ function CommunityInitiatives({
2381
2443
  {
2382
2444
  name: initiative.icon,
2383
2445
  size: 64,
2384
- className: "mx-auto mb-4 text-muted-foreground/50"
2446
+ className: cn("mx-auto mb-4", getTextColor(background, "muted"), "opacity-50")
2385
2447
  }
2386
2448
  ),
2387
2449
  /* @__PURE__ */ jsxs(Badge, { variant: "secondary", className: "mx-auto", children: [
@@ -2436,7 +2498,9 @@ function CommunityInitiatives({
2436
2498
  "div",
2437
2499
  {
2438
2500
  className: cn(
2439
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
2501
+ "inline-block rounded-lg px-3 py-1 text-sm",
2502
+ getNestedCardBg(background, "muted"),
2503
+ getAccentColor(background),
2440
2504
  badgeClassName
2441
2505
  ),
2442
2506
  children: badgeText
@@ -2452,7 +2516,7 @@ function CommunityInitiatives({
2452
2516
  children: heading
2453
2517
  }
2454
2518
  ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
2455
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
2519
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
2456
2520
  ]
2457
2521
  }
2458
2522
  ),
@@ -2467,7 +2531,8 @@ function CommunityInitiatives({
2467
2531
  "p",
2468
2532
  {
2469
2533
  className: cn(
2470
- "mx-auto mb-8 max-w-2xl text-muted-foreground",
2534
+ "mx-auto mb-8 max-w-2xl",
2535
+ getTextColor(background, "muted"),
2471
2536
  ctaDescriptionClassName
2472
2537
  ),
2473
2538
  children: ctaDescription
@@ -2561,9 +2626,9 @@ function AboutCultureTabs({
2561
2626
  containerClassName,
2562
2627
  children: [
2563
2628
  /* @__PURE__ */ jsxs("div", { className: cn("mx-auto mb-12 max-w-3xl space-y-4 text-center", headerClassName), children: [
2564
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary", badgeClassName), children: badgeText }) : /* @__PURE__ */ jsx("div", { className: badgeClassName, children: badgeText })),
2629
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm", getAccentColor(background), badgeClassName), children: badgeText }) : /* @__PURE__ */ jsx("div", { className: badgeClassName, children: badgeText })),
2565
2630
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
2566
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
2631
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
2567
2632
  ] }),
2568
2633
  aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxs(
2569
2634
  Tabs,
@@ -2577,7 +2642,7 @@ function AboutCultureTabs({
2577
2642
  TabsTrigger,
2578
2643
  {
2579
2644
  value: aspect.id,
2580
- className: "px-3 py-2.5 data-[state=active]:bg-primary data-[state=active]:text-primary-foreground",
2645
+ className: cn("px-3 py-2.5", `data-[state=active]:${getAccentColor(background)}`, "data-[state=active]:text-primary-foreground"),
2581
2646
  children: aspect.title
2582
2647
  },
2583
2648
  aspect.id
@@ -2586,7 +2651,7 @@ function AboutCultureTabs({
2586
2651
  /* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
2587
2652
  /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
2588
2653
  /* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold tracking-tight", children: aspect.title }),
2589
- /* @__PURE__ */ jsx("p", { className: "leading-relaxed text-muted-foreground", children: aspect.description })
2654
+ /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: aspect.description })
2590
2655
  ] }),
2591
2656
  /* @__PURE__ */ jsx(Card, { className: "border-0 bg-gradient-to-br from-primary/5 to-primary/10 p-0", children: /* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 p-6 pt-6", children: [
2592
2657
  /* @__PURE__ */ jsx(
@@ -2594,10 +2659,10 @@ function AboutCultureTabs({
2594
2659
  {
2595
2660
  name: "lucide/quote",
2596
2661
  size: 32,
2597
- className: "text-primary/40"
2662
+ className: cn(getAccentColor(background), "opacity-40")
2598
2663
  }
2599
2664
  ),
2600
- /* @__PURE__ */ jsxs("p", { className: "italic text-muted-foreground", children: [
2665
+ /* @__PURE__ */ jsxs("p", { className: cn("italic", getTextColor(background, "muted")), children: [
2601
2666
  '"',
2602
2667
  aspect.testimonial.quote,
2603
2668
  '"'
@@ -2614,7 +2679,7 @@ function AboutCultureTabs({
2614
2679
  ) }),
2615
2680
  /* @__PURE__ */ jsxs("div", { children: [
2616
2681
  /* @__PURE__ */ jsx("h4", { className: "text-sm font-medium", children: aspect.testimonial.author }),
2617
- /* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: aspect.testimonial.role })
2682
+ /* @__PURE__ */ jsx("p", { className: cn("text-xs", getTextColor(background, "muted")), children: aspect.testimonial.role })
2618
2683
  ] })
2619
2684
  ] })
2620
2685
  ] }) })
@@ -2643,7 +2708,7 @@ function AboutCultureTabs({
2643
2708
  /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-8 md:grid-cols-2", children: [
2644
2709
  /* @__PURE__ */ jsxs("div", { children: [
2645
2710
  ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", ctaHeadingClassName), children: ctaHeading })),
2646
- ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6 text-muted-foreground", ctaDescriptionClassName), children: ctaDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", ctaDescriptionClassName), children: ctaDescription })),
2711
+ ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6", getTextColor(background, "muted"), ctaDescriptionClassName), children: ctaDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", ctaDescriptionClassName), children: ctaDescription })),
2647
2712
  (actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex gap-4", actionsClassName), children: actionsContent })
2648
2713
  ] }),
2649
2714
  /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-2", children: ctaImagesContent })
@@ -2682,7 +2747,7 @@ function MediaHoverCtas({
2682
2747
  "--media-hover-cta-hover-bg": item.onHoverBackgroundColor
2683
2748
  } : {}
2684
2749
  } : void 0;
2685
- const baseBackgroundClassName = item.initialBackgroundColor ? "bg-[var(--media-hover-cta-bg)]" : "bg-muted-foreground/10";
2750
+ const baseBackgroundClassName = item.initialBackgroundColor ? "bg-[var(--media-hover-cta-bg)]" : getNestedCardBg(background, "muted");
2686
2751
  const hoverBackgroundClassName = applyHoverBackground ? "group-hover:bg-[var(--media-hover-cta-hover-bg)]" : "";
2687
2752
  const hoverImageAltText = item.altText ?? "";
2688
2753
  return /* @__PURE__ */ jsxs(
@@ -2718,7 +2783,7 @@ function MediaHoverCtas({
2718
2783
  index
2719
2784
  );
2720
2785
  });
2721
- }, [itemsSlot, resolvedItems, optixFlowConfig]);
2786
+ }, [itemsSlot, resolvedItems, optixFlowConfig, background]);
2722
2787
  return /* @__PURE__ */ jsx(
2723
2788
  Section,
2724
2789
  {
@@ -4594,4 +4659,4 @@ function FooterNavSocial({
4594
4659
  );
4595
4660
  }
4596
4661
 
4597
- export { AboutCultureTabs, AboutExpandableValues, AboutMissionPrinciples, AboutSplitHero, AlternatingBlocks, AnimatedDialog, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CarouselPagination, CommunityInitiatives, Container, DynamicIcon, FooterAnimatedSocial, FooterBackgroundCard, FooterBrandDescription, FooterContactCard, FooterCtaBanner, FooterCtaSocial, FooterLinksGrid, FooterNavSocial, FooterNewsletterGrid, FooterNewsletterMinimal, FooterSimpleCentered, FooterSocialApps, FooterSocialNewsletter, ImageSlider, MediaHoverCtas, PageHeroBanner, Popover, PopoverContent, PopoverTrigger, Pressable, Section, cn, getNestedCardBg, getNestedCardTextColor, useNavigation };
4662
+ export { AboutCultureTabs, AboutExpandableValues, AboutMissionPrinciples, AboutSplitHero, AlternatingBlocks, AnimatedDialog, Badge, Button, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, CarouselPagination, CommunityInitiatives, Container, DynamicIcon, FooterAnimatedSocial, FooterBackgroundCard, FooterBrandDescription, FooterContactCard, FooterCtaBanner, FooterCtaSocial, FooterLinksGrid, FooterNavSocial, FooterNewsletterGrid, FooterNewsletterMinimal, FooterSimpleCentered, FooterSocialApps, FooterSocialNewsletter, ImageSlider, MediaHoverCtas, PageHeroBanner, Popover, PopoverContent, PopoverTrigger, Pressable, Section, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor, useNavigation };
@@ -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:")) {
@@ -1002,16 +1028,14 @@ function LinkPageBentoLayout({
1002
1028
  regularLinkIconClassName,
1003
1029
  regularLinkLabelClassName,
1004
1030
  footerClassName,
1005
- theme = "light",
1006
- background,
1031
+ background = "white",
1007
1032
  spacing,
1008
1033
  pattern,
1009
1034
  patternOpacity,
1010
1035
  patternClassName,
1011
1036
  optixFlowConfig
1012
1037
  }) {
1013
- const isDark = theme === "dark";
1014
- const resolvedBackground = background ?? (isDark ? "dark" : "white");
1038
+ const resolvedBackground = background;
1015
1039
  const resolvedAvatar = avatar || (avatarUrl ? {
1016
1040
  src: avatarUrl,
1017
1041
  alt: typeof name === "string" ? name : "Profile avatar"
@@ -1022,10 +1046,11 @@ function LinkPageBentoLayout({
1022
1046
  if (socialLinksSlot) return socialLinksSlot;
1023
1047
  if (!socialLinks || socialLinks.length === 0) return null;
1024
1048
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center gap-2 pt-1", socialLinksClassName), children: socialLinks.map((social, index) => {
1025
- const icon = social.icon || (social.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1049
+ const { iconName, ...socialPressableProps } = social;
1050
+ const icon = social.icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1026
1051
  DynamicIcon,
1027
1052
  {
1028
- name: social.iconName,
1053
+ name: iconName,
1029
1054
  size: 18,
1030
1055
  className: socialIconClassName
1031
1056
  }
@@ -1034,12 +1059,13 @@ function LinkPageBentoLayout({
1034
1059
  return /* @__PURE__ */ jsxRuntime.jsx(
1035
1060
  Pressable,
1036
1061
  {
1037
- href: social.href,
1062
+ ...socialPressableProps,
1038
1063
  "aria-label": ariaLabel,
1039
1064
  className: cn(
1040
1065
  "rounded-full p-2 transition-all duration-200",
1041
1066
  "hover:scale-110 active:scale-95",
1042
- isDark ? "text-muted-foreground hover:bg-muted/10" : "text-muted-foreground hover:bg-muted",
1067
+ getTextColor(resolvedBackground, "muted"),
1068
+ "hover:opacity-80",
1043
1069
  socialLinkClassName,
1044
1070
  social.className
1045
1071
  ),
@@ -1048,7 +1074,7 @@ function LinkPageBentoLayout({
1048
1074
  social.id ?? index
1049
1075
  );
1050
1076
  }) });
1051
- }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, isDark, socialLinkClassName]);
1077
+ }, [socialLinksSlot, socialLinks, socialLinksClassName, socialIconClassName, resolvedBackground, socialLinkClassName]);
1052
1078
  const renderFeaturedLinks = React.useMemo(() => {
1053
1079
  if (featuredLinksSlot) return featuredLinksSlot;
1054
1080
  if (!featuredLinks || featuredLinks.length === 0) return null;
@@ -1061,14 +1087,15 @@ function LinkPageBentoLayout({
1061
1087
  className: linkClassName,
1062
1088
  featured: _featured,
1063
1089
  // Destructure to prevent passing to DOM
1090
+ iconName,
1064
1091
  ...pressableProps
1065
1092
  } = link;
1066
1093
  const imageSource = link.image?.src ?? link.imageUrl;
1067
1094
  const imageAlt = link.image?.alt || (typeof label === "string" ? label : "");
1068
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1095
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1069
1096
  DynamicIcon,
1070
1097
  {
1071
- name: link.iconName,
1098
+ name: iconName,
1072
1099
  size: 18,
1073
1100
  className: featuredLinkIconClassName
1074
1101
  }
@@ -1080,7 +1107,7 @@ function LinkPageBentoLayout({
1080
1107
  className: cn(
1081
1108
  "group relative aspect-4/3 overflow-hidden rounded-2xl transition-all duration-200",
1082
1109
  "hover:scale-[1.02] active:scale-[0.98]",
1083
- isDark ? "border border-border/10 bg-muted/5" : "border border-border bg-muted",
1110
+ "border border-border bg-muted",
1084
1111
  featuredLinkClassName,
1085
1112
  linkClassName
1086
1113
  ),
@@ -1096,7 +1123,7 @@ function LinkPageBentoLayout({
1096
1123
  className: cn(
1097
1124
  "group relative aspect-4/3 overflow-hidden rounded-2xl transition-all duration-200",
1098
1125
  "hover:scale-[1.02] active:scale-[0.98]",
1099
- isDark ? "border border-border/10 bg-muted/5" : "border border-border bg-muted",
1126
+ "border border-border bg-muted",
1100
1127
  featuredLinkClassName,
1101
1128
  linkClassName
1102
1129
  ),
@@ -1119,7 +1146,7 @@ function LinkPageBentoLayout({
1119
1146
  {
1120
1147
  className: cn(
1121
1148
  "absolute inset-0 transition-opacity",
1122
- imageSource ? "bg-linear-to-t from-black/80 via-black/40 to-transparent" : isDark ? "bg-linear-to-t from-white/10 to-transparent" : "bg-linear-to-t from-neutral-200/50 to-transparent",
1149
+ imageSource ? "bg-linear-to-t from-black/80 via-black/40 to-transparent" : "bg-linear-to-t from-neutral-200/50 to-transparent",
1123
1150
  featuredLinkOverlayClassName
1124
1151
  )
1125
1152
  }
@@ -1144,7 +1171,7 @@ function LinkPageBentoLayout({
1144
1171
  {
1145
1172
  className: cn(
1146
1173
  "mt-0.5 text-xs",
1147
- imageSource ? "text-background/70" : "text-muted-foreground",
1174
+ imageSource ? "text-background/70" : getTextColor(resolvedBackground, "muted"),
1148
1175
  featuredLinkDescriptionClassName
1149
1176
  ),
1150
1177
  children: description
@@ -1156,7 +1183,7 @@ function LinkPageBentoLayout({
1156
1183
  link.id ?? index
1157
1184
  );
1158
1185
  });
1159
- }, [featuredLinksSlot, featuredLinks, isDark, featuredLinkClassName, featuredLinkImageClassName, optixFlowConfig, featuredLinkOverlayClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName]);
1186
+ }, [featuredLinksSlot, featuredLinks, resolvedBackground, featuredLinkClassName, featuredLinkImageClassName, optixFlowConfig, featuredLinkOverlayClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName]);
1160
1187
  const renderRegularLinks = React.useMemo(() => {
1161
1188
  if (regularLinksSlot) return regularLinksSlot;
1162
1189
  if (!regularLinks || regularLinks.length === 0) return null;
@@ -1166,12 +1193,13 @@ function LinkPageBentoLayout({
1166
1193
  icon,
1167
1194
  children,
1168
1195
  className: linkClassName,
1196
+ iconName,
1169
1197
  ...pressableProps
1170
1198
  } = link;
1171
- const iconElement = icon || (link.iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1199
+ const iconElement = icon || (iconName ? /* @__PURE__ */ jsxRuntime.jsx(
1172
1200
  DynamicIcon,
1173
1201
  {
1174
- name: link.iconName,
1202
+ name: iconName,
1175
1203
  size: 20,
1176
1204
  className: regularLinkIconClassName
1177
1205
  }
@@ -1183,7 +1211,7 @@ function LinkPageBentoLayout({
1183
1211
  className: cn(
1184
1212
  "group flex items-center gap-3 rounded-xl p-3 transition-all duration-200",
1185
1213
  "hover:scale-[1.02] active:scale-[0.98]",
1186
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-muted/50 hover:bg-muted",
1214
+ "border border-border bg-muted/50 hover:opacity-80",
1187
1215
  regularLinkClassName,
1188
1216
  linkClassName
1189
1217
  ),
@@ -1199,7 +1227,7 @@ function LinkPageBentoLayout({
1199
1227
  className: cn(
1200
1228
  "group flex items-center gap-3 rounded-xl p-3 transition-all duration-200",
1201
1229
  "hover:scale-[1.02] active:scale-[0.98]",
1202
- isDark ? "border border-border/10 bg-muted/5 hover:bg-muted/10" : "border border-border bg-muted/50 hover:bg-muted",
1230
+ "border border-border bg-muted/50 hover:opacity-80",
1203
1231
  regularLinkClassName,
1204
1232
  linkClassName
1205
1233
  ),
@@ -1232,7 +1260,7 @@ function LinkPageBentoLayout({
1232
1260
  link.id ?? index
1233
1261
  );
1234
1262
  });
1235
- }, [regularLinksSlot, regularLinks, isDark, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName]);
1263
+ }, [regularLinksSlot, regularLinks, resolvedBackground, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName]);
1236
1264
  const renderLinks = React.useMemo(() => {
1237
1265
  if (linksSlot) return linksSlot;
1238
1266
  if (!links || links.length === 0) return null;
@@ -1257,8 +1285,7 @@ function LinkPageBentoLayout({
1257
1285
  "div",
1258
1286
  {
1259
1287
  className: cn(
1260
- "h-20 w-20 overflow-hidden rounded-full",
1261
- isDark ? "ring-2 ring-white/20" : "ring-2 ring-neutral-200",
1288
+ "h-20 w-20 overflow-hidden rounded-full ring-2 ring-neutral-200",
1262
1289
  avatarClassName
1263
1290
  ),
1264
1291
  children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -1287,7 +1314,8 @@ function LinkPageBentoLayout({
1287
1314
  "p",
1288
1315
  {
1289
1316
  className: cn(
1290
- "max-w-xs text-sm text-muted-foreground",
1317
+ "max-w-xs text-sm",
1318
+ getTextColor(resolvedBackground, "muted"),
1291
1319
  bioClassName
1292
1320
  ),
1293
1321
  children: bio
@@ -1298,7 +1326,7 @@ function LinkPageBentoLayout({
1298
1326
  ]
1299
1327
  }
1300
1328
  );
1301
- }, [profileSlot, resolvedAvatar, isDark, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, renderSocialLinks, headerClassName]);
1329
+ }, [profileSlot, resolvedAvatar, resolvedBackground, avatarClassName, optixFlowConfig, name, nameClassName, bio, bioClassName, renderSocialLinks, headerClassName]);
1302
1330
  const renderFooter = React.useMemo(() => {
1303
1331
  if (footerSlot) return footerSlot;
1304
1332
  if (!footerAction) return null;
@@ -1317,7 +1345,8 @@ function LinkPageBentoLayout({
1317
1345
  {
1318
1346
  className: cn(
1319
1347
  "flex items-center justify-center gap-1.5 text-xs transition-opacity hover:opacity-80",
1320
- "text-muted-foreground/50",
1348
+ getTextColor(resolvedBackground, "muted"),
1349
+ "opacity-50",
1321
1350
  footerClassName,
1322
1351
  actionClassName
1323
1352
  ),
@@ -1329,13 +1358,13 @@ function LinkPageBentoLayout({
1329
1358
  ] })
1330
1359
  }
1331
1360
  );
1332
- }, [footerSlot, footerAction, isDark, footerClassName]);
1361
+ }, [footerSlot, footerAction, resolvedBackground, footerClassName]);
1333
1362
  return /* @__PURE__ */ jsxRuntime.jsx(
1334
1363
  Section,
1335
1364
  {
1336
1365
  background: resolvedBackground,
1337
1366
  spacing,
1338
- className: cn(isDark ? "bg-foreground" : "bg-background", className),
1367
+ className,
1339
1368
  pattern,
1340
1369
  patternOpacity,
1341
1370
  patternClassName,
@@ -176,10 +176,6 @@ interface LinkPageBentoLayoutProps {
176
176
  * Additional CSS classes for the footer
177
177
  */
178
178
  footerClassName?: string;
179
- /**
180
- * Theme variation: "light" or "dark"
181
- */
182
- theme?: "light" | "dark";
183
179
  /**
184
180
  * Background style for the section
185
181
  */
@@ -238,6 +234,6 @@ interface LinkPageBentoLayoutProps {
238
234
  * />
239
235
  * ```
240
236
  */
241
- declare function LinkPageBentoLayout({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, featuredLinksSlot, regularLinksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, linksClassName, featuredLinksClassName, featuredLinkClassName, featuredLinkOverlayClassName, featuredLinkImageClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName, regularLinksClassName, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageBentoLayoutProps): React.JSX.Element;
237
+ declare function LinkPageBentoLayout({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, featuredLinksSlot, regularLinksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, linksClassName, featuredLinksClassName, featuredLinkClassName, featuredLinkOverlayClassName, featuredLinkImageClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName, regularLinksClassName, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageBentoLayoutProps): React.JSX.Element;
242
238
 
243
239
  export { type BentoLink, type BentoSocialLink, LinkPageBentoLayout, type LinkPageBentoLayoutProps };
@@ -176,10 +176,6 @@ interface LinkPageBentoLayoutProps {
176
176
  * Additional CSS classes for the footer
177
177
  */
178
178
  footerClassName?: string;
179
- /**
180
- * Theme variation: "light" or "dark"
181
- */
182
- theme?: "light" | "dark";
183
179
  /**
184
180
  * Background style for the section
185
181
  */
@@ -238,6 +234,6 @@ interface LinkPageBentoLayoutProps {
238
234
  * />
239
235
  * ```
240
236
  */
241
- declare function LinkPageBentoLayout({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, featuredLinksSlot, regularLinksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, linksClassName, featuredLinksClassName, featuredLinkClassName, featuredLinkOverlayClassName, featuredLinkImageClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName, regularLinksClassName, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName, footerClassName, theme, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageBentoLayoutProps): React.JSX.Element;
237
+ declare function LinkPageBentoLayout({ name, bio, avatar, avatarUrl, profileSlot, links, linksSlot, featuredLinksSlot, regularLinksSlot, socialLinks, socialLinksSlot, footerAction, footerSlot, className, containerClassName, contentClassName, headerClassName, avatarClassName, nameClassName, bioClassName, socialLinksClassName, socialLinkClassName, socialIconClassName, linksClassName, featuredLinksClassName, featuredLinkClassName, featuredLinkOverlayClassName, featuredLinkImageClassName, featuredLinkIconClassName, featuredLinkLabelClassName, featuredLinkDescriptionClassName, regularLinksClassName, regularLinkClassName, regularLinkIconWrapperClassName, regularLinkIconClassName, regularLinkLabelClassName, footerClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: LinkPageBentoLayoutProps): React.JSX.Element;
242
238
 
243
239
  export { type BentoLink, type BentoSocialLink, LinkPageBentoLayout, type LinkPageBentoLayoutProps };