@opensite/ui 0.8.9 → 0.9.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (367) hide show
  1. package/dist/about-company-profile.cjs +32 -4
  2. package/dist/about-company-profile.js +32 -4
  3. package/dist/about-culture-tabs.cjs +38 -8
  4. package/dist/about-culture-tabs.js +38 -8
  5. package/dist/about-developer-profile.cjs +37 -5
  6. package/dist/about-developer-profile.js +37 -5
  7. package/dist/about-developer-story.cjs +31 -3
  8. package/dist/about-developer-story.js +31 -3
  9. package/dist/about-expandable-values.cjs +43 -9
  10. package/dist/about-expandable-values.js +43 -9
  11. package/dist/about-interactive-tabs.cjs +63 -4
  12. package/dist/about-interactive-tabs.js +63 -4
  13. package/dist/about-location-info-hero.cjs +28 -2
  14. package/dist/about-location-info-hero.js +28 -2
  15. package/dist/about-minimal-story.cjs +35 -4
  16. package/dist/about-minimal-story.js +35 -4
  17. package/dist/about-mission-dual-image.cjs +30 -2
  18. package/dist/about-mission-dual-image.js +30 -2
  19. package/dist/about-mission-features.cjs +36 -4
  20. package/dist/about-mission-features.js +36 -4
  21. package/dist/about-mission-principles.cjs +39 -6
  22. package/dist/about-mission-principles.js +39 -6
  23. package/dist/about-network-spotlight.cjs +33 -5
  24. package/dist/about-network-spotlight.js +33 -5
  25. package/dist/about-startup-team.cjs +47 -6
  26. package/dist/about-startup-team.js +47 -6
  27. package/dist/about-stats-showcase.cjs +31 -4
  28. package/dist/about-stats-showcase.js +31 -4
  29. package/dist/about-stats-sidebar.cjs +29 -3
  30. package/dist/about-stats-sidebar.js +29 -3
  31. package/dist/about-story-expertise.cjs +44 -8
  32. package/dist/about-story-expertise.js +44 -8
  33. package/dist/about-story-gallery.cjs +28 -1
  34. package/dist/about-story-gallery.js +28 -1
  35. package/dist/about-story-hero.cjs +36 -4
  36. package/dist/about-story-hero.js +36 -4
  37. package/dist/about-streamline-team.cjs +32 -4
  38. package/dist/about-streamline-team.js +32 -4
  39. package/dist/about-vision-gallery.cjs +32 -3
  40. package/dist/about-vision-gallery.js +32 -3
  41. package/dist/alternating-blocks.cjs +5 -1
  42. package/dist/alternating-blocks.js +5 -1
  43. package/dist/banner-announcement-dismissible.cjs +377 -1
  44. package/dist/banner-announcement-dismissible.d.cts +7 -1
  45. package/dist/banner-announcement-dismissible.d.ts +7 -1
  46. package/dist/banner-announcement-dismissible.js +378 -2
  47. package/dist/banner-countdown-sale.cjs +388 -8
  48. package/dist/banner-countdown-sale.d.cts +11 -1
  49. package/dist/banner-countdown-sale.d.ts +11 -1
  50. package/dist/banner-countdown-sale.js +379 -3
  51. package/dist/banner-delivery-countdown.cjs +377 -1
  52. package/dist/banner-delivery-countdown.d.cts +11 -1
  53. package/dist/banner-delivery-countdown.d.ts +11 -1
  54. package/dist/banner-delivery-countdown.js +378 -2
  55. package/dist/banner-event-promo.cjs +377 -1
  56. package/dist/banner-event-promo.d.cts +7 -1
  57. package/dist/banner-event-promo.d.ts +7 -1
  58. package/dist/banner-event-promo.js +378 -2
  59. package/dist/banner-floating-offer.cjs +379 -3
  60. package/dist/banner-floating-offer.d.cts +7 -1
  61. package/dist/banner-floating-offer.d.ts +7 -1
  62. package/dist/banner-floating-offer.js +380 -4
  63. package/dist/banner-gdpr-rights.cjs +398 -31
  64. package/dist/banner-gdpr-rights.d.cts +7 -1
  65. package/dist/banner-gdpr-rights.d.ts +7 -1
  66. package/dist/banner-gdpr-rights.js +399 -32
  67. package/dist/banner-privacy-notice.cjs +399 -32
  68. package/dist/banner-privacy-notice.d.cts +7 -1
  69. package/dist/banner-privacy-notice.d.ts +7 -1
  70. package/dist/banner-privacy-notice.js +400 -33
  71. package/dist/banner-promo-cta.cjs +382 -12
  72. package/dist/banner-promo-cta.d.cts +7 -1
  73. package/dist/banner-promo-cta.d.ts +7 -1
  74. package/dist/banner-promo-cta.js +383 -13
  75. package/dist/banner-social-follow.cjs +395 -28
  76. package/dist/banner-social-follow.d.cts +7 -1
  77. package/dist/banner-social-follow.d.ts +7 -1
  78. package/dist/banner-social-follow.js +396 -29
  79. package/dist/banner-survey-incentive.cjs +377 -1
  80. package/dist/banner-survey-incentive.d.cts +7 -1
  81. package/dist/banner-survey-incentive.d.ts +7 -1
  82. package/dist/banner-survey-incentive.js +378 -2
  83. package/dist/community-initiatives.cjs +43 -10
  84. package/dist/community-initiatives.js +43 -10
  85. package/dist/components.cjs +76 -36
  86. package/dist/components.js +76 -36
  87. package/dist/contact-floating-banner.cjs +378 -2
  88. package/dist/contact-floating-banner.d.cts +7 -1
  89. package/dist/contact-floating-banner.d.ts +7 -1
  90. package/dist/contact-floating-banner.js +379 -2
  91. package/dist/cta-accent-background.cjs +28 -1
  92. package/dist/cta-accent-background.js +28 -1
  93. package/dist/cta-app-download-newsletter.cjs +30 -2
  94. package/dist/cta-app-download-newsletter.js +30 -2
  95. package/dist/cta-documentation-links.cjs +28 -2
  96. package/dist/cta-documentation-links.js +28 -2
  97. package/dist/cta-feature-cards-grid.cjs +34 -3
  98. package/dist/cta-feature-cards-grid.js +34 -3
  99. package/dist/cta-feature-checklist.cjs +27 -1
  100. package/dist/cta-feature-checklist.js +27 -1
  101. package/dist/cta-feature-list.cjs +33 -2
  102. package/dist/cta-feature-list.js +33 -2
  103. package/dist/cta-gradient-logos-floating.cjs +28 -1
  104. package/dist/cta-gradient-logos-floating.js +28 -1
  105. package/dist/cta-minimal-separator.cjs +27 -1
  106. package/dist/cta-minimal-separator.js +27 -1
  107. package/dist/cta-platform-demo.cjs +28 -1
  108. package/dist/cta-platform-demo.js +28 -1
  109. package/dist/cta-simple-centered.cjs +28 -1
  110. package/dist/cta-simple-centered.js +28 -1
  111. package/dist/cta-split-gradient-image.cjs +28 -1
  112. package/dist/cta-split-gradient-image.js +28 -1
  113. package/dist/cta-split-image-logos.cjs +29 -2
  114. package/dist/cta-split-image-logos.js +29 -2
  115. package/dist/cta-split-image.cjs +29 -2
  116. package/dist/cta-split-image.js +29 -2
  117. package/dist/cta-stacked-cards.cjs +28 -1
  118. package/dist/cta-stacked-cards.js +28 -1
  119. package/dist/faq-badge-support.cjs +33 -5
  120. package/dist/faq-badge-support.js +33 -5
  121. package/dist/faq-bordered-badge.cjs +31 -3
  122. package/dist/faq-bordered-badge.js +31 -3
  123. package/dist/faq-card-categories.cjs +60 -4
  124. package/dist/faq-card-categories.js +60 -4
  125. package/dist/faq-categorized-sections.cjs +31 -3
  126. package/dist/faq-categorized-sections.js +31 -3
  127. package/dist/faq-centered-accordion.cjs +31 -3
  128. package/dist/faq-centered-accordion.js +31 -3
  129. package/dist/faq-gradient-categories.cjs +31 -3
  130. package/dist/faq-gradient-categories.js +31 -3
  131. package/dist/faq-icon-benefits.cjs +40 -5
  132. package/dist/faq-icon-benefits.js +40 -5
  133. package/dist/faq-muted-cards.cjs +29 -2
  134. package/dist/faq-muted-cards.js +29 -2
  135. package/dist/faq-numbered-grid.cjs +32 -3
  136. package/dist/faq-numbered-grid.js +32 -3
  137. package/dist/faq-numbered-list.cjs +32 -3
  138. package/dist/faq-numbered-list.js +32 -3
  139. package/dist/faq-profile-sidebar.cjs +36 -6
  140. package/dist/faq-profile-sidebar.js +36 -6
  141. package/dist/faq-sidebar-navigation.cjs +30 -3
  142. package/dist/faq-sidebar-navigation.js +30 -3
  143. package/dist/faq-simple-accordion.cjs +29 -2
  144. package/dist/faq-simple-accordion.js +29 -2
  145. package/dist/feature-accordion-image.cjs +28 -2
  146. package/dist/feature-accordion-image.js +28 -2
  147. package/dist/feature-badge-grid-six.cjs +27 -1
  148. package/dist/feature-badge-grid-six.js +27 -1
  149. package/dist/feature-bento-image-grid.cjs +27 -1
  150. package/dist/feature-bento-image-grid.js +27 -1
  151. package/dist/feature-bento-utilities.cjs +56 -4
  152. package/dist/feature-bento-utilities.js +56 -4
  153. package/dist/feature-capabilities-grid.cjs +29 -3
  154. package/dist/feature-capabilities-grid.js +29 -3
  155. package/dist/feature-card-grid-linked.cjs +29 -2
  156. package/dist/feature-card-grid-linked.js +29 -2
  157. package/dist/feature-carousel-progress.cjs +28 -2
  158. package/dist/feature-carousel-progress.js +28 -2
  159. package/dist/feature-category-image-cards.cjs +28 -2
  160. package/dist/feature-category-image-cards.js +28 -2
  161. package/dist/feature-checklist-image.cjs +30 -2
  162. package/dist/feature-checklist-image.js +30 -2
  163. package/dist/feature-checklist-three-column.cjs +35 -5
  164. package/dist/feature-checklist-three-column.js +35 -5
  165. package/dist/feature-icon-grid-accent.cjs +28 -2
  166. package/dist/feature-icon-grid-accent.js +28 -2
  167. package/dist/feature-icon-grid-bordered.cjs +9 -4
  168. package/dist/feature-icon-grid-bordered.js +9 -4
  169. package/dist/feature-icon-grid-muted.cjs +28 -2
  170. package/dist/feature-icon-grid-muted.js +28 -2
  171. package/dist/feature-icon-tabs-content.cjs +56 -5
  172. package/dist/feature-icon-tabs-content.js +56 -5
  173. package/dist/feature-image-cards-three-column.cjs +27 -1
  174. package/dist/feature-image-cards-three-column.js +27 -1
  175. package/dist/feature-integration-cards.cjs +28 -2
  176. package/dist/feature-integration-cards.js +28 -2
  177. package/dist/feature-pattern-grid-links.cjs +28 -2
  178. package/dist/feature-pattern-grid-links.js +28 -2
  179. package/dist/feature-utility-cards-grid.cjs +9 -4
  180. package/dist/feature-utility-cards-grid.js +9 -4
  181. package/dist/footer-comprehensive-links.cjs +231 -151
  182. package/dist/footer-comprehensive-links.js +231 -151
  183. package/dist/hero-ad-campaign-expert.cjs +24 -2
  184. package/dist/hero-ad-campaign-expert.js +24 -2
  185. package/dist/hero-adaptable-product-grid.cjs +27 -1
  186. package/dist/hero-adaptable-product-grid.js +27 -1
  187. package/dist/hero-ai-powered-carousel.cjs +27 -1
  188. package/dist/hero-ai-powered-carousel.js +27 -1
  189. package/dist/hero-announcement-badge.cjs +27 -1
  190. package/dist/hero-announcement-badge.js +27 -1
  191. package/dist/hero-architecture-fullscreen.cjs +50 -2
  192. package/dist/hero-architecture-fullscreen.js +50 -2
  193. package/dist/hero-badge-image-split.cjs +27 -1
  194. package/dist/hero-badge-image-split.js +27 -1
  195. package/dist/hero-business-carousel-dots.cjs +27 -1
  196. package/dist/hero-business-carousel-dots.js +27 -1
  197. package/dist/hero-centered-gradient-cta.cjs +28 -2
  198. package/dist/hero-centered-gradient-cta.js +28 -2
  199. package/dist/hero-centered-image-grid.cjs +27 -1
  200. package/dist/hero-centered-image-grid.js +27 -1
  201. package/dist/hero-centered-screenshot.cjs +50 -2
  202. package/dist/hero-centered-screenshot.js +50 -2
  203. package/dist/hero-coming-soon-countdown.cjs +37 -7
  204. package/dist/hero-coming-soon-countdown.js +37 -7
  205. package/dist/hero-community-survey-cta.cjs +27 -1
  206. package/dist/hero-community-survey-cta.js +27 -1
  207. package/dist/hero-conversation-intelligence.cjs +50 -2
  208. package/dist/hero-conversation-intelligence.js +50 -2
  209. package/dist/hero-conversion-video-play.cjs +55 -3
  210. package/dist/hero-conversion-video-play.js +55 -3
  211. package/dist/hero-creative-studio-stacked.cjs +28 -2
  212. package/dist/hero-creative-studio-stacked.js +28 -2
  213. package/dist/hero-crm-streamlined.cjs +27 -1
  214. package/dist/hero-crm-streamlined.js +27 -1
  215. package/dist/hero-customer-support-layered.cjs +51 -3
  216. package/dist/hero-customer-support-layered.js +51 -3
  217. package/dist/hero-dashed-border-features.cjs +27 -1
  218. package/dist/hero-dashed-border-features.js +27 -1
  219. package/dist/hero-design-showcase-logos.cjs +27 -1
  220. package/dist/hero-design-showcase-logos.js +27 -1
  221. package/dist/hero-design-system-3d.cjs +32 -2
  222. package/dist/hero-design-system-3d.js +32 -2
  223. package/dist/hero-developer-tools-code.cjs +27 -1
  224. package/dist/hero-developer-tools-code.js +27 -1
  225. package/dist/hero-digital-agency-fullscreen.cjs +33 -3
  226. package/dist/hero-digital-agency-fullscreen.js +33 -3
  227. package/dist/hero-ecommerce-product-showcase.cjs +32 -6
  228. package/dist/hero-ecommerce-product-showcase.js +32 -6
  229. package/dist/hero-enterprise-security.cjs +34 -4
  230. package/dist/hero-enterprise-security.js +34 -4
  231. package/dist/hero-event-registration.cjs +35 -5
  232. package/dist/hero-event-registration.js +35 -5
  233. package/dist/hero-feature-cards-grid.cjs +82 -4
  234. package/dist/hero-feature-cards-grid.js +82 -4
  235. package/dist/hero-gradient-avatars-rating.cjs +30 -4
  236. package/dist/hero-gradient-avatars-rating.js +30 -4
  237. package/dist/hero-gradient-client-focused.cjs +27 -1
  238. package/dist/hero-gradient-client-focused.js +27 -1
  239. package/dist/hero-grid-pattern-efficiency.cjs +28 -2
  240. package/dist/hero-grid-pattern-efficiency.js +28 -2
  241. package/dist/hero-grid-pattern-solutions.cjs +27 -1
  242. package/dist/hero-grid-pattern-solutions.js +27 -1
  243. package/dist/hero-image-left-content.cjs +27 -1
  244. package/dist/hero-image-left-content.js +27 -1
  245. package/dist/hero-innovation-image-grid.cjs +27 -1
  246. package/dist/hero-innovation-image-grid.js +27 -1
  247. package/dist/hero-logo-centered-screenshot.cjs +27 -1
  248. package/dist/hero-logo-centered-screenshot.js +27 -1
  249. package/dist/hero-marketplace-scattered-images.cjs +27 -1
  250. package/dist/hero-marketplace-scattered-images.js +27 -1
  251. package/dist/hero-mentorship-video-split.cjs +7 -3
  252. package/dist/hero-mentorship-video-split.js +7 -3
  253. package/dist/hero-minimal-centered-dark.cjs +55 -3
  254. package/dist/hero-minimal-centered-dark.js +55 -3
  255. package/dist/hero-mobile-app-download.cjs +34 -4
  256. package/dist/hero-mobile-app-download.js +34 -4
  257. package/dist/hero-newsletter-minimal.cjs +29 -3
  258. package/dist/hero-newsletter-minimal.js +29 -3
  259. package/dist/hero-overlay-cta-grid.cjs +33 -3
  260. package/dist/hero-overlay-cta-grid.js +33 -3
  261. package/dist/hero-pattern-badge-logos.cjs +28 -2
  262. package/dist/hero-pattern-badge-logos.js +28 -2
  263. package/dist/hero-pattern-logo-tech-stack.cjs +33 -3
  264. package/dist/hero-pattern-logo-tech-stack.js +33 -3
  265. package/dist/hero-platform-features-grid.cjs +28 -2
  266. package/dist/hero-platform-features-grid.js +28 -2
  267. package/dist/hero-portfolio-creative.cjs +29 -3
  268. package/dist/hero-portfolio-creative.js +29 -3
  269. package/dist/hero-pricing-comparison.cjs +52 -4
  270. package/dist/hero-pricing-comparison.js +52 -4
  271. package/dist/hero-product-showcase-floating.cjs +34 -4
  272. package/dist/hero-product-showcase-floating.js +34 -4
  273. package/dist/hero-productivity-launcher-video.cjs +29 -3
  274. package/dist/hero-productivity-launcher-video.js +29 -3
  275. package/dist/hero-saas-dashboard-preview.cjs +34 -4
  276. package/dist/hero-saas-dashboard-preview.js +34 -4
  277. package/dist/hero-shared-inbox-layered.cjs +51 -3
  278. package/dist/hero-shared-inbox-layered.js +51 -3
  279. package/dist/hero-simple-centered-image.cjs +27 -1
  280. package/dist/hero-simple-centered-image.js +27 -1
  281. package/dist/hero-software-growth-video-dialog.cjs +50 -2
  282. package/dist/hero-software-growth-video-dialog.js +50 -2
  283. package/dist/hero-spiral-pattern-cards.cjs +28 -2
  284. package/dist/hero-spiral-pattern-cards.js +28 -2
  285. package/dist/hero-split-icon-cards.cjs +34 -4
  286. package/dist/hero-split-icon-cards.js +34 -4
  287. package/dist/hero-split-image-newsletter.cjs +28 -2
  288. package/dist/hero-split-image-newsletter.js +28 -2
  289. package/dist/hero-split-spiral-shapes.cjs +28 -2
  290. package/dist/hero-split-spiral-shapes.js +28 -2
  291. package/dist/hero-startup-launch-cta.cjs +28 -2
  292. package/dist/hero-startup-launch-cta.js +28 -2
  293. package/dist/hero-stats-social-proof.cjs +34 -4
  294. package/dist/hero-stats-social-proof.js +34 -4
  295. package/dist/hero-tech-carousel.cjs +27 -1
  296. package/dist/hero-tech-carousel.js +27 -1
  297. package/dist/hero-ui-library-showcase.cjs +27 -1
  298. package/dist/hero-ui-library-showcase.js +27 -1
  299. package/dist/hero-video-background-dark.cjs +28 -2
  300. package/dist/hero-video-background-dark.js +28 -2
  301. package/dist/hero-video-dialog-gradient.cjs +27 -1
  302. package/dist/hero-video-dialog-gradient.js +27 -1
  303. package/dist/hero-welcome-asymmetric-images.cjs +30 -2
  304. package/dist/hero-welcome-asymmetric-images.js +30 -2
  305. package/dist/index.cjs +104 -36
  306. package/dist/index.d.cts +1 -1
  307. package/dist/index.d.ts +1 -1
  308. package/dist/index.js +102 -37
  309. package/dist/link-page-bento-layout.cjs +57 -28
  310. package/dist/link-page-bento-layout.d.cts +1 -5
  311. package/dist/link-page-bento-layout.d.ts +1 -5
  312. package/dist/link-page-bento-layout.js +57 -28
  313. package/dist/link-page-grid-cards.cjs +52 -23
  314. package/dist/link-page-grid-cards.d.cts +1 -5
  315. package/dist/link-page-grid-cards.d.ts +1 -5
  316. package/dist/link-page-grid-cards.js +52 -23
  317. package/dist/link-page-minimal-profile.cjs +46 -18
  318. package/dist/link-page-minimal-profile.d.cts +1 -5
  319. package/dist/link-page-minimal-profile.d.ts +1 -5
  320. package/dist/link-page-minimal-profile.js +46 -18
  321. package/dist/link-page-newsletter-social.cjs +53 -28
  322. package/dist/link-page-newsletter-social.d.cts +1 -5
  323. package/dist/link-page-newsletter-social.d.ts +1 -5
  324. package/dist/link-page-newsletter-social.js +53 -28
  325. package/dist/link-tree-block.cjs +122 -34
  326. package/dist/link-tree-block.d.cts +1 -8
  327. package/dist/link-tree-block.d.ts +1 -8
  328. package/dist/link-tree-block.js +122 -34
  329. package/dist/media-hover-ctas.cjs +28 -2
  330. package/dist/media-hover-ctas.js +28 -2
  331. package/dist/process-expandable-timeline.cjs +66 -10
  332. package/dist/process-expandable-timeline.js +66 -10
  333. package/dist/process-hover-cards.cjs +39 -6
  334. package/dist/process-hover-cards.js +39 -6
  335. package/dist/process-icon-timeline.cjs +53 -3
  336. package/dist/process-icon-timeline.js +53 -3
  337. package/dist/process-mission-principles.cjs +44 -6
  338. package/dist/process-mission-principles.js +44 -6
  339. package/dist/process-numbered-services.cjs +76 -22
  340. package/dist/process-numbered-services.js +76 -22
  341. package/dist/process-roadmap-timeline.cjs +63 -9
  342. package/dist/process-roadmap-timeline.js +63 -9
  343. package/dist/process-scroll-image.cjs +71 -32
  344. package/dist/process-scroll-image.js +71 -32
  345. package/dist/process-steps-grid.cjs +61 -5
  346. package/dist/process-steps-grid.js +61 -5
  347. package/dist/process-sticky-steps.cjs +49 -69
  348. package/dist/process-sticky-steps.d.cts +1 -13
  349. package/dist/process-sticky-steps.d.ts +1 -13
  350. package/dist/process-sticky-steps.js +49 -69
  351. package/dist/project-zigzag-layout.cjs +379 -3
  352. package/dist/project-zigzag-layout.d.cts +8 -1
  353. package/dist/project-zigzag-layout.d.ts +8 -1
  354. package/dist/project-zigzag-layout.js +380 -3
  355. package/dist/registry.cjs +2759 -2476
  356. package/dist/registry.js +2759 -2476
  357. package/dist/team-media-showcase.cjs +59 -4
  358. package/dist/team-media-showcase.d.cts +4 -0
  359. package/dist/team-media-showcase.d.ts +4 -0
  360. package/dist/team-media-showcase.js +59 -4
  361. package/dist/testimonials-carousel-image.d.cts +6 -0
  362. package/dist/testimonials-carousel-image.d.ts +6 -0
  363. package/dist/utils.cjs +58 -0
  364. package/dist/utils.d.cts +113 -1
  365. package/dist/utils.d.ts +113 -1
  366. package/dist/utils.js +56 -1
  367. package/package.json +1 -1
