@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
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import { useState, useCallback, useMemo } from 'react';
3
+ import React__default, { useState, useCallback, useMemo } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { cva } from 'class-variance-authority';
@@ -533,6 +533,381 @@ function processSvgForCurrentColor(svg) {
533
533
  );
534
534
  return processed;
535
535
  }
536
+ var maxWidthStyles = {
537
+ sm: "max-w-screen-sm",
538
+ md: "max-w-screen-md",
539
+ lg: "max-w-screen-lg",
540
+ xl: "max-w-7xl",
541
+ "2xl": "max-w-screen-2xl",
542
+ "4xl": "max-w-[1536px]",
543
+ full: "max-w-full"
544
+ };
545
+ var Container = React__default.forwardRef(
546
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
547
+ const Component = as;
548
+ return /* @__PURE__ */ jsx(
549
+ Component,
550
+ {
551
+ ref,
552
+ className: cn(
553
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
554
+ maxWidthStyles[maxWidth],
555
+ className
556
+ ),
557
+ ...props,
558
+ children
559
+ }
560
+ );
561
+ }
562
+ );
563
+ Container.displayName = "Container";
564
+
565
+ // lib/patternSvgs.ts
566
+ var patternSvgs = {
567
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
568
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
569
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
570
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
571
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
572
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
573
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
574
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
575
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
576
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
577
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
578
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
579
+ };
580
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
581
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
582
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
583
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
584
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
585
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
586
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
587
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxs(
588
+ "svg",
589
+ {
590
+ className: "h-full w-full",
591
+ xmlns: "http://www.w3.org/2000/svg",
592
+ style: mask ? {
593
+ maskImage: mask,
594
+ WebkitMaskImage: mask
595
+ } : void 0,
596
+ children: [
597
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
598
+ "pattern",
599
+ {
600
+ id,
601
+ x: "0",
602
+ y: "0",
603
+ width: "100",
604
+ height: "100",
605
+ patternUnits: "userSpaceOnUse",
606
+ children: [
607
+ /* @__PURE__ */ jsx(
608
+ "path",
609
+ {
610
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
611
+ stroke: "hsl(var(--muted))",
612
+ strokeWidth: "1",
613
+ fill: "none"
614
+ }
615
+ ),
616
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
617
+ /* @__PURE__ */ jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
618
+ /* @__PURE__ */ jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
619
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
620
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
621
+ ]
622
+ }
623
+ ) }),
624
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
625
+ ]
626
+ }
627
+ );
628
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxs(
629
+ "svg",
630
+ {
631
+ className: "h-full w-full",
632
+ xmlns: "http://www.w3.org/2000/svg",
633
+ style: mask ? {
634
+ maskImage: mask,
635
+ WebkitMaskImage: mask
636
+ } : void 0,
637
+ children: [
638
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
639
+ "pattern",
640
+ {
641
+ id,
642
+ x: "0",
643
+ y: "0",
644
+ width: "40",
645
+ height: "40",
646
+ patternUnits: "userSpaceOnUse",
647
+ children: [
648
+ /* @__PURE__ */ jsx(
649
+ "path",
650
+ {
651
+ d: "M0 20h40M20 0v40",
652
+ stroke: "hsl(var(--muted))",
653
+ strokeWidth: "0.5",
654
+ fill: "none"
655
+ }
656
+ ),
657
+ /* @__PURE__ */ jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
658
+ ]
659
+ }
660
+ ) }),
661
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
662
+ ]
663
+ }
664
+ );
665
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsx(
666
+ "div",
667
+ {
668
+ className: "h-full w-full bg-[linear-gradient(to_right,_hsl(var(--muted))_1px,_transparent_1px),linear-gradient(to_bottom,_hsl(var(--muted))_1px,_transparent_1px)]",
669
+ style: {
670
+ backgroundSize: `${size}px ${size}px`,
671
+ ...mask ? {
672
+ maskImage: mask,
673
+ WebkitMaskImage: mask
674
+ } : {}
675
+ }
676
+ }
677
+ );
678
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsx(
679
+ "div",
680
+ {
681
+ className: "h-full w-full",
682
+ style: {
683
+ backgroundImage: "repeating-linear-gradient(45deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px), repeating-linear-gradient(135deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px)",
684
+ ...mask ? {
685
+ maskImage: mask,
686
+ WebkitMaskImage: mask
687
+ } : {}
688
+ }
689
+ }
690
+ );
691
+ var dashedGridMaskBase = "repeating-linear-gradient(to right, black 0px, black 3px, transparent 3px, transparent 8px), repeating-linear-gradient(to bottom, black 0px, black 3px, transparent 3px, transparent 8px)";
692
+ var dashedGridPattern = (fadeMask) => {
693
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
694
+ return /* @__PURE__ */ jsx(
695
+ "div",
696
+ {
697
+ className: "h-full w-full",
698
+ style: {
699
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
700
+ backgroundSize: "20px 20px",
701
+ backgroundPosition: "0 0, 0 0",
702
+ maskImage: mask,
703
+ WebkitMaskImage: mask,
704
+ maskComposite: "intersect",
705
+ WebkitMaskComposite: "source-in"
706
+ }
707
+ }
708
+ );
709
+ };
710
+ var gradientGlow = (position) => /* @__PURE__ */ jsx(
711
+ "div",
712
+ {
713
+ className: cn(
714
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
715
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
716
+ ),
717
+ style: {
718
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
719
+ }
720
+ }
721
+ );
722
+ var spotlight = (position) => /* @__PURE__ */ jsx(
723
+ "div",
724
+ {
725
+ className: cn(
726
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
727
+ position === "left" ? "-left-1/4" : "-right-1/4"
728
+ ),
729
+ style: {
730
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
731
+ }
732
+ }
733
+ );
734
+ var patternOverlays = {
735
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
736
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
737
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
738
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
739
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
740
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
741
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
742
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
743
+ dashedGridBasic: () => dashedGridPattern(),
744
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
745
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
746
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
747
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
748
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
749
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
750
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
751
+ diagonalCrossBasic: () => diagonalCrossPattern(),
752
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
753
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
754
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
755
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
756
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
757
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
758
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
759
+ gridBasic: () => gridPattern(40),
760
+ gridFadeTop: () => gridPattern(32, maskTop),
761
+ gridFadeBottom: () => gridPattern(32, maskBottom),
762
+ gridFadeCenter: () => gridPattern(40, maskCenter),
763
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
764
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
765
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
766
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
767
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
768
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
769
+ gradientGlowTop: () => gradientGlow("top"),
770
+ gradientGlowBottom: () => gradientGlow("bottom"),
771
+ spotlightLeft: () => spotlight("left"),
772
+ spotlightRight: () => spotlight("right")
773
+ };
774
+ var inlinePatternStyles = {
775
+ radialGradientTop: {
776
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
777
+ },
778
+ radialGradientBottom: {
779
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
780
+ }
781
+ };
782
+ function PatternBackground({
783
+ pattern,
784
+ opacity = 0.08,
785
+ className,
786
+ style
787
+ }) {
788
+ if (!pattern) {
789
+ return null;
790
+ }
791
+ if (pattern in inlinePatternStyles) {
792
+ const inlineStyle = inlinePatternStyles[pattern];
793
+ return /* @__PURE__ */ jsx(
794
+ "div",
795
+ {
796
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
797
+ style: { ...inlineStyle, opacity, ...style },
798
+ "aria-hidden": "true"
799
+ }
800
+ );
801
+ }
802
+ if (pattern in patternOverlays) {
803
+ const Overlay = patternOverlays[pattern];
804
+ return /* @__PURE__ */ jsx(
805
+ "div",
806
+ {
807
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
808
+ style: { opacity, ...style },
809
+ "aria-hidden": "true",
810
+ children: Overlay()
811
+ }
812
+ );
813
+ }
814
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
815
+ return /* @__PURE__ */ jsx(
816
+ "div",
817
+ {
818
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
819
+ style: {
820
+ backgroundImage: `url(${patternUrl})`,
821
+ backgroundRepeat: "repeat",
822
+ backgroundSize: "auto",
823
+ opacity,
824
+ ...style
825
+ },
826
+ "aria-hidden": "true"
827
+ }
828
+ );
829
+ }
830
+ var backgroundStyles = {
831
+ default: "bg-background text-foreground",
832
+ white: "bg-white text-dark",
833
+ gray: "bg-muted/30 text-foreground",
834
+ dark: "bg-foreground text-background",
835
+ transparent: "bg-transparent text-foreground",
836
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
837
+ primary: "bg-primary text-primary-foreground",
838
+ secondary: "bg-secondary text-secondary-foreground",
839
+ muted: "bg-muted text-muted-foreground"
840
+ };
841
+ var spacingStyles = {
842
+ none: "py-0 md:py-0",
843
+ sm: "py-12 md:py-16",
844
+ md: "py-16 md:py-24",
845
+ lg: "py-20 md:py-32",
846
+ xl: "py-24 md:py-40"
847
+ };
848
+ var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
849
+ var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
850
+ var Section = React__default.forwardRef(
851
+ ({
852
+ id,
853
+ title,
854
+ subtitle,
855
+ children,
856
+ className,
857
+ style,
858
+ background = "default",
859
+ spacing = "lg",
860
+ pattern,
861
+ patternOpacity,
862
+ patternClassName,
863
+ containerClassName,
864
+ containerMaxWidth = "xl",
865
+ ...props
866
+ }, ref) => {
867
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
868
+ return /* @__PURE__ */ jsxs(
869
+ "section",
870
+ {
871
+ ref,
872
+ id,
873
+ className: cn(
874
+ "relative",
875
+ pattern ? "overflow-hidden" : null,
876
+ backgroundStyles[background],
877
+ isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
878
+ className
879
+ ),
880
+ style,
881
+ ...props,
882
+ children: [
883
+ /* @__PURE__ */ jsx(
884
+ PatternBackground,
885
+ {
886
+ pattern,
887
+ opacity: effectivePatternOpacity,
888
+ className: patternClassName
889
+ }
890
+ ),
891
+ /* @__PURE__ */ jsxs(
892
+ Container,
893
+ {
894
+ maxWidth: containerMaxWidth,
895
+ className: cn("relative z-10", containerClassName),
896
+ children: [
897
+ (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
898
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
899
+ title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
900
+ ] }),
901
+ children
902
+ ]
903
+ }
904
+ )
905
+ ]
906
+ }
907
+ );
908
+ }
909
+ );
910
+ Section.displayName = "Section";
536
911
  function BannerSurveyIncentive({
537
912
  icon,
538
913
  iconName,
@@ -543,6 +918,7 @@ function BannerSurveyIncentive({
543
918
  onDismiss,
544
919
  dismissIcon,
545
920
  dismissAriaLabel,
921
+ background = "default",
546
922
  className,
547
923
  containerClassName,
548
924
  contentClassName,
@@ -614,7 +990,7 @@ function BannerSurveyIncentive({
614
990
  if (!isVisible) {
615
991
  return null;
616
992
  }
617
- return /* @__PURE__ */ jsx("div", { className: cn("bg-background border-b text-sm", className), children: /* @__PURE__ */ jsxs("div", { className: cn("flex md:items-center justify-between max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
993
+ return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("border-b text-sm", className), children: /* @__PURE__ */ jsxs("div", { className: cn("flex md:items-center justify-between max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
618
994
  /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", contentClassName), children: [
619
995
  iconContent,
620
996
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col md:flex-row gap-1", textClassName), children: [
@@ -61,6 +61,36 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
61
61
  }
62
62
  }
63
63
  }
64
+ function getTextColor(parentBg, variant = "default", options) {
65
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
66
+ if (isDark) {
67
+ switch (variant) {
68
+ case "default":
69
+ return "text-foreground";
70
+ case "muted":
71
+ return "text-foreground/80";
72
+ case "subtle":
73
+ return "text-foreground/60";
74
+ case "accent":
75
+ return "text-accent-foreground";
76
+ }
77
+ } else {
78
+ switch (variant) {
79
+ case "default":
80
+ return "text-foreground";
81
+ case "muted":
82
+ return "text-muted-foreground";
83
+ case "subtle":
84
+ return "text-muted-foreground/70";
85
+ case "accent":
86
+ return "text-primary";
87
+ }
88
+ }
89
+ }
90
+ function getAccentColor(parentBg, options) {
91
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
92
+ return isDark ? "text-accent-foreground" : "text-primary";
93
+ }
64
94
  function normalizePhoneNumber(input) {
65
95
  const trimmed = input.trim();
66
96
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1163,7 +1193,7 @@ function CommunityInitiatives({
1163
1193
  category.id
1164
1194
  )) })
1165
1195
  ] }),
1166
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: currentCategory?.description }) }),
1196
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted")), children: currentCategory?.description }) }),
1167
1197
  categories.map((category) => /* @__PURE__ */ jsxRuntime.jsx(
1168
1198
  TabsContent,
1169
1199
  {
@@ -1185,20 +1215,20 @@ function CommunityInitiatives({
1185
1215
  ),
1186
1216
  children: [
1187
1217
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-3", children: [
1188
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "rounded-md bg-primary/10 p-2", children: /* @__PURE__ */ jsxRuntime.jsx(
1218
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("rounded-md p-2", getNestedCardBg(background, "muted")), children: /* @__PURE__ */ jsxRuntime.jsx(
1189
1219
  DynamicIcon,
1190
1220
  {
1191
1221
  name: initiative.icon,
1192
1222
  size: 24,
1193
- className: "text-primary"
1223
+ className: cn(getAccentColor(background))
1194
1224
  }
1195
1225
  ) }),
1196
1226
  /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold", children: initiative.title })
1197
1227
  ] }),
1198
- /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-muted-foreground", children: initiative.description }),
1228
+ /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted")), children: initiative.description }),
1199
1229
  initiative.metrics && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-4 pt-2", children: initiative.metrics.map((metric, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
1200
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-2xl font-bold text-primary", children: metric.value }),
1201
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: metric.label })
1230
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-2xl font-bold", getAccentColor(background)), children: metric.value }),
1231
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-1 text-xs", getTextColor(background, "muted")), children: metric.label })
1202
1232
  ] }, i)) })
