@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
@@ -477,69 +477,8 @@ 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
- avatar7: "https://cdn.ing/assets/i/r/286245/yf2wb1scwmdgntba2on67q0t091d/avatar-7.webp",
490
- avatar8: "https://cdn.ing/assets/i/r/286246/jsrq5sf9oxi8piujnfrdjqmg5zvx/avatar-8.webp"};
491
- var DEFAULT_TESTIMONIALS = [
492
- {
493
- quote: "This platform has completely transformed how we approach our daily operations. The intuitive design and powerful features have made our team significantly more productive. I can't imagine going back to our old workflow.",
494
- author: "Sarah Chen",
495
- role: "Product Manager",
496
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
497
- },
498
- {
499
- quote: "Outstanding support and an exceptional product. Highly recommend!",
500
- author: "Michael Torres",
501
- role: "CEO",
502
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
503
- },
504
- {
505
- quote: "The best investment we've made this year. Our team adopted it instantly and the results speak for themselves.",
506
- author: "Emily Watson",
507
- role: "Operations Director",
508
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
509
- },
510
- {
511
- quote: "Clean interface, powerful features, and excellent documentation. Everything a developer could ask for. The API is well-designed and the SDK makes integration a breeze.",
512
- author: "David Kim",
513
- role: "Senior Developer",
514
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
515
- },
516
- {
517
- quote: "Simple, elegant, and powerful. A game-changer for our workflow.",
518
- author: "Lisa Park",
519
- role: "Engineering Manager",
520
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
521
- },
522
- {
523
- quote: "We've tried many solutions, but this one stands out for its reliability and ease of use. The customer support team is also incredibly responsive.",
524
- author: "Alex Rivera",
525
- role: "Design Director",
526
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
527
- },
528
- {
529
- quote: "Intuitive design that requires minimal training. Our onboarding time dropped significantly since we started using this platform.",
530
- author: "Jordan Lee",
531
- role: "HR Manager",
532
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar7
533
- },
534
- {
535
- quote: "The attention to detail is impressive. Every feature feels thoughtfully designed.",
536
- author: "Maya Patel",
537
- role: "UX Designer",
538
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar8
539
- }
540
- ];
541
480
  function TestimonialsMasonryGrid({
542
- testimonials = DEFAULT_TESTIMONIALS,
481
+ testimonials,
543
482
  testimonialsSlot,
544
483
  heading,
545
484
  description,
@@ -556,23 +495,24 @@ function TestimonialsMasonryGrid({
556
495
  pattern,
557
496
  patternOpacity
558
497
  }) {
559
- const columns = [
498
+ const columns = testimonials ? [
560
499
  testimonials.filter((_, i) => i % 3 === 0),
561
500
  testimonials.filter((_, i) => i % 3 === 1),
562
501
  testimonials.filter((_, i) => i % 3 === 2)
563
- ];
564
- const getAuthorName = (testimonial) => {
502
+ ] : [];
503
+ const getAuthorName = React.useCallback((testimonial) => {
565
504
  if (typeof testimonial.author === "string") return testimonial.author;
566
505
  return "";
567
- };
568
- const getAvatarSrc = (testimonial) => {
506
+ }, []);
507
+ const getAvatarSrc = React.useCallback((testimonial) => {
569
508
  return testimonial.avatarSrc || testimonial.avatar?.src;
570
- };
571
- const getInitials = (name) => {
509
+ }, []);
510
+ const getInitials = React.useCallback((name) => {
572
511
  return name.split(" ").map((n) => n[0]).join("");
573
- };
512
+ }, []);
574
513
  const renderedTestimonials = React.useMemo(() => {
575
514
  if (testimonialsSlot) return testimonialsSlot;
515
+ if (!testimonials || testimonials.length === 0) return null;
576
516
  return /* @__PURE__ */ jsxRuntime.jsx(
577
517
  "div",
578
518
  {
@@ -618,7 +558,7 @@ function TestimonialsMasonryGrid({
618
558
  }) }, columnIndex))
619
559
  }
620
560
  );
621
- }, [testimonialsSlot, gridClassName, columns, cardClassName, quoteClassName, authorClassName]);
561
+ }, [testimonialsSlot, gridClassName, columns, cardClassName, quoteClassName, authorClassName, testimonials, getAuthorName, getAvatarSrc, getInitials]);
622
562
  return /* @__PURE__ */ jsxRuntime.jsxs(
623
563
  Section,
624
564
  {
@@ -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,69 +452,8 @@ 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
- avatar7: "https://cdn.ing/assets/i/r/286245/yf2wb1scwmdgntba2on67q0t091d/avatar-7.webp",
465
- avatar8: "https://cdn.ing/assets/i/r/286246/jsrq5sf9oxi8piujnfrdjqmg5zvx/avatar-8.webp"};
466
- var DEFAULT_TESTIMONIALS = [
467
- {
468
- quote: "This platform has completely transformed how we approach our daily operations. The intuitive design and powerful features have made our team significantly more productive. I can't imagine going back to our old workflow.",
469
- author: "Sarah Chen",
470
- role: "Product Manager",
471
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
472
- },
473
- {
474
- quote: "Outstanding support and an exceptional product. Highly recommend!",
475
- author: "Michael Torres",
476
- role: "CEO",
477
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
478
- },
479
- {
480
- quote: "The best investment we've made this year. Our team adopted it instantly and the results speak for themselves.",
481
- author: "Emily Watson",
482
- role: "Operations Director",
483
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
484
- },
485
- {
486
- quote: "Clean interface, powerful features, and excellent documentation. Everything a developer could ask for. The API is well-designed and the SDK makes integration a breeze.",
487
- author: "David Kim",
488
- role: "Senior Developer",
489
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
490
- },
491
- {
492
- quote: "Simple, elegant, and powerful. A game-changer for our workflow.",
493
- author: "Lisa Park",
494
- role: "Engineering Manager",
495
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
496
- },
497
- {
498
- quote: "We've tried many solutions, but this one stands out for its reliability and ease of use. The customer support team is also incredibly responsive.",
499
- author: "Alex Rivera",
500
- role: "Design Director",
501
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
502
- },
503
- {
504
- quote: "Intuitive design that requires minimal training. Our onboarding time dropped significantly since we started using this platform.",
505
- author: "Jordan Lee",
506
- role: "HR Manager",
507
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar7
508
- },
509
- {
510
- quote: "The attention to detail is impressive. Every feature feels thoughtfully designed.",
511
- author: "Maya Patel",
512
- role: "UX Designer",
513
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar8
514
- }
515
- ];
516
455
  function TestimonialsMasonryGrid({
517
- testimonials = DEFAULT_TESTIMONIALS,
456
+ testimonials,
518
457
  testimonialsSlot,
519
458
  heading,
520
459
  description,
@@ -531,23 +470,24 @@ function TestimonialsMasonryGrid({
531
470
  pattern,
532
471
  patternOpacity
533
472
  }) {
534
- const columns = [
473
+ const columns = testimonials ? [
535
474
  testimonials.filter((_, i) => i % 3 === 0),
536
475
  testimonials.filter((_, i) => i % 3 === 1),
537
476
  testimonials.filter((_, i) => i % 3 === 2)
538
- ];
539
- const getAuthorName = (testimonial) => {
477
+ ] : [];
478
+ const getAuthorName = useCallback((testimonial) => {
540
479
  if (typeof testimonial.author === "string") return testimonial.author;
541
480
  return "";
542
- };
543
- const getAvatarSrc = (testimonial) => {
481
+ }, []);
482
+ const getAvatarSrc = useCallback((testimonial) => {
544
483
  return testimonial.avatarSrc || testimonial.avatar?.src;
545
- };
546
- const getInitials = (name) => {
484
+ }, []);
485
+ const getInitials = useCallback((name) => {
547
486
  return name.split(" ").map((n) => n[0]).join("");
548
- };
487
+ }, []);
549
488
  const renderedTestimonials = useMemo(() => {
550
489
  if (testimonialsSlot) return testimonialsSlot;
490
+ if (!testimonials || testimonials.length === 0) return null;
551
491
  return /* @__PURE__ */ jsx(
552
492
  "div",
553
493
  {
@@ -593,7 +533,7 @@ function TestimonialsMasonryGrid({
593
533
  }) }, columnIndex))
594
534
  }
595
535
  );
596
- }, [testimonialsSlot, gridClassName, columns, cardClassName, quoteClassName, authorClassName]);
536
+ }, [testimonialsSlot, gridClassName, columns, cardClassName, quoteClassName, authorClassName, testimonials, getAuthorName, getAvatarSrc, getInitials]);
597
537
  return /* @__PURE__ */ jsxs(
598
538
  Section,
599
539
  {
@@ -557,59 +557,6 @@ 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
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
565
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
566
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp",
567
- avatar5: "https://cdn.ing/assets/i/r/286243/alziyfoo570m3vade3usufzlzj6x/avatar-5.webp",
568
- avatar6: "https://cdn.ing/assets/i/r/286244/t7u1jpe1phm0fvmh3ybh3flhfg6i/avatar-6.webp"};
569
- var DEFAULT_TESTIMONIALS = [
570
- {
571
- quote: "Exceptional quality and outstanding customer service. Highly recommend!",
572
- author: "Sarah Chen",
573
- role: "Product Manager",
574
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1,
575
- rating: 5
576
- },
577
- {
578
- quote: "This solution has transformed how our team works. Incredible value.",
579
- author: "Michael Torres",
580
- role: "CEO",
581
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2,
582
- rating: 5
583
- },
584
- {
585
- quote: "Simple, elegant, and powerful. Everything we needed in one package.",
586
- author: "Emily Watson",
587
- role: "Operations Lead",
588
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3,
589
- rating: 5
590
- },
591
- {
592
- quote: "The best investment we've made this year. ROI was immediate.",
593
- author: "David Kim",
594
- role: "CTO",
595
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4,
596
- rating: 5
597
- },
598
- {
599
- quote: "Support team is always responsive and helpful. Great experience overall.",
600
- author: "Lisa Park",
601
- role: "Engineering Manager",
602
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5,
603
- rating: 4
604
- },
605
- {
606
- quote: "Clean interface and intuitive design. Our team adopted it instantly.",
607
- author: "Alex Rivera",
608
- role: "Design Director",
609
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6,
610
- rating: 5
611
- }
612
- ];
613
560
  function StarRating({ rating, size = 14 }) {
614
561
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsxRuntime.jsx(
615
562
  DynamicIcon,
@@ -624,7 +571,7 @@ function StarRating({ rating, size = 14 }) {
624
571
  )) });
