@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,5 +1,6 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
+ import React__default from 'react';
3
4
  import { clsx } from 'clsx';
4
5
  import { twMerge } from 'tailwind-merge';
5
6
  import { cva } from 'class-variance-authority';
@@ -532,6 +533,381 @@ function processSvgForCurrentColor(svg) {
532
533
  );
533
534
  return processed;
534
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";
535
911
  function ContactFloatingBanner({
536
912
  badgeText,
537
913
  message,
@@ -544,7 +920,8 @@ function ContactFloatingBanner({
544
920
  bannerClassName,
545
921
  bannerContentClassName,
546
922
  messageClassName,
547
- badgeClassName
923
+ badgeClassName,
924
+ background = "default"
548
925
  }) {
549
926
  const actionsContent = React.useMemo(() => {
550
927
  if (actionsSlot) return actionsSlot;
@@ -569,7 +946,7 @@ function ContactFloatingBanner({
569
946
  }
570
947
  return null;
571
948
  }, [actionsSlot, actions]);
572
- return /* @__PURE__ */ jsx("div", { className: cn("container relative mx-auto py-24 lg:py-32", className), children: /* @__PURE__ */ jsx("div", { className: cn("pointer-events-none fixed inset-x-0 bottom-0 sm:flex sm:justify-center sm:px-6 sm:pb-5 lg:px-8", bannerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("pointer-events-auto flex items-center justify-between gap-x-6 bg-primary px-6 py-2.5 sm:rounded-xl sm:py-3 sm:pl-4 sm:pr-3.5", bannerContentClassName), children: [
949
+ return /* @__PURE__ */ jsx(Section, { background, spacing: "lg", className, children: /* @__PURE__ */ jsx("div", { className: cn("pointer-events-none fixed inset-x-0 bottom-0 sm:flex sm:justify-center sm:px-6 sm:pb-5 lg:px-8", bannerClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("pointer-events-auto flex items-center justify-between gap-x-6 bg-primary px-6 py-2.5 sm:rounded-xl sm:py-3 sm:pl-4 sm:pr-3.5", bannerContentClassName), children: [
573
950
  /* @__PURE__ */ jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", messageClassName), children: [
574
951
  /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", badgeClassName), children: badgeText }),
575
952
  /* @__PURE__ */ jsx(
@@ -61,6 +61,32 @@ function getNestedCardTextColor(parentBg, options) {
61
61
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
62
62
  return isDark ? "text-foreground" : "";
63
63
  }
64
+ function getTextColor(parentBg, variant = "default", options) {
65
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
66
+ if (isDark) {
67
+ switch (variant) {
68
+ case "default":
69
+ return "text-foreground";
70
+ case "muted":
71
+ return "text-foreground/80";
72
+ case "subtle":
73
+ return "text-foreground/60";
74
+ case "accent":
75
+ return "text-accent-foreground";
76
+ }
77
+ } else {
78
+ switch (variant) {
79
+ case "default":
80
+ return "text-foreground";
81
+ case "muted":
82
+ return "text-muted-foreground";
83
+ case "subtle":
84
+ return "text-muted-foreground/70";
85
+ case "accent":
86
+ return "text-primary";
87
+ }
88
+ }
89
+ }
64
90
  function normalizePhoneNumber(input) {
65
91
  const trimmed = input.trim();
66
92
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -934,7 +960,8 @@ function CtaAccentBackground({
934
960
  "p",
935
961
  {
936
962
  className: cn(
937
- "mb-8 text-lg font-medium text-muted-foreground lg:text-xl",
963
+ "mb-8 text-lg font-medium lg:text-xl",
964
+ getTextColor(background, "muted"),
938
965
  descriptionClassName
939
966
  ),
940
967
  children: description
@@ -40,6 +40,32 @@ function getNestedCardTextColor(parentBg, options) {
40
40
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
41
41
  return isDark ? "text-foreground" : "";
42
42
  }
43
+ function getTextColor(parentBg, variant = "default", options) {
44
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
45
+ if (isDark) {
46
+ switch (variant) {
47
+ case "default":
48
+ return "text-foreground";
49
+ case "muted":
50
+ return "text-foreground/80";
51
+ case "subtle":
52
+ return "text-foreground/60";
53
+ case "accent":
54
+ return "text-accent-foreground";
55
+ }
56
+ } else {
57
+ switch (variant) {
58
+ case "default":
59
+ return "text-foreground";
60
+ case "muted":
61
+ return "text-muted-foreground";
62
+ case "subtle":
63
+ return "text-muted-foreground/70";
64
+ case "accent":
65
+ return "text-primary";
66
+ }
67
+ }
68
+ }
43
69
  function normalizePhoneNumber(input) {
44
70
  const trimmed = input.trim();
45
71
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -913,7 +939,8 @@ function CtaAccentBackground({
913
939
  "p",
914
940
  {
915
941
  className: cn(
916
- "mb-8 text-lg font-medium text-muted-foreground lg:text-xl",
942
+ "mb-8 text-lg font-medium lg:text-xl",
943
+ getTextColor(background, "muted"),
917
944
  descriptionClassName
918
945
  ),
919
946
  children: description
@@ -66,6 +66,32 @@ function getNestedCardTextColor(parentBg, options) {
66
66
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
67
67
  return isDark ? "text-foreground" : "";
68
68
  }
69
+ function getTextColor(parentBg, variant = "default", options) {
70
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
71
+ if (isDark) {
72
+ switch (variant) {
73
+ case "default":
74
+ return "text-foreground";
75
+ case "muted":
76
+ return "text-foreground/80";
77
+ case "subtle":
78
+ return "text-foreground/60";
79
+ case "accent":
80
+ return "text-accent-foreground";
81
+ }
82
+ } else {
83
+ switch (variant) {
84
+ case "default":
85
+ return "text-foreground";
86
+ case "muted":
87
+ return "text-muted-foreground";
88
+ case "subtle":
89
+ return "text-muted-foreground/70";
90
+ case "accent":
91
+ return "text-primary";
92
+ }
93
+ }
94
+ }
69
95
  function normalizePhoneNumber(input) {
70
96
  const trimmed = input.trim();
71
97
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1218,7 +1244,8 @@ function CtaAppDownloadNewsletter({
1218
1244
  "p",
1219
1245
  {
1220
1246
  className: cn(
1221
- "mb-8 text-muted-foreground",
1247
+ "mb-8",
1248
+ getTextColor(background, "muted"),
1222
1249
  appDescriptionClassName
1223
1250
  ),
1224
1251
  children: appDescription
@@ -1262,7 +1289,8 @@ function CtaAppDownloadNewsletter({
1262
1289
  "p",
1263
1290
  {
1264
1291
  className: cn(
1265
- "mb-8 text-muted-foreground",
1292
+ "mb-8",
1293
+ getTextColor(background, "muted"),
1266
1294
  newsletterDescriptionClassName
1267
1295
  ),
1268
1296
  children: newsletterDescription
@@ -45,6 +45,32 @@ function getNestedCardTextColor(parentBg, options) {
45
45
  const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
46
46
  return isDark ? "text-foreground" : "";
47
47
  }
48
+ function getTextColor(parentBg, variant = "default", options) {
49
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
50
+ if (isDark) {
51
+ switch (variant) {
52
+ case "default":
53
+ return "text-foreground";
54
+ case "muted":
55
+ return "text-foreground/80";
56
+ case "subtle":
57
+ return "text-foreground/60";
58
+ case "accent":
59
+ return "text-accent-foreground";
60
+ }
61
+ } else {
62
+ switch (variant) {
63
+ case "default":
64
+ return "text-foreground";
65
+ case "muted":
66
+ return "text-muted-foreground";
67
+ case "subtle":
68
+ return "text-muted-foreground/70";
69
+ case "accent":
70
+ return "text-primary";
71
+ }
72
+ }
73
+ }
48
74
  function normalizePhoneNumber(input) {
49
75
  const trimmed = input.trim();
50
76
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -1197,7 +1223,8 @@ function CtaAppDownloadNewsletter({
1197
1223
  "p",
1198
1224
  {
1199
1225
  className: cn(
1200
- "mb-8 text-muted-foreground",
1226
+ "mb-8",
1227
+ getTextColor(background, "muted"),
1201
1228
  appDescriptionClassName
1202
1229
  ),
1203
1230
  children: appDescription
@@ -1241,7 +1268,8 @@ function CtaAppDownloadNewsletter({
1241
1268
  "p",
1242
1269
  {
1243
1270
  className: cn(
1244
- "mb-8 text-muted-foreground",
1271
+ "mb-8",
1272
+ getTextColor(background, "muted"),
1245
1273
  newsletterDescriptionClassName
1246
1274
  ),
1247
1275
  children: newsletterDescription
@@ -31,6 +31,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
31
31
  function cn(...inputs) {
32
32
  return tailwindMerge.twMerge(clsx.clsx(inputs));
33
33
  }
34
+ function getTextColor(parentBg, variant = "default", options) {
35
+ const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
36
+ if (isDark) {
37
+ switch (variant) {
38
+ case "default":
39
+ return "text-foreground";
40
+ case "muted":
41
+ return "text-foreground/80";
42
+ case "subtle":
43
+ return "text-foreground/60";
44
+ case "accent":
45
+ return "text-accent-foreground";
46
+ }
47
+ } else {
48
+ switch (variant) {
49
+ case "default":
50
+ return "text-foreground";
51
+ case "muted":
52
+ return "text-muted-foreground";
53
+ case "subtle":
54
+ return "text-muted-foreground/70";
55
+ case "accent":
56
+ return "text-primary";
57
+ }
58
+ }
59
+ }
34
60
  function Card({ className, ...props }) {
35
61
  return /* @__PURE__ */ jsxRuntime.jsx(
36
62
  "div",
@@ -1027,7 +1053,7 @@ function CtaDocumentationLinks({
1027
1053
  )),
1028
1054
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
1029
1055
  link.title && /* @__PURE__ */ jsxRuntime.jsx("h5", { className: "mb-2 leading-4 font-medium", children: link.title }),
1030
- link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm text-muted-foreground", children: link.description })
1056
+ link.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm", getTextColor(background, "muted")), children: link.description })
1031
1057
  ] })
1032
1058
  ] }),
1033
1059
  /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 24 })
@@ -1062,7 +1088,7 @@ function CtaDocumentationLinks({
1062
1088
  children: heading
1063
1089
  }
1064
1090
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-2", headingClassName), children: heading })),
1065
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1091
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1066
1092
  actionsContent
1067
1093
  ] }),
1068
1094
  linksContent