1203
1233
  ]
1204
1234
  }
@@ -1236,7 +1266,7 @@ function CommunityInitiatives({
1236
1266
  {
1237
1267
  name: initiative.icon,
1238
1268
  size: 64,
1239
- className: "mx-auto mb-4 text-muted-foreground/50"
1269
+ className: cn("mx-auto mb-4", getTextColor(background, "muted"), "opacity-50")
1240
1270
  }
1241
1271
  ),
1242
1272
  /* @__PURE__ */ jsxRuntime.jsxs(Badge, { variant: "secondary", className: "mx-auto", children: [
@@ -1291,7 +1321,9 @@ function CommunityInitiatives({
1291
1321
  "div",
1292
1322
  {
1293
1323
  className: cn(
1294
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1324
+ "inline-block rounded-lg px-3 py-1 text-sm",
1325
+ getNestedCardBg(background, "muted"),
1326
+ getAccentColor(background),
1295
1327
  badgeClassName
1296
1328
  ),
1297
1329
  children: badgeText
@@ -1307,7 +1339,7 @@ function CommunityInitiatives({
1307
1339
  children: heading
1308
1340
  }
1309
1341
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
1310
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
1342
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
1311
1343
  ]
1312
1344
  }
1313
1345
  ),
@@ -1322,7 +1354,8 @@ function CommunityInitiatives({
1322
1354
  "p",
1323
1355
  {
1324
1356
  className: cn(
1325
- "mx-auto mb-8 max-w-2xl text-muted-foreground",
1357
+ "mx-auto mb-8 max-w-2xl",
1358
+ getTextColor(background, "muted"),
1326
1359
  ctaDescriptionClassName
1327
1360
  ),
1328
1361
  children: ctaDescription
@@ -39,6 +39,36 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
39
39
  }
40
40
  }
41
41
  }
42
+ function getTextColor(parentBg, variant = "default", options) {
43
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
44
+ if (isDark) {
45
+ switch (variant) {
46
+ case "default":
47
+ return "text-foreground";
48
+ case "muted":
49
+ return "text-foreground/80";
50
+ case "subtle":
51
+ return "text-foreground/60";
52
+ case "accent":
53
+ return "text-accent-foreground";
54
+ }
55
+ } else {
56
+ switch (variant) {
57
+ case "default":
58
+ return "text-foreground";
59
+ case "muted":
60
+ return "text-muted-foreground";
61
+ case "subtle":
62
+ return "text-muted-foreground/70";
63
+ case "accent":
64
+ return "text-primary";
65
+ }
66
+ }
67
+ }
68
+ function getAccentColor(parentBg, options) {
69
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
70
+ return isDark ? "text-accent-foreground" : "text-primary";
71
+ }
42
72
  function normalizePhoneNumber(input) {
43
73
  const trimmed = input.trim();
44
74
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1141,7 +1171,7 @@ function CommunityInitiatives({
1141
1171
  category.id
1142
1172
  )) })
1143
1173
  ] }),
1144
- /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: currentCategory?.description }) }),
1174
+ /* @__PURE__ */ jsx("div", { className: "mx-auto max-w-2xl text-left md:text-center", children: /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted")), children: currentCategory?.description }) }),
1145
1175
  categories.map((category) => /* @__PURE__ */ jsx(
1146
1176
  TabsContent,
1147
1177
  {
@@ -1163,20 +1193,20 @@ function CommunityInitiatives({
1163
1193
  ),
1164
1194
  children: [
1165
1195
  /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
1166
- /* @__PURE__ */ jsx("div", { className: "rounded-md bg-primary/10 p-2", children: /* @__PURE__ */ jsx(
1196
+ /* @__PURE__ */ jsx("div", { className: cn("rounded-md p-2", getNestedCardBg(background, "muted")), children: /* @__PURE__ */ jsx(
1167
1197
  DynamicIcon,
1168
1198
  {
1169
1199
  name: initiative.icon,
1170
1200
  size: 24,
1171
- className: "text-primary"
1201
+ className: cn(getAccentColor(background))
1172
1202
  }
1173
1203
  ) }),
1174
1204
  /* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold", children: initiative.title })
1175
1205
  ] }),
1176
- /* @__PURE__ */ jsx("p", { className: "text-muted-foreground", children: initiative.description }),
1206
+ /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted")), children: initiative.description }),
1177
1207
  initiative.metrics && /* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-4 pt-2", children: initiative.metrics.map((metric, i) => /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
1178
- /* @__PURE__ */ jsx("div", { className: "text-2xl font-bold text-primary", children: metric.value }),
1179
- /* @__PURE__ */ jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: metric.label })
1208
+ /* @__PURE__ */ jsx("div", { className: cn("text-2xl font-bold", getAccentColor(background)), children: metric.value }),
1209
+ /* @__PURE__ */ jsx("div", { className: cn("mt-1 text-xs", getTextColor(background, "muted")), children: metric.label })
1180
1210
  ] }, i)) })
1181
1211
  ]
1182
1212
  }