625
572
  }
626
573
  function TestimonialsMiniDividers({
627
- testimonials = DEFAULT_TESTIMONIALS,
574
+ testimonials,
628
575
  testimonialsSlot,
629
576
  heading,
630
577
  description,
@@ -641,18 +588,19 @@ function TestimonialsMiniDividers({
641
588
  pattern,
642
589
  patternOpacity
643
590
  }) {
644
- const getAuthorName = (testimonial) => {
591
+ const getAuthorName = React.useCallback((testimonial) => {
645
592
  if (typeof testimonial.author === "string") return testimonial.author;
646
593
  return "";
647
- };
648
- const getAvatarSrc = (testimonial) => {
594
+ }, []);
595
+ const getAvatarSrc = React.useCallback((testimonial) => {
649
596
  return testimonial.avatarSrc || testimonial.avatar?.src;
650
- };
651
- const getInitials = (name) => {
597
+ }, []);
598
+ const getInitials = React.useCallback((name) => {
652
599
  return name.split(" ").map((n) => n[0]).join("");
653
- };
600
+ }, []);
654
601
  const renderedTestimonials = React.useMemo(() => {
655
602
  if (testimonialsSlot) return testimonialsSlot;
603
+ if (!testimonials || testimonials.length === 0) return null;
656
604
  return /* @__PURE__ */ jsxRuntime.jsx(
657
605
  "div",
658
606
  {
@@ -711,7 +659,7 @@ function TestimonialsMiniDividers({
711
659
  })
712
660
  }
713
661
  );
714
- }, [testimonialsSlot, gridClassName, testimonials, itemClassName, quoteClassName, authorClassName]);
662
+ }, [testimonialsSlot, gridClassName, testimonials, itemClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
715
663
  return /* @__PURE__ */ jsxRuntime.jsxs(
716
664
  Section,
717
665
  {
@@ -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,59 +535,6 @@ 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
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
543
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp",
544
- avatar4: "https://cdn.ing/assets/i/r/286242/y0zkazxawxrl3twwkw63twf04pdt/avatar-4.webp",
545
- avatar5: "https://cdn.ing/assets/i/r/286243/alziyfoo570m3vade3usufzlzj6x/avatar-5.webp",
546
- avatar6: "https://cdn.ing/assets/i/r/286244/t7u1jpe1phm0fvmh3ybh3flhfg6i/avatar-6.webp"};
547
- var DEFAULT_TESTIMONIALS = [
548
- {
549
- quote: "Exceptional quality and outstanding customer service. Highly recommend!",
550
- author: "Sarah Chen",
551
- role: "Product Manager",
552
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1,
553
- rating: 5
554
- },
555
- {
556
- quote: "This solution has transformed how our team works. Incredible value.",
557
- author: "Michael Torres",
558
- role: "CEO",
559
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2,
560
- rating: 5
561
- },
562
- {
563
- quote: "Simple, elegant, and powerful. Everything we needed in one package.",
564
- author: "Emily Watson",
565
- role: "Operations Lead",
566
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3,
567
- rating: 5
568
- },
569
- {
570
- quote: "The best investment we've made this year. ROI was immediate.",
571
- author: "David Kim",
572
- role: "CTO",
573
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar4,
574
- rating: 5
575
- },
576
- {
577
- quote: "Support team is always responsive and helpful. Great experience overall.",
578
- author: "Lisa Park",
579
- role: "Engineering Manager",
580
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar5,
581
- rating: 4
582
- },
583
- {
584
- quote: "Clean interface and intuitive design. Our team adopted it instantly.",
585
- author: "Alex Rivera",
586
- role: "Design Director",
587
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar6,
588
- rating: 5
589
- }
590
- ];
591
538
  function StarRating({ rating, size = 14 }) {
592
539
  return /* @__PURE__ */ jsx("div", { className: "flex items-center gap-0.5", children: [1, 2, 3, 4, 5].map((star) => /* @__PURE__ */ jsx(
593
540
  DynamicIcon,
@@ -602,7 +549,7 @@ function StarRating({ rating, size = 14 }) {
602
549
  )) });
603
550
  }
604
551
  function TestimonialsMiniDividers({
605
- testimonials = DEFAULT_TESTIMONIALS,
552
+ testimonials,
606
553
  testimonialsSlot,
607
554
  heading,
608
555
  description,
@@ -619,18 +566,19 @@ function TestimonialsMiniDividers({
619
566
  pattern,
620
567
  patternOpacity
621
568
  }) {
622
- const getAuthorName = (testimonial) => {
569
+ const getAuthorName = useCallback((testimonial) => {
623
570
  if (typeof testimonial.author === "string") return testimonial.author;
624
571
  return "";
625
- };
626
- const getAvatarSrc = (testimonial) => {
572
+ }, []);
573
+ const getAvatarSrc = useCallback((testimonial) => {
627
574
  return testimonial.avatarSrc || testimonial.avatar?.src;
628
- };
629
- const getInitials = (name) => {
575
+ }, []);
576
+ const getInitials = useCallback((name) => {
630
577
  return name.split(" ").map((n) => n[0]).join("");
631
- };
578
+ }, []);
632
579
  const renderedTestimonials = useMemo(() => {
633
580
  if (testimonialsSlot) return testimonialsSlot;
581
+ if (!testimonials || testimonials.length === 0) return null;
634
582
  return /* @__PURE__ */ jsx(
635
583
  "div",
636
584
  {
@@ -689,7 +637,7 @@ function TestimonialsMiniDividers({
689
637
  })
690
638
  }
691
639
  );
692
- }, [testimonialsSlot, gridClassName, testimonials, itemClassName, quoteClassName, authorClassName]);
640
+ }, [testimonialsSlot, gridClassName, testimonials, itemClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
693
641
  return /* @__PURE__ */ jsxs(
694
642
  Section,
695
643
  {
@@ -557,39 +557,10 @@ 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
- avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
565
- avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp"};
566
- var DEFAULT_TESTIMONIALS = [
567
- {
568
- quote: "This platform has completely transformed how we approach our daily operations. The intuitive design and powerful features have made our team significantly more productive.",
569
- author: "Sarah Chen",
570
- role: "Design Director",
571
- company: "Linear",
572
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
573
- },
574
- {
575
- quote: "The most elegant solution we've ever implemented. Every detail has been thoughtfully considered, and the results speak for themselves.",
576
- author: "Marcus Webb",
577
- role: "Creative Lead",
578
- company: "Vercel",
579
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
580
- },
581
- {
582
- quote: "Pure craftsmanship in every single detail. The attention to quality is evident throughout the entire experience.",
583
- author: "Elena Frost",
584
- role: "Head of Product",
585
- company: "Stripe",
586
- avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
587
- }
588
- ];
589
560
  function TestimonialsMinimalNumbered({
590
- testimonials = DEFAULT_TESTIMONIALS,
561
+ testimonials,
591
562
  testimonialsSlot,
592
- autoPlayInterval = 5e3,
563
+ autoPlayInterval,
593
564
  className,
594
565
  contentClassName,
595
566
  numberClassName,
@@ -603,6 +574,8 @@ function TestimonialsMinimalNumbered({
603
574
  }) {
604
575
  const [active, setActive] = React.useState(0);
605
576
  const [isTransitioning, setIsTransitioning] = React.useState(false);
577
+ const totalTestimonials = testimonials?.length ?? 0;
578
+ const effectiveAutoPlayInterval = autoPlayInterval ?? 5e3;
606
579
  const handleChange = React.useCallback(
607
580
  (index) => {
608
581
  if (index === active || isTransitioning) return;
@@ -615,31 +588,37 @@ function TestimonialsMinimalNumbered({
615
588
  [active, isTransitioning]
616
589
  );
617
590
  const handlePrev = React.useCallback(() => {
618
- const newIndex = (active - 1 + testimonials.length) % testimonials.length;
591
+ if (totalTestimonials === 0) return;
592
+ const newIndex = (active - 1 + totalTestimonials) % totalTestimonials;
619
593
  handleChange(newIndex);
620
- }, [active, testimonials.length, handleChange]);
594
+ }, [active, totalTestimonials, handleChange]);
621
595
  const handleNext = React.useCallback(() => {
622
- const newIndex = (active + 1) % testimonials.length;
596
+ if (totalTestimonials === 0) return;
597
+ const newIndex = (active + 1) % totalTestimonials;
623
598
  handleChange(newIndex);
624
- }, [active, testimonials.length, handleChange]);
599
+ }, [active, totalTestimonials, handleChange]);
625
600
  React.useEffect(() => {
626
- if (autoPlayInterval <= 0) return;
627
- const interval = setInterval(handleNext, autoPlayInterval);
601
+ if (effectiveAutoPlayInterval <= 0 || totalTestimonials === 0) return;
602
+ const interval = setInterval(handleNext, effectiveAutoPlayInterval);
628
603
  return () => clearInterval(interval);
629
- }, [autoPlayInterval, handleNext]);
630
- const current = testimonials[active];
631
- const getAuthorName = (testimonial) => {
604
+ }, [effectiveAutoPlayInterval, handleNext, totalTestimonials]);
605
+ const current = testimonials?.[active];
606
+ const getAuthorName = React.useCallback((testimonial) => {
632
607
  if (typeof testimonial.author === "string") return testimonial.author;
633
608
  return "";
634
- };
635
- const getAvatarSrc = (testimonial) => {
636
- return testimonial.avatarSrc || testimonial.avatar?.src;
637
- };
638
- const getInitials = (name) => {
609
+ }, []);
610
+ const getAvatarSrc = React.useCallback(
611
+ (testimonial) => {
612
+ return testimonial.avatarSrc || testimonial.avatar?.src;
613
+ },
614
+ []
615
+ );
616
+ const getInitials = React.useCallback((name) => {
639
617
  return name.split(" ").map((n) => n[0]).join("");
640
- };
618
+ }, []);
641
619
  const renderedTestimonial = React.useMemo(() => {
642
620
  if (testimonialsSlot) return testimonialsSlot;
621
+ if (!current) return null;
643
622
  const authorName = getAuthorName(current);
644
623
  const avatarSrc = getAvatarSrc(current);
645
624
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-8", contentClassName), children: [
@@ -647,7 +626,7 @@ function TestimonialsMinimalNumbered({
647
626
  "span",
648
627
  {
649
628
  className: cn(
650
- "text-8xl font-light leading-none text-foreground/10 select-none transition-all duration-500 md:text-9xl",
629
+ "text-8xl font-light leading-none select-none transition-all duration-500 md:text-9xl",
651
630
  numberClassName
652
631
  ),
653
632
  style: { fontFeatureSettings: '"tnum"' },
@@ -685,16 +664,16 @@ function TestimonialsMinimalNumbered({
685
664
  authorClassName
686
665
  ),
687
666
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-4", children: [
688
- /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-12 ring-2 ring-foreground/10", children: [
667
+ /* @__PURE__ */ jsxRuntime.jsxs(Avatar, { className: "size-12 ring-2", children: [
689
668
  /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: avatarSrc, alt: authorName }),
690
669
  /* @__PURE__ */ jsxRuntime.jsx(AvatarFallback, { children: getInitials(authorName) })
691
670
  ] }),
692
671
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
693
672
  current.author && (typeof current.author === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: current.author }) : current.author),
694
- /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm text-muted-foreground", children: [
673
+ /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm", children: [
695
674
  current.role && (typeof current.role === "string" ? current.role : null),
696
675
  current.company && (typeof current.company === "string" ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
697
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mx-2 text-foreground/20", children: "/" }),
676
+ /* @__PURE__ */ jsxRuntime.jsx("span", { className: "mx-2 ", children: "/" }),
698
677
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: current.company })
699
678
  ] }) : null)
700
679
  ] })
@@ -704,7 +683,19 @@ function TestimonialsMinimalNumbered({
704
683
  )
705
684
  ] })
706
685
  ] });
