@opensite/ui 0.8.5 → 0.8.7

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 (501) hide show
  1. package/dist/about-developer-profile.cjs +1 -1
  2. package/dist/about-developer-profile.js +1 -1
  3. package/dist/about-interactive-tabs.cjs +1 -1
  4. package/dist/about-interactive-tabs.js +1 -1
  5. package/dist/about-location-info-hero.cjs +5 -5
  6. package/dist/about-location-info-hero.js +5 -5
  7. package/dist/about-mission-features.cjs +3 -3
  8. package/dist/about-mission-features.js +3 -3
  9. package/dist/about-mission-principles.cjs +1 -1
  10. package/dist/about-mission-principles.js +1 -1
  11. package/dist/about-network-spotlight.cjs +6 -6
  12. package/dist/about-network-spotlight.js +6 -6
  13. package/dist/about-split-hero.cjs +4 -4
  14. package/dist/about-split-hero.js +4 -4
  15. package/dist/about-startup-team.cjs +3 -3
  16. package/dist/about-startup-team.js +3 -3
  17. package/dist/about-story-expertise.cjs +4 -4
  18. package/dist/about-story-expertise.js +4 -4
  19. package/dist/article-breadcrumb-social.cjs +1 -1
  20. package/dist/article-breadcrumb-social.js +1 -1
  21. package/dist/article-chapters-author.cjs +1 -1
  22. package/dist/article-chapters-author.js +1 -1
  23. package/dist/article-compact-toc.cjs +1 -1
  24. package/dist/article-compact-toc.js +1 -1
  25. package/dist/article-split-animated.cjs +1 -1
  26. package/dist/article-split-animated.js +1 -1
  27. package/dist/article-toc-sidebar.cjs +1 -1
  28. package/dist/article-toc-sidebar.js +1 -1
  29. package/dist/banner-countdown-sale.cjs +1 -1
  30. package/dist/banner-countdown-sale.js +1 -1
  31. package/dist/banner-social-follow.cjs +1 -1
  32. package/dist/banner-social-follow.js +1 -1
  33. package/dist/blog-cards-tagline-cta.cjs +1 -1
  34. package/dist/blog-cards-tagline-cta.js +1 -1
  35. package/dist/blog-horizontal-timeline.cjs +2 -2
  36. package/dist/blog-horizontal-timeline.js +2 -2
  37. package/dist/blog-tech-insights.cjs +6 -6
  38. package/dist/blog-tech-insights.js +6 -6
  39. package/dist/carousel-animated-sections.cjs +7 -8
  40. package/dist/carousel-animated-sections.js +7 -8
  41. package/dist/carousel-auto-progress-slides.cjs +7 -7
  42. package/dist/carousel-auto-progress-slides.js +7 -7
  43. package/dist/carousel-autoplay-progress.cjs +3 -3
  44. package/dist/carousel-autoplay-progress.js +3 -3
  45. package/dist/carousel-fullscreen-scroll-fx.cjs +7 -7
  46. package/dist/carousel-fullscreen-scroll-fx.js +7 -7
  47. package/dist/carousel-horizontal-cards.cjs +1 -1
  48. package/dist/carousel-horizontal-cards.js +1 -1
  49. package/dist/carousel-icon-sidebar.cjs +3 -3
  50. package/dist/carousel-icon-sidebar.js +3 -3
  51. package/dist/carousel-image-hero.cjs +2 -2
  52. package/dist/carousel-image-hero.js +2 -2
  53. package/dist/carousel-multi-step-showcase.cjs +1 -1
  54. package/dist/carousel-multi-step-showcase.js +1 -1
  55. package/dist/carousel-portfolio-hero.cjs +5 -5
  56. package/dist/carousel-portfolio-hero.js +5 -5
  57. package/dist/carousel-progress-slider.cjs +1 -1
  58. package/dist/carousel-progress-slider.js +1 -1
  59. package/dist/case-studies-image-grid.cjs +2 -2
  60. package/dist/case-studies-image-grid.js +2 -2
  61. package/dist/case-studies-stats-card.cjs +1 -1
  62. package/dist/case-studies-stats-card.js +1 -1
  63. package/dist/case-study-prose-sidebar.cjs +1 -1
  64. package/dist/case-study-prose-sidebar.js +1 -1
  65. package/dist/case-study-toc-social-sidebar.cjs +1 -1
  66. package/dist/case-study-toc-social-sidebar.js +1 -1
  67. package/dist/comparison-ai-models.cjs +15 -15
  68. package/dist/comparison-ai-models.js +15 -15
  69. package/dist/comparison-feature-cards.cjs +1 -1
  70. package/dist/comparison-feature-cards.js +1 -1
  71. package/dist/comparison-feature-grid.cjs +1 -1
  72. package/dist/comparison-feature-grid.js +1 -1
  73. package/dist/comparison-metrics-rows.cjs +6 -6
  74. package/dist/comparison-metrics-rows.js +6 -6
  75. package/dist/comparison-table-tabs.cjs +5 -5
  76. package/dist/comparison-table-tabs.js +5 -5
  77. package/dist/comparison-table-tooltips.cjs +1 -1
  78. package/dist/comparison-table-tooltips.js +1 -1
  79. package/dist/comparison-table-two-column.cjs +2 -2
  80. package/dist/comparison-table-two-column.js +2 -2
  81. package/dist/components.cjs +22 -23
  82. package/dist/components.js +22 -23
  83. package/dist/contact-emergency.cjs +1 -1
  84. package/dist/contact-emergency.js +1 -1
  85. package/dist/contact-help-center.cjs +3 -3
  86. package/dist/contact-help-center.js +3 -3
  87. package/dist/cta-background-icon-badge.cjs +1 -1
  88. package/dist/cta-background-icon-badge.js +1 -1
  89. package/dist/cta-enterprise-dark-features.cjs +5 -5
  90. package/dist/cta-enterprise-dark-features.js +5 -5
  91. package/dist/cta-fullwidth-background.cjs +1 -1
  92. package/dist/cta-fullwidth-background.js +1 -1
  93. package/dist/cta-hero-feature-cards.cjs +3 -3
  94. package/dist/cta-hero-feature-cards.js +3 -3
  95. package/dist/cta-image-overlay-arrow.cjs +1 -1
  96. package/dist/cta-image-overlay-arrow.js +1 -1
  97. package/dist/cta-image-overlay-centered.cjs +2 -2
  98. package/dist/cta-image-overlay-centered.js +2 -2
  99. package/dist/cta-split-gradient-image.cjs +1 -1
  100. package/dist/cta-split-gradient-image.js +1 -1
  101. package/dist/cta-video-background-hero.cjs +3 -3
  102. package/dist/cta-video-background-hero.js +3 -3
  103. package/dist/cta-workflow-tabs.cjs +1 -1
  104. package/dist/cta-workflow-tabs.js +1 -1
  105. package/dist/faq-badge-support.cjs +26 -8
  106. package/dist/faq-badge-support.js +26 -8
  107. package/dist/faq-bordered-badge.cjs +26 -10
  108. package/dist/faq-bordered-badge.js +26 -10
  109. package/dist/faq-card-categories.cjs +21 -5
  110. package/dist/faq-card-categories.js +21 -5
  111. package/dist/faq-categorized-sections.cjs +20 -5
  112. package/dist/faq-categorized-sections.js +20 -5
  113. package/dist/faq-centered-accordion.cjs +19 -6
  114. package/dist/faq-centered-accordion.js +19 -6
  115. package/dist/faq-gradient-categories.cjs +20 -5
  116. package/dist/faq-gradient-categories.js +20 -5
  117. package/dist/faq-icon-benefits.cjs +11 -2
  118. package/dist/faq-icon-benefits.js +11 -2
  119. package/dist/faq-muted-cards.cjs +20 -7
  120. package/dist/faq-muted-cards.js +20 -7
  121. package/dist/faq-numbered-grid.cjs +11 -3
  122. package/dist/faq-numbered-grid.js +11 -3
  123. package/dist/faq-numbered-list.cjs +11 -3
  124. package/dist/faq-numbered-list.js +11 -3
  125. package/dist/faq-profile-sidebar.cjs +60 -23
  126. package/dist/faq-profile-sidebar.js +60 -23
  127. package/dist/faq-rounded-cards.cjs +24 -29
  128. package/dist/faq-rounded-cards.js +24 -29
  129. package/dist/faq-sidebar-navigation.cjs +49 -29
  130. package/dist/faq-sidebar-navigation.js +49 -29
  131. package/dist/faq-simple-accordion.cjs +18 -5
  132. package/dist/faq-simple-accordion.js +18 -5
  133. package/dist/faq-split-help.cjs +36 -21
  134. package/dist/faq-split-help.js +36 -21
  135. package/dist/faq-split-hero.cjs +86 -186
  136. package/dist/faq-split-hero.d.cts +16 -18
  137. package/dist/faq-split-hero.d.ts +16 -18
  138. package/dist/faq-split-hero.js +87 -187
  139. package/dist/faq-static-list.cjs +10 -3
  140. package/dist/faq-static-list.js +10 -3
  141. package/dist/feature-accordion-image.cjs +9 -3
  142. package/dist/feature-accordion-image.js +9 -3
  143. package/dist/feature-bento-utilities.cjs +1 -1
  144. package/dist/feature-bento-utilities.js +1 -1
  145. package/dist/feature-capabilities-grid.cjs +13 -13
  146. package/dist/feature-capabilities-grid.js +13 -13
  147. package/dist/feature-icon-grid-muted.cjs +2 -2
  148. package/dist/feature-icon-grid-muted.js +2 -2
  149. package/dist/feature-icon-tabs-content.cjs +3 -3
  150. package/dist/feature-icon-tabs-content.js +3 -3
  151. package/dist/feature-image-cards-three-column.cjs +2 -2
  152. package/dist/feature-image-cards-three-column.js +2 -2
  153. package/dist/feature-image-overlay-badge.cjs +2 -2
  154. package/dist/feature-image-overlay-badge.js +2 -2
  155. package/dist/feature-integration-cards.cjs +2 -2
  156. package/dist/feature-integration-cards.js +2 -2
  157. package/dist/feature-numbered-cards.cjs +1 -1
  158. package/dist/feature-numbered-cards.js +1 -1
  159. package/dist/feature-pattern-grid-links.cjs +1 -1
  160. package/dist/feature-pattern-grid-links.js +1 -1
  161. package/dist/feature-showcase.cjs +1 -2
  162. package/dist/feature-showcase.js +1 -2
  163. package/dist/feature-split-image-reverse.cjs +2 -8
  164. package/dist/feature-split-image-reverse.js +2 -8
  165. package/dist/feature-split-image.cjs +2 -2
  166. package/dist/feature-split-image.js +2 -2
  167. package/dist/feature-stats-highlight.cjs +50 -13
  168. package/dist/feature-stats-highlight.js +50 -13
  169. package/dist/feature-tabbed-content-image.cjs +5 -14
  170. package/dist/feature-tabbed-content-image.js +5 -14
  171. package/dist/feature-three-column-values.cjs +4 -44
  172. package/dist/feature-three-column-values.js +4 -44
  173. package/dist/feature-utility-cards-grid.cjs +83 -36
  174. package/dist/feature-utility-cards-grid.js +83 -36
  175. package/dist/footer-animated-social.cjs +3 -3
  176. package/dist/footer-animated-social.js +3 -3
  177. package/dist/footer-brand-links-contact.cjs +10 -10
  178. package/dist/footer-brand-links-contact.js +10 -10
  179. package/dist/footer-comprehensive-links.cjs +20 -20
  180. package/dist/footer-comprehensive-links.js +20 -20
  181. package/dist/footer-cta-banner.cjs +4 -4
  182. package/dist/footer-cta-banner.js +4 -4
  183. package/dist/footer-cta-social.cjs +2 -2
  184. package/dist/footer-cta-social.js +2 -2
  185. package/dist/footer-newsletter-minimal.cjs +5 -5
  186. package/dist/footer-newsletter-minimal.js +5 -5
  187. package/dist/footer-simple-centered.cjs +2 -2
  188. package/dist/footer-simple-centered.js +2 -2
  189. package/dist/hero-ad-campaign-expert.cjs +2 -2
  190. package/dist/hero-ad-campaign-expert.js +2 -2
  191. package/dist/hero-agency-animated-images.cjs +2 -2
  192. package/dist/hero-agency-animated-images.js +2 -2
  193. package/dist/hero-architecture-fullscreen.cjs +2 -2
  194. package/dist/hero-architecture-fullscreen.js +2 -2
  195. package/dist/hero-billing-platform-logos.cjs +4 -4
  196. package/dist/hero-billing-platform-logos.js +4 -4
  197. package/dist/hero-business-operations-mosaic.cjs +2 -2
  198. package/dist/hero-business-operations-mosaic.js +2 -2
  199. package/dist/hero-centered-gradient-cta.cjs +1 -1
  200. package/dist/hero-centered-gradient-cta.js +1 -1
  201. package/dist/hero-coming-soon-countdown.cjs +3 -3
  202. package/dist/hero-coming-soon-countdown.js +3 -3
  203. package/dist/hero-conversation-intelligence.cjs +1 -1
  204. package/dist/hero-conversation-intelligence.js +1 -1
  205. package/dist/hero-conversion-video-play.cjs +1 -1
  206. package/dist/hero-conversion-video-play.js +1 -1
  207. package/dist/hero-crm-streamlined.cjs +2 -2
  208. package/dist/hero-crm-streamlined.js +2 -2
  209. package/dist/hero-customer-support-layered.cjs +1 -1
  210. package/dist/hero-customer-support-layered.js +1 -1
  211. package/dist/hero-design-carousel-portfolio.cjs +3 -3
  212. package/dist/hero-design-carousel-portfolio.js +3 -3
  213. package/dist/hero-design-showcase-logos.cjs +1 -1
  214. package/dist/hero-design-showcase-logos.js +1 -1
  215. package/dist/hero-developer-tools-code.cjs +1 -1
  216. package/dist/hero-developer-tools-code.js +1 -1
  217. package/dist/hero-digital-agency-fullscreen.cjs +3 -3
  218. package/dist/hero-digital-agency-fullscreen.js +3 -3
  219. package/dist/hero-ecommerce-product-showcase.cjs +2 -2
  220. package/dist/hero-ecommerce-product-showcase.js +2 -2
  221. package/dist/hero-enterprise-security.cjs +2 -2
  222. package/dist/hero-enterprise-security.js +2 -2
  223. package/dist/hero-event-registration.cjs +3 -3
  224. package/dist/hero-event-registration.js +3 -3
  225. package/dist/hero-feature-cards-grid.cjs +2 -2
  226. package/dist/hero-feature-cards-grid.js +2 -2
  227. package/dist/hero-floating-images.cjs +6 -8
  228. package/dist/hero-floating-images.js +6 -8
  229. package/dist/hero-fullscreen-background-image.cjs +3 -3
  230. package/dist/hero-fullscreen-background-image.js +3 -3
  231. package/dist/hero-fullscreen-logo-cta.cjs +2 -2
  232. package/dist/hero-fullscreen-logo-cta.js +2 -2
  233. package/dist/hero-gradient-client-focused.cjs +1 -1
  234. package/dist/hero-gradient-client-focused.js +1 -1
  235. package/dist/hero-hiring-animated-text.cjs +2 -2
  236. package/dist/hero-hiring-animated-text.js +2 -2
  237. package/dist/hero-image-slider.cjs +1 -2
  238. package/dist/hero-image-slider.js +1 -2
  239. package/dist/hero-innovation-image-grid.cjs +3 -3
  240. package/dist/hero-innovation-image-grid.js +3 -3
  241. package/dist/hero-mental-health-team.cjs +4 -4
  242. package/dist/hero-mental-health-team.js +4 -4
  243. package/dist/hero-minimal-centered-dark.cjs +1 -1
  244. package/dist/hero-minimal-centered-dark.js +1 -1
  245. package/dist/hero-mobile-app-download.cjs +2 -2
  246. package/dist/hero-mobile-app-download.js +2 -2
  247. package/dist/hero-newsletter-minimal.cjs +1 -1
  248. package/dist/hero-newsletter-minimal.js +1 -1
  249. package/dist/hero-overlay-cta-grid.cjs +5 -5
  250. package/dist/hero-overlay-cta-grid.js +5 -5
  251. package/dist/hero-portfolio-creative.cjs +3 -3
  252. package/dist/hero-portfolio-creative.js +3 -3
  253. package/dist/hero-premium-split-avatars.cjs +4 -4
  254. package/dist/hero-premium-split-avatars.js +4 -4
  255. package/dist/hero-presentation-platform-video.cjs +4 -4
  256. package/dist/hero-presentation-platform-video.js +4 -4
  257. package/dist/hero-pricing-comparison.cjs +3 -3
  258. package/dist/hero-pricing-comparison.js +3 -3
  259. package/dist/hero-product-showcase-floating.cjs +3 -3
  260. package/dist/hero-product-showcase-floating.js +3 -3
  261. package/dist/hero-productivity-launcher-video.cjs +2 -2
  262. package/dist/hero-productivity-launcher-video.js +2 -2
  263. package/dist/hero-saas-dashboard-preview.cjs +1 -1
  264. package/dist/hero-saas-dashboard-preview.js +1 -1
  265. package/dist/hero-shared-inbox-layered.cjs +1 -1
  266. package/dist/hero-shared-inbox-layered.js +1 -1
  267. package/dist/hero-software-growth-video-dialog.cjs +2 -2
  268. package/dist/hero-software-growth-video-dialog.js +2 -2
  269. package/dist/hero-split-geometric-shapes.cjs +177 -23
  270. package/dist/hero-split-geometric-shapes.d.cts +38 -5
  271. package/dist/hero-split-geometric-shapes.d.ts +38 -5
  272. package/dist/hero-split-geometric-shapes.js +178 -24
  273. package/dist/hero-split-icon-cards.cjs +2 -2
  274. package/dist/hero-split-icon-cards.js +2 -2
  275. package/dist/hero-split-image-newsletter.cjs +1 -1
  276. package/dist/hero-split-image-newsletter.js +1 -1
  277. package/dist/hero-startup-launch-cta.cjs +2 -2
  278. package/dist/hero-startup-launch-cta.js +2 -2
  279. package/dist/hero-stats-social-proof.cjs +3 -3
  280. package/dist/hero-stats-social-proof.js +3 -3
  281. package/dist/hero-task-timer-animated.cjs +2 -2
  282. package/dist/hero-task-timer-animated.js +2 -2
  283. package/dist/hero-testimonial-image-grid.cjs +1 -1
  284. package/dist/hero-testimonial-image-grid.js +1 -1
  285. package/dist/hero-therapy-testimonial-grid.cjs +3 -3
  286. package/dist/hero-therapy-testimonial-grid.js +3 -3
  287. package/dist/hero-ui-library-showcase.cjs +1 -1
  288. package/dist/hero-ui-library-showcase.js +1 -1
  289. package/dist/hero-video-background-dark.cjs +1 -1
  290. package/dist/hero-video-background-dark.js +1 -1
  291. package/dist/hero-video-dialog-gradient.cjs +1 -1
  292. package/dist/hero-video-dialog-gradient.js +1 -1
  293. package/dist/hero-welcome-asymmetric-images.cjs +38 -2
  294. package/dist/hero-welcome-asymmetric-images.js +38 -2
  295. package/dist/image-slider.cjs +1 -2
  296. package/dist/image-slider.d.cts +0 -4
  297. package/dist/image-slider.d.ts +0 -4
  298. package/dist/image-slider.js +1 -2
  299. package/dist/index.cjs +22 -23
  300. package/dist/index.js +22 -23
  301. package/dist/industries-badge-list-bordered.cjs +12 -6
  302. package/dist/industries-badge-list-bordered.js +12 -6
  303. package/dist/industries-expandable-showcase.cjs +15 -7
  304. package/dist/industries-expandable-showcase.js +15 -7
  305. package/dist/industries-hover-reveal-grid.cjs +13 -6
  306. package/dist/industries-hover-reveal-grid.js +13 -6
  307. package/dist/industries-timeline-table.cjs +11 -5
  308. package/dist/industries-timeline-table.js +11 -5
  309. package/dist/interior-carousel.cjs +2 -2
  310. package/dist/interior-carousel.js +2 -2
  311. package/dist/link-page-bento-layout.cjs +11 -14
  312. package/dist/link-page-bento-layout.js +11 -14
  313. package/dist/link-page-grid-cards.cjs +8 -12
  314. package/dist/link-page-grid-cards.js +8 -12
  315. package/dist/link-page-minimal-profile.cjs +6 -8
  316. package/dist/link-page-minimal-profile.js +6 -8
  317. package/dist/link-page-newsletter-social.cjs +10 -14
  318. package/dist/link-page-newsletter-social.js +10 -14
  319. package/dist/link-tree-block.cjs +10 -13
  320. package/dist/link-tree-block.js +10 -13
  321. package/dist/list-searchable-grid.cjs +3 -3
  322. package/dist/list-searchable-grid.js +3 -3
  323. package/dist/navbar-animated-preview.cjs +13 -7
  324. package/dist/navbar-animated-preview.js +13 -7
  325. package/dist/navbar-centered-menu.cjs +9 -3
  326. package/dist/navbar-centered-menu.js +9 -3
  327. package/dist/navbar-dark-icons.cjs +14 -8
  328. package/dist/navbar-dark-icons.js +14 -8
  329. package/dist/navbar-dropdown-menu.cjs +11 -5
  330. package/dist/navbar-dropdown-menu.js +11 -5
  331. package/dist/navbar-education-platform.cjs +9 -3
  332. package/dist/navbar-education-platform.js +9 -3
  333. package/dist/navbar-enterprise-mega.cjs +20 -14
  334. package/dist/navbar-enterprise-mega.js +20 -14
  335. package/dist/navbar-feature-grid.cjs +11 -5
  336. package/dist/navbar-feature-grid.js +11 -5
  337. package/dist/navbar-image-preview.cjs +4 -4
  338. package/dist/navbar-image-preview.js +4 -4
  339. package/dist/navbar-mega-menu.cjs +3 -3
  340. package/dist/navbar-mega-menu.js +3 -3
  341. package/dist/navbar-multi-column-groups.cjs +9 -3
  342. package/dist/navbar-multi-column-groups.js +9 -3
  343. package/dist/navbar-platform-resources.cjs +10 -4
  344. package/dist/navbar-platform-resources.js +10 -4
  345. package/dist/navbar-sidebar-mobile.cjs +9 -3
  346. package/dist/navbar-sidebar-mobile.js +9 -3
  347. package/dist/navbar-transparent-overlay.cjs +3 -3
  348. package/dist/navbar-transparent-overlay.js +3 -3
  349. package/dist/process-expandable-timeline.cjs +3 -3
  350. package/dist/process-expandable-timeline.js +3 -3
  351. package/dist/process-hover-cards.cjs +2 -2
  352. package/dist/process-hover-cards.js +2 -2
  353. package/dist/process-icon-timeline.cjs +3 -3
  354. package/dist/process-icon-timeline.js +3 -3
  355. package/dist/process-mission-principles.cjs +2 -2
  356. package/dist/process-mission-principles.js +2 -2
  357. package/dist/process-numbered-services.cjs +2 -2
  358. package/dist/process-numbered-services.js +2 -2
  359. package/dist/process-roadmap-timeline.cjs +6 -6
  360. package/dist/process-roadmap-timeline.js +6 -6
  361. package/dist/process-scroll-image.cjs +2 -2
  362. package/dist/process-scroll-image.js +2 -2
  363. package/dist/process-steps-grid.cjs +2 -2
  364. package/dist/process-steps-grid.js +2 -2
  365. package/dist/process-sticky-steps.cjs +2 -2
  366. package/dist/process-sticky-steps.js +2 -2
  367. package/dist/project-alternating-motion.cjs +1 -1
  368. package/dist/project-alternating-motion.js +1 -1
  369. package/dist/project-background-reveal.cjs +2 -2
  370. package/dist/project-background-reveal.js +2 -2
  371. package/dist/project-card-overlay.cjs +7 -7
  372. package/dist/project-card-overlay.js +7 -7
  373. package/dist/project-carousel-cinematic.cjs +2 -2
  374. package/dist/project-carousel-cinematic.js +2 -2
  375. package/dist/project-carousel-detail-cards.cjs +2 -2
  376. package/dist/project-carousel-detail-cards.js +2 -2
  377. package/dist/project-carousel-minimal.cjs +2 -2
  378. package/dist/project-carousel-minimal.js +2 -2
  379. package/dist/project-detail-architecture-carousel.cjs +4 -4
  380. package/dist/project-detail-architecture-carousel.js +4 -4
  381. package/dist/project-featured-carousel.cjs +1 -1
  382. package/dist/project-featured-carousel.js +1 -1
  383. package/dist/project-filterable-gallery.cjs +5 -5
  384. package/dist/project-filterable-gallery.js +5 -5
  385. package/dist/project-filterable-three-column.cjs +5 -5
  386. package/dist/project-filterable-three-column.js +5 -5
  387. package/dist/project-interactive-hover-reveal.cjs +7 -7
  388. package/dist/project-interactive-hover-reveal.js +7 -7
  389. package/dist/project-masonry-columns.cjs +1 -1
  390. package/dist/project-masonry-columns.js +1 -1
  391. package/dist/project-scroll-reveal.cjs +4 -4
  392. package/dist/project-scroll-reveal.js +4 -4
  393. package/dist/project-showcase-alternating.cjs +1 -1
  394. package/dist/project-showcase-alternating.js +1 -1
  395. package/dist/project-sticky-scroll.cjs +3 -3
  396. package/dist/project-sticky-scroll.js +3 -3
  397. package/dist/project-studio-hover-preview.cjs +7 -7
  398. package/dist/project-studio-hover-preview.js +7 -7
  399. package/dist/project-video-carousel.cjs +2 -2
  400. package/dist/project-video-carousel.js +2 -2
  401. package/dist/project-video-hover-bento.cjs +2 -2
  402. package/dist/project-video-hover-bento.js +2 -2
  403. package/dist/project-video-hover-grid.cjs +2 -2
  404. package/dist/project-video-hover-grid.js +2 -2
  405. package/dist/project-video-hover-rounded.cjs +3 -3
  406. package/dist/project-video-hover-rounded.js +3 -3
  407. package/dist/project-video-hover-stack.cjs +3 -3
  408. package/dist/project-video-hover-stack.js +3 -3
  409. package/dist/project-video-hover-two-by-two.cjs +3 -3
  410. package/dist/project-video-hover-two-by-two.js +3 -3
  411. package/dist/project-zigzag-layout.cjs +1 -1
  412. package/dist/project-zigzag-layout.js +1 -1
  413. package/dist/registry.cjs +1825 -2131
  414. package/dist/registry.js +1825 -2131
  415. package/dist/resource-detail-whitepaper-sidebar.cjs +6 -4
  416. package/dist/resource-detail-whitepaper-sidebar.js +6 -4
  417. package/dist/resource-list-course-cards.cjs +1 -1
  418. package/dist/resource-list-course-cards.js +1 -1
  419. package/dist/resource-list-featured-articles.cjs +6 -6
  420. package/dist/resource-list-featured-articles.js +6 -6
  421. package/dist/resource-list-hero-filter.cjs +2 -2
  422. package/dist/resource-list-hero-filter.js +2 -2
  423. package/dist/resource-list-news-updates.cjs +1 -1
  424. package/dist/resource-list-news-updates.js +1 -1
  425. package/dist/reviews-images-helpful.cjs +27 -197
  426. package/dist/reviews-images-helpful.js +28 -198
  427. package/dist/reviews-list-verified.cjs +11 -62
  428. package/dist/reviews-list-verified.js +12 -63
  429. package/dist/service-detail-image-hero.cjs +2 -2
  430. package/dist/service-detail-image-hero.js +2 -2
  431. package/dist/service-detail-stats-hero.cjs +2 -2
  432. package/dist/service-detail-stats-hero.js +2 -2
  433. package/dist/service-hover-carousel.cjs +2 -2
  434. package/dist/service-hover-carousel.js +2 -2
  435. package/dist/services-list-feature-spotlight.cjs +3 -3
  436. package/dist/services-list-feature-spotlight.js +3 -3
  437. package/dist/stats-circular-progress.cjs +1 -1
  438. package/dist/stats-circular-progress.js +1 -1
  439. package/dist/stats-icon-cards.cjs +1 -1
  440. package/dist/stats-icon-cards.js +1 -1
  441. package/dist/stats-timeline-tabs.cjs +1 -1
  442. package/dist/stats-timeline-tabs.js +1 -1
  443. package/dist/team-media-showcase.cjs +4 -4
  444. package/dist/team-media-showcase.js +4 -4
  445. package/dist/testimonial-carousel-cards.cjs +2 -2
  446. package/dist/testimonial-carousel-cards.js +2 -2
  447. package/dist/testimonials-animated-split.cjs +19 -166
  448. package/dist/testimonials-animated-split.js +19 -166
  449. package/dist/testimonials-bento-grid.cjs +11 -56
  450. package/dist/testimonials-bento-grid.js +12 -57
  451. package/dist/testimonials-carousel-image.cjs +15 -153
  452. package/dist/testimonials-carousel-image.js +15 -153
  453. package/dist/testimonials-centered-avatars.cjs +9 -37
  454. package/dist/testimonials-centered-avatars.js +10 -38
  455. package/dist/testimonials-company-logo.cjs +4 -8
  456. package/dist/testimonials-company-logo.js +4 -8
  457. package/dist/testimonials-grid-add-review.cjs +7 -47
  458. package/dist/testimonials-grid-add-review.js +8 -48
  459. package/dist/testimonials-large-quote.cjs +11 -21
  460. package/dist/testimonials-large-quote.js +12 -22
  461. package/dist/testimonials-logo-cards.cjs +9 -53
  462. package/dist/testimonials-logo-cards.js +10 -54
  463. package/dist/testimonials-marquee.cjs +15 -60
  464. package/dist/testimonials-marquee.js +16 -61
  465. package/dist/testimonials-masonry-grid.cjs +11 -71
  466. package/dist/testimonials-masonry-grid.js +12 -72
  467. package/dist/testimonials-mini-dividers.cjs +9 -61
  468. package/dist/testimonials-mini-dividers.js +10 -62
  469. package/dist/testimonials-minimal-numbered.cjs +48 -57
  470. package/dist/testimonials-minimal-numbered.js +48 -57
  471. package/dist/testimonials-parallax-number.cjs +29 -44
  472. package/dist/testimonials-parallax-number.js +29 -44
  473. package/dist/testimonials-quote-carousel.cjs +9 -48
  474. package/dist/testimonials-quote-carousel.js +10 -49
  475. package/dist/testimonials-scrolling-columns.cjs +9 -165
  476. package/dist/testimonials-scrolling-columns.js +10 -166
  477. package/dist/testimonials-simple-grid.cjs +12 -63
  478. package/dist/testimonials-simple-grid.js +13 -64
  479. package/dist/testimonials-slider-minimal.cjs +18 -41
  480. package/dist/testimonials-slider-minimal.js +18 -41
  481. package/dist/testimonials-split-image.cjs +15 -24
  482. package/dist/testimonials-split-image.js +16 -25
  483. package/dist/testimonials-stats-header.cjs +10 -35
  484. package/dist/testimonials-stats-header.js +11 -36
  485. package/dist/testimonials-twitter-cards.cjs +7 -59
  486. package/dist/testimonials-twitter-cards.js +8 -60
  487. package/dist/testimonials-wall-compact.cjs +9 -94
  488. package/dist/testimonials-wall-compact.js +10 -95
  489. package/dist/timeline-changelog-badges.cjs +4 -4
  490. package/dist/timeline-changelog-badges.js +4 -4
  491. package/dist/timeline-history-prose.cjs +4 -4
  492. package/dist/timeline-history-prose.js +4 -4
  493. package/dist/timeline-horizontal-icons.cjs +3 -3
  494. package/dist/timeline-horizontal-icons.js +3 -3
  495. package/dist/timeline-horizontal-phases.cjs +3 -3
  496. package/dist/timeline-horizontal-phases.js +3 -3
  497. package/dist/timeline-stepper-animated.cjs +3 -3
  498. package/dist/timeline-stepper-animated.js +3 -3
  499. package/dist/timeline-tabbed-phases.cjs +4 -4
  500. package/dist/timeline-tabbed-phases.js +4 -4
  501. package/package.json +1 -1
