@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
@@ -32,6 +32,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
+ function getTextColor(parentBg, variant = "default", options) {
36
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
+ if (isDark) {
38
+ switch (variant) {
39
+ case "default":
40
+ return "text-foreground";
41
+ case "muted":
42
+ return "text-foreground/80";
43
+ case "subtle":
44
+ return "text-foreground/60";
45
+ case "accent":
46
+ return "text-accent-foreground";
47
+ }
48
+ } else {
49
+ switch (variant) {
50
+ case "default":
51
+ return "text-foreground";
52
+ case "muted":
53
+ return "text-muted-foreground";
54
+ case "subtle":
55
+ return "text-muted-foreground/70";
56
+ case "accent":
57
+ return "text-primary";
58
+ }
59
+ }
60
+ }
35
61
  function normalizePhoneNumber(input) {
36
62
  const trimmed = input.trim();
37
63
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -908,7 +934,8 @@ function AboutMissionDualImage({
908
934
  "p",
909
935
  {
910
936
  className: cn(
911
- "mt-4 text-lg text-muted-foreground",
937
+ "mt-4 text-lg",
938
+ getTextColor(background, "muted"),
912
939
  missionContentClassName
913
940
  ),
914
941
  children: missionContent
@@ -930,7 +957,8 @@ function AboutMissionDualImage({
930
957
  "p",
931
958
  {
932
959
  className: cn(
933
- "mt-4 text-lg text-muted-foreground",
960
+ "mt-4 text-lg",
961
+ getTextColor(background, "muted"),
934
962
  visionContentClassName
935
963
  ),
936
964
  children: visionContent
@@ -11,6 +11,32 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
11
11
  function cn(...inputs) {
12
12
  return twMerge(clsx(inputs));
13
13
  }
14
+ function getTextColor(parentBg, variant = "default", options) {
15
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
16
+ if (isDark) {
17
+ switch (variant) {
18
+ case "default":
19
+ return "text-foreground";
20
+ case "muted":
21
+ return "text-foreground/80";
22
+ case "subtle":
23
+ return "text-foreground/60";
24
+ case "accent":
25
+ return "text-accent-foreground";
26
+ }
27
+ } else {
28
+ switch (variant) {
29
+ case "default":
30
+ return "text-foreground";
31
+ case "muted":
32
+ return "text-muted-foreground";
33
+ case "subtle":
34
+ return "text-muted-foreground/70";
35
+ case "accent":
36
+ return "text-primary";
37
+ }
38
+ }
39
+ }
14
40
  function normalizePhoneNumber(input) {
15
41
  const trimmed = input.trim();
16
42
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -887,7 +913,8 @@ function AboutMissionDualImage({
887
913
  "p",
888
914
  {
889
915
  className: cn(
890
- "mt-4 text-lg text-muted-foreground",
916
+ "mt-4 text-lg",
917
+ getTextColor(background, "muted"),
891
918
  missionContentClassName
892
919
  ),
893
920
  children: missionContent
@@ -909,7 +936,8 @@ function AboutMissionDualImage({
909
936
  "p",
910
937
  {
911
938
  className: cn(
912
- "mt-4 text-lg text-muted-foreground",
939
+ "mt-4 text-lg",
940
+ getTextColor(background, "muted"),
913
941
  visionContentClassName
914
942
  ),
915
943
  children: visionContent
@@ -45,6 +45,36 @@ function getNestedCardTextColor(parentBg, options) {
45
45
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
46
  return isDark ? "text-foreground" : "";
47
47
  }
48
+ function getTextColor(parentBg, variant = "default", options) {
49
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
50
+ if (isDark) {
51
+ switch (variant) {
52
+ case "default":
53
+ return "text-foreground";
54
+ case "muted":
55
+ return "text-foreground/80";
56
+ case "subtle":
57
+ return "text-foreground/60";
58
+ case "accent":
59
+ return "text-accent-foreground";
60
+ }
61
+ } else {
62
+ switch (variant) {
63
+ case "default":
64
+ return "text-foreground";
65
+ case "muted":
66
+ return "text-muted-foreground";
67
+ case "subtle":
68
+ return "text-muted-foreground/70";
69
+ case "accent":
70
+ return "text-primary";
71
+ }
72
+ }
73
+ }
74
+ function getAccentColor(parentBg, options) {
75
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
76
+ return isDark ? "text-accent-foreground" : "text-primary";
77
+ }
48
78
  var maxWidthStyles = {
49
79
  sm: "max-w-screen-sm",
50
80
  md: "max-w-screen-md",
@@ -456,16 +486,17 @@ function AboutMissionFeatures({
456
486
  "div",
457
487
  {
458
488
  className: cn(
459
- "mb-5 flex size-12 items-center justify-center rounded-2xl bg-primary text-primary-foreground",
489
+ "mb-5 flex size-12 items-center justify-center rounded-2xl text-primary-foreground",
490
+ getAccentColor(background),
460
491
  feature.iconBgClass
461
492
  ),
462
493
  children: feature.icon
463
494
  }
464
495
  ),
465
496
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-2 mb-3 text-lg font-semibold", children: feature.title }) : feature.title),
466
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: feature.description }) : feature.description)
497
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: feature.description }) : feature.description)
467
498
  ] }, idx));
468
- }, [featuresSlot, features]);
499
+ }, [featuresSlot, features, background]);
469
500
  return /* @__PURE__ */ jsxRuntime.jsx(
470
501
  Section,
471
502
  {
@@ -563,7 +594,8 @@ function AboutMissionFeatures({
563
594
  "p",
564
595
  {
565
596
  className: cn(
566
- "text-lg text-muted-foreground",
597
+ "text-lg",
598
+ getTextColor(background, "muted"),
567
599
  featuresDescriptionClassName
568
600
  ),
569
601
  children: featuresDescription
@@ -39,6 +39,36 @@ function getNestedCardTextColor(parentBg, options) {
39
39
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
40
40
  return isDark ? "text-foreground" : "";
41
41
  }
42
+ function getTextColor(parentBg, variant = "default", options) {
43
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
44
+ if (isDark) {
45
+ switch (variant) {
46
+ case "default":
47
+ return "text-foreground";
48
+ case "muted":
49
+ return "text-foreground/80";
50
+ case "subtle":
51
+ return "text-foreground/60";
52
+ case "accent":
53
+ return "text-accent-foreground";
54
+ }
55
+ } else {
56
+ switch (variant) {
57
+ case "default":
58
+ return "text-foreground";
59
+ case "muted":
60
+ return "text-muted-foreground";
61
+ case "subtle":
62
+ return "text-muted-foreground/70";
63
+ case "accent":
64
+ return "text-primary";
65
+ }
66
+ }
67
+ }
68
+ function getAccentColor(parentBg, options) {
69
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
70
+ return isDark ? "text-accent-foreground" : "text-primary";
71
+ }
42
72
  var maxWidthStyles = {
43
73
  sm: "max-w-screen-sm",
44
74
  md: "max-w-screen-md",
@@ -450,16 +480,17 @@ function AboutMissionFeatures({
450
480
  "div",
451
481
  {
452
482
  className: cn(
453
- "mb-5 flex size-12 items-center justify-center rounded-2xl bg-primary text-primary-foreground",
483
+ "mb-5 flex size-12 items-center justify-center rounded-2xl text-primary-foreground",
484
+ getAccentColor(background),
454
485
  feature.iconBgClass
455
486
  ),
456
487
  children: feature.icon
457
488
  }
458
489
  ),
459
490
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mt-2 mb-3 text-lg font-semibold", children: feature.title }) : feature.title),
460
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: feature.description }) : feature.description)
491
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: feature.description }) : feature.description)
461
492
  ] }, idx));
