@opensite/ui 0.8.6 → 0.8.8
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.
- package/dist/about-developer-profile.cjs +1 -1
- package/dist/about-developer-profile.js +1 -1
- package/dist/about-interactive-tabs.cjs +1 -1
- package/dist/about-interactive-tabs.js +1 -1
- package/dist/about-location-info-hero.cjs +5 -5
- package/dist/about-location-info-hero.js +5 -5
- package/dist/about-mission-features.cjs +3 -3
- package/dist/about-mission-features.js +3 -3
- package/dist/about-mission-principles.cjs +1 -1
- package/dist/about-mission-principles.js +1 -1
- package/dist/about-network-spotlight.cjs +6 -6
- package/dist/about-network-spotlight.js +6 -6
- package/dist/about-split-hero.cjs +4 -4
- package/dist/about-split-hero.js +4 -4
- package/dist/about-startup-team.cjs +3 -3
- package/dist/about-startup-team.js +3 -3
- package/dist/about-story-expertise.cjs +4 -4
- package/dist/about-story-expertise.js +4 -4
- package/dist/article-breadcrumb-social.cjs +1 -1
- package/dist/article-breadcrumb-social.js +1 -1
- package/dist/article-chapters-author.cjs +1 -1
- package/dist/article-chapters-author.js +1 -1
- package/dist/article-compact-toc.cjs +1 -1
- package/dist/article-compact-toc.js +1 -1
- package/dist/article-split-animated.cjs +1 -1
- package/dist/article-split-animated.js +1 -1
- package/dist/article-toc-sidebar.cjs +1 -1
- package/dist/article-toc-sidebar.js +1 -1
- package/dist/banner-countdown-sale.cjs +1 -1
- package/dist/banner-countdown-sale.js +1 -1
- package/dist/banner-social-follow.cjs +1 -1
- package/dist/banner-social-follow.js +1 -1
- package/dist/blog-cards-tagline-cta.cjs +1 -1
- package/dist/blog-cards-tagline-cta.js +1 -1
- package/dist/blog-horizontal-timeline.cjs +2 -2
- package/dist/blog-horizontal-timeline.js +2 -2
- package/dist/blog-tech-insights.cjs +6 -6
- package/dist/blog-tech-insights.js +6 -6
- package/dist/carousel-animated-sections.cjs +7 -8
- package/dist/carousel-animated-sections.js +7 -8
- package/dist/carousel-auto-progress-slides.cjs +7 -7
- package/dist/carousel-auto-progress-slides.js +7 -7
- package/dist/carousel-autoplay-progress.cjs +3 -3
- package/dist/carousel-autoplay-progress.js +3 -3
- package/dist/carousel-fullscreen-scroll-fx.cjs +7 -7
- package/dist/carousel-fullscreen-scroll-fx.js +7 -7
- package/dist/carousel-horizontal-cards.cjs +1 -1
- package/dist/carousel-horizontal-cards.js +1 -1
- package/dist/carousel-icon-sidebar.cjs +3 -3
- package/dist/carousel-icon-sidebar.js +3 -3
- package/dist/carousel-image-hero.cjs +2 -2
- package/dist/carousel-image-hero.js +2 -2
- package/dist/carousel-multi-step-showcase.cjs +1 -1
- package/dist/carousel-multi-step-showcase.js +1 -1
- package/dist/carousel-portfolio-hero.cjs +5 -5
- package/dist/carousel-portfolio-hero.js +5 -5
- package/dist/carousel-progress-slider.cjs +1 -1
- package/dist/carousel-progress-slider.js +1 -1
- package/dist/case-studies-image-grid.cjs +2 -2
- package/dist/case-studies-image-grid.js +2 -2
- package/dist/case-studies-stats-card.cjs +1 -1
- package/dist/case-studies-stats-card.js +1 -1
- package/dist/case-study-prose-sidebar.cjs +1 -1
- package/dist/case-study-prose-sidebar.js +1 -1
- package/dist/case-study-toc-social-sidebar.cjs +1 -1
- package/dist/case-study-toc-social-sidebar.js +1 -1
- package/dist/comparison-ai-models.cjs +15 -15
- package/dist/comparison-ai-models.js +15 -15
- package/dist/comparison-feature-cards.cjs +1 -1
- package/dist/comparison-feature-cards.js +1 -1
- package/dist/comparison-feature-grid.cjs +1 -1
- package/dist/comparison-feature-grid.js +1 -1
- package/dist/comparison-metrics-rows.cjs +6 -6
- package/dist/comparison-metrics-rows.js +6 -6
- package/dist/comparison-table-tabs.cjs +5 -5
- package/dist/comparison-table-tabs.js +5 -5
- package/dist/comparison-table-tooltips.cjs +1 -1
- package/dist/comparison-table-tooltips.js +1 -1
- package/dist/comparison-table-two-column.cjs +2 -2
- package/dist/comparison-table-two-column.js +2 -2
- package/dist/components.cjs +22 -23
- package/dist/components.js +22 -23
- package/dist/contact-emergency.cjs +1 -1
- package/dist/contact-emergency.js +1 -1
- package/dist/contact-help-center.cjs +3 -3
- package/dist/contact-help-center.js +3 -3
- package/dist/cta-background-icon-badge.cjs +1 -1
- package/dist/cta-background-icon-badge.js +1 -1
- package/dist/cta-enterprise-dark-features.cjs +5 -5
- package/dist/cta-enterprise-dark-features.js +5 -5
- package/dist/cta-fullwidth-background.cjs +1 -1
- package/dist/cta-fullwidth-background.js +1 -1
- package/dist/cta-hero-feature-cards.cjs +3 -3
- package/dist/cta-hero-feature-cards.js +3 -3
- package/dist/cta-image-overlay-arrow.cjs +1 -1
- package/dist/cta-image-overlay-arrow.js +1 -1
- package/dist/cta-image-overlay-centered.cjs +2 -2
- package/dist/cta-image-overlay-centered.js +2 -2
- package/dist/cta-split-gradient-image.cjs +1 -1
- package/dist/cta-split-gradient-image.js +1 -1
- package/dist/cta-video-background-hero.cjs +3 -3
- package/dist/cta-video-background-hero.js +3 -3
- package/dist/cta-workflow-tabs.cjs +1 -1
- package/dist/cta-workflow-tabs.js +1 -1
- package/dist/faq-badge-support.cjs +8 -3
- package/dist/faq-badge-support.js +8 -3
- package/dist/faq-bordered-badge.cjs +3 -3
- package/dist/faq-bordered-badge.js +3 -3
- package/dist/faq-card-categories.cjs +1 -1
- package/dist/faq-card-categories.js +1 -1
- package/dist/faq-categorized-sections.cjs +1 -1
- package/dist/faq-categorized-sections.js +1 -1
- package/dist/faq-centered-accordion.cjs +1 -1
- package/dist/faq-centered-accordion.js +1 -1
- package/dist/faq-gradient-categories.cjs +1 -1
- package/dist/faq-gradient-categories.js +1 -1
- package/dist/faq-muted-cards.cjs +1 -1
- package/dist/faq-muted-cards.js +1 -1
- package/dist/faq-profile-sidebar.cjs +3 -3
- package/dist/faq-profile-sidebar.js +3 -3
- package/dist/faq-rounded-cards.cjs +4 -16
- package/dist/faq-rounded-cards.js +4 -16
- package/dist/faq-sidebar-navigation.cjs +1 -1
- package/dist/faq-sidebar-navigation.js +1 -1
- package/dist/faq-simple-accordion.cjs +1 -1
- package/dist/faq-simple-accordion.js +1 -1
- package/dist/faq-split-help.cjs +46 -17
- package/dist/faq-split-help.js +46 -17
- package/dist/faq-split-hero.cjs +5 -5
- package/dist/faq-split-hero.js +5 -5
- package/dist/faq-static-list.cjs +1 -1
- package/dist/faq-static-list.js +1 -1
- package/dist/feature-accordion-image.cjs +1 -1
- package/dist/feature-accordion-image.js +1 -1
- package/dist/feature-bento-utilities.cjs +1 -1
- package/dist/feature-bento-utilities.js +1 -1
- package/dist/feature-capabilities-grid.cjs +13 -13
- package/dist/feature-capabilities-grid.js +13 -13
- package/dist/feature-icon-grid-muted.cjs +2 -2
- package/dist/feature-icon-grid-muted.js +2 -2
- package/dist/feature-icon-tabs-content.cjs +3 -3
- package/dist/feature-icon-tabs-content.js +3 -3
- package/dist/feature-image-cards-three-column.cjs +2 -2
- package/dist/feature-image-cards-three-column.js +2 -2
- package/dist/feature-image-overlay-badge.cjs +2 -2
- package/dist/feature-image-overlay-badge.js +2 -2
- package/dist/feature-integration-cards.cjs +2 -2
- package/dist/feature-integration-cards.js +2 -2
- package/dist/feature-numbered-cards.cjs +1 -1
- package/dist/feature-numbered-cards.js +1 -1
- package/dist/feature-pattern-grid-links.cjs +1 -1
- package/dist/feature-pattern-grid-links.js +1 -1
- package/dist/footer-animated-social.cjs +3 -3
- package/dist/footer-animated-social.js +3 -3
- package/dist/footer-brand-links-contact.cjs +10 -10
- package/dist/footer-brand-links-contact.js +10 -10
- package/dist/footer-comprehensive-links.cjs +20 -20
- package/dist/footer-comprehensive-links.js +20 -20
- package/dist/footer-cta-banner.cjs +4 -4
- package/dist/footer-cta-banner.js +4 -4
- package/dist/footer-cta-social.cjs +2 -2
- package/dist/footer-cta-social.js +2 -2
- package/dist/footer-newsletter-minimal.cjs +5 -5
- package/dist/footer-newsletter-minimal.js +5 -5
- package/dist/footer-simple-centered.cjs +2 -2
- package/dist/footer-simple-centered.js +2 -2
- package/dist/hero-ad-campaign-expert.cjs +2 -2
- package/dist/hero-ad-campaign-expert.js +2 -2
- package/dist/hero-agency-animated-images.cjs +2 -2
- package/dist/hero-agency-animated-images.js +2 -2
- package/dist/hero-architecture-fullscreen.cjs +2 -2
- package/dist/hero-architecture-fullscreen.js +2 -2
- package/dist/hero-billing-platform-logos.cjs +4 -4
- package/dist/hero-billing-platform-logos.js +4 -4
- package/dist/hero-business-operations-mosaic.cjs +2 -2
- package/dist/hero-business-operations-mosaic.js +2 -2
- package/dist/hero-centered-gradient-cta.cjs +1 -1
- package/dist/hero-centered-gradient-cta.js +1 -1
- package/dist/hero-coming-soon-countdown.cjs +3 -3
- package/dist/hero-coming-soon-countdown.js +3 -3
- package/dist/hero-conversation-intelligence.cjs +1 -1
- package/dist/hero-conversation-intelligence.js +1 -1
- package/dist/hero-conversion-video-play.cjs +1 -1
- package/dist/hero-conversion-video-play.js +1 -1
- package/dist/hero-crm-streamlined.cjs +2 -2
- package/dist/hero-crm-streamlined.js +2 -2
- package/dist/hero-customer-support-layered.cjs +1 -1
- package/dist/hero-customer-support-layered.js +1 -1
- package/dist/hero-design-carousel-portfolio.cjs +3 -3
- package/dist/hero-design-carousel-portfolio.js +3 -3
- package/dist/hero-design-showcase-logos.cjs +1 -1
- package/dist/hero-design-showcase-logos.js +1 -1
- package/dist/hero-developer-tools-code.cjs +1 -1
- package/dist/hero-developer-tools-code.js +1 -1
- package/dist/hero-digital-agency-fullscreen.cjs +3 -3
- package/dist/hero-digital-agency-fullscreen.js +3 -3
- package/dist/hero-ecommerce-product-showcase.cjs +2 -2
- package/dist/hero-ecommerce-product-showcase.js +2 -2
- package/dist/hero-enterprise-security.cjs +2 -2
- package/dist/hero-enterprise-security.js +2 -2
- package/dist/hero-event-registration.cjs +3 -3
- package/dist/hero-event-registration.js +3 -3
- package/dist/hero-feature-cards-grid.cjs +2 -2
- package/dist/hero-feature-cards-grid.js +2 -2
- package/dist/hero-floating-images.cjs +6 -8
- package/dist/hero-floating-images.js +6 -8
- package/dist/hero-fullscreen-background-image.cjs +3 -3
- package/dist/hero-fullscreen-background-image.js +3 -3
- package/dist/hero-fullscreen-logo-cta.cjs +2 -2
- package/dist/hero-fullscreen-logo-cta.js +2 -2
- package/dist/hero-gradient-client-focused.cjs +1 -1
- package/dist/hero-gradient-client-focused.js +1 -1
- package/dist/hero-hiring-animated-text.cjs +2 -2
- package/dist/hero-hiring-animated-text.js +2 -2
- package/dist/hero-image-slider.cjs +1 -2
- package/dist/hero-image-slider.js +1 -2
- package/dist/hero-innovation-image-grid.cjs +3 -3
- package/dist/hero-innovation-image-grid.js +3 -3
- package/dist/hero-mental-health-team.cjs +4 -4
- package/dist/hero-mental-health-team.js +4 -4
- package/dist/hero-minimal-centered-dark.cjs +1 -1
- package/dist/hero-minimal-centered-dark.js +1 -1
- package/dist/hero-mobile-app-download.cjs +2 -2
- package/dist/hero-mobile-app-download.js +2 -2
- package/dist/hero-newsletter-minimal.cjs +1 -1
- package/dist/hero-newsletter-minimal.js +1 -1
- package/dist/hero-overlay-cta-grid.cjs +5 -5
- package/dist/hero-overlay-cta-grid.js +5 -5
- package/dist/hero-portfolio-creative.cjs +3 -3
- package/dist/hero-portfolio-creative.js +3 -3
- package/dist/hero-premium-split-avatars.cjs +4 -4
- package/dist/hero-premium-split-avatars.js +4 -4
- package/dist/hero-presentation-platform-video.cjs +4 -4
- package/dist/hero-presentation-platform-video.js +4 -4
- package/dist/hero-pricing-comparison.cjs +3 -3
- package/dist/hero-pricing-comparison.js +3 -3
- package/dist/hero-product-showcase-floating.cjs +3 -3
- package/dist/hero-product-showcase-floating.js +3 -3
- package/dist/hero-productivity-launcher-video.cjs +2 -2
- package/dist/hero-productivity-launcher-video.js +2 -2
- package/dist/hero-saas-dashboard-preview.cjs +1 -1
- package/dist/hero-saas-dashboard-preview.js +1 -1
- package/dist/hero-shared-inbox-layered.cjs +1 -1
- package/dist/hero-shared-inbox-layered.js +1 -1
- package/dist/hero-software-growth-video-dialog.cjs +2 -2
- package/dist/hero-software-growth-video-dialog.js +2 -2
- package/dist/hero-split-geometric-shapes.cjs +177 -23
- package/dist/hero-split-geometric-shapes.d.cts +38 -5
- package/dist/hero-split-geometric-shapes.d.ts +38 -5
- package/dist/hero-split-geometric-shapes.js +178 -24
- package/dist/hero-split-icon-cards.cjs +2 -2
- package/dist/hero-split-icon-cards.js +2 -2
- package/dist/hero-split-image-newsletter.cjs +1 -1
- package/dist/hero-split-image-newsletter.js +1 -1
- package/dist/hero-startup-launch-cta.cjs +2 -2
- package/dist/hero-startup-launch-cta.js +2 -2
- package/dist/hero-stats-social-proof.cjs +3 -3
- package/dist/hero-stats-social-proof.js +3 -3
- package/dist/hero-task-timer-animated.cjs +2 -2
- package/dist/hero-task-timer-animated.js +2 -2
- package/dist/hero-testimonial-image-grid.cjs +1 -1
- package/dist/hero-testimonial-image-grid.js +1 -1
- package/dist/hero-therapy-testimonial-grid.cjs +3 -3
- package/dist/hero-therapy-testimonial-grid.js +3 -3
- package/dist/hero-ui-library-showcase.cjs +1 -1
- package/dist/hero-ui-library-showcase.js +1 -1
- package/dist/hero-video-background-dark.cjs +1 -1
- package/dist/hero-video-background-dark.js +1 -1
- package/dist/hero-video-dialog-gradient.cjs +1 -1
- package/dist/hero-video-dialog-gradient.js +1 -1
- package/dist/hero-welcome-asymmetric-images.cjs +38 -2
- package/dist/hero-welcome-asymmetric-images.js +38 -2
- package/dist/image-slider.cjs +1 -2
- package/dist/image-slider.d.cts +0 -4
- package/dist/image-slider.d.ts +0 -4
- package/dist/image-slider.js +1 -2
- package/dist/index.cjs +59 -23
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +58 -24
- package/dist/industries-badge-list-bordered.cjs +12 -6
- package/dist/industries-badge-list-bordered.js +12 -6
- package/dist/industries-expandable-showcase.cjs +15 -7
- package/dist/industries-expandable-showcase.js +15 -7
- package/dist/industries-hover-reveal-grid.cjs +13 -6
- package/dist/industries-hover-reveal-grid.js +13 -6
- package/dist/industries-timeline-table.cjs +11 -5
- package/dist/industries-timeline-table.js +11 -5
- package/dist/interior-carousel.cjs +2 -2
- package/dist/interior-carousel.js +2 -2
- package/dist/link-page-bento-layout.cjs +11 -14
- package/dist/link-page-bento-layout.js +11 -14
- package/dist/link-page-grid-cards.cjs +8 -12
- package/dist/link-page-grid-cards.js +8 -12
- package/dist/link-page-minimal-profile.cjs +6 -8
- package/dist/link-page-minimal-profile.js +6 -8
- package/dist/link-page-newsletter-social.cjs +10 -14
- package/dist/link-page-newsletter-social.js +10 -14
- package/dist/link-tree-block.cjs +10 -13
- package/dist/link-tree-block.js +10 -13
- package/dist/list-searchable-grid.cjs +3 -3
- package/dist/list-searchable-grid.js +3 -3
- package/dist/navbar-animated-preview.cjs +5 -5
- package/dist/navbar-animated-preview.js +5 -5
- package/dist/navbar-centered-menu.cjs +1 -1
- package/dist/navbar-centered-menu.js +1 -1
- package/dist/navbar-dark-icons.cjs +6 -6
- package/dist/navbar-dark-icons.js +6 -6
- package/dist/navbar-dropdown-menu.cjs +3 -3
- package/dist/navbar-dropdown-menu.js +3 -3
- package/dist/navbar-education-platform.cjs +1 -1
- package/dist/navbar-education-platform.js +1 -1
- package/dist/navbar-enterprise-mega.cjs +12 -12
- package/dist/navbar-enterprise-mega.js +12 -12
- package/dist/navbar-feature-grid.cjs +3 -3
- package/dist/navbar-feature-grid.js +3 -3
- package/dist/navbar-image-preview.cjs +4 -4
- package/dist/navbar-image-preview.js +4 -4
- package/dist/navbar-mega-menu.cjs +3 -3
- package/dist/navbar-mega-menu.js +3 -3
- package/dist/navbar-multi-column-groups.cjs +1 -1
- package/dist/navbar-multi-column-groups.js +1 -1
- package/dist/navbar-platform-resources.cjs +2 -2
- package/dist/navbar-platform-resources.js +2 -2
- package/dist/navbar-sidebar-mobile.cjs +1 -1
- package/dist/navbar-sidebar-mobile.js +1 -1
- package/dist/navbar-transparent-overlay.cjs +3 -3
- package/dist/navbar-transparent-overlay.js +3 -3
- package/dist/process-expandable-timeline.cjs +3 -3
- package/dist/process-expandable-timeline.js +3 -3
- package/dist/process-hover-cards.cjs +2 -2
- package/dist/process-hover-cards.js +2 -2
- package/dist/process-icon-timeline.cjs +3 -3
- package/dist/process-icon-timeline.js +3 -3
- package/dist/process-mission-principles.cjs +2 -2
- package/dist/process-mission-principles.js +2 -2
- package/dist/process-numbered-services.cjs +2 -2
- package/dist/process-numbered-services.js +2 -2
- package/dist/process-roadmap-timeline.cjs +6 -6
- package/dist/process-roadmap-timeline.js +6 -6
- package/dist/process-scroll-image.cjs +2 -2
- package/dist/process-scroll-image.js +2 -2
- package/dist/process-steps-grid.cjs +2 -2
- package/dist/process-steps-grid.js +2 -2
- package/dist/process-sticky-steps.cjs +2 -2
- package/dist/process-sticky-steps.js +2 -2
- package/dist/project-alternating-motion.cjs +1 -1
- package/dist/project-alternating-motion.js +1 -1
- package/dist/project-background-reveal.cjs +2 -2
- package/dist/project-background-reveal.js +2 -2
- package/dist/project-card-overlay.cjs +7 -7
- package/dist/project-card-overlay.js +7 -7
- package/dist/project-carousel-cinematic.cjs +2 -2
- package/dist/project-carousel-cinematic.js +2 -2
- package/dist/project-carousel-detail-cards.cjs +2 -2
- package/dist/project-carousel-detail-cards.js +2 -2
- package/dist/project-carousel-minimal.cjs +2 -2
- package/dist/project-carousel-minimal.js +2 -2
- package/dist/project-detail-architecture-carousel.cjs +4 -4
- package/dist/project-detail-architecture-carousel.js +4 -4
- package/dist/project-featured-carousel.cjs +1 -1
- package/dist/project-featured-carousel.js +1 -1
- package/dist/project-filterable-gallery.cjs +5 -5
- package/dist/project-filterable-gallery.js +5 -5
- package/dist/project-filterable-three-column.cjs +5 -5
- package/dist/project-filterable-three-column.js +5 -5
- package/dist/project-interactive-hover-reveal.cjs +7 -7
- package/dist/project-interactive-hover-reveal.js +7 -7
- package/dist/project-masonry-columns.cjs +1 -1
- package/dist/project-masonry-columns.js +1 -1
- package/dist/project-scroll-reveal.cjs +4 -4
- package/dist/project-scroll-reveal.js +4 -4
- package/dist/project-showcase-alternating.cjs +1 -1
- package/dist/project-showcase-alternating.js +1 -1
- package/dist/project-sticky-scroll.cjs +3 -3
- package/dist/project-sticky-scroll.js +3 -3
- package/dist/project-studio-hover-preview.cjs +7 -7
- package/dist/project-studio-hover-preview.js +7 -7
- package/dist/project-video-carousel.cjs +2 -2
- package/dist/project-video-carousel.js +2 -2
- package/dist/project-video-hover-bento.cjs +2 -2
- package/dist/project-video-hover-bento.js +2 -2
- package/dist/project-video-hover-grid.cjs +2 -2
- package/dist/project-video-hover-grid.js +2 -2
- package/dist/project-video-hover-rounded.cjs +3 -3
- package/dist/project-video-hover-rounded.js +3 -3
- package/dist/project-video-hover-stack.cjs +3 -3
- package/dist/project-video-hover-stack.js +3 -3
- package/dist/project-video-hover-two-by-two.cjs +3 -3
- package/dist/project-video-hover-two-by-two.js +3 -3
- package/dist/project-zigzag-layout.cjs +1 -1
- package/dist/project-zigzag-layout.js +1 -1
- package/dist/registry.cjs +1383 -1850
- package/dist/registry.js +1383 -1850
- package/dist/resource-detail-whitepaper-sidebar.cjs +6 -4
- package/dist/resource-detail-whitepaper-sidebar.js +6 -4
- package/dist/resource-list-course-cards.cjs +1 -1
- package/dist/resource-list-course-cards.js +1 -1
- package/dist/resource-list-featured-articles.cjs +6 -6
- package/dist/resource-list-featured-articles.js +6 -6
- package/dist/resource-list-hero-filter.cjs +2 -2
- package/dist/resource-list-hero-filter.js +2 -2
- package/dist/resource-list-news-updates.cjs +1 -1
- package/dist/resource-list-news-updates.js +1 -1
- package/dist/reviews-images-helpful.cjs +27 -197
- package/dist/reviews-images-helpful.js +28 -198
- package/dist/reviews-list-verified.cjs +11 -62
- package/dist/reviews-list-verified.js +12 -63
- package/dist/service-detail-image-hero.cjs +2 -2
- package/dist/service-detail-image-hero.js +2 -2
- package/dist/service-detail-stats-hero.cjs +2 -2
- package/dist/service-detail-stats-hero.js +2 -2
- package/dist/service-hover-carousel.cjs +2 -2
- package/dist/service-hover-carousel.js +2 -2
- package/dist/services-list-feature-spotlight.cjs +3 -3
- package/dist/services-list-feature-spotlight.js +3 -3
- package/dist/stats-circular-progress.cjs +1 -1
- package/dist/stats-circular-progress.js +1 -1
- package/dist/stats-icon-cards.cjs +1 -1
- package/dist/stats-icon-cards.js +1 -1
- package/dist/stats-timeline-tabs.cjs +1 -1
- package/dist/stats-timeline-tabs.js +1 -1
- package/dist/team-media-showcase.cjs +4 -4
- package/dist/team-media-showcase.js +4 -4
- package/dist/testimonial-carousel-cards.cjs +2 -2
- package/dist/testimonial-carousel-cards.js +2 -2
- package/dist/testimonials-animated-split.cjs +19 -166
- package/dist/testimonials-animated-split.js +19 -166
- package/dist/testimonials-bento-grid.cjs +11 -56
- package/dist/testimonials-bento-grid.js +12 -57
- package/dist/testimonials-carousel-image.cjs +15 -153
- package/dist/testimonials-carousel-image.js +15 -153
- package/dist/testimonials-centered-avatars.cjs +9 -37
- package/dist/testimonials-centered-avatars.js +10 -38
- package/dist/testimonials-company-logo.cjs +4 -8
- package/dist/testimonials-company-logo.js +4 -8
- package/dist/testimonials-grid-add-review.cjs +7 -47
- package/dist/testimonials-grid-add-review.js +8 -48
- package/dist/testimonials-large-quote.cjs +11 -21
- package/dist/testimonials-large-quote.js +12 -22
- package/dist/testimonials-logo-cards.cjs +9 -53
- package/dist/testimonials-logo-cards.js +10 -54
- package/dist/testimonials-marquee.cjs +15 -60
- package/dist/testimonials-marquee.js +16 -61
- package/dist/testimonials-masonry-grid.cjs +11 -71
- package/dist/testimonials-masonry-grid.js +12 -72
- package/dist/testimonials-mini-dividers.cjs +9 -61
- package/dist/testimonials-mini-dividers.js +10 -62
- package/dist/testimonials-minimal-numbered.cjs +48 -57
- package/dist/testimonials-minimal-numbered.js +48 -57
- package/dist/testimonials-parallax-number.cjs +29 -44
- package/dist/testimonials-parallax-number.js +29 -44
- package/dist/testimonials-quote-carousel.cjs +9 -48
- package/dist/testimonials-quote-carousel.js +10 -49
- package/dist/testimonials-scrolling-columns.cjs +9 -165
- package/dist/testimonials-scrolling-columns.js +10 -166
- package/dist/testimonials-simple-grid.cjs +12 -63
- package/dist/testimonials-simple-grid.js +13 -64
- package/dist/testimonials-slider-minimal.cjs +18 -41
- package/dist/testimonials-slider-minimal.js +18 -41
- package/dist/testimonials-split-image.cjs +15 -24
- package/dist/testimonials-split-image.js +16 -25
- package/dist/testimonials-stats-header.cjs +10 -35
- package/dist/testimonials-stats-header.js +11 -36
- package/dist/testimonials-twitter-cards.cjs +7 -59
- package/dist/testimonials-twitter-cards.js +8 -60
- package/dist/testimonials-wall-compact.cjs +9 -94
- package/dist/testimonials-wall-compact.js +10 -95
- package/dist/timeline-changelog-badges.cjs +4 -4
- package/dist/timeline-changelog-badges.js +4 -4
- package/dist/timeline-history-prose.cjs +4 -4
- package/dist/timeline-history-prose.js +4 -4
- package/dist/timeline-horizontal-icons.cjs +3 -3
- package/dist/timeline-horizontal-icons.js +3 -3
- package/dist/timeline-horizontal-phases.cjs +3 -3
- package/dist/timeline-horizontal-phases.js +3 -3
- package/dist/timeline-stepper-animated.cjs +3 -3
- package/dist/timeline-stepper-animated.js +3 -3
- package/dist/timeline-tabbed-phases.cjs +4 -4
- package/dist/timeline-tabbed-phases.js +4 -4
- package/dist/utils.cjs +37 -0
- package/dist/utils.d.cts +107 -1
- package/dist/utils.d.ts +107 -1
- package/dist/utils.js +36 -1
- package/package.json +1 -1
|
@@ -477,65 +477,12 @@ 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: "The platform exceeded all our expectations. Implementation was smooth and the results were immediate.",
|
|
492
|
-
author: "Sarah Chen",
|
|
493
|
-
role: "Product Manager",
|
|
494
|
-
company: "TechCorp",
|
|
495
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
496
|
-
},
|
|
497
|
-
{
|
|
498
|
-
quote: "Outstanding customer support and a product that actually delivers on its promises. Rare combination!",
|
|
499
|
-
author: "Michael Torres",
|
|
500
|
-
role: "CEO",
|
|
501
|
-
company: "StartupXYZ",
|
|
502
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
|
|
503
|
-
},
|
|
504
|
-
{
|
|
505
|
-
quote: "We've seen a 50% increase in efficiency since switching. The ROI speaks for itself.",
|
|
506
|
-
author: "Emily Watson",
|
|
507
|
-
role: "Operations Director",
|
|
508
|
-
company: "GrowthCo",
|
|
509
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
|
|
510
|
-
},
|
|
511
|
-
{
|
|
512
|
-
quote: "Clean interface, powerful features, and excellent documentation. Everything a developer could ask for.",
|
|
513
|
-
author: "David Kim",
|
|
514
|
-
role: "Senior Developer",
|
|
515
|
-
company: "DevStudio",
|
|
516
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
|
|
517
|
-
},
|
|
518
|
-
{
|
|
519
|
-
quote: "The best decision we made this quarter. Our team adopted it instantly and loves using it daily.",
|
|
520
|
-
author: "Lisa Park",
|
|
521
|
-
role: "Team Lead",
|
|
522
|
-
company: "InnovateLabs",
|
|
523
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
|
|
524
|
-
},
|
|
525
|
-
{
|
|
526
|
-
quote: "Intuitive design that requires minimal training. Our onboarding time dropped significantly.",
|
|
527
|
-
author: "Alex Rivera",
|
|
528
|
-
role: "HR Manager",
|
|
529
|
-
company: "PeopleCo",
|
|
530
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
|
|
531
|
-
}
|
|
532
|
-
];
|
|
533
480
|
function TestimonialsSimpleGrid({
|
|
534
|
-
testimonials
|
|
481
|
+
testimonials,
|
|
535
482
|
testimonialsSlot,
|
|
536
483
|
heading,
|
|
537
484
|
description,
|
|
538
|
-
columns
|
|
485
|
+
columns,
|
|
539
486
|
className,
|
|
540
487
|
headerClassName,
|
|
541
488
|
headingClassName,
|
|
@@ -554,19 +501,21 @@ function TestimonialsSimpleGrid({
|
|
|
554
501
|
3: "sm:grid-cols-2 lg:grid-cols-3",
|
|
555
502
|
4: "sm:grid-cols-2 lg:grid-cols-4"
|
|
556
503
|
};
|
|
557
|
-
const
|
|
504
|
+
const effectiveColumns = columns || 3;
|
|
505
|
+
const getAuthorName = React.useCallback((testimonial) => {
|
|
558
506
|
if (typeof testimonial.author === "string") return testimonial.author;
|
|
559
507
|
return "";
|
|
560
|
-
};
|
|
561
|
-
const getAvatarSrc = (testimonial) => {
|
|
508
|
+
}, []);
|
|
509
|
+
const getAvatarSrc = React.useCallback((testimonial) => {
|
|
562
510
|
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
563
|
-
};
|
|
564
|
-
const getInitials = (name) => {
|
|
511
|
+
}, []);
|
|
512
|
+
const getInitials = React.useCallback((name) => {
|
|
565
513
|
return name.split(" ").map((n) => n[0]).join("");
|
|
566
|
-
};
|
|
514
|
+
}, []);
|
|
567
515
|
const renderedTestimonials = React.useMemo(() => {
|
|
568
516
|
if (testimonialsSlot) return testimonialsSlot;
|
|
569
|
-
|
|
517
|
+
if (!testimonials || testimonials.length === 0) return null;
|
|
518
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid gap-6", gridCols[effectiveColumns], gridClassName), children: testimonials.map((testimonial, index) => {
|
|
570
519
|
const authorName = getAuthorName(testimonial);
|
|
571
520
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
572
521
|
return /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "p-6", children: [
|
|
@@ -599,7 +548,7 @@ function TestimonialsSimpleGrid({
|
|
|
599
548
|
] })
|
|
600
549
|
] }) }, index);
|
|
601
550
|
}) });
|
|
602
|
-
}, [testimonialsSlot, gridCols,
|
|
551
|
+
}, [testimonialsSlot, gridCols, effectiveColumns, gridClassName, testimonials, cardClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
603
552
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
604
553
|
Section,
|
|
605
554
|
{
|
|
@@ -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,12 @@ 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: "The platform exceeded all our expectations. Implementation was smooth and the results were immediate.",
|
|
467
|
-
author: "Sarah Chen",
|
|
468
|
-
role: "Product Manager",
|
|
469
|
-
company: "TechCorp",
|
|
470
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
471
|
-
},
|
|
472
|
-
{
|
|
473
|
-
quote: "Outstanding customer support and a product that actually delivers on its promises. Rare combination!",
|
|
474
|
-
author: "Michael Torres",
|
|
475
|
-
role: "CEO",
|
|
476
|
-
company: "StartupXYZ",
|
|
477
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
|
|
478
|
-
},
|
|
479
|
-
{
|
|
480
|
-
quote: "We've seen a 50% increase in efficiency since switching. The ROI speaks for itself.",
|
|
481
|
-
author: "Emily Watson",
|
|
482
|
-
role: "Operations Director",
|
|
483
|
-
company: "GrowthCo",
|
|
484
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
|
|
485
|
-
},
|
|
486
|
-
{
|
|
487
|
-
quote: "Clean interface, powerful features, and excellent documentation. Everything a developer could ask for.",
|
|
488
|
-
author: "David Kim",
|
|
489
|
-
role: "Senior Developer",
|
|
490
|
-
company: "DevStudio",
|
|
491
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar4
|
|
492
|
-
},
|
|
493
|
-
{
|
|
494
|
-
quote: "The best decision we made this quarter. Our team adopted it instantly and loves using it daily.",
|
|
495
|
-
author: "Lisa Park",
|
|
496
|
-
role: "Team Lead",
|
|
497
|
-
company: "InnovateLabs",
|
|
498
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar5
|
|
499
|
-
},
|
|
500
|
-
{
|
|
501
|
-
quote: "Intuitive design that requires minimal training. Our onboarding time dropped significantly.",
|
|
502
|
-
author: "Alex Rivera",
|
|
503
|
-
role: "HR Manager",
|
|
504
|
-
company: "PeopleCo",
|
|
505
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar6
|
|
506
|
-
}
|
|
507
|
-
];
|
|
508
455
|
function TestimonialsSimpleGrid({
|
|
509
|
-
testimonials
|
|
456
|
+
testimonials,
|
|
510
457
|
testimonialsSlot,
|
|
511
458
|
heading,
|
|
512
459
|
description,
|
|
513
|
-
columns
|
|
460
|
+
columns,
|
|
514
461
|
className,
|
|
515
462
|
headerClassName,
|
|
516
463
|
headingClassName,
|
|
@@ -529,19 +476,21 @@ function TestimonialsSimpleGrid({
|
|
|
529
476
|
3: "sm:grid-cols-2 lg:grid-cols-3",
|
|
530
477
|
4: "sm:grid-cols-2 lg:grid-cols-4"
|
|
531
478
|
};
|
|
532
|
-
const
|
|
479
|
+
const effectiveColumns = columns || 3;
|
|
480
|
+
const getAuthorName = useCallback((testimonial) => {
|
|
533
481
|
if (typeof testimonial.author === "string") return testimonial.author;
|
|
534
482
|
return "";
|
|
535
|
-
};
|
|
536
|
-
const getAvatarSrc = (testimonial) => {
|
|
483
|
+
}, []);
|
|
484
|
+
const getAvatarSrc = useCallback((testimonial) => {
|
|
537
485
|
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
538
|
-
};
|
|
539
|
-
const getInitials = (name) => {
|
|
486
|
+
}, []);
|
|
487
|
+
const getInitials = useCallback((name) => {
|
|
540
488
|
return name.split(" ").map((n) => n[0]).join("");
|
|
541
|
-
};
|
|
489
|
+
}, []);
|
|
542
490
|
const renderedTestimonials = useMemo(() => {
|
|
543
491
|
if (testimonialsSlot) return testimonialsSlot;
|
|
544
|
-
|
|
492
|
+
if (!testimonials || testimonials.length === 0) return null;
|
|
493
|
+
return /* @__PURE__ */ jsx("div", { className: cn("grid gap-6", gridCols[effectiveColumns], gridClassName), children: testimonials.map((testimonial, index) => {
|
|
545
494
|
const authorName = getAuthorName(testimonial);
|
|
546
495
|
const avatarSrc = getAvatarSrc(testimonial);
|
|
547
496
|
return /* @__PURE__ */ jsx(Card, { className: cardClassName, children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6", children: [
|
|
@@ -574,7 +523,7 @@ function TestimonialsSimpleGrid({
|
|
|
574
523
|
] })
|
|
575
524
|
] }) }, index);
|
|
576
525
|
}) });
|
|
577
|
-
}, [testimonialsSlot, gridCols,
|
|
526
|
+
}, [testimonialsSlot, gridCols, effectiveColumns, gridClassName, testimonials, cardClassName, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
578
527
|
return /* @__PURE__ */ jsxs(
|
|
579
528
|
Section,
|
|
580
529
|
{
|
|
@@ -454,36 +454,10 @@ var Section = React__default.default.forwardRef(
|
|
|
454
454
|
}
|
|
455
455
|
);
|
|
456
456
|
Section.displayName = "Section";
|
|
457
|
-
|
|
458
|
-
// lib/blockBrandedIconsAndPlaceholders.ts
|
|
459
|
-
var blockBrandedIconsAndPlaceholders = {
|
|
460
|
-
avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
|
|
461
|
-
avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
|
|
462
|
-
avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp"};
|
|
463
|
-
var DEFAULT_TESTIMONIALS = [
|
|
464
|
-
{
|
|
465
|
-
quote: "This platform has completely transformed how our team collaborates. The intuitive interface and powerful features have made us significantly more productive.",
|
|
466
|
-
author: "Sarah Chen",
|
|
467
|
-
role: "Product Manager at TechCorp",
|
|
468
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
469
|
-
},
|
|
470
|
-
{
|
|
471
|
-
quote: "I've tried dozens of similar tools, but nothing comes close to the elegance and functionality of this solution. It's become indispensable to our workflow.",
|
|
472
|
-
author: "Michael Torres",
|
|
473
|
-
role: "CEO at StartupXYZ",
|
|
474
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
|
|
475
|
-
},
|
|
476
|
-
{
|
|
477
|
-
quote: "The customer support is exceptional. Any time we've had questions, the team has been incredibly responsive and helpful. Truly a pleasure to work with.",
|
|
478
|
-
author: "Emily Watson",
|
|
479
|
-
role: "Operations Lead at GrowthCo",
|
|
480
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
|
|
481
|
-
}
|
|
482
|
-
];
|
|
483
457
|
function TestimonialsSliderMinimal({
|
|
484
|
-
testimonials
|
|
458
|
+
testimonials,
|
|
485
459
|
testimonialsSlot,
|
|
486
|
-
autoPlayInterval
|
|
460
|
+
autoPlayInterval,
|
|
487
461
|
className,
|
|
488
462
|
contentClassName,
|
|
489
463
|
quoteClassName,
|
|
@@ -497,6 +471,8 @@ function TestimonialsSliderMinimal({
|
|
|
497
471
|
}) {
|
|
498
472
|
const [currentIndex, setCurrentIndex] = React.useState(0);
|
|
499
473
|
const [isTransitioning, setIsTransitioning] = React.useState(false);
|
|
474
|
+
const totalTestimonials = testimonials?.length ?? 0;
|
|
475
|
+
const effectiveAutoPlayInterval = autoPlayInterval ?? 5e3;
|
|
500
476
|
const goToSlide = React.useCallback(
|
|
501
477
|
(index) => {
|
|
502
478
|
if (index === currentIndex) return;
|
|
@@ -509,26 +485,27 @@ function TestimonialsSliderMinimal({
|
|
|
509
485
|
[currentIndex]
|
|
510
486
|
);
|
|
511
487
|
React.useEffect(() => {
|
|
512
|
-
if (
|
|
488
|
+
if (effectiveAutoPlayInterval <= 0 || totalTestimonials === 0) return;
|
|
513
489
|
const interval = setInterval(() => {
|
|
514
|
-
const nextIndex = (currentIndex + 1) %
|
|
490
|
+
const nextIndex = (currentIndex + 1) % totalTestimonials;
|
|
515
491
|
goToSlide(nextIndex);
|
|
516
|
-
},
|
|
492
|
+
}, effectiveAutoPlayInterval);
|
|
517
493
|
return () => clearInterval(interval);
|
|
518
|
-
}, [currentIndex,
|
|
519
|
-
const current = testimonials[currentIndex];
|
|
520
|
-
const getAuthorName = (testimonial) => {
|
|
494
|
+
}, [currentIndex, effectiveAutoPlayInterval, totalTestimonials, goToSlide]);
|
|
495
|
+
const current = testimonials?.[currentIndex];
|
|
496
|
+
const getAuthorName = React.useCallback((testimonial) => {
|
|
521
497
|
if (typeof testimonial.author === "string") return testimonial.author;
|
|
522
498
|
return "";
|
|
523
|
-
};
|
|
524
|
-
const getAvatarSrc = (testimonial) => {
|
|
499
|
+
}, []);
|
|
500
|
+
const getAvatarSrc = React.useCallback((testimonial) => {
|
|
525
501
|
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
526
|
-
};
|
|
527
|
-
const getInitials = (name) => {
|
|
502
|
+
}, []);
|
|
503
|
+
const getInitials = React.useCallback((name) => {
|
|
528
504
|
return name.split(" ").map((n) => n[0]).join("");
|
|
529
|
-
};
|
|
505
|
+
}, []);
|
|
530
506
|
const renderedTestimonial = React.useMemo(() => {
|
|
531
507
|
if (testimonialsSlot) return testimonialsSlot;
|
|
508
|
+
if (!current) return null;
|
|
532
509
|
const authorName = getAuthorName(current);
|
|
533
510
|
const avatarSrc = getAvatarSrc(current);
|
|
534
511
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -575,7 +552,7 @@ function TestimonialsSliderMinimal({
|
|
|
575
552
|
]
|
|
576
553
|
}
|
|
577
554
|
);
|
|
578
|
-
}, [testimonialsSlot, isTransitioning, current
|
|
555
|
+
}, [testimonialsSlot, isTransitioning, current, quoteClassName, authorClassName, avatarClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
579
556
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
580
557
|
Section,
|
|
581
558
|
{
|
|
@@ -586,7 +563,7 @@ function TestimonialsSliderMinimal({
|
|
|
586
563
|
className,
|
|
587
564
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-3xl text-center", contentClassName), children: [
|
|
588
565
|
renderedTestimonial,
|
|
589
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 flex justify-center gap-2", dotsClassName), children: testimonials.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
566
|
+
testimonials && testimonials.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8 flex justify-center gap-2", dotsClassName), children: testimonials.map((_, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
590
567
|
"button",
|
|
591
568
|
{
|
|
592
569
|
onClick: () => goToSlide(index),
|
|
@@ -429,36 +429,10 @@ var Section = React.forwardRef(
|
|
|
429
429
|
}
|
|
430
430
|
);
|
|
431
431
|
Section.displayName = "Section";
|
|
432
|
-
|
|
433
|
-
// lib/blockBrandedIconsAndPlaceholders.ts
|
|
434
|
-
var blockBrandedIconsAndPlaceholders = {
|
|
435
|
-
avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp",
|
|
436
|
-
avatar2: "https://cdn.ing/assets/i/r/286240/vgf3rrkwn0769pfdtpal60uo5vpw/avatar-2.webp",
|
|
437
|
-
avatar3: "https://cdn.ing/assets/i/r/286241/05vbqt3lls0q974r8fv4zn0njllq/avatar-3.webp"};
|
|
438
|
-
var DEFAULT_TESTIMONIALS = [
|
|
439
|
-
{
|
|
440
|
-
quote: "This platform has completely transformed how our team collaborates. The intuitive interface and powerful features have made us significantly more productive.",
|
|
441
|
-
author: "Sarah Chen",
|
|
442
|
-
role: "Product Manager at TechCorp",
|
|
443
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
444
|
-
},
|
|
445
|
-
{
|
|
446
|
-
quote: "I've tried dozens of similar tools, but nothing comes close to the elegance and functionality of this solution. It's become indispensable to our workflow.",
|
|
447
|
-
author: "Michael Torres",
|
|
448
|
-
role: "CEO at StartupXYZ",
|
|
449
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar2
|
|
450
|
-
},
|
|
451
|
-
{
|
|
452
|
-
quote: "The customer support is exceptional. Any time we've had questions, the team has been incredibly responsive and helpful. Truly a pleasure to work with.",
|
|
453
|
-
author: "Emily Watson",
|
|
454
|
-
role: "Operations Lead at GrowthCo",
|
|
455
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar3
|
|
456
|
-
}
|
|
457
|
-
];
|
|
458
432
|
function TestimonialsSliderMinimal({
|
|
459
|
-
testimonials
|
|
433
|
+
testimonials,
|
|
460
434
|
testimonialsSlot,
|
|
461
|
-
autoPlayInterval
|
|
435
|
+
autoPlayInterval,
|
|
462
436
|
className,
|
|
463
437
|
contentClassName,
|
|
464
438
|
quoteClassName,
|
|
@@ -472,6 +446,8 @@ function TestimonialsSliderMinimal({
|
|
|
472
446
|
}) {
|
|
473
447
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
474
448
|
const [isTransitioning, setIsTransitioning] = useState(false);
|
|
449
|
+
const totalTestimonials = testimonials?.length ?? 0;
|
|
450
|
+
const effectiveAutoPlayInterval = autoPlayInterval ?? 5e3;
|
|
475
451
|
const goToSlide = useCallback(
|
|
476
452
|
(index) => {
|
|
477
453
|
if (index === currentIndex) return;
|
|
@@ -484,26 +460,27 @@ function TestimonialsSliderMinimal({
|
|
|
484
460
|
[currentIndex]
|
|
485
461
|
);
|
|
486
462
|
useEffect(() => {
|
|
487
|
-
if (
|
|
463
|
+
if (effectiveAutoPlayInterval <= 0 || totalTestimonials === 0) return;
|
|
488
464
|
const interval = setInterval(() => {
|
|
489
|
-
const nextIndex = (currentIndex + 1) %
|
|
465
|
+
const nextIndex = (currentIndex + 1) % totalTestimonials;
|
|
490
466
|
goToSlide(nextIndex);
|
|
491
|
-
},
|
|
467
|
+
}, effectiveAutoPlayInterval);
|
|
492
468
|
return () => clearInterval(interval);
|
|
493
|
-
}, [currentIndex,
|
|
494
|
-
const current = testimonials[currentIndex];
|
|
495
|
-
const getAuthorName = (testimonial) => {
|
|
469
|
+
}, [currentIndex, effectiveAutoPlayInterval, totalTestimonials, goToSlide]);
|
|
470
|
+
const current = testimonials?.[currentIndex];
|
|
471
|
+
const getAuthorName = useCallback((testimonial) => {
|
|
496
472
|
if (typeof testimonial.author === "string") return testimonial.author;
|
|
497
473
|
return "";
|
|
498
|
-
};
|
|
499
|
-
const getAvatarSrc = (testimonial) => {
|
|
474
|
+
}, []);
|
|
475
|
+
const getAvatarSrc = useCallback((testimonial) => {
|
|
500
476
|
return testimonial.avatarSrc || testimonial.avatar?.src;
|
|
501
|
-
};
|
|
502
|
-
const getInitials = (name) => {
|
|
477
|
+
}, []);
|
|
478
|
+
const getInitials = useCallback((name) => {
|
|
503
479
|
return name.split(" ").map((n) => n[0]).join("");
|
|
504
|
-
};
|
|
480
|
+
}, []);
|
|
505
481
|
const renderedTestimonial = useMemo(() => {
|
|
506
482
|
if (testimonialsSlot) return testimonialsSlot;
|
|
483
|
+
if (!current) return null;
|
|
507
484
|
const authorName = getAuthorName(current);
|
|
508
485
|
const avatarSrc = getAvatarSrc(current);
|
|
509
486
|
return /* @__PURE__ */ jsxs(
|
|
@@ -550,7 +527,7 @@ function TestimonialsSliderMinimal({
|
|
|
550
527
|
]
|
|
551
528
|
}
|
|
552
529
|
);
|
|
553
|
-
}, [testimonialsSlot, isTransitioning, current
|
|
530
|
+
}, [testimonialsSlot, isTransitioning, current, quoteClassName, authorClassName, avatarClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
554
531
|
return /* @__PURE__ */ jsx(
|
|
555
532
|
Section,
|
|
556
533
|
{
|
|
@@ -561,7 +538,7 @@ function TestimonialsSliderMinimal({
|
|
|
561
538
|
className,
|
|
562
539
|
children: /* @__PURE__ */ jsxs("div", { className: cn("mx-auto max-w-3xl text-center", contentClassName), children: [
|
|
563
540
|
renderedTestimonial,
|
|
564
|
-
/* @__PURE__ */ jsx("div", { className: cn("mt-8 flex justify-center gap-2", dotsClassName), children: testimonials.map((_, index) => /* @__PURE__ */ jsx(
|
|
541
|
+
testimonials && testimonials.length > 0 && /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex justify-center gap-2", dotsClassName), children: testimonials.map((_, index) => /* @__PURE__ */ jsx(
|
|
565
542
|
"button",
|
|
566
543
|
{
|
|
567
544
|
onClick: () => goToSlide(index),
|
|
@@ -558,23 +558,12 @@ var Section = React__namespace.default.forwardRef(
|
|
|
558
558
|
}
|
|
559
559
|
);
|
|
560
560
|
Section.displayName = "Section";
|
|
561
|
-
|
|
562
|
-
// lib/blockBrandedIconsAndPlaceholders.ts
|
|
563
|
-
var blockBrandedIconsAndPlaceholders = {
|
|
564
|
-
avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp"};
|
|
565
|
-
var DEFAULT_TESTIMONIAL = {
|
|
566
|
-
quote: "Working with this team has been transformative for our business. Their expertise and dedication to quality have helped us achieve results we never thought possible. The attention to detail and commitment to excellence is evident in everything they do.",
|
|
567
|
-
author: "Sarah Chen",
|
|
568
|
-
role: "Chief Executive Officer",
|
|
569
|
-
company: "TechVentures Inc.",
|
|
570
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
571
|
-
};
|
|
572
561
|
function TestimonialsSplitImage({
|
|
573
|
-
testimonial
|
|
562
|
+
testimonial,
|
|
574
563
|
testimonialSlot,
|
|
575
564
|
imageSrc,
|
|
576
565
|
imageAlt,
|
|
577
|
-
imagePosition
|
|
566
|
+
imagePosition,
|
|
578
567
|
className,
|
|
579
568
|
gridClassName,
|
|
580
569
|
imageClassName,
|
|
@@ -588,18 +577,20 @@ function TestimonialsSplitImage({
|
|
|
588
577
|
patternOpacity,
|
|
589
578
|
optixFlowConfig
|
|
590
579
|
}) {
|
|
591
|
-
const
|
|
592
|
-
|
|
580
|
+
const effectiveImagePosition = imagePosition || "left";
|
|
581
|
+
const getAuthorName = React.useCallback(() => {
|
|
582
|
+
if (typeof testimonial?.author === "string") return testimonial.author;
|
|
593
583
|
return "";
|
|
594
|
-
};
|
|
595
|
-
const getAvatarSrc = () => {
|
|
596
|
-
return testimonial
|
|
597
|
-
};
|
|
598
|
-
const getInitials = (name) => {
|
|
584
|
+
}, [testimonial?.author]);
|
|
585
|
+
const getAvatarSrc = React.useCallback(() => {
|
|
586
|
+
return testimonial?.avatarSrc || testimonial?.avatar?.src;
|
|
587
|
+
}, [testimonial?.avatarSrc, testimonial?.avatar?.src]);
|
|
588
|
+
const getInitials = React.useCallback((name) => {
|
|
599
589
|
return name.split(" ").map((n) => n[0]).join("");
|
|
600
|
-
};
|
|
590
|
+
}, []);
|
|
601
591
|
const renderedTestimonial = React.useMemo(() => {
|
|
602
592
|
if (testimonialSlot) return testimonialSlot;
|
|
593
|
+
if (!testimonial) return null;
|
|
603
594
|
const authorName = getAuthorName();
|
|
604
595
|
const avatarSrc = getAvatarSrc();
|
|
605
596
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -607,7 +598,7 @@ function TestimonialsSplitImage({
|
|
|
607
598
|
{
|
|
608
599
|
className: cn(
|
|
609
600
|
"space-y-6",
|
|
610
|
-
|
|
601
|
+
effectiveImagePosition === "right" && "lg:order-1",
|
|
611
602
|
contentClassName
|
|
612
603
|
),
|
|
613
604
|
children: [
|
|
@@ -645,7 +636,7 @@ function TestimonialsSplitImage({
|
|
|
645
636
|
]
|
|
646
637
|
}
|
|
647
638
|
);
|
|
648
|
-
}, [testimonialSlot,
|
|
639
|
+
}, [testimonialSlot, effectiveImagePosition, contentClassName, quoteIconClassName, testimonial, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
649
640
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
650
641
|
Section,
|
|
651
642
|
{
|
|
@@ -664,7 +655,7 @@ function TestimonialsSplitImage({
|
|
|
664
655
|
{
|
|
665
656
|
className: cn(
|
|
666
657
|
"relative aspect-4/3 overflow-hidden rounded-2xl lg:aspect-square",
|
|
667
|
-
|
|
658
|
+
effectiveImagePosition === "right" && "lg:order-2",
|
|
668
659
|
imageClassName
|
|
669
660
|
),
|
|
670
661
|
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -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';
|
|
@@ -536,23 +536,12 @@ var Section = React__default.forwardRef(
|
|
|
536
536
|
}
|
|
537
537
|
);
|
|
538
538
|
Section.displayName = "Section";
|
|
539
|
-
|
|
540
|
-
// lib/blockBrandedIconsAndPlaceholders.ts
|
|
541
|
-
var blockBrandedIconsAndPlaceholders = {
|
|
542
|
-
avatar1: "https://cdn.ing/assets/i/r/286239/ebm7o3j2kx48vw98emnwjaf5qvl6/avatar-1.webp"};
|
|
543
|
-
var DEFAULT_TESTIMONIAL = {
|
|
544
|
-
quote: "Working with this team has been transformative for our business. Their expertise and dedication to quality have helped us achieve results we never thought possible. The attention to detail and commitment to excellence is evident in everything they do.",
|
|
545
|
-
author: "Sarah Chen",
|
|
546
|
-
role: "Chief Executive Officer",
|
|
547
|
-
company: "TechVentures Inc.",
|
|
548
|
-
avatarSrc: blockBrandedIconsAndPlaceholders.avatar1
|
|
549
|
-
};
|
|
550
539
|
function TestimonialsSplitImage({
|
|
551
|
-
testimonial
|
|
540
|
+
testimonial,
|
|
552
541
|
testimonialSlot,
|
|
553
542
|
imageSrc,
|
|
554
543
|
imageAlt,
|
|
555
|
-
imagePosition
|
|
544
|
+
imagePosition,
|
|
556
545
|
className,
|
|
557
546
|
gridClassName,
|
|
558
547
|
imageClassName,
|
|
@@ -566,18 +555,20 @@ function TestimonialsSplitImage({
|
|
|
566
555
|
patternOpacity,
|
|
567
556
|
optixFlowConfig
|
|
568
557
|
}) {
|
|
569
|
-
const
|
|
570
|
-
|
|
558
|
+
const effectiveImagePosition = imagePosition || "left";
|
|
559
|
+
const getAuthorName = useCallback(() => {
|
|
560
|
+
if (typeof testimonial?.author === "string") return testimonial.author;
|
|
571
561
|
return "";
|
|
572
|
-
};
|
|
573
|
-
const getAvatarSrc = () => {
|
|
574
|
-
return testimonial
|
|
575
|
-
};
|
|
576
|
-
const getInitials = (name) => {
|
|
562
|
+
}, [testimonial?.author]);
|
|
563
|
+
const getAvatarSrc = useCallback(() => {
|
|
564
|
+
return testimonial?.avatarSrc || testimonial?.avatar?.src;
|
|
565
|
+
}, [testimonial?.avatarSrc, testimonial?.avatar?.src]);
|
|
566
|
+
const getInitials = useCallback((name) => {
|
|
577
567
|
return name.split(" ").map((n) => n[0]).join("");
|
|
578
|
-
};
|
|
568
|
+
}, []);
|
|
579
569
|
const renderedTestimonial = useMemo(() => {
|
|
580
570
|
if (testimonialSlot) return testimonialSlot;
|
|
571
|
+
if (!testimonial) return null;
|
|
581
572
|
const authorName = getAuthorName();
|
|
582
573
|
const avatarSrc = getAvatarSrc();
|
|
583
574
|
return /* @__PURE__ */ jsxs(
|
|
@@ -585,7 +576,7 @@ function TestimonialsSplitImage({
|
|
|
585
576
|
{
|
|
586
577
|
className: cn(
|
|
587
578
|
"space-y-6",
|
|
588
|
-
|
|
579
|
+
effectiveImagePosition === "right" && "lg:order-1",
|
|
589
580
|
contentClassName
|
|
590
581
|
),
|
|
591
582
|
children: [
|
|
@@ -623,7 +614,7 @@ function TestimonialsSplitImage({
|
|
|
623
614
|
]
|
|
624
615
|
}
|
|
625
616
|
);
|
|
626
|
-
}, [testimonialSlot,
|
|
617
|
+
}, [testimonialSlot, effectiveImagePosition, contentClassName, quoteIconClassName, testimonial, quoteClassName, authorClassName, getAuthorName, getAvatarSrc, getInitials]);
|
|
627
618
|
return /* @__PURE__ */ jsx(
|
|
628
619
|
Section,
|
|
629
620
|
{
|
|
@@ -642,7 +633,7 @@ function TestimonialsSplitImage({
|
|
|
642
633
|
{
|
|
643
634
|
className: cn(
|
|
644
635
|
"relative aspect-4/3 overflow-hidden rounded-2xl lg:aspect-square",
|
|
645
|
-
|
|
636
|
+
effectiveImagePosition === "right" && "lg:order-2",
|
|
646
637
|
imageClassName
|
|
647
638
|
),
|
|
648
639
|
children: /* @__PURE__ */ jsx(
|