@@ -41,6 +41,36 @@ function getNestedCardTextColor(parentBg, options) {
41
41
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
42
42
  return isDark ? "text-foreground" : "";
43
43
  }
44
+ function getTextColor(parentBg, variant = "default", options) {
45
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
+ if (isDark) {
47
+ switch (variant) {
48
+ case "default":
49
+ return "text-foreground";
50
+ case "muted":
51
+ return "text-foreground/80";
52
+ case "subtle":
53
+ return "text-foreground/60";
54
+ case "accent":
55
+ return "text-accent-foreground";
56
+ }
57
+ } else {
58
+ switch (variant) {
59
+ case "default":
60
+ return "text-foreground";
61
+ case "muted":
62
+ return "text-muted-foreground";
63
+ case "subtle":
64
+ return "text-muted-foreground/70";
65
+ case "accent":
66
+ return "text-primary";
67
+ }
68
+ }
69
+ }
70
+ function getAccentColor(parentBg, options) {
71
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
72
+ return isDark ? "text-accent-foreground" : "text-primary";
73
+ }
44
74
  function normalizePhoneNumber(input) {
45
75
  const trimmed = input.trim();
46
76
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1009,7 +1039,10 @@ function AboutStartupTeam({
1009
1039
  onClick: () => handleTabChange(link.value),
1010
1040
  className: cn(
1011
1041
  "block w-full text-left rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1012
- activeTab === link.value ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:bg-muted"
1042
+ activeTab === link.value ? "bg-primary text-primary-foreground" : cn(
1043
+ getTextColor(background, "muted"),
1044
+ "hover:bg-muted"
1045
+ )
1013
1046
  ),
1014
1047
  children: link.label
1015
1048
  },
@@ -1051,17 +1084,20 @@ function AboutStartupTeam({
1051
1084
  {
1052
1085
  name: "lucide/user",
1053
1086
  size: 40,
1054
- className: "text-muted-foreground"
1087
+ className: cn(getTextColor(background, "muted"))
1055
1088
  }
1056
1089
  ) }),
1057
1090
  member.name && (typeof member.name === "string" ? /* @__PURE__ */ jsx("h3", { className: "mt-4 font-semibold", children: member.name }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: member.name })),
