@opensite/ui 0.5.3 → 0.5.5

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 (585) hide show
  1. package/dist/about-company-profile.cjs +11 -11
  2. package/dist/about-company-profile.js +12 -11
  3. package/dist/about-developer-profile.cjs +11 -11
  4. package/dist/about-developer-profile.js +12 -11
  5. package/dist/about-developer-story.cjs +11 -11
  6. package/dist/about-developer-story.js +12 -11
  7. package/dist/about-interactive-tabs.cjs +10 -5
  8. package/dist/about-interactive-tabs.js +12 -6
  9. package/dist/about-location-info-hero.cjs +14 -14
  10. package/dist/about-location-info-hero.js +15 -15
  11. package/dist/about-minimal-story.cjs +5 -4
  12. package/dist/about-minimal-story.js +6 -5
  13. package/dist/about-mission-dual-image.cjs +5 -5
  14. package/dist/about-mission-dual-image.js +6 -5
  15. package/dist/about-mission-features.cjs +5 -4
  16. package/dist/about-mission-features.js +6 -5
  17. package/dist/about-network-spotlight.cjs +12 -134
  18. package/dist/about-network-spotlight.js +13 -135
  19. package/dist/about-startup-team.cjs +10 -12
  20. package/dist/about-startup-team.js +11 -12
  21. package/dist/about-stats-showcase.cjs +17 -16
  22. package/dist/about-stats-showcase.js +17 -16
  23. package/dist/about-stats-sidebar.cjs +8 -7
  24. package/dist/about-stats-sidebar.js +8 -7
  25. package/dist/about-story-expertise.cjs +17 -139
  26. package/dist/about-story-expertise.js +18 -140
  27. package/dist/about-story-gallery.cjs +6 -9
  28. package/dist/about-story-gallery.js +6 -9
  29. package/dist/about-story-hero.cjs +6 -9
  30. package/dist/about-story-hero.js +7 -10
  31. package/dist/about-streamline-team.cjs +10 -10
  32. package/dist/about-streamline-team.js +11 -10
  33. package/dist/about-vision-gallery.cjs +33 -40
  34. package/dist/about-vision-gallery.d.cts +44 -24
  35. package/dist/about-vision-gallery.d.ts +44 -24
  36. package/dist/about-vision-gallery.js +34 -40
  37. package/dist/alternating-blocks.cjs +5 -5
  38. package/dist/alternating-blocks.js +5 -5
  39. package/dist/article-breadcrumb-social.cjs +35 -41
  40. package/dist/article-breadcrumb-social.d.cts +0 -2
  41. package/dist/article-breadcrumb-social.d.ts +0 -2
  42. package/dist/article-breadcrumb-social.js +35 -41
  43. package/dist/article-chapters-author.cjs +80 -80
  44. package/dist/article-chapters-author.js +79 -79
  45. package/dist/article-compact-toc.cjs +31 -30
  46. package/dist/article-compact-toc.js +30 -29
  47. package/dist/article-hero-prose.cjs +9 -9
  48. package/dist/article-hero-prose.d.cts +5 -5
  49. package/dist/article-hero-prose.d.ts +5 -5
  50. package/dist/article-hero-prose.js +9 -9
  51. package/dist/article-sidebar-sticky.cjs +12 -11
  52. package/dist/article-sidebar-sticky.js +12 -11
  53. package/dist/article-split-animated.cjs +23 -142
  54. package/dist/article-split-animated.js +23 -142
  55. package/dist/article-toc-sidebar.cjs +31 -31
  56. package/dist/article-toc-sidebar.js +30 -30
  57. package/dist/banner-announcement-dismissible.cjs +37 -17
  58. package/dist/banner-announcement-dismissible.d.cts +0 -2
  59. package/dist/banner-announcement-dismissible.d.ts +0 -2
  60. package/dist/banner-announcement-dismissible.js +38 -18
  61. package/dist/banner-countdown-sale.cjs +19 -11
  62. package/dist/banner-countdown-sale.d.cts +0 -1
  63. package/dist/banner-countdown-sale.d.ts +0 -1
  64. package/dist/banner-countdown-sale.js +21 -13
  65. package/dist/banner-delivery-countdown.cjs +29 -24
  66. package/dist/banner-delivery-countdown.d.cts +0 -2
  67. package/dist/banner-delivery-countdown.d.ts +0 -2
  68. package/dist/banner-delivery-countdown.js +30 -25
  69. package/dist/banner-event-promo.cjs +28 -13
  70. package/dist/banner-event-promo.js +29 -13
  71. package/dist/banner-floating-offer.cjs +42 -24
  72. package/dist/banner-floating-offer.d.cts +0 -3
  73. package/dist/banner-floating-offer.d.ts +0 -3
  74. package/dist/banner-floating-offer.js +43 -25
  75. package/dist/banner-gdpr-rights.cjs +36 -19
  76. package/dist/banner-gdpr-rights.d.cts +3 -5
  77. package/dist/banner-gdpr-rights.d.ts +3 -5
  78. package/dist/banner-gdpr-rights.js +37 -20
  79. package/dist/banner-privacy-notice.cjs +34 -17
  80. package/dist/banner-privacy-notice.d.cts +0 -2
  81. package/dist/banner-privacy-notice.d.ts +0 -2
  82. package/dist/banner-privacy-notice.js +35 -18
  83. package/dist/banner-promo-cta.cjs +27 -12
  84. package/dist/banner-promo-cta.js +28 -12
  85. package/dist/banner-social-follow.cjs +37 -17
  86. package/dist/banner-social-follow.d.cts +0 -2
  87. package/dist/banner-social-follow.d.ts +0 -2
  88. package/dist/banner-social-follow.js +38 -18
  89. package/dist/banner-survey-incentive.cjs +34 -17
  90. package/dist/banner-survey-incentive.d.cts +0 -2
  91. package/dist/banner-survey-incentive.d.ts +0 -2
  92. package/dist/banner-survey-incentive.js +35 -18
  93. package/dist/blog-cards-read-time.cjs +408 -24
  94. package/dist/blog-cards-read-time.d.cts +20 -1
  95. package/dist/blog-cards-read-time.d.ts +20 -1
  96. package/dist/blog-cards-read-time.js +409 -24
  97. package/dist/blog-cards-tagline-cta.cjs +406 -19
  98. package/dist/blog-cards-tagline-cta.d.cts +20 -1
  99. package/dist/blog-cards-tagline-cta.d.ts +20 -1
  100. package/dist/blog-cards-tagline-cta.js +407 -19
  101. package/dist/blog-category-overlay.cjs +407 -20
  102. package/dist/blog-category-overlay.d.cts +27 -8
  103. package/dist/blog-category-overlay.d.ts +27 -8
  104. package/dist/blog-category-overlay.js +408 -20
  105. package/dist/blog-featured-popular.cjs +406 -19
  106. package/dist/blog-featured-popular.d.cts +20 -1
  107. package/dist/blog-featured-popular.d.ts +20 -1
  108. package/dist/blog-featured-popular.js +407 -19
  109. package/dist/blog-filtered-results.cjs +457 -71
  110. package/dist/blog-filtered-results.d.cts +38 -19
  111. package/dist/blog-filtered-results.d.ts +38 -19
  112. package/dist/blog-filtered-results.js +455 -69
  113. package/dist/blog-grid-author-cards.cjs +408 -20
  114. package/dist/blog-grid-author-cards.d.cts +28 -9
  115. package/dist/blog-grid-author-cards.d.ts +28 -9
  116. package/dist/blog-grid-author-cards.js +409 -20
  117. package/dist/blog-grid-nine-posts.cjs +403 -16
  118. package/dist/blog-grid-nine-posts.d.cts +24 -5
  119. package/dist/blog-grid-nine-posts.d.ts +24 -5
  120. package/dist/blog-grid-nine-posts.js +404 -16
  121. package/dist/blog-horizontal-cards.cjs +407 -20
  122. package/dist/blog-horizontal-cards.d.cts +21 -2
  123. package/dist/blog-horizontal-cards.d.ts +21 -2
  124. package/dist/blog-horizontal-cards.js +408 -20
  125. package/dist/blog-horizontal-timeline.cjs +401 -14
  126. package/dist/blog-horizontal-timeline.d.cts +28 -9
  127. package/dist/blog-horizontal-timeline.d.ts +28 -9
  128. package/dist/blog-horizontal-timeline.js +402 -14
  129. package/dist/blog-masonry-featured.cjs +405 -18
  130. package/dist/blog-masonry-featured.d.cts +28 -9
  131. package/dist/blog-masonry-featured.d.ts +28 -9
  132. package/dist/blog-masonry-featured.js +406 -18
  133. package/dist/blog-related-articles.cjs +401 -14
  134. package/dist/blog-related-articles.d.cts +20 -1
  135. package/dist/blog-related-articles.d.ts +20 -1
  136. package/dist/blog-related-articles.js +402 -14
  137. package/dist/blog-tech-insights.cjs +410 -23
  138. package/dist/blog-tech-insights.d.cts +31 -12
  139. package/dist/blog-tech-insights.d.ts +31 -12
  140. package/dist/blog-tech-insights.js +411 -23
  141. package/dist/case-studies-featured-border.cjs +423 -14
  142. package/dist/case-studies-featured-border.d.cts +20 -1
  143. package/dist/case-studies-featured-border.d.ts +20 -1
  144. package/dist/case-studies-featured-border.js +424 -14
  145. package/dist/case-studies-image-grid.cjs +404 -7
  146. package/dist/case-studies-image-grid.d.cts +20 -1
  147. package/dist/case-studies-image-grid.d.ts +20 -1
  148. package/dist/case-studies-image-grid.js +405 -7
  149. package/dist/case-studies-stats-card.cjs +416 -29
  150. package/dist/case-studies-stats-card.d.cts +20 -1
  151. package/dist/case-studies-stats-card.d.ts +20 -1
  152. package/dist/case-studies-stats-card.js +417 -29
  153. package/dist/case-studies-testimonial-stats.cjs +409 -10
  154. package/dist/case-studies-testimonial-stats.d.cts +20 -1
  155. package/dist/case-studies-testimonial-stats.d.ts +20 -1
  156. package/dist/case-studies-testimonial-stats.js +409 -10
  157. package/dist/case-study-prose-sidebar.cjs +414 -23
  158. package/dist/case-study-prose-sidebar.d.cts +34 -15
  159. package/dist/case-study-prose-sidebar.d.ts +34 -15
  160. package/dist/case-study-prose-sidebar.js +415 -23
  161. package/dist/case-study-stats-metrics.cjs +443 -43
  162. package/dist/case-study-stats-metrics.d.cts +39 -20
  163. package/dist/case-study-stats-metrics.d.ts +39 -20
  164. package/dist/case-study-stats-metrics.js +444 -43
  165. package/dist/case-study-toc-social-sidebar.cjs +436 -46
  166. package/dist/case-study-toc-social-sidebar.d.cts +36 -17
  167. package/dist/case-study-toc-social-sidebar.d.ts +36 -17
  168. package/dist/case-study-toc-social-sidebar.js +437 -47
  169. package/dist/comparison-ai-models.cjs +498 -77
  170. package/dist/comparison-ai-models.d.cts +25 -7
  171. package/dist/comparison-ai-models.d.ts +25 -7
  172. package/dist/comparison-ai-models.js +497 -76
  173. package/dist/comparison-feature-cards.cjs +492 -80
  174. package/dist/comparison-feature-cards.d.cts +25 -6
  175. package/dist/comparison-feature-cards.d.ts +25 -6
  176. package/dist/comparison-feature-cards.js +492 -79
  177. package/dist/comparison-feature-grid.cjs +475 -47
  178. package/dist/comparison-feature-grid.d.cts +24 -1
  179. package/dist/comparison-feature-grid.d.ts +24 -1
  180. package/dist/comparison-feature-grid.js +476 -47
  181. package/dist/comparison-grid-badges.cjs +422 -25
  182. package/dist/comparison-grid-badges.d.cts +26 -3
  183. package/dist/comparison-grid-badges.d.ts +26 -3
  184. package/dist/comparison-grid-badges.js +423 -25
  185. package/dist/comparison-image-cards.cjs +450 -36
  186. package/dist/comparison-image-cards.d.cts +23 -4
  187. package/dist/comparison-image-cards.d.ts +23 -4
  188. package/dist/comparison-image-cards.js +451 -36
  189. package/dist/comparison-legacy-modern.cjs +442 -41
  190. package/dist/comparison-legacy-modern.d.cts +29 -6
  191. package/dist/comparison-legacy-modern.d.ts +29 -6
  192. package/dist/comparison-legacy-modern.js +443 -41
  193. package/dist/comparison-metrics-rows.cjs +478 -47
  194. package/dist/comparison-metrics-rows.d.cts +20 -1
  195. package/dist/comparison-metrics-rows.d.ts +20 -1
  196. package/dist/comparison-metrics-rows.js +479 -47
  197. package/dist/comparison-table-tabs.cjs +423 -13
  198. package/dist/comparison-table-tabs.d.cts +25 -2
  199. package/dist/comparison-table-tabs.d.ts +25 -2
  200. package/dist/comparison-table-tabs.js +424 -14
  201. package/dist/comparison-table-tooltips.cjs +443 -37
  202. package/dist/comparison-table-tooltips.d.cts +24 -1
  203. package/dist/comparison-table-tooltips.d.ts +24 -1
  204. package/dist/comparison-table-tooltips.js +443 -37
  205. package/dist/comparison-table-two-column.cjs +463 -53
  206. package/dist/comparison-table-two-column.d.cts +24 -6
  207. package/dist/comparison-table-two-column.d.ts +24 -6
  208. package/dist/comparison-table-two-column.js +464 -53
  209. package/dist/components.cjs +8 -8
  210. package/dist/components.js +9 -9
  211. package/dist/contact-callback.cjs +577 -190
  212. package/dist/contact-callback.d.cts +35 -1
  213. package/dist/contact-callback.d.ts +35 -1
  214. package/dist/contact-callback.js +578 -190
  215. package/dist/contact-card.cjs +502 -115
  216. package/dist/contact-card.d.cts +20 -1
  217. package/dist/contact-card.d.ts +20 -1
  218. package/dist/contact-card.js +503 -115
  219. package/dist/contact-careers.cjs +628 -241
  220. package/dist/contact-careers.d.cts +20 -2
  221. package/dist/contact-careers.d.ts +20 -2
  222. package/dist/contact-careers.js +629 -242
  223. package/dist/contact-catering.cjs +664 -277
  224. package/dist/contact-catering.d.cts +20 -1
  225. package/dist/contact-catering.d.ts +20 -1
  226. package/dist/contact-catering.js +665 -277
  227. package/dist/contact-consultation.cjs +567 -180
  228. package/dist/contact-consultation.d.cts +20 -2
  229. package/dist/contact-consultation.d.ts +20 -2
  230. package/dist/contact-consultation.js +568 -180
  231. package/dist/contact-dark.cjs +486 -99
  232. package/dist/contact-dark.d.cts +20 -2
  233. package/dist/contact-dark.d.ts +20 -2
  234. package/dist/contact-dark.js +487 -99
  235. package/dist/contact-demo.cjs +558 -171
  236. package/dist/contact-demo.d.cts +20 -2
  237. package/dist/contact-demo.d.ts +20 -2
  238. package/dist/contact-demo.js +559 -171
  239. package/dist/contact-emergency.cjs +571 -184
  240. package/dist/contact-emergency.d.cts +20 -2
  241. package/dist/contact-emergency.d.ts +20 -2
  242. package/dist/contact-emergency.js +572 -184
  243. package/dist/contact-event.cjs +489 -102
  244. package/dist/contact-event.d.cts +20 -2
  245. package/dist/contact-event.d.ts +20 -2
  246. package/dist/contact-event.js +490 -102
  247. package/dist/contact-faq.cjs +478 -91
  248. package/dist/contact-faq.d.cts +20 -2
  249. package/dist/contact-faq.d.ts +20 -2
  250. package/dist/contact-faq.js +479 -91
  251. package/dist/contact-feedback.cjs +450 -63
  252. package/dist/contact-feedback.d.cts +20 -2
  253. package/dist/contact-feedback.d.ts +20 -2
  254. package/dist/contact-feedback.js +451 -63
  255. package/dist/contact-fitness.cjs +489 -102
  256. package/dist/contact-fitness.d.cts +20 -2
  257. package/dist/contact-fitness.d.ts +20 -2
  258. package/dist/contact-fitness.js +490 -102
  259. package/dist/contact-floating-banner.cjs +5 -5
  260. package/dist/contact-floating-banner.js +5 -5
  261. package/dist/contact-guest.cjs +489 -102
  262. package/dist/contact-guest.d.cts +20 -2
  263. package/dist/contact-guest.d.ts +20 -2
  264. package/dist/contact-guest.js +490 -102
  265. package/dist/contact-image.cjs +489 -102
  266. package/dist/contact-image.d.cts +20 -2
  267. package/dist/contact-image.d.ts +20 -2
  268. package/dist/contact-image.js +490 -102
  269. package/dist/contact-insurance.cjs +489 -102
  270. package/dist/contact-insurance.d.cts +20 -2
  271. package/dist/contact-insurance.d.ts +20 -2
  272. package/dist/contact-insurance.js +490 -102
  273. package/dist/contact-interview.cjs +489 -102
  274. package/dist/contact-interview.d.cts +20 -2
  275. package/dist/contact-interview.d.ts +20 -2
  276. package/dist/contact-interview.js +490 -102
  277. package/dist/contact-locations.cjs +489 -102
  278. package/dist/contact-locations.d.cts +20 -2
  279. package/dist/contact-locations.d.ts +20 -2
  280. package/dist/contact-locations.js +490 -102
  281. package/dist/contact-maintenance.cjs +489 -102
  282. package/dist/contact-maintenance.d.cts +20 -2
  283. package/dist/contact-maintenance.d.ts +20 -2
  284. package/dist/contact-maintenance.js +490 -102
  285. package/dist/contact-map.cjs +489 -102
  286. package/dist/contact-map.d.cts +20 -2
  287. package/dist/contact-map.d.ts +20 -2
  288. package/dist/contact-map.js +490 -102
  289. package/dist/contact-minimal.cjs +466 -79
  290. package/dist/contact-minimal.d.cts +32 -1
  291. package/dist/contact-minimal.d.ts +32 -1
  292. package/dist/contact-minimal.js +467 -79
  293. package/dist/contact-moving.cjs +489 -102
  294. package/dist/contact-moving.d.cts +20 -2
  295. package/dist/contact-moving.d.ts +20 -2
  296. package/dist/contact-moving.js +490 -102
  297. package/dist/contact-multistep.cjs +489 -102
  298. package/dist/contact-multistep.d.cts +20 -2
  299. package/dist/contact-multistep.d.ts +20 -2
  300. package/dist/contact-multistep.js +490 -102
  301. package/dist/contact-partnership.cjs +489 -102
  302. package/dist/contact-partnership.d.cts +20 -2
  303. package/dist/contact-partnership.d.ts +20 -2
  304. package/dist/contact-partnership.js +490 -102
  305. package/dist/contact-photography.cjs +489 -102
  306. package/dist/contact-photography.d.cts +20 -2
  307. package/dist/contact-photography.d.ts +20 -2
  308. package/dist/contact-photography.js +490 -102
  309. package/dist/contact-press.cjs +489 -102
  310. package/dist/contact-press.d.cts +20 -2
  311. package/dist/contact-press.d.ts +20 -2
  312. package/dist/contact-press.js +490 -102
  313. package/dist/contact-quote.cjs +489 -102
  314. package/dist/contact-quote.d.cts +20 -2
  315. package/dist/contact-quote.d.ts +20 -2
  316. package/dist/contact-quote.js +490 -102
  317. package/dist/contact-referral.cjs +489 -102
  318. package/dist/contact-referral.d.cts +20 -2
  319. package/dist/contact-referral.d.ts +20 -2
  320. package/dist/contact-referral.js +490 -102
  321. package/dist/contact-report.cjs +489 -102
  322. package/dist/contact-report.d.cts +20 -2
  323. package/dist/contact-report.d.ts +20 -2
  324. package/dist/contact-report.js +490 -102
  325. package/dist/contact-reservation.cjs +489 -102
  326. package/dist/contact-reservation.d.cts +20 -2
  327. package/dist/contact-reservation.d.ts +20 -2
  328. package/dist/contact-reservation.js +490 -102
  329. package/dist/contact-retreat.cjs +489 -102
  330. package/dist/contact-retreat.d.cts +20 -2
  331. package/dist/contact-retreat.d.ts +20 -2
  332. package/dist/contact-retreat.js +490 -102
  333. package/dist/contact-rsvp.cjs +489 -102
  334. package/dist/contact-rsvp.d.cts +20 -2
  335. package/dist/contact-rsvp.d.ts +20 -2
  336. package/dist/contact-rsvp.js +490 -102
  337. package/dist/contact-sales.cjs +489 -102
  338. package/dist/contact-sales.d.cts +20 -1
  339. package/dist/contact-sales.d.ts +20 -1
  340. package/dist/contact-sales.js +490 -102
  341. package/dist/contact-schedule.cjs +489 -102
  342. package/dist/contact-schedule.d.cts +20 -2
  343. package/dist/contact-schedule.d.ts +20 -2
  344. package/dist/contact-schedule.js +490 -102
  345. package/dist/contact-sponsorship.cjs +489 -102
  346. package/dist/contact-sponsorship.d.cts +20 -2
  347. package/dist/contact-sponsorship.d.ts +20 -2
  348. package/dist/contact-sponsorship.js +490 -102
  349. package/dist/contact-support.cjs +463 -76
  350. package/dist/contact-support.d.cts +20 -2
  351. package/dist/contact-support.d.ts +20 -2
  352. package/dist/contact-support.js +464 -76
  353. package/dist/contact-tenant.cjs +489 -102
  354. package/dist/contact-tenant.d.cts +20 -2
  355. package/dist/contact-tenant.d.ts +20 -2
  356. package/dist/contact-tenant.js +490 -102
  357. package/dist/contact-vendor.cjs +489 -102
  358. package/dist/contact-vendor.d.cts +20 -2
  359. package/dist/contact-vendor.d.ts +20 -2
  360. package/dist/contact-vendor.js +490 -102
  361. package/dist/contact-volunteer.cjs +489 -102
  362. package/dist/contact-volunteer.d.cts +20 -2
  363. package/dist/contact-volunteer.d.ts +20 -2
  364. package/dist/contact-volunteer.js +490 -102
  365. package/dist/contact-warranty.cjs +489 -102
  366. package/dist/contact-warranty.d.cts +20 -2
  367. package/dist/contact-warranty.d.ts +20 -2
  368. package/dist/contact-warranty.js +490 -102
  369. package/dist/contact-wedding.cjs +489 -102
  370. package/dist/contact-wedding.d.cts +20 -2
  371. package/dist/contact-wedding.d.ts +20 -2
  372. package/dist/contact-wedding.js +490 -102
  373. package/dist/cta-accent-background.cjs +11 -11
  374. package/dist/cta-accent-background.js +12 -12
  375. package/dist/cta-app-download-newsletter.cjs +16 -135
  376. package/dist/cta-app-download-newsletter.js +17 -136
  377. package/dist/cta-background-icon-badge.cjs +12 -131
  378. package/dist/cta-background-icon-badge.js +13 -132
  379. package/dist/cta-case-study-testimonial.cjs +31 -154
  380. package/dist/cta-case-study-testimonial.js +32 -155
  381. package/dist/cta-documentation-links.cjs +15 -15
  382. package/dist/cta-documentation-links.js +16 -16
  383. package/dist/cta-enterprise-dark-features.cjs +21 -21
  384. package/dist/cta-enterprise-dark-features.js +22 -22
  385. package/dist/cta-enterprise-split.cjs +14 -14
  386. package/dist/cta-enterprise-split.js +15 -15
  387. package/dist/cta-feature-cards-grid.cjs +16 -16
  388. package/dist/cta-feature-cards-grid.js +17 -17
  389. package/dist/cta-feature-checklist.cjs +14 -14
  390. package/dist/cta-feature-checklist.js +15 -15
  391. package/dist/cta-feature-list.cjs +16 -135
  392. package/dist/cta-feature-list.js +17 -136
  393. package/dist/cta-fullwidth-background.cjs +14 -133
  394. package/dist/cta-fullwidth-background.js +15 -134
  395. package/dist/cta-gradient-logos-floating.cjs +17 -17
  396. package/dist/cta-gradient-logos-floating.js +18 -18
  397. package/dist/cta-gradient-stats-hero.cjs +16 -16
  398. package/dist/cta-gradient-stats-hero.js +17 -17
  399. package/dist/cta-hero-feature-cards.cjs +36 -136
  400. package/dist/cta-hero-feature-cards.js +37 -137
  401. package/dist/cta-image-overlay-arrow.cjs +12 -131
  402. package/dist/cta-image-overlay-arrow.js +13 -132
  403. package/dist/cta-image-overlay-centered.cjs +12 -131
  404. package/dist/cta-image-overlay-centered.js +13 -132
  405. package/dist/cta-minimal-separator.cjs +8 -8
  406. package/dist/cta-minimal-separator.js +9 -9
  407. package/dist/cta-newsletter-features.cjs +14 -14
  408. package/dist/cta-newsletter-features.js +15 -15
  409. package/dist/cta-pattern-background.cjs +11 -11
  410. package/dist/cta-pattern-background.js +12 -12
  411. package/dist/cta-platform-demo.cjs +16 -139
  412. package/dist/cta-platform-demo.js +17 -140
  413. package/dist/cta-simple-centered.cjs +11 -11
  414. package/dist/cta-simple-centered.js +12 -12
  415. package/dist/cta-split-gradient-image.cjs +14 -133
  416. package/dist/cta-split-gradient-image.js +15 -134
  417. package/dist/cta-split-image-logos.cjs +17 -136
  418. package/dist/cta-split-image-logos.js +18 -137
  419. package/dist/cta-split-image.cjs +60 -174
  420. package/dist/cta-split-image.js +61 -175
  421. package/dist/cta-stacked-cards.cjs +11 -11
  422. package/dist/cta-stacked-cards.js +12 -12
  423. package/dist/cta-video-background-hero.cjs +16 -100
  424. package/dist/cta-video-background-hero.js +17 -101
  425. package/dist/cta-workflow-tabs.cjs +18 -137
  426. package/dist/cta-workflow-tabs.js +19 -138
  427. package/dist/hero-ad-campaign-expert.cjs +2 -2
  428. package/dist/hero-ad-campaign-expert.js +2 -2
  429. package/dist/hero-adaptable-product-grid.cjs +2 -2
  430. package/dist/hero-adaptable-product-grid.js +2 -2
  431. package/dist/hero-agency-animated-images.cjs +2 -2
  432. package/dist/hero-agency-animated-images.js +2 -2
  433. package/dist/hero-ai-powered-carousel.cjs +2 -2
  434. package/dist/hero-ai-powered-carousel.js +2 -2
  435. package/dist/hero-announcement-badge.cjs +2 -2
  436. package/dist/hero-announcement-badge.js +2 -2
  437. package/dist/hero-architecture-fullscreen.cjs +2 -2
  438. package/dist/hero-architecture-fullscreen.js +2 -2
  439. package/dist/hero-badge-image-split.cjs +2 -2
  440. package/dist/hero-badge-image-split.js +2 -2
  441. package/dist/hero-badge-shadow-overlay.cjs +2 -2
  442. package/dist/hero-badge-shadow-overlay.js +2 -2
  443. package/dist/hero-billing-platform-logos.cjs +2 -2
  444. package/dist/hero-billing-platform-logos.js +2 -2
  445. package/dist/hero-business-carousel-dots.cjs +2 -2
  446. package/dist/hero-business-carousel-dots.js +2 -2
  447. package/dist/hero-business-operations-mosaic.cjs +2 -2
  448. package/dist/hero-business-operations-mosaic.js +2 -2
  449. package/dist/hero-centered-gradient-cta.cjs +2 -2
  450. package/dist/hero-centered-gradient-cta.js +2 -2
  451. package/dist/hero-centered-image-grid.cjs +2 -2
  452. package/dist/hero-centered-image-grid.js +2 -2
  453. package/dist/hero-centered-screenshot.cjs +2 -2
  454. package/dist/hero-centered-screenshot.js +2 -2
  455. package/dist/hero-coming-soon-countdown.cjs +2 -2
  456. package/dist/hero-coming-soon-countdown.js +2 -2
  457. package/dist/hero-community-survey-cta.cjs +2 -2
  458. package/dist/hero-community-survey-cta.js +2 -2
  459. package/dist/hero-conversation-intelligence.cjs +2 -2
  460. package/dist/hero-conversation-intelligence.js +2 -2
  461. package/dist/hero-conversion-video-play.cjs +2 -2
  462. package/dist/hero-conversion-video-play.js +2 -2
  463. package/dist/hero-creative-studio-stacked.cjs +2 -2
  464. package/dist/hero-creative-studio-stacked.js +2 -2
  465. package/dist/hero-crm-streamlined.cjs +2 -2
  466. package/dist/hero-crm-streamlined.js +2 -2
  467. package/dist/hero-customer-support-layered.cjs +2 -2
  468. package/dist/hero-customer-support-layered.js +2 -2
  469. package/dist/hero-dashed-border-features.cjs +2 -2
  470. package/dist/hero-dashed-border-features.js +2 -2
  471. package/dist/hero-design-carousel-portfolio.cjs +2 -2
  472. package/dist/hero-design-carousel-portfolio.js +2 -2
  473. package/dist/hero-design-showcase-logos.cjs +2 -2
  474. package/dist/hero-design-showcase-logos.js +2 -2
  475. package/dist/hero-design-system-3d.cjs +2 -2
  476. package/dist/hero-design-system-3d.js +2 -2
  477. package/dist/hero-developer-tools-code.cjs +2 -2
  478. package/dist/hero-developer-tools-code.js +2 -2
  479. package/dist/hero-digital-agency-fullscreen.cjs +2 -2
  480. package/dist/hero-digital-agency-fullscreen.js +2 -2
  481. package/dist/hero-ecommerce-product-showcase.cjs +2 -2
  482. package/dist/hero-ecommerce-product-showcase.js +2 -2
  483. package/dist/hero-enterprise-security.cjs +2 -2
  484. package/dist/hero-enterprise-security.js +2 -2
  485. package/dist/hero-event-registration.cjs +2 -2
  486. package/dist/hero-event-registration.js +2 -2
  487. package/dist/hero-feature-cards-grid.cjs +2 -2
  488. package/dist/hero-feature-cards-grid.js +2 -2
  489. package/dist/hero-fullscreen-background-image.cjs +2 -2
  490. package/dist/hero-fullscreen-background-image.js +2 -2
  491. package/dist/hero-fullscreen-logo-cta.cjs +2 -2
  492. package/dist/hero-fullscreen-logo-cta.js +2 -2
  493. package/dist/hero-gradient-avatars-rating.cjs +2 -2
  494. package/dist/hero-gradient-avatars-rating.js +2 -2
  495. package/dist/hero-gradient-client-focused.cjs +2 -2
  496. package/dist/hero-gradient-client-focused.js +2 -2
  497. package/dist/hero-grid-pattern-efficiency.cjs +2 -2
  498. package/dist/hero-grid-pattern-efficiency.js +2 -2
  499. package/dist/hero-grid-pattern-solutions.cjs +2 -2
  500. package/dist/hero-grid-pattern-solutions.js +2 -2
  501. package/dist/hero-hiring-animated-text.cjs +2 -2
  502. package/dist/hero-hiring-animated-text.js +2 -2
  503. package/dist/hero-image-left-content.cjs +2 -2
  504. package/dist/hero-image-left-content.js +2 -2
  505. package/dist/hero-image-slider.cjs +2 -2
  506. package/dist/hero-image-slider.js +2 -2
  507. package/dist/hero-innovation-image-grid.cjs +2 -2
  508. package/dist/hero-innovation-image-grid.js +2 -2
  509. package/dist/hero-logo-centered-screenshot.cjs +2 -2
  510. package/dist/hero-logo-centered-screenshot.js +2 -2
  511. package/dist/hero-marketplace-scattered-images.cjs +2 -2
  512. package/dist/hero-marketplace-scattered-images.js +2 -2
  513. package/dist/hero-mental-health-team.cjs +2 -2
  514. package/dist/hero-mental-health-team.js +2 -2
  515. package/dist/hero-mentorship-video-split.cjs +2 -2
  516. package/dist/hero-mentorship-video-split.js +2 -2
  517. package/dist/hero-minimal-centered-dark.cjs +2 -2
  518. package/dist/hero-minimal-centered-dark.js +2 -2
  519. package/dist/hero-mobile-app-download.cjs +2 -2
  520. package/dist/hero-mobile-app-download.js +2 -2
  521. package/dist/hero-newsletter-minimal.cjs +2 -2
  522. package/dist/hero-newsletter-minimal.js +2 -2
  523. package/dist/hero-pattern-badge-logos.cjs +2 -2
  524. package/dist/hero-pattern-badge-logos.js +2 -2
  525. package/dist/hero-pattern-logo-tech-stack.cjs +2 -2
  526. package/dist/hero-pattern-logo-tech-stack.js +2 -2
  527. package/dist/hero-platform-features-grid.cjs +2 -2
  528. package/dist/hero-platform-features-grid.js +2 -2
  529. package/dist/hero-portfolio-creative.cjs +2 -2
  530. package/dist/hero-portfolio-creative.js +2 -2
  531. package/dist/hero-premium-split-avatars.cjs +2 -2
  532. package/dist/hero-premium-split-avatars.js +2 -2
  533. package/dist/hero-presentation-platform-video.cjs +2 -2
  534. package/dist/hero-presentation-platform-video.js +2 -2
  535. package/dist/hero-pricing-comparison.cjs +2 -2
  536. package/dist/hero-pricing-comparison.js +2 -2
  537. package/dist/hero-product-showcase-floating.cjs +2 -2
  538. package/dist/hero-product-showcase-floating.js +2 -2
  539. package/dist/hero-productivity-launcher-video.cjs +2 -2
  540. package/dist/hero-productivity-launcher-video.js +2 -2
  541. package/dist/hero-saas-dashboard-preview.cjs +2 -2
  542. package/dist/hero-saas-dashboard-preview.js +2 -2
  543. package/dist/hero-shared-inbox-layered.cjs +2 -2
  544. package/dist/hero-shared-inbox-layered.js +2 -2
  545. package/dist/hero-simple-centered-image.cjs +2 -2
  546. package/dist/hero-simple-centered-image.js +2 -2
  547. package/dist/hero-software-growth-video-dialog.cjs +2 -2
  548. package/dist/hero-software-growth-video-dialog.js +2 -2
  549. package/dist/hero-spiral-pattern-cards.cjs +2 -2
  550. package/dist/hero-spiral-pattern-cards.js +2 -2
  551. package/dist/hero-split-geometric-shapes.cjs +2 -2
  552. package/dist/hero-split-geometric-shapes.js +2 -2
  553. package/dist/hero-split-icon-cards.cjs +1 -1
  554. package/dist/hero-split-icon-cards.js +1 -1
  555. package/dist/hero-split-image-newsletter.cjs +2 -2
  556. package/dist/hero-split-image-newsletter.js +2 -2
  557. package/dist/hero-split-spiral-shapes.cjs +2 -2
  558. package/dist/hero-split-spiral-shapes.js +2 -2
  559. package/dist/hero-startup-launch-cta.cjs +2 -2
  560. package/dist/hero-startup-launch-cta.js +2 -2
  561. package/dist/hero-stats-social-proof.cjs +2 -2
  562. package/dist/hero-stats-social-proof.js +2 -2
  563. package/dist/hero-task-timer-animated.cjs +2 -2
  564. package/dist/hero-task-timer-animated.js +2 -2
  565. package/dist/hero-tech-carousel.cjs +2 -2
  566. package/dist/hero-tech-carousel.js +2 -2
  567. package/dist/hero-therapy-testimonial-grid.cjs +2 -2
  568. package/dist/hero-therapy-testimonial-grid.js +2 -2
  569. package/dist/hero-ui-library-showcase.cjs +2 -2
  570. package/dist/hero-ui-library-showcase.js +2 -2
  571. package/dist/hero-video-background-dark.cjs +2 -2
  572. package/dist/hero-video-background-dark.js +2 -2
  573. package/dist/hero-video-dialog-gradient.cjs +2 -2
  574. package/dist/hero-video-dialog-gradient.js +2 -2
  575. package/dist/hero-video-overlay-stars.cjs +2 -2
  576. package/dist/hero-video-overlay-stars.js +2 -2
  577. package/dist/hero-welcome-asymmetric-images.cjs +2 -2
  578. package/dist/hero-welcome-asymmetric-images.js +2 -2
  579. package/dist/index.cjs +8 -8
  580. package/dist/index.js +9 -9
  581. package/dist/media-hover-ctas.cjs +7 -7
  582. package/dist/media-hover-ctas.js +7 -7
  583. package/dist/registry.cjs +10071 -8111
  584. package/dist/registry.js +10033 -8073
  585. package/package.json +2 -2
