@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
@@ -31,6 +31,58 @@ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
31
31
  function cn(...inputs) {
32
32
  return tailwindMerge.twMerge(clsx.clsx(inputs));
33
33
  }
34
+ function getNestedCardBg(parentBg, variant = "muted", options) {
35
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
36
+ if (isDark) {
37
+ switch (variant) {
38
+ case "muted":
39
+ return "bg-background";
40
+ case "card":
41
+ return "bg-card";
42
+ case "accent":
43
+ return "bg-accent";
44
+ case "subtle":
45
+ return "bg-background/50";
46
+ }
47
+ } else {
48
+ switch (variant) {
49
+ case "muted":
50
+ return "bg-muted";
51
+ case "card":
52
+ return "bg-card";
53
+ case "accent":
54
+ return "bg-accent";
55
+ case "subtle":
56
+ return "bg-muted/50";
57
+ }
58
+ }
59
+ }
60
+ function getTextColor(parentBg, variant = "default", options) {
61
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
62
+ if (isDark) {
63
+ switch (variant) {
64
+ case "default":
65
+ return "text-foreground";
66
+ case "muted":
67
+ return "text-foreground/80";
68
+ case "subtle":
69
+ return "text-foreground/60";
70
+ case "accent":
71
+ return "text-accent-foreground";
72
+ }
73
+ } else {
74
+ switch (variant) {
75
+ case "default":
76
+ return "text-foreground";
77
+ case "muted":
78
+ return "text-muted-foreground";
79
+ case "subtle":
80
+ return "text-muted-foreground/70";
81
+ case "accent":
82
+ return "text-primary";
83
+ }
84
+ }
85
+ }
34
86
  var maxWidthStyles = {
35
87
  sm: "max-w-screen-sm",
36
88
  md: "max-w-screen-md",
@@ -407,13 +459,14 @@ var Section = React3__namespace.default.forwardRef(
407
459
  );
408
460
  Section.displayName = "Section";
409
461
  var TeamMemberBackgroundImageCard = React3__namespace.forwardRef(
410
- ({ className, imageUrl, imageAlt, children, optixFlowConfig, ...props }, ref) => {
462
+ ({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
411
463
  return /* @__PURE__ */ jsxRuntime.jsxs(
412
464
  "div",
413
465
  {
414
466
  ref,
415
467
  className: cn(
416
- "group h-[400px] relative w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-lg",
468
+ getNestedCardBg(background, "card"),
469
+ "group h-[400px] relative w-full max-w-sm overflow-hidden rounded-xl border border-border shadow-lg",
417
470
  "transition-all duration-300 ease-in-out",
418
471
  className
419
472
  ),
@@ -464,6 +517,7 @@ function TeamMediaShowcase({
464
517
  imageAlt,
465
518
  className: member.cardClassName,
466
519
  optixFlowConfig,
520
+ background,
467
521
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex h-full flex-col justify-end p-6 text-card-foreground", children: [
468
522
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4 transition-transform duration-500 ease-in-out md:group-hover:-translate-y-12", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
469
523
  member.name && typeof member.name === "string" && member.name.trim() !== "" && /* @__PURE__ */ jsxRuntime.jsx(
@@ -502,7 +556,7 @@ function TeamMediaShowcase({
502
556
  idx
503
557
  );
504
558
  });
505
- }, [itemsSlot, items, optixFlowConfig, memberNameClassName, memberRoleClassName, actionClassName]);
559
+ }, [itemsSlot, items, optixFlowConfig, memberNameClassName, memberRoleClassName, actionClassName, background]);
506
560
  return /* @__PURE__ */ jsxRuntime.jsxs(
507
561
  Section,
508
562
  {
@@ -518,7 +572,8 @@ function TeamMediaShowcase({
518
572
  "div",
519
573
  {
520
574
  className: cn(
521
- "text-md pt-8 uppercase text-muted-foreground tracking-[0.2em] font-semibold",
575
+ getTextColor(background, "muted"),
576
+ "text-md pt-8 uppercase tracking-[0.2em] font-semibold",
522
577
  eyebrowClassName
523
578
  ),
524
579
  children: listEyebrow
@@ -125,6 +125,10 @@ interface TeamMemberBackgroundImageCardProps extends React.HTMLAttributes<HTMLDi
125
125
  * Optional Optix Flow configuration for @page-speed/img
126
126
  */
127
127
  optixFlowConfig?: OptixFlowConfig;
128
+ /**
129
+ * Background style variant for dynamic color utilities
130
+ */
131
+ background?: SectionBackground;
128
132
  }
129
133
  /**
130
134
  * TeamMemberBackgroundImageCard - Individual card with background image and hover effects
@@ -125,6 +125,10 @@ interface TeamMemberBackgroundImageCardProps extends React.HTMLAttributes<HTMLDi
125
125
  * Optional Optix Flow configuration for @page-speed/img
126
126
  */
127
127
  optixFlowConfig?: OptixFlowConfig;
128
+ /**
129
+ * Background style variant for dynamic color utilities
130
+ */
131
+ background?: SectionBackground;
128
132
  }
129
133
  /**
130
134
  * TeamMemberBackgroundImageCard - Individual card with background image and hover effects
@@ -10,6 +10,58 @@ import { Img } from '@page-speed/img';
10
10
  function cn(...inputs) {
11
11
  return twMerge(clsx(inputs));
12
12
  }
13
+ function getNestedCardBg(parentBg, variant = "muted", options) {
14
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
15
+ if (isDark) {
16
+ switch (variant) {
17
+ case "muted":
18
+ return "bg-background";
19
+ case "card":
20
+ return "bg-card";
21
+ case "accent":
22
+ return "bg-accent";
23
+ case "subtle":
24
+ return "bg-background/50";
25
+ }
26
+ } else {
27
+ switch (variant) {
28
+ case "muted":
29
+ return "bg-muted";
30
+ case "card":
31
+ return "bg-card";
32
+ case "accent":
33
+ return "bg-accent";
34
+ case "subtle":
35
+ return "bg-muted/50";
36
+ }
37
+ }
38
+ }
39
+ function getTextColor(parentBg, variant = "default", options) {
40
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
41
+ if (isDark) {
42
+ switch (variant) {
43
+ case "default":
44
+ return "text-foreground";
45
+ case "muted":
46
+ return "text-foreground/80";
47
+ case "subtle":
48
+ return "text-foreground/60";
49
+ case "accent":
50
+ return "text-accent-foreground";
51
+ }
52
+ } else {
53
+ switch (variant) {
54
+ case "default":
55
+ return "text-foreground";
56
+ case "muted":
57
+ return "text-muted-foreground";
58
+ case "subtle":
59
+ return "text-muted-foreground/70";
60
+ case "accent":
61
+ return "text-primary";
62
+ }
63
+ }
64
+ }
13
65
  var maxWidthStyles = {
14
66
  sm: "max-w-screen-sm",
15
67
  md: "max-w-screen-md",
@@ -386,13 +438,14 @@ var Section = React3__default.forwardRef(
386
438
  );
387
439
  Section.displayName = "Section";
388
440
  var TeamMemberBackgroundImageCard = React3.forwardRef(
389
- ({ className, imageUrl, imageAlt, children, optixFlowConfig, ...props }, ref) => {
441
+ ({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
390
442
  return /* @__PURE__ */ jsxs(
391
443
  "div",
392
444
  {
393
445
  ref,
394
446
  className: cn(
395
- "group h-[400px] relative w-full max-w-sm overflow-hidden rounded-xl border border-border bg-card shadow-lg",
447
+ getNestedCardBg(background, "card"),
448
+ "group h-[400px] relative w-full max-w-sm overflow-hidden rounded-xl border border-border shadow-lg",
396
449
  "transition-all duration-300 ease-in-out",
397
450
  className
398
451
  ),
@@ -443,6 +496,7 @@ function TeamMediaShowcase({
443
496
  imageAlt,
444
497
  className: member.cardClassName,
445
498
  optixFlowConfig,
499
+ background,
446
500
  children: /* @__PURE__ */ jsxs("div", { className: "relative flex h-full flex-col justify-end p-6 text-card-foreground", children: [
447
501
  /* @__PURE__ */ jsx("div", { className: "space-y-4 transition-transform duration-500 ease-in-out md:group-hover:-translate-y-12", children: /* @__PURE__ */ jsxs("div", { children: [
448
502
  member.name && typeof member.name === "string" && member.name.trim() !== "" && /* @__PURE__ */ jsx(
@@ -481,7 +535,7 @@ function TeamMediaShowcase({
481
535
  idx
482
536
  );
483
537
  });
484
- }, [itemsSlot, items, optixFlowConfig, memberNameClassName, memberRoleClassName, actionClassName]);
538
+ }, [itemsSlot, items, optixFlowConfig, memberNameClassName, memberRoleClassName, actionClassName, background]);
485
539
  return /* @__PURE__ */ jsxs(
486
540
  Section,
487
541
  {
@@ -497,7 +551,8 @@ function TeamMediaShowcase({
497
551
  "div",
498
552
  {
499
553
  className: cn(
500
- "text-md pt-8 uppercase text-muted-foreground tracking-[0.2em] font-semibold",
554
+ getTextColor(background, "muted"),
555
+ "text-md pt-8 uppercase tracking-[0.2em] font-semibold",
501
556
  eyebrowClassName
502
557
  ),
503
558
  children: listEyebrow
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { f as SectionBackground } from './community-initiatives-Bz_A5vLU.cjs';
2
3
  import { T as TestimonialItem, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
4
+ import 'react/jsx-runtime';
3
5
  import 'class-variance-authority';
4
6
  import './button-variants-lRElsmTc.cjs';
5
7
  import 'class-variance-authority/types';
@@ -74,6 +76,10 @@ interface TestimonialsCarouselImageProps {
74
76
  * OptixFlow image optimization configuration
75
77
  */
76
78
  optixFlowConfig?: OptixFlowConfig;
79
+ /**
80
+ * Background style for the section
81
+ */
82
+ background?: SectionBackground;
77
83
  }
78
84
  /**
79
85
  * TestimonialsCarouselImage - A full-width image carousel testimonial section with
@@ -1,5 +1,7 @@
1
1
  import * as React from 'react';
2
+ import { f as SectionBackground } from './community-initiatives-Bi_ClKrO.js';
2
3
  import { T as TestimonialItem, O as OptixFlowConfig } from './blocks-k17uluAz.js';
4
+ import 'react/jsx-runtime';
3
5
  import 'class-variance-authority';
4
6
  import './button-variants-lRElsmTc.js';
5
7
  import 'class-variance-authority/types';
@@ -74,6 +76,10 @@ interface TestimonialsCarouselImageProps {
74
76
  * OptixFlow image optimization configuration
75
77
  */
76
78
  optixFlowConfig?: OptixFlowConfig;
79
+ /**
80
+ * Background style for the section
81
+ */
82
+ background?: SectionBackground;
77
83
  }
78
84
  /**
79
85
  * TestimonialsCarouselImage - A full-width image carousel testimonial section with
package/dist/utils.cjs CHANGED
@@ -52,8 +52,66 @@ function getNestedCardTextColor(parentBg, options) {
52
52
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
53
53
  return isDark ? "text-foreground" : "";
54
54
  }
55
+ function getTextColor(parentBg, variant = "default", options) {
56
+ if (options?.override) return options.override;
57
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
58
+ if (isDark) {
59
+ switch (variant) {
60
+ case "default":
61
+ return "text-foreground";
62
+ case "muted":
63
+ return "text-foreground/80";
64
+ case "subtle":
65
+ return "text-foreground/60";
66
+ case "accent":
67
+ return "text-accent-foreground";
68
+ }
69
+ } else {
70
+ switch (variant) {
71
+ case "default":
72
+ return "text-foreground";
73
+ case "muted":
74
+ return "text-muted-foreground";
75
+ case "subtle":
76
+ return "text-muted-foreground/70";
77
+ case "accent":
78
+ return "text-primary";
79
+ }
80
+ }
81
+ }
82
+ function getAccentColor(parentBg, options) {
83
+ if (options?.override) return options.override;
84
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
85
+ return isDark ? "text-accent-foreground" : "text-primary";
86
+ }
87
+ function getBorderColor(parentBg, variant = "default", options) {
88
+ if (options?.override) return options.override;
89
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
90
+ if (isDark) {
91
+ switch (variant) {
92
+ case "default":
93
+ return "border-foreground/20";
94
+ case "muted":
95
+ return "border-foreground/10";
96
+ case "accent":
97
+ return "border-accent-foreground";
98
+ }
99
+ } else {
100
+ switch (variant) {
101
+ case "default":
102
+ return "border-border";
103
+ case "muted":
104
+ return "border-muted";
105
+ case "accent":
106
+ return "border-primary";
107
+ }
108
+ }
109
+ }
55
110
 
56
111
  exports.BRIGHTNESS_CLASS_MAP = BRIGHTNESS_CLASS_MAP;
57
112
  exports.cn = cn;
113
+ exports.getAccentColor = getAccentColor;
114
+ exports.getBorderColor = getBorderColor;
58
115
  exports.getNestedCardBg = getNestedCardBg;
59
116
  exports.getNestedCardTextColor = getNestedCardTextColor;
117
+ exports.getTextColor = getTextColor;
package/dist/utils.d.cts CHANGED
@@ -111,5 +111,117 @@ declare function getNestedCardBg(parentBg?: SectionBackground, variant?: NestedC
111
111
  declare function getNestedCardTextColor(parentBg?: SectionBackground, options?: {
112
112
  override?: string;
113
113
  }): string;
114
+ /**
115
+ * Text color variant types for dynamic theming
116
+ */
117
+ type TextColorVariant = "default" | "muted" | "subtle" | "accent";
118
+ /**
119
+ * Get the appropriate text color class based on parent Section background.
120
+ *
121
+ * This utility provides **context-aware text coloring** that adapts to the parent
122
+ * Section's background to ensure optimal readability and visual hierarchy.
123
+ *
124
+ * **How it works:**
125
+ * - On **dark backgrounds** (dark, secondary, primary): Uses lighter text colors
126
+ * - On **light backgrounds** (default, white, gray, muted): Uses darker text colors
127
+ *
128
+ * **Variants:**
129
+ * - `default`: Primary text color (highest contrast)
130
+ * - `muted`: Secondary text color (medium contrast) - for descriptions, labels
131
+ * - `subtle`: Tertiary text color (lower contrast) - for captions, metadata
132
+ * - `accent`: Accent color - for emphasis, links, highlights
133
+ *
134
+ * @param parentBg - The parent Section's background variant
135
+ * @param variant - The type of text color to use (default: 'default')
136
+ * @param options - Optional configuration for manual override
137
+ * @returns Tailwind text color class string
138
+ *
139
+ * @example
140
+ * // Muted text for descriptions
141
+ * <p className={getTextColor(background, 'muted')}>
142
+ * This is a description with reduced emphasis
143
+ * </p>
144
+ *
145
+ * @example
146
+ * // Accent text for links
147
+ * <a className={getTextColor(background, 'accent')}>
148
+ * Learn more
149
+ * </a>
150
+ *
151
+ * @example
152
+ * // Manual override
153
+ * <span className={getTextColor(background, 'default', { override: 'text-blue-600' })}>
154
+ * Custom color
155
+ * </span>
156
+ */
157
+ declare function getTextColor(parentBg?: SectionBackground, variant?: TextColorVariant, options?: {
158
+ override?: string;
159
+ }): string;
160
+ /**
161
+ * Get the appropriate accent color class based on parent Section background.
162
+ *
163
+ * This utility provides **context-aware accent coloring** for icons, decorations,
164
+ * and emphasis elements that need to stand out from the background.
165
+ *
166
+ * **How it works:**
167
+ * - On **dark backgrounds**: Uses lighter accent colors for visibility
168
+ * - On **light backgrounds**: Uses primary brand color for emphasis
169
+ *
170
+ * @param parentBg - The parent Section's background variant
171
+ * @param options - Optional configuration for manual override
172
+ * @returns Tailwind text color class string (for icons/SVGs)
173
+ *
174
+ * @example
175
+ * // Icon with dynamic accent color
176
+ * <DynamicIcon className={getAccentColor(background)} />
177
+ *
178
+ * @example
179
+ * // Decorative element
180
+ * <div className={cn(getAccentColor(background), "absolute top-0 right-0")}>
181
+ * <CornerIllustration />
182
+ * </div>
183
+ */
184
+ declare function getAccentColor(parentBg?: SectionBackground, options?: {
185
+ override?: string;
186
+ }): string;
187
+ /**
188
+ * Border color variant types for dynamic theming
189
+ */
190
+ type BorderColorVariant = "default" | "muted" | "accent";
191
+ /**
192
+ * Get the appropriate border color class based on parent Section background.
193
+ *
194
+ * This utility provides **context-aware border coloring** that adapts to the parent
195
+ * Section's background to ensure borders remain visible and aesthetically pleasing.
196
+ *
197
+ * **How it works:**
198
+ * - On **dark backgrounds**: Uses lighter border colors for visibility
199
+ * - On **light backgrounds**: Uses subtle border colors for elegance
200
+ *
201
+ * **Variants:**
202
+ * - `default`: Standard border color (subtle, elegant)
203
+ * - `muted`: Very subtle border (minimal contrast)
204
+ * - `accent`: Accent-colored border (for emphasis)
205
+ *
206
+ * @param parentBg - The parent Section's background variant
207
+ * @param variant - The type of border color to use (default: 'default')
208
+ * @param options - Optional configuration for manual override
209
+ * @returns Tailwind border color class string
210
+ *
211
+ * @example
212
+ * // Card with dynamic border
213
+ * <div className={cn(getBorderColor(background), "border rounded-lg p-6")}>
214
+ * Content
215
+ * </div>
216
+ *
217
+ * @example
218
+ * // Accent border for emphasis
219
+ * <div className={cn(getBorderColor(background, 'accent'), "border-2 rounded-lg")}>
220
+ * Featured content
221
+ * </div>
222
+ */
223
+ declare function getBorderColor(parentBg?: SectionBackground, variant?: BorderColorVariant, options?: {
224
+ override?: string;
225
+ }): string;
114
226
 
115
- export { BRIGHTNESS_CLASS_MAP, type NestedCardBgOptions, type NestedCardVariant, cn, getNestedCardBg, getNestedCardTextColor };
227
+ export { BRIGHTNESS_CLASS_MAP, type BorderColorVariant, type NestedCardBgOptions, type NestedCardVariant, type TextColorVariant, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor };
package/dist/utils.d.ts CHANGED
@@ -111,5 +111,117 @@ declare function getNestedCardBg(parentBg?: SectionBackground, variant?: NestedC
111
111
  declare function getNestedCardTextColor(parentBg?: SectionBackground, options?: {
112
112
  override?: string;
113
113
  }): string;
114
+ /**
115
+ * Text color variant types for dynamic theming
116
+ */
117
+ type TextColorVariant = "default" | "muted" | "subtle" | "accent";
118
+ /**
119
+ * Get the appropriate text color class based on parent Section background.
120
+ *
121
+ * This utility provides **context-aware text coloring** that adapts to the parent
122
+ * Section's background to ensure optimal readability and visual hierarchy.
123
+ *
124
+ * **How it works:**
125
+ * - On **dark backgrounds** (dark, secondary, primary): Uses lighter text colors
126
+ * - On **light backgrounds** (default, white, gray, muted): Uses darker text colors
127
+ *
128
+ * **Variants:**
129
+ * - `default`: Primary text color (highest contrast)
130
+ * - `muted`: Secondary text color (medium contrast) - for descriptions, labels
131
+ * - `subtle`: Tertiary text color (lower contrast) - for captions, metadata
132
+ * - `accent`: Accent color - for emphasis, links, highlights
133
+ *
134
+ * @param parentBg - The parent Section's background variant
135
+ * @param variant - The type of text color to use (default: 'default')
136
+ * @param options - Optional configuration for manual override
137
+ * @returns Tailwind text color class string
138
+ *
139
+ * @example
140
+ * // Muted text for descriptions
141
+ * <p className={getTextColor(background, 'muted')}>
142
+ * This is a description with reduced emphasis
143
+ * </p>
144
+ *
145
+ * @example
146
+ * // Accent text for links
147
+ * <a className={getTextColor(background, 'accent')}>
148
+ * Learn more
149
+ * </a>
150
+ *
151
+ * @example
152
+ * // Manual override
153
+ * <span className={getTextColor(background, 'default', { override: 'text-blue-600' })}>
154
+ * Custom color
155
+ * </span>
156
+ */
157
+ declare function getTextColor(parentBg?: SectionBackground, variant?: TextColorVariant, options?: {
158
+ override?: string;
159
+ }): string;
160
+ /**
161
+ * Get the appropriate accent color class based on parent Section background.
162
+ *
163
+ * This utility provides **context-aware accent coloring** for icons, decorations,
164
+ * and emphasis elements that need to stand out from the background.
165
+ *
166
+ * **How it works:**
167
+ * - On **dark backgrounds**: Uses lighter accent colors for visibility
168
+ * - On **light backgrounds**: Uses primary brand color for emphasis
169
+ *
170
+ * @param parentBg - The parent Section's background variant
171
+ * @param options - Optional configuration for manual override
172
+ * @returns Tailwind text color class string (for icons/SVGs)
173
+ *
174
+ * @example
175
+ * // Icon with dynamic accent color
176
+ * <DynamicIcon className={getAccentColor(background)} />
177
+ *
178
+ * @example
179
+ * // Decorative element
180
+ * <div className={cn(getAccentColor(background), "absolute top-0 right-0")}>
181
+ * <CornerIllustration />
182
+ * </div>
183
+ */
184
+ declare function getAccentColor(parentBg?: SectionBackground, options?: {
185
+ override?: string;
186
+ }): string;
187
+ /**
188
+ * Border color variant types for dynamic theming
189
+ */
190
+ type BorderColorVariant = "default" | "muted" | "accent";
191
+ /**
192
+ * Get the appropriate border color class based on parent Section background.
193
+ *
194
+ * This utility provides **context-aware border coloring** that adapts to the parent
195
+ * Section's background to ensure borders remain visible and aesthetically pleasing.
196
+ *
197
+ * **How it works:**
198
+ * - On **dark backgrounds**: Uses lighter border colors for visibility
199
+ * - On **light backgrounds**: Uses subtle border colors for elegance
200
+ *
201
+ * **Variants:**
202
+ * - `default`: Standard border color (subtle, elegant)
203
+ * - `muted`: Very subtle border (minimal contrast)
204
+ * - `accent`: Accent-colored border (for emphasis)
205
+ *
206
+ * @param parentBg - The parent Section's background variant
207
+ * @param variant - The type of border color to use (default: 'default')
208
+ * @param options - Optional configuration for manual override
209
+ * @returns Tailwind border color class string
210
+ *
211
+ * @example
212
+ * // Card with dynamic border
213
+ * <div className={cn(getBorderColor(background), "border rounded-lg p-6")}>
214
+ * Content
215
+ * </div>
216
+ *
217
+ * @example
218
+ * // Accent border for emphasis
219
+ * <div className={cn(getBorderColor(background, 'accent'), "border-2 rounded-lg")}>
220
+ * Featured content
221
+ * </div>
222
+ */
223
+ declare function getBorderColor(parentBg?: SectionBackground, variant?: BorderColorVariant, options?: {
224
+ override?: string;
225
+ }): string;
114
226
 
115
- export { BRIGHTNESS_CLASS_MAP, type NestedCardBgOptions, type NestedCardVariant, cn, getNestedCardBg, getNestedCardTextColor };
227
+ export { BRIGHTNESS_CLASS_MAP, type BorderColorVariant, type NestedCardBgOptions, type NestedCardVariant, type TextColorVariant, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor };
package/dist/utils.js CHANGED
@@ -50,5 +50,60 @@ function getNestedCardTextColor(parentBg, options) {
50
50
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
51
51
  return isDark ? "text-foreground" : "";
52
52
  }
53
+ function getTextColor(parentBg, variant = "default", options) {
54
+ if (options?.override) return options.override;
55
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
56
+ if (isDark) {
57
+ switch (variant) {
58
+ case "default":
59
+ return "text-foreground";
60
+ case "muted":
61
+ return "text-foreground/80";
62
+ case "subtle":
63
+ return "text-foreground/60";
64
+ case "accent":
65
+ return "text-accent-foreground";
66
+ }
67
+ } else {
68
+ switch (variant) {
69
+ case "default":
70
+ return "text-foreground";
71
+ case "muted":
72
+ return "text-muted-foreground";
73
+ case "subtle":
74
+ return "text-muted-foreground/70";
75
+ case "accent":
76
+ return "text-primary";
77
+ }
78
+ }
79
+ }
80
+ function getAccentColor(parentBg, options) {
81
+ if (options?.override) return options.override;
82
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
83
+ return isDark ? "text-accent-foreground" : "text-primary";
84
+ }
85
+ function getBorderColor(parentBg, variant = "default", options) {
86
+ if (options?.override) return options.override;
87
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
88
+ if (isDark) {
89
+ switch (variant) {
90
+ case "default":
91
+ return "border-foreground/20";
92
+ case "muted":
93
+ return "border-foreground/10";
94
+ case "accent":
95
+ return "border-accent-foreground";
96
+ }
97
+ } else {
98
+ switch (variant) {
99
+ case "default":
100
+ return "border-border";
101
+ case "muted":
102
+ return "border-muted";
103
+ case "accent":
104
+ return "border-primary";
105
+ }
106
+ }
107
+ }
53
108
 
54
- export { BRIGHTNESS_CLASS_MAP, cn, getNestedCardBg, getNestedCardTextColor };
109
+ export { BRIGHTNESS_CLASS_MAP, cn, getAccentColor, getBorderColor, getNestedCardBg, getNestedCardTextColor, getTextColor };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "0.8.9",
3
+ "version": "0.9.1",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",