462
- }, [featuresSlot, features]);
493
+ }, [featuresSlot, features, background]);
463
494
  return /* @__PURE__ */ jsx(
464
495
  Section,
465
496
  {
@@ -557,7 +588,8 @@ function AboutMissionFeatures({
557
588
  "p",
558
589
  {
559
590
  className: cn(
560
- "text-lg text-muted-foreground",
591
+ "text-lg",
592
+ getTextColor(background, "muted"),
561
593
  featuresDescriptionClassName
562
594
  ),
563
595
  children: featuresDescription
@@ -61,6 +61,36 @@ function getNestedCardTextColor(parentBg, options) {
61
61
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
62
62
  return isDark ? "text-foreground" : "";
63
63
  }
64
+ function getTextColor(parentBg, variant = "default", options) {
65
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
66
+ if (isDark) {
67
+ switch (variant) {
68
+ case "default":
69
+ return "text-foreground";
70
+ case "muted":
71
+ return "text-foreground/80";
72
+ case "subtle":
73
+ return "text-foreground/60";
74
+ case "accent":
75
+ return "text-accent-foreground";
76
+ }
77
+ } else {
78
+ switch (variant) {
79
+ case "default":
80
+ return "text-foreground";
81
+ case "muted":
82
+ return "text-muted-foreground";
83
+ case "subtle":
84
+ return "text-muted-foreground/70";
85
+ case "accent":
86
+ return "text-primary";
87
+ }
88
+ }
89
+ }
90
+ function getAccentColor(parentBg, options) {
91
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
92
+ return isDark ? "text-accent-foreground" : "text-primary";
93
+ }
64
94
  function normalizePhoneNumber(input) {
65
95
  const trimmed = input.trim();
66
96
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1024,12 +1054,12 @@ function AboutMissionPrinciples({
1024
1054
  children: principles.map((principle, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
1025
1055
  "div",
1026
1056
  {
1027
- className: "relative rounded-lg border p-6 transition-colors hover:bg-muted",
1057
+ className: cn("relative rounded-lg border p-6 transition-colors", `hover:${getNestedCardBg(background, "muted")}`),
1028
1058
  children: [
1029
- principle.number && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute right-4 top-4 text-3xl font-bold text-primary/20", children: principle.number }),
1059
+ principle.number && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute right-4 top-4 text-3xl font-bold", getAccentColor(background), "opacity-20"), children: principle.number }),
1030
1060
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-3", children: [
1031
1061
  principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
1032
- principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: principle.description }) : principle.description)
1062
+ principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: principle.description }) : principle.description)
1033
1063
  ] })
1034
1064
  ]
1035
1065
  },
@@ -1080,7 +1110,8 @@ function AboutMissionPrinciples({
1080
1110
  "div",
1081
1111
  {
1082
1112
  className: cn(
1083
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1113
+ "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm",
1114
+ getAccentColor(background),
1084
1115
  badgeClassName
1085
1116
  ),
1086
1117
  children: badgeText
@@ -1100,7 +1131,8 @@ function AboutMissionPrinciples({
1100
1131
  "p",
1101
1132
  {
1102
1133
  className: cn(
1103
- "text-xl text-muted-foreground",
1134
+ "text-xl",
1135
+ getTextColor(background, "muted"),
1104
1136
  missionDescriptionClassName
1105
1137
  ),
1106
1138
  children: missionDescription
@@ -1135,7 +1167,8 @@ function AboutMissionPrinciples({
1135
1167
  "p",
1136
1168
  {
1137
1169
  className: cn(
1138
- "mb-4 text-muted-foreground",
1170
+ "mb-4",
1171
+ getTextColor(background, "muted"),
1139
1172
  visionDescriptionClassName
1140
1173
  ),
1141
1174
  children: visionDescription
@@ -40,6 +40,36 @@ function getNestedCardTextColor(parentBg, options) {
40
40
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
41
41
  return isDark ? "text-foreground" : "";
42
42
  }
43
+ function getTextColor(parentBg, variant = "default", options) {
44
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
45
+ if (isDark) {
46
+ switch (variant) {
47
+ case "default":
48
+ return "text-foreground";
49
+ case "muted":
50
+ return "text-foreground/80";
51
+ case "subtle":
52
+ return "text-foreground/60";
53
+ case "accent":
54
+ return "text-accent-foreground";
55
+ }
56
+ } else {
57
+ switch (variant) {
58
+ case "default":
59
+ return "text-foreground";
60
+ case "muted":
61
+ return "text-muted-foreground";
62
+ case "subtle":
63
+ return "text-muted-foreground/70";
64
+ case "accent":
65
+ return "text-primary";
66
+ }
67
+ }
68
+ }
69
+ function getAccentColor(parentBg, options) {
70
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
71
+ return isDark ? "text-accent-foreground" : "text-primary";
72
+ }
43
73
  function normalizePhoneNumber(input) {
44
74
  const trimmed = input.trim();
45
75
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1003,12 +1033,12 @@ function AboutMissionPrinciples({
1003
1033
  children: principles.map((principle, idx) => /* @__PURE__ */ jsxs(
1004
1034
  "div",
1005
1035
  {
1006
- className: "relative rounded-lg border p-6 transition-colors hover:bg-muted",
1036
+ className: cn("relative rounded-lg border p-6 transition-colors", `hover:${getNestedCardBg(background, "muted")}`),
1007
1037
  children: [
1008
- principle.number && /* @__PURE__ */ jsx("div", { className: "absolute right-4 top-4 text-3xl font-bold text-primary/20", children: principle.number }),
1038
+ principle.number && /* @__PURE__ */ jsx("div", { className: cn("absolute right-4 top-4 text-3xl font-bold", getAccentColor(background), "opacity-20"), children: principle.number }),
1009
1039
  /* @__PURE__ */ jsxs("div", { className: "space-y-3", children: [
1010
1040
  principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-xl font-bold", children: principle.title }) : principle.title),
1011
- principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: principle.description }) : principle.description)
1041
+ principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: principle.description }) : principle.description)
1012
1042
  ] })
1013
1043
  ]
1014
1044
  },
@@ -1059,7 +1089,8 @@ function AboutMissionPrinciples({
1059
1089
  "div",
1060
1090
  {
1061
1091
  className: cn(
1062
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1092
+ "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm",
1093
+ getAccentColor(background),
1063
1094
  badgeClassName
1064
1095
  ),
1065
1096
  children: badgeText
@@ -1079,7 +1110,8 @@ function AboutMissionPrinciples({
1079
1110
  "p",
1080
1111
  {
1081
1112
  className: cn(
1082
- "text-xl text-muted-foreground",
1113
+ "text-xl",
1114
+ getTextColor(background, "muted"),
1083
1115
  missionDescriptionClassName
1084
1116
  ),
1085
1117
  children: missionDescription
@@ -1114,7 +1146,8 @@ function AboutMissionPrinciples({
1114
1146
  "p",
1115
1147
  {
1116
1148
  className: cn(
1117
- "mb-4 text-muted-foreground",
1149
+ "mb-4",
1150
+ getTextColor(background, "muted"),
1118
1151
  visionDescriptionClassName
1119
1152
  ),
1120
1153
  children: visionDescription
@@ -33,6 +33,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
33
33
  function cn(...inputs) {
34
34
  return tailwindMerge.twMerge(clsx.clsx(inputs));
35
35
  }
36
+ function getAccentColor(parentBg, options) {
37
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
38
+ return isDark ? "text-accent-foreground" : "text-primary";
39
+ }
40
+ function getBorderColor(parentBg, variant = "default", options) {
41
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
+ if (isDark) {
43
+ switch (variant) {
44
+ case "default":
45
+ return "border-foreground/20";
46
+ case "muted":
47
+ return "border-foreground/10";
48
+ case "accent":
49
+ return "border-accent-foreground";
50
+ }
51
+ } else {
52
+ switch (variant) {
53
+ case "default":
54
+ return "border-border";
55
+ case "muted":
56
+ return "border-muted";
57
+ case "accent":
58
+ return "border-primary";
59
+ }
60
+ }
61
+ }
36
62
  var svgCache = /* @__PURE__ */ new Map();
37
63
  function DynamicIcon({
38
64
  name,
@@ -961,7 +987,7 @@ function AboutNetworkSpotlight({
961
987
  if (highlightsSlot) return highlightsSlot;
962
988
  if (!highlights || highlights.length === 0) return null;
963
989
  return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("mt-6 space-y-3", highlightsClassName), children: highlights.map((item, index) => /* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-start gap-3 text-background/80", children: [
964
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary/20 text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check", size: 14 }) }),
990
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mt-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary/20", getAccentColor(background)), children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check", size: 14 }) }),
965
991
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: item })
966
992
  ] }, index)) });
967
993
  }, [highlightsSlot, highlights, highlightsClassName]);
@@ -991,14 +1017,15 @@ function AboutNetworkSpotlight({
991
1017
  "div",
992
1018
  {
993
1019
  className: cn(
994
- "rounded-2xl border border-primary/40 bg-foreground/80 p-5 backdrop-blur-sm",
1020
+ "rounded-2xl border bg-foreground/80 p-5 backdrop-blur-sm",
1021
+ getBorderColor(background, "accent"),
995
1022
  spotlightCardClassName
996
1023
  ),
997
1024
  children: [
998
1025
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center gap-3", children: [
999
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground", children: spotlightCard.icon }),
1026
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-12 w-12 items-center justify-center rounded-full text-primary-foreground", getAccentColor(background)), children: spotlightCard.icon }),
1000
1027
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1001
- typeof spotlightCard.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-bold uppercase tracking-[0.2em] text-primary", children: spotlightCard.label }) : spotlightCard.label,
1028
+ typeof spotlightCard.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs font-bold uppercase tracking-[0.2em]", getAccentColor(background)), children: spotlightCard.label }) : spotlightCard.label,
1002
1029
  typeof spotlightCard.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold text-background", children: spotlightCard.title }) : spotlightCard.title
1003
1030
  ] })
1004
1031
  ] }),
@@ -1057,7 +1084,8 @@ function AboutNetworkSpotlight({
1057
1084
  "p",
1058
1085
  {
1059
1086
  className: cn(
1060
- "text-sm font-semibold uppercase tracking-[0.2em] text-primary",
1087
+ "text-sm font-semibold uppercase tracking-[0.2em]",
1088
+ getAccentColor(background),
1061
1089
  eyebrowClassName
1062
1090
  ),
1063
1091
  children: eyebrow
@@ -12,6 +12,32 @@ import { cva } from 'class-variance-authority';
12
12
  function cn(...inputs) {
13
13
  return twMerge(clsx(inputs));
14
14
  }
15
+ function getAccentColor(parentBg, options) {
16
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
17
+ return isDark ? "text-accent-foreground" : "text-primary";
18
+ }
19
+ function getBorderColor(parentBg, variant = "default", options) {
20
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
21
+ if (isDark) {
22
+ switch (variant) {
23
+ case "default":
24
+ return "border-foreground/20";
25
+ case "muted":
26
+ return "border-foreground/10";
27
+ case "accent":
28
+ return "border-accent-foreground";
29
+ }
30
+ } else {
31
+ switch (variant) {
32
+ case "default":
33
+ return "border-border";
34
+ case "muted":
35
+ return "border-muted";
36
+ case "accent":
37
+ return "border-primary";
38
+ }
39
+ }
40
+ }
15
41
  var svgCache = /* @__PURE__ */ new Map();
16
42
  function DynamicIcon({
17
43
  name,
@@ -940,7 +966,7 @@ function AboutNetworkSpotlight({
940
966
  if (highlightsSlot) return highlightsSlot;
941
967
  if (!highlights || highlights.length === 0) return null;
942
968
  return /* @__PURE__ */ jsx("ul", { className: cn("mt-6 space-y-3", highlightsClassName), children: highlights.map((item, index) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3 text-background/80", children: [
943
- /* @__PURE__ */ jsx("span", { className: "mt-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary/20 text-primary", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 14 }) }),
969
+ /* @__PURE__ */ jsx("span", { className: cn("mt-1 flex h-5 w-5 items-center justify-center rounded-full bg-primary/20", getAccentColor(background)), children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 14 }) }),
944
970
  /* @__PURE__ */ jsx("span", { children: item })
945
971
  ] }, index)) });
946
972
  }, [highlightsSlot, highlights, highlightsClassName]);
@@ -970,14 +996,15 @@ function AboutNetworkSpotlight({
970
996
  "div",
971
997
  {
972
998
  className: cn(
973
- "rounded-2xl border border-primary/40 bg-foreground/80 p-5 backdrop-blur-sm",
999
+ "rounded-2xl border bg-foreground/80 p-5 backdrop-blur-sm",
1000
+ getBorderColor(background, "accent"),
974
1001
  spotlightCardClassName
975
1002
  ),
976
1003
  children: [
977
1004
  /* @__PURE__ */ jsxs("div", { className: "mb-2 flex items-center gap-3", children: [
978
- /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground", children: spotlightCard.icon }),
1005
+ /* @__PURE__ */ jsx("div", { className: cn("flex h-12 w-12 items-center justify-center rounded-full text-primary-foreground", getAccentColor(background)), children: spotlightCard.icon }),
979
1006
  /* @__PURE__ */ jsxs("div", { children: [
980
- typeof spotlightCard.label === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs font-bold uppercase tracking-[0.2em] text-primary", children: spotlightCard.label }) : spotlightCard.label,
1007
+ typeof spotlightCard.label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xs font-bold uppercase tracking-[0.2em]", getAccentColor(background)), children: spotlightCard.label }) : spotlightCard.label,
981
1008
  typeof spotlightCard.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold text-background", children: spotlightCard.title }) : spotlightCard.title
982
1009
  ] })
983
1010
  ] }),
@@ -1036,7 +1063,8 @@ function AboutNetworkSpotlight({
1036
1063
  "p",
1037
1064
  {
1038
1065
  className: cn(
1039
- "text-sm font-semibold uppercase tracking-[0.2em] text-primary",
1066
+ "text-sm font-semibold uppercase tracking-[0.2em]",
1067
+ getAccentColor(background),
1040
1068
  eyebrowClassName
1041
1069
  ),
1042
1070
  children: eyebrow
@@ -62,6 +62,36 @@ 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
+ }
91
+ function getAccentColor(parentBg, options) {
92
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
93
+ return isDark ? "text-accent-foreground" : "text-primary";
94
+ }
65
95
  function normalizePhoneNumber(input) {
66
96
  const trimmed = input.trim();
67
97
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1030,7 +1060,10 @@ function AboutStartupTeam({
1030
1060
  onClick: () => handleTabChange(link.value),
1031
1061
  className: cn(
1032
1062
  "block w-full text-left rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1033
- activeTab === link.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted"
1063
+ activeTab === link.value ? "bg-primary text-primary-foreground" : cn(
1064
+ getTextColor(background, "muted"),
1065
+ "hover:bg-muted"
1066
+ )
1034
1067
  ),
1035
1068
  children: link.label
1036
1069
  },
@@ -1072,17 +1105,20 @@ function AboutStartupTeam({
1072
1105
  {
1073
1106
  name: "lucide/user",
1074
1107
  size: 40,
1075
- className: "text-muted-foreground"
1108
+ className: cn(getTextColor(background, "muted"))
1076
1109
  }
1077
1110
  ) }),
1078
1111
  member.name && (typeof member.name === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-4 font-semibold", children: member.name }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: member.name })),
1079
- member.role && (typeof member.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: member.role }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", children: member.role })),
1112
+ member.role && (typeof member.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: member.role }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", children: member.role })),
1080
1113
  member.socialLinks && member.socialLinks.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4 flex justify-center gap-3", children: member.socialLinks.map((link, linkIdx) => /* @__PURE__ */ jsxRuntime.jsx(
1081
1114
  Pressable,
1082
1115
  {
1083
1116
  href: link.url,
1084
1117
  "aria-label": link.label,
1085
- className: "text-muted-foreground hover:text-primary",
1118
+ className: cn(
1119
+ getTextColor(background, "muted"),
1120
+ `hover:${getAccentColor(background)}`
1121
+ ),
1086
1122
  children: link.icon
1087
1123
  },
1088
1124
  linkIdx
@@ -1107,7 +1143,11 @@ function AboutStartupTeam({
1107
1143
  onClick: () => handleTabChange(link.value),
1108
1144
  className: cn(
1109
1145
  "shrink-0 rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1110
- activeTab === link.value ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80"
1146
+ activeTab === link.value ? "bg-primary text-primary-foreground" : cn(
1147
+ "bg-muted",
1148
+ getTextColor(background, "muted"),
1149
+ "hover:bg-muted/80"
1150
+ )
1111
1151
  ),
1112
1152
  children: link.label
1113
1153
  },
@@ -1148,7 +1188,8 @@ function AboutStartupTeam({
1148
1188
  "p",
1149
1189
  {
1150
1190
  className: cn(
1151
- "mt-6 text-lg text-muted-foreground whitespace-pre-line",
1191
+ "mt-6 text-lg whitespace-pre-line",
1192
+ getTextColor(background, "muted"),
1152
1193
  descriptionClassName
1153
1194
  ),
1154
1195
  children: description