@@ -1,5 +1,8 @@
1
1
  import * as React from 'react';
2
+ import { P as PatternName } from './pattern-background-a7gKHzHy.js';
3
+ import { SectionBackground, SectionSpacing } from './types.js';
2
4
  import { D as DetailItem, O as OptixFlowConfig } from './blocks-k17uluAz.js';
5
+ import 'react/jsx-runtime';
3
6
  import 'class-variance-authority';
4
7
  import './button-variants-lRElsmTc.js';
5
8
  import 'class-variance-authority/types';
@@ -26,25 +29,41 @@ interface CaseStudyProseSidebarProps {
26
29
  */
27
30
  contentSlot?: React.ReactNode;
28
31
  /**
29
- * Company logo URL
32
+ * Logo image URL
30
33
  */
31
34
  companyLogoSrc?: string;
32
35
  /**
33
- * Company logo alt text
36
+ * Logo image alt text
34
37
  */
35
38
  companyLogoAlt?: string;
36
39
  /**
37
- * Custom slot for company logo (overrides companyLogoSrc)
40
+ * Custom slot for logo (overrides companyLogoSrc)
38
41
  */
39
42
  companyLogoSlot?: React.ReactNode;
40
43
  /**
41
- * Array of detail items for the sidebar (replaces individual company props)
44
+ * Array of detail items for the sidebar
42
45
  */
43
46
  details?: DetailItem[];
44
47
  /**
45
48
  * Custom slot for entire sidebar (overrides all sidebar props)
46
49
  */
47
50
  sidebarSlot?: React.ReactNode;
51
+ /**
52
+ * Background style for the section
53
+ */
54
+ background?: SectionBackground;
55
+ /**
56
+ * Vertical spacing for the section
57
+ */
58
+ spacing?: SectionSpacing;
59
+ /**
60
+ * Optional background pattern name or URL
61
+ */
62
+ pattern?: PatternName | undefined;
63
+ /**
64
+ * Pattern overlay opacity (0-1)
65
+ */
66
+ patternOpacity?: number;
48
67
  /**
49
68
  * Additional CSS classes for the section
50
69
  */
@@ -87,31 +106,31 @@ interface CaseStudyProseSidebarProps {
87
106
  optixFlowConfig?: OptixFlowConfig;
88
107
  }
89
108
  /**
90
- * CaseStudyProseSidebar displays a case study article with rich prose content
91
- * and a sidebar containing company information.
109
+ * CaseStudyProseSidebar displays an article with rich prose content
110
+ * and a sidebar containing contextual information.
92
111
  *
93
112
  * Features a two-column layout with the main article content on the left (including
94
113
  * hero image, headings, paragraphs, blockquotes, lists, and tables) and a sticky
95
- * sidebar on the right with company logo and flexible detail items. The sidebar
114
+ * sidebar on the right with logo and flexible detail items. The sidebar
96
115
  * uses an accent background with organized sections.
97
116
  *
98
- * Ideal for detailed case study pages, customer success stories, or in-depth
99
- * articles that need supplementary company context alongside the main narrative.
117
+ * Ideal for long-form content pages, detailed articles, or comprehensive narratives
118
+ * that need supplementary context alongside the main content.
100
119
  *
101
120
  * @example
102
121
  * ```tsx
103
122
  * <CaseStudyProseSidebar
104
- * heroImageSrc="/images/case-study-hero.jpg"
105
- * companyLogoSrc="/logos/techcorp.svg"
123
+ * heroImageSrc="/images/hero.jpg"
124
+ * companyLogoSrc="/logos/logo.svg"
106
125
  * details={[
107
- * { label: "Company", value: "Leading enterprise software company" },
108
- * { label: "Industry", value: "Technology" },
126
+ * { label: "Organization", value: "Leading platform" },
127
+ * { label: "Category", value: "Technology" },
109
128
  * { label: "Location", value: "San Francisco, CA" },
110
- * { label: "Website", value: "techcorp.com", href: "https://techcorp.com" }
129
+ * { label: "Website", value: "example.com", href: "https://example.com" }
111
130
  * ]}
112
131
  * />
113
132
  * ```
114
133
  */
115
- declare function CaseStudyProseSidebar({ heroImageSrc, heroImageAlt, heroMediaSlot, content, contentSlot, companyLogoSrc, companyLogoAlt, companyLogoSlot, details, sidebarSlot, className, containerClassName, articleClassName, heroImageClassName, proseClassName, sidebarClassName, sidebarCardClassName, companyLogoClassName, detailItemClassName, optixFlowConfig, }: CaseStudyProseSidebarProps): React.JSX.Element;
134
+ declare function CaseStudyProseSidebar({ heroImageSrc, heroImageAlt, heroMediaSlot, content, contentSlot, companyLogoSrc, companyLogoAlt, companyLogoSlot, details, sidebarSlot, background, spacing, pattern, patternOpacity, className, containerClassName, articleClassName, heroImageClassName, proseClassName, sidebarClassName, sidebarCardClassName, companyLogoClassName, detailItemClassName, optixFlowConfig, }: CaseStudyProseSidebarProps): React.JSX.Element;
116
135
 
117
136
  export { CaseStudyProseSidebar, type CaseStudyProseSidebarProps };
@@ -1,12 +1,13 @@
1
1
  "use client";
2
+ import * as React from 'react';
3
+ import React__default, { useMemo, useCallback } from 'react';
2
4
  import { clsx } from 'clsx';
3
5
  import { twMerge } from 'tailwind-merge';
4
6
  import { Img } from '@page-speed/img';
5
- import * as React from 'react';
6
7
  import { cva } from 'class-variance-authority';
7
8
  import { jsx, jsxs } from 'react/jsx-runtime';
8
9
 
9
- // lib/utils.ts
10
+ // components/blocks/case-study-detail/case-study-prose-sidebar.tsx
10
11
  function cn(...inputs) {
11
12
  return twMerge(clsx(inputs));
12
13
  }
@@ -428,6 +429,379 @@ var Pressable = React.forwardRef(
428
429
  }
429
430
  );