1058
- member.role && (typeof member.role === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: member.role }) : /* @__PURE__ */ jsx("div", { className: "text-sm", children: member.role })),
1091
+ member.role && (typeof member.role === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: member.role }) : /* @__PURE__ */ jsx("div", { className: "text-sm", children: member.role })),
1059
1092
  member.socialLinks && member.socialLinks.length > 0 && /* @__PURE__ */ jsx("div", { className: "mt-4 flex justify-center gap-3", children: member.socialLinks.map((link, linkIdx) => /* @__PURE__ */ jsx(
1060
1093
  Pressable,
1061
1094
  {
1062
1095
  href: link.url,
1063
1096
  "aria-label": link.label,
1064
- className: "text-muted-foreground hover:text-primary",
1097
+ className: cn(
1098
+ getTextColor(background, "muted"),
1099
+ `hover:${getAccentColor(background)}`
1100
+ ),
1065
1101
  children: link.icon
1066
1102
  },
1067
1103
  linkIdx
@@ -1086,7 +1122,11 @@ function AboutStartupTeam({
1086
1122
  onClick: () => handleTabChange(link.value),
1087
1123
  className: cn(
1088
1124
  "shrink-0 rounded-lg px-4 py-2 text-sm font-medium transition-colors",
1089
- activeTab === link.value ? "bg-primary text-primary-foreground" : "bg-muted text-muted-foreground hover:bg-muted/80"
1125
+ activeTab === link.value ? "bg-primary text-primary-foreground" : cn(
1126
+ "bg-muted",
1127
+ getTextColor(background, "muted"),
1128
+ "hover:bg-muted/80"
1129
+ )
1090
1130
  ),
1091
1131
  children: link.label
1092
1132
  },
@@ -1127,7 +1167,8 @@ function AboutStartupTeam({
1127
1167
  "p",
1128
1168
  {
1129
1169
  className: cn(
1130
- "mt-6 text-lg text-muted-foreground whitespace-pre-line",
1170
+ "mt-6 text-lg whitespace-pre-line",
1171
+ getTextColor(background, "muted"),
1131
1172
  descriptionClassName
1132
1173
  ),
1133
1174
  children: description
@@ -45,6 +45,32 @@ function getNestedCardTextColor(parentBg, options) {
45
45
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
46
  return isDark ? "text-foreground" : "";
47
47
  }
48
+ function getTextColor(parentBg, variant = "default", options) {
49
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
50
+ if (isDark) {
51
+ switch (variant) {
52
+ case "default":
53
+ return "text-foreground";
54
+ case "muted":
55
+ return "text-foreground/80";
56
+ case "subtle":
57
+ return "text-foreground/60";
58
+ case "accent":
59
+ return "text-accent-foreground";
60
+ }
61
+ } else {
62
+ switch (variant) {
63
+ case "default":
64
+ return "text-foreground";
65
+ case "muted":
66
+ return "text-muted-foreground";
67
+ case "subtle":
68
+ return "text-muted-foreground/70";
69
+ case "accent":
70
+ return "text-primary";
71
+ }
72
+ }
73
+ }
48
74
  var maxWidthStyles = {
49
75
  sm: "max-w-screen-sm",
50
76
  md: "max-w-screen-md",
@@ -477,7 +503,7 @@ function AboutStatsShowcase({
477
503
  className: cn("grid grid-cols-2 gap-6 md:grid-cols-3", statsClassName),
478
504
  children: stats.map((stat, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-6 border-b pb-8", children: [
479
505
  stat.value && (typeof stat.value === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-medium md:text-5xl", children: stat.value }) : stat.value),
480
- stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: stat.label }) : stat.label)
506
+ stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: stat.label }) : stat.label)
481
507
  ] }, idx))
482
508
  }
483
509
  );
@@ -564,7 +590,7 @@ function AboutStatsShowcase({
564
590
  ), children: [
565
591
  benefit.stat.value && (typeof benefit.stat.value === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-4xl font-medium", children: benefit.stat.value }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2", children: benefit.stat.value })),
566
592
  benefit.stat.label && (typeof benefit.stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-6 font-semibold", children: benefit.stat.label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6", children: benefit.stat.label })),