707
- }, [testimonialsSlot, contentClassName, numberClassName, active, current, isTransitioning, quoteClassName, authorClassName]);
686
+ }, [
687
+ testimonialsSlot,
688
+ contentClassName,
689
+ numberClassName,
690
+ active,
691
+ current,
692
+ isTransitioning,
693
+ quoteClassName,
694
+ authorClassName,
695
+ getAuthorName,
696
+ getAvatarSrc,
697
+ getInitials
698
+ ]);
708
699
  return /* @__PURE__ */ jsxRuntime.jsx(
709
700
  Section,
710
701
  {
@@ -723,7 +714,7 @@ function TestimonialsMinimalNumbered({
723
714
  navigationClassName
724
715
  ),
725
716
  children: [
726
- /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-6", children: [
717
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-6", children: testimonials && testimonials.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
727
718
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex items-center gap-3", children: testimonials.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
728
719
  "button",
729
720
  {
@@ -734,26 +725,26 @@ function TestimonialsMinimalNumbered({
734
725
  {
735
726
  className: cn(
736
727
  "block h-px transition-all duration-500 ease-out",
737
- index === active ? "w-12 bg-foreground" : "w-6 bg-foreground/20 group-hover:w-8 group-hover:bg-foreground/40"
728
+ index === active ? "w-12 " : "w-6 group-hover:w-8 "
738
729
  )
739
730
  }
740
731
  )
741
732
  },
742
733
  index
743
734
  )) }),
744
- /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs tracking-widest text-muted-foreground uppercase", children: [
735
+ /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-xs tracking-widest uppercase", children: [
745
736
  String(active + 1).padStart(2, "0"),
746
737
  " /",
747
738
  " ",
748
739
  String(testimonials.length).padStart(2, "0")
749
740
  ] })
750
- ] }),
741
+ ] }) }),
751
742
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-1", children: [
752
743
  /* @__PURE__ */ jsxRuntime.jsx(
753
744
  "button",
754
745
  {
755
746
  onClick: handlePrev,
756
- className: "rounded-full p-2 text-foreground/40 transition-all duration-300 hover:bg-foreground/5 hover:text-foreground",
747
+ className: "rounded-full p-2 transition-all duration-300 ",
757
748
  children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-left", size: 20 })
758
749
  }
759
750
  ),
@@ -761,7 +752,7 @@ function TestimonialsMinimalNumbered({
761
752
  "button",
762
753
  {
763
754
  onClick: handleNext,
764
- className: "rounded-full p-2 text-foreground/40 transition-all duration-300 hover:bg-foreground/5 hover:text-foreground",
755
+ className: "rounded-full p-2 transition-all duration-300 ",
765
756
  children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/chevron-right", size: 20 })
766
757
  }
767
758
  )