@@ -6,6 +6,8 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
+ var img = require('@page-speed/img');
10
+ var lightbox = require('@page-speed/lightbox');
9
11
 
10
12
  function _interopNamespace(e) {
11
13
  if (e && e.__esModule) return e;
@@ -830,22 +832,55 @@ function HeroSplitGeometricShapes({
830
832
  description,
831
833
  actions,
832
834
  actionsSlot,
833
- shapesSlot,
835
+ images,
836
+ imagesSlot,
834
837
  background,
835
- spacing,
838
+ spacing = "py-6 md:py-32",
836
839
  pattern,
837
840
  patternOpacity,
838
841
  className,
839
842
  containerClassName,
840
843
  contentClassName,
841
844
  headingClassName,
842
- descriptionClassName
845
+ descriptionClassName,
846
+ imagesClassName,
847
+ imageClassName,
848
+ optixFlowConfig
843
849
  }) {
850
+ const [lightboxOpen, setLightboxOpen] = React.useState(false);
851
+ const [lightboxIndex, setLightboxIndex] = React.useState(0);
852
+ const lightboxItems = React.useMemo(() => {
853
+ if (!images || images.length === 0) return [];
854
+ return images.map((image, index) => {
855
+ const src = typeof image === "string" ? image : image.src;
856
+ const alt = typeof image === "string" ? "Gallery image" : image.alt || "Gallery image";
857
+ return {
858
+ id: `hero-split-geometric-${index}-${src.slice(-8)}`,
859
+ src,
860
+ alt,
861
+ type: "image"
862
+ };
863
+ });
864
+ }, [images]);
865
+ const handleImageClick = React.useCallback((index) => {
866
+ setLightboxIndex(index);
867
+ setLightboxOpen(true);
868
+ }, []);
869
+ const handleLightboxClose = React.useCallback(() => {
870
+ setLightboxOpen(false);
871
+ }, []);
844
872
  const renderActions = React.useMemo(() => {
845
873
  if (actionsSlot) return actionsSlot;
846
874
  if (!actions || actions.length === 0) return null;
847
875
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", children: actions.map((action, index) => {
848
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
876
+ const {
877
+ label,
878
+ icon,
879
+ iconAfter,
880
+ children,
881
+ className: actionClassName,
882
+ ...pressableProps
883
+ } = action;
849
884
  return /* @__PURE__ */ jsxRuntime.jsx(
850
885
  Pressable,
851
886
  {
@@ -862,16 +897,75 @@ function HeroSplitGeometricShapes({
862
897
  );
863
898
  }) });
864
899
  }, [actionsSlot, actions]);
865
- const renderShapes = React.useMemo(() => {
866
- if (shapesSlot) return shapesSlot;
867
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative aspect-7/8 h-full w-full", children: [
868
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[12%] right-[50%] flex aspect-square w-[24%] justify-center rounded-lg border border-border bg-accent" }),
869
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute top-[36%] right-[50%] flex aspect-5/6 w-[40%] justify-center rounded-lg border border-border bg-accent" }),
870
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-[36%] left-[54%] flex aspect-5/6 w-[40%] justify-center rounded-lg border border-border bg-accent" }),
871
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute bottom-[12%] left-[54%] flex aspect-square w-[24%] justify-center rounded-lg border border-border bg-accent" })
872
- ] }) });
873
- }, [shapesSlot]);
874
- return /* @__PURE__ */ jsxRuntime.jsx(
900
+ const renderImages = React.useMemo(() => {
901
+ if (imagesSlot) return imagesSlot;
902
+ if (!images || images.length === 0) return null;
903
+ return /* @__PURE__ */ jsxRuntime.jsx(
904
+ "div",
905
+ {
906
+ className: cn(
907
+ "flex flex-col items-center justify-center",
908
+ imagesClassName
909
+ ),
910
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative aspect-7/8 h-full w-full", children: images.map((image, index) => {
911
+ const src = typeof image === "string" ? image : image.src;
912
+ const alt = typeof image === "string" ? "Gallery image" : image.alt || "Gallery image";
913
+ const itemClass = typeof image === "string" ? void 0 : image.className;
914
+ const positionClasses = [
915
+ "absolute top-[12%] right-[50%] aspect-square w-[24%]",
916
+ // Top left, small square
917
+ "absolute top-[36%] right-[50%] aspect-5/6 w-[40%]",
918
+ // Middle left, tall rectangle
919
+ "absolute bottom-[36%] left-[54%] aspect-5/6 w-[40%]",
920
+ // Middle right, tall rectangle
921
+ "absolute bottom-[12%] left-[54%] aspect-square w-[24%]"
922
+ // Bottom right, small square
923
+ ];
924
+ return /* @__PURE__ */ jsxRuntime.jsx(
925
+ "div",
926
+ {
927
+ className: cn(
928
+ "cursor-pointer overflow-hidden rounded-lg border border-border",
929
+ positionClasses[index % 4],
930
+ itemClass
931
+ ),
932
+ onClick: () => handleImageClick(index),
933
+ role: "button",
934
+ tabIndex: 0,
935
+ onKeyDown: (e) => {
936
+ if (e.key === "Enter" || e.key === " ") {
937
+ e.preventDefault();
938
+ handleImageClick(index);
939
+ }
940
+ },
941
+ children: /* @__PURE__ */ jsxRuntime.jsx(
942
+ img.Img,
943
+ {
944
+ src,
945
+ alt,
946
+ className: cn(
947
+ "h-full w-full object-cover transition-opacity hover:opacity-90",
948
+ imageClassName
949
+ ),
950
+ loading: "lazy",
951
+ optixFlowConfig
952
+ }
953
+ )
954
+ },
955
+ index
956
+ );
957
+ }) })
958
+ }
959
+ );
960
+ }, [
961
+ imagesSlot,
962
+ images,
963
+ imagesClassName,
964
+ imageClassName,
965
+ optixFlowConfig,
966
+ handleImageClick
967
+ ]);
968
+ return /* @__PURE__ */ jsxRuntime.jsxs(
875
969
  Section,
876
970
  {
877
971
  background,
@@ -879,15 +973,75 @@ function HeroSplitGeometricShapes({
879
973
  pattern,
880
974
  patternOpacity,
881
975
  className: cn(className),
882
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container flex flex-col items-center", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "2xl:w-[calc(min(100vw-2*theme(container.padding),100%+8rem))] w-full overflow-clip rounded-lg bg-accent/50", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-8 lg:grid-cols-2", children: [
883
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container flex flex-col items-center px-16 py-16 text-center lg:mx-auto lg:items-start lg:px-16 lg:py-32 lg:text-left", contentClassName), children: [
884
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: badgeText }) : badgeText),
885
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-6 text-4xl font-bold text-pretty lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("my-6 text-4xl font-bold text-pretty lg:text-6xl", headingClassName), children: heading })),
886
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
887
- renderActions
888
- ] }),
889
- renderShapes
890
- ] }) }) })
976
+ containerClassName,
977
+ children: [
978
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col items-center"), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "2xl:w-[calc(min(100vw-2*theme(container.padding),100%+8rem))] w-full overflow-clip rounded-lg bg-muted", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-0 md:gap-8 lg:grid-cols-2", children: [
979
+ /* @__PURE__ */ jsxRuntime.jsxs(
980
+ "div",
981
+ {
982
+ className: cn(
983
+ "container flex flex-col items-center px-10 py-8 text-center lg:mx-auto lg:items-start lg:px-16 lg:py-32 lg:text-left",
984
+ contentClassName
985
+ ),
986
+ children: [
987
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { children: badgeText }) : badgeText),
988
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
989
+ "h1",
990
+ {
991
+ className: cn(
992
+ "my-6 text-4xl font-bold text-pretty lg:text-6xl",
993
+ headingClassName
994
+ ),
995
+ children: heading
996
+ }
997
+ ) : /* @__PURE__ */ jsxRuntime.jsx(
998
+ "h1",
999
+ {
1000
+ className: cn(
1001
+ "my-6 text-4xl font-bold text-pretty lg:text-6xl",
1002
+ headingClassName
1003
+ ),
1004
+ children: heading
1005
+ }
1006
+ )),
1007
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1008
+ "p",
1009
+ {
1010
+ className: cn(
1011
+ "mb-8 max-w-xl lg:text-xl",
1012
+ descriptionClassName
1013
+ ),
1014
+ children: description
1015
+ }
1016
+ ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1017
+ renderActions
1018
+ ]
1019
+ }
1020
+ ),
1021
+ renderImages
1022
+ ] }) }) }),
1023
+ lightboxOpen && /* @__PURE__ */ jsxRuntime.jsx(
1024
+ lightbox.Lightbox,
1025
+ {
1026
+ items: lightboxItems,
1027
+ initialIndex: lightboxIndex,
1028
+ layout: "horizontal",
1029
+ controls: {
1030
+ navigation: true,
1031
+ thumbnails: true,
1032
+ download: true,
1033
+ share: true,
1034
+ fullscreen: true,
1035
+ captions: true,
1036
+ counter: true
1037
+ },
1038
+ onClose: handleLightboxClose,
1039
+ enableKeyboardShortcuts: true,
1040
+ closeOnEscape: true,
1041
+ closeOnBackdropClick: true
1042
+ }
1043
+ )
1044
+ ]
891
1045
  }