567
- benefit.stat.description && (typeof benefit.stat.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: benefit.stat.description }) : benefit.stat.description)
593
+ benefit.stat.description && (typeof benefit.stat.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: benefit.stat.description }) : benefit.stat.description)
568
594
  ] }),
569
595
  benefit.testimonial && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "rounded-xl bg-background p-4", children: [
570
596
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-4 flex items-center gap-2", children: [
@@ -585,7 +611,7 @@ function AboutStatsShowcase({
585
611
  benefit.testimonial.author,
586
612
  ","
587
613
  ] }) : benefit.testimonial.author),
588
- benefit.testimonial.role && (typeof benefit.testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm text-muted-foreground", children: benefit.testimonial.role }) : benefit.testimonial.role)
614
+ benefit.testimonial.role && (typeof benefit.testimonial.role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm", getTextColor(background, "muted")), children: benefit.testimonial.role }) : benefit.testimonial.role)
589
615
  ] })
590
616
  ] })
591
617
  ] }, idx))
@@ -626,7 +652,8 @@ function AboutStatsShowcase({
626
652
  "p",
627
653
  {
628
654
  className: cn(
629
- "text-lg text-muted-foreground md:text-xl text-balance",
655
+ "text-lg md:text-xl text-balance",
656
+ getTextColor(background, "muted"),
630
657
  descriptionClassName
631
658
  ),
632
659
  children: description
@@ -39,6 +39,32 @@ 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
+ }
42
68
  var maxWidthStyles = {
43
69
  sm: "max-w-screen-sm",
44
70
  md: "max-w-screen-md",
@@ -471,7 +497,7 @@ function AboutStatsShowcase({
471
497
  className: cn("grid grid-cols-2 gap-6 md:grid-cols-3", statsClassName),
472
498
  children: stats.map((stat, idx) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 border-b pb-8", children: [
473
499
  stat.value && (typeof stat.value === "string" ? /* @__PURE__ */ jsx("p", { className: "text-4xl font-medium md:text-5xl", children: stat.value }) : stat.value),
474
- stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: stat.label }) : stat.label)
500
+ stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: stat.label }) : stat.label)
475
501
  ] }, idx))