@@ -1214,7 +1244,7 @@ function CommunityInitiatives({
1214
1244
  {
1215
1245
  name: initiative.icon,
1216
1246
  size: 64,
1217
- className: "mx-auto mb-4 text-muted-foreground/50"
1247
+ className: cn("mx-auto mb-4", getTextColor(background, "muted"), "opacity-50")
1218
1248
  }
1219
1249
  ),
1220
1250
  /* @__PURE__ */ jsxs(Badge, { variant: "secondary", className: "mx-auto", children: [
@@ -1269,7 +1299,9 @@ function CommunityInitiatives({
1269
1299
  "div",
1270
1300
  {
1271
1301
  className: cn(
1272
- "inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm text-primary",
1302
+ "inline-block rounded-lg px-3 py-1 text-sm",
1303
+ getNestedCardBg(background, "muted"),
1304
+ getAccentColor(background),
1273
1305
  badgeClassName
1274
1306
  ),
1275
1307
  children: badgeText
@@ -1285,7 +1317,7 @@ function CommunityInitiatives({
1285
1317
  children: heading
1286
1318
  }
1287
1319
  ) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
1288
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
1320
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
1289
1321
  ]
1290
1322
  }
1291
1323
  ),
@@ -1300,7 +1332,8 @@ function CommunityInitiatives({
1300
1332
  "p",
1301
1333
  {
1302
1334
  className: cn(
1303
- "mx-auto mb-8 max-w-2xl text-muted-foreground",
1335
+ "mx-auto mb-8 max-w-2xl",
1336
+ getTextColor(background, "muted"),
1304
1337
  ctaDescriptionClassName
1305
1338
  ),
1306
1339
  children: ctaDescription