892
1046
  );
893
1047
  }
@@ -1,12 +1,29 @@
1
1
  import * as React from 'react';
2
2
  import { f as SectionBackground, g as SectionSpacing } from './community-initiatives-Sm_ZSgyv.cjs';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.cjs';
4
- import { A as ActionConfig } from './blocks-Cohq4eio.cjs';
4
+ import { A as ActionConfig, O as OptixFlowConfig } from './blocks-Cohq4eio.cjs';
5
5
  import 'react/jsx-runtime';
6
6
  import 'class-variance-authority';
7
7
  import './button-variants-lRElsmTc.cjs';
8
8
  import 'class-variance-authority/types';
9
9
 
10
+ /**
11
+ * Image configuration for hero split geometric shapes.
12
+ */
13
+ interface HeroSplitGeometricShapesImage {
14
+ /**
15
+ * Image source URL
16
+ */
17
+ src: string;
18
+ /**
19
+ * Alt text for the image
20
+ */
21
+ alt?: string;
22
+ /**
23
+ * Additional CSS classes for the image
24
+ */
25
+ className?: string;
26
+ }
10
27
  interface HeroSplitGeometricShapesProps {
11
28
  /**
12
29
  * Badge/label text above heading
@@ -29,9 +46,13 @@ interface HeroSplitGeometricShapesProps {
29
46
  */
30
47
  actionsSlot?: React.ReactNode;
31
48
  /**
32
- * Custom slot for geometric shapes (overrides default shapes)
49
+ * Array of images to display in masonry layout (can be strings or objects)
33
50
  */
34
- shapesSlot?: React.ReactNode; /**
51
+ images?: (string | HeroSplitGeometricShapesImage)[];
52
+ /**
53
+ * Custom slot for rendering images (overrides images array)
54
+ */
55
+ imagesSlot?: React.ReactNode; /**
35
56
  * Background style for the section
36
57
  */
37
58
  background?: SectionBackground;
@@ -67,7 +88,19 @@ interface HeroSplitGeometricShapesProps {
67
88
  * Additional CSS classes for the description
68
89
  */
69
90
  descriptionClassName?: string;
91
+ /**
92
+ * Additional CSS classes for the images container
93
+ */
94
+ imagesClassName?: string;
95
+ /**
96
+ * Additional CSS classes for each image
97
+ */
98
+ imageClassName?: string;
99
+ /**
100
+ * OptixFlow image optimization configuration
101
+ */
102
+ optixFlowConfig?: OptixFlowConfig;
70
103
  }
71
- declare function HeroSplitGeometricShapes({ badgeText, heading, description, actions, actionsSlot, shapesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroSplitGeometricShapesProps): React.JSX.Element;
104
+ declare function HeroSplitGeometricShapes({ badgeText, heading, description, actions, actionsSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, imageClassName, optixFlowConfig, }: HeroSplitGeometricShapesProps): React.JSX.Element;
72
105
 
73
- export { HeroSplitGeometricShapes, type HeroSplitGeometricShapesProps };
106
+ export { HeroSplitGeometricShapes, type HeroSplitGeometricShapesImage, type HeroSplitGeometricShapesProps };
@@ -1,12 +1,29 @@
1
1
  import * as React from 'react';
2
2
  import { f as SectionBackground, g as SectionSpacing } from './community-initiatives-BeWIIjA4.js';
3
3
  import { P as PatternName } from './pattern-background-a7gKHzHy.js';
4
- import { A as ActionConfig } from './blocks-k17uluAz.js';
4
+ import { A as ActionConfig, O as OptixFlowConfig } from './blocks-k17uluAz.js';
5
5
  import 'react/jsx-runtime';
6
6
  import 'class-variance-authority';
7
7
  import './button-variants-lRElsmTc.js';
8
8
  import 'class-variance-authority/types';
9
9
 
10
+ /**
11
+ * Image configuration for hero split geometric shapes.
12
+ */
13
+ interface HeroSplitGeometricShapesImage {
14
+ /**
15
+ * Image source URL
16
+ */
17
+ src: string;
18
+ /**
19
+ * Alt text for the image
20
+ */
21
+ alt?: string;
22
+ /**
23
+ * Additional CSS classes for the image
24
+ */
25
+ className?: string;
26
+ }
10
27
  interface HeroSplitGeometricShapesProps {
11
28
  /**
12
29
  * Badge/label text above heading
@@ -29,9 +46,13 @@ interface HeroSplitGeometricShapesProps {
29
46
  */
30
47
  actionsSlot?: React.ReactNode;
31
48
  /**
32
- * Custom slot for geometric shapes (overrides default shapes)
49
+ * Array of images to display in masonry layout (can be strings or objects)
33
50
  */
34
- shapesSlot?: React.ReactNode; /**
51
+ images?: (string | HeroSplitGeometricShapesImage)[];
52
+ /**
53
+ * Custom slot for rendering images (overrides images array)
54
+ */
55
+ imagesSlot?: React.ReactNode; /**
35
56
  * Background style for the section
36
57
  */
37
58
  background?: SectionBackground;
@@ -67,7 +88,19 @@ interface HeroSplitGeometricShapesProps {
67
88
  * Additional CSS classes for the description
68
89
  */
69
90
  descriptionClassName?: string;
91
+ /**
92
+ * Additional CSS classes for the images container
93
+ */
94
+ imagesClassName?: string;
95
+ /**
96
+ * Additional CSS classes for each image
97
+ */
98
+ imageClassName?: string;
99
+ /**
100
+ * OptixFlow image optimization configuration
101
+ */
102
+ optixFlowConfig?: OptixFlowConfig;
70
103
  }
71
- declare function HeroSplitGeometricShapes({ badgeText, heading, description, actions, actionsSlot, shapesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroSplitGeometricShapesProps): React.JSX.Element;
104
+ declare function HeroSplitGeometricShapes({ badgeText, heading, description, actions, actionsSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, imageClassName, optixFlowConfig, }: HeroSplitGeometricShapesProps): React.JSX.Element;
72
105
 
73
- export { HeroSplitGeometricShapes, type HeroSplitGeometricShapesProps };
106
+ export { HeroSplitGeometricShapes, type HeroSplitGeometricShapesImage, type HeroSplitGeometricShapesProps };
@@ -1,10 +1,12 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import React__default, { useMemo } from 'react';
3
+ import React__default, { useState, useMemo, useCallback } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { cva } from 'class-variance-authority';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
+ import { Img } from '@page-speed/img';
9
+ import { Lightbox } from '@page-speed/lightbox';
8
10
 
9
11
  // components/blocks/hero/hero-split-geometric-shapes.tsx
10
12
  function cn(...inputs) {
@@ -809,22 +811,55 @@ function HeroSplitGeometricShapes({
809
811
  description,
810
812
  actions,
811
813
  actionsSlot,
812
- shapesSlot,
814
+ images,
815
+ imagesSlot,
813
816
  background,
814
- spacing,
817
+ spacing = "py-6 md:py-32",
815
818
  pattern,
816
819
  patternOpacity,
817
820
  className,
818
821
  containerClassName,
819
822
  contentClassName,
820
823
  headingClassName,
821
- descriptionClassName
824
+ descriptionClassName,
825
+ imagesClassName,
826
+ imageClassName,
827
+ optixFlowConfig
822
828
  }) {
829
+ const [lightboxOpen, setLightboxOpen] = useState(false);
830
+ const [lightboxIndex, setLightboxIndex] = useState(0);
831
+ const lightboxItems = useMemo(() => {
832
+ if (!images || images.length === 0) return [];
833
+ return images.map((image, index) => {
834
+ const src = typeof image === "string" ? image : image.src;
835
+ const alt = typeof image === "string" ? "Gallery image" : image.alt || "Gallery image";
836
+ return {
837
+ id: `hero-split-geometric-${index}-${src.slice(-8)}`,
838
+ src,
839
+ alt,
840
+ type: "image"
841
+ };
842
+ });
843
+ }, [images]);
844
+ const handleImageClick = useCallback((index) => {
845
+ setLightboxIndex(index);
846
+ setLightboxOpen(true);
847
+ }, []);
848
+ const handleLightboxClose = useCallback(() => {
849
+ setLightboxOpen(false);
850
+ }, []);
823
851
  const renderActions = useMemo(() => {
824
852
  if (actionsSlot) return actionsSlot;
825
853
  if (!actions || actions.length === 0) return null;
826
854
  return /* @__PURE__ */ jsx("div", { className: "flex w-full flex-col justify-center gap-2 sm:flex-row lg:justify-start", children: actions.map((action, index) => {
827
- const { label, icon, iconAfter, children, className: actionClassName, ...pressableProps } = action;
855
+ const {
856
+ label,
857
+ icon,
858
+ iconAfter,
859
+ children,
860
+ className: actionClassName,
861
+ ...pressableProps
862
+ } = action;
828
863
  return /* @__PURE__ */ jsx(
829
864
  Pressable,
830
865
  {
@@ -841,16 +876,75 @@ function HeroSplitGeometricShapes({
841
876
  );
842
877
  }) });
843
878
  }, [actionsSlot, actions]);
844
- const renderShapes = useMemo(() => {
845
- if (shapesSlot) return shapesSlot;
846
- return /* @__PURE__ */ jsx("div", { className: "flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxs("div", { className: "relative aspect-7/8 h-full w-full", children: [
847
- /* @__PURE__ */ jsx("div", { className: "absolute top-[12%] right-[50%] flex aspect-square w-[24%] justify-center rounded-lg border border-border bg-accent" }),
848
- /* @__PURE__ */ jsx("div", { className: "absolute top-[36%] right-[50%] flex aspect-5/6 w-[40%] justify-center rounded-lg border border-border bg-accent" }),
849
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-[36%] left-[54%] flex aspect-5/6 w-[40%] justify-center rounded-lg border border-border bg-accent" }),
850
- /* @__PURE__ */ jsx("div", { className: "absolute bottom-[12%] left-[54%] flex aspect-square w-[24%] justify-center rounded-lg border border-border bg-accent" })
851
- ] }) });
852
- }, [shapesSlot]);
853
- return /* @__PURE__ */ jsx(
879
+ const renderImages = useMemo(() => {
880
+ if (imagesSlot) return imagesSlot;
881
+ if (!images || images.length === 0) return null;
882
+ return /* @__PURE__ */ jsx(
883
+ "div",
884
+ {
885
+ className: cn(
886
+ "flex flex-col items-center justify-center",
887
+ imagesClassName
888
+ ),
889
+ children: /* @__PURE__ */ jsx("div", { className: "relative aspect-7/8 h-full w-full", children: images.map((image, index) => {
890
+ const src = typeof image === "string" ? image : image.src;
891
+ const alt = typeof image === "string" ? "Gallery image" : image.alt || "Gallery image";
892
+ const itemClass = typeof image === "string" ? void 0 : image.className;
893
+ const positionClasses = [
894
+ "absolute top-[12%] right-[50%] aspect-square w-[24%]",
895
+ // Top left, small square
896
+ "absolute top-[36%] right-[50%] aspect-5/6 w-[40%]",
897
+ // Middle left, tall rectangle
898
+ "absolute bottom-[36%] left-[54%] aspect-5/6 w-[40%]",
899
+ // Middle right, tall rectangle
900
+ "absolute bottom-[12%] left-[54%] aspect-square w-[24%]"
901
+ // Bottom right, small square
902
+ ];
903
+ return /* @__PURE__ */ jsx(
904
+ "div",
905
+ {
906
+ className: cn(
907
+ "cursor-pointer overflow-hidden rounded-lg border border-border",
908
+ positionClasses[index % 4],
909
+ itemClass
910
+ ),
911
+ onClick: () => handleImageClick(index),
912
+ role: "button",
913
+ tabIndex: 0,
914
+ onKeyDown: (e) => {
915
+ if (e.key === "Enter" || e.key === " ") {
916
+ e.preventDefault();
917
+ handleImageClick(index);
918
+ }
919
+ },
920
+ children: /* @__PURE__ */ jsx(
921
+ Img,
922
+ {
923
+ src,
924
+ alt,
925
+ className: cn(
926
+ "h-full w-full object-cover transition-opacity hover:opacity-90",
927
+ imageClassName
928
+ ),
929
+ loading: "lazy",
930
+ optixFlowConfig
931
+ }
932
+ )
933
+ },
934
+ index
935
+ );
936
+ }) })
937
+ }
938
+ );
939
+ }, [
940
+ imagesSlot,
941
+ images,
942
+ imagesClassName,
943
+ imageClassName,
944
+ optixFlowConfig,
945
+ handleImageClick
946
+ ]);
947
+ return /* @__PURE__ */ jsxs(
854
948
  Section,
855
949
  {
856
950
  background,
@@ -858,15 +952,75 @@ function HeroSplitGeometricShapes({
858
952
  pattern,
859
953
  patternOpacity,
860
954
  className: cn(className),
861
- children: /* @__PURE__ */ jsx("div", { className: cn("container flex flex-col items-center", containerClassName), children: /* @__PURE__ */ jsx("div", { className: "2xl:w-[calc(min(100vw-2*theme(container.padding),100%+8rem))] w-full overflow-clip rounded-lg bg-accent/50", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-8 lg:grid-cols-2", children: [
862
- /* @__PURE__ */ jsxs("div", { className: cn("container flex flex-col items-center px-16 py-16 text-center lg:mx-auto lg:items-start lg:px-16 lg:py-32 lg:text-left", contentClassName), children: [
863
- badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("p", { children: badgeText }) : badgeText),
864
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("my-6 text-4xl font-bold text-pretty lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("my-6 text-4xl font-bold text-pretty lg:text-6xl", headingClassName), children: heading })),
865
- description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-8 max-w-xl text-muted-foreground lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
866
- renderActions
867
- ] }),
868
- renderShapes
869
- ] }) }) })
955
+ containerClassName,
956
+ children: [
957
+ /* @__PURE__ */ jsx("div", { className: cn("flex flex-col items-center"), children: /* @__PURE__ */ jsx("div", { className: "2xl:w-[calc(min(100vw-2*theme(container.padding),100%+8rem))] w-full overflow-clip rounded-lg bg-muted", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-0 md:gap-8 lg:grid-cols-2", children: [
958
+ /* @__PURE__ */ jsxs(
959
+ "div",
960
+ {
961
+ className: cn(
962
+ "container flex flex-col items-center px-10 py-8 text-center lg:mx-auto lg:items-start lg:px-16 lg:py-32 lg:text-left",
963
+ contentClassName
964
+ ),
965
+ children: [
966
+ badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("p", { children: badgeText }) : badgeText),
967
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
968
+ "h1",
969
+ {
970
+ className: cn(
971
+ "my-6 text-4xl font-bold text-pretty lg:text-6xl",
972
+ headingClassName
973
+ ),
974
+ children: heading
975
+ }
976
+ ) : /* @__PURE__ */ jsx(
977
+ "h1",
978
+ {
979
+ className: cn(
980
+ "my-6 text-4xl font-bold text-pretty lg:text-6xl",
981
+ headingClassName
982
+ ),
983
+ children: heading
984
+ }
985
+ )),
986
+ description && (typeof description === "string" ? /* @__PURE__ */ jsx(
987
+ "p",
988
+ {
989
+ className: cn(
990
+ "mb-8 max-w-xl lg:text-xl",
991
+ descriptionClassName
992
+ ),
993
+ children: description
994
+ }
995
+ ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
996
+ renderActions
997
+ ]
998
+ }
999
+ ),
1000
+ renderImages
1001
+ ] }) }) }),
1002
+ lightboxOpen && /* @__PURE__ */ jsx(
1003
+ Lightbox,
1004
+ {
1005
+ items: lightboxItems,
1006
+ initialIndex: lightboxIndex,
1007
+ layout: "horizontal",
1008
+ controls: {
1009
+ navigation: true,
1010
+ thumbnails: true,
1011
+ download: true,
1012
+ share: true,
1013
+ fullscreen: true,
1014
+ captions: true,
1015
+ counter: true
1016
+ },
1017
+ onClose: handleLightboxClose,
1018
+ enableKeyboardShortcuts: true,
1019
+ closeOnEscape: true,
1020
+ closeOnBackdropClick: true
1021
+ }
1022
+ )
1023
+ ]
870
1024
  }
871
1025
  );
872
1026
  }
@@ -984,7 +984,7 @@ function HeroSplitIconCards({
984
984
  const card = /* @__PURE__ */ jsxRuntime.jsx(Card, { className: "h-full border-border/60 px-0 py-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start gap-4 p-6", children: [
985
985
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-xl bg-primary/10 text-primary", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: item.icon, size: 24 }) }),
986
986
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
987
- /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold text-foreground", children: item.title }),
987
+ /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-lg font-bold ", children: item.title }),
988
988
  item.subtitle ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: item.subtitle }) : null
989
989
  ] })
990
990
  ] }) });