476
502
  }
477
503
  );
@@ -558,7 +584,7 @@ function AboutStatsShowcase({
558
584
  ), children: [
559
585
  benefit.stat.value && (typeof benefit.stat.value === "string" ? /* @__PURE__ */ jsx("p", { className: "mb-2 text-4xl font-medium", children: benefit.stat.value }) : /* @__PURE__ */ jsx("div", { className: "mb-2", children: benefit.stat.value })),
560
586
  benefit.stat.label && (typeof benefit.stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: "mb-6 font-semibold", children: benefit.stat.label }) : /* @__PURE__ */ jsx("div", { className: "mb-6", children: benefit.stat.label })),
561
- benefit.stat.description && (typeof benefit.stat.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: benefit.stat.description }) : benefit.stat.description)
587
+ benefit.stat.description && (typeof benefit.stat.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: benefit.stat.description }) : benefit.stat.description)
562
588
  ] }),
563
589
  benefit.testimonial && /* @__PURE__ */ jsxs("div", { className: "rounded-xl bg-background p-4", children: [
564
590
  /* @__PURE__ */ jsxs("div", { className: "mb-4 flex items-center gap-2", children: [
@@ -579,7 +605,7 @@ function AboutStatsShowcase({
579
605
  benefit.testimonial.author,
580
606
  ","
581
607
  ] }) : benefit.testimonial.author),
582
- benefit.testimonial.role && (typeof benefit.testimonial.role === "string" ? /* @__PURE__ */ jsx("span", { className: "text-sm text-muted-foreground", children: benefit.testimonial.role }) : benefit.testimonial.role)
608
+ benefit.testimonial.role && (typeof benefit.testimonial.role === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-sm", getTextColor(background, "muted")), children: benefit.testimonial.role }) : benefit.testimonial.role)
583
609
  ] })
584
610
  ] })
