@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
@@ -557,19 +557,8 @@ var Section = React__namespace.default.forwardRef(
557
557
  }
558
558
  );
559
559
  Section.displayName = "Section";
560
-
561
- // lib/blockBrandedIconsAndPlaceholders.ts
562
- var blockBrandedIconsAndPlaceholders = {
563
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp"};
564
- var DEFAULT_TESTIMONIAL = {
565
- quote: "This platform has fundamentally changed how we approach our work. The intuitive design, powerful features, and exceptional support have made it an indispensable part of our daily operations. I cannot recommend it highly enough to anyone looking to transform their workflow.",
566
- author: "Sarah Chen",
567
- role: "Chief Executive Officer",
568
- company: "TechVentures Inc.",
569
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
570
- };
571
560
  function TestimonialsLargeQuote({
572
- testimonial = DEFAULT_TESTIMONIAL,
561
+ testimonial,
573
562
  testimonialSlot,
574
563
  className,
575
564
  contentClassName,
@@ -582,18 +571,19 @@ function TestimonialsLargeQuote({
582
571
  pattern,
583
572
  patternOpacity
584
573
  }) {
585
- const getAuthorName = () => {
586
- if (typeof testimonial.author === "string") return testimonial.author;
574
+ const getAuthorName = React.useCallback(() => {
575
+ if (typeof testimonial?.author === "string") return testimonial.author;
587
576
  return "";
588
- };
589
- const getAvatarSrc = () => {
590
- return testimonial.avatarSrc || testimonial.avatar?.src;
591
- };
592
- const getInitials = (name) => {
577
+ }, [testimonial?.author]);
578
+ const getAvatarSrc = React.useCallback(() => {
579
+ return testimonial?.avatarSrc || testimonial?.avatar?.src;
580
+ }, [testimonial?.avatarSrc, testimonial?.avatar?.src]);
581
+ const getInitials = React.useCallback((name) => {
593
582
  return name.split(" ").map((n) => n[0]).join("");
594
- };
583
+ }, []);
595
584
  const renderedTestimonial = React.useMemo(() => {
596
585
  if (testimonialSlot) return testimonialSlot;
586
+ if (!testimonial) return null;
597
587
  const authorName = getAuthorName();
598
588
  const avatarSrc = getAvatarSrc();
599
589
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl text-center", contentClassName), children: [
@@ -638,7 +628,7 @@ function TestimonialsLargeQuote({
638
628
  }
639
629
  )
640
630
  ] });
641
- }, [testimonialSlot, contentClassName, quoteIconClassName, testimonial.quote, quoteClassName, authorClassName, avatarClassName, testimonial.author, testimonial.role, testimonial.company]);
631
+ }, [testimonialSlot, contentClassName, quoteIconClassName, testimonial, quoteClassName, authorClassName, avatarClassName, getAuthorName, getAvatarSrc, getInitials]);
642
632
  return /* @__PURE__ */ jsxRuntime.jsx(
643
633
  Section,
644
634
  {
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  import * as React from 'react';
3
- import React__default, { useMemo } from 'react';
3
+ import React__default, { useCallback, useMemo } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -535,19 +535,8 @@ var Section = React__default.forwardRef(
535
535
  }
536
536
  );
537
537
  Section.displayName = "Section";
538
-
539
- // lib/blockBrandedIconsAndPlaceholders.ts
540
- var blockBrandedIconsAndPlaceholders = {
541
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp"};
542
- var DEFAULT_TESTIMONIAL = {
543
- quote: "This platform has fundamentally changed how we approach our work. The intuitive design, powerful features, and exceptional support have made it an indispensable part of our daily operations. I cannot recommend it highly enough to anyone looking to transform their workflow.",
544
- author: "Sarah Chen",
545
- role: "Chief Executive Officer",
546
- company: "TechVentures Inc.",
547
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
548
- };
549
538
  function TestimonialsLargeQuote({
550
- testimonial = DEFAULT_TESTIMONIAL,
539
+ testimonial,
551
540
  testimonialSlot,
552
541
  className,
553
542
  contentClassName,
@@ -560,18 +549,19 @@ function TestimonialsLargeQuote({
560
549
  pattern,
561
550
  patternOpacity
562
551
  }) {
563
- const getAuthorName = () => {
564
- if (typeof testimonial.author === "string") return testimonial.author;
552
+ const getAuthorName = useCallback(() => {
553
+ if (typeof testimonial?.author === "string") return testimonial.author;
565
554
  return "";
566
- };
567
- const getAvatarSrc = () => {
568
- return testimonial.avatarSrc || testimonial.avatar?.src;
569
- };
570
- const getInitials = (name) => {
555
+ }, [testimonial?.author]);
556
+ const getAvatarSrc = useCallback(() => {
557
+ return testimonial?.avatarSrc || testimonial?.avatar?.src;
558
+ }, [testimonial?.avatarSrc, testimonial?.avatar?.src]);
559
+ const getInitials = useCallback((name) => {
571
560
  return name.split(" ").map((n) => n[0]).join("");
572
- };
561
+ }, []);
573
562
  const renderedTestimonial = useMemo(() => {
574
563
  if (testimonialSlot) return testimonialSlot;
564
+ if (!testimonial) return null;
575
565
  const authorName = getAuthorName();
576
566
  const avatarSrc = getAvatarSrc();
577
567
  return /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-4xl text-center", contentClassName), children: [
@@ -616,7 +606,7 @@ function TestimonialsLargeQuote({
616
606
  }
617
607
  )
618
608
  ] });
619
- }, [testimonialSlot, contentClassName, quoteIconClassName, testimonial.quote, quoteClassName, authorClassName, avatarClassName, testimonial.author, testimonial.role, testimonial.company]);
609
+ }, [testimonialSlot, contentClassName, quoteIconClassName, testimonial, quoteClassName, authorClassName, avatarClassName, getAuthorName, getAvatarSrc, getInitials]);
620
610
  return /* @__PURE__ */ jsx(
621
611
  Section,
622
612
  {
@@ -491,53 +491,8 @@ var Section = React__default.default.forwardRef(
491
491
  }
492
492
  );
493
493
  Section.displayName = "Section";
494
-
495
- // lib/blockBrandedIconsAndPlaceholders.ts
496
- var blockBrandedIconsAndPlaceholders = {
497
- fictionalCompanyLogo1: "https://cdn.ing/assets/files/record/286222/4w39lhwei0pa97up2wjnay3j96gh",
498
- fictionalCompanyLogo2: "https://cdn.ing/assets/files/record/286216/bw4zypgflisdtapxy0n4nbmsmtum",
499
- fictionalCompanyLogo3: "https://cdn.ing/assets/files/record/286215/6wwi6yh2ax2nuo2vqa5gn9vozrgq",
500
- fictionalCompanyLogo4: "https://cdn.ing/assets/files/record/286230/rl5ccu4bblexv7k2xj6ku4xig4xp",
501
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
502
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
503
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
504
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp"};
505
- var DEFAULT_TESTIMONIALS = [
506
- {
507
- quote: "This platform has transformed the way we develop web applications. The extensive collection of UI components and blocks has significantly accelerated our workflow. The flexibility to customize every aspect allows us to create unique user experiences.",
508
- author: "Sarah Chen",
509
- role: "Software Engineer",
510
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1,
511
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo1,
512
- companyLogoAlt: "TechCorp"
513
- },
514
- {
515
- quote: "Extraordinary and very practical. No need to break your head trying to figure things out. A real gold mine for developers who want to ship fast without sacrificing quality.",
516
- author: "Michael Torres",
517
- role: "Software Engineer",
518
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2,
519
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo2,
520
- companyLogoAlt: "StartupXYZ"
521
- },
522
- {
523
- quote: "Great work on the templates. This is one of the best component libraries I have seen so far! The attention to detail and the quality of the code is impressive.",
524
- author: "Emily Watson",
525
- role: "Creator",
526
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3,
527
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo3,
528
- companyLogoAlt: "GrowthCo"
529
- },
530
- {
531
- quote: "The best personal website template I have seen so far! Clean, modern, and incredibly well-documented. Made our development process so much smoother.",
532
- author: "David Kim",
533
- role: "Creator",
534
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4,
535
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo4,
536
- companyLogoAlt: "DevStudio"
537
- }
538
- ];
539
494
  function TestimonialsLogoCards({
540
- testimonials = DEFAULT_TESTIMONIALS,
495
+ testimonials,
541
496
  testimonialsSlot,
542
497
  heading,
543
498
  description,
@@ -557,18 +512,19 @@ function TestimonialsLogoCards({
557
512
  patternOpacity,
558
513
  optixFlowConfig
559
514
  }) {
560
- const getAuthorName = (testimonial) => {
515
+ const getAuthorName = React.useCallback((testimonial) => {
561
516
  if (typeof testimonial.author === "string") return testimonial.author;
562
517
  return "";
563
- };
564
- const getAvatarSrc = (testimonial) => {
518
+ }, []);
519
+ const getAvatarSrc = React.useCallback((testimonial) => {
565
520
  return testimonial.avatarSrc || testimonial.avatar?.src;
566
- };
567
- const getInitials = (name) => {
521
+ }, []);
522
+ const getInitials = React.useCallback((name) => {
568
523
  return name.split(" ").map((n) => n[0]).join("");
569
- };
524
+ }, []);
570
525
  const renderedTestimonials = React.useMemo(() => {
571
526
  if (testimonialsSlot) return testimonialsSlot;
527
+ if (!testimonials || testimonials.length === 0) return null;
572
528
  return /* @__PURE__ */ jsxRuntime.jsx(
573
529
  "div",
574
530
  {
@@ -636,7 +592,7 @@ function TestimonialsLogoCards({
636
592
  })
637
593
  }
638
594
  );
639
- }, [testimonialsSlot, gridClassName, testimonials, cardClassName, cardHeaderClassName, optixFlowConfig, cardContentClassName, quoteClassName, authorClassName]);
595
+ }, [testimonialsSlot, gridClassName, testimonials, cardClassName, cardHeaderClassName, optixFlowConfig, cardContentClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
640
596
  return /* @__PURE__ */ jsxRuntime.jsxs(
641
597
  Section,
642
598
  {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import React, { useMemo } from 'react';
2
+ import React, { useCallback, useMemo } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { jsx, jsxs } from 'react/jsx-runtime';
@@ -466,53 +466,8 @@ var Section = React.forwardRef(
466
466
  }
467
467
  );
468
468
  Section.displayName = "Section";
469
-
470
- // lib/blockBrandedIconsAndPlaceholders.ts
471
- var blockBrandedIconsAndPlaceholders = {
472
- fictionalCompanyLogo1: "https://cdn.ing/assets/files/record/286222/4w39lhwei0pa97up2wjnay3j96gh",
473
- fictionalCompanyLogo2: "https://cdn.ing/assets/files/record/286216/bw4zypgflisdtapxy0n4nbmsmtum",
474
- fictionalCompanyLogo3: "https://cdn.ing/assets/files/record/286215/6wwi6yh2ax2nuo2vqa5gn9vozrgq",
475
- fictionalCompanyLogo4: "https://cdn.ing/assets/files/record/286230/rl5ccu4bblexv7k2xj6ku4xig4xp",
476
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
477
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
478
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
479
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp"};
480
- var DEFAULT_TESTIMONIALS = [
481
- {
482
- quote: "This platform has transformed the way we develop web applications. The extensive collection of UI components and blocks has significantly accelerated our workflow. The flexibility to customize every aspect allows us to create unique user experiences.",
483
- author: "Sarah Chen",
484
- role: "Software Engineer",
485
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1,
486
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo1,
487
- companyLogoAlt: "TechCorp"
488
- },
489
- {
490
- quote: "Extraordinary and very practical. No need to break your head trying to figure things out. A real gold mine for developers who want to ship fast without sacrificing quality.",
491
- author: "Michael Torres",
492
- role: "Software Engineer",
493
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2,
494
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo2,
495
- companyLogoAlt: "StartupXYZ"
496
- },
497
- {
498
- quote: "Great work on the templates. This is one of the best component libraries I have seen so far! The attention to detail and the quality of the code is impressive.",
499
- author: "Emily Watson",
500
- role: "Creator",
501
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3,
502
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo3,
503
- companyLogoAlt: "GrowthCo"
504
- },
505
- {
506
- quote: "The best personal website template I have seen so far! Clean, modern, and incredibly well-documented. Made our development process so much smoother.",
507
- author: "David Kim",
508
- role: "Creator",
509
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4,
510
- companyLogo: blockBrandedIconsAndPlaceholders.fictionalCompanyLogo4,
511
- companyLogoAlt: "DevStudio"
512
- }
513
- ];
514
469
  function TestimonialsLogoCards({
515
- testimonials = DEFAULT_TESTIMONIALS,
470
+ testimonials,
516
471
  testimonialsSlot,
517
472
  heading,
518
473
  description,
@@ -532,18 +487,19 @@ function TestimonialsLogoCards({
532
487
  patternOpacity,
533
488
  optixFlowConfig
534
489
  }) {
535
- const getAuthorName = (testimonial) => {
490
+ const getAuthorName = useCallback((testimonial) => {
536
491
  if (typeof testimonial.author === "string") return testimonial.author;
537
492
  return "";
538
- };
539
- const getAvatarSrc = (testimonial) => {
493
+ }, []);
494
+ const getAvatarSrc = useCallback((testimonial) => {
540
495
  return testimonial.avatarSrc || testimonial.avatar?.src;
541
- };
542
- const getInitials = (name) => {
496
+ }, []);
497
+ const getInitials = useCallback((name) => {
543
498
  return name.split(" ").map((n) => n[0]).join("");
544
- };
499
+ }, []);
545
500
  const renderedTestimonials = useMemo(() => {
546
501
  if (testimonialsSlot) return testimonialsSlot;
502
+ if (!testimonials || testimonials.length === 0) return null;
547
503
  return /* @__PURE__ */ jsx(
548
504
  "div",
549
505
  {
@@ -611,7 +567,7 @@ function TestimonialsLogoCards({
611
567
  })
612
568
  }
613
569
  );
614
- }, [testimonialsSlot, gridClassName, testimonials, cardClassName, cardHeaderClassName, optixFlowConfig, cardContentClassName, quoteClassName, authorClassName]);
570
+ }, [testimonialsSlot, gridClassName, testimonials, cardClassName, cardHeaderClassName, optixFlowConfig, cardContentClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
615
571
  return /* @__PURE__ */ jsxs(
616
572
  Section,
617
573
  {
@@ -477,65 +477,18 @@ var Section = React__default.default.forwardRef(
477
477
  }
478
478
  );
479
479
  Section.displayName = "Section";
480
-
481
- // lib/blockBrandedIconsAndPlaceholders.ts
482
- var blockBrandedIconsAndPlaceholders = {
483
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
484
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
485
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
486
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp",
487
- avatar5: "https://cdn.ing/assets/i/r/286243/alziyfoo570m3vade3usufzlzj6x/avatar-5.webp",
488
- avatar6: "https://cdn.ing/assets/i/r/286244/t7u1jpe1phm0fvmh3ybh3flhfg6i/avatar-6.webp"};
489
- var DEFAULT_TESTIMONIALS = [
490
- {
491
- quote: "This platform has completely transformed how we work. The efficiency gains have been remarkable.",
492
- author: "Sarah Chen",
493
- role: "Product Manager",
494
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
495
- },
496
- {
497
- quote: "The best investment we've made this year. Our team loves it and productivity is through the roof.",
498
- author: "Michael Torres",
499
- role: "CEO",
500
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
501
- },
502
- {
503
- quote: "Incredible support team and an even better product. Highly recommend to anyone looking to scale.",
504
- author: "Emily Watson",
505
- role: "Operations Lead",
506
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
507
- },
508
- {
509
- quote: "Simple, elegant, and powerful. Everything we needed in one package. A game-changer for our workflow.",
510
- author: "David Kim",
511
- role: "CTO",
512
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
513
- },
514
- {
515
- quote: "We've tried many solutions, but this one stands out for its reliability and ease of use.",
516
- author: "Lisa Park",
517
- role: "Engineering Manager",
518
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
519
- },
520
- {
521
- quote: "The attention to detail is impressive. Every feature feels thoughtfully designed.",
522
- author: "Alex Rivera",
523
- role: "Design Director",
524
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
525
- }
526
- ];
527
480
  var speedMap = {
528
481
  slow: "60s",
529
482
  normal: "40s",
530
483
  fast: "20s"
531
484
  };
532
485
  function TestimonialsMarquee({
533
- testimonials = DEFAULT_TESTIMONIALS,
486
+ testimonials,
534
487
  testimonialsSlot,
535
488
  heading,
536
489
  description,
537
- speed = "normal",
538
- pauseOnHover = true,
490
+ speed,
491
+ pauseOnHover,
539
492
  className,
540
493
  headerClassName,
541
494
  headingClassName,
@@ -549,19 +502,21 @@ function TestimonialsMarquee({
549
502
  pattern,
550
503
  patternOpacity
551
504
  }) {
552
- const duplicatedTestimonials = [...testimonials, ...testimonials];
553
- const getAuthorName = (testimonial) => {
505
+ const duplicatedTestimonials = testimonials ? [...testimonials, ...testimonials] : [];
506
+ const effectiveSpeed = speed || "normal";
507
+ const getAuthorName = React.useCallback((testimonial) => {
554
508
  if (typeof testimonial.author === "string") return testimonial.author;
555
509
  return "";
556
- };
557
- const getAvatarSrc = (testimonial) => {
510
+ }, []);
511
+ const getAvatarSrc = React.useCallback((testimonial) => {
558
512
  return testimonial.avatarSrc || testimonial.avatar?.src;
559
- };
560
- const getInitials = (name) => {
513
+ }, []);
514
+ const getInitials = React.useCallback((name) => {
561
515
  return name.split(" ").map((n) => n[0]).join("");
562
- };
516
+ }, []);
563
517
  const renderedTestimonials = React.useMemo(() => {
564
518
  if (testimonialsSlot) return testimonialsSlot;
519
+ if (!testimonials || testimonials.length === 0) return null;
565
520
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative", marqueeClassName), children: [
566
521
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute left-0 top-0 z-10 h-full w-24 bg-gradient-to-r from-background to-transparent" }),
567
522
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pointer-events-none absolute right-0 top-0 z-10 h-full w-24 bg-gradient-to-l from-background to-transparent" }),
@@ -570,14 +525,14 @@ function TestimonialsMarquee({
570
525
  {
571
526
  className: cn(
572
527
  "flex gap-4",
573
- pauseOnHover && "[&:hover_.marquee-content]:pause"
528
+ pauseOnHover !== false && "[&:hover_.marquee-content]:pause"
574
529
  ),
575
530
  children: /* @__PURE__ */ jsxRuntime.jsx(
576
531
  "div",
577
532
  {
578
533
  className: "marquee-content flex shrink-0 animate-marquee gap-4",
579
534
  style: {
580
- animationDuration: speedMap[speed]
535
+ animationDuration: speedMap[effectiveSpeed]
581
536
  },
582
537
  children: duplicatedTestimonials.map((testimonial, index) => {
583
538
  const authorName = getAuthorName(testimonial);
@@ -627,7 +582,7 @@ function TestimonialsMarquee({
627
582
  }
628
583
  )
629
584
  ] });
630
- }, [testimonialsSlot, marqueeClassName, pauseOnHover, speed, duplicatedTestimonials, cardClassName, quoteClassName, authorClassName]);
585
+ }, [testimonialsSlot, marqueeClassName, pauseOnHover, effectiveSpeed, duplicatedTestimonials, cardClassName, quoteClassName, authorClassName, testimonials, getAuthorName, getAvatarSrc, getInitials]);
631
586
  return /* @__PURE__ */ jsxRuntime.jsxs(
632
587
  Section,
633
588
  {
@@ -1,5 +1,5 @@
1
1
  "use client";
2
- import React, { useMemo } from 'react';
2
+ import React, { useCallback, useMemo } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import * as AvatarPrimitive from '@radix-ui/react-avatar';
@@ -452,65 +452,18 @@ var Section = React.forwardRef(
452
452
  }
453
453
  );
454
454
  Section.displayName = "Section";
455
-
456
- // lib/blockBrandedIconsAndPlaceholders.ts
457
- var blockBrandedIconsAndPlaceholders = {
458
- avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
459
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
460
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
461
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp",
462
- avatar5: "https://cdn.ing/assets/i/r/286243/alziyfoo570m3vade3usufzlzj6x/avatar-5.webp",
463
- avatar6: "https://cdn.ing/assets/i/r/286244/t7u1jpe1phm0fvmh3ybh3flhfg6i/avatar-6.webp"};
464
- var DEFAULT_TESTIMONIALS = [
465
- {
466
- quote: "This platform has completely transformed how we work. The efficiency gains have been remarkable.",
467
- author: "Sarah Chen",
468
- role: "Product Manager",
469
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
470
- },
471
- {
472
- quote: "The best investment we've made this year. Our team loves it and productivity is through the roof.",
473
- author: "Michael Torres",
474
- role: "CEO",
475
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
476
- },
477
- {
478
- quote: "Incredible support team and an even better product. Highly recommend to anyone looking to scale.",
479
- author: "Emily Watson",
480
- role: "Operations Lead",
481
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
482
- },
483
- {
484
- quote: "Simple, elegant, and powerful. Everything we needed in one package. A game-changer for our workflow.",
485
- author: "David Kim",
486
- role: "CTO",
487
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
488
- },
489
- {
490
- quote: "We've tried many solutions, but this one stands out for its reliability and ease of use.",
491
- author: "Lisa Park",
492
- role: "Engineering Manager",
493
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
494
- },
495
- {
496
- quote: "The attention to detail is impressive. Every feature feels thoughtfully designed.",
497
- author: "Alex Rivera",
498
- role: "Design Director",
499
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
500
- }
501
- ];
502
455
  var speedMap = {
503
456
  slow: "60s",
504
457
  normal: "40s",
505
458
  fast: "20s"
506
459
  };
507
460
  function TestimonialsMarquee({
508
- testimonials = DEFAULT_TESTIMONIALS,
461
+ testimonials,
509
462
  testimonialsSlot,
510
463
  heading,
511
464
  description,
512
- speed = "normal",
513
- pauseOnHover = true,
465
+ speed,
466
+ pauseOnHover,
514
467
  className,
515
468
  headerClassName,
516
469
  headingClassName,
@@ -524,19 +477,21 @@ function TestimonialsMarquee({
524
477
  pattern,
525
478
  patternOpacity
526
479
  }) {
527
- const duplicatedTestimonials = [...testimonials, ...testimonials];
528
- const getAuthorName = (testimonial) => {
480
+ const duplicatedTestimonials = testimonials ? [...testimonials, ...testimonials] : [];
481
+ const effectiveSpeed = speed || "normal";
482
+ const getAuthorName = useCallback((testimonial) => {
529
483
  if (typeof testimonial.author === "string") return testimonial.author;
530
484
  return "";
531
- };
532
- const getAvatarSrc = (testimonial) => {
485
+ }, []);
486
+ const getAvatarSrc = useCallback((testimonial) => {
533
487
  return testimonial.avatarSrc || testimonial.avatar?.src;
534
- };
535
- const getInitials = (name) => {
488
+ }, []);
489
+ const getInitials = useCallback((name) => {
536
490
  return name.split(" ").map((n) => n[0]).join("");
537
- };
491
+ }, []);
538
492
  const renderedTestimonials = useMemo(() => {
539
493
  if (testimonialsSlot) return testimonialsSlot;
494
+ if (!testimonials || testimonials.length === 0) return null;
540
495
  return /* @__PURE__ */ jsxs("div", { className: cn("relative", marqueeClassName), children: [
541
496
  /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute left-0 top-0 z-10 h-full w-24 bg-gradient-to-r from-background to-transparent" }),
542
497
  /* @__PURE__ */ jsx("div", { className: "pointer-events-none absolute right-0 top-0 z-10 h-full w-24 bg-gradient-to-l from-background to-transparent" }),
@@ -545,14 +500,14 @@ function TestimonialsMarquee({
545
500
  {
546
501
  className: cn(
547
502
  "flex gap-4",
548
- pauseOnHover && "[&:hover_.marquee-content]:pause"
503
+ pauseOnHover !== false && "[&:hover_.marquee-content]:pause"
549
504
  ),
550
505
  children: /* @__PURE__ */ jsx(
551
506
  "div",
552
507
  {
553
508
  className: "marquee-content flex shrink-0 animate-marquee gap-4",
554
509
  style: {
555
- animationDuration: speedMap[speed]
510
+ animationDuration: speedMap[effectiveSpeed]
556
511
  },
557
512
  children: duplicatedTestimonials.map((testimonial, index) => {
558
513
  const authorName = getAuthorName(testimonial);
@@ -602,7 +557,7 @@ function TestimonialsMarquee({
602
557
  }
603
558
  )
604
559
  ] });
605
- }, [testimonialsSlot, marqueeClassName, pauseOnHover, speed, duplicatedTestimonials, cardClassName, quoteClassName, authorClassName]);
560
+ }, [testimonialsSlot, marqueeClassName, pauseOnHover, effectiveSpeed, duplicatedTestimonials, cardClassName, quoteClassName, authorClassName, testimonials, getAuthorName, getAvatarSrc, getInitials]);
606
561
  return /* @__PURE__ */ jsxs(
607
562
  Section,
608
563
  {