@@ -1002,7 +1002,7 @@ function HeroSplitIconCards({
1002
1002
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-10 lg:grid-cols-2 lg:items-center", children: [
1003
1003
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-6", contentClassName), children: children ? children : /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1004
1004
  eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.25em] text-primary", children: eyebrow }) : eyebrow),
1005
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold text-foreground md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold text-foreground md:text-4xl", headingClassName), children: heading })),
1005
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading })),
1006
1006
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1007
1007
  renderActions
1008
1008
  ] }) }),
@@ -963,7 +963,7 @@ function HeroSplitIconCards({
963
963
  const card = /* @__PURE__ */ jsx(Card, { className: "h-full border-border/60 px-0 py-0", children: /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-4 p-6", children: [
964
964
  /* @__PURE__ */ jsx("div", { className: "flex h-14 w-14 items-center justify-center rounded-xl bg-primary/10 text-primary", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 24 }) }),
965
965
  /* @__PURE__ */ jsxs("div", { children: [
966
- /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold text-foreground", children: item.title }),
966
+ /* @__PURE__ */ jsx("h3", { className: "text-lg font-bold ", children: item.title }),
967
967
  item.subtitle ? /* @__PURE__ */ jsx("p", { className: "mt-2 text-sm text-muted-foreground", children: item.subtitle }) : null
968
968
  ] })
969
969
  ] }) });
@@ -981,7 +981,7 @@ function HeroSplitIconCards({
981
981
  children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-10 lg:grid-cols-2 lg:items-center", children: [
982
982
  /* @__PURE__ */ jsx("div", { className: cn("space-y-6", contentClassName), children: children ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
983
983
  eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx("p", { className: "text-xs font-semibold uppercase tracking-[0.25em] text-primary", children: eyebrow }) : eyebrow),
984
- heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold text-foreground md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold text-foreground md:text-4xl", headingClassName), children: heading })),
984
+ heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl", headingClassName), children: heading })),
985
985
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
986
986
  renderActions
987
987
  ] }) }),