585
611
  ] }, idx))
@@ -620,7 +646,8 @@ function AboutStatsShowcase({
620
646
  "p",
621
647
  {
622
648
  className: cn(
623
- "text-lg text-muted-foreground md:text-xl text-balance",
649
+ "text-lg md:text-xl text-balance",
650
+ getTextColor(background, "muted"),
624
651
  descriptionClassName
625
652
  ),
626
653
  children: description
@@ -44,6 +44,32 @@ function getNestedCardTextColor(parentBg, options) {
44
44
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
45
45
  return isDark ? "text-foreground" : "";
46
46
  }
47
+ function getTextColor(parentBg, variant = "default", options) {
48
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
49
+ if (isDark) {
50
+ switch (variant) {
51
+ case "default":
52
+ return "text-foreground";
53
+ case "muted":
54
+ return "text-foreground/80";
55
+ case "subtle":
56
+ return "text-foreground/60";
57
+ case "accent":
58
+ return "text-accent-foreground";
59
+ }
60
+ } else {
61
+ switch (variant) {
62
+ case "default":
63
+ return "text-foreground";
64
+ case "muted":
65
+ return "text-muted-foreground";
66
+ case "subtle":
67
+ return "text-muted-foreground/70";
68
+ case "accent":
69
+ return "text-primary";
70
+ }
71
+ }
72
+ }
47
73
  var maxWidthStyles = {
48
74
  sm: "max-w-screen-sm",
49
75
  md: "max-w-screen-md",
@@ -449,7 +475,7 @@ function AboutStatsSidebar({
449
475
  stat.icon,
450
476
  typeof stat.value === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-4 text-4xl font-bold", children: stat.value }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-4", children: stat.value }),
451
477
  typeof stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 font-semibold", children: stat.label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: stat.label }),
452
- stat.description && (typeof stat.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: stat.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: stat.description }))
478
+ stat.description && (typeof stat.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-sm", getTextColor(background, "muted")), children: stat.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: stat.description }))
453
479
  ] }, idx)) });
454
480
  }, [statsSlot, stats, statsClassName]);
455
481
  const featuresContent = React.useMemo(() => {
@@ -459,7 +485,7 @@ function AboutStatsSidebar({
459
485
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-12 w-12 shrink-0 items-center justify-center rounded-lg bg-primary/10", feature.iconBgClass), children: feature.icon }),
460
486
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
461
487
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "font-semibold", children: feature.title }) : feature.title),
462
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: feature.description }) : feature.description)
488
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: feature.description }) : feature.description)
463
489
  ] })
464
490
  ] }, idx)) });
465
491
  }, [featuresSlot, features, featuresClassName]);
@@ -475,7 +501,7 @@ function AboutStatsSidebar({
475
501
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-12 lg:grid-cols-3", children: [
476
502
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("lg:sticky lg:top-24 lg:self-start", sidebarClassName), children: [
477
503
  title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
478
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
504
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
479
505
  ] }),
480
506
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-2", children: [
481
507
  (statsSlot || stats && stats.length > 0) && statsContent,
@@ -38,6 +38,32 @@ function getNestedCardTextColor(parentBg, options) {
38
38
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
39
39
  return isDark ? "text-foreground" : "";
40
40
  }
41
+ function getTextColor(parentBg, variant = "default", options) {
42
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
43
+ if (isDark) {
44
+ switch (variant) {
45
+ case "default":
46
+ return "text-foreground";
47
+ case "muted":
48
+ return "text-foreground/80";
49
+ case "subtle":
50
+ return "text-foreground/60";
51
+ case "accent":
52
+ return "text-accent-foreground";
53
+ }
54
+ } else {
55
+ switch (variant) {
56
+ case "default":
57
+ return "text-foreground";
58
+ case "muted":
59
+ return "text-muted-foreground";
60
+ case "subtle":
61
+ return "text-muted-foreground/70";
62
+ case "accent":
63
+ return "text-primary";
64
+ }
65
+ }
66
+ }
41
67
  var maxWidthStyles = {
42
68
  sm: "max-w-screen-sm",
43
69
  md: "max-w-screen-md",
@@ -443,7 +469,7 @@ function AboutStatsSidebar({
443
469
  stat.icon,
444
470
  typeof stat.value === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-4 text-4xl font-bold", children: stat.value }) : /* @__PURE__ */ jsx("div", { className: "mt-4", children: stat.value }),
445
471
  typeof stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-1 font-semibold", children: stat.label }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: stat.label }),
446
- stat.description && (typeof stat.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: stat.description }) : /* @__PURE__ */ jsx("div", { className: "mt-2", children: stat.description }))
472
+ stat.description && (typeof stat.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-sm", getTextColor(background, "muted")), children: stat.description }) : /* @__PURE__ */ jsx("div", { className: "mt-2", children: stat.description }))
447
473
  ] }, idx)) });
448
474
  }, [statsSlot, stats, statsClassName]);
449
475
  const featuresContent = useMemo(() => {
@@ -453,7 +479,7 @@ function AboutStatsSidebar({
453
479
  /* @__PURE__ */ jsx("div", { className: cn("flex h-12 w-12 shrink-0 items-center justify-center rounded-lg bg-primary/10", feature.iconBgClass), children: feature.icon }),
454
480
  /* @__PURE__ */ jsxs("div", { children: [
455
481
  feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "font-semibold", children: feature.title }) : feature.title),
456
- feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: feature.description }) : feature.description)
482
+ feature.description && (typeof feature.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: feature.description }) : feature.description)
457
483
  ] })
458
484
  ] }, idx)) });
459
485
  }, [featuresSlot, features, featuresClassName]);
@@ -469,7 +495,7 @@ function AboutStatsSidebar({
469
495
  children: /* @__PURE__ */ jsxs("div", { className: "grid gap-12 lg:grid-cols-3", children: [
470
496
  /* @__PURE__ */ jsxs("div", { className: cn("lg:sticky lg:top-24 lg:self-start", sidebarClassName), children: [
471
497
  title && (typeof title === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
472
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
498
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-4", descriptionClassName), children: description }))
473
499
  ] }),
474
500
  /* @__PURE__ */ jsxs("div", { className: "lg:col-span-2", children: [
475
501
  (statsSlot || stats && stats.length > 0) && statsContent,
@@ -59,6 +59,36 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
59
59
  }
60
60
  }
61
61
  }
62
+ function getTextColor(parentBg, variant = "default", options) {
63
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
64
+ if (isDark) {
65
+ switch (variant) {
66
+ case "default":
67
+ return "text-foreground";
68
+ case "muted":
69
+ return "text-foreground/80";
70
+ case "subtle":
71
+ return "text-foreground/60";
72
+ case "accent":
73
+ return "text-accent-foreground";
74
+ }
75
+ } else {
76
+ switch (variant) {
77
+ case "default":
78
+ return "text-foreground";
79
+ case "muted":
80
+ return "text-muted-foreground";
81
+ case "subtle":
82
+ return "text-muted-foreground/70";
83
+ case "accent":
84
+ return "text-primary";
85
+ }
86
+ }
87
+ }
88
+ function getAccentColor(parentBg, options) {
89
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
90
+ return isDark ? "text-accent-foreground" : "text-primary";
91
+ }
62
92
  function normalizePhoneNumber(input) {
63
93
  const trimmed = input.trim();
64
94
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -886,7 +916,7 @@ function AboutStoryExpertise({
886
916
  const storyContent = React.useMemo(() => {
887
917
  if (storySlot) return storySlot;
888
918
  if (!storyParagraphs || storyParagraphs.length === 0) return null;
889
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-4 text-muted-foreground", storyClassName), children: storyParagraphs.map(
919
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-4", getTextColor(background, "muted"), storyClassName), children: storyParagraphs.map(
890
920
  (paragraph, idx) => typeof paragraph === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: paragraph }, idx) : /* @__PURE__ */ jsxRuntime.jsx("div", { children: paragraph }, idx)
891
921
  ) });
892
922
  }, [storySlot, storyParagraphs, storyClassName]);
@@ -919,11 +949,11 @@ function AboutStoryExpertise({
919
949
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-3 flex items-center gap-4", children: [
920
950
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground", children: highlight.icon }),
921
951
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
922
- highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground", children: highlight.label }) : highlight.label),
952
+ highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs font-semibold uppercase tracking-[0.2em]", getTextColor(background, "muted")), children: highlight.label }) : highlight.label),
923
953
  highlight.title && (typeof highlight.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold", children: highlight.title }) : highlight.title)
924
954
  ] })
925
955
  ] }),
926
- highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: highlight.description }) : highlight.description)
956
+ highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: highlight.description }) : highlight.description)
927
957
  ]
928
958
  }
929
959
  );
@@ -947,10 +977,14 @@ function AboutStoryExpertise({
947
977
  transition: { duration: 0.3, delay: idx * 0.05 },
948
978
  className: "flex items-start gap-4 rounded-2xl bg-background p-6 shadow-sm transition-all duration-300 hover:-translate-y-1 hover:shadow-lg",
949
979
  children: [
950
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary", children: area.icon }),
980
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
981
+ "flex h-12 w-12 items-center justify-center rounded-xl",
982
+ getNestedCardBg(background, "muted"),
983
+ getAccentColor(background)
984
+ ), children: area.icon }),
951
985
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
952
986
  area.title && (typeof area.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-lg font-bold", children: area.title }) : area.title),
953
- area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: area.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: area.description }))
987
+ area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-1 text-sm", getTextColor(background, "muted")), children: area.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1", children: area.description }))
954
988
  ] })
955
989
  ]
956
990
  },