430
431
  Pressable.displayName = "Pressable";
432
+ var maxWidthStyles = {
433
+ sm: "max-w-screen-sm",
434
+ md: "max-w-screen-md",
435
+ lg: "max-w-screen-lg",
436
+ xl: "max-w-7xl",
437
+ "2xl": "max-w-screen-2xl",
438
+ "4xl": "max-w-[1536px]",
439
+ full: "max-w-full"
440
+ };
441
+ var Container = React__default.forwardRef(
442
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
443
+ const Component = as;
444
+ return /* @__PURE__ */ jsx(
445
+ Component,
446
+ {
447
+ ref,
448
+ className: cn(
449
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
450
+ maxWidthStyles[maxWidth],
451
+ className
452
+ ),
453
+ ...props,
454
+ children
455
+ }
456
+ );
457
+ }
458
+ );
459
+ Container.displayName = "Container";
460
+
461
+ // lib/patternSvgs.ts
462
+ var patternSvgs = {
463
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
464
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
465
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
466
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
467
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
468
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
469
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
470
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
471
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
472
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
473
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
474
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
475
+ };
476
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
477
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
478
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
479
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
480
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
481
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
482
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
483
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxs(
484
+ "svg",
485
+ {
486
+ className: "h-full w-full",
487
+ xmlns: "http://www.w3.org/2000/svg",
488
+ style: mask ? {
489
+ maskImage: mask,
490
+ WebkitMaskImage: mask
491
+ } : void 0,
492
+ children: [
493
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
494
+ "pattern",
495
+ {
496
+ id,
497
+ x: "0",
498
+ y: "0",
499
+ width: "100",
500
+ height: "100",
501
+ patternUnits: "userSpaceOnUse",
502
+ children: [
503
+ /* @__PURE__ */ jsx(
504
+ "path",
505
+ {
506
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
507
+ stroke: "hsl(var(--muted))",
508
+ strokeWidth: "1",
509
+ fill: "none"
510
+ }
511
+ ),
512
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
513
+ /* @__PURE__ */ jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
514
+ /* @__PURE__ */ jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
515
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
516
+ /* @__PURE__ */ jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
517
+ ]
518
+ }
519
+ ) }),
520
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
521
+ ]
522
+ }
523
+ );
524
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxs(
525
+ "svg",
526
+ {
527
+ className: "h-full w-full",
528
+ xmlns: "http://www.w3.org/2000/svg",
529
+ style: mask ? {
530
+ maskImage: mask,
531
+ WebkitMaskImage: mask
532
+ } : void 0,
533
+ children: [
534
+ /* @__PURE__ */ jsx("defs", { children: /* @__PURE__ */ jsxs(
535
+ "pattern",
536
+ {
537
+ id,
538
+ x: "0",
539
+ y: "0",
540
+ width: "40",
541
+ height: "40",
542
+ patternUnits: "userSpaceOnUse",
543
+ children: [
544
+ /* @__PURE__ */ jsx(
545
+ "path",
546
+ {
547
+ d: "M0 20h40M20 0v40",
548
+ stroke: "hsl(var(--muted))",
549
+ strokeWidth: "0.5",
550
+ fill: "none"
551
+ }
552
+ ),
553
+ /* @__PURE__ */ jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
554
+ ]
555
+ }
556
+ ) }),
557
+ /* @__PURE__ */ jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
558
+ ]
559
+ }
560
+ );
561
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsx(
562
+ "div",
563
+ {
564
+ 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)]",
565
+ style: {
566
+ backgroundSize: `${size}px ${size}px`,
567
+ ...mask ? {
568
+ maskImage: mask,
569
+ WebkitMaskImage: mask
570
+ } : {}
571
+ }
572
+ }
573
+ );
574
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsx(
575
+ "div",
576
+ {
577
+ className: "h-full w-full",
578
+ style: {
579
+ 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)",
580
+ ...mask ? {
581
+ maskImage: mask,
582
+ WebkitMaskImage: mask
583
+ } : {}
584
+ }
585
+ }
586
+ );
587
+ 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)";
588
+ var dashedGridPattern = (fadeMask) => {
589
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
590
+ return /* @__PURE__ */ jsx(
591
+ "div",
592
+ {
593
+ className: "h-full w-full",
594
+ style: {
595
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
596
+ backgroundSize: "20px 20px",
597
+ backgroundPosition: "0 0, 0 0",
598
+ maskImage: mask,
599
+ WebkitMaskImage: mask,
600
+ maskComposite: "intersect",
601
+ WebkitMaskComposite: "source-in"
602
+ }
603
+ }
604
+ );
605
+ };
606
+ var gradientGlow = (position) => /* @__PURE__ */ jsx(
607
+ "div",
608
+ {
609
+ className: cn(
610
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
611
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
612
+ ),
613
+ style: {
614
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
615
+ }
616
+ }
617
+ );
618
+ var spotlight = (position) => /* @__PURE__ */ jsx(
619
+ "div",
620
+ {
621
+ className: cn(
622
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
623
+ position === "left" ? "-left-1/4" : "-right-1/4"
624
+ ),
625
+ style: {
626
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
627
+ }
628
+ }
629
+ );
630
+ var patternOverlays = {
631
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
632
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
633
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
634
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
635
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
636
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
637
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
638
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
639
+ dashedGridBasic: () => dashedGridPattern(),
640
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
641
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
642
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
643
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
644
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
645
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
646
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
647
+ diagonalCrossBasic: () => diagonalCrossPattern(),
648
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
649
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
650
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
651
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
652
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
653
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
654
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
655
+ gridBasic: () => gridPattern(40),
656
+ gridFadeTop: () => gridPattern(32, maskTop),
657
+ gridFadeBottom: () => gridPattern(32, maskBottom),
658
+ gridFadeCenter: () => gridPattern(40, maskCenter),
659
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
660
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
661
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
662
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
663
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
664
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
665
+ gradientGlowTop: () => gradientGlow("top"),
666
+ gradientGlowBottom: () => gradientGlow("bottom"),
667
+ spotlightLeft: () => spotlight("left"),
668
+ spotlightRight: () => spotlight("right")
669
+ };
670
+ var inlinePatternStyles = {
671
+ radialGradientTop: {
672
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
673
+ },
674
+ radialGradientBottom: {
675
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
676
+ }
677
+ };
678
+ function PatternBackground({
679
+ pattern,
680
+ opacity = 0.08,
681
+ className,
682
+ style
683
+ }) {
684
+ if (!pattern) {
685
+ return null;
686
+ }
687
+ if (pattern in inlinePatternStyles) {
688
+ const inlineStyle = inlinePatternStyles[pattern];
689
+ return /* @__PURE__ */ jsx(
690
+ "div",
691
+ {
692
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
693
+ style: { ...inlineStyle, opacity, ...style },
694
+ "aria-hidden": "true"
695
+ }
696
+ );
697
+ }
698
+ if (pattern in patternOverlays) {
699
+ const Overlay = patternOverlays[pattern];
700
+ return /* @__PURE__ */ jsx(
701
+ "div",
702
+ {
703
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
704
+ style: { opacity, ...style },
705
+ "aria-hidden": "true",
706
+ children: Overlay()
707
+ }
708
+ );
709
+ }
710
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
711
+ return /* @__PURE__ */ jsx(
712
+ "div",
713
+ {
714
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
715
+ style: {
716
+ backgroundImage: `url(${patternUrl})`,
717
+ backgroundRepeat: "repeat",
718
+ backgroundSize: "auto",
719
+ opacity,
720
+ ...style
721
+ },
722
+ "aria-hidden": "true"
723
+ }
724
+ );
725
+ }
726
+ var backgroundStyles = {
727
+ default: "bg-background text-foreground",
728
+ white: "bg-white text-dark",
729
+ gray: "bg-muted/30 text-foreground",
730
+ dark: "bg-foreground text-background",
731
+ transparent: "bg-transparent text-foreground",
732
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
733
+ primary: "bg-primary text-primary-foreground",
734
+ secondary: "bg-secondary text-secondary-foreground",
735
+ muted: "bg-muted text-muted-foreground"
736
+ };
737
+ var spacingStyles = {
738
+ none: "py-0 md:py-0",
739
+ sm: "py-12 md:py-16",
740
+ md: "py-16 md:py-24",
741
+ lg: "py-20 md:py-32",
742
+ xl: "py-24 md:py-40"
743
+ };
744
+ var Section = React__default.forwardRef(
745
+ ({
746
+ id,
747
+ title,
748
+ subtitle,
749
+ children,
750
+ className,
751
+ style,
752
+ background = "default",
753
+ spacing = "lg",
754
+ pattern,
755
+ patternOpacity,
756
+ patternClassName,
757
+ containerClassName,
758
+ containerMaxWidth = "xl",
759
+ ...props
760
+ }, ref) => {
761
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
762
+ return /* @__PURE__ */ jsxs(
763
+ "section",
764
+ {
765
+ ref,
766
+ id,
767
+ className: cn(
768
+ "relative",
769
+ pattern ? "overflow-hidden" : null,
770
+ backgroundStyles[background],
771
+ spacingStyles[spacing],
772
+ className
773
+ ),
774
+ style,
775
+ ...props,
776
+ children: [
777
+ /* @__PURE__ */ jsx(
778
+ PatternBackground,
779
+ {
780
+ pattern,
781
+ opacity: effectivePatternOpacity,
782
+ className: patternClassName
783
+ }
784
+ ),
785
+ /* @__PURE__ */ jsxs(
786
+ Container,
787
+ {
788
+ maxWidth: containerMaxWidth,
789
+ className: cn("relative z-10", containerClassName),
790
+ children: [
791
+ (title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-12 text-center md:mb-16", children: [
792
+ subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
793
+ title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
794
+ ] }),
795
+ children
796
+ ]
797
+ }
798
+ )
799
+ ]
800
+ }
801
+ );
802
+ }
803
+ );
804
+ Section.displayName = "Section";
431
805
  function CaseStudyProseSidebar({
432
806
  heroImageSrc,
433
807
  heroImageAlt,
@@ -439,6 +813,10 @@ function CaseStudyProseSidebar({
439
813
  companyLogoSlot,
440
814
  details,
441
815
  sidebarSlot,
816
+ background = "white",
817
+ spacing = "xl",
818
+ pattern,
819
+ patternOpacity,
442
820
  className,
443
821
  containerClassName,
444
822
  articleClassName,
@@ -450,8 +828,9 @@ function CaseStudyProseSidebar({
450
828
  detailItemClassName,
451
829
  optixFlowConfig
452
830
  }) {
453
- const renderHeroMedia = () => {
831
+ const heroMediaContent = useMemo(() => {
454
832
  if (heroMediaSlot) return heroMediaSlot;
833
+ if (!heroImageSrc) return null;
455
834
  return /* @__PURE__ */ jsx(
456
835
  Img,
457
836
  {
@@ -462,13 +841,15 @@ function CaseStudyProseSidebar({
462
841
  optixFlowConfig
463
842
  }
464
843
  );
465
- };
466
- const renderContent = () => {
844
+ }, [heroMediaSlot, heroImageSrc, heroImageAlt, heroImageClassName, optixFlowConfig]);
845
+ const contentArea = useMemo(() => {
467
846
  if (contentSlot) return contentSlot;
847
+ if (!content) return null;
468
848
  return /* @__PURE__ */ jsx("div", { className: cn("prose dark:prose-invert", proseClassName), children: content });
469
- };
470
- const renderCompanyLogo = () => {
849
+ }, [contentSlot, content, proseClassName]);
850
+ const logoContent = useMemo(() => {
471
851
  if (companyLogoSlot) return companyLogoSlot;
852
+ if (!companyLogoSrc) return null;
472
853
  return /* @__PURE__ */ jsx("div", { className: "mb-8 px-6", children: /* @__PURE__ */ jsx(
473
854
  Img,
474
855
  {
@@ -479,35 +860,46 @@ function CaseStudyProseSidebar({
479
860
  optixFlowConfig
480
861
  }
481
862
  ) });
482
- };
483
- const renderDetailItem = (detail, index, isFirstAfterBorder = false) => {
863
+ }, [companyLogoSlot, companyLogoSrc, companyLogoAlt, companyLogoClassName, optixFlowConfig]);
864
+ const renderDetailItem = useCallback((detail, index, isFirstAfterBorder = false) => {
484
865
  const baseClassName = isFirstAfterBorder ? "mb-5 w-full border-t border-border px-6 pt-5 last:mb-0" : "mb-5 px-6 last:mb-0";
485
866
  return /* @__PURE__ */ jsxs("div", { className: cn(baseClassName, detail.className, detailItemClassName), children: [
486
867
  /* @__PURE__ */ jsx("div", { className: "mb-2 text-xs font-semibold", children: detail.label }),
487
868
  /* @__PURE__ */ jsx("div", { className: "overflow-hidden text-xs text-muted-foreground md:text-sm", children: detail.href ? /* @__PURE__ */ jsx(Pressable, { href: detail.href, className: "underline hover:text-foreground", children: detail.value }) : detail.value })
488
869
  ] }, index);
489
- };
490
- const renderDetails = () => {
870
+ }, [detailItemClassName]);
871
+ const detailsContent = useMemo(() => {
491
872
  if (!details || details.length === 0) return null;
492
873
  return details.map((detail, index) => {
493
874
  const isFirstAfterBorder = index === 2;
494
875
  return renderDetailItem(detail, index, isFirstAfterBorder);
495
876
  });
496
- };
497
- const renderSidebar = () => {
877
+ }, [details, renderDetailItem]);
878
+ const sidebarContent = useMemo(() => {
498
879
  if (sidebarSlot) return sidebarSlot;
880
+ if (!logoContent && !detailsContent) return null;
499
881
  return /* @__PURE__ */ jsx("aside", { className: cn("lg:max-w-[300px]", sidebarClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-start rounded-lg border border-border bg-accent py-6 md:py-8", sidebarCardClassName), children: [
500
- renderCompanyLogo(),
501
- renderDetails()
882
+ logoContent,
883
+ detailsContent
502
884
  ] }) });
503
- };
504
- return /* @__PURE__ */ jsx("section", { className: cn("py-32", className), children: /* @__PURE__ */ jsxs("div", { className: cn("container flex flex-col gap-12 lg:flex-row lg:gap-24", containerClassName), children: [
505
- /* @__PURE__ */ jsxs("article", { className: cn("mx-auto", articleClassName), children: [
506
- renderHeroMedia(),
507
- renderContent()
508
- ] }),
509
- renderSidebar()
510
- ] }) });
885
+ }, [sidebarSlot, logoContent, detailsContent, sidebarClassName, sidebarCardClassName]);
886
+ return /* @__PURE__ */ jsx(
887
+ Section,
888
+ {
889
+ background,
890
+ spacing,
891
+ className: cn(className),
892
+ pattern,
893
+ patternOpacity,
894
+ children: /* @__PURE__ */ jsxs("div", { className: cn("container flex flex-col gap-12 lg:flex-row lg:gap-24", containerClassName), children: [
895
+ /* @__PURE__ */ jsxs("article", { className: cn("mx-auto", articleClassName), children: [
896
+ heroMediaContent,
897
+ contentArea
898
+ ] }),
899
+ sidebarContent
900
+ ] })
901
+ }
902
+ );
511
903
  }
512
904
 
513
905
  export { CaseStudyProseSidebar };