@@ -983,7 +1017,8 @@ function AboutStoryExpertise({
983
1017
  "p",
984
1018
  {
985
1019
  className: cn(
986
- "text-sm font-semibold uppercase tracking-[0.2em] text-primary",
1020
+ "text-sm font-semibold uppercase tracking-[0.2em]",
1021
+ getAccentColor(background),
987
1022
  eyebrowClassName
988
1023
  ),
989
1024
  children: eyebrow
@@ -1048,7 +1083,7 @@ function AboutStoryExpertise({
1048
1083
  ),
1049
1084
  children: [
1050
1085
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1051
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm font-semibold uppercase tracking-[0.2em] text-primary", children: "Our Expertise" }),
1086
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm font-semibold uppercase tracking-[0.2em]", getAccentColor(background)), children: "Our Expertise" }),
1052
1087
  expertiseHeading && (typeof expertiseHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1053
1088
  "h3",
1054
1089
  {
@@ -1063,7 +1098,8 @@ function AboutStoryExpertise({
1063
1098
  "p",
1064
1099
  {
1065
1100
  className: cn(
1066
- "mx-auto mt-3 max-w-2xl text-muted-foreground",
1101
+ "mx-auto mt-3 max-w-2xl",
1102
+ getTextColor(background, "muted"),
1067
1103
  expertiseDescriptionClassName
1068
1104
  ),
1069
1105
  children: expertiseDescription
@@ -38,6 +38,36 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
38
38
  }
39
39
  }
40
40
  }
41
+ function getTextColor(parentBg, variant = "default", options) {
42
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
43
+ if (isDark) {
44
+ switch (variant) {
45
+ case "default":
46
+ return "text-foreground";
47
+ case "muted":
48
+ return "text-foreground/80";
49
+ case "subtle":
50
+ return "text-foreground/60";
51
+ case "accent":
52
+ return "text-accent-foreground";
53
+ }
54
+ } else {
55
+ switch (variant) {
56
+ case "default":
57
+ return "text-foreground";
58
+ case "muted":
59
+ return "text-muted-foreground";
60
+ case "subtle":
61
+ return "text-muted-foreground/70";
62
+ case "accent":
63
+ return "text-primary";
64
+ }
65
+ }
66
+ }
67
+ function getAccentColor(parentBg, options) {
68
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
69
+ return isDark ? "text-accent-foreground" : "text-primary";
70
+ }
41
71
  function normalizePhoneNumber(input) {
42
72
  const trimmed = input.trim();
43
73
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -865,7 +895,7 @@ function AboutStoryExpertise({
865
895
  const storyContent = useMemo(() => {
866
896
  if (storySlot) return storySlot;
867
897
  if (!storyParagraphs || storyParagraphs.length === 0) return null;
868
- return /* @__PURE__ */ jsx("div", { className: cn("space-y-4 text-muted-foreground", storyClassName), children: storyParagraphs.map(
898
+ return /* @__PURE__ */ jsx("div", { className: cn("space-y-4", getTextColor(background, "muted"), storyClassName), children: storyParagraphs.map(
869
899
  (paragraph, idx) => typeof paragraph === "string" ? /* @__PURE__ */ jsx("p", { children: paragraph }, idx) : /* @__PURE__ */ jsx("div", { children: paragraph }, idx)
870
900
  ) });
871
901
  }, [storySlot, storyParagraphs, storyClassName]);
@@ -898,11 +928,11 @@ function AboutStoryExpertise({
898
928
  /* @__PURE__ */ jsxs("div", { className: "mb-3 flex items-center gap-4", children: [
899
929
  /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-primary text-primary-foreground", children: highlight.icon }),
900
930
  /* @__PURE__ */ jsxs("div", { children: [
901
- highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.2em] text-muted-foreground", children: highlight.label }) : highlight.label),
931
+ highlight.label && (typeof highlight.label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xs font-semibold uppercase tracking-[0.2em]", getTextColor(background, "muted")), children: highlight.label }) : highlight.label),
902
932
  highlight.title && (typeof highlight.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold", children: highlight.title }) : highlight.title)
903
933
  ] })
904
934
  ] }),
905
- highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: highlight.description }) : highlight.description)
935
+ highlight.description && (typeof highlight.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: highlight.description }) : highlight.description)
906
936
  ]
907
937
  }
908
938
  );
@@ -926,10 +956,14 @@ function AboutStoryExpertise({
926
956
  transition: { duration: 0.3, delay: idx * 0.05 },
927
957
  className: "flex items-start gap-4 rounded-2xl bg-background p-6 shadow-sm transition-all duration-300 hover:-translate-y-1 hover:shadow-lg",
928
958
  children: [
929
- /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-xl bg-primary/10 text-primary", children: area.icon }),
959
+ /* @__PURE__ */ jsx("div", { className: cn(
960
+ "flex h-12 w-12 items-center justify-center rounded-xl",
961
+ getNestedCardBg(background, "muted"),
962
+ getAccentColor(background)
963
+ ), children: area.icon }),
930
964
  /* @__PURE__ */ jsxs("div", { children: [
931
965
  area.title && (typeof area.title === "string" ? /* @__PURE__ */ jsx("h4", { className: "text-lg font-bold", children: area.title }) : area.title),
932
- area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-1 text-sm text-muted-foreground", children: area.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: area.description }))
966
+ area.description && (typeof area.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-1 text-sm", getTextColor(background, "muted")), children: area.description }) : /* @__PURE__ */ jsx("div", { className: "mt-1", children: area.description }))
933
967
  ] })
934
968
  ]
935
969
  },
@@ -962,7 +996,8 @@ function AboutStoryExpertise({
962
996
  "p",
963
997
  {
964
998
  className: cn(
965
- "text-sm font-semibold uppercase tracking-[0.2em] text-primary",
999
+ "text-sm font-semibold uppercase tracking-[0.2em]",
1000
+ getAccentColor(background),
966
1001
  eyebrowClassName
967
1002
  ),
968
1003
  children: eyebrow
@@ -1027,7 +1062,7 @@ function AboutStoryExpertise({
1027
1062
  ),
1028
1063
  children: [
1029
1064
  /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
1030
- /* @__PURE__ */ jsx("p", { className: "text-sm font-semibold uppercase tracking-[0.2em] text-primary", children: "Our Expertise" }),
1065
+ /* @__PURE__ */ jsx("p", { className: cn("text-sm font-semibold uppercase tracking-[0.2em]", getAccentColor(background)), children: "Our Expertise" }),
1031
1066
  expertiseHeading && (typeof expertiseHeading === "string" ? /* @__PURE__ */ jsx(
1032
1067
  "h3",
1033
1068
  {
@@ -1042,7 +1077,8 @@ function AboutStoryExpertise({
1042
1077
  "p",
1043
1078
  {
1044
1079
  className: cn(
1045
- "mx-auto mt-3 max-w-2xl text-muted-foreground",
1080
+ "mx-auto mt-3 max-w-2xl",
1081
+ getTextColor(background, "muted"),
1046
1082
  expertiseDescriptionClassName
1047
1083
  ),
1048
1084
  children: expertiseDescription
@@ -15,6 +15,32 @@ var React__default = /*#__PURE__*/_interopDefault(React);
15
15
  function cn(...inputs) {
16
16
  return tailwindMerge.twMerge(clsx.clsx(inputs));
17
17
  }
18
+ function getTextColor(parentBg, variant = "default", options) {
19
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
20
+ if (isDark) {
21
+ switch (variant) {
22
+ case "default":
23
+ return "text-foreground";
24
+ case "muted":
25
+ return "text-foreground/80";
26
+ case "subtle":
27
+ return "text-foreground/60";
28
+ case "accent":
29
+ return "text-accent-foreground";
30
+ }
31
+ } else {
32
+ switch (variant) {
33
+ case "default":
34
+ return "text-foreground";
35
+ case "muted":
36
+ return "text-muted-foreground";
37
+ case "subtle":
38
+ return "text-muted-foreground/70";
39
+ case "accent":
40
+ return "text-primary";
41
+ }
42
+ }
43
+ }
18
44
  var maxWidthStyles = {
19
45
  sm: "max-w-screen-sm",
20
46
  md: "max-w-screen-md",
@@ -457,7 +483,8 @@ function AboutStoryGallery({
457
483
  "p",
458
484
  {
459
485
  className: cn(
460
- "mt-6 text-lg text-muted-foreground whitespace-pre-line text-balance",
486
+ "mt-6 text-lg whitespace-pre-line text-balance",
487
+ getTextColor(background, "muted"),
461
488
  descriptionClassName
462
489
  ),
463
490
  children: description