@opensite/ui 2.8.0 → 2.8.2
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-culture-tabs.cjs +25 -21
- package/dist/about-culture-tabs.js +23 -19
- package/dist/about-developer-profile.cjs +6 -2
- package/dist/about-developer-profile.js +6 -2
- package/dist/about-expandable-values.cjs +6 -2
- package/dist/about-expandable-values.js +6 -2
- package/dist/about-location-info-hero.cjs +6 -2
- package/dist/about-location-info-hero.js +6 -2
- package/dist/about-mission-principles.cjs +6 -2
- package/dist/about-mission-principles.js +6 -2
- package/dist/about-network-spotlight.cjs +18 -14
- package/dist/about-network-spotlight.js +16 -12
- package/dist/about-split-hero.cjs +6 -2
- package/dist/about-split-hero.js +6 -2
- package/dist/about-startup-team.cjs +6 -2
- package/dist/about-startup-team.js +6 -2
- package/dist/article-breadcrumb-social.cjs +27 -23
- package/dist/article-breadcrumb-social.js +27 -23
- package/dist/article-chapters-author.cjs +29 -25
- package/dist/article-chapters-author.js +29 -25
- package/dist/article-compact-toc.cjs +26 -22
- package/dist/article-compact-toc.js +26 -22
- package/dist/article-sidebar-sticky.cjs +6 -2
- package/dist/article-sidebar-sticky.js +6 -2
- package/dist/auto-scroll-carousel.cjs +28 -24
- package/dist/auto-scroll-carousel.js +26 -22
- package/dist/banner-announcement-dismissible.cjs +6 -2
- package/dist/banner-announcement-dismissible.js +6 -2
- package/dist/banner-delivery-countdown.cjs +6 -2
- package/dist/banner-delivery-countdown.js +6 -2
- package/dist/banner-floating-offer.cjs +6 -2
- package/dist/banner-floating-offer.js +6 -2
- package/dist/banner-gdpr-rights.cjs +6 -2
- package/dist/banner-gdpr-rights.js +6 -2
- package/dist/banner-privacy-notice.cjs +6 -2
- package/dist/banner-privacy-notice.js +6 -2
- package/dist/banner-social-follow.cjs +6 -2
- package/dist/banner-social-follow.js +6 -2
- package/dist/banner-survey-incentive.cjs +6 -2
- package/dist/banner-survey-incentive.js +6 -2
- package/dist/blog-cards-read-time.cjs +6 -2
- package/dist/blog-cards-read-time.js +6 -2
- package/dist/blog-cards-tagline-cta.cjs +6 -2
- package/dist/blog-cards-tagline-cta.js +6 -2
- package/dist/blog-carousel-apple.cjs +25 -21
- package/dist/blog-carousel-apple.js +21 -17
- package/dist/blog-category-overlay.cjs +6 -2
- package/dist/blog-category-overlay.js +6 -2
- package/dist/blog-filtered-results.cjs +30 -26
- package/dist/blog-filtered-results.js +24 -20
- package/dist/blog-horizontal-cards.cjs +6 -2
- package/dist/blog-horizontal-cards.js +6 -2
- package/dist/blog-horizontal-timeline.cjs +6 -2
- package/dist/blog-horizontal-timeline.js +6 -2
- package/dist/carousel-animated-sections.cjs +23 -19
- package/dist/carousel-animated-sections.js +23 -19
- package/dist/carousel-auto-progress-slides.cjs +6 -2
- package/dist/carousel-auto-progress-slides.js +6 -2
- package/dist/carousel-autoplay-progress.cjs +34 -30
- package/dist/carousel-autoplay-progress.js +34 -30
- package/dist/carousel-badge-cards.cjs +31 -27
- package/dist/carousel-badge-cards.js +26 -22
- package/dist/carousel-demo-link.cjs +32 -28
- package/dist/carousel-demo-link.js +26 -22
- package/dist/carousel-feature-badge.cjs +22 -18
- package/dist/carousel-feature-badge.js +22 -18
- package/dist/carousel-gallery-thumbnails.cjs +6 -2
- package/dist/carousel-gallery-thumbnails.js +6 -2
- package/dist/carousel-gradient-overlay.cjs +32 -28
- package/dist/carousel-gradient-overlay.js +26 -22
- package/dist/carousel-gradient-text.cjs +32 -28
- package/dist/carousel-gradient-text.js +26 -22
- package/dist/carousel-horizontal-cards.cjs +20 -16
- package/dist/carousel-horizontal-cards.js +20 -16
- package/dist/carousel-icon-sidebar.cjs +38 -34
- package/dist/carousel-icon-sidebar.js +26 -22
- package/dist/carousel-icon-tabs.cjs +39 -35
- package/dist/carousel-icon-tabs.js +26 -22
- package/dist/carousel-image-hero.cjs +22 -18
- package/dist/carousel-image-hero.js +22 -18
- package/dist/carousel-multi-step-showcase.cjs +6 -2
- package/dist/carousel-multi-step-showcase.js +6 -2
- package/dist/carousel-pagination.cjs +6 -2
- package/dist/carousel-pagination.js +6 -2
- package/dist/carousel-portfolio-hero.cjs +22 -18
- package/dist/carousel-portfolio-hero.js +22 -18
- package/dist/carousel-product-feature-showcase.cjs +6 -2
- package/dist/carousel-product-feature-showcase.js +6 -2
- package/dist/carousel-progress-slider.cjs +28 -24
- package/dist/carousel-progress-slider.js +28 -24
- package/dist/carousel-scale-focus.cjs +41 -37
- package/dist/carousel-scale-focus.js +26 -22
- package/dist/carousel-sidebar-resources.cjs +34 -30
- package/dist/carousel-sidebar-resources.js +26 -22
- package/dist/carousel-tabs-content.cjs +39 -35
- package/dist/carousel-tabs-content.js +26 -22
- package/dist/case-studies-featured-border.cjs +6 -2
- package/dist/case-studies-featured-border.js +6 -2
- package/dist/case-study-stats-metrics.cjs +6 -2
- package/dist/case-study-stats-metrics.js +6 -2
- package/dist/case-study-toc-social-sidebar.cjs +6 -2
- package/dist/case-study-toc-social-sidebar.js +6 -2
- package/dist/community-initiatives.cjs +19 -15
- package/dist/community-initiatives.js +17 -13
- package/dist/comparison-ai-models.cjs +18 -14
- package/dist/comparison-ai-models.js +17 -13
- package/dist/comparison-feature-cards.cjs +16 -12
- package/dist/comparison-feature-cards.js +16 -12
- package/dist/comparison-feature-grid.cjs +14 -10
- package/dist/comparison-feature-grid.js +14 -10
- package/dist/comparison-grid-badges.cjs +13 -9
- package/dist/comparison-grid-badges.js +13 -9
- package/dist/comparison-legacy-modern.cjs +15 -11
- package/dist/comparison-legacy-modern.js +15 -11
- package/dist/comparison-table-tabs.cjs +15 -11
- package/dist/comparison-table-tabs.js +14 -10
- package/dist/comparison-table-two-column.cjs +14 -10
- package/dist/comparison-table-two-column.js +14 -10
- package/dist/components.cjs +199 -179
- package/dist/components.js +104 -84
- package/dist/contact-callback.cjs +27 -7
- package/dist/contact-callback.js +10 -5
- package/dist/contact-card.cjs +6 -2
- package/dist/contact-card.js +6 -2
- package/dist/contact-careers.cjs +18 -14
- package/dist/contact-careers.js +16 -12
- package/dist/contact-dark.cjs +6 -2
- package/dist/contact-dark.js +6 -2
- package/dist/contact-emergency.cjs +6 -2
- package/dist/contact-emergency.js +6 -2
- package/dist/contact-faq.cjs +9 -7
- package/dist/contact-faq.js +10 -5
- package/dist/contact-floating-banner.cjs +6 -2
- package/dist/contact-floating-banner.js +6 -2
- package/dist/contact-help-center.cjs +16 -12
- package/dist/contact-help-center.js +16 -12
- package/dist/contact-image.cjs +18 -14
- package/dist/contact-image.js +17 -13
- package/dist/contact-map.cjs +78 -58
- package/dist/contact-map.js +78 -58
- package/dist/cta-app-download-newsletter.cjs +6 -2
- package/dist/cta-app-download-newsletter.js +6 -2
- package/dist/cta-background-icon-badge.cjs +6 -2
- package/dist/cta-background-icon-badge.js +6 -2
- package/dist/cta-case-study-testimonial.cjs +6 -2
- package/dist/cta-case-study-testimonial.js +6 -2
- package/dist/cta-documentation-links.cjs +6 -2
- package/dist/cta-documentation-links.js +6 -2
- package/dist/cta-enterprise-dark-features.cjs +6 -2
- package/dist/cta-enterprise-dark-features.js +6 -2
- package/dist/cta-enterprise-split.cjs +6 -2
- package/dist/cta-enterprise-split.js +6 -2
- package/dist/cta-feature-cards-grid.cjs +6 -2
- package/dist/cta-feature-cards-grid.js +6 -2
- package/dist/cta-feature-checklist.cjs +17 -13
- package/dist/cta-feature-checklist.js +16 -12
- package/dist/cta-feature-list.cjs +6 -2
- package/dist/cta-feature-list.js +6 -2
- package/dist/cta-gradient-logos-floating.cjs +6 -2
- package/dist/cta-gradient-logos-floating.js +6 -2
- package/dist/cta-gradient-stats-hero.cjs +6 -2
- package/dist/cta-gradient-stats-hero.js +6 -2
- package/dist/cta-hero-feature-cards.cjs +6 -2
- package/dist/cta-hero-feature-cards.js +6 -2
- package/dist/cta-image-overlay-arrow.cjs +6 -2
- package/dist/cta-image-overlay-arrow.js +6 -2
- package/dist/cta-newsletter-features.cjs +12 -8
- package/dist/cta-newsletter-features.js +12 -8
- package/dist/cta-platform-demo.cjs +6 -2
- package/dist/cta-platform-demo.js +6 -2
- package/dist/cta-simple-centered.cjs +6 -2
- package/dist/cta-simple-centered.js +6 -2
- package/dist/cta-split-image-logos.cjs +6 -2
- package/dist/cta-split-image-logos.js +6 -2
- package/dist/cta-video-background-hero.cjs +6 -2
- package/dist/cta-video-background-hero.js +6 -2
- package/dist/cta-workflow-tabs.cjs +6 -2
- package/dist/cta-workflow-tabs.js +6 -2
- package/dist/dynamic-icon.cjs +27 -2
- package/dist/dynamic-icon.d.cts +2 -2
- package/dist/dynamic-icon.d.ts +2 -2
- package/dist/dynamic-icon.js +7 -2
- package/dist/expandable-case-study-cards.cjs +26 -6
- package/dist/expandable-case-study-cards.js +10 -5
- package/dist/faq-badge-support.cjs +25 -21
- package/dist/faq-badge-support.js +22 -18
- package/dist/faq-bordered-badge.cjs +9 -7
- package/dist/faq-bordered-badge.js +10 -5
- package/dist/faq-card-categories.cjs +18 -14
- package/dist/faq-card-categories.js +16 -12
- package/dist/faq-categorized-sections.cjs +9 -7
- package/dist/faq-categorized-sections.js +10 -5
- package/dist/faq-centered-accordion.cjs +9 -7
- package/dist/faq-centered-accordion.js +10 -5
- package/dist/faq-gradient-categories.cjs +18 -14
- package/dist/faq-gradient-categories.js +16 -12
- package/dist/faq-icon-benefits.cjs +18 -14
- package/dist/faq-icon-benefits.js +16 -12
- package/dist/faq-muted-cards.cjs +18 -14
- package/dist/faq-muted-cards.js +16 -12
- package/dist/faq-profile-sidebar.cjs +25 -21
- package/dist/faq-profile-sidebar.js +22 -18
- package/dist/faq-rounded-cards.cjs +18 -14
- package/dist/faq-rounded-cards.js +16 -12
- package/dist/faq-sidebar-navigation.cjs +20 -16
- package/dist/faq-sidebar-navigation.js +17 -13
- package/dist/faq-simple-accordion.cjs +18 -14
- package/dist/faq-simple-accordion.js +16 -12
- package/dist/faq-split-help.cjs +25 -21
- package/dist/faq-split-help.js +22 -18
- package/dist/faq-split-hero.cjs +9 -7
- package/dist/faq-split-hero.js +10 -5
- package/dist/feature-accordion-image.cjs +20 -16
- package/dist/feature-accordion-image.js +17 -13
- package/dist/feature-animated-carousel.cjs +35 -31
- package/dist/feature-animated-carousel.js +28 -24
- package/dist/feature-badge-grid-six.cjs +20 -16
- package/dist/feature-badge-grid-six.js +16 -12
- package/dist/feature-bento-image-grid.cjs +21 -17
- package/dist/feature-bento-image-grid.js +20 -16
- package/dist/feature-bento-utilities.cjs +19 -15
- package/dist/feature-bento-utilities.js +18 -14
- package/dist/feature-capabilities-grid.cjs +18 -14
- package/dist/feature-capabilities-grid.js +17 -13
- package/dist/feature-carousel-progress.cjs +31 -27
- package/dist/feature-carousel-progress.js +26 -22
- package/dist/feature-checklist-image.cjs +6 -2
- package/dist/feature-checklist-image.js +6 -2
- package/dist/feature-checklist-three-column.cjs +22 -18
- package/dist/feature-checklist-three-column.js +16 -12
- package/dist/feature-icon-grid-accent.cjs +26 -6
- package/dist/feature-icon-grid-accent.js +10 -5
- package/dist/feature-icon-grid-bordered.cjs +18 -14
- package/dist/feature-icon-grid-bordered.js +16 -12
- package/dist/feature-icon-grid-muted.cjs +18 -14
- package/dist/feature-icon-grid-muted.js +16 -12
- package/dist/feature-icon-tabs-content.cjs +20 -16
- package/dist/feature-icon-tabs-content.js +16 -12
- package/dist/feature-image-cards-three-column.cjs +29 -25
- package/dist/feature-image-cards-three-column.js +22 -18
- package/dist/feature-image-overlay-badge.cjs +18 -14
- package/dist/feature-image-overlay-badge.js +16 -12
- package/dist/feature-numbered-cards.cjs +20 -16
- package/dist/feature-numbered-cards.js +16 -12
- package/dist/feature-pattern-grid-links.cjs +19 -15
- package/dist/feature-pattern-grid-links.js +16 -12
- package/dist/feature-showcase.cjs +6 -2
- package/dist/feature-showcase.js +6 -2
- package/dist/feature-tabbed-content-image.cjs +21 -17
- package/dist/feature-tabbed-content-image.js +19 -15
- package/dist/feature-three-column-values.cjs +18 -14
- package/dist/feature-three-column-values.js +17 -13
- package/dist/feature-utility-cards-grid.cjs +20 -16
- package/dist/feature-utility-cards-grid.js +17 -13
- package/dist/footer-accordion-social.cjs +6 -2
- package/dist/footer-accordion-social.js +6 -2
- package/dist/footer-animated-social.cjs +6 -2
- package/dist/footer-animated-social.js +6 -2
- package/dist/footer-background-card.cjs +6 -2
- package/dist/footer-background-card.js +6 -2
- package/dist/footer-brand-description.cjs +6 -2
- package/dist/footer-brand-description.js +6 -2
- package/dist/footer-brand-links-contact.cjs +6 -2
- package/dist/footer-brand-links-contact.js +6 -2
- package/dist/footer-comprehensive-links.cjs +6 -2
- package/dist/footer-comprehensive-links.js +6 -2
- package/dist/footer-contact-card.cjs +6 -2
- package/dist/footer-contact-card.js +6 -2
- package/dist/footer-cta-banner.cjs +6 -2
- package/dist/footer-cta-banner.js +6 -2
- package/dist/footer-cta-social.cjs +24 -20
- package/dist/footer-cta-social.js +22 -18
- package/dist/footer-info-cards-accordion.cjs +24 -20
- package/dist/footer-info-cards-accordion.js +23 -19
- package/dist/footer-nav-social.cjs +6 -2
- package/dist/footer-nav-social.js +6 -2
- package/dist/footer-newsletter-contact.cjs +6 -2
- package/dist/footer-newsletter-contact.js +6 -2
- package/dist/footer-newsletter-grid.cjs +6 -2
- package/dist/footer-newsletter-grid.js +6 -2
- package/dist/footer-newsletter-minimal.cjs +27 -23
- package/dist/footer-newsletter-minimal.js +26 -22
- package/dist/footer-social-apps.cjs +26 -22
- package/dist/footer-social-apps.js +22 -18
- package/dist/footer-social-newsletter.cjs +6 -2
- package/dist/footer-social-newsletter.js +6 -2
- package/dist/footer-split-image-accordion.cjs +24 -20
- package/dist/footer-split-image-accordion.js +23 -19
- package/dist/geo-map.cjs +74 -54
- package/dist/geo-map.js +73 -53
- package/dist/hero-badge-shadow-overlay.cjs +6 -2
- package/dist/hero-badge-shadow-overlay.js +6 -2
- package/dist/hero-coming-soon-countdown.cjs +6 -2
- package/dist/hero-coming-soon-countdown.js +6 -2
- package/dist/hero-conversion-video-play.cjs +29 -25
- package/dist/hero-conversion-video-play.js +26 -22
- package/dist/hero-creative-studio-stacked.cjs +19 -15
- package/dist/hero-creative-studio-stacked.js +16 -12
- package/dist/hero-dashed-border-features.cjs +6 -2
- package/dist/hero-dashed-border-features.js +6 -2
- package/dist/hero-design-carousel-portfolio.cjs +29 -25
- package/dist/hero-design-carousel-portfolio.js +26 -22
- package/dist/hero-design-system-3d.cjs +18 -14
- package/dist/hero-design-system-3d.js +16 -12
- package/dist/hero-developer-tools-code.cjs +18 -14
- package/dist/hero-developer-tools-code.js +16 -12
- package/dist/hero-ecommerce-product-showcase.cjs +20 -16
- package/dist/hero-ecommerce-product-showcase.js +17 -13
- package/dist/hero-enterprise-security.cjs +6 -2
- package/dist/hero-enterprise-security.js +6 -2
- package/dist/hero-event-registration.cjs +21 -17
- package/dist/hero-event-registration.js +17 -13
- package/dist/hero-feature-cards-grid.cjs +6 -2
- package/dist/hero-feature-cards-grid.js +6 -2
- package/dist/hero-floating-images.cjs +26 -6
- package/dist/hero-floating-images.js +10 -5
- package/dist/hero-gradient-avatars-rating.cjs +19 -15
- package/dist/hero-gradient-avatars-rating.js +16 -12
- package/dist/hero-grid-pattern-solutions.cjs +6 -2
- package/dist/hero-grid-pattern-solutions.js +6 -2
- package/dist/hero-marketplace-scattered-images.cjs +6 -2
- package/dist/hero-marketplace-scattered-images.js +6 -2
- package/dist/hero-mentorship-video-split.cjs +6 -2
- package/dist/hero-mentorship-video-split.js +6 -2
- package/dist/hero-mobile-app-download.cjs +6 -2
- package/dist/hero-mobile-app-download.js +6 -2
- package/dist/hero-overlay-cta-grid.cjs +20 -16
- package/dist/hero-overlay-cta-grid.js +16 -12
- package/dist/hero-platform-features-grid.cjs +6 -2
- package/dist/hero-platform-features-grid.js +6 -2
- package/dist/hero-portfolio-creative.cjs +6 -2
- package/dist/hero-portfolio-creative.js +6 -2
- package/dist/hero-pricing-comparison.cjs +6 -2
- package/dist/hero-pricing-comparison.js +6 -2
- package/dist/hero-product-showcase-floating.cjs +27 -23
- package/dist/hero-product-showcase-floating.js +22 -18
- package/dist/hero-saas-dashboard-preview.cjs +6 -2
- package/dist/hero-saas-dashboard-preview.js +6 -2
- package/dist/hero-simple-centered-image.cjs +5 -5
- package/dist/hero-simple-centered-image.js +5 -5
- package/dist/hero-software-growth-video-dialog.cjs +19 -15
- package/dist/hero-software-growth-video-dialog.js +16 -12
- package/dist/hero-split-icon-cards.cjs +18 -14
- package/dist/hero-split-icon-cards.js +16 -12
- package/dist/hero-video-dialog-gradient.cjs +19 -15
- package/dist/hero-video-dialog-gradient.js +16 -12
- package/dist/hero-video-overlay-stars.cjs +18 -14
- package/dist/hero-video-overlay-stars.js +16 -12
- package/dist/index.cjs +200 -180
- package/dist/index.js +104 -84
- package/dist/industries-expandable-showcase.cjs +6 -2
- package/dist/industries-expandable-showcase.js +6 -2
- package/dist/industries-hover-reveal-grid.cjs +6 -2
- package/dist/industries-hover-reveal-grid.js +6 -2
- package/dist/industries-timeline-table.cjs +6 -2
- package/dist/industries-timeline-table.js +6 -2
- package/dist/interior-carousel.cjs +33 -29
- package/dist/interior-carousel.js +26 -22
- package/dist/link-page-bento-layout.cjs +6 -2
- package/dist/link-page-bento-layout.js +6 -2
- package/dist/link-page-grid-cards.cjs +6 -2
- package/dist/link-page-grid-cards.js +6 -2
- package/dist/link-page-minimal-profile.cjs +6 -2
- package/dist/link-page-minimal-profile.js +6 -2
- package/dist/link-page-newsletter-social.cjs +6 -2
- package/dist/link-page-newsletter-social.js +6 -2
- package/dist/link-tree-block.cjs +30 -26
- package/dist/link-tree-block.js +30 -26
- package/dist/list-achievements-showcase.cjs +6 -2
- package/dist/list-achievements-showcase.js +6 -2
- package/dist/list-feature-comparison.cjs +6 -2
- package/dist/list-feature-comparison.js +6 -2
- package/dist/list-metrics-dashboard.cjs +6 -2
- package/dist/list-metrics-dashboard.js +6 -2
- package/dist/list-searchable-grid.cjs +19 -15
- package/dist/list-searchable-grid.js +18 -14
- package/dist/list-service-category-table.cjs +26 -6
- package/dist/list-service-category-table.js +10 -5
- package/dist/navbar-animated-preview.cjs +6 -2
- package/dist/navbar-animated-preview.js +6 -2
- package/dist/navbar-centered-menu.cjs +6 -2
- package/dist/navbar-centered-menu.js +6 -2
- package/dist/navbar-dark-icons.cjs +6 -2
- package/dist/navbar-dark-icons.js +6 -2
- package/dist/navbar-dropdown-menu.cjs +6 -2
- package/dist/navbar-dropdown-menu.js +6 -2
- package/dist/navbar-education-platform.cjs +6 -2
- package/dist/navbar-education-platform.js +6 -2
- package/dist/navbar-enterprise-mega.cjs +6 -2
- package/dist/navbar-enterprise-mega.js +6 -2
- package/dist/navbar-feature-grid.cjs +6 -2
- package/dist/navbar-feature-grid.js +6 -2
- package/dist/navbar-floating-pill.cjs +6 -2
- package/dist/navbar-floating-pill.js +6 -2
- package/dist/navbar-fullscreen-menu.cjs +6 -2
- package/dist/navbar-fullscreen-menu.js +6 -2
- package/dist/navbar-icon-links.cjs +6 -2
- package/dist/navbar-icon-links.js +6 -2
- package/dist/navbar-image-preview.cjs +6 -2
- package/dist/navbar-image-preview.js +6 -2
- package/dist/navbar-mega-menu.cjs +6 -2
- package/dist/navbar-mega-menu.js +6 -2
- package/dist/navbar-multi-column-groups.cjs +6 -2
- package/dist/navbar-multi-column-groups.js +6 -2
- package/dist/navbar-platform-resources.cjs +6 -2
- package/dist/navbar-platform-resources.js +6 -2
- package/dist/navbar-search-focused.cjs +6 -2
- package/dist/navbar-search-focused.js +6 -2
- package/dist/navbar-sidebar-mobile.cjs +6 -2
- package/dist/navbar-sidebar-mobile.js +6 -2
- package/dist/navbar-simple-links.cjs +6 -2
- package/dist/navbar-simple-links.js +6 -2
- package/dist/navbar-split-cta.cjs +6 -2
- package/dist/navbar-split-cta.js +6 -2
- package/dist/navbar-sticky-compact.cjs +6 -2
- package/dist/navbar-sticky-compact.js +6 -2
- package/dist/navbar-tabbed-sections.cjs +6 -2
- package/dist/navbar-tabbed-sections.js +6 -2
- package/dist/navbar-transparent-overlay.cjs +6 -2
- package/dist/navbar-transparent-overlay.js +6 -2
- package/dist/offer-modal-membership-image.cjs +6 -2
- package/dist/offer-modal-membership-image.js +6 -2
- package/dist/offer-modal-newsletter-discount.cjs +6 -2
- package/dist/offer-modal-newsletter-discount.js +6 -2
- package/dist/offer-modal-sheet-newsletter.cjs +6 -2
- package/dist/offer-modal-sheet-newsletter.js +6 -2
- package/dist/payment-platform-icon.cjs +27 -2
- package/dist/payment-platform-icon.js +7 -2
- package/dist/pricing-addons-cards.cjs +19 -15
- package/dist/pricing-addons-cards.js +16 -12
- package/dist/pricing-addons-featured.cjs +20 -16
- package/dist/pricing-addons-featured.js +16 -12
- package/dist/pricing-collapsible-plans.cjs +19 -15
- package/dist/pricing-collapsible-plans.js +16 -12
- package/dist/pricing-columns-toggle.cjs +20 -16
- package/dist/pricing-columns-toggle.js +16 -12
- package/dist/pricing-comparison-headers.cjs +21 -17
- package/dist/pricing-comparison-headers.js +16 -12
- package/dist/pricing-comparison-table.cjs +21 -17
- package/dist/pricing-comparison-table.js +16 -12
- package/dist/pricing-discount-card.cjs +18 -14
- package/dist/pricing-discount-card.js +16 -12
- package/dist/pricing-enterprise-contact.cjs +18 -14
- package/dist/pricing-enterprise-contact.js +16 -12
- package/dist/pricing-feature-matrix.cjs +19 -15
- package/dist/pricing-feature-matrix.js +16 -12
- package/dist/pricing-four-tier-toggle.cjs +20 -16
- package/dist/pricing-four-tier-toggle.js +16 -12
- package/dist/pricing-full-comparison.cjs +19 -15
- package/dist/pricing-full-comparison.js +17 -13
- package/dist/pricing-gradient-cards.cjs +20 -16
- package/dist/pricing-gradient-cards.js +16 -12
- package/dist/pricing-icon-headers.cjs +19 -15
- package/dist/pricing-icon-headers.js +16 -12
- package/dist/pricing-minimal-cards.cjs +19 -15
- package/dist/pricing-minimal-cards.js +16 -12
- package/dist/pricing-packages-radio.cjs +18 -14
- package/dist/pricing-packages-radio.js +16 -12
- package/dist/pricing-popular-highlight.cjs +20 -16
- package/dist/pricing-popular-highlight.js +16 -12
- package/dist/pricing-radio-toggle.cjs +20 -16
- package/dist/pricing-radio-toggle.js +16 -12
- package/dist/pricing-responsive-table.cjs +18 -14
- package/dist/pricing-responsive-table.js +16 -12
- package/dist/pricing-services-cards.cjs +19 -15
- package/dist/pricing-services-cards.js +16 -12
- package/dist/pricing-simple-card.cjs +18 -14
- package/dist/pricing-simple-card.js +16 -12
- package/dist/pricing-single-card.cjs +19 -15
- package/dist/pricing-single-card.js +16 -12
- package/dist/pricing-split-layout.cjs +16 -12
- package/dist/pricing-split-layout.js +16 -12
- package/dist/pricing-spotlight-card.cjs +18 -14
- package/dist/pricing-spotlight-card.js +16 -12
- package/dist/pricing-switch-cards.cjs +20 -16
- package/dist/pricing-switch-cards.js +16 -12
- package/dist/pricing-tabs-toggle.cjs +20 -16
- package/dist/pricing-tabs-toggle.js +16 -12
- package/dist/pricing-tier-grid.cjs +19 -15
- package/dist/pricing-tier-grid.js +16 -12
- package/dist/pricing-toggle-cards.cjs +20 -16
- package/dist/pricing-toggle-cards.js +16 -12
- package/dist/pricing-toggle-period.cjs +18 -14
- package/dist/pricing-toggle-period.js +16 -12
- package/dist/pricing-two-column-basic.cjs +20 -16
- package/dist/pricing-two-column-basic.js +16 -12
- package/dist/process-expandable-timeline.cjs +6 -2
- package/dist/process-expandable-timeline.js +6 -2
- package/dist/process-icon-timeline.cjs +26 -6
- package/dist/process-icon-timeline.js +10 -5
- package/dist/process-numbered-services.cjs +6 -2
- package/dist/process-numbered-services.js +6 -2
- package/dist/process-roadmap-timeline.cjs +26 -6
- package/dist/process-roadmap-timeline.js +10 -5
- package/dist/process-scroll-image.cjs +24 -20
- package/dist/process-scroll-image.js +22 -18
- package/dist/process-steps-grid.cjs +26 -6
- package/dist/process-steps-grid.js +10 -5
- package/dist/process-sticky-steps.cjs +6 -2
- package/dist/process-sticky-steps.js +6 -2
- package/dist/project-background-reveal.cjs +17 -13
- package/dist/project-background-reveal.js +16 -12
- package/dist/project-card-overlay.cjs +26 -6
- package/dist/project-card-overlay.js +10 -5
- package/dist/project-carousel-cinematic.cjs +31 -27
- package/dist/project-carousel-cinematic.js +26 -22
- package/dist/project-carousel-detail-cards.cjs +31 -27
- package/dist/project-carousel-detail-cards.js +26 -22
- package/dist/project-carousel-minimal.cjs +31 -27
- package/dist/project-carousel-minimal.js +26 -22
- package/dist/project-detail-architecture-carousel.cjs +6 -2
- package/dist/project-detail-architecture-carousel.js +6 -2
- package/dist/project-detail-list-related.cjs +6 -2
- package/dist/project-detail-list-related.js +6 -2
- package/dist/project-detail-photography-breadcrumb.cjs +6 -2
- package/dist/project-detail-photography-breadcrumb.js +6 -2
- package/dist/project-detail-tabbed-case-study.cjs +6 -2
- package/dist/project-detail-tabbed-case-study.js +6 -2
- package/dist/project-experience-quote.cjs +17 -13
- package/dist/project-experience-quote.js +16 -12
- package/dist/project-featured-carousel.cjs +27 -23
- package/dist/project-featured-carousel.js +26 -22
- package/dist/project-horizontal-cards.cjs +17 -13
- package/dist/project-horizontal-cards.js +16 -12
- package/dist/project-interactive-hover-reveal.cjs +18 -14
- package/dist/project-interactive-hover-reveal.js +16 -12
- package/dist/project-scroll-reveal.cjs +26 -6
- package/dist/project-scroll-reveal.js +10 -5
- package/dist/project-video-carousel.cjs +31 -27
- package/dist/project-video-carousel.js +26 -22
- package/dist/project-video-hover-bento.cjs +26 -6
- package/dist/project-video-hover-bento.js +10 -5
- package/dist/project-video-hover-grid.cjs +26 -6
- package/dist/project-video-hover-grid.js +10 -5
- package/dist/project-video-hover-rounded.cjs +26 -6
- package/dist/project-video-hover-rounded.js +10 -5
- package/dist/project-video-hover-stack.cjs +26 -6
- package/dist/project-video-hover-stack.js +10 -5
- package/dist/project-video-hover-two-by-two.cjs +26 -6
- package/dist/project-video-hover-two-by-two.js +10 -5
- package/dist/project-work-showcase.cjs +17 -13
- package/dist/project-work-showcase.js +16 -12
- package/dist/project-zigzag-layout.cjs +16 -12
- package/dist/project-zigzag-layout.js +16 -12
- package/dist/registry.cjs +1742 -1722
- package/dist/registry.js +512 -492
- package/dist/resource-detail-document-sidebar.cjs +6 -2
- package/dist/resource-detail-document-sidebar.js +6 -2
- package/dist/resource-detail-whitepaper-sidebar.cjs +6 -2
- package/dist/resource-detail-whitepaper-sidebar.js +6 -2
- package/dist/resource-list-course-cards.cjs +6 -2
- package/dist/resource-list-course-cards.js +6 -2
- package/dist/resource-list-featured-articles.cjs +6 -2
- package/dist/resource-list-featured-articles.js +6 -2
- package/dist/resource-list-featured-grid.cjs +6 -2
- package/dist/resource-list-featured-grid.js +6 -2
- package/dist/resource-list-hero-filter.cjs +6 -2
- package/dist/resource-list-hero-filter.js +6 -2
- package/dist/resource-list-news-updates.cjs +6 -2
- package/dist/resource-list-news-updates.js +6 -2
- package/dist/service-detail-centered-expertise.cjs +16 -12
- package/dist/service-detail-centered-expertise.js +16 -12
- package/dist/service-detail-compact-cards.cjs +16 -12
- package/dist/service-detail-compact-cards.js +16 -12
- package/dist/service-detail-sidebar-related.cjs +16 -12
- package/dist/service-detail-sidebar-related.js +16 -12
- package/dist/service-detail-sidebar-stats.cjs +27 -7
- package/dist/service-detail-sidebar-stats.js +10 -5
- package/dist/service-hover-carousel.cjs +38 -34
- package/dist/service-hover-carousel.js +26 -22
- package/dist/services-list-accordion-benefits.cjs +16 -12
- package/dist/services-list-accordion-benefits.js +16 -12
- package/dist/services-list-accordion.cjs +10 -8
- package/dist/services-list-accordion.js +10 -5
- package/dist/services-list-cards-hover.cjs +16 -12
- package/dist/services-list-cards-hover.js +16 -12
- package/dist/services-list-category-accordion.cjs +10 -8
- package/dist/services-list-category-accordion.js +10 -5
- package/dist/services-list-centered-icons.cjs +27 -7
- package/dist/services-list-centered-icons.js +10 -5
- package/dist/services-list-culture-tabs.cjs +16 -12
- package/dist/services-list-culture-tabs.js +16 -12
- package/dist/services-list-feature-spotlight.cjs +27 -7
- package/dist/services-list-feature-spotlight.js +10 -5
- package/dist/services-list-featured-highlight.cjs +16 -12
- package/dist/services-list-featured-highlight.js +16 -12
- package/dist/services-list-hero-cards.cjs +6 -2
- package/dist/services-list-hero-cards.js +6 -2
- package/dist/services-list-icon-grid.cjs +27 -7
- package/dist/services-list-icon-grid.js +10 -5
- package/dist/services-list-image-cards.cjs +6 -2
- package/dist/services-list-image-cards.js +6 -2
- package/dist/services-list-image-overlay-grid.cjs +6 -2
- package/dist/services-list-image-overlay-grid.js +6 -2
- package/dist/services-list-masonry.cjs +16 -12
- package/dist/services-list-masonry.js +16 -12
- package/dist/services-list-methodology-steps.cjs +16 -12
- package/dist/services-list-methodology-steps.js +16 -12
- package/dist/services-list-minimal-grid.cjs +16 -12
- package/dist/services-list-minimal-grid.js +16 -12
- package/dist/services-list-muted-cards.cjs +27 -7
- package/dist/services-list-muted-cards.js +10 -5
- package/dist/services-list-numbered-steps.cjs +16 -12
- package/dist/services-list-numbered-steps.js +16 -12
- package/dist/services-list-pricing-grid.cjs +16 -12
- package/dist/services-list-pricing-grid.js +16 -12
- package/dist/services-list-progress-sidebar.cjs +16 -12
- package/dist/services-list-progress-sidebar.js +16 -12
- package/dist/services-list-split-checklist.cjs +16 -12
- package/dist/services-list-split-checklist.js +16 -12
- package/dist/services-list-sticky-image.cjs +6 -2
- package/dist/services-list-sticky-image.js +6 -2
- package/dist/services-list-table-hover.cjs +6 -2
- package/dist/services-list-table-hover.js +6 -2
- package/dist/services-list-tabs-features.cjs +10 -8
- package/dist/services-list-tabs-features.js +10 -5
- package/dist/services-list-timeline.cjs +16 -12
- package/dist/services-list-timeline.js +16 -12
- package/dist/services-list-two-column-grid.cjs +16 -12
- package/dist/services-list-two-column-grid.js +16 -12
- package/dist/services-list-vertical-tags.cjs +27 -7
- package/dist/services-list-vertical-tags.js +10 -5
- package/dist/services-list-video-showcase.cjs +18 -14
- package/dist/services-list-video-showcase.js +18 -14
- package/dist/social-link-icon.cjs +6 -2
- package/dist/social-link-icon.js +6 -2
- package/dist/stats-animated-counter.cjs +17 -13
- package/dist/stats-animated-counter.js +15 -11
- package/dist/stats-card-group.cjs +26 -6
- package/dist/stats-card-group.js +10 -5
- package/dist/stats-growth-timeline.cjs +22 -18
- package/dist/stats-growth-timeline.js +16 -12
- package/dist/stats-icon-cards.cjs +26 -6
- package/dist/stats-icon-cards.js +10 -5
- package/dist/stats-impact-grid.cjs +23 -19
- package/dist/stats-impact-grid.js +16 -12
- package/dist/stats-primary-secondary.cjs +26 -6
- package/dist/stats-primary-secondary.js +10 -5
- package/dist/stats-timeline-tabs.cjs +9 -7
- package/dist/stats-timeline-tabs.js +10 -5
- package/dist/team-alternating-bios.cjs +17 -13
- package/dist/team-alternating-bios.js +17 -13
- package/dist/team-avatar-social.cjs +17 -13
- package/dist/team-avatar-social.js +17 -13
- package/dist/team-bio-badges.cjs +17 -13
- package/dist/team-bio-badges.js +17 -13
- package/dist/team-carousel-experience.cjs +27 -23
- package/dist/team-carousel-experience.js +27 -23
- package/dist/team-contact-cards.cjs +18 -14
- package/dist/team-contact-cards.js +18 -14
- package/dist/team-filterable-search.cjs +22 -18
- package/dist/team-filterable-search.js +22 -18
- package/dist/team-gradient-cards.cjs +17 -13
- package/dist/team-gradient-cards.js +17 -13
- package/dist/team-grid-animated.cjs +18 -14
- package/dist/team-grid-animated.js +18 -14
- package/dist/team-hover-highlight.cjs +17 -13
- package/dist/team-hover-highlight.js +17 -13
- package/dist/team-hover-overlay.cjs +17 -13
- package/dist/team-hover-overlay.js +17 -13
- package/dist/team-large-images.cjs +17 -13
- package/dist/team-large-images.js +17 -13
- package/dist/team-role-filter.cjs +20 -16
- package/dist/team-role-filter.js +20 -16
- package/dist/team-skill-badges.cjs +17 -13
- package/dist/team-skill-badges.js +17 -13
- package/dist/team-social-cards.cjs +17 -13
- package/dist/team-social-cards.js +17 -13
- package/dist/team-social-grid.cjs +17 -13
- package/dist/team-social-grid.js +17 -13
- package/dist/team-testimonial-stats.cjs +17 -13
- package/dist/team-testimonial-stats.js +17 -13
- package/dist/testimonial-carousel-cards.cjs +33 -29
- package/dist/testimonial-carousel-cards.js +26 -22
- package/dist/testimonials-animated-split.cjs +9 -7
- package/dist/testimonials-animated-split.js +10 -5
- package/dist/testimonials-bento-grid.cjs +9 -7
- package/dist/testimonials-bento-grid.js +10 -5
- package/dist/testimonials-carousel-image.cjs +18 -14
- package/dist/testimonials-carousel-image.js +13 -9
- package/dist/testimonials-company-logo.cjs +26 -6
- package/dist/testimonials-company-logo.js +10 -5
- package/dist/testimonials-grid-add-review.cjs +9 -7
- package/dist/testimonials-grid-add-review.js +10 -5
- package/dist/testimonials-images-helpful.cjs +21 -17
- package/dist/testimonials-images-helpful.js +16 -12
- package/dist/testimonials-large-quote.cjs +9 -7
- package/dist/testimonials-large-quote.js +10 -5
- package/dist/testimonials-list-verified.cjs +9 -7
- package/dist/testimonials-list-verified.js +10 -5
- package/dist/testimonials-mini-dividers.cjs +9 -7
- package/dist/testimonials-mini-dividers.js +10 -5
- package/dist/testimonials-minimal-numbered.cjs +9 -7
- package/dist/testimonials-minimal-numbered.js +10 -5
- package/dist/testimonials-quote-carousel.cjs +31 -27
- package/dist/testimonials-quote-carousel.js +26 -22
- package/dist/testimonials-scrolling-columns.cjs +26 -6
- package/dist/testimonials-scrolling-columns.js +10 -5
- package/dist/testimonials-split-image.cjs +9 -7
- package/dist/testimonials-split-image.js +10 -5
- package/dist/testimonials-stats-header.cjs +9 -7
- package/dist/testimonials-stats-header.js +10 -5
- package/dist/testimonials-twitter-cards.cjs +19 -15
- package/dist/testimonials-twitter-cards.js +16 -12
- package/dist/timeline-ai-workflow-cards.cjs +27 -7
- package/dist/timeline-ai-workflow-cards.js +10 -5
- package/dist/timeline-alternating-diagonal.cjs +12 -8
- package/dist/timeline-alternating-diagonal.js +12 -8
- package/dist/timeline-horizontal-icons.cjs +10 -8
- package/dist/timeline-horizontal-icons.js +10 -5
- package/dist/timeline-productivity-list.cjs +27 -7
- package/dist/timeline-productivity-list.js +10 -5
- package/dist/timeline-stepper-animated.cjs +22 -18
- package/dist/timeline-stepper-animated.js +21 -17
- package/dist/timeline-tabbed-phases.cjs +6 -2
- package/dist/timeline-tabbed-phases.js +6 -2
- package/dist/timeline-vertical-icon-dashed.cjs +6 -2
- package/dist/timeline-vertical-icon-dashed.js +6 -2
- package/package.json +3 -3
package/dist/registry.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import
|
|
1
|
+
import * as React8 from 'react';
|
|
2
|
+
import React8__default, { Fragment, createContext, useMemo, forwardRef, useCallback, useState, useEffect, useRef, startTransition, useContext } from 'react';
|
|
3
3
|
import { clsx } from 'clsx';
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsx, jsxs, Fragment as Fragment$1 } from 'react/jsx-runtime';
|
|
@@ -148,7 +148,7 @@ var maxWidthStyles = {
|
|
|
148
148
|
"4xl": "max-w-[1536px]",
|
|
149
149
|
full: "max-w-full"
|
|
150
150
|
};
|
|
151
|
-
var Container =
|
|
151
|
+
var Container = React8__default.forwardRef(
|
|
152
152
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
153
153
|
const Component = as;
|
|
154
154
|
return /* @__PURE__ */ jsx(
|
|
@@ -454,7 +454,7 @@ var spacingStyles = {
|
|
|
454
454
|
};
|
|
455
455
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
456
456
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
457
|
-
var Section =
|
|
457
|
+
var Section = React8__default.forwardRef(
|
|
458
458
|
({
|
|
459
459
|
id,
|
|
460
460
|
title,
|
|
@@ -519,12 +519,12 @@ function TextInner({ as, className, children, ...props }, ref) {
|
|
|
519
519
|
const Component = as || "span";
|
|
520
520
|
return /* @__PURE__ */ jsx(Component, { ref, className: cn(className), ...props, children });
|
|
521
521
|
}
|
|
522
|
-
var Text =
|
|
522
|
+
var Text = React8.forwardRef(TextInner);
|
|
523
523
|
Text.displayName = "Text";
|
|
524
524
|
function isContentTextItem(item) {
|
|
525
|
-
return item !== null && typeof item === "object" && !
|
|
525
|
+
return item !== null && typeof item === "object" && !React8.isValidElement(item) && "_type" in item && item._type === "text";
|
|
526
526
|
}
|
|
527
|
-
var ContentGroup =
|
|
527
|
+
var ContentGroup = React8.forwardRef(
|
|
528
528
|
({ items, className, children, ...props }, ref) => {
|
|
529
529
|
const hasContent = items && items.length > 0;
|
|
530
530
|
if (!hasContent) {
|
|
@@ -537,10 +537,10 @@ var ContentGroup = React32.forwardRef(
|
|
|
537
537
|
return /* @__PURE__ */ jsx(Text, { ...textProps }, idx);
|
|
538
538
|
}
|
|
539
539
|
const reactNode = item;
|
|
540
|
-
if (
|
|
541
|
-
return
|
|
540
|
+
if (React8.isValidElement(reactNode)) {
|
|
541
|
+
return React8.cloneElement(reactNode, { key: reactNode.key ?? idx });
|
|
542
542
|
}
|
|
543
|
-
return /* @__PURE__ */ jsx(
|
|
543
|
+
return /* @__PURE__ */ jsx(React8.Fragment, { children: reactNode }, idx);
|
|
544
544
|
}),
|
|
545
545
|
children
|
|
546
546
|
] });
|
|
@@ -729,7 +729,7 @@ function useNavigation({
|
|
|
729
729
|
href,
|
|
730
730
|
onClick
|
|
731
731
|
} = {}) {
|
|
732
|
-
const linkType =
|
|
732
|
+
const linkType = React8.useMemo(() => {
|
|
733
733
|
if (!href || href.trim() === "") {
|
|
734
734
|
return onClick ? "none" : "none";
|
|
735
735
|
}
|
|
@@ -750,7 +750,7 @@ function useNavigation({
|
|
|
750
750
|
return "internal";
|
|
751
751
|
}
|
|
752
752
|
}, [href, onClick]);
|
|
753
|
-
const normalizedHref =
|
|
753
|
+
const normalizedHref = React8.useMemo(() => {
|
|
754
754
|
if (!href || href.trim() === "") {
|
|
755
755
|
return void 0;
|
|
756
756
|
}
|
|
@@ -768,7 +768,7 @@ function useNavigation({
|
|
|
768
768
|
return trimmed;
|
|
769
769
|
}
|
|
770
770
|
}, [href, linkType]);
|
|
771
|
-
const target =
|
|
771
|
+
const target = React8.useMemo(() => {
|
|
772
772
|
switch (linkType) {
|
|
773
773
|
case "external":
|
|
774
774
|
return "_blank";
|
|
@@ -781,7 +781,7 @@ function useNavigation({
|
|
|
781
781
|
return void 0;
|
|
782
782
|
}
|
|
783
783
|
}, [linkType]);
|
|
784
|
-
const rel =
|
|
784
|
+
const rel = React8.useMemo(() => {
|
|
785
785
|
if (linkType === "external") {
|
|
786
786
|
return "noopener noreferrer";
|
|
787
787
|
}
|
|
@@ -790,7 +790,7 @@ function useNavigation({
|
|
|
790
790
|
const isExternal = linkType === "external";
|
|
791
791
|
const isInternal = linkType === "internal";
|
|
792
792
|
const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
|
|
793
|
-
const handleClick =
|
|
793
|
+
const handleClick = React8.useCallback(
|
|
794
794
|
(event) => {
|
|
795
795
|
if (onClick) {
|
|
796
796
|
try {
|
|
@@ -974,7 +974,7 @@ var buttonVariants = cva(baseStyles, {
|
|
|
974
974
|
size: "default"
|
|
975
975
|
}
|
|
976
976
|
});
|
|
977
|
-
var Pressable =
|
|
977
|
+
var Pressable = React8.forwardRef(
|
|
978
978
|
({
|
|
979
979
|
children,
|
|
980
980
|
className,
|
|
@@ -1073,9 +1073,13 @@ var Pressable = React32.forwardRef(
|
|
|
1073
1073
|
);
|
|
1074
1074
|
Pressable.displayName = "Pressable";
|
|
1075
1075
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
1076
|
-
|
|
1076
|
+
var DynamicIcon = React8.memo(function DynamicIcon2({
|
|
1077
|
+
apiKey,
|
|
1078
|
+
...props
|
|
1079
|
+
}) {
|
|
1077
1080
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
1078
|
-
}
|
|
1081
|
+
});
|
|
1082
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
1079
1083
|
var PANEL_POSITION_CLASS = {
|
|
1080
1084
|
"top-left": "left-4 top-4",
|
|
1081
1085
|
"top-right": "right-4 top-4",
|
|
@@ -1167,12 +1171,20 @@ function MarkerMediaCarousel({
|
|
|
1167
1171
|
mediaItems,
|
|
1168
1172
|
optixFlowConfig
|
|
1169
1173
|
}) {
|
|
1170
|
-
const [activeIndex, setActiveIndex] =
|
|
1174
|
+
const [activeIndex, setActiveIndex] = React8.useState(0);
|
|
1171
1175
|
const totalItems = mediaItems.length;
|
|
1172
|
-
|
|
1176
|
+
const mediaResetKey = React8.useMemo(
|
|
1177
|
+
() => mediaItems.map((item, index) => {
|
|
1178
|
+
const itemId = normalizeId(item.id, `media-${index}`);
|
|
1179
|
+
return `${itemId}:${item.src}:${item.type ?? ""}:${item.poster ?? ""}`;
|
|
1180
|
+
}).join("|"),
|
|
1181
|
+
[mediaItems]
|
|
1182
|
+
);
|
|
1183
|
+
const activeItemIndex = Math.min(activeIndex, Math.max(0, totalItems - 1));
|
|
1184
|
+
React8.useEffect(() => {
|
|
1173
1185
|
setActiveIndex(0);
|
|
1174
|
-
}, [
|
|
1175
|
-
const activeMediaItem = mediaItems[
|
|
1186
|
+
}, [mediaResetKey]);
|
|
1187
|
+
const activeMediaItem = mediaItems[activeItemIndex];
|
|
1176
1188
|
const mediaType = resolveMediaType(activeMediaItem);
|
|
1177
1189
|
return /* @__PURE__ */ jsxs("div", { className: "relative border-b border-border/60 bg-muted/40", children: [
|
|
1178
1190
|
/* @__PURE__ */ jsx("div", { className: "relative h-44 w-full overflow-hidden", children: mediaType === "video" ? /* @__PURE__ */ jsx(
|
|
@@ -1206,7 +1218,7 @@ function MarkerMediaCarousel({
|
|
|
1206
1218
|
(current) => (current - 1 + totalItems) % totalItems
|
|
1207
1219
|
);
|
|
1208
1220
|
},
|
|
1209
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-left" })
|
|
1221
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-left", size: 16 })
|
|
1210
1222
|
}
|
|
1211
1223
|
),
|
|
1212
1224
|
/* @__PURE__ */ jsx(
|
|
@@ -1218,7 +1230,7 @@ function MarkerMediaCarousel({
|
|
|
1218
1230
|
onClick: () => {
|
|
1219
1231
|
setActiveIndex((current) => (current + 1) % totalItems);
|
|
1220
1232
|
},
|
|
1221
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right" })
|
|
1233
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
1222
1234
|
}
|
|
1223
1235
|
),
|
|
1224
1236
|
/* @__PURE__ */ jsx("div", { className: "absolute bottom-2 left-1/2 flex -translate-x-1/2 items-center gap-1.5", children: mediaItems.map((item, index) => /* @__PURE__ */ jsx(
|
|
@@ -1228,7 +1240,7 @@ function MarkerMediaCarousel({
|
|
|
1228
1240
|
"aria-label": `Show media item ${index + 1}`,
|
|
1229
1241
|
className: cn(
|
|
1230
1242
|
"h-2 rounded-full transition-all",
|
|
1231
|
-
index ===
|
|
1243
|
+
index === activeItemIndex ? "w-6 bg-card" : "w-2 bg-card opacity-50 hover:opacity-100"
|
|
1232
1244
|
),
|
|
1233
1245
|
onClick: () => setActiveIndex(index)
|
|
1234
1246
|
},
|
|
@@ -1277,14 +1289,14 @@ function GeoMap({
|
|
|
1277
1289
|
mapChildren,
|
|
1278
1290
|
optixFlowConfig
|
|
1279
1291
|
}) {
|
|
1280
|
-
const normalizedStandaloneMarkers =
|
|
1292
|
+
const normalizedStandaloneMarkers = React8.useMemo(
|
|
1281
1293
|
() => markers.map((marker, index) => ({
|
|
1282
1294
|
...marker,
|
|
1283
1295
|
id: normalizeId(marker.id, `marker-${index}`)
|
|
1284
1296
|
})),
|
|
1285
1297
|
[markers]
|
|
1286
1298
|
);
|
|
1287
|
-
const normalizedClusters =
|
|
1299
|
+
const normalizedClusters = React8.useMemo(() => {
|
|
1288
1300
|
const results = [];
|
|
1289
1301
|
clusters.forEach((cluster, clusterIndex) => {
|
|
1290
1302
|
const clusterId = normalizeId(cluster.id, `cluster-${clusterIndex}`);
|
|
@@ -1309,7 +1321,7 @@ function GeoMap({
|
|
|
1309
1321
|
});
|
|
1310
1322
|
return results;
|
|
1311
1323
|
}, [clusters]);
|
|
1312
|
-
const markerLookup =
|
|
1324
|
+
const markerLookup = React8.useMemo(() => {
|
|
1313
1325
|
const lookup = /* @__PURE__ */ new Map();
|
|
1314
1326
|
normalizedStandaloneMarkers.forEach((marker) => {
|
|
1315
1327
|
lookup.set(marker.id, marker);
|
|
@@ -1321,14 +1333,14 @@ function GeoMap({
|
|
|
1321
1333
|
});
|
|
1322
1334
|
return lookup;
|
|
1323
1335
|
}, [normalizedClusters, normalizedStandaloneMarkers]);
|
|
1324
|
-
const clusterLookup =
|
|
1336
|
+
const clusterLookup = React8.useMemo(() => {
|
|
1325
1337
|
const lookup = /* @__PURE__ */ new Map();
|
|
1326
1338
|
normalizedClusters.forEach((cluster) => {
|
|
1327
1339
|
lookup.set(cluster.id, cluster);
|
|
1328
1340
|
});
|
|
1329
1341
|
return lookup;
|
|
1330
1342
|
}, [normalizedClusters]);
|
|
1331
|
-
const firstCoordinate =
|
|
1343
|
+
const firstCoordinate = React8.useMemo(() => {
|
|
1332
1344
|
if (normalizedStandaloneMarkers.length > 0) {
|
|
1333
1345
|
const firstStandaloneMarker = normalizedStandaloneMarkers[0];
|
|
1334
1346
|
return {
|
|
@@ -1348,23 +1360,27 @@ function GeoMap({
|
|
|
1348
1360
|
longitude: DEFAULT_VIEW_STATE.longitude
|
|
1349
1361
|
};
|
|
1350
1362
|
}, [normalizedClusters, normalizedStandaloneMarkers]);
|
|
1351
|
-
const [uncontrolledViewState, setUncontrolledViewState] =
|
|
1363
|
+
const [uncontrolledViewState, setUncontrolledViewState] = React8.useState({
|
|
1352
1364
|
latitude: defaultViewState?.latitude ?? firstCoordinate.latitude,
|
|
1353
1365
|
longitude: defaultViewState?.longitude ?? firstCoordinate.longitude,
|
|
1354
1366
|
zoom: defaultViewState?.zoom ?? DEFAULT_VIEW_STATE.zoom
|
|
1355
1367
|
});
|
|
1356
1368
|
const isControlledViewState = viewState !== void 0;
|
|
1357
1369
|
const resolvedViewState = isControlledViewState ? viewState : uncontrolledViewState;
|
|
1358
|
-
const applyViewState =
|
|
1370
|
+
const applyViewState = React8.useCallback(
|
|
1359
1371
|
(nextState) => {
|
|
1360
1372
|
if (!isControlledViewState) {
|
|
1361
|
-
setUncontrolledViewState((current) =>
|
|
1373
|
+
setUncontrolledViewState((current) => {
|
|
1374
|
+
const next = { ...current, ...nextState };
|
|
1375
|
+
const hasChanged = current.latitude !== next.latitude || current.longitude !== next.longitude || current.zoom !== next.zoom;
|
|
1376
|
+
return hasChanged ? next : current;
|
|
1377
|
+
});
|
|
1362
1378
|
}
|
|
1363
1379
|
onViewStateChange?.(nextState);
|
|
1364
1380
|
},
|
|
1365
1381
|
[isControlledViewState, onViewStateChange]
|
|
1366
1382
|
);
|
|
1367
|
-
const [selection, setSelection] =
|
|
1383
|
+
const [selection, setSelection] = React8.useState(() => {
|
|
1368
1384
|
if (initialSelectedMarkerId !== void 0 && initialSelectedMarkerId !== null) {
|
|
1369
1385
|
return {
|
|
1370
1386
|
type: "marker",
|
|
@@ -1373,7 +1389,7 @@ function GeoMap({
|
|
|
1373
1389
|
}
|
|
1374
1390
|
return { type: "none" };
|
|
1375
1391
|
});
|
|
1376
|
-
|
|
1392
|
+
React8.useEffect(() => {
|
|
1377
1393
|
if (selectedMarkerId === void 0 || selectedMarkerId === null) {
|
|
1378
1394
|
return;
|
|
1379
1395
|
}
|
|
@@ -1384,13 +1400,13 @@ function GeoMap({
|
|
|
1384
1400
|
}, [selectedMarkerId]);
|
|
1385
1401
|
const selectedMarker = selection.markerId ? markerLookup.get(selection.markerId) : void 0;
|
|
1386
1402
|
const selectedCluster = selection.clusterId ? clusterLookup.get(selection.clusterId) : void 0;
|
|
1387
|
-
|
|
1403
|
+
React8.useEffect(() => {
|
|
1388
1404
|
if (selection.type === "marker" && selection.markerId && !selectedMarker) {
|
|
1389
1405
|
setSelection({ type: "none" });
|
|
1390
1406
|
onSelectionChange?.({ type: "none" });
|
|
1391
1407
|
}
|
|
1392
1408
|
}, [onSelectionChange, selectedMarker, selection]);
|
|
1393
|
-
const emitSelectionChange =
|
|
1409
|
+
const emitSelectionChange = React8.useCallback(
|
|
1394
1410
|
(nextSelection) => {
|
|
1395
1411
|
if (nextSelection.type === "none") {
|
|
1396
1412
|
onSelectionChange?.({ type: "none" });
|
|
@@ -1412,7 +1428,7 @@ function GeoMap({
|
|
|
1412
1428
|
},
|
|
1413
1429
|
[clusterLookup, onSelectionChange]
|
|
1414
1430
|
);
|
|
1415
|
-
const selectMarker =
|
|
1431
|
+
const selectMarker = React8.useCallback(
|
|
1416
1432
|
(marker) => {
|
|
1417
1433
|
setSelection({
|
|
1418
1434
|
type: "marker",
|
|
@@ -1428,7 +1444,7 @@ function GeoMap({
|
|
|
1428
1444
|
},
|
|
1429
1445
|
[applyViewState, emitSelectionChange, markerFocusZoom]
|
|
1430
1446
|
);
|
|
1431
|
-
const selectCluster =
|
|
1447
|
+
const selectCluster = React8.useCallback(
|
|
1432
1448
|
(cluster) => {
|
|
1433
1449
|
setSelection({
|
|
1434
1450
|
type: "cluster",
|
|
@@ -1443,11 +1459,11 @@ function GeoMap({
|
|
|
1443
1459
|
},
|
|
1444
1460
|
[applyViewState, clusterFocusZoom, emitSelectionChange]
|
|
1445
1461
|
);
|
|
1446
|
-
const clearSelection =
|
|
1462
|
+
const clearSelection = React8.useCallback(() => {
|
|
1447
1463
|
setSelection({ type: "none" });
|
|
1448
1464
|
emitSelectionChange({ type: "none" });
|
|
1449
1465
|
}, [emitSelectionChange]);
|
|
1450
|
-
const mapMarkers =
|
|
1466
|
+
const mapMarkers = React8.useMemo(() => {
|
|
1451
1467
|
const resolvedMarkers = [];
|
|
1452
1468
|
normalizedClusters.forEach((cluster) => {
|
|
1453
1469
|
const isSelected = selection.type === "cluster" && selection.clusterId === cluster.id;
|
|
@@ -1556,7 +1572,7 @@ function GeoMap({
|
|
|
1556
1572
|
"aria-label": "Close marker details",
|
|
1557
1573
|
className: "flex size-8 items-center justify-center rounded-full border border-border bg-card text-card-foreground transition hover:bg-muted hover:text-foreground absolute top-2 right-2 z-10",
|
|
1558
1574
|
onClick: clearSelection,
|
|
1559
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x" })
|
|
1575
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16 })
|
|
1560
1576
|
}
|
|
1561
1577
|
),
|
|
1562
1578
|
markerMediaItems.length > 0 ? /* @__PURE__ */ jsx(
|
|
@@ -1572,36 +1588,40 @@ function GeoMap({
|
|
|
1572
1588
|
/* @__PURE__ */ jsx("div", { className: "text-base font-semibold leading-tight", children: selectedMarker.title ?? selectedMarker.label ?? "Location" })
|
|
1573
1589
|
] }) }),
|
|
1574
1590
|
selectedMarker.summary ? /* @__PURE__ */ jsx("div", { className: "text-sm leading-relaxed", children: selectedMarker.summary }) : null,
|
|
1575
|
-
selectedMarker.locationLine ? /* @__PURE__ */ jsxs(
|
|
1576
|
-
|
|
1577
|
-
|
|
1578
|
-
|
|
1579
|
-
|
|
1580
|
-
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1591
|
+
selectedMarker.locationLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
|
|
1592
|
+
/* @__PURE__ */ jsx(
|
|
1593
|
+
DynamicIcon,
|
|
1594
|
+
{
|
|
1595
|
+
name: "lucide:map-pin",
|
|
1596
|
+
className: "opacity-50",
|
|
1597
|
+
size: 14
|
|
1598
|
+
}
|
|
1599
|
+
),
|
|
1600
|
+
typeof selectedMarker.locationLine === "string" ? /* @__PURE__ */ jsx(
|
|
1601
|
+
Pressable,
|
|
1602
|
+
{
|
|
1603
|
+
href: selectedMarker.locationUrl,
|
|
1604
|
+
className: cn(
|
|
1605
|
+
"transition-all duration-500",
|
|
1606
|
+
"font-medium opacity-75 hover:opacity-100",
|
|
1607
|
+
selectedMarker.locationUrl ? "underline underline-offset-4" : ""
|
|
1588
1608
|
),
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
) : null,
|
|
1609
|
+
children: selectedMarker.locationLine
|
|
1610
|
+
}
|
|
1611
|
+
) : selectedMarker.locationLine
|
|
1612
|
+
] }) : null,
|
|
1593
1613
|
selectedMarker.hoursLine ? /* @__PURE__ */ jsxs("div", { className: "flex flex-row items-center justify-start text-sm gap-2", children: [
|
|
1594
1614
|
/* @__PURE__ */ jsx(
|
|
1595
1615
|
DynamicIcon,
|
|
1596
1616
|
{
|
|
1597
1617
|
name: "lucide:clock",
|
|
1598
1618
|
className: "opacity-50",
|
|
1599
|
-
size:
|
|
1619
|
+
size: 14
|
|
1600
1620
|
}
|
|
1601
1621
|
),
|
|
1602
1622
|
typeof selectedMarker.hoursLine === "string" ? /* @__PURE__ */ jsx("div", { className: "font-medium", children: selectedMarker.hoursLine }) : selectedMarker.hoursLine
|
|
1603
1623
|
] }) : null,
|
|
1604
|
-
selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "
|
|
1624
|
+
selectedMarker.markerContentComponent ? /* @__PURE__ */ jsx("div", { className: "relative", children: selectedMarker.markerContentComponent }) : null,
|
|
1605
1625
|
/* @__PURE__ */ jsx(MarkerActions, { actions: selectedMarker.actions })
|
|
1606
1626
|
] })
|
|
1607
1627
|
]
|
|
@@ -1624,7 +1644,7 @@ function GeoMap({
|
|
|
1624
1644
|
"aria-label": "Close cluster details",
|
|
1625
1645
|
className: "flex size-8 items-center justify-center rounded-full border border-border bg-card text-card-foreground transition hover:bg-muted hover:text-foreground absolute top-2 right-2 z-10",
|
|
1626
1646
|
onClick: clearSelection,
|
|
1627
|
-
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x" })
|
|
1647
|
+
children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16 })
|
|
1628
1648
|
}
|
|
1629
1649
|
),
|
|
1630
1650
|
/* @__PURE__ */ jsx("div", { className: "mb-3 flex items-start justify-between gap-3", children: /* @__PURE__ */ jsxs("div", { className: "min-w-0", children: [
|
|
@@ -1772,10 +1792,10 @@ var ImageSlider = ({
|
|
|
1772
1792
|
optixFlowConfig
|
|
1773
1793
|
}) => {
|
|
1774
1794
|
const hasImages = images.length > 0;
|
|
1775
|
-
const [currentIndex, setCurrentIndex] =
|
|
1795
|
+
const [currentIndex, setCurrentIndex] = React8.useState(
|
|
1776
1796
|
() => normalizeIndex(startIndex, images.length)
|
|
1777
1797
|
);
|
|
1778
|
-
const handleNext =
|
|
1798
|
+
const handleNext = React8.useCallback(() => {
|
|
1779
1799
|
if (!hasImages) return;
|
|
1780
1800
|
setCurrentIndex((prevIndex) => {
|
|
1781
1801
|
const nextIndex = prevIndex + 1 >= images.length ? 0 : prevIndex + 1;
|
|
@@ -1783,7 +1803,7 @@ var ImageSlider = ({
|
|
|
1783
1803
|
return nextIndex;
|
|
1784
1804
|
});
|
|
1785
1805
|
}, [hasImages, images.length, onSlideChange]);
|
|
1786
|
-
const handlePrevious =
|
|
1806
|
+
const handlePrevious = React8.useCallback(() => {
|
|
1787
1807
|
if (!hasImages) return;
|
|
1788
1808
|
setCurrentIndex((prevIndex) => {
|
|
1789
1809
|
const nextIndex = prevIndex - 1 < 0 ? images.length - 1 : prevIndex - 1;
|
|
@@ -1791,11 +1811,11 @@ var ImageSlider = ({
|
|
|
1791
1811
|
return nextIndex;
|
|
1792
1812
|
});
|
|
1793
1813
|
}, [hasImages, images.length, onSlideChange]);
|
|
1794
|
-
|
|
1814
|
+
React8.useEffect(() => {
|
|
1795
1815
|
if (!hasImages) return;
|
|
1796
1816
|
setCurrentIndex(normalizeIndex(startIndex, images.length));
|
|
1797
1817
|
}, [startIndex, images.length, hasImages]);
|
|
1798
|
-
|
|
1818
|
+
React8.useEffect(() => {
|
|
1799
1819
|
if (!enableKeyboard || !hasImages) return;
|
|
1800
1820
|
const handleKeyDown = (event) => {
|
|
1801
1821
|
if (event.key === "ArrowRight") {
|
|
@@ -1809,7 +1829,7 @@ var ImageSlider = ({
|
|
|
1809
1829
|
window.removeEventListener("keydown", handleKeyDown);
|
|
1810
1830
|
};
|
|
1811
1831
|
}, [enableKeyboard, handleNext, handlePrevious, hasImages]);
|
|
1812
|
-
|
|
1832
|
+
React8.useEffect(() => {
|
|
1813
1833
|
if (!autoplay || images.length < 2) return;
|
|
1814
1834
|
const interval = window.setInterval(handleNext, autoplayIntervalMs);
|
|
1815
1835
|
return () => window.clearInterval(interval);
|
|
@@ -2101,7 +2121,7 @@ var platformIconMap = {
|
|
|
2101
2121
|
dribbble: "cib/dribbble",
|
|
2102
2122
|
unknown: "icon-park-solid/circular-connection"
|
|
2103
2123
|
};
|
|
2104
|
-
var SocialLinkIcon =
|
|
2124
|
+
var SocialLinkIcon = React8.forwardRef(
|
|
2105
2125
|
({
|
|
2106
2126
|
platformName,
|
|
2107
2127
|
label,
|
|
@@ -2114,13 +2134,13 @@ var SocialLinkIcon = React32.forwardRef(
|
|
|
2114
2134
|
...pressableProps
|
|
2115
2135
|
}, ref) => {
|
|
2116
2136
|
const platform = usePlatformFromUrl(href);
|
|
2117
|
-
const smartPlatformName =
|
|
2137
|
+
const smartPlatformName = React8.useMemo(() => {
|
|
2118
2138
|
return platform || platformName;
|
|
2119
2139
|
}, [platform, platformName]);
|
|
2120
|
-
const iconName =
|
|
2140
|
+
const iconName = React8.useMemo(() => {
|
|
2121
2141
|
return iconNameOverride || platformIconMap[smartPlatformName];
|
|
2122
2142
|
}, [iconNameOverride, smartPlatformName]);
|
|
2123
|
-
const accessibleLabel =
|
|
2143
|
+
const accessibleLabel = React8.useMemo(() => {
|
|
2124
2144
|
return label || platformName;
|
|
2125
2145
|
}, [label, platformName]);
|
|
2126
2146
|
return /* @__PURE__ */ jsx(
|
|
@@ -2604,7 +2624,7 @@ function AboutExpandableValues({
|
|
|
2604
2624
|
pattern,
|
|
2605
2625
|
patternOpacity
|
|
2606
2626
|
}) {
|
|
2607
|
-
const [expandedValue, setExpandedValue] =
|
|
2627
|
+
const [expandedValue, setExpandedValue] = React8.useState(null);
|
|
2608
2628
|
const toggleExpand = useCallback((id) => {
|
|
2609
2629
|
setExpandedValue((prev) => prev === id ? null : id);
|
|
2610
2630
|
}, []);
|
|
@@ -2840,7 +2860,7 @@ function CommunityInitiatives({
|
|
|
2840
2860
|
pattern,
|
|
2841
2861
|
patternOpacity
|
|
2842
2862
|
}) {
|
|
2843
|
-
const [activeCategory, setActiveCategory] =
|
|
2863
|
+
const [activeCategory, setActiveCategory] = React8.useState(
|
|
2844
2864
|
categories?.[0]?.id || ""
|
|
2845
2865
|
);
|
|
2846
2866
|
const currentCategory = categories?.find((category) => category.id === activeCategory) || categories?.[0];
|
|
@@ -3104,7 +3124,7 @@ function AboutCultureTabs({
|
|
|
3104
3124
|
patternOpacity
|
|
3105
3125
|
}) {
|
|
3106
3126
|
const resolvedAspects = aspects ?? [];
|
|
3107
|
-
const [activeTab, setActiveTab] =
|
|
3127
|
+
const [activeTab, setActiveTab] = React8.useState(
|
|
3108
3128
|
resolvedAspects[0]?.id || ""
|
|
3109
3129
|
);
|
|
3110
3130
|
const headerItems = useMemo(() => {
|
|
@@ -3637,7 +3657,7 @@ function BannerDeliveryCountdown({
|
|
|
3637
3657
|
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
3638
3658
|
return /* @__PURE__ */ jsx(Section, { background, spacing: "none", className: cn("bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
|
|
3639
3659
|
iconContent,
|
|
3640
|
-
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(
|
|
3660
|
+
messageParts.length > 0 && /* @__PURE__ */ jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
3641
3661
|
index > 0 ? " " : null,
|
|
3642
3662
|
part
|
|
3643
3663
|
] }, index)) })
|
|
@@ -4908,8 +4928,8 @@ var BrandAttribution = ({
|
|
|
4908
4928
|
}
|
|
4909
4929
|
const { prefix = "", anchorText, href, suffix = "" } = options[optionIndex];
|
|
4910
4930
|
const ContainerEl = variant;
|
|
4911
|
-
const [trackedHref, setTrackedHref] =
|
|
4912
|
-
|
|
4931
|
+
const [trackedHref, setTrackedHref] = React8.useState(href);
|
|
4932
|
+
React8.useEffect(() => {
|
|
4913
4933
|
setTrackedHref(buildTrackedHref(href));
|
|
4914
4934
|
}, [href]);
|
|
4915
4935
|
return /* @__PURE__ */ jsxs(ContainerEl, { className: containerClassName, children: [
|
|
@@ -5029,7 +5049,7 @@ function FooterSocialNewsletter({
|
|
|
5029
5049
|
patternOpacity,
|
|
5030
5050
|
optixFlowConfig
|
|
5031
5051
|
}) {
|
|
5032
|
-
const renderForm =
|
|
5052
|
+
const renderForm = React8.useMemo(() => {
|
|
5033
5053
|
if (!formEngineSetup) return null;
|
|
5034
5054
|
const action = {
|
|
5035
5055
|
variant: "default",
|
|
@@ -5318,7 +5338,7 @@ function FooterSimpleCentered({
|
|
|
5318
5338
|
]);
|
|
5319
5339
|
const bottomLinksContent = useMemo(() => {
|
|
5320
5340
|
if (!bottomLinks || bottomLinks.length === 0) return null;
|
|
5321
|
-
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(
|
|
5341
|
+
return bottomLinks.map((link, idx) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(
|
|
5322
5342
|
Pressable,
|
|
5323
5343
|
{
|
|
5324
5344
|
href: link.href,
|
|
@@ -6665,7 +6685,7 @@ function FooterNewsletterMinimal({
|
|
|
6665
6685
|
buttonAction,
|
|
6666
6686
|
formSlot
|
|
6667
6687
|
}) {
|
|
6668
|
-
const navLinksContent =
|
|
6688
|
+
const navLinksContent = React8.useMemo(() => {
|
|
6669
6689
|
if (!navLinks || navLinks.length === 0) return null;
|
|
6670
6690
|
return navLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
6671
6691
|
Pressable,
|
|
@@ -6676,7 +6696,7 @@ function FooterNewsletterMinimal({
|
|
|
6676
6696
|
}
|
|
6677
6697
|
) }, idx));
|
|
6678
6698
|
}, [navLinks, navLinkClassName]);
|
|
6679
|
-
const socialLinksContent =
|
|
6699
|
+
const socialLinksContent = React8.useMemo(() => {
|
|
6680
6700
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
6681
6701
|
return socialLinks.map((item, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
6682
6702
|
SocialLinkIcon,
|
|
@@ -6692,7 +6712,7 @@ function FooterNewsletterMinimal({
|
|
|
6692
6712
|
}
|
|
6693
6713
|
) }, idx));
|
|
6694
6714
|
}, [socialLinks, socialLinkClassName]);
|
|
6695
|
-
const footerLinksContent =
|
|
6715
|
+
const footerLinksContent = React8.useMemo(() => {
|
|
6696
6716
|
if (!footerLinks || footerLinks.length === 0) return null;
|
|
6697
6717
|
return footerLinks.map((item) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
6698
6718
|
Pressable,
|
|
@@ -6706,7 +6726,7 @@ function FooterNewsletterMinimal({
|
|
|
6706
6726
|
}
|
|
6707
6727
|
) }, item.label));
|
|
6708
6728
|
}, [footerLinks, footerLinkClassName]);
|
|
6709
|
-
const renderForm =
|
|
6729
|
+
const renderForm = React8.useMemo(() => {
|
|
6710
6730
|
if (formSlot) return formSlot;
|
|
6711
6731
|
if (!formEngineSetup) return null;
|
|
6712
6732
|
const defaultButtonAction = {
|
|
@@ -9346,7 +9366,7 @@ function AboutInteractiveTabs({
|
|
|
9346
9366
|
pattern,
|
|
9347
9367
|
patternOpacity
|
|
9348
9368
|
}) {
|
|
9349
|
-
const [activeTab, setActiveTab] =
|
|
9369
|
+
const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id ?? "");
|
|
9350
9370
|
const activeContent = useMemo(() => {
|
|
9351
9371
|
return tabs?.find((tab) => tab.id === activeTab)?.content;
|
|
9352
9372
|
}, [tabs, activeTab]);
|
|
@@ -9495,7 +9515,7 @@ function AboutMissionDualImage({
|
|
|
9495
9515
|
pattern,
|
|
9496
9516
|
patternOpacity
|
|
9497
9517
|
}) {
|
|
9498
|
-
const renderTextContent =
|
|
9518
|
+
const renderTextContent = React8.useCallback(
|
|
9499
9519
|
(primaryHeading, primaryClassName, secondaryContent, secondaryClassname) => {
|
|
9500
9520
|
if (!primaryHeading || !secondaryContent) {
|
|
9501
9521
|
return null;
|
|
@@ -12185,7 +12205,7 @@ function CtaAppDownloadNewsletter({
|
|
|
12185
12205
|
buttonAction,
|
|
12186
12206
|
formSlot
|
|
12187
12207
|
}) {
|
|
12188
|
-
const renderForm =
|
|
12208
|
+
const renderForm = React8.useMemo(() => {
|
|
12189
12209
|
if (formSlot) return formSlot;
|
|
12190
12210
|
if (!formEngineSetup) return null;
|
|
12191
12211
|
const defaultButtonAction = {
|
|
@@ -12218,7 +12238,7 @@ function CtaAppDownloadNewsletter({
|
|
|
12218
12238
|
}
|
|
12219
12239
|
);
|
|
12220
12240
|
}, [formSlot, formEngineSetup, buttonAction, formClassName]);
|
|
12221
|
-
const appActionsContent =
|
|
12241
|
+
const appActionsContent = React8.useMemo(() => {
|
|
12222
12242
|
if (appActionsSlot) return appActionsSlot;
|
|
12223
12243
|
if (!appActions || appActions.length === 0) return null;
|
|
12224
12244
|
return /* @__PURE__ */ jsx(
|
|
@@ -12359,7 +12379,7 @@ function CtaNewsletterFeatures({
|
|
|
12359
12379
|
formEngineSetup,
|
|
12360
12380
|
buttonAction
|
|
12361
12381
|
}) {
|
|
12362
|
-
const renderForm =
|
|
12382
|
+
const renderForm = React8.useMemo(() => {
|
|
12363
12383
|
if (formSlot) return formSlot;
|
|
12364
12384
|
if (!formEngineSetup) return null;
|
|
12365
12385
|
const defaultButtonAction = {
|
|
@@ -12392,7 +12412,7 @@ function CtaNewsletterFeatures({
|
|
|
12392
12412
|
}
|
|
12393
12413
|
);
|
|
12394
12414
|
}, [formSlot, formEngineSetup, buttonAction, formClassName]);
|
|
12395
|
-
const featuresContent =
|
|
12415
|
+
const featuresContent = React8.useMemo(() => {
|
|
12396
12416
|
if (featuresSlot) return featuresSlot;
|
|
12397
12417
|
if (!features || features.length === 0) return null;
|
|
12398
12418
|
return /* @__PURE__ */ jsx(
|
|
@@ -13164,7 +13184,7 @@ function CtaVideoBackgroundHero({
|
|
|
13164
13184
|
pattern,
|
|
13165
13185
|
patternOpacity
|
|
13166
13186
|
}) {
|
|
13167
|
-
const [isModalOpen, setIsModalOpen] =
|
|
13187
|
+
const [isModalOpen, setIsModalOpen] = React8.useState(false);
|
|
13168
13188
|
const handleOpenModal = () => {
|
|
13169
13189
|
setIsModalOpen(true);
|
|
13170
13190
|
onModalOpen?.();
|
|
@@ -13352,7 +13372,7 @@ function CtaWorkflowTabs({
|
|
|
13352
13372
|
patternOpacity,
|
|
13353
13373
|
optixFlowConfig
|
|
13354
13374
|
}) {
|
|
13355
|
-
const [activeTab, setActiveTab] =
|
|
13375
|
+
const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
|
|
13356
13376
|
const activeTabData = tabs?.find((tab) => tab.id === activeTab) || tabs?.[0];
|
|
13357
13377
|
const actionsContent = useMemo(() => {
|
|
13358
13378
|
if (actionsSlot) return actionsSlot;
|
|
@@ -13960,7 +13980,7 @@ function ContactFloatingBanner({
|
|
|
13960
13980
|
pattern,
|
|
13961
13981
|
patternOpacity
|
|
13962
13982
|
}) {
|
|
13963
|
-
const actionsContent =
|
|
13983
|
+
const actionsContent = React8.useMemo(() => {
|
|
13964
13984
|
if (actionsSlot) return actionsSlot;
|
|
13965
13985
|
if (actions && actions.length > 0) {
|
|
13966
13986
|
return actions.map((action, index) => {
|
|
@@ -14304,7 +14324,7 @@ function ContactCard({
|
|
|
14304
14324
|
pattern,
|
|
14305
14325
|
patternOpacity
|
|
14306
14326
|
}) {
|
|
14307
|
-
const contactOptionsContent =
|
|
14327
|
+
const contactOptionsContent = React8.useMemo(() => {
|
|
14308
14328
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
14309
14329
|
if (contactOptions && contactOptions.length > 0) {
|
|
14310
14330
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-4", children: [
|
|
@@ -14328,7 +14348,7 @@ function ContactCard({
|
|
|
14328
14348
|
}
|
|
14329
14349
|
return null;
|
|
14330
14350
|
}, [contactOptionsSlot, contactOptions]);
|
|
14331
|
-
const socialLinksContent =
|
|
14351
|
+
const socialLinksContent = React8.useMemo(() => {
|
|
14332
14352
|
if (socialLinksSlot) return socialLinksSlot;
|
|
14333
14353
|
if (socialLinks && socialLinks.length > 0) {
|
|
14334
14354
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -15235,7 +15255,7 @@ function ContactDark({
|
|
|
15235
15255
|
pattern,
|
|
15236
15256
|
patternOpacity
|
|
15237
15257
|
}) {
|
|
15238
|
-
const contactOptionsContent =
|
|
15258
|
+
const contactOptionsContent = React8.useMemo(() => {
|
|
15239
15259
|
if (contactOptionsSlot) return contactOptionsSlot;
|
|
15240
15260
|
if (contactOptions && contactOptions.length > 0) {
|
|
15241
15261
|
return contactOptions.map((option, key) => /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
@@ -15259,7 +15279,7 @@ function ContactDark({
|
|
|
15259
15279
|
}
|
|
15260
15280
|
return null;
|
|
15261
15281
|
}, [contactOptionsSlot, contactOptions]);
|
|
15262
|
-
const socialLinksContent =
|
|
15282
|
+
const socialLinksContent = React8.useMemo(() => {
|
|
15263
15283
|
if (socialLinksSlot) return socialLinksSlot;
|
|
15264
15284
|
if (socialLinks && socialLinks.length > 0) {
|
|
15265
15285
|
return socialLinks.map((social, key) => /* @__PURE__ */ jsx(
|
|
@@ -16554,7 +16574,7 @@ function ContactImage({
|
|
|
16554
16574
|
description,
|
|
16555
16575
|
descriptionClassName
|
|
16556
16576
|
]);
|
|
16557
|
-
const contactOverlaysContent =
|
|
16577
|
+
const contactOverlaysContent = React8.useMemo(() => {
|
|
16558
16578
|
if (contactOverlaysSlot) return contactOverlaysSlot;
|
|
16559
16579
|
if (!contactOverlays || contactOverlays.length === 0) return null;
|
|
16560
16580
|
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-3", contactOverlaysClassName), children: contactOverlays.map((item, index) => {
|
|
@@ -17186,7 +17206,7 @@ function ContactMap({
|
|
|
17186
17206
|
mapProps,
|
|
17187
17207
|
optixFlowConfig
|
|
17188
17208
|
}) {
|
|
17189
|
-
const renderForm =
|
|
17209
|
+
const renderForm = React8.useMemo(() => {
|
|
17190
17210
|
if (!formEngineSetup) {
|
|
17191
17211
|
return null;
|
|
17192
17212
|
}
|
|
@@ -17199,7 +17219,7 @@ function ContactMap({
|
|
|
17199
17219
|
}
|
|
17200
17220
|
);
|
|
17201
17221
|
}, [formEngineSetup]);
|
|
17202
|
-
const resolvedMapProps =
|
|
17222
|
+
const resolvedMapProps = React8.useMemo(() => {
|
|
17203
17223
|
return {
|
|
17204
17224
|
mapWrapperClassName: "h-[420px] md:h-[520px]",
|
|
17205
17225
|
panelPosition: "top-left",
|
|
@@ -17794,13 +17814,13 @@ function ContactPhotography({
|
|
|
17794
17814
|
}
|
|
17795
17815
|
return items;
|
|
17796
17816
|
}, [heading, headingClassName, description, descriptionClassName]);
|
|
17797
|
-
const desktopOrder =
|
|
17817
|
+
const desktopOrder = React8.useMemo(() => {
|
|
17798
17818
|
return directionConfig.desktop === "mediaRight" ? "lg:flex-row" : "lg:flex-row-reverse";
|
|
17799
17819
|
}, [directionConfig?.desktop]);
|
|
17800
|
-
const mobileOrder =
|
|
17820
|
+
const mobileOrder = React8.useMemo(() => {
|
|
17801
17821
|
return directionConfig?.mobile === "mediaTop" ? "flex-col" : "flex-col-reverse";
|
|
17802
17822
|
}, [directionConfig?.mobile]);
|
|
17803
|
-
const imageArea =
|
|
17823
|
+
const imageArea = React8.useMemo(() => {
|
|
17804
17824
|
if (!image?.src) {
|
|
17805
17825
|
return null;
|
|
17806
17826
|
}
|
|
@@ -19724,16 +19744,16 @@ function CarouselAnimatedSections({
|
|
|
19724
19744
|
pattern = "diagonalCrossBasic",
|
|
19725
19745
|
patternOpacity = 0.033
|
|
19726
19746
|
}) {
|
|
19727
|
-
const [currentIndex, setCurrentIndex] =
|
|
19728
|
-
const [direction, setDirection] =
|
|
19729
|
-
const [isAnimating, setIsAnimating] =
|
|
19730
|
-
const goToNext =
|
|
19747
|
+
const [currentIndex, setCurrentIndex] = React8.useState(0);
|
|
19748
|
+
const [direction, setDirection] = React8.useState(0);
|
|
19749
|
+
const [isAnimating, setIsAnimating] = React8.useState(false);
|
|
19750
|
+
const goToNext = React8.useCallback(() => {
|
|
19731
19751
|
if (isAnimating || currentIndex >= (sections?.length ?? 0) - 1) return;
|
|
19732
19752
|
setIsAnimating(true);
|
|
19733
19753
|
setDirection(1);
|
|
19734
19754
|
setCurrentIndex((prev) => prev + 1);
|
|
19735
19755
|
}, [currentIndex, isAnimating, sections?.length]);
|
|
19736
|
-
const goToPrev =
|
|
19756
|
+
const goToPrev = React8.useCallback(() => {
|
|
19737
19757
|
if (isAnimating || currentIndex <= 0) return;
|
|
19738
19758
|
setIsAnimating(true);
|
|
19739
19759
|
setDirection(-1);
|
|
@@ -19745,7 +19765,7 @@ function CarouselAnimatedSections({
|
|
|
19745
19765
|
setDirection(index > currentIndex ? 1 : -1);
|
|
19746
19766
|
setCurrentIndex(index);
|
|
19747
19767
|
};
|
|
19748
|
-
|
|
19768
|
+
React8.useEffect(() => {
|
|
19749
19769
|
const handleKeyDown = (e) => {
|
|
19750
19770
|
if (e.key === "ArrowDown" || e.key === "ArrowRight") {
|
|
19751
19771
|
goToNext();
|
|
@@ -19771,7 +19791,7 @@ function CarouselAnimatedSections({
|
|
|
19771
19791
|
})
|
|
19772
19792
|
};
|
|
19773
19793
|
const currentSection = sections?.[currentIndex];
|
|
19774
|
-
const actionElements =
|
|
19794
|
+
const actionElements = React8.useMemo(() => {
|
|
19775
19795
|
if (actionsSlot) return actionsSlot;
|
|
19776
19796
|
if (actions && actions.length > 0) {
|
|
19777
19797
|
return actions.map((action, index) => /* @__PURE__ */ jsxs(
|
|
@@ -20019,11 +20039,11 @@ function CarouselAutoProgressSlides({
|
|
|
20019
20039
|
pattern,
|
|
20020
20040
|
patternOpacity
|
|
20021
20041
|
}) {
|
|
20022
|
-
const [currentIndex, setCurrentIndex] =
|
|
20042
|
+
const [currentIndex, setCurrentIndex] = React8.useState(0);
|
|
20023
20043
|
const progress = useMotionValue(100);
|
|
20024
|
-
const [direction, setDirection] =
|
|
20044
|
+
const [direction, setDirection] = React8.useState(1);
|
|
20025
20045
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
20026
|
-
|
|
20046
|
+
React8.useEffect(() => {
|
|
20027
20047
|
const interval = setInterval(() => {
|
|
20028
20048
|
const currentProgress = progress.get();
|
|
20029
20049
|
if (currentProgress > 0) {
|
|
@@ -20202,22 +20222,22 @@ function CarouselAutoProgressSlides({
|
|
|
20202
20222
|
);
|
|
20203
20223
|
}
|
|
20204
20224
|
function useDotButton(emblaApi) {
|
|
20205
|
-
const [selectedIndex, setSelectedIndex] =
|
|
20206
|
-
const [scrollSnaps, setScrollSnaps] =
|
|
20207
|
-
const onDotButtonClick =
|
|
20225
|
+
const [selectedIndex, setSelectedIndex] = React8.useState(0);
|
|
20226
|
+
const [scrollSnaps, setScrollSnaps] = React8.useState([]);
|
|
20227
|
+
const onDotButtonClick = React8.useCallback(
|
|
20208
20228
|
(index) => {
|
|
20209
20229
|
if (!emblaApi) return;
|
|
20210
20230
|
emblaApi.scrollTo(index);
|
|
20211
20231
|
},
|
|
20212
20232
|
[emblaApi]
|
|
20213
20233
|
);
|
|
20214
|
-
const onInit =
|
|
20234
|
+
const onInit = React8.useCallback((api) => {
|
|
20215
20235
|
setScrollSnaps(api.scrollSnapList());
|
|
20216
20236
|
}, []);
|
|
20217
|
-
const onSelect =
|
|
20237
|
+
const onSelect = React8.useCallback((api) => {
|
|
20218
20238
|
setSelectedIndex(api.selectedScrollSnap());
|
|
20219
20239
|
}, []);
|
|
20220
|
-
|
|
20240
|
+
React8.useEffect(() => {
|
|
20221
20241
|
if (!emblaApi) return;
|
|
20222
20242
|
onInit(emblaApi);
|
|
20223
20243
|
onSelect(emblaApi);
|
|
@@ -20226,8 +20246,8 @@ function useDotButton(emblaApi) {
|
|
|
20226
20246
|
return { selectedIndex, scrollSnaps, onDotButtonClick };
|
|
20227
20247
|
}
|
|
20228
20248
|
function useAutoplay(emblaApi) {
|
|
20229
|
-
const [autoplayIsPlaying, setAutoplayIsPlaying] =
|
|
20230
|
-
const onAutoplayButtonClick =
|
|
20249
|
+
const [autoplayIsPlaying, setAutoplayIsPlaying] = React8.useState(false);
|
|
20250
|
+
const onAutoplayButtonClick = React8.useCallback(
|
|
20231
20251
|
(callback) => {
|
|
20232
20252
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
20233
20253
|
if (!autoplay) return;
|
|
@@ -20237,13 +20257,13 @@ function useAutoplay(emblaApi) {
|
|
|
20237
20257
|
},
|
|
20238
20258
|
[emblaApi]
|
|
20239
20259
|
);
|
|
20240
|
-
const toggleAutoplay =
|
|
20260
|
+
const toggleAutoplay = React8.useCallback(() => {
|
|
20241
20261
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
20242
20262
|
if (!autoplay) return;
|
|
20243
20263
|
const playOrStop = autoplay.isPlaying() ? autoplay.stop : autoplay.play;
|
|
20244
20264
|
playOrStop();
|
|
20245
20265
|
}, [emblaApi]);
|
|
20246
|
-
|
|
20266
|
+
React8.useEffect(() => {
|
|
20247
20267
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
20248
20268
|
if (!autoplay) return;
|
|
20249
20269
|
setAutoplayIsPlaying(autoplay.isPlaying());
|
|
@@ -20252,11 +20272,11 @@ function useAutoplay(emblaApi) {
|
|
|
20252
20272
|
return { autoplayIsPlaying, toggleAutoplay, onAutoplayButtonClick };
|
|
20253
20273
|
}
|
|
20254
20274
|
function useAutoplayProgress(emblaApi, progressNode) {
|
|
20255
|
-
const [showAutoplayProgress, setShowAutoplayProgress] =
|
|
20256
|
-
const animationName =
|
|
20257
|
-
const timeoutId =
|
|
20258
|
-
const rafId =
|
|
20259
|
-
const startProgress =
|
|
20275
|
+
const [showAutoplayProgress, setShowAutoplayProgress] = React8.useState(false);
|
|
20276
|
+
const animationName = React8.useRef("");
|
|
20277
|
+
const timeoutId = React8.useRef(0);
|
|
20278
|
+
const rafId = React8.useRef(0);
|
|
20279
|
+
const startProgress = React8.useCallback(
|
|
20260
20280
|
(timeUntilNext) => {
|
|
20261
20281
|
const node = progressNode.current;
|
|
20262
20282
|
if (!node || timeUntilNext === null) return;
|
|
@@ -20276,12 +20296,12 @@ function useAutoplayProgress(emblaApi, progressNode) {
|
|
|
20276
20296
|
},
|
|
20277
20297
|
[progressNode]
|
|
20278
20298
|
);
|
|
20279
|
-
|
|
20299
|
+
React8.useEffect(() => {
|
|
20280
20300
|
const autoplay = emblaApi?.plugins()?.autoplay;
|
|
20281
20301
|
if (!autoplay) return;
|
|
20282
20302
|
emblaApi.on("autoplay:timerset", () => startProgress(autoplay.timeUntilNext())).on("autoplay:timerstopped", () => setShowAutoplayProgress(false));
|
|
20283
20303
|
}, [emblaApi, startProgress]);
|
|
20284
|
-
|
|
20304
|
+
React8.useEffect(() => {
|
|
20285
20305
|
return () => {
|
|
20286
20306
|
cancelAnimationFrame(rafId.current);
|
|
20287
20307
|
clearTimeout(timeoutId.current);
|
|
@@ -20308,7 +20328,7 @@ function CarouselAutoplayProgress({
|
|
|
20308
20328
|
pattern,
|
|
20309
20329
|
patternOpacity
|
|
20310
20330
|
}) {
|
|
20311
|
-
const progressNode =
|
|
20331
|
+
const progressNode = React8.useRef(null);
|
|
20312
20332
|
const [emblaRef, emblaApi] = useEmblaCarousel(options, [
|
|
20313
20333
|
Autoplay({ playOnInit: true, delay: autoplayDelay })
|
|
20314
20334
|
]);
|
|
@@ -20431,20 +20451,20 @@ function CarouselFeatureBadge({
|
|
|
20431
20451
|
containerMaxWidth = "2xl"
|
|
20432
20452
|
}) {
|
|
20433
20453
|
const [emblaRef, emblaApi] = useEmblaCarousel();
|
|
20434
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
20435
|
-
const [canScrollNext, setCanScrollNext] =
|
|
20436
|
-
const scrollPrev =
|
|
20454
|
+
const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
|
|
20455
|
+
const [canScrollNext, setCanScrollNext] = React8.useState(false);
|
|
20456
|
+
const scrollPrev = React8.useCallback(() => {
|
|
20437
20457
|
emblaApi?.scrollPrev();
|
|
20438
20458
|
}, [emblaApi]);
|
|
20439
|
-
const scrollNext =
|
|
20459
|
+
const scrollNext = React8.useCallback(() => {
|
|
20440
20460
|
emblaApi?.scrollNext();
|
|
20441
20461
|
}, [emblaApi]);
|
|
20442
|
-
const onSelect =
|
|
20462
|
+
const onSelect = React8.useCallback(() => {
|
|
20443
20463
|
if (!emblaApi) return;
|
|
20444
20464
|
setCanScrollPrev(emblaApi.canScrollPrev());
|
|
20445
20465
|
setCanScrollNext(emblaApi.canScrollNext());
|
|
20446
20466
|
}, [emblaApi]);
|
|
20447
|
-
|
|
20467
|
+
React8.useEffect(() => {
|
|
20448
20468
|
if (!emblaApi) return;
|
|
20449
20469
|
onSelect();
|
|
20450
20470
|
emblaApi.on("reInit", onSelect);
|
|
@@ -20564,10 +20584,10 @@ function CarouselFullscreenScrollFx({
|
|
|
20564
20584
|
pattern = "diagonalCrossBasic",
|
|
20565
20585
|
patternOpacity = 0.033
|
|
20566
20586
|
}) {
|
|
20567
|
-
const containerRef =
|
|
20568
|
-
const scrollContainerRef =
|
|
20569
|
-
const [activeIndex, setActiveIndex] =
|
|
20570
|
-
|
|
20587
|
+
const containerRef = React8.useRef(null);
|
|
20588
|
+
const scrollContainerRef = React8.useRef(null);
|
|
20589
|
+
const [activeIndex, setActiveIndex] = React8.useState(0);
|
|
20590
|
+
React8.useEffect(() => {
|
|
20571
20591
|
const scrollContainer = scrollContainerRef.current;
|
|
20572
20592
|
if (!scrollContainer || !slides?.length) return;
|
|
20573
20593
|
const handleScroll = () => {
|
|
@@ -20579,7 +20599,7 @@ function CarouselFullscreenScrollFx({
|
|
|
20579
20599
|
scrollContainer.addEventListener("scroll", handleScroll);
|
|
20580
20600
|
return () => scrollContainer.removeEventListener("scroll", handleScroll);
|
|
20581
20601
|
}, [slides]);
|
|
20582
|
-
const scrollToSlide =
|
|
20602
|
+
const scrollToSlide = React8.useCallback((index) => {
|
|
20583
20603
|
const scrollContainer = scrollContainerRef.current;
|
|
20584
20604
|
if (!scrollContainer) return;
|
|
20585
20605
|
const slideHeight = scrollContainer.clientHeight;
|
|
@@ -20662,7 +20682,7 @@ function CarouselFullscreenScrollFx({
|
|
|
20662
20682
|
className: "flex h-screen flex-col snap-y snap-mandatory overflow-x-hidden overflow-y-auto scroll-smooth",
|
|
20663
20683
|
style: { scrollbarWidth: "none", msOverflowStyle: "none" },
|
|
20664
20684
|
children: slidesSlot ? slidesSlot : slides?.map((slide, index) => {
|
|
20665
|
-
const renderActions =
|
|
20685
|
+
const renderActions = React8.useMemo(() => {
|
|
20666
20686
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
20667
20687
|
return slide.actions.map((action, actionIndex) => {
|
|
20668
20688
|
const {
|
|
@@ -20795,25 +20815,25 @@ function CarouselGalleryThumbnails({
|
|
|
20795
20815
|
patternOpacity,
|
|
20796
20816
|
slideMediaBrightness = "100"
|
|
20797
20817
|
}) {
|
|
20798
|
-
const [currentIndex, setCurrentIndex] =
|
|
20799
|
-
const prevSlide =
|
|
20818
|
+
const [currentIndex, setCurrentIndex] = React8.useState(0);
|
|
20819
|
+
const prevSlide = React8.useCallback(() => {
|
|
20800
20820
|
setCurrentIndex(
|
|
20801
20821
|
(prev) => prev === 0 ? (images?.length ?? 0) - 1 : prev - 1
|
|
20802
20822
|
);
|
|
20803
20823
|
}, [images?.length]);
|
|
20804
|
-
const nextSlide =
|
|
20824
|
+
const nextSlide = React8.useCallback(() => {
|
|
20805
20825
|
setCurrentIndex(
|
|
20806
20826
|
(prev) => prev === (images?.length ?? 0) - 1 ? 0 : prev + 1
|
|
20807
20827
|
);
|
|
20808
20828
|
}, [images?.length]);
|
|
20809
|
-
|
|
20829
|
+
React8.useEffect(() => {
|
|
20810
20830
|
if (!autoPlay) return;
|
|
20811
20831
|
const interval = setInterval(() => {
|
|
20812
20832
|
nextSlide();
|
|
20813
20833
|
}, autoPlayInterval);
|
|
20814
20834
|
return () => clearInterval(interval);
|
|
20815
20835
|
}, [currentIndex, autoPlay, autoPlayInterval, nextSlide]);
|
|
20816
|
-
|
|
20836
|
+
React8.useEffect(() => {
|
|
20817
20837
|
const handleKeyDown = (e) => {
|
|
20818
20838
|
if (e.key === "ArrowRight") {
|
|
20819
20839
|
nextSlide();
|
|
@@ -20958,9 +20978,9 @@ function CarouselHorizontalCards({
|
|
|
20958
20978
|
pattern,
|
|
20959
20979
|
patternOpacity
|
|
20960
20980
|
}) {
|
|
20961
|
-
const carouselRef =
|
|
20962
|
-
const [isAtStart, setIsAtStart] =
|
|
20963
|
-
const [isAtEnd, setIsAtEnd] =
|
|
20981
|
+
const carouselRef = React8.useRef(null);
|
|
20982
|
+
const [isAtStart, setIsAtStart] = React8.useState(true);
|
|
20983
|
+
const [isAtEnd, setIsAtEnd] = React8.useState(false);
|
|
20964
20984
|
const scrollLeft = () => {
|
|
20965
20985
|
if (carouselRef.current) {
|
|
20966
20986
|
carouselRef.current.scrollBy({ left: -300, behavior: "smooth" });
|
|
@@ -20971,7 +20991,7 @@ function CarouselHorizontalCards({
|
|
|
20971
20991
|
carouselRef.current.scrollBy({ left: 300, behavior: "smooth" });
|
|
20972
20992
|
}
|
|
20973
20993
|
};
|
|
20974
|
-
|
|
20994
|
+
React8.useEffect(() => {
|
|
20975
20995
|
const checkScrollPosition = () => {
|
|
20976
20996
|
if (carouselRef.current) {
|
|
20977
20997
|
const { scrollLeft: scrollLeft2, scrollWidth, clientWidth } = carouselRef.current;
|
|
@@ -21171,13 +21191,13 @@ function CarouselImageHero({
|
|
|
21171
21191
|
pattern,
|
|
21172
21192
|
patternOpacity
|
|
21173
21193
|
}) {
|
|
21174
|
-
const hasImages =
|
|
21194
|
+
const hasImages = React8.useMemo(() => {
|
|
21175
21195
|
return images && images?.length > 0;
|
|
21176
21196
|
}, [images]);
|
|
21177
|
-
const [currentImageIndex, setCurrentImageIndex] =
|
|
21197
|
+
const [currentImageIndex, setCurrentImageIndex] = React8.useState(0);
|
|
21178
21198
|
const progress = useMotionValue(100);
|
|
21179
21199
|
const clipPath = useMotionTemplate`inset(0 ${progress}% 0 0 round 10px)`;
|
|
21180
|
-
|
|
21200
|
+
React8.useEffect(() => {
|
|
21181
21201
|
if (!hasImages || (images?.length ?? 0) < 2) return;
|
|
21182
21202
|
const tickInterval = autoPlayInterval / 100;
|
|
21183
21203
|
const interval = setInterval(() => {
|
|
@@ -21199,19 +21219,19 @@ function CarouselImageHero({
|
|
|
21199
21219
|
autoPlayInterval,
|
|
21200
21220
|
hasImages
|
|
21201
21221
|
]);
|
|
21202
|
-
const handlePrev =
|
|
21222
|
+
const handlePrev = React8.useCallback(() => {
|
|
21203
21223
|
progress.set(100);
|
|
21204
21224
|
setCurrentImageIndex(
|
|
21205
21225
|
(prevIndex) => prevIndex > 0 ? prevIndex - 1 : (images?.length ?? 1) - 1
|
|
21206
21226
|
);
|
|
21207
21227
|
}, [images?.length, progress]);
|
|
21208
|
-
const handleNext =
|
|
21228
|
+
const handleNext = React8.useCallback(() => {
|
|
21209
21229
|
progress.set(100);
|
|
21210
21230
|
setCurrentImageIndex(
|
|
21211
21231
|
(prevIndex) => prevIndex < (images?.length ?? 0) - 1 ? prevIndex + 1 : 0
|
|
21212
21232
|
);
|
|
21213
21233
|
}, [images?.length, progress]);
|
|
21214
|
-
const handleDotClick =
|
|
21234
|
+
const handleDotClick = React8.useCallback(
|
|
21215
21235
|
(index) => {
|
|
21216
21236
|
progress.set(100);
|
|
21217
21237
|
setCurrentImageIndex(index);
|
|
@@ -21388,8 +21408,8 @@ function CarouselMultiStepShowcase({
|
|
|
21388
21408
|
pattern,
|
|
21389
21409
|
patternOpacity
|
|
21390
21410
|
}) {
|
|
21391
|
-
const [activeStep, setActiveStep] =
|
|
21392
|
-
const [direction, setDirection] =
|
|
21411
|
+
const [activeStep, setActiveStep] = React8.useState(0);
|
|
21412
|
+
const [direction, setDirection] = React8.useState(0);
|
|
21393
21413
|
const goToStep = (index) => {
|
|
21394
21414
|
setDirection(index > activeStep ? 1 : -1);
|
|
21395
21415
|
setActiveStep(index);
|
|
@@ -21681,9 +21701,9 @@ function CarouselPortfolioHero({
|
|
|
21681
21701
|
patternOpacity,
|
|
21682
21702
|
slideMediaBrightness = "50"
|
|
21683
21703
|
}) {
|
|
21684
|
-
const [currentIndex, setCurrentIndex] =
|
|
21685
|
-
const intervalRef =
|
|
21686
|
-
const resetInterval =
|
|
21704
|
+
const [currentIndex, setCurrentIndex] = React8.useState(0);
|
|
21705
|
+
const intervalRef = React8.useRef(null);
|
|
21706
|
+
const resetInterval = React8.useCallback(() => {
|
|
21687
21707
|
if (intervalRef.current) {
|
|
21688
21708
|
clearInterval(intervalRef.current);
|
|
21689
21709
|
}
|
|
@@ -21691,17 +21711,17 @@ function CarouselPortfolioHero({
|
|
|
21691
21711
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
21692
21712
|
}, autoPlayInterval);
|
|
21693
21713
|
}, [autoPlayInterval, slides?.length]);
|
|
21694
|
-
const goToNext =
|
|
21714
|
+
const goToNext = React8.useCallback(() => {
|
|
21695
21715
|
setCurrentIndex((prevIndex) => (prevIndex + 1) % (slides?.length ?? 1));
|
|
21696
21716
|
resetInterval();
|
|
21697
21717
|
}, [slides?.length, resetInterval]);
|
|
21698
|
-
const goToPrev =
|
|
21718
|
+
const goToPrev = React8.useCallback(() => {
|
|
21699
21719
|
setCurrentIndex(
|
|
21700
21720
|
(prevIndex) => (prevIndex - 1 + (slides?.length ?? 1)) % (slides?.length ?? 1)
|
|
21701
21721
|
);
|
|
21702
21722
|
resetInterval();
|
|
21703
21723
|
}, [slides?.length, resetInterval]);
|
|
21704
|
-
|
|
21724
|
+
React8.useEffect(() => {
|
|
21705
21725
|
resetInterval();
|
|
21706
21726
|
return () => {
|
|
21707
21727
|
if (intervalRef.current) {
|
|
@@ -21870,9 +21890,9 @@ function CarouselProductFeatureShowcase({
|
|
|
21870
21890
|
pattern,
|
|
21871
21891
|
patternOpacity
|
|
21872
21892
|
}) {
|
|
21873
|
-
const [activeIndex, setActiveIndex] =
|
|
21874
|
-
const [activeColorIndex, setActiveColorIndex] =
|
|
21875
|
-
const [direction, setDirection] =
|
|
21893
|
+
const [activeIndex, setActiveIndex] = React8.useState(0);
|
|
21894
|
+
const [activeColorIndex, setActiveColorIndex] = React8.useState(0);
|
|
21895
|
+
const [direction, setDirection] = React8.useState(0);
|
|
21876
21896
|
const activeFeature = features?.[activeIndex];
|
|
21877
21897
|
const goToNext = () => {
|
|
21878
21898
|
setDirection(1);
|
|
@@ -22092,9 +22112,9 @@ function CarouselProductFeatureShowcase({
|
|
|
22092
22112
|
}
|
|
22093
22113
|
);
|
|
22094
22114
|
}
|
|
22095
|
-
var ProgressSliderContext =
|
|
22115
|
+
var ProgressSliderContext = React8.createContext(void 0);
|
|
22096
22116
|
function useProgressSliderContext() {
|
|
22097
|
-
const context =
|
|
22117
|
+
const context = React8.useContext(ProgressSliderContext);
|
|
22098
22118
|
if (!context) {
|
|
22099
22119
|
throw new Error(
|
|
22100
22120
|
"useProgressSliderContext must be used within a ProgressSlider"
|
|
@@ -22180,19 +22200,19 @@ function CarouselProgressSlider({
|
|
|
22180
22200
|
pattern,
|
|
22181
22201
|
patternOpacity
|
|
22182
22202
|
}) {
|
|
22183
|
-
const [active, setActive] =
|
|
22184
|
-
const [progress, setProgress] =
|
|
22185
|
-
const [isFastForward, setIsFastForward] =
|
|
22186
|
-
const [isPaused, setIsPaused] =
|
|
22187
|
-
const frame =
|
|
22188
|
-
const firstFrameTime =
|
|
22189
|
-
const targetValue =
|
|
22190
|
-
const pausedProgress =
|
|
22191
|
-
const sliderValues =
|
|
22203
|
+
const [active, setActive] = React8.useState(slides?.[0]?.id ?? "");
|
|
22204
|
+
const [progress, setProgress] = React8.useState(0);
|
|
22205
|
+
const [isFastForward, setIsFastForward] = React8.useState(false);
|
|
22206
|
+
const [isPaused, setIsPaused] = React8.useState(false);
|
|
22207
|
+
const frame = React8.useRef(0);
|
|
22208
|
+
const firstFrameTime = React8.useRef(performance.now());
|
|
22209
|
+
const targetValue = React8.useRef(null);
|
|
22210
|
+
const pausedProgress = React8.useRef(0);
|
|
22211
|
+
const sliderValues = React8.useMemo(
|
|
22192
22212
|
() => slides?.map((slide) => slide.id),
|
|
22193
22213
|
[slides]
|
|
22194
22214
|
);
|
|
22195
|
-
|
|
22215
|
+
React8.useEffect(() => {
|
|
22196
22216
|
if ((sliderValues?.length ?? 0) > 0 && !isPaused) {
|
|
22197
22217
|
firstFrameTime.current = performance.now();
|
|
22198
22218
|
if (pausedProgress.current > 0) {
|
|
@@ -22358,11 +22378,11 @@ function CarouselScrollingFeatureShowcase({
|
|
|
22358
22378
|
patternOpacity,
|
|
22359
22379
|
patternClassName
|
|
22360
22380
|
}) {
|
|
22361
|
-
const [activeFeature, setActiveFeature] =
|
|
22381
|
+
const [activeFeature, setActiveFeature] = React8.useState(
|
|
22362
22382
|
features?.[0]?.id ?? ""
|
|
22363
22383
|
);
|
|
22364
|
-
const featureRefs =
|
|
22365
|
-
|
|
22384
|
+
const featureRefs = React8.useRef(/* @__PURE__ */ new Map());
|
|
22385
|
+
React8.useEffect(() => {
|
|
22366
22386
|
if (!features || features.length === 0) return;
|
|
22367
22387
|
const observerOptions = {
|
|
22368
22388
|
root: null,
|
|
@@ -23279,9 +23299,9 @@ function FeatureChecklistImage({
|
|
|
23279
23299
|
}
|
|
23280
23300
|
);
|
|
23281
23301
|
}
|
|
23282
|
-
var CarouselContext =
|
|
23302
|
+
var CarouselContext = React8.createContext(null);
|
|
23283
23303
|
function useCarousel() {
|
|
23284
|
-
const context =
|
|
23304
|
+
const context = React8.useContext(CarouselContext);
|
|
23285
23305
|
if (!context) {
|
|
23286
23306
|
throw new Error("useCarousel must be used within a <Carousel />");
|
|
23287
23307
|
}
|
|
@@ -23303,20 +23323,20 @@ function Carousel({
|
|
|
23303
23323
|
},
|
|
23304
23324
|
plugins
|
|
23305
23325
|
);
|
|
23306
|
-
const [canScrollPrev, setCanScrollPrev] =
|
|
23307
|
-
const [canScrollNext, setCanScrollNext] =
|
|
23308
|
-
const onSelect =
|
|
23326
|
+
const [canScrollPrev, setCanScrollPrev] = React8.useState(false);
|
|
23327
|
+
const [canScrollNext, setCanScrollNext] = React8.useState(false);
|
|
23328
|
+
const onSelect = React8.useCallback((api2) => {
|
|
23309
23329
|
if (!api2) return;
|
|
23310
23330
|
setCanScrollPrev(api2.canScrollPrev());
|
|
23311
23331
|
setCanScrollNext(api2.canScrollNext());
|
|
23312
23332
|
}, []);
|
|
23313
|
-
const scrollPrev =
|
|
23333
|
+
const scrollPrev = React8.useCallback(() => {
|
|
23314
23334
|
api?.scrollPrev();
|
|
23315
23335
|
}, [api]);
|
|
23316
|
-
const scrollNext =
|
|
23336
|
+
const scrollNext = React8.useCallback(() => {
|
|
23317
23337
|
api?.scrollNext();
|
|
23318
23338
|
}, [api]);
|
|
23319
|
-
const handleKeyDown =
|
|
23339
|
+
const handleKeyDown = React8.useCallback(
|
|
23320
23340
|
(event) => {
|
|
23321
23341
|
if (event.key === "ArrowLeft") {
|
|
23322
23342
|
event.preventDefault();
|
|
@@ -23328,11 +23348,11 @@ function Carousel({
|
|
|
23328
23348
|
},
|
|
23329
23349
|
[scrollPrev, scrollNext]
|
|
23330
23350
|
);
|
|
23331
|
-
|
|
23351
|
+
React8.useEffect(() => {
|
|
23332
23352
|
if (!api || !setApi) return;
|
|
23333
23353
|
setApi(api);
|
|
23334
23354
|
}, [api, setApi]);
|
|
23335
|
-
|
|
23355
|
+
React8.useEffect(() => {
|
|
23336
23356
|
if (!api) return;
|
|
23337
23357
|
onSelect(api);
|
|
23338
23358
|
api.on("reInit", onSelect);
|
|
@@ -24230,7 +24250,7 @@ function FeatureThreeColumnValues({
|
|
|
24230
24250
|
patternOpacity,
|
|
24231
24251
|
patternClassName
|
|
24232
24252
|
}) {
|
|
24233
|
-
const renderValueIcon =
|
|
24253
|
+
const renderValueIcon = React8.useCallback(
|
|
24234
24254
|
(value) => {
|
|
24235
24255
|
if (value.icon) return value.icon;
|
|
24236
24256
|
if (value.iconName)
|
|
@@ -24721,7 +24741,7 @@ function FeatureTabbedContentImage({
|
|
|
24721
24741
|
patternOpacity,
|
|
24722
24742
|
patternClassName
|
|
24723
24743
|
}) {
|
|
24724
|
-
const renderFeatures =
|
|
24744
|
+
const renderFeatures = React8.useCallback(
|
|
24725
24745
|
(slide) => {
|
|
24726
24746
|
if (slide.featuresSlot) return slide.featuresSlot;
|
|
24727
24747
|
if (!slide.features || slide.features.length === 0) return null;
|
|
@@ -24745,7 +24765,7 @@ function FeatureTabbedContentImage({
|
|
|
24745
24765
|
},
|
|
24746
24766
|
[]
|
|
24747
24767
|
);
|
|
24748
|
-
const renderActions =
|
|
24768
|
+
const renderActions = React8.useCallback(
|
|
24749
24769
|
(slide) => {
|
|
24750
24770
|
if (slide.actionsSlot) return slide.actionsSlot;
|
|
24751
24771
|
if (!slide.actions || slide.actions.length === 0) return null;
|
|
@@ -24788,7 +24808,7 @@ function FeatureTabbedContentImage({
|
|
|
24788
24808
|
},
|
|
24789
24809
|
[]
|
|
24790
24810
|
);
|
|
24791
|
-
const renderImage =
|
|
24811
|
+
const renderImage = React8.useCallback(
|
|
24792
24812
|
(slide) => {
|
|
24793
24813
|
if (slide.imageSlot) return slide.imageSlot;
|
|
24794
24814
|
if (!slide.image) return null;
|
|
@@ -25024,7 +25044,7 @@ function FeatureUtilityCardsGrid({
|
|
|
25024
25044
|
}
|
|
25025
25045
|
);
|
|
25026
25046
|
}, [learnMoreSlot, learnMoreAction, background]);
|
|
25027
|
-
const renderUtilityImage =
|
|
25047
|
+
const renderUtilityImage = React8.useCallback(
|
|
25028
25048
|
(utility) => {
|
|
25029
25049
|
if (utility.imageSlot) return utility.imageSlot;
|
|
25030
25050
|
if (utility.image) {
|
|
@@ -25202,7 +25222,7 @@ function FeatureBentoUtilities({
|
|
|
25202
25222
|
patternOpacity,
|
|
25203
25223
|
patternClassName
|
|
25204
25224
|
}) {
|
|
25205
|
-
const renderCard =
|
|
25225
|
+
const renderCard = React8.useCallback(
|
|
25206
25226
|
(card, index) => {
|
|
25207
25227
|
const hasImage = card.imageSrc || card.imageSlot;
|
|
25208
25228
|
const cardClasses = cn(
|
|
@@ -25258,7 +25278,7 @@ function FeatureBentoUtilities({
|
|
|
25258
25278
|
},
|
|
25259
25279
|
[optixFlowConfig]
|
|
25260
25280
|
);
|
|
25261
|
-
const renderColumn =
|
|
25281
|
+
const renderColumn = React8.useCallback(
|
|
25262
25282
|
(cards, slot) => {
|
|
25263
25283
|
if (slot) return slot;
|
|
25264
25284
|
if (!cards || cards.length === 0) return null;
|
|
@@ -26494,7 +26514,7 @@ function FeatureBentoImageGrid({
|
|
|
26494
26514
|
patternOpacity,
|
|
26495
26515
|
patternClassName
|
|
26496
26516
|
}) {
|
|
26497
|
-
const renderItemIcon =
|
|
26517
|
+
const renderItemIcon = React8.useCallback(
|
|
26498
26518
|
(item) => {
|
|
26499
26519
|
if (item.icon) return item.icon;
|
|
26500
26520
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 24 });
|
|
@@ -26502,7 +26522,7 @@ function FeatureBentoImageGrid({
|
|
|
26502
26522
|
},
|
|
26503
26523
|
[]
|
|
26504
26524
|
);
|
|
26505
|
-
const renderItemImage =
|
|
26525
|
+
const renderItemImage = React8.useCallback(
|
|
26506
26526
|
(item, imageClassName) => {
|
|
26507
26527
|
if (item.imageSlot) return item.imageSlot;
|
|
26508
26528
|
if (item.imageSrc) {
|
|
@@ -26521,7 +26541,7 @@ function FeatureBentoImageGrid({
|
|
|
26521
26541
|
},
|
|
26522
26542
|
[optixFlowConfig]
|
|
26523
26543
|
);
|
|
26524
|
-
const renderLargeCard =
|
|
26544
|
+
const renderLargeCard = React8.useCallback(
|
|
26525
26545
|
(item) => {
|
|
26526
26546
|
const iconContent = renderItemIcon(item);
|
|
26527
26547
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -26600,7 +26620,7 @@ function FeatureBentoImageGrid({
|
|
|
26600
26620
|
},
|
|
26601
26621
|
[largeCardClassName, renderItemImage, renderItemIcon]
|
|
26602
26622
|
);
|
|
26603
|
-
const renderSmallCard =
|
|
26623
|
+
const renderSmallCard = React8.useCallback(
|
|
26604
26624
|
(item, index) => {
|
|
26605
26625
|
const iconContent = renderItemIcon(item);
|
|
26606
26626
|
const hasIconBadgeContent = iconContent || item.iconBadge;
|
|
@@ -27250,7 +27270,7 @@ function FeatureAccordionImage({
|
|
|
27250
27270
|
patternOpacity,
|
|
27251
27271
|
patternClassName
|
|
27252
27272
|
}) {
|
|
27253
|
-
const [activeItem, setActiveItem] =
|
|
27273
|
+
const [activeItem, setActiveItem] = React8.useState(defaultValue || "item-0");
|
|
27254
27274
|
const activeIndex = parseInt(activeItem.replace("item-", ""), 10) || 0;
|
|
27255
27275
|
const accordionItemsContent = useMemo(() => {
|
|
27256
27276
|
if (itemsSlot) return itemsSlot;
|
|
@@ -27423,7 +27443,7 @@ function FeatureCapabilitiesGrid({
|
|
|
27423
27443
|
patternOpacity,
|
|
27424
27444
|
patternClassName
|
|
27425
27445
|
}) {
|
|
27426
|
-
const renderItemIcon =
|
|
27446
|
+
const renderItemIcon = React8.useCallback(
|
|
27427
27447
|
(item) => {
|
|
27428
27448
|
if (item.icon) return item.icon;
|
|
27429
27449
|
if (item.iconName) return /* @__PURE__ */ jsx(DynamicIcon, { name: item.iconName, size: 20 });
|
|
@@ -27575,7 +27595,7 @@ function FeatureCapabilitiesGrid({
|
|
|
27575
27595
|
}
|
|
27576
27596
|
);
|
|
27577
27597
|
}
|
|
27578
|
-
var TeamMemberBackgroundImageCard =
|
|
27598
|
+
var TeamMemberBackgroundImageCard = React8.forwardRef(
|
|
27579
27599
|
({ className, imageUrl, imageAlt, children, optixFlowConfig, background, ...props }, ref) => {
|
|
27580
27600
|
return /* @__PURE__ */ jsxs(
|
|
27581
27601
|
"div",
|
|
@@ -27623,7 +27643,7 @@ function TeamMediaShowcase({
|
|
|
27623
27643
|
actionClassName,
|
|
27624
27644
|
optixFlowConfig
|
|
27625
27645
|
}) {
|
|
27626
|
-
const renderItems =
|
|
27646
|
+
const renderItems = React8.useMemo(() => {
|
|
27627
27647
|
if (itemsSlot) return itemsSlot;
|
|
27628
27648
|
return items.map((member, idx) => {
|
|
27629
27649
|
const imageAlt = member.imageAlt || (member.name && typeof member.name === "string" && member.name.trim() !== "" ? member.name : `member-${idx}`);
|
|
@@ -27721,7 +27741,7 @@ function TeamSimpleGrid({
|
|
|
27721
27741
|
memberNameClassName,
|
|
27722
27742
|
memberRoleClassName
|
|
27723
27743
|
}) {
|
|
27724
|
-
const renderMembers =
|
|
27744
|
+
const renderMembers = React8.useMemo(() => {
|
|
27725
27745
|
if (membersSlot) return membersSlot;
|
|
27726
27746
|
if (!members || members.length === 0) return null;
|
|
27727
27747
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -27883,7 +27903,7 @@ function FooterBrandLinksContact({
|
|
|
27883
27903
|
linkListClassName,
|
|
27884
27904
|
linkItemClassName
|
|
27885
27905
|
]);
|
|
27886
|
-
const contactItemsContent =
|
|
27906
|
+
const contactItemsContent = React8.useMemo(() => {
|
|
27887
27907
|
if (!contactItems || contactItems.length === 0) return null;
|
|
27888
27908
|
return contactItems.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
27889
27909
|
"div",
|
|
@@ -28241,7 +28261,7 @@ function TeamSocialGrid({
|
|
|
28241
28261
|
memberRoleClassName,
|
|
28242
28262
|
socialLinksClassName
|
|
28243
28263
|
}) {
|
|
28244
|
-
const renderMembers =
|
|
28264
|
+
const renderMembers = React8.useMemo(() => {
|
|
28245
28265
|
if (membersSlot) return membersSlot;
|
|
28246
28266
|
if (!members || members.length === 0) return null;
|
|
28247
28267
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28377,7 +28397,7 @@ function TeamGradientCards({
|
|
|
28377
28397
|
memberRoleClassName,
|
|
28378
28398
|
socialLinksClassName
|
|
28379
28399
|
}) {
|
|
28380
|
-
const renderMembers =
|
|
28400
|
+
const renderMembers = React8.useMemo(() => {
|
|
28381
28401
|
if (membersSlot) return membersSlot;
|
|
28382
28402
|
if (!members || members.length === 0) return null;
|
|
28383
28403
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -28533,7 +28553,7 @@ function TeamBioBadges({
|
|
|
28533
28553
|
memberBioClassName,
|
|
28534
28554
|
socialLinksClassName
|
|
28535
28555
|
}) {
|
|
28536
|
-
const renderMembers =
|
|
28556
|
+
const renderMembers = React8.useMemo(() => {
|
|
28537
28557
|
if (membersSlot) return membersSlot;
|
|
28538
28558
|
if (!members || members.length === 0) return null;
|
|
28539
28559
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28710,7 +28730,7 @@ function TeamExpertiseCards({
|
|
|
28710
28730
|
ctaDescriptionClassName,
|
|
28711
28731
|
ctaButtonClassName
|
|
28712
28732
|
}) {
|
|
28713
|
-
const renderMembers =
|
|
28733
|
+
const renderMembers = React8.useMemo(() => {
|
|
28714
28734
|
if (membersSlot) return membersSlot;
|
|
28715
28735
|
if (!members || members.length === 0) return null;
|
|
28716
28736
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -28787,7 +28807,7 @@ function TeamExpertiseCards({
|
|
|
28787
28807
|
member.id
|
|
28788
28808
|
));
|
|
28789
28809
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName, memberDescriptionClassName, expertiseClassName]);
|
|
28790
|
-
const renderCta =
|
|
28810
|
+
const renderCta = React8.useMemo(() => {
|
|
28791
28811
|
if (ctaSlot) return ctaSlot;
|
|
28792
28812
|
return /* @__PURE__ */ jsxs(
|
|
28793
28813
|
"div",
|
|
@@ -28903,7 +28923,7 @@ function TeamCompactGrid({
|
|
|
28903
28923
|
ctaDescriptionClassName,
|
|
28904
28924
|
ctaButtonClassName
|
|
28905
28925
|
}) {
|
|
28906
|
-
const renderMembers =
|
|
28926
|
+
const renderMembers = React8.useMemo(() => {
|
|
28907
28927
|
if (membersSlot) return membersSlot;
|
|
28908
28928
|
if (!members || members.length === 0) return null;
|
|
28909
28929
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -28958,7 +28978,7 @@ function TeamCompactGrid({
|
|
|
28958
28978
|
member.id
|
|
28959
28979
|
));
|
|
28960
28980
|
}, [membersSlot, members, background, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, departmentBadgeClassName]);
|
|
28961
|
-
const renderCta =
|
|
28981
|
+
const renderCta = React8.useMemo(() => {
|
|
28962
28982
|
if (ctaSlot) return ctaSlot;
|
|
28963
28983
|
return /* @__PURE__ */ jsxs(
|
|
28964
28984
|
"div",
|
|
@@ -29062,7 +29082,7 @@ function TeamInvestorShowcase({
|
|
|
29062
29082
|
investorCompanyClassName,
|
|
29063
29083
|
optixFlowConfig
|
|
29064
29084
|
}) {
|
|
29065
|
-
const renderInvestors =
|
|
29085
|
+
const renderInvestors = React8.useMemo(() => {
|
|
29066
29086
|
if (investorsSlot) return investorsSlot;
|
|
29067
29087
|
if (!investors || investors.length === 0) return null;
|
|
29068
29088
|
return investors.map((investor) => /* @__PURE__ */ jsxs("div", { className: investorCardClassName, children: [
|
|
@@ -29136,7 +29156,7 @@ function TeamCarouselExperience({
|
|
|
29136
29156
|
memberRoleClassName,
|
|
29137
29157
|
optixFlowConfig
|
|
29138
29158
|
}) {
|
|
29139
|
-
const renderMembers =
|
|
29159
|
+
const renderMembers = React8.useMemo(() => {
|
|
29140
29160
|
if (membersSlot) return membersSlot;
|
|
29141
29161
|
if (!members || members.length === 0) return null;
|
|
29142
29162
|
return members.map((member, idx) => /* @__PURE__ */ jsx(CarouselItem, { className: "max-w-72", children: /* @__PURE__ */ jsxs(
|
|
@@ -29286,20 +29306,20 @@ function TeamFilterableSearch({
|
|
|
29286
29306
|
emptyStateClassName,
|
|
29287
29307
|
emptyStateMessage
|
|
29288
29308
|
}) {
|
|
29289
|
-
const [searchQuery, setSearchQuery] =
|
|
29290
|
-
const [selectedDepartment, setSelectedDepartment] =
|
|
29291
|
-
const departments =
|
|
29309
|
+
const [searchQuery, setSearchQuery] = React8.useState("");
|
|
29310
|
+
const [selectedDepartment, setSelectedDepartment] = React8.useState("All");
|
|
29311
|
+
const departments = React8.useMemo(() => {
|
|
29292
29312
|
const depts = new Set(members.map((m) => m.department));
|
|
29293
29313
|
return ["All", ...Array.from(depts)];
|
|
29294
29314
|
}, [members]);
|
|
29295
|
-
const filteredMembers =
|
|
29315
|
+
const filteredMembers = React8.useMemo(() => {
|
|
29296
29316
|
return members.filter((member) => {
|
|
29297
29317
|
const matchesSearch = searchQuery === "" || member.name.toLowerCase().includes(searchQuery.toLowerCase()) || member.role.toLowerCase().includes(searchQuery.toLowerCase()) || member.description.toLowerCase().includes(searchQuery.toLowerCase());
|
|
29298
29318
|
const matchesDepartment = selectedDepartment === "All" || member.department === selectedDepartment;
|
|
29299
29319
|
return matchesSearch && matchesDepartment;
|
|
29300
29320
|
});
|
|
29301
29321
|
}, [members, searchQuery, selectedDepartment]);
|
|
29302
|
-
const renderFilters =
|
|
29322
|
+
const renderFilters = React8.useMemo(() => {
|
|
29303
29323
|
if (filtersSlot) return filtersSlot;
|
|
29304
29324
|
return /* @__PURE__ */ jsxs(
|
|
29305
29325
|
"div",
|
|
@@ -29354,7 +29374,7 @@ function TeamFilterableSearch({
|
|
|
29354
29374
|
selectedDepartment,
|
|
29355
29375
|
filterButtonClassName
|
|
29356
29376
|
]);
|
|
29357
|
-
const renderMembers =
|
|
29377
|
+
const renderMembers = React8.useMemo(() => {
|
|
29358
29378
|
if (membersSlot) return membersSlot;
|
|
29359
29379
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
29360
29380
|
"div",
|
|
@@ -29541,7 +29561,7 @@ function TeamCompactCta({
|
|
|
29541
29561
|
memberRoleClassName,
|
|
29542
29562
|
ctaClassName
|
|
29543
29563
|
}) {
|
|
29544
|
-
const renderMembers =
|
|
29564
|
+
const renderMembers = React8.useMemo(() => {
|
|
29545
29565
|
if (membersSlot) return membersSlot;
|
|
29546
29566
|
if (!members || members.length === 0) return null;
|
|
29547
29567
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -29569,7 +29589,7 @@ function TeamCompactCta({
|
|
|
29569
29589
|
member.id
|
|
29570
29590
|
));
|
|
29571
29591
|
}, [membersSlot, members, memberCardClassName, avatarClassName, memberNameClassName, memberRoleClassName, background]);
|
|
29572
|
-
const renderCta =
|
|
29592
|
+
const renderCta = React8.useMemo(() => {
|
|
29573
29593
|
if (ctaSlot) return ctaSlot;
|
|
29574
29594
|
return /* @__PURE__ */ jsx(
|
|
29575
29595
|
Pressable,
|
|
@@ -29660,7 +29680,7 @@ function TeamHoverHighlight({
|
|
|
29660
29680
|
socialLinksClassName,
|
|
29661
29681
|
optixFlowConfig
|
|
29662
29682
|
}) {
|
|
29663
|
-
const renderMembers =
|
|
29683
|
+
const renderMembers = React8.useMemo(() => {
|
|
29664
29684
|
if (membersSlot) return membersSlot;
|
|
29665
29685
|
if (!members || members.length === 0) return null;
|
|
29666
29686
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -29809,7 +29829,7 @@ function TeamSocialCards({
|
|
|
29809
29829
|
socialLinksClassName,
|
|
29810
29830
|
optixFlowConfig
|
|
29811
29831
|
}) {
|
|
29812
|
-
const renderMembers =
|
|
29832
|
+
const renderMembers = React8.useMemo(() => {
|
|
29813
29833
|
if (membersSlot) return membersSlot;
|
|
29814
29834
|
if (!members || members.length === 0) return null;
|
|
29815
29835
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -29979,7 +29999,7 @@ function TeamGridAnimated({
|
|
|
29979
29999
|
"hsl(var(--muted))",
|
|
29980
30000
|
"hsl(var(--warning)/0.2)"
|
|
29981
30001
|
];
|
|
29982
|
-
const renderMembers =
|
|
30002
|
+
const renderMembers = React8.useMemo(() => {
|
|
29983
30003
|
if (membersSlot) return membersSlot;
|
|
29984
30004
|
if (!members || members.length === 0) return null;
|
|
29985
30005
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -30079,7 +30099,7 @@ function TeamGridAnimated({
|
|
|
30079
30099
|
memberDesignationClassName,
|
|
30080
30100
|
socialLinksClassName
|
|
30081
30101
|
]);
|
|
30082
|
-
const renderSocialLinksMain =
|
|
30102
|
+
const renderSocialLinksMain = React8.useMemo(() => {
|
|
30083
30103
|
if (socialLinksMainSlot) return socialLinksMainSlot;
|
|
30084
30104
|
if (!socialLinksMain || socialLinksMain.length === 0) return null;
|
|
30085
30105
|
return /* @__PURE__ */ jsxs("div", { className: "flex w-full items-center justify-center gap-4 py-4 md:justify-center", children: [
|
|
@@ -30196,7 +30216,7 @@ function TeamDepartmentSections({
|
|
|
30196
30216
|
memberRoleClassName,
|
|
30197
30217
|
optixFlowConfig
|
|
30198
30218
|
}) {
|
|
30199
|
-
const renderDepartments =
|
|
30219
|
+
const renderDepartments = React8.useMemo(() => {
|
|
30200
30220
|
if (departmentsSlot) return departmentsSlot;
|
|
30201
30221
|
if (!departments || departments.length === 0) return null;
|
|
30202
30222
|
return departments.map((department, deptIndex) => /* @__PURE__ */ jsxs(
|
|
@@ -30300,7 +30320,7 @@ function TeamAlternatingBios({
|
|
|
30300
30320
|
socialLinksClassName,
|
|
30301
30321
|
optixFlowConfig
|
|
30302
30322
|
}) {
|
|
30303
|
-
const renderMembers =
|
|
30323
|
+
const renderMembers = React8.useMemo(() => {
|
|
30304
30324
|
if (membersSlot) return membersSlot;
|
|
30305
30325
|
if (!members || members.length === 0) return null;
|
|
30306
30326
|
return members.map((member, index) => /* @__PURE__ */ jsxs(
|
|
@@ -30482,7 +30502,7 @@ function TeamAvatarSocial({
|
|
|
30482
30502
|
memberRoleClassName,
|
|
30483
30503
|
socialLinksClassName
|
|
30484
30504
|
}) {
|
|
30485
|
-
const renderMembers =
|
|
30505
|
+
const renderMembers = React8.useMemo(() => {
|
|
30486
30506
|
if (membersSlot) return membersSlot;
|
|
30487
30507
|
if (!members || members.length === 0) return null;
|
|
30488
30508
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -30625,7 +30645,7 @@ function TeamHoverOverlay({
|
|
|
30625
30645
|
socialLinksClassName,
|
|
30626
30646
|
optixFlowConfig
|
|
30627
30647
|
}) {
|
|
30628
|
-
const renderMembers =
|
|
30648
|
+
const renderMembers = React8.useMemo(() => {
|
|
30629
30649
|
if (membersSlot) return membersSlot;
|
|
30630
30650
|
if (!members || members.length === 0) return null;
|
|
30631
30651
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -30801,14 +30821,14 @@ function TeamRoleFilter({
|
|
|
30801
30821
|
socialLinksClassName,
|
|
30802
30822
|
optixFlowConfig
|
|
30803
30823
|
}) {
|
|
30804
|
-
const [selectedRole, setSelectedRole] =
|
|
30805
|
-
const filteredMembers =
|
|
30824
|
+
const [selectedRole, setSelectedRole] = React8.useState("All");
|
|
30825
|
+
const filteredMembers = React8.useMemo(() => {
|
|
30806
30826
|
if (!members) return [];
|
|
30807
30827
|
return members.filter(
|
|
30808
30828
|
(member) => selectedRole === "All" ? true : member.role === selectedRole
|
|
30809
30829
|
);
|
|
30810
30830
|
}, [members, selectedRole]);
|
|
30811
|
-
const renderRoles =
|
|
30831
|
+
const renderRoles = React8.useMemo(() => {
|
|
30812
30832
|
if (rolesSlot) return rolesSlot;
|
|
30813
30833
|
if (!roles) return null;
|
|
30814
30834
|
return /* @__PURE__ */ jsx(
|
|
@@ -30832,7 +30852,7 @@ function TeamRoleFilter({
|
|
|
30832
30852
|
}
|
|
30833
30853
|
);
|
|
30834
30854
|
}, [rolesSlot, filtersClassName, roles, selectedRole, filterButtonClassName]);
|
|
30835
|
-
const renderMembers =
|
|
30855
|
+
const renderMembers = React8.useMemo(() => {
|
|
30836
30856
|
if (membersSlot) return membersSlot;
|
|
30837
30857
|
return filteredMembers.map((member) => /* @__PURE__ */ jsx(
|
|
30838
30858
|
Card,
|
|
@@ -30992,7 +31012,7 @@ function TeamContactCards({
|
|
|
30992
31012
|
socialLinksClassName,
|
|
30993
31013
|
optixFlowConfig
|
|
30994
31014
|
}) {
|
|
30995
|
-
const getStatusColor =
|
|
31015
|
+
const getStatusColor = React8.useCallback((status) => {
|
|
30996
31016
|
switch (status) {
|
|
30997
31017
|
case "active":
|
|
30998
31018
|
return "bg-success";
|
|
@@ -31002,7 +31022,7 @@ function TeamContactCards({
|
|
|
31002
31022
|
return getTextColor(background, "muted");
|
|
31003
31023
|
}
|
|
31004
31024
|
}, [background]);
|
|
31005
|
-
const renderMembers =
|
|
31025
|
+
const renderMembers = React8.useMemo(() => {
|
|
31006
31026
|
if (membersSlot) return membersSlot;
|
|
31007
31027
|
if (!members || members.length === 0) return null;
|
|
31008
31028
|
return members.map((member) => /* @__PURE__ */ jsx(Card, { className: cn("p-0", memberCardClassName), children: /* @__PURE__ */ jsxs(CardContent, { className: "p-6!", children: [
|
|
@@ -31209,7 +31229,7 @@ function TeamLargeImages({
|
|
|
31209
31229
|
socialLinksClassName,
|
|
31210
31230
|
optixFlowConfig
|
|
31211
31231
|
}) {
|
|
31212
|
-
const renderMembers =
|
|
31232
|
+
const renderMembers = React8.useMemo(() => {
|
|
31213
31233
|
if (membersSlot) return membersSlot;
|
|
31214
31234
|
if (!members || members.length === 0) return null;
|
|
31215
31235
|
return members.map((member) => /* @__PURE__ */ jsxs(
|
|
@@ -31384,7 +31404,7 @@ function TeamSkillBadges({
|
|
|
31384
31404
|
socialLinksClassName,
|
|
31385
31405
|
optixFlowConfig
|
|
31386
31406
|
}) {
|
|
31387
|
-
const renderMembers =
|
|
31407
|
+
const renderMembers = React8.useMemo(() => {
|
|
31388
31408
|
if (membersSlot) return membersSlot;
|
|
31389
31409
|
if (!members || members.length === 0) return null;
|
|
31390
31410
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -31574,7 +31594,7 @@ function TeamTestimonialStats({
|
|
|
31574
31594
|
socialLinksClassName,
|
|
31575
31595
|
optixFlowConfig
|
|
31576
31596
|
}) {
|
|
31577
|
-
const renderMembers =
|
|
31597
|
+
const renderMembers = React8.useMemo(() => {
|
|
31578
31598
|
if (membersSlot) return membersSlot;
|
|
31579
31599
|
if (!members || members.length === 0) return null;
|
|
31580
31600
|
return members.map((member) => /* @__PURE__ */ jsx(
|
|
@@ -35718,7 +35738,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
35718
35738
|
pattern,
|
|
35719
35739
|
patternOpacity
|
|
35720
35740
|
}) {
|
|
35721
|
-
const viewAllActionContent =
|
|
35741
|
+
const viewAllActionContent = React8.useMemo(() => {
|
|
35722
35742
|
if (viewAllSlot) return viewAllSlot;
|
|
35723
35743
|
if (!viewAllAction) return null;
|
|
35724
35744
|
const {
|
|
@@ -35743,7 +35763,7 @@ function BlogGridAuthorCardsComponent({
|
|
|
35743
35763
|
}
|
|
35744
35764
|
);
|
|
35745
35765
|
}, [viewAllSlot, viewAllAction]);
|
|
35746
|
-
const postsContent =
|
|
35766
|
+
const postsContent = React8.useMemo(() => {
|
|
35747
35767
|
if (postsSlot) return postsSlot;
|
|
35748
35768
|
if (!posts || posts.length === 0) return null;
|
|
35749
35769
|
return posts.map((post) => {
|
|
@@ -35855,7 +35875,7 @@ function BlogCardsTaglineCta({
|
|
|
35855
35875
|
pattern,
|
|
35856
35876
|
patternOpacity
|
|
35857
35877
|
}) {
|
|
35858
|
-
const ctaActionContent =
|
|
35878
|
+
const ctaActionContent = React8.useMemo(() => {
|
|
35859
35879
|
if (ctaSlot) return ctaSlot;
|
|
35860
35880
|
if (!ctaAction) return null;
|
|
35861
35881
|
const {
|
|
@@ -35883,7 +35903,7 @@ function BlogCardsTaglineCta({
|
|
|
35883
35903
|
}
|
|
35884
35904
|
);
|
|
35885
35905
|
}, [ctaSlot, ctaAction, ctaClassName]);
|
|
35886
|
-
const postsContent =
|
|
35906
|
+
const postsContent = React8.useMemo(() => {
|
|
35887
35907
|
if (postsSlot) return postsSlot;
|
|
35888
35908
|
if (!posts || posts.length === 0) return null;
|
|
35889
35909
|
return posts.map((post) => {
|
|
@@ -36029,7 +36049,7 @@ function BlogCardsReadTime({
|
|
|
36029
36049
|
pattern,
|
|
36030
36050
|
patternOpacity
|
|
36031
36051
|
}) {
|
|
36032
|
-
const renderedViewAllAction =
|
|
36052
|
+
const renderedViewAllAction = React8.useMemo(() => {
|
|
36033
36053
|
if (viewAllSlot) return viewAllSlot;
|
|
36034
36054
|
if (!viewAllAction) return null;
|
|
36035
36055
|
const {
|
|
@@ -36046,7 +36066,7 @@ function BlogCardsReadTime({
|
|
|
36046
36066
|
iconAfter
|
|
36047
36067
|
] }) });
|
|
36048
36068
|
}, [viewAllSlot, viewAllAction]);
|
|
36049
|
-
const renderedPosts =
|
|
36069
|
+
const renderedPosts = React8.useMemo(() => {
|
|
36050
36070
|
if (postsSlot) return postsSlot;
|
|
36051
36071
|
if (!posts || posts.length === 0) return null;
|
|
36052
36072
|
return posts.map((post) => {
|
|
@@ -36183,7 +36203,7 @@ function BlogCategoryOverlay({
|
|
|
36183
36203
|
pattern,
|
|
36184
36204
|
patternOpacity
|
|
36185
36205
|
}) {
|
|
36186
|
-
const viewAllActionContent =
|
|
36206
|
+
const viewAllActionContent = React8.useMemo(() => {
|
|
36187
36207
|
if (viewAllSlot) return viewAllSlot;
|
|
36188
36208
|
if (!viewAllAction) return null;
|
|
36189
36209
|
const {
|
|
@@ -36211,7 +36231,7 @@ function BlogCategoryOverlay({
|
|
|
36211
36231
|
}
|
|
36212
36232
|
);
|
|
36213
36233
|
}, [viewAllSlot, viewAllAction, viewAllClassName]);
|
|
36214
|
-
const postsContent =
|
|
36234
|
+
const postsContent = React8.useMemo(() => {
|
|
36215
36235
|
if (postsSlot) return postsSlot;
|
|
36216
36236
|
if (!posts || posts.length === 0) return null;
|
|
36217
36237
|
return posts.map((post) => {
|
|
@@ -36359,7 +36379,7 @@ function BlogFeaturedPopular({
|
|
|
36359
36379
|
}) {
|
|
36360
36380
|
const featuredPost = posts?.[0];
|
|
36361
36381
|
const popularPosts = posts?.slice(1);
|
|
36362
|
-
const renderedFeaturedPost =
|
|
36382
|
+
const renderedFeaturedPost = React8.useMemo(() => {
|
|
36363
36383
|
if (featuredSlot) return featuredSlot;
|
|
36364
36384
|
if (!featuredPost) return null;
|
|
36365
36385
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -36411,7 +36431,7 @@ function BlogFeaturedPopular({
|
|
|
36411
36431
|
featuredContentClassName,
|
|
36412
36432
|
optixFlowConfig
|
|
36413
36433
|
]);
|
|
36414
|
-
const renderedPopularPosts =
|
|
36434
|
+
const renderedPopularPosts = React8.useMemo(() => {
|
|
36415
36435
|
if (postsSlot) return postsSlot;
|
|
36416
36436
|
if (!popularPosts || popularPosts.length === 0) return null;
|
|
36417
36437
|
return popularPosts.map((post) => {
|
|
@@ -36528,7 +36548,7 @@ function BlogRelatedArticles({
|
|
|
36528
36548
|
pattern,
|
|
36529
36549
|
patternOpacity
|
|
36530
36550
|
}) {
|
|
36531
|
-
const renderedSeeAllAction =
|
|
36551
|
+
const renderedSeeAllAction = React8.useMemo(() => {
|
|
36532
36552
|
if (seeAllSlot) return seeAllSlot;
|
|
36533
36553
|
if (!seeAllAction) return null;
|
|
36534
36554
|
const {
|
|
@@ -36557,7 +36577,7 @@ function BlogRelatedArticles({
|
|
|
36557
36577
|
}
|
|
36558
36578
|
);
|
|
36559
36579
|
}, [seeAllSlot, seeAllAction, seeAllClassName]);
|
|
36560
|
-
const renderedArticles =
|
|
36580
|
+
const renderedArticles = React8.useMemo(() => {
|
|
36561
36581
|
if (articlesSlot) return articlesSlot;
|
|
36562
36582
|
if (!articles || articles.length === 0) return null;
|
|
36563
36583
|
return articles.map((item) => {
|
|
@@ -36850,7 +36870,7 @@ function BlogHorizontalCards({
|
|
|
36850
36870
|
pattern,
|
|
36851
36871
|
patternOpacity
|
|
36852
36872
|
}) {
|
|
36853
|
-
const ctaContent =
|
|
36873
|
+
const ctaContent = React8.useMemo(() => {
|
|
36854
36874
|
if (ctaSlot) return ctaSlot;
|
|
36855
36875
|
if (!ctaAction) return null;
|
|
36856
36876
|
const {
|
|
@@ -36875,7 +36895,7 @@ function BlogHorizontalCards({
|
|
|
36875
36895
|
}
|
|
36876
36896
|
);
|
|
36877
36897
|
}, [ctaSlot, ctaAction]);
|
|
36878
|
-
const postsContent =
|
|
36898
|
+
const postsContent = React8.useMemo(() => {
|
|
36879
36899
|
if (postsSlot) return postsSlot;
|
|
36880
36900
|
if (!posts || posts.length === 0) return null;
|
|
36881
36901
|
return posts.map((post) => {
|
|
@@ -37097,7 +37117,7 @@ function Label({
|
|
|
37097
37117
|
);
|
|
37098
37118
|
}
|
|
37099
37119
|
var POSTS_PER_PAGE = 6;
|
|
37100
|
-
var BlogCard =
|
|
37120
|
+
var BlogCard = React8.memo(function BlogCard2({
|
|
37101
37121
|
post,
|
|
37102
37122
|
optixFlowConfig,
|
|
37103
37123
|
className
|
|
@@ -37136,7 +37156,7 @@ var BlogCard = React32.memo(function BlogCard2({
|
|
|
37136
37156
|
] })
|
|
37137
37157
|
] }) });
|
|
37138
37158
|
});
|
|
37139
|
-
var FilterForm =
|
|
37159
|
+
var FilterForm = React8.memo(function FilterForm2({
|
|
37140
37160
|
categories,
|
|
37141
37161
|
selectedCategories,
|
|
37142
37162
|
onCategoryChange,
|
|
@@ -37169,7 +37189,7 @@ var FilterForm = React32.memo(function FilterForm2({
|
|
|
37169
37189
|
}
|
|
37170
37190
|
);
|
|
37171
37191
|
});
|
|
37172
|
-
var BreadcrumbBlog =
|
|
37192
|
+
var BreadcrumbBlog = React8.memo(function BreadcrumbBlog2({
|
|
37173
37193
|
breadcrumb
|
|
37174
37194
|
}) {
|
|
37175
37195
|
return /* @__PURE__ */ jsx(Breadcrumb, { children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumb.map((item, i) => {
|
|
@@ -37251,12 +37271,12 @@ function BlogFilteredResultsComponent({
|
|
|
37251
37271
|
}, [posts, selectedCategories]);
|
|
37252
37272
|
const postsToDisplay = filteredPosts.length > 0 ? filteredPosts : posts || [];
|
|
37253
37273
|
const hasMore = visibleCount < postsToDisplay.length;
|
|
37254
|
-
const breadcrumbContent =
|
|
37274
|
+
const breadcrumbContent = React8.useMemo(() => {
|
|
37255
37275
|
if (breadcrumbSlot) return breadcrumbSlot;
|
|
37256
37276
|
if (!breadcrumb || breadcrumb.length === 0) return null;
|
|
37257
37277
|
return /* @__PURE__ */ jsx(BreadcrumbBlog, { breadcrumb });
|
|
37258
37278
|
}, [breadcrumbSlot, breadcrumb]);
|
|
37259
|
-
const primaryPostContent =
|
|
37279
|
+
const primaryPostContent = React8.useMemo(() => {
|
|
37260
37280
|
if (primaryPostSlot) return primaryPostSlot;
|
|
37261
37281
|
if (!primaryPost) return null;
|
|
37262
37282
|
return /* @__PURE__ */ jsx(
|
|
@@ -37268,7 +37288,7 @@ function BlogFilteredResultsComponent({
|
|
|
37268
37288
|
}
|
|
37269
37289
|
);
|
|
37270
37290
|
}, [primaryPostSlot, primaryPost, optixFlowConfig, postCardClassName]);
|
|
37271
|
-
const categoriesContent =
|
|
37291
|
+
const categoriesContent = React8.useMemo(() => {
|
|
37272
37292
|
if (categoriesSlot) return categoriesSlot;
|
|
37273
37293
|
if (!categories || categories.length === 0) return null;
|
|
37274
37294
|
return /* @__PURE__ */ jsx(
|
|
@@ -37287,7 +37307,7 @@ function BlogFilteredResultsComponent({
|
|
|
37287
37307
|
handleCategoryChange,
|
|
37288
37308
|
categoriesClassName
|
|
37289
37309
|
]);
|
|
37290
|
-
const postsContent =
|
|
37310
|
+
const postsContent = React8.useMemo(() => {
|
|
37291
37311
|
if (postsSlot) return postsSlot;
|
|
37292
37312
|
return postsToDisplay.slice(0, visibleCount).map((post) => {
|
|
37293
37313
|
const postKey = post.id || String(post.title) || Math.random().toString();
|
|
@@ -37308,7 +37328,7 @@ function BlogFilteredResultsComponent({
|
|
|
37308
37328
|
optixFlowConfig,
|
|
37309
37329
|
postCardClassName
|
|
37310
37330
|
]);
|
|
37311
|
-
const loadMoreContent =
|
|
37331
|
+
const loadMoreContent = React8.useMemo(() => {
|
|
37312
37332
|
if (loadMoreSlot) return loadMoreSlot;
|
|
37313
37333
|
if (!loadMoreAction || !hasMore) return null;
|
|
37314
37334
|
const {
|
|
@@ -37435,7 +37455,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
37435
37455
|
}) {
|
|
37436
37456
|
const featuredPost = posts?.[0];
|
|
37437
37457
|
const otherPosts = posts?.slice(1);
|
|
37438
|
-
const featuredPostContent =
|
|
37458
|
+
const featuredPostContent = React8.useMemo(() => {
|
|
37439
37459
|
if (featuredSlot) return featuredSlot;
|
|
37440
37460
|
if (!featuredPost) return null;
|
|
37441
37461
|
const postHref = featuredPost.href || featuredPost.url || featuredPost.link;
|
|
@@ -37485,7 +37505,7 @@ function BlogMasonryFeaturedComponent({
|
|
|
37485
37505
|
featuredImageClassName,
|
|
37486
37506
|
optixFlowConfig
|
|
37487
37507
|
]);
|
|
37488
|
-
const otherPostsContent =
|
|
37508
|
+
const otherPostsContent = React8.useMemo(() => {
|
|
37489
37509
|
if (postsSlot) return postsSlot;
|
|
37490
37510
|
if (!otherPosts || otherPosts.length === 0) return null;
|
|
37491
37511
|
return otherPosts.map((post) => {
|
|
@@ -37576,7 +37596,7 @@ function BlogHorizontalTimelineComponent({
|
|
|
37576
37596
|
pattern,
|
|
37577
37597
|
patternOpacity
|
|
37578
37598
|
}) {
|
|
37579
|
-
const renderPosts =
|
|
37599
|
+
const renderPosts = React8.useMemo(() => {
|
|
37580
37600
|
if (postsSlot) return postsSlot;
|
|
37581
37601
|
if (!posts || posts.length === 0) return null;
|
|
37582
37602
|
return posts.map((post, index) => {
|
|
@@ -37701,7 +37721,7 @@ function BlogGridNinePosts({
|
|
|
37701
37721
|
pattern,
|
|
37702
37722
|
patternOpacity
|
|
37703
37723
|
}) {
|
|
37704
|
-
const renderedCtaAction =
|
|
37724
|
+
const renderedCtaAction = React8.useMemo(() => {
|
|
37705
37725
|
if (ctaSlot) return ctaSlot;
|
|
37706
37726
|
if (!ctaAction) return null;
|
|
37707
37727
|
const {
|
|
@@ -37726,7 +37746,7 @@ function BlogGridNinePosts({
|
|
|
37726
37746
|
}
|
|
37727
37747
|
);
|
|
37728
37748
|
}, [ctaSlot, ctaAction]);
|
|
37729
|
-
const renderedPosts =
|
|
37749
|
+
const renderedPosts = React8.useMemo(() => {
|
|
37730
37750
|
if (postsSlot) return postsSlot;
|
|
37731
37751
|
if (!posts || posts.length === 0) return null;
|
|
37732
37752
|
return posts.map((post) => {
|
|
@@ -37824,9 +37844,9 @@ var AppleCarousel = ({
|
|
|
37824
37844
|
className,
|
|
37825
37845
|
containerClassName
|
|
37826
37846
|
}) => {
|
|
37827
|
-
const carouselRef =
|
|
37828
|
-
const [canScrollLeft, setCanScrollLeft] =
|
|
37829
|
-
const [canScrollRight, setCanScrollRight] =
|
|
37847
|
+
const carouselRef = React8__default.useRef(null);
|
|
37848
|
+
const [canScrollLeft, setCanScrollLeft] = React8__default.useState(false);
|
|
37849
|
+
const [canScrollRight, setCanScrollRight] = React8__default.useState(true);
|
|
37830
37850
|
const [currentIndex, setCurrentIndex] = useState(0);
|
|
37831
37851
|
useEffect(() => {
|
|
37832
37852
|
if (carouselRef.current) {
|
|
@@ -38066,7 +38086,7 @@ function BlogCarouselAppleComponent({
|
|
|
38066
38086
|
containerClassName,
|
|
38067
38087
|
cardClassName
|
|
38068
38088
|
}) {
|
|
38069
|
-
const carouselCards =
|
|
38089
|
+
const carouselCards = React8.useMemo(() => {
|
|
38070
38090
|
if (!posts || posts.length === 0) return [];
|
|
38071
38091
|
return posts.map(
|
|
38072
38092
|
(post, idx) => ({
|
|
@@ -38078,7 +38098,7 @@ function BlogCarouselAppleComponent({
|
|
|
38078
38098
|
})
|
|
38079
38099
|
);
|
|
38080
38100
|
}, [posts]);
|
|
38081
|
-
const cardElements =
|
|
38101
|
+
const cardElements = React8.useMemo(() => {
|
|
38082
38102
|
if (!posts || posts.length === 0) return [];
|
|
38083
38103
|
return carouselCards.map((card, index) => {
|
|
38084
38104
|
const post = posts[index];
|
|
@@ -38163,7 +38183,7 @@ function ArticleHeroProseComponent({
|
|
|
38163
38183
|
description,
|
|
38164
38184
|
authorImage
|
|
38165
38185
|
} = post ?? {};
|
|
38166
|
-
const authorContent =
|
|
38186
|
+
const authorContent = React8.useMemo(() => {
|
|
38167
38187
|
if (authorSlot) return authorSlot;
|
|
38168
38188
|
if (!authorName) return null;
|
|
38169
38189
|
return /* @__PURE__ */ jsxs(
|
|
@@ -38197,7 +38217,7 @@ function ArticleHeroProseComponent({
|
|
|
38197
38217
|
dateFormat,
|
|
38198
38218
|
authorClassName
|
|
38199
38219
|
]);
|
|
38200
|
-
const heroMediaContent =
|
|
38220
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
38201
38221
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38202
38222
|
if (!image) return null;
|
|
38203
38223
|
return /* @__PURE__ */ jsx(
|
|
@@ -38303,7 +38323,7 @@ function ArticleSidebarStickyComponent({
|
|
|
38303
38323
|
patternOpacity,
|
|
38304
38324
|
sidebarContent
|
|
38305
38325
|
}) {
|
|
38306
|
-
const backLinkContent =
|
|
38326
|
+
const backLinkContent = React8.useMemo(() => {
|
|
38307
38327
|
if (backLinkSlot) return backLinkSlot;
|
|
38308
38328
|
if (!backHref && !backText) return null;
|
|
38309
38329
|
return /* @__PURE__ */ jsxs(
|
|
@@ -38321,7 +38341,7 @@ function ArticleSidebarStickyComponent({
|
|
|
38321
38341
|
}
|
|
38322
38342
|
);
|
|
38323
38343
|
}, [backLinkSlot, backHref, backText, backIcon, backLinkClassName]);
|
|
38324
|
-
const renderAuthor =
|
|
38344
|
+
const renderAuthor = React8.useCallback(
|
|
38325
38345
|
(isMobile = false) => {
|
|
38326
38346
|
if (authorSlot) return authorSlot;
|
|
38327
38347
|
if (!authorName) return null;
|
|
@@ -38353,7 +38373,7 @@ function ArticleSidebarStickyComponent({
|
|
|
38353
38373
|
authorClassName
|
|
38354
38374
|
]
|
|
38355
38375
|
);
|
|
38356
|
-
const heroMediaContent =
|
|
38376
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
38357
38377
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38358
38378
|
if (!heroImageSrc) return null;
|
|
38359
38379
|
return /* @__PURE__ */ jsx(
|
|
@@ -38464,10 +38484,10 @@ function ArticleTocSidebarComponent({
|
|
|
38464
38484
|
patternOpacity,
|
|
38465
38485
|
patternClassName
|
|
38466
38486
|
}) {
|
|
38467
|
-
const [activeSection, setActiveSection] =
|
|
38487
|
+
const [activeSection, setActiveSection] = React8.useState(
|
|
38468
38488
|
sections?.[0]?.id || ""
|
|
38469
38489
|
);
|
|
38470
|
-
|
|
38490
|
+
React8.useEffect(() => {
|
|
38471
38491
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
38472
38492
|
const observer = new IntersectionObserver(
|
|
38473
38493
|
(entries) => {
|
|
@@ -38485,12 +38505,12 @@ function ArticleTocSidebarComponent({
|
|
|
38485
38505
|
});
|
|
38486
38506
|
return () => observer.disconnect();
|
|
38487
38507
|
}, [sections, enableTocTracking]);
|
|
38488
|
-
const categoryContent =
|
|
38508
|
+
const categoryContent = React8.useMemo(() => {
|
|
38489
38509
|
if (categorySlot) return categorySlot;
|
|
38490
38510
|
if (!category) return null;
|
|
38491
38511
|
return /* @__PURE__ */ jsx(Badge, { children: category });
|
|
38492
38512
|
}, [categorySlot, category]);
|
|
38493
|
-
const authorContent =
|
|
38513
|
+
const authorContent = React8.useMemo(() => {
|
|
38494
38514
|
if (authorSlot) return authorSlot;
|
|
38495
38515
|
if (!authorName) return null;
|
|
38496
38516
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-6 flex items-center gap-4", authorClassName), children: [
|
|
@@ -38525,7 +38545,7 @@ function ArticleTocSidebarComponent({
|
|
|
38525
38545
|
readTime,
|
|
38526
38546
|
authorClassName
|
|
38527
38547
|
]);
|
|
38528
|
-
const heroMediaContent =
|
|
38548
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
38529
38549
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38530
38550
|
if (!heroImageSrc) return null;
|
|
38531
38551
|
return /* @__PURE__ */ jsx(
|
|
@@ -38547,7 +38567,7 @@ function ArticleTocSidebarComponent({
|
|
|
38547
38567
|
heroImageClassName,
|
|
38548
38568
|
optixFlowConfig
|
|
38549
38569
|
]);
|
|
38550
|
-
const tocContent =
|
|
38570
|
+
const tocContent = React8.useMemo(() => {
|
|
38551
38571
|
if (tocSlot) return tocSlot;
|
|
38552
38572
|
if (!sections || sections.length === 0) return null;
|
|
38553
38573
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -38555,7 +38575,7 @@ function ArticleTocSidebarComponent({
|
|
|
38555
38575
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
38556
38576
|
const isActive = activeSection === section.id;
|
|
38557
38577
|
if (renderSectionLink) {
|
|
38558
|
-
return /* @__PURE__ */ jsx(
|
|
38578
|
+
return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
38559
38579
|
}
|
|
38560
38580
|
return /* @__PURE__ */ jsx(
|
|
38561
38581
|
Pressable,
|
|
@@ -38572,7 +38592,7 @@ function ArticleTocSidebarComponent({
|
|
|
38572
38592
|
}) })
|
|
38573
38593
|
] });
|
|
38574
38594
|
}, [tocSlot, sections, activeSection, renderSectionLink, tocClassName]);
|
|
38575
|
-
const ctaContent =
|
|
38595
|
+
const ctaContent = React8.useMemo(() => {
|
|
38576
38596
|
if (ctaSlot) return ctaSlot;
|
|
38577
38597
|
if (!ctaTitle && !ctaDescription && (!ctaActions || ctaActions.length === 0))
|
|
38578
38598
|
return null;
|
|
@@ -38686,11 +38706,11 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38686
38706
|
patternOpacity,
|
|
38687
38707
|
patternClassName
|
|
38688
38708
|
}) {
|
|
38689
|
-
const [activeSection, setActiveSection] =
|
|
38709
|
+
const [activeSection, setActiveSection] = React8.useState(
|
|
38690
38710
|
sections?.[0]?.id || ""
|
|
38691
38711
|
);
|
|
38692
|
-
const [showBackToTop, setShowBackToTop] =
|
|
38693
|
-
|
|
38712
|
+
const [showBackToTop, setShowBackToTop] = React8.useState(false);
|
|
38713
|
+
React8.useEffect(() => {
|
|
38694
38714
|
if (!enableTocTracking || !sections || sections.length === 0) return;
|
|
38695
38715
|
const observer = new IntersectionObserver(
|
|
38696
38716
|
(entries) => {
|
|
@@ -38708,7 +38728,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38708
38728
|
});
|
|
38709
38729
|
return () => observer.disconnect();
|
|
38710
38730
|
}, [sections, enableTocTracking]);
|
|
38711
|
-
|
|
38731
|
+
React8.useEffect(() => {
|
|
38712
38732
|
if (!enableBackToTop) return;
|
|
38713
38733
|
const handleScroll = () => {
|
|
38714
38734
|
setShowBackToTop(window.scrollY > 400);
|
|
@@ -38716,15 +38736,15 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38716
38736
|
window.addEventListener("scroll", handleScroll);
|
|
38717
38737
|
return () => window.removeEventListener("scroll", handleScroll);
|
|
38718
38738
|
}, [enableBackToTop]);
|
|
38719
|
-
const scrollToTop =
|
|
38739
|
+
const scrollToTop = React8.useCallback(() => {
|
|
38720
38740
|
window.scrollTo({ top: 0, behavior: "smooth" });
|
|
38721
38741
|
}, []);
|
|
38722
|
-
const breadcrumbsContent =
|
|
38742
|
+
const breadcrumbsContent = React8.useMemo(() => {
|
|
38723
38743
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
38724
38744
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
38725
38745
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
38726
38746
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
38727
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
38747
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
38728
38748
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
38729
38749
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
38730
38750
|
] }, index)),
|
|
@@ -38734,7 +38754,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38734
38754
|
] })
|
|
38735
38755
|
] }) });
|
|
38736
38756
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
38737
|
-
const authorContent =
|
|
38757
|
+
const authorContent = React8.useMemo(() => {
|
|
38738
38758
|
if (authorSlot) return authorSlot;
|
|
38739
38759
|
if (!author) return null;
|
|
38740
38760
|
return /* @__PURE__ */ jsxs(
|
|
@@ -38757,7 +38777,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38757
38777
|
}
|
|
38758
38778
|
);
|
|
38759
38779
|
}, [authorSlot, author, publishDate, readTime, authorClassName]);
|
|
38760
|
-
const heroMediaContent =
|
|
38780
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
38761
38781
|
if (heroMediaSlot) return heroMediaSlot;
|
|
38762
38782
|
if (!heroImageSrc) return null;
|
|
38763
38783
|
return /* @__PURE__ */ jsx(
|
|
@@ -38779,7 +38799,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38779
38799
|
heroImageClassName,
|
|
38780
38800
|
optixFlowConfig
|
|
38781
38801
|
]);
|
|
38782
|
-
const tocContent =
|
|
38802
|
+
const tocContent = React8.useMemo(() => {
|
|
38783
38803
|
if (tocSlot) return tocSlot;
|
|
38784
38804
|
if (!sections || sections.length === 0) return null;
|
|
38785
38805
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", tocClassName), children: [
|
|
@@ -38787,7 +38807,7 @@ function ArticleBreadcrumbSocialComponent({
|
|
|
38787
38807
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: sections.map((section) => {
|
|
38788
38808
|
const isActive = activeSection === section.id;
|
|
38789
38809
|
if (renderSectionLink) {
|
|
38790
|
-
return /* @__PURE__ */ jsx(
|
|
38810
|
+
return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
38791
38811
|
}
|
|
38792
38812
|
return /* @__PURE__ */ jsx(
|
|
38793
38813
|
Pressable,
|
|
@@ -38894,11 +38914,11 @@ function ArticleCompactTocComponent({
|
|
|
38894
38914
|
patternOpacity,
|
|
38895
38915
|
patternClassName
|
|
38896
38916
|
}) {
|
|
38897
|
-
const [activeSection, setActiveSection] =
|
|
38917
|
+
const [activeSection, setActiveSection] = React8.useState(
|
|
38898
38918
|
sections?.[0]?.id || ""
|
|
38899
38919
|
);
|
|
38900
|
-
const [isTocOpen, setIsTocOpen] =
|
|
38901
|
-
|
|
38920
|
+
const [isTocOpen, setIsTocOpen] = React8.useState(false);
|
|
38921
|
+
React8.useEffect(() => {
|
|
38902
38922
|
if (!enableTocTracking) return;
|
|
38903
38923
|
const observer = new IntersectionObserver(
|
|
38904
38924
|
(entries) => {
|
|
@@ -38916,12 +38936,12 @@ function ArticleCompactTocComponent({
|
|
|
38916
38936
|
});
|
|
38917
38937
|
return () => observer.disconnect();
|
|
38918
38938
|
}, [sections, enableTocTracking]);
|
|
38919
|
-
const breadcrumbsContent =
|
|
38939
|
+
const breadcrumbsContent = React8.useMemo(() => {
|
|
38920
38940
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
38921
38941
|
if (!breadcrumbs && !currentPage) return null;
|
|
38922
38942
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-6 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
38923
38943
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
38924
|
-
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
38944
|
+
breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
38925
38945
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
38926
38946
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
38927
38947
|
] }, index)),
|
|
@@ -38929,13 +38949,13 @@ function ArticleCompactTocComponent({
|
|
|
38929
38949
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: currentPage }) })
|
|
38930
38950
|
] }) });
|
|
38931
38951
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
38932
|
-
const renderTocLinks =
|
|
38952
|
+
const renderTocLinks = React8.useCallback(
|
|
38933
38953
|
(onLinkClick) => {
|
|
38934
38954
|
if (!sections) return null;
|
|
38935
38955
|
return sections.map((section) => {
|
|
38936
38956
|
const isActive = activeSection === section.id;
|
|
38937
38957
|
if (renderSectionLink) {
|
|
38938
|
-
return /* @__PURE__ */ jsx(
|
|
38958
|
+
return /* @__PURE__ */ jsx(React8.Fragment, { children: renderSectionLink(section, isActive) }, section.id);
|
|
38939
38959
|
}
|
|
38940
38960
|
return /* @__PURE__ */ jsx(
|
|
38941
38961
|
Pressable,
|
|
@@ -38954,7 +38974,7 @@ function ArticleCompactTocComponent({
|
|
|
38954
38974
|
},
|
|
38955
38975
|
[sections, activeSection, renderSectionLink]
|
|
38956
38976
|
);
|
|
38957
|
-
const tocContent =
|
|
38977
|
+
const tocContent = React8.useMemo(() => {
|
|
38958
38978
|
if (tocSlot) return tocSlot;
|
|
38959
38979
|
if (!sections || sections.length === 0) return null;
|
|
38960
38980
|
return /* @__PURE__ */ jsx("div", { className: "mb-8 lg:hidden", children: /* @__PURE__ */ jsxs(Popover, { open: isTocOpen, onOpenChange: setIsTocOpen, children: [
|
|
@@ -38988,14 +39008,14 @@ function ArticleCompactTocComponent({
|
|
|
38988
39008
|
] }) });
|
|
38989
39009
|
}, [tocSlot, sections, isTocOpen, tocClassName, renderTocLinks]);
|
|
38990
39010
|
const hasDesktopToc = !tocSlot && sections && sections.length > 0;
|
|
38991
|
-
const desktopTocContent =
|
|
39011
|
+
const desktopTocContent = React8.useMemo(() => {
|
|
38992
39012
|
if (!hasDesktopToc) return null;
|
|
38993
39013
|
return /* @__PURE__ */ jsx("aside", { className: cn("hidden lg:block w-64 shrink-0", tocClassName), children: /* @__PURE__ */ jsxs("nav", { className: "sticky top-24 max-h-[calc(100vh-8rem)] overflow-y-auto space-y-2 rounded-lg border p-4", children: [
|
|
38994
39014
|
/* @__PURE__ */ jsx("span", { className: "mb-3 block text-sm font-semibold", children: "Table of Contents" }),
|
|
38995
39015
|
renderTocLinks()
|
|
38996
39016
|
] }) });
|
|
38997
39017
|
}, [hasDesktopToc, tocClassName, renderTocLinks]);
|
|
38998
|
-
const heroMediaContent =
|
|
39018
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
38999
39019
|
if (heroMediaSlot) return heroMediaSlot;
|
|
39000
39020
|
if (!heroImageSrc) return null;
|
|
39001
39021
|
return /* @__PURE__ */ jsx(
|
|
@@ -39117,10 +39137,10 @@ function ArticleChaptersAuthorComponent({
|
|
|
39117
39137
|
pattern,
|
|
39118
39138
|
patternOpacity
|
|
39119
39139
|
}) {
|
|
39120
|
-
const [activeChapter, setActiveChapter] =
|
|
39140
|
+
const [activeChapter, setActiveChapter] = React8.useState(
|
|
39121
39141
|
chapters?.[0]?.id || ""
|
|
39122
39142
|
);
|
|
39123
|
-
|
|
39143
|
+
React8.useEffect(() => {
|
|
39124
39144
|
if (!enableChapterTracking || !chapters || chapters.length === 0) return;
|
|
39125
39145
|
const observer = new IntersectionObserver(
|
|
39126
39146
|
(entries) => {
|
|
@@ -39138,12 +39158,12 @@ function ArticleChaptersAuthorComponent({
|
|
|
39138
39158
|
});
|
|
39139
39159
|
return () => observer.disconnect();
|
|
39140
39160
|
}, [chapters, enableChapterTracking]);
|
|
39141
|
-
const breadcrumbsContent =
|
|
39161
|
+
const breadcrumbsContent = React8.useMemo(() => {
|
|
39142
39162
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
39143
39163
|
if (!breadcrumbs || breadcrumbs.length === 0) return null;
|
|
39144
39164
|
return /* @__PURE__ */ jsx(Breadcrumb, { className: cn("mb-8 md:mb-20", breadcrumbClassName), children: /* @__PURE__ */ jsxs(BreadcrumbList, { children: [
|
|
39145
39165
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: "#", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) }) }) }),
|
|
39146
|
-
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
39166
|
+
breadcrumbs.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
39147
39167
|
/* @__PURE__ */ jsx(BreadcrumbSeparator, {}),
|
|
39148
39168
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbLink, { asChild: true, children: /* @__PURE__ */ jsx(Pressable, { href: crumb.href, children: crumb.label }) }) })
|
|
39149
39169
|
] }, index)),
|
|
@@ -39151,7 +39171,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
39151
39171
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof currentPage === "string" ? currentPage : currentPage }) })
|
|
39152
39172
|
] }) });
|
|
39153
39173
|
}, [breadcrumbsSlot, breadcrumbs, currentPage, breadcrumbClassName]);
|
|
39154
|
-
const chaptersNavContent =
|
|
39174
|
+
const chaptersNavContent = React8.useMemo(() => {
|
|
39155
39175
|
if (chaptersSlot) return chaptersSlot;
|
|
39156
39176
|
if (!chapters || chapters.length === 0) return null;
|
|
39157
39177
|
return /* @__PURE__ */ jsxs("div", { className: cn("rounded-lg border p-4", chaptersClassName), children: [
|
|
@@ -39159,7 +39179,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
39159
39179
|
/* @__PURE__ */ jsx("nav", { className: "space-y-2", children: chapters.map((chapter) => {
|
|
39160
39180
|
const isActive = activeChapter === chapter.id;
|
|
39161
39181
|
if (renderChapterLink) {
|
|
39162
|
-
return /* @__PURE__ */ jsx(
|
|
39182
|
+
return /* @__PURE__ */ jsx(React8.Fragment, { children: renderChapterLink(chapter, isActive) }, chapter.id);
|
|
39163
39183
|
}
|
|
39164
39184
|
return /* @__PURE__ */ jsxs(
|
|
39165
39185
|
Pressable,
|
|
@@ -39193,7 +39213,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
39193
39213
|
renderChapterLink,
|
|
39194
39214
|
chaptersClassName
|
|
39195
39215
|
]);
|
|
39196
|
-
const authorCardContent =
|
|
39216
|
+
const authorCardContent = React8.useMemo(() => {
|
|
39197
39217
|
if (authorSlot) return authorSlot;
|
|
39198
39218
|
if (!author) return null;
|
|
39199
39219
|
let socialLinksContent = null;
|
|
@@ -39242,7 +39262,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
39242
39262
|
socialLinksContent
|
|
39243
39263
|
] });
|
|
39244
39264
|
}, [authorSlot, author, authorClassName]);
|
|
39245
|
-
const heroMediaContent =
|
|
39265
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
39246
39266
|
if (heroMediaSlot) return heroMediaSlot;
|
|
39247
39267
|
if (!heroImageSrc) return null;
|
|
39248
39268
|
return /* @__PURE__ */ jsx(
|
|
@@ -39264,7 +39284,7 @@ function ArticleChaptersAuthorComponent({
|
|
|
39264
39284
|
heroImageClassName,
|
|
39265
39285
|
optixFlowConfig
|
|
39266
39286
|
]);
|
|
39267
|
-
const conclusionContent =
|
|
39287
|
+
const conclusionContent = React8.useMemo(() => {
|
|
39268
39288
|
if (conclusionSlot) return conclusionSlot;
|
|
39269
39289
|
if (!conclusionTitle && !conclusionDescription && (!conclusionActions || conclusionActions.length === 0))
|
|
39270
39290
|
return null;
|
|
@@ -39406,7 +39426,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
39406
39426
|
spacing = "lg"
|
|
39407
39427
|
}) {
|
|
39408
39428
|
const MotionWrapper = enableAnimations ? motion.div : "div";
|
|
39409
|
-
const categoryContent =
|
|
39429
|
+
const categoryContent = React8.useMemo(() => {
|
|
39410
39430
|
if (categorySlot) return categorySlot;
|
|
39411
39431
|
if (!category) return null;
|
|
39412
39432
|
return /* @__PURE__ */ jsx(
|
|
@@ -39421,7 +39441,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
39421
39441
|
}
|
|
39422
39442
|
);
|
|
39423
39443
|
}, [categorySlot, category, categoryHref, categoryClassName]);
|
|
39424
|
-
const heroMediaContent =
|
|
39444
|
+
const heroMediaContent = React8.useMemo(() => {
|
|
39425
39445
|
if (heroMediaSlot) return heroMediaSlot;
|
|
39426
39446
|
if (!image) return null;
|
|
39427
39447
|
return /* @__PURE__ */ jsx(
|
|
@@ -39434,7 +39454,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
39434
39454
|
}
|
|
39435
39455
|
);
|
|
39436
39456
|
}, [heroMediaSlot, image, imageAlt, title, optixFlowConfig]);
|
|
39437
|
-
const authorContent =
|
|
39457
|
+
const authorContent = React8.useMemo(() => {
|
|
39438
39458
|
if (authorSlot) return authorSlot;
|
|
39439
39459
|
if (!authorName) return null;
|
|
39440
39460
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-8 flex items-center gap-4", authorClassName), children: [
|
|
@@ -39462,7 +39482,7 @@ function ArticleSplitAnimatedComponent({
|
|
|
39462
39482
|
authorRole,
|
|
39463
39483
|
authorClassName
|
|
39464
39484
|
]);
|
|
39465
|
-
const ctaContent =
|
|
39485
|
+
const ctaContent = React8.useMemo(() => {
|
|
39466
39486
|
if (ctaSlot) return ctaSlot;
|
|
39467
39487
|
if (!ctaActions || ctaActions.length === 0) return null;
|
|
39468
39488
|
return /* @__PURE__ */ jsx("div", { className: cn("mt-8 flex flex-wrap gap-3", ctaClassName), children: ctaActions.map((action, index) => {
|
|
@@ -41128,7 +41148,7 @@ function FaqSidebarNavigation({
|
|
|
41128
41148
|
accordionTriggerClassName,
|
|
41129
41149
|
accordionContentClassName
|
|
41130
41150
|
}) {
|
|
41131
|
-
const [activeCategory, setActiveCategory] =
|
|
41151
|
+
const [activeCategory, setActiveCategory] = React8.useState(
|
|
41132
41152
|
categories && categories.length > 1 ? "all" : categories?.[0]?.id || ""
|
|
41133
41153
|
);
|
|
41134
41154
|
const filteredCategories = useMemo(() => {
|
|
@@ -42186,7 +42206,7 @@ function FaqSplitHero({
|
|
|
42186
42206
|
}
|
|
42187
42207
|
);
|
|
42188
42208
|
}
|
|
42189
|
-
var Controls =
|
|
42209
|
+
var Controls = React8.memo(
|
|
42190
42210
|
({
|
|
42191
42211
|
handleNext,
|
|
42192
42212
|
handlePrevious,
|
|
@@ -42217,7 +42237,7 @@ var Controls = React32.memo(
|
|
|
42217
42237
|
] });
|
|
42218
42238
|
}
|
|
42219
42239
|
);
|
|
42220
|
-
var FeatureCard =
|
|
42240
|
+
var FeatureCard = React8.memo(
|
|
42221
42241
|
({ feature, isActive, onClick }) => {
|
|
42222
42242
|
const variants2 = useMemo(
|
|
42223
42243
|
() => ({
|
|
@@ -42325,7 +42345,7 @@ var FeatureCard = React32.memo(
|
|
|
42325
42345
|
) });
|
|
42326
42346
|
}
|
|
42327
42347
|
);
|
|
42328
|
-
var FeaturesDesktop =
|
|
42348
|
+
var FeaturesDesktop = React8.memo(
|
|
42329
42349
|
({
|
|
42330
42350
|
features,
|
|
42331
42351
|
handleNext,
|
|
@@ -42359,7 +42379,7 @@ var FeaturesDesktop = React32.memo(
|
|
|
42359
42379
|
] });
|
|
42360
42380
|
}
|
|
42361
42381
|
);
|
|
42362
|
-
var FeaturesMobile =
|
|
42382
|
+
var FeaturesMobile = React8.memo(
|
|
42363
42383
|
({
|
|
42364
42384
|
features,
|
|
42365
42385
|
handleNext,
|
|
@@ -42450,8 +42470,8 @@ function FeatureAnimatedCarousel({
|
|
|
42450
42470
|
spacing = "py-12 md:py-32",
|
|
42451
42471
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
42452
42472
|
}) {
|
|
42453
|
-
const [activeIndex, setActiveIndex] =
|
|
42454
|
-
const [direction, setDirection] =
|
|
42473
|
+
const [activeIndex, setActiveIndex] = React8.useState(0);
|
|
42474
|
+
const [direction, setDirection] = React8.useState(1);
|
|
42455
42475
|
const handleNext = useCallback(() => {
|
|
42456
42476
|
if (features && activeIndex < features.length - 1) {
|
|
42457
42477
|
setDirection(1);
|
|
@@ -42679,7 +42699,7 @@ function FooterNewsletterContact({
|
|
|
42679
42699
|
formSlot,
|
|
42680
42700
|
newsletterFormClassName
|
|
42681
42701
|
}) {
|
|
42682
|
-
const linkSectionsContent =
|
|
42702
|
+
const linkSectionsContent = React8.useMemo(() => {
|
|
42683
42703
|
if (!footerLinks || footerLinks.length === 0) return null;
|
|
42684
42704
|
return footerLinks.map((section, idx) => /* @__PURE__ */ jsxs("div", { children: [
|
|
42685
42705
|
/* @__PURE__ */ jsx("h2", { className: "mb-6 text-sm font-medium uppercase leading-tight opacity-70", children: section.title }),
|
|
@@ -42693,7 +42713,7 @@ function FooterNewsletterContact({
|
|
|
42693
42713
|
) }, itemIdx)) })
|
|
42694
42714
|
] }, idx));
|
|
42695
42715
|
}, [footerLinks]);
|
|
42696
|
-
const contactDetailsContent =
|
|
42716
|
+
const contactDetailsContent = React8.useMemo(() => {
|
|
42697
42717
|
if (!contactDetails || contactDetails.length === 0) return null;
|
|
42698
42718
|
return contactDetails.map((item, idx) => /* @__PURE__ */ jsxs("li", { className: "flex items-start gap-3", children: [
|
|
42699
42719
|
/* @__PURE__ */ jsx("div", { className: "flex items-center justify-center shrink-0 mt-1", children: /* @__PURE__ */ jsx(DynamicIcon, { name: item.icon, size: 16 }) }),
|
|
@@ -42707,7 +42727,7 @@ function FooterNewsletterContact({
|
|
|
42707
42727
|
) })
|
|
42708
42728
|
] }, idx));
|
|
42709
42729
|
}, [contactDetails]);
|
|
42710
|
-
const socialLinksContent =
|
|
42730
|
+
const socialLinksContent = React8.useMemo(() => {
|
|
42711
42731
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
42712
42732
|
return socialLinks.map((social, idx) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
42713
42733
|
SocialLinkIcon,
|
|
@@ -42721,7 +42741,7 @@ function FooterNewsletterContact({
|
|
|
42721
42741
|
}
|
|
42722
42742
|
) }, idx));
|
|
42723
42743
|
}, [socialLinks]);
|
|
42724
|
-
const renderForm =
|
|
42744
|
+
const renderForm = React8.useMemo(() => {
|
|
42725
42745
|
if (formSlot) return formSlot;
|
|
42726
42746
|
if (!formEngineSetup) return null;
|
|
42727
42747
|
const defaultButtonAction = {
|
|
@@ -42866,7 +42886,7 @@ function FooterSplitImageAccordion({
|
|
|
42866
42886
|
buttonAction,
|
|
42867
42887
|
formSlot
|
|
42868
42888
|
}) {
|
|
42869
|
-
const renderForm =
|
|
42889
|
+
const renderForm = React8.useMemo(() => {
|
|
42870
42890
|
if (formSlot) return formSlot;
|
|
42871
42891
|
if (!formEngineSetup) return null;
|
|
42872
42892
|
const defaultButtonAction = {
|
|
@@ -43127,7 +43147,7 @@ function FooterAccordionSocial({
|
|
|
43127
43147
|
patternClassName,
|
|
43128
43148
|
formEngineSetup
|
|
43129
43149
|
}) {
|
|
43130
|
-
const renderForm =
|
|
43150
|
+
const renderForm = React8.useMemo(() => {
|
|
43131
43151
|
if (!formEngineSetup) return null;
|
|
43132
43152
|
const action = {
|
|
43133
43153
|
label: "",
|
|
@@ -43271,7 +43291,7 @@ function FooterInfoCardsAccordion({
|
|
|
43271
43291
|
patternOpacity,
|
|
43272
43292
|
optixFlowConfig
|
|
43273
43293
|
}) {
|
|
43274
|
-
const [email, setEmail] =
|
|
43294
|
+
const [email, setEmail] = React8.useState("");
|
|
43275
43295
|
(/* @__PURE__ */ new Date()).getFullYear();
|
|
43276
43296
|
const handleSubmit = (e) => {
|
|
43277
43297
|
e.preventDefault();
|
|
@@ -43576,13 +43596,13 @@ function CaseStudiesImageGrid({
|
|
|
43576
43596
|
patternOpacity,
|
|
43577
43597
|
optixFlowConfig
|
|
43578
43598
|
}) {
|
|
43579
|
-
const getGridClass =
|
|
43599
|
+
const getGridClass = React8.useCallback((index) => {
|
|
43580
43600
|
if (index === 0 || index === 4) {
|
|
43581
43601
|
return "row-span-2 aspect-square lg:aspect-auto";
|
|
43582
43602
|
}
|
|
43583
43603
|
return "aspect-3/2 md:aspect-2/1";
|
|
43584
43604
|
}, []);
|
|
43585
|
-
const renderedItems =
|
|
43605
|
+
const renderedItems = React8.useMemo(() => {
|
|
43586
43606
|
if (itemsSlot) return itemsSlot;
|
|
43587
43607
|
if (!items || items.length === 0) return null;
|
|
43588
43608
|
return items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
@@ -43668,7 +43688,7 @@ function CaseStudiesTestimonialStats({
|
|
|
43668
43688
|
patternOpacity,
|
|
43669
43689
|
optixFlowConfig
|
|
43670
43690
|
}) {
|
|
43671
|
-
const renderedTestimonials =
|
|
43691
|
+
const renderedTestimonials = React8.useMemo(() => {
|
|
43672
43692
|
if (testimonialsSlot) return testimonialsSlot;
|
|
43673
43693
|
if (!testimonials || testimonials.length === 0) return null;
|
|
43674
43694
|
return testimonials.map((testimonial, index) => /* @__PURE__ */ jsxs("div", { className: testimonialItemClassName, children: [
|
|
@@ -47141,7 +47161,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
47141
47161
|
patternOpacity,
|
|
47142
47162
|
optixFlowConfig
|
|
47143
47163
|
}) {
|
|
47144
|
-
const renderedFeatured =
|
|
47164
|
+
const renderedFeatured = React8.useMemo(() => {
|
|
47145
47165
|
if (featuredSlot) return featuredSlot;
|
|
47146
47166
|
if (!featuredCaseStudy) return null;
|
|
47147
47167
|
return /* @__PURE__ */ jsxs(
|
|
@@ -47215,7 +47235,7 @@ function CaseStudiesFeaturedBorder({
|
|
|
47215
47235
|
featuredImageClassName,
|
|
47216
47236
|
optixFlowConfig
|
|
47217
47237
|
]);
|
|
47218
|
-
const renderedCaseStudies =
|
|
47238
|
+
const renderedCaseStudies = React8.useMemo(() => {
|
|
47219
47239
|
if (caseStudiesSlot) return caseStudiesSlot;
|
|
47220
47240
|
if (!caseStudies || caseStudies.length === 0) return null;
|
|
47221
47241
|
return caseStudies.map((item, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -47324,7 +47344,7 @@ function CaseStudiesStatsCard({
|
|
|
47324
47344
|
patternOpacity,
|
|
47325
47345
|
optixFlowConfig
|
|
47326
47346
|
}) {
|
|
47327
|
-
const renderedStats =
|
|
47347
|
+
const renderedStats = React8.useMemo(() => {
|
|
47328
47348
|
if (statsSlot) return statsSlot;
|
|
47329
47349
|
if (!stats || stats.length === 0) return null;
|
|
47330
47350
|
return /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col gap-8 sm:flex-row", statsClassName), children: stats.map((item, i) => /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-1", children: [
|
|
@@ -47332,7 +47352,7 @@ function CaseStudiesStatsCard({
|
|
|
47332
47352
|
/* @__PURE__ */ jsx("div", { className: "text-sm font-medium text-muted-foreground", children: item.text })
|
|
47333
47353
|
] }, `stats-${i}`)) });
|
|
47334
47354
|
}, [statsSlot, stats, statsClassName]);
|
|
47335
|
-
const renderedAuthor =
|
|
47355
|
+
const renderedAuthor = React8.useMemo(() => {
|
|
47336
47356
|
if (authorSlot) return authorSlot;
|
|
47337
47357
|
if (!author) return null;
|
|
47338
47358
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2.5", authorClassName), children: [
|
|
@@ -47346,7 +47366,7 @@ function CaseStudiesStatsCard({
|
|
|
47346
47366
|
] })
|
|
47347
47367
|
] });
|
|
47348
47368
|
}, [authorSlot, author, authorClassName]);
|
|
47349
|
-
const renderedActions =
|
|
47369
|
+
const renderedActions = React8.useMemo(() => {
|
|
47350
47370
|
if (actionsSlot) return actionsSlot;
|
|
47351
47371
|
if (!actions || actions.length === 0) return null;
|
|
47352
47372
|
return /* @__PURE__ */ jsx("div", { className: cn("shrink-0", actionsClassName), children: actions.map((action, index) => {
|
|
@@ -50234,7 +50254,7 @@ function HeroSimpleCenteredImage({
|
|
|
50234
50254
|
"div",
|
|
50235
50255
|
{
|
|
50236
50256
|
className: cn(
|
|
50237
|
-
"flex flex-col items-center text-center",
|
|
50257
|
+
"flex flex-col items-center text-center gap-6 md:gap-2",
|
|
50238
50258
|
contentClassName
|
|
50239
50259
|
),
|
|
50240
50260
|
children: [
|
|
@@ -50242,22 +50262,22 @@ function HeroSimpleCenteredImage({
|
|
|
50242
50262
|
"h1",
|
|
50243
50263
|
{
|
|
50244
50264
|
className: cn(
|
|
50245
|
-
"my-
|
|
50265
|
+
"my-4 text-4xl font-bold text-balance md:my-6 md:text-6xl",
|
|
50246
50266
|
headingClassName
|
|
50247
50267
|
),
|
|
50248
50268
|
children: heading
|
|
50249
50269
|
}
|
|
50250
|
-
) :
|
|
50270
|
+
) : heading),
|
|
50251
50271
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
50252
50272
|
"p",
|
|
50253
50273
|
{
|
|
50254
50274
|
className: cn(
|
|
50255
|
-
"max-w-
|
|
50275
|
+
"max-w-full md:max-w-md text-lg text-balance opacity-75 leading-relaxed",
|
|
50256
50276
|
descriptionClassName
|
|
50257
50277
|
),
|
|
50258
50278
|
children: description
|
|
50259
50279
|
}
|
|
50260
|
-
) :
|
|
50280
|
+
) : description),
|
|
50261
50281
|
/* @__PURE__ */ jsx(
|
|
50262
50282
|
BlockActions,
|
|
50263
50283
|
{
|
|
@@ -54758,7 +54778,7 @@ function HeroSplitImageNewsletter({
|
|
|
54758
54778
|
onError,
|
|
54759
54779
|
uploadTokens
|
|
54760
54780
|
});
|
|
54761
|
-
const renderForm =
|
|
54781
|
+
const renderForm = React8.useMemo(() => {
|
|
54762
54782
|
if (formSlot) return formSlot;
|
|
54763
54783
|
if (!formFields || formFields.length === 0) return null;
|
|
54764
54784
|
const defaultButtonAction = {
|
|
@@ -54837,7 +54857,7 @@ function HeroSplitImageNewsletter({
|
|
|
54837
54857
|
resetUpload,
|
|
54838
54858
|
resetSubmissionState
|
|
54839
54859
|
]);
|
|
54840
|
-
const renderImage =
|
|
54860
|
+
const renderImage = React8.useMemo(() => {
|
|
54841
54861
|
if (imageSlot) return imageSlot;
|
|
54842
54862
|
if (!image) return null;
|
|
54843
54863
|
return /* @__PURE__ */ jsx("div", { className: "relative lg:w-1/2", children: /* @__PURE__ */ jsx(
|
|
@@ -56270,7 +56290,7 @@ function HeroSaasDashboardPreview({
|
|
|
56270
56290
|
onError,
|
|
56271
56291
|
uploadTokens
|
|
56272
56292
|
});
|
|
56273
|
-
const renderBadge =
|
|
56293
|
+
const renderBadge = React8.useMemo(() => {
|
|
56274
56294
|
if (badgeSlot) return badgeSlot;
|
|
56275
56295
|
return /* @__PURE__ */ jsxs(
|
|
56276
56296
|
"div",
|
|
@@ -56285,7 +56305,7 @@ function HeroSaasDashboardPreview({
|
|
|
56285
56305
|
}
|
|
56286
56306
|
);
|
|
56287
56307
|
}, [badgeSlot, badgeIcon, badgeText]);
|
|
56288
|
-
const renderForm =
|
|
56308
|
+
const renderForm = React8.useMemo(() => {
|
|
56289
56309
|
if (formSlot) return formSlot;
|
|
56290
56310
|
const defaultButtonAction = {
|
|
56291
56311
|
label: "Start Free Trial",
|
|
@@ -56360,7 +56380,7 @@ function HeroSaasDashboardPreview({
|
|
|
56360
56380
|
resetUpload,
|
|
56361
56381
|
resetSubmissionState
|
|
56362
56382
|
]);
|
|
56363
|
-
const renderBrowserPreview =
|
|
56383
|
+
const renderBrowserPreview = React8.useMemo(() => {
|
|
56364
56384
|
if (browserPreviewSlot) return browserPreviewSlot;
|
|
56365
56385
|
if (!browserPreview) return null;
|
|
56366
56386
|
return /* @__PURE__ */ jsxs("div", { className: cn("relative mt-12 md:mt-20", previewClassName), children: [
|
|
@@ -58611,7 +58631,7 @@ function HeroEcommerceProductShowcase({
|
|
|
58611
58631
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12",
|
|
58612
58632
|
statsClassName
|
|
58613
58633
|
),
|
|
58614
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
58634
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
58615
58635
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
58616
58636
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
|
|
58617
58637
|
/* @__PURE__ */ jsxs(
|
|
@@ -59055,7 +59075,7 @@ function HeroNewsletterMinimal({
|
|
|
59055
59075
|
disclaimerClassName,
|
|
59056
59076
|
statsClassName
|
|
59057
59077
|
}) {
|
|
59058
|
-
const renderStats =
|
|
59078
|
+
const renderStats = React8.useMemo(() => {
|
|
59059
59079
|
if (statsSlot) return statsSlot;
|
|
59060
59080
|
if (!stats || stats.length === 0) return null;
|
|
59061
59081
|
return stats.map((stat, index) => /* @__PURE__ */ jsx("div", { className: cn("flex items-center", stat.className), children: /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
@@ -59081,7 +59101,7 @@ function HeroNewsletterMinimal({
|
|
|
59081
59101
|
/* @__PURE__ */ jsx("div", { className: cn("text-sm"), children: stat.label })
|
|
59082
59102
|
] }) }, index));
|
|
59083
59103
|
}, [statsSlot, stats]);
|
|
59084
|
-
const renderForm =
|
|
59104
|
+
const renderForm = React8.useMemo(() => {
|
|
59085
59105
|
if (formSlot) return formSlot;
|
|
59086
59106
|
if (!formEngineSetup) return null;
|
|
59087
59107
|
const defaultButtonAction = {
|
|
@@ -59248,7 +59268,7 @@ function HeroComingSoonCountdown({
|
|
|
59248
59268
|
formClassName,
|
|
59249
59269
|
socialLinksClassName
|
|
59250
59270
|
}) {
|
|
59251
|
-
const [timeLeft, setTimeLeft] =
|
|
59271
|
+
const [timeLeft, setTimeLeft] = React8.useState(null);
|
|
59252
59272
|
const {
|
|
59253
59273
|
uploadTokens,
|
|
59254
59274
|
uploadProgress,
|
|
@@ -59268,7 +59288,7 @@ function HeroComingSoonCountdown({
|
|
|
59268
59288
|
onError,
|
|
59269
59289
|
uploadTokens
|
|
59270
59290
|
});
|
|
59271
|
-
const calculateTimeLeft =
|
|
59291
|
+
const calculateTimeLeft = React8.useCallback(() => {
|
|
59272
59292
|
if (!countdownDate) return null;
|
|
59273
59293
|
const now = Date.now();
|
|
59274
59294
|
const target = countdownDate.getTime();
|
|
@@ -59281,7 +59301,7 @@ function HeroComingSoonCountdown({
|
|
|
59281
59301
|
seconds: Math.floor(diff % (1e3 * 60) / 1e3)
|
|
59282
59302
|
};
|
|
59283
59303
|
}, [countdownDate]);
|
|
59284
|
-
|
|
59304
|
+
React8.useEffect(() => {
|
|
59285
59305
|
setTimeLeft(calculateTimeLeft());
|
|
59286
59306
|
if (!countdownDate) return;
|
|
59287
59307
|
const timer = setInterval(() => {
|
|
@@ -59292,7 +59312,7 @@ function HeroComingSoonCountdown({
|
|
|
59292
59312
|
return () => clearInterval(timer);
|
|
59293
59313
|
}, [countdownDate, calculateTimeLeft]);
|
|
59294
59314
|
const showCountdown = countdownSlot || timeLeft;
|
|
59295
|
-
const renderForm =
|
|
59315
|
+
const renderForm = React8.useMemo(() => {
|
|
59296
59316
|
if (formSlot) return formSlot;
|
|
59297
59317
|
const defaultButtonAction = {
|
|
59298
59318
|
label: "Notify Me",
|
|
@@ -59368,7 +59388,7 @@ function HeroComingSoonCountdown({
|
|
|
59368
59388
|
resetUpload,
|
|
59369
59389
|
resetSubmissionState
|
|
59370
59390
|
]);
|
|
59371
|
-
const renderSocialLinks =
|
|
59391
|
+
const renderSocialLinks = React8.useMemo(() => {
|
|
59372
59392
|
if (socialLinksSlot) return socialLinksSlot;
|
|
59373
59393
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
59374
59394
|
return socialLinks.map((link, index) => /* @__PURE__ */ jsx(
|
|
@@ -59502,7 +59522,7 @@ function HeroEventRegistration({
|
|
|
59502
59522
|
"flex flex-col md:flex-row items-center gap-4 md:gap-6 pt-8 md:pt-12 w-full md:w-fit",
|
|
59503
59523
|
statsClassName
|
|
59504
59524
|
),
|
|
59505
|
-
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(
|
|
59525
|
+
children: stats.map((stat, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
59506
59526
|
index > 0 && /* @__PURE__ */ jsx("div", { className: "h-12 w-px bg-border hidden md:flex" }),
|
|
59507
59527
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 justify-between flex-row md:flex-col text-left md:text-center w-full md:w-fit border md:border-none rounded-xl md:rounded-none p-4 md:p-0", children: [
|
|
59508
59528
|
/* @__PURE__ */ jsxs(
|
|
@@ -59905,7 +59925,7 @@ function ComparisonTableTwoColumn({
|
|
|
59905
59925
|
patternOpacity,
|
|
59906
59926
|
optixFlowConfig
|
|
59907
59927
|
}) {
|
|
59908
|
-
const tableContent =
|
|
59928
|
+
const tableContent = React8.useMemo(() => {
|
|
59909
59929
|
if (tableSlot) return tableSlot;
|
|
59910
59930
|
if (!rows || rows.length === 0) return null;
|
|
59911
59931
|
return /* @__PURE__ */ jsx("div", { className: cn("-mr-4 overflow-x-auto", tableWrapperClassName), children: /* @__PURE__ */ jsx("div", { className: "min-w-2xl overflow-hidden", children: /* @__PURE__ */ jsxs(
|
|
@@ -59935,7 +59955,7 @@ function ComparisonTableTwoColumn({
|
|
|
59935
59955
|
optixFlowConfig
|
|
59936
59956
|
}
|
|
59937
59957
|
) : optionBLabel && (typeof optionBLabel === "string" ? /* @__PURE__ */ jsx("span", { className: "text-lg font-semibold", children: optionBLabel }) : optionBLabel) }),
|
|
59938
|
-
rows.map((row, idx) => /* @__PURE__ */ jsxs(
|
|
59958
|
+
rows.map((row, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
59939
59959
|
/* @__PURE__ */ jsx("div", { className: "flex items-center border-b p-3 text-base font-medium md:p-4 md:text-lg", children: row.label }),
|
|
59940
59960
|
/* @__PURE__ */ jsx("div", { className: cn("border-b bg-success/5 p-3 md:p-6", optionACellClassName), children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
59941
59961
|
row.hasIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check-big", size: 20, className: "text-success" }),
|
|
@@ -59964,14 +59984,14 @@ function ComparisonTableTwoColumn({
|
|
|
59964
59984
|
optionBLabel,
|
|
59965
59985
|
optixFlowConfig
|
|
59966
59986
|
]);
|
|
59967
|
-
const headingContent =
|
|
59987
|
+
const headingContent = React8.useMemo(() => {
|
|
59968
59988
|
if (!heading) return null;
|
|
59969
59989
|
if (typeof heading === "string") {
|
|
59970
59990
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-3xl font-bold md:mb-12 md:text-5xl", headingClassName), children: heading });
|
|
59971
59991
|
}
|
|
59972
59992
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
59973
59993
|
}, [heading, headingClassName]);
|
|
59974
|
-
const descriptionContent =
|
|
59994
|
+
const descriptionContent = React8.useMemo(() => {
|
|
59975
59995
|
if (!description) return null;
|
|
59976
59996
|
if (typeof description === "string") {
|
|
59977
59997
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -60018,7 +60038,7 @@ function ComparisonFeatureCards({
|
|
|
60018
60038
|
patternOpacity,
|
|
60019
60039
|
optixFlowConfig
|
|
60020
60040
|
}) {
|
|
60021
|
-
const renderCard =
|
|
60041
|
+
const renderCard = React8.useCallback(
|
|
60022
60042
|
(product, isHighlighted) => /* @__PURE__ */ jsxs(
|
|
60023
60043
|
"div",
|
|
60024
60044
|
{
|
|
@@ -60074,7 +60094,7 @@ function ComparisonFeatureCards({
|
|
|
60074
60094
|
),
|
|
60075
60095
|
[cardClassName, optixFlowConfig]
|
|
60076
60096
|
);
|
|
60077
|
-
const cardsContent =
|
|
60097
|
+
const cardsContent = React8.useMemo(() => {
|
|
60078
60098
|
if (cardsSlot) return cardsSlot;
|
|
60079
60099
|
if (!productA || !productB) return null;
|
|
60080
60100
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -60082,28 +60102,28 @@ function ComparisonFeatureCards({
|
|
|
60082
60102
|
renderCard(productB, productB.highlighted ?? false)
|
|
60083
60103
|
] });
|
|
60084
60104
|
}, [cardsSlot, productA, productB, renderCard]);
|
|
60085
|
-
const headingContent =
|
|
60105
|
+
const headingContent = React8.useMemo(() => {
|
|
60086
60106
|
if (!heading) return null;
|
|
60087
60107
|
if (typeof heading === "string") {
|
|
60088
60108
|
return /* @__PURE__ */ jsx("h1", { className: cn("mb-6 text-4xl font-semibold md:text-7xl", headingClassName), children: heading });
|
|
60089
60109
|
}
|
|
60090
60110
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60091
60111
|
}, [heading, headingClassName]);
|
|
60092
|
-
const descriptionContent =
|
|
60112
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60093
60113
|
if (!description) return null;
|
|
60094
60114
|
if (typeof description === "string") {
|
|
60095
60115
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl text-muted-foreground md:text-xl", descriptionClassName), children: description });
|
|
60096
60116
|
}
|
|
60097
60117
|
return /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description });
|
|
60098
60118
|
}, [description, descriptionClassName]);
|
|
60099
|
-
const suitabilityContent =
|
|
60119
|
+
const suitabilityContent = React8.useMemo(() => {
|
|
60100
60120
|
if (!suitabilityTitle && !suitabilityDescription) return null;
|
|
60101
60121
|
return /* @__PURE__ */ jsxs("div", { className: suitabilityClassName, children: [
|
|
60102
60122
|
suitabilityTitle && (typeof suitabilityTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: suitabilityTitle }) : suitabilityTitle),
|
|
60103
60123
|
suitabilityDescription && (typeof suitabilityDescription === "string" ? /* @__PURE__ */ jsx("p", { className: "leading-6 text-muted-foreground md:text-lg", children: suitabilityDescription }) : suitabilityDescription)
|
|
60104
60124
|
] });
|
|
60105
60125
|
}, [suitabilityTitle, suitabilityDescription, suitabilityClassName]);
|
|
60106
|
-
const differencesContent =
|
|
60126
|
+
const differencesContent = React8.useMemo(() => {
|
|
60107
60127
|
if (!differencesTitle && !differencesDescription) return null;
|
|
60108
60128
|
return /* @__PURE__ */ jsxs("div", { className: cn("mt-16", differencesClassName), children: [
|
|
60109
60129
|
differencesTitle && (typeof differencesTitle === "string" ? /* @__PURE__ */ jsx("h2", { className: "mb-4 text-3xl font-semibold", children: differencesTitle }) : differencesTitle),
|
|
@@ -60151,7 +60171,7 @@ function ComparisonGridBadges({
|
|
|
60151
60171
|
pattern,
|
|
60152
60172
|
patternOpacity
|
|
60153
60173
|
}) {
|
|
60154
|
-
const featuresContent =
|
|
60174
|
+
const featuresContent = React8.useMemo(() => {
|
|
60155
60175
|
if (featuresSlot) return featuresSlot;
|
|
60156
60176
|
if (!features || features.length === 0) return null;
|
|
60157
60177
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -60198,14 +60218,14 @@ function ComparisonGridBadges({
|
|
|
60198
60218
|
idx
|
|
60199
60219
|
));
|
|
60200
60220
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
60201
|
-
const headingContent =
|
|
60221
|
+
const headingContent = React8.useMemo(() => {
|
|
60202
60222
|
if (!heading) return null;
|
|
60203
60223
|
if (typeof heading === "string") {
|
|
60204
60224
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
60205
60225
|
}
|
|
60206
60226
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60207
60227
|
}, [heading, headingClassName]);
|
|
60208
|
-
const descriptionContent =
|
|
60228
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60209
60229
|
if (!description) return null;
|
|
60210
60230
|
if (typeof description === "string") {
|
|
60211
60231
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -60253,7 +60273,7 @@ function ComparisonMetricsRows({
|
|
|
60253
60273
|
pattern,
|
|
60254
60274
|
patternOpacity
|
|
60255
60275
|
}) {
|
|
60256
|
-
const metricsContent =
|
|
60276
|
+
const metricsContent = React8.useMemo(() => {
|
|
60257
60277
|
if (metricsSlot) return metricsSlot;
|
|
60258
60278
|
if (!metrics || metrics.length === 0) return null;
|
|
60259
60279
|
return /* @__PURE__ */ jsx(
|
|
@@ -60293,7 +60313,7 @@ function ComparisonMetricsRows({
|
|
|
60293
60313
|
}
|
|
60294
60314
|
);
|
|
60295
60315
|
}, [metricsSlot, metrics, metricsClassName, metricRowClassName]);
|
|
60296
|
-
const actionsContent =
|
|
60316
|
+
const actionsContent = React8.useMemo(() => {
|
|
60297
60317
|
if (actionsSlot) return actionsSlot;
|
|
60298
60318
|
if (!actions || actions.length === 0) return null;
|
|
60299
60319
|
return /* @__PURE__ */ jsx("div", { className: cn("flex justify-end", actionsClassName), children: actions.map((action, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -60314,7 +60334,7 @@ function ComparisonMetricsRows({
|
|
|
60314
60334
|
idx
|
|
60315
60335
|
)) });
|
|
60316
60336
|
}, [actionsSlot, actions, actionsClassName]);
|
|
60317
|
-
const headingContent =
|
|
60337
|
+
const headingContent = React8.useMemo(() => {
|
|
60318
60338
|
if (!heading) return null;
|
|
60319
60339
|
if (typeof heading === "string") {
|
|
60320
60340
|
return /* @__PURE__ */ jsx(
|
|
@@ -60330,7 +60350,7 @@ function ComparisonMetricsRows({
|
|
|
60330
60350
|
}
|
|
60331
60351
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60332
60352
|
}, [heading, headingClassName]);
|
|
60333
|
-
const descriptionContent =
|
|
60353
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60334
60354
|
if (!description) return null;
|
|
60335
60355
|
if (typeof description === "string") {
|
|
60336
60356
|
return /* @__PURE__ */ jsx("p", { className: cn("text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -60393,7 +60413,7 @@ function ComparisonImageCards({
|
|
|
60393
60413
|
patternOpacity,
|
|
60394
60414
|
optixFlowConfig
|
|
60395
60415
|
}) {
|
|
60396
|
-
const renderCard =
|
|
60416
|
+
const renderCard = React8.useCallback(
|
|
60397
60417
|
(option) => /* @__PURE__ */ jsx("div", { className: cn("relative h-full", cardClassName), children: /* @__PURE__ */ jsxs("div", { className: cn(
|
|
60398
60418
|
"relative aspect-4/5 min-h-[400px] overflow-hidden rounded-2xl sm:aspect-[0.9] sm:min-h-[480px] sm:rounded-3xl md:min-h-[520px]",
|
|
60399
60419
|
getNestedCardBg(background, "accent"),
|
|
@@ -60417,7 +60437,7 @@ function ComparisonImageCards({
|
|
|
60417
60437
|
] }) }),
|
|
60418
60438
|
[cardClassName, optixFlowConfig]
|
|
60419
60439
|
);
|
|
60420
|
-
const cardsContent =
|
|
60440
|
+
const cardsContent = React8.useMemo(() => {
|
|
60421
60441
|
if (cardsSlot) return cardsSlot;
|
|
60422
60442
|
if (!optionA || !optionB) return null;
|
|
60423
60443
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -60435,14 +60455,14 @@ function ComparisonImageCards({
|
|
|
60435
60455
|
)
|
|
60436
60456
|
] });
|
|
60437
60457
|
}, [cardsSlot, optionA, optionB, dividerText, dividerClassName, renderCard]);
|
|
60438
|
-
const headingContent =
|
|
60458
|
+
const headingContent = React8.useMemo(() => {
|
|
60439
60459
|
if (!heading) return null;
|
|
60440
60460
|
if (typeof heading === "string") {
|
|
60441
60461
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-medium sm:text-4xl md:text-5xl lg:text-6xl", headingClassName), children: heading });
|
|
60442
60462
|
}
|
|
60443
60463
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60444
60464
|
}, [heading, headingClassName]);
|
|
60445
|
-
const descriptionContent =
|
|
60465
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60446
60466
|
if (!description) return null;
|
|
60447
60467
|
if (typeof description === "string") {
|
|
60448
60468
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-3xl text-lg text-muted-foreground sm:mt-6 sm:text-xl", descriptionClassName), children: description });
|
|
@@ -60572,7 +60592,7 @@ function ComparisonTableTabs({
|
|
|
60572
60592
|
patternOpacity
|
|
60573
60593
|
}) {
|
|
60574
60594
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
60575
|
-
const renderStatusIcon =
|
|
60595
|
+
const renderStatusIcon = React8.useCallback((status) => {
|
|
60576
60596
|
if (status === "positive") {
|
|
60577
60597
|
return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-success/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" }) });
|
|
60578
60598
|
}
|
|
@@ -60581,7 +60601,7 @@ function ComparisonTableTabs({
|
|
|
60581
60601
|
}
|
|
60582
60602
|
return /* @__PURE__ */ jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-accent/10", children: /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-minus", size: 16, className: "text-accent" }) });
|
|
60583
60603
|
}, []);
|
|
60584
|
-
const tableContent =
|
|
60604
|
+
const tableContent = React8.useMemo(() => {
|
|
60585
60605
|
if (tableSlot) return tableSlot;
|
|
60586
60606
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
60587
60607
|
return /* @__PURE__ */ jsxs(Fragment$1, { children: [
|
|
@@ -60640,14 +60660,14 @@ function ComparisonTableTabs({
|
|
|
60640
60660
|
] }) })
|
|
60641
60661
|
] });
|
|
60642
60662
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
60643
|
-
const headingContent =
|
|
60663
|
+
const headingContent = React8.useMemo(() => {
|
|
60644
60664
|
if (!heading) return null;
|
|
60645
60665
|
if (typeof heading === "string") {
|
|
60646
60666
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
60647
60667
|
}
|
|
60648
60668
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60649
60669
|
}, [heading, headingClassName]);
|
|
60650
|
-
const descriptionContent =
|
|
60670
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60651
60671
|
if (!description) return null;
|
|
60652
60672
|
if (typeof description === "string") {
|
|
60653
60673
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -60738,7 +60758,7 @@ function ComparisonTableTooltips({
|
|
|
60738
60758
|
pattern,
|
|
60739
60759
|
patternOpacity
|
|
60740
60760
|
}) {
|
|
60741
|
-
const renderCellContent =
|
|
60761
|
+
const renderCellContent = React8.useCallback(
|
|
60742
60762
|
(cell, isHighlighted) => {
|
|
60743
60763
|
if (typeof cell === "string") {
|
|
60744
60764
|
return cell;
|
|
@@ -60765,7 +60785,7 @@ function ComparisonTableTooltips({
|
|
|
60765
60785
|
},
|
|
60766
60786
|
[]
|
|
60767
60787
|
);
|
|
60768
|
-
const tableContent =
|
|
60788
|
+
const tableContent = React8.useMemo(() => {
|
|
60769
60789
|
if (tableSlot) return tableSlot;
|
|
60770
60790
|
if (!rows || rows.length === 0) return null;
|
|
60771
60791
|
return /* @__PURE__ */ jsxs(Table, { className: cn("rounded border text-left shadow-lg", tableClassName), children: [
|
|
@@ -60791,14 +60811,14 @@ function ComparisonTableTooltips({
|
|
|
60791
60811
|
] }, idx)) })
|
|
60792
60812
|
] });
|
|
60793
60813
|
}, [tableSlot, rows, tableClassName, tableHeaderClassName, tableCellClassName, optionALabel, optionBLabel, renderCellContent]);
|
|
60794
|
-
const headingContent =
|
|
60814
|
+
const headingContent = React8.useMemo(() => {
|
|
60795
60815
|
if (!heading) return null;
|
|
60796
60816
|
if (typeof heading === "string") {
|
|
60797
60817
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
60798
60818
|
}
|
|
60799
60819
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60800
60820
|
}, [heading, headingClassName]);
|
|
60801
|
-
const descriptionContent =
|
|
60821
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60802
60822
|
if (!description) return null;
|
|
60803
60823
|
if (typeof description === "string") {
|
|
60804
60824
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -60840,7 +60860,7 @@ function ComparisonFeatureGrid({
|
|
|
60840
60860
|
pattern,
|
|
60841
60861
|
patternOpacity
|
|
60842
60862
|
}) {
|
|
60843
|
-
const renderStatusIcon =
|
|
60863
|
+
const renderStatusIcon = React8.useCallback((status) => {
|
|
60844
60864
|
if (status === true) {
|
|
60845
60865
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
60846
60866
|
}
|
|
@@ -60849,7 +60869,7 @@ function ComparisonFeatureGrid({
|
|
|
60849
60869
|
}
|
|
60850
60870
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
60851
60871
|
}, []);
|
|
60852
|
-
const gridContent =
|
|
60872
|
+
const gridContent = React8.useMemo(() => {
|
|
60853
60873
|
if (gridSlot) return gridSlot;
|
|
60854
60874
|
if (!features || features.length === 0) return null;
|
|
60855
60875
|
return /* @__PURE__ */ jsxs(
|
|
@@ -60915,14 +60935,14 @@ function ComparisonFeatureGrid({
|
|
|
60915
60935
|
optionBLabel,
|
|
60916
60936
|
renderStatusIcon
|
|
60917
60937
|
]);
|
|
60918
|
-
const headingContent =
|
|
60938
|
+
const headingContent = React8.useMemo(() => {
|
|
60919
60939
|
if (!heading) return null;
|
|
60920
60940
|
if (typeof heading === "string") {
|
|
60921
60941
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
60922
60942
|
}
|
|
60923
60943
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
60924
60944
|
}, [heading, headingClassName]);
|
|
60925
|
-
const descriptionContent =
|
|
60945
|
+
const descriptionContent = React8.useMemo(() => {
|
|
60926
60946
|
if (!description) return null;
|
|
60927
60947
|
if (typeof description === "string") {
|
|
60928
60948
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -60966,7 +60986,7 @@ function ComparisonAiModels({
|
|
|
60966
60986
|
optixFlowConfig
|
|
60967
60987
|
}) {
|
|
60968
60988
|
const [hoveredModel, setHoveredModel] = useState(null);
|
|
60969
|
-
const renderStatusIcon =
|
|
60989
|
+
const renderStatusIcon = React8.useCallback((status) => {
|
|
60970
60990
|
if (status === "best") {
|
|
60971
60991
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" });
|
|
60972
60992
|
}
|
|
@@ -60975,7 +60995,7 @@ function ComparisonAiModels({
|
|
|
60975
60995
|
}
|
|
60976
60996
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/minus", size: 16, className: "text-muted-foreground" });
|
|
60977
60997
|
}, []);
|
|
60978
|
-
const getCellClassName =
|
|
60998
|
+
const getCellClassName = React8.useCallback(
|
|
60979
60999
|
(status, modelKey) => {
|
|
60980
61000
|
const baseClass = "cursor-pointer py-4 text-center font-medium transition-all duration-300";
|
|
60981
61001
|
let statusClass = "";
|
|
@@ -60996,7 +61016,7 @@ function ComparisonAiModels({
|
|
|
60996
61016
|
},
|
|
60997
61017
|
[hoveredModel]
|
|
60998
61018
|
);
|
|
60999
|
-
const getSummaryCardClassName =
|
|
61019
|
+
const getSummaryCardClassName = React8.useCallback(
|
|
61000
61020
|
(modelKey) => {
|
|
61001
61021
|
const baseClass = "rounded border border-border/30 bg-background/50 p-3 transition-all duration-300";
|
|
61002
61022
|
if (hoveredModel === modelKey) {
|
|
@@ -61011,7 +61031,7 @@ function ComparisonAiModels({
|
|
|
61011
61031
|
},
|
|
61012
61032
|
[hoveredModel]
|
|
61013
61033
|
);
|
|
61014
|
-
const tableContent =
|
|
61034
|
+
const tableContent = React8.useMemo(() => {
|
|
61015
61035
|
if (tableSlot) return tableSlot;
|
|
61016
61036
|
if (!models || !comparisonData || comparisonData.length === 0) return null;
|
|
61017
61037
|
return /* @__PURE__ */ jsx(
|
|
@@ -61089,7 +61109,7 @@ function ComparisonAiModels({
|
|
|
61089
61109
|
getCellClassName,
|
|
61090
61110
|
renderStatusIcon
|
|
61091
61111
|
]);
|
|
61092
|
-
const analysisContent =
|
|
61112
|
+
const analysisContent = React8.useMemo(() => {
|
|
61093
61113
|
if (analysisSlot) return analysisSlot;
|
|
61094
61114
|
if (!models) return null;
|
|
61095
61115
|
return /* @__PURE__ */ jsx("div", { className: cn(
|
|
@@ -61130,14 +61150,14 @@ function ComparisonAiModels({
|
|
|
61130
61150
|
] })
|
|
61131
61151
|
] }) });
|
|
61132
61152
|
}, [analysisSlot, models, analysisClassName, getSummaryCardClassName]);
|
|
61133
|
-
const headingContent =
|
|
61153
|
+
const headingContent = React8.useMemo(() => {
|
|
61134
61154
|
if (!heading) return null;
|
|
61135
61155
|
if (typeof heading === "string") {
|
|
61136
61156
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
61137
61157
|
}
|
|
61138
61158
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
61139
61159
|
}, [heading, headingClassName]);
|
|
61140
|
-
const descriptionContent =
|
|
61160
|
+
const descriptionContent = React8.useMemo(() => {
|
|
61141
61161
|
if (!description) return null;
|
|
61142
61162
|
if (typeof description === "string") {
|
|
61143
61163
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -61187,7 +61207,7 @@ function ComparisonLegacyModern({
|
|
|
61187
61207
|
pattern,
|
|
61188
61208
|
patternOpacity
|
|
61189
61209
|
}) {
|
|
61190
|
-
const columnsContent =
|
|
61210
|
+
const columnsContent = React8.useMemo(() => {
|
|
61191
61211
|
if (columnsSlot) return columnsSlot;
|
|
61192
61212
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
61193
61213
|
return null;
|
|
@@ -61199,7 +61219,7 @@ function ComparisonLegacyModern({
|
|
|
61199
61219
|
legacyColumnClassName
|
|
61200
61220
|
), children: [
|
|
61201
61221
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
61202
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
61222
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
61203
61223
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
61204
61224
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
61205
61225
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -61216,7 +61236,7 @@ function ComparisonLegacyModern({
|
|
|
61216
61236
|
),
|
|
61217
61237
|
children: [
|
|
61218
61238
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
61219
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
61239
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
61220
61240
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
61221
61241
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
61222
61242
|
feature.text
|
|
@@ -61228,7 +61248,7 @@ function ComparisonLegacyModern({
|
|
|
61228
61248
|
)
|
|
61229
61249
|
] });
|
|
61230
61250
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
61231
|
-
const headingContent =
|
|
61251
|
+
const headingContent = React8.useMemo(() => {
|
|
61232
61252
|
if (!heading && !headingHighlight) return null;
|
|
61233
61253
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
61234
61254
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -61241,7 +61261,7 @@ function ComparisonLegacyModern({
|
|
|
61241
61261
|
] }) : headingHighlight)
|
|
61242
61262
|
] });
|
|
61243
61263
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
61244
|
-
const descriptionContent =
|
|
61264
|
+
const descriptionContent = React8.useMemo(() => {
|
|
61245
61265
|
if (!description) return null;
|
|
61246
61266
|
if (typeof description === "string") {
|
|
61247
61267
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -61414,7 +61434,7 @@ var NavbarMobileMenu = ({
|
|
|
61414
61434
|
closeIconClassName,
|
|
61415
61435
|
title = "Mobile Navigation"
|
|
61416
61436
|
}) => {
|
|
61417
|
-
|
|
61437
|
+
React8.useEffect(() => {
|
|
61418
61438
|
if (open) {
|
|
61419
61439
|
const originalOverflow = document.body.style.overflow;
|
|
61420
61440
|
document.body.style.overflow = "hidden";
|
|
@@ -61643,7 +61663,7 @@ var NavbarDropdownMenu = ({
|
|
|
61643
61663
|
patternOpacity,
|
|
61644
61664
|
optixFlowConfig
|
|
61645
61665
|
}) => {
|
|
61646
|
-
const [open, setOpen] =
|
|
61666
|
+
const [open, setOpen] = React8.useState(false);
|
|
61647
61667
|
const renderAuthActions = useMemo(() => {
|
|
61648
61668
|
if (authActionsSlot) return authActionsSlot;
|
|
61649
61669
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -61869,7 +61889,7 @@ var NavbarCenteredMenu = ({
|
|
|
61869
61889
|
patternOpacity,
|
|
61870
61890
|
optixFlowConfig
|
|
61871
61891
|
}) => {
|
|
61872
|
-
const [open, setOpen] =
|
|
61892
|
+
const [open, setOpen] = React8.useState(false);
|
|
61873
61893
|
const renderAuthActions = useMemo(() => {
|
|
61874
61894
|
if (authActionsSlot) return authActionsSlot;
|
|
61875
61895
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -62009,7 +62029,7 @@ var DesktopMenuItem = ({
|
|
|
62009
62029
|
index,
|
|
62010
62030
|
optixFlowConfig
|
|
62011
62031
|
}) => {
|
|
62012
|
-
const imagesRef =
|
|
62032
|
+
const imagesRef = React8.useRef([]);
|
|
62013
62033
|
const layout = link.layout || "simple-grid";
|
|
62014
62034
|
const handleMouseEnter = (event) => {
|
|
62015
62035
|
const index2 = Number(event.currentTarget.getAttribute("data-index"));
|
|
@@ -63244,7 +63264,7 @@ var NavbarFeatureGrid = ({
|
|
|
63244
63264
|
patternOpacity,
|
|
63245
63265
|
optixFlowConfig
|
|
63246
63266
|
}) => {
|
|
63247
|
-
const [open, setOpen] =
|
|
63267
|
+
const [open, setOpen] = React8.useState(false);
|
|
63248
63268
|
const renderAuthActions = useMemo(() => {
|
|
63249
63269
|
if (authActionsSlot) return authActionsSlot;
|
|
63250
63270
|
if (!authActions || authActions.length === 0) return null;
|
|
@@ -66454,7 +66474,7 @@ var DesktopMenuItem7 = ({
|
|
|
66454
66474
|
if (item.groups && item.groups.length > 0) {
|
|
66455
66475
|
return /* @__PURE__ */ jsxs(NavigationMenuItem, { value: `${index}`, children: [
|
|
66456
66476
|
/* @__PURE__ */ jsx(NavigationMenuTrigger, { children: item.label }),
|
|
66457
|
-
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(
|
|
66477
|
+
/* @__PURE__ */ jsx(NavigationMenuContent, { className: "p-0", children: /* @__PURE__ */ jsx("div", { className: "flex", children: item.groups.map((group, groupIndex) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
66458
66478
|
groupIndex > 0 && /* @__PURE__ */ jsx(
|
|
66459
66479
|
Separator,
|
|
66460
66480
|
{
|
|
@@ -67206,7 +67226,7 @@ var NavbarSimpleLinks = ({
|
|
|
67206
67226
|
const renderNavItems = useMemo(() => {
|
|
67207
67227
|
if (navItemsSlot) return navItemsSlot;
|
|
67208
67228
|
if (!navItems || navItems.length === 0) return null;
|
|
67209
|
-
return navItems.map((item) => /* @__PURE__ */ jsx(
|
|
67229
|
+
return navItems.map((item) => /* @__PURE__ */ jsx(React8.Fragment, { children: /* @__PURE__ */ jsx(NavigationMenuItem, { children: /* @__PURE__ */ jsx(
|
|
67210
67230
|
NavigationMenuLink,
|
|
67211
67231
|
{
|
|
67212
67232
|
"data-nav-item": item.name,
|
|
@@ -72235,7 +72255,7 @@ function PricingFullComparison({
|
|
|
72235
72255
|
resolvedPlanIds[index]
|
|
72236
72256
|
))
|
|
72237
72257
|
] }) }),
|
|
72238
|
-
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(
|
|
72258
|
+
/* @__PURE__ */ jsx("tbody", { children: categories.map((category) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
72239
72259
|
/* @__PURE__ */ jsx("tr", { className: cn(getNestedCardBg(background), getNestedCardTextColor(background), categoryRowClassName), children: /* @__PURE__ */ jsx(
|
|
72240
72260
|
"td",
|
|
72241
72261
|
{
|
|
@@ -76836,9 +76856,9 @@ function ProcessStickySteps({
|
|
|
76836
76856
|
);
|
|
76837
76857
|
}
|
|
76838
76858
|
var usePrevious = (value) => {
|
|
76839
|
-
const [prev, setPrev] =
|
|
76840
|
-
const ref =
|
|
76841
|
-
|
|
76859
|
+
const [prev, setPrev] = React8.useState(void 0);
|
|
76860
|
+
const ref = React8.useRef(value);
|
|
76861
|
+
React8.useEffect(() => {
|
|
76842
76862
|
setPrev(ref.current);
|
|
76843
76863
|
ref.current = value;
|
|
76844
76864
|
}, [value]);
|
|
@@ -76851,12 +76871,12 @@ var ProcessCard = ({
|
|
|
76851
76871
|
itemClassName,
|
|
76852
76872
|
background
|
|
76853
76873
|
}) => {
|
|
76854
|
-
const ref =
|
|
76874
|
+
const ref = React8.useRef(null);
|
|
76855
76875
|
const itemInView = useInView(ref, {
|
|
76856
76876
|
amount: 0,
|
|
76857
76877
|
margin: "0px 0px -60% 0px"
|
|
76858
76878
|
});
|
|
76859
|
-
|
|
76879
|
+
React8.useEffect(() => {
|
|
76860
76880
|
if (itemInView) {
|
|
76861
76881
|
setActive(index);
|
|
76862
76882
|
}
|
|
@@ -76906,7 +76926,7 @@ function ProcessScrollImage({
|
|
|
76906
76926
|
ctaText,
|
|
76907
76927
|
ctaUrl
|
|
76908
76928
|
}) {
|
|
76909
|
-
const [active, setActive] =
|
|
76929
|
+
const [active, setActive] = React8.useState(0);
|
|
76910
76930
|
const previousActive = usePrevious(active);
|
|
76911
76931
|
const resolvedHeading = title ?? heading;
|
|
76912
76932
|
const resolvedActions = actions ?? (ctaText && ctaUrl ? [
|
|
@@ -77089,7 +77109,7 @@ var ProcessCard2 = ({
|
|
|
77089
77109
|
itemClassName,
|
|
77090
77110
|
hoverImageClassName
|
|
77091
77111
|
}) => {
|
|
77092
|
-
const [isHovered, setIsHovered] =
|
|
77112
|
+
const [isHovered, setIsHovered] = React8.useState(false);
|
|
77093
77113
|
const titleText = typeof step.title === "string" ? step.title : `Step ${index + 1}`;
|
|
77094
77114
|
return /* @__PURE__ */ jsxs(
|
|
77095
77115
|
"li",
|
|
@@ -77447,7 +77467,7 @@ function ProcessExpandableTimeline({
|
|
|
77447
77467
|
spacing = "xl",
|
|
77448
77468
|
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8"
|
|
77449
77469
|
}) {
|
|
77450
|
-
const [expandedIndex, setExpandedIndex] =
|
|
77470
|
+
const [expandedIndex, setExpandedIndex] = React8.useState(null);
|
|
77451
77471
|
const toggleExpand = (index) => {
|
|
77452
77472
|
setExpandedIndex(expandedIndex === index ? null : index);
|
|
77453
77473
|
};
|
|
@@ -82237,7 +82257,7 @@ function ListAchievementsShowcase({
|
|
|
82237
82257
|
if (!items || items.length === 0) return null;
|
|
82238
82258
|
return /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col", itemsClassName), children: [
|
|
82239
82259
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
82240
|
-
items.map((item, index) => /* @__PURE__ */ jsxs(
|
|
82260
|
+
items.map((item, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
82241
82261
|
/* @__PURE__ */ jsxs(
|
|
82242
82262
|
"div",
|
|
82243
82263
|
{
|
|
@@ -82357,7 +82377,7 @@ function ListCareerTimeline({
|
|
|
82357
82377
|
const renderExperiences = useMemo(() => {
|
|
82358
82378
|
if (experiencesSlot) return experiencesSlot;
|
|
82359
82379
|
if (!experiences || experiences.length === 0) return null;
|
|
82360
|
-
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(
|
|
82380
|
+
return /* @__PURE__ */ jsx("div", { className: experiencesClassName, children: experiences.map((experience, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
82361
82381
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
82362
82382
|
/* @__PURE__ */ jsxs(
|
|
82363
82383
|
"div",
|
|
@@ -82378,7 +82398,7 @@ function ListCareerTimeline({
|
|
|
82378
82398
|
const renderAwards = useMemo(() => {
|
|
82379
82399
|
if (awardsSlot) return awardsSlot;
|
|
82380
82400
|
if (!awards || awards.length === 0) return null;
|
|
82381
|
-
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(
|
|
82401
|
+
return /* @__PURE__ */ jsx("div", { className: awardsClassName, children: awards.map((award, idx) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
82382
82402
|
/* @__PURE__ */ jsx(Separator, {}),
|
|
82383
82403
|
/* @__PURE__ */ jsxs(
|
|
82384
82404
|
"div",
|
|
@@ -82513,7 +82533,7 @@ function ListMetricsDashboard({
|
|
|
82513
82533
|
activeCategory: controlledActiveCategory,
|
|
82514
82534
|
onActiveCategoryChange
|
|
82515
82535
|
}) {
|
|
82516
|
-
const [internalActiveTab, setInternalActiveTab] =
|
|
82536
|
+
const [internalActiveTab, setInternalActiveTab] = React8.useState("all");
|
|
82517
82537
|
const activeTab = controlledActiveCategory ?? internalActiveTab;
|
|
82518
82538
|
const handleTabChange = (value) => {
|
|
82519
82539
|
if (onActiveCategoryChange) {
|
|
@@ -82997,7 +83017,7 @@ function ListSearchableGrid({
|
|
|
82997
83017
|
searchTerm: controlledSearchTerm,
|
|
82998
83018
|
onSearchTermChange
|
|
82999
83019
|
}) {
|
|
83000
|
-
const [internalSearchTerm, setInternalSearchTerm] =
|
|
83020
|
+
const [internalSearchTerm, setInternalSearchTerm] = React8.useState("");
|
|
83001
83021
|
const searchTerm = controlledSearchTerm ?? internalSearchTerm;
|
|
83002
83022
|
const handleSearchChange = (value) => {
|
|
83003
83023
|
if (onSearchTermChange) {
|
|
@@ -83006,7 +83026,7 @@ function ListSearchableGrid({
|
|
|
83006
83026
|
setInternalSearchTerm(value);
|
|
83007
83027
|
}
|
|
83008
83028
|
};
|
|
83009
|
-
const filteredItems =
|
|
83029
|
+
const filteredItems = React8.useMemo(() => {
|
|
83010
83030
|
if (!searchTerm) {
|
|
83011
83031
|
return items ?? [];
|
|
83012
83032
|
}
|
|
@@ -83206,7 +83226,7 @@ function OfferModalNewsletterDiscount({
|
|
|
83206
83226
|
buttonAction
|
|
83207
83227
|
}) {
|
|
83208
83228
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
83209
|
-
const renderCloseButton =
|
|
83229
|
+
const renderCloseButton = React8.useMemo(() => {
|
|
83210
83230
|
if (closeButtonSlot) return closeButtonSlot;
|
|
83211
83231
|
if (!closeButtonText) return null;
|
|
83212
83232
|
return /* @__PURE__ */ jsx("div", { className: "absolute end-1.5 top-1.5", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
@@ -83223,7 +83243,7 @@ function OfferModalNewsletterDiscount({
|
|
|
83223
83243
|
}
|
|
83224
83244
|
) }) });
|
|
83225
83245
|
}, [closeButtonSlot, closeButtonText, closeClassName]);
|
|
83226
|
-
const renderHeader =
|
|
83246
|
+
const renderHeader = React8.useMemo(() => {
|
|
83227
83247
|
if (headerSlot) return headerSlot;
|
|
83228
83248
|
if (!title) return null;
|
|
83229
83249
|
return /* @__PURE__ */ jsx(DialogHeader, { className: headerClassName, children: /* @__PURE__ */ jsx(
|
|
@@ -83237,7 +83257,7 @@ function OfferModalNewsletterDiscount({
|
|
|
83237
83257
|
}
|
|
83238
83258
|
) });
|
|
83239
83259
|
}, [headerSlot, title, headerClassName, titleClassName]);
|
|
83240
|
-
const renderForm =
|
|
83260
|
+
const renderForm = React8.useMemo(() => {
|
|
83241
83261
|
if (formSlot) return formSlot;
|
|
83242
83262
|
if (!formEngineSetup) return null;
|
|
83243
83263
|
const defaultButtonAction = {
|
|
@@ -83335,7 +83355,7 @@ function OfferModalMembershipImage({
|
|
|
83335
83355
|
buttonAction
|
|
83336
83356
|
}) {
|
|
83337
83357
|
const dialogProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
83338
|
-
const renderImage =
|
|
83358
|
+
const renderImage = React8.useMemo(() => {
|
|
83339
83359
|
if (imageSlot) return imageSlot;
|
|
83340
83360
|
if (!image) return null;
|
|
83341
83361
|
return /* @__PURE__ */ jsx(
|
|
@@ -83366,7 +83386,7 @@ function OfferModalMembershipImage({
|
|
|
83366
83386
|
imageClassName,
|
|
83367
83387
|
optixFlowConfig
|
|
83368
83388
|
]);
|
|
83369
|
-
const renderCloseButton =
|
|
83389
|
+
const renderCloseButton = React8.useMemo(() => {
|
|
83370
83390
|
if (closeButtonSlot) return closeButtonSlot;
|
|
83371
83391
|
return /* @__PURE__ */ jsx("div", { className: "absolute -end-px -top-px z-10", children: /* @__PURE__ */ jsx(DialogClose, { asChild: true, children: /* @__PURE__ */ jsx(
|
|
83372
83392
|
Pressable,
|
|
@@ -83382,7 +83402,7 @@ function OfferModalMembershipImage({
|
|
|
83382
83402
|
}
|
|
83383
83403
|
) }) });
|
|
83384
83404
|
}, [closeButtonSlot, closeClassName]);
|
|
83385
|
-
const renderForm =
|
|
83405
|
+
const renderForm = React8.useMemo(() => {
|
|
83386
83406
|
if (formSlot) return formSlot;
|
|
83387
83407
|
if (!formEngineSetup) return null;
|
|
83388
83408
|
const defaultButtonAction = {
|
|
@@ -83415,7 +83435,7 @@ function OfferModalMembershipImage({
|
|
|
83415
83435
|
}
|
|
83416
83436
|
);
|
|
83417
83437
|
}, [formSlot, formEngineSetup, buttonAction, formClassName]);
|
|
83418
|
-
const renderFooter =
|
|
83438
|
+
const renderFooter = React8.useMemo(() => {
|
|
83419
83439
|
if (footerSlot) return footerSlot;
|
|
83420
83440
|
if (!description) return null;
|
|
83421
83441
|
return /* @__PURE__ */ jsx(DialogFooter, { className: footerClassName, children: /* @__PURE__ */ jsx(
|
|
@@ -83621,7 +83641,7 @@ function OfferModalSheetNewsletter({
|
|
|
83621
83641
|
buttonAction
|
|
83622
83642
|
}) {
|
|
83623
83643
|
const sheetProps = open !== void 0 ? { open, onOpenChange } : { defaultOpen };
|
|
83624
|
-
const renderLogo =
|
|
83644
|
+
const renderLogo = React8.useMemo(() => {
|
|
83625
83645
|
if (logoSlot) return logoSlot;
|
|
83626
83646
|
if (!logo) return null;
|
|
83627
83647
|
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
@@ -83635,7 +83655,7 @@ function OfferModalSheetNewsletter({
|
|
|
83635
83655
|
}
|
|
83636
83656
|
);
|
|
83637
83657
|
}, [logoSlot, logo, logoClassName, optixFlowConfig]);
|
|
83638
|
-
const renderHeader =
|
|
83658
|
+
const renderHeader = React8.useMemo(() => {
|
|
83639
83659
|
if (headerSlot) return headerSlot;
|
|
83640
83660
|
return /* @__PURE__ */ jsxs(SheetHeader, { className: cn("gap-8 p-0", headerClassName), children: [
|
|
83641
83661
|
renderLogo,
|
|
@@ -83668,7 +83688,7 @@ function OfferModalSheetNewsletter({
|
|
|
83668
83688
|
description,
|
|
83669
83689
|
descriptionClassName
|
|
83670
83690
|
]);
|
|
83671
|
-
const renderForm =
|
|
83691
|
+
const renderForm = React8.useMemo(() => {
|
|
83672
83692
|
if (formSlot) return formSlot;
|
|
83673
83693
|
if (!formEngineSetup) return null;
|
|
83674
83694
|
const defaultButtonAction = {
|
|
@@ -83701,7 +83721,7 @@ function OfferModalSheetNewsletter({
|
|
|
83701
83721
|
}
|
|
83702
83722
|
);
|
|
83703
83723
|
}, [formSlot, formEngineSetup, buttonAction, formClassName]);
|
|
83704
|
-
const renderLegal =
|
|
83724
|
+
const renderLegal = React8.useMemo(() => {
|
|
83705
83725
|
if (legalSlot) return legalSlot;
|
|
83706
83726
|
if (!termsUrl || !termsText || !privacyUrl || !privacyText) return null;
|
|
83707
83727
|
return /* @__PURE__ */ jsxs("p", { className: cn("text-muted-foreground text-xs", legalClassName), children: [
|
|
@@ -83715,7 +83735,7 @@ function OfferModalSheetNewsletter({
|
|
|
83715
83735
|
"."
|
|
83716
83736
|
] });
|
|
83717
83737
|
}, [legalSlot, termsUrl, termsText, privacyUrl, privacyText, legalClassName]);
|
|
83718
|
-
const renderImage =
|
|
83738
|
+
const renderImage = React8.useMemo(() => {
|
|
83719
83739
|
if (imageSlot) return imageSlot;
|
|
83720
83740
|
if (!image) return null;
|
|
83721
83741
|
return /* @__PURE__ */ jsx("div", { className: cn("h-1/2 basis-1/2", imageWrapperClassName), children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1, className: "overflow-hidden", children: /* @__PURE__ */ jsx(
|
|
@@ -84302,10 +84322,10 @@ function ProjectDetailSidebarNavigation(props) {
|
|
|
84302
84322
|
heroImageClassName,
|
|
84303
84323
|
metadataClassName
|
|
84304
84324
|
} = props;
|
|
84305
|
-
const [activeSection, setActiveSection] =
|
|
84325
|
+
const [activeSection, setActiveSection] = React8.useState(
|
|
84306
84326
|
sections?.[0]?.id || ""
|
|
84307
84327
|
);
|
|
84308
|
-
|
|
84328
|
+
React8.useEffect(() => {
|
|
84309
84329
|
const handleScroll = () => {
|
|
84310
84330
|
const sectionElements = sections?.map(
|
|
84311
84331
|
(section) => document.getElementById(section.id)
|
|
@@ -87165,7 +87185,7 @@ function ProjectDetailTabbedCaseStudy(props) {
|
|
|
87165
87185
|
testimonialClassName,
|
|
87166
87186
|
toolsClassName
|
|
87167
87187
|
} = props;
|
|
87168
|
-
const [activeTab, setActiveTab] =
|
|
87188
|
+
const [activeTab, setActiveTab] = React8.useState(tabs?.[0]?.id || "");
|
|
87169
87189
|
const renderedBackAction = useMemo(() => {
|
|
87170
87190
|
if (backActionSlot) return backActionSlot;
|
|
87171
87191
|
if (!backAction) return null;
|
|
@@ -87553,7 +87573,7 @@ function RevealImage({
|
|
|
87553
87573
|
index,
|
|
87554
87574
|
optixFlowConfig
|
|
87555
87575
|
}) {
|
|
87556
|
-
const ref =
|
|
87576
|
+
const ref = React8.useRef(null);
|
|
87557
87577
|
const { scrollYProgress } = useScroll({
|
|
87558
87578
|
target: ref,
|
|
87559
87579
|
offset: ["start end", "end start"]
|
|
@@ -87748,7 +87768,7 @@ function ParallaxSection({
|
|
|
87748
87768
|
index,
|
|
87749
87769
|
optixFlowConfig
|
|
87750
87770
|
}) {
|
|
87751
|
-
const ref =
|
|
87771
|
+
const ref = React8.useRef(null);
|
|
87752
87772
|
const { scrollYProgress } = useScroll({
|
|
87753
87773
|
target: ref,
|
|
87754
87774
|
offset: ["start end", "end start"]
|
|
@@ -87821,7 +87841,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
87821
87841
|
heroImageClassName,
|
|
87822
87842
|
sectionsClassName
|
|
87823
87843
|
} = props;
|
|
87824
|
-
const heroRef =
|
|
87844
|
+
const heroRef = React8.useRef(null);
|
|
87825
87845
|
const { scrollYProgress } = useScroll({
|
|
87826
87846
|
target: heroRef,
|
|
87827
87847
|
offset: ["start start", "end start"]
|
|
@@ -88359,7 +88379,7 @@ function IndustriesExpandableShowcase({
|
|
|
88359
88379
|
patternClassName,
|
|
88360
88380
|
optixFlowConfig
|
|
88361
88381
|
}) {
|
|
88362
|
-
const [activeContractor, setActiveContractor] =
|
|
88382
|
+
const [activeContractor, setActiveContractor] = React8.useState(
|
|
88363
88383
|
contractors?.[0]?.id || ""
|
|
88364
88384
|
);
|
|
88365
88385
|
const handleContractorHover = (contractorId) => {
|
|
@@ -89027,7 +89047,7 @@ function ResourceDetailDocumentSidebar({
|
|
|
89027
89047
|
}) {
|
|
89028
89048
|
const renderedBreadcrumbs = useMemo(() => {
|
|
89029
89049
|
if (breadcrumbsSlot) return breadcrumbsSlot;
|
|
89030
|
-
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(
|
|
89050
|
+
return /* @__PURE__ */ jsx(Breadcrumb, { className: breadcrumbsClassName, children: /* @__PURE__ */ jsx(BreadcrumbList, { children: breadcrumbs?.map((crumb, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
89031
89051
|
/* @__PURE__ */ jsx(BreadcrumbItem, { children: !crumb.href ? /* @__PURE__ */ jsx(BreadcrumbPage, { children: typeof crumb.label === "string" ? crumb.label : crumb.label }) : /* @__PURE__ */ jsx(BreadcrumbLink, { href: crumb.href, children: index === 0 ? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/home", size: 16 }) : typeof crumb.label === "string" ? crumb.label : crumb.label }) }),
|
|
89032
89052
|
index < (breadcrumbs?.length || 0) - 1 && /* @__PURE__ */ jsx(BreadcrumbSeparator, {})
|
|
89033
89053
|
] }, index)) }) });
|
|
@@ -92435,8 +92455,8 @@ function ServicesListTableHover({
|
|
|
92435
92455
|
patternOpacity,
|
|
92436
92456
|
optixFlowConfig
|
|
92437
92457
|
}) {
|
|
92438
|
-
const [hoveredIndex, setHoveredIndex] =
|
|
92439
|
-
const [mousePosition, setMousePosition] =
|
|
92458
|
+
const [hoveredIndex, setHoveredIndex] = React8.useState(null);
|
|
92459
|
+
const [mousePosition, setMousePosition] = React8.useState({ x: 0, y: 0 });
|
|
92440
92460
|
const handleMouseMove = (e) => {
|
|
92441
92461
|
setMousePosition({ x: e.clientX, y: e.clientY });
|
|
92442
92462
|
};
|
|
@@ -92686,7 +92706,7 @@ function ServicesListStickyImage({
|
|
|
92686
92706
|
patternOpacity,
|
|
92687
92707
|
optixFlowConfig
|
|
92688
92708
|
}) {
|
|
92689
|
-
const [activeIndex, setActiveIndex] =
|
|
92709
|
+
const [activeIndex, setActiveIndex] = React8.useState(0);
|
|
92690
92710
|
const renderServices = () => {
|
|
92691
92711
|
if (servicesSlot) return servicesSlot;
|
|
92692
92712
|
if (!services || services.length === 0) return null;
|
|
@@ -92938,8 +92958,8 @@ function ServicesListVideoShowcase({
|
|
|
92938
92958
|
patternOpacity,
|
|
92939
92959
|
optixFlowConfig
|
|
92940
92960
|
}) {
|
|
92941
|
-
const [playingIndex, setPlayingIndex] =
|
|
92942
|
-
const videoRefs =
|
|
92961
|
+
const [playingIndex, setPlayingIndex] = React8.useState(null);
|
|
92962
|
+
const videoRefs = React8.useRef([]);
|
|
92943
92963
|
const handleMouseEnter = (index) => {
|
|
92944
92964
|
setPlayingIndex(index);
|
|
92945
92965
|
videoRefs.current[index]?.play();
|
|
@@ -96226,7 +96246,7 @@ function StatsCircularProgress({
|
|
|
96226
96246
|
statInfoClassName
|
|
96227
96247
|
}) {
|
|
96228
96248
|
const effectiveDefaultCategory = defaultCategory || (categories && categories.length > 0 ? categories[0].id : "");
|
|
96229
|
-
const [category, setCategory] =
|
|
96249
|
+
const [category, setCategory] = React8.useState(effectiveDefaultCategory);
|
|
96230
96250
|
const badgeContent = useMemo(() => {
|
|
96231
96251
|
if (badgeSlot) return badgeSlot;
|
|
96232
96252
|
if (!badge) return null;
|
|
@@ -96519,8 +96539,8 @@ function StatsCardGroup({
|
|
|
96519
96539
|
);
|
|
96520
96540
|
}
|
|
96521
96541
|
function useAnimatedCounter(endValue, duration = 2e3, isVisible) {
|
|
96522
|
-
const [count, setCount] =
|
|
96523
|
-
|
|
96542
|
+
const [count, setCount] = React8.useState(0);
|
|
96543
|
+
React8.useEffect(() => {
|
|
96524
96544
|
if (!isVisible) return;
|
|
96525
96545
|
let startTime = null;
|
|
96526
96546
|
let animationFrame;
|
|
@@ -96608,9 +96628,9 @@ function StatsAnimatedCounter({
|
|
|
96608
96628
|
statLabelClassName,
|
|
96609
96629
|
statIconClassName
|
|
96610
96630
|
}) {
|
|
96611
|
-
const [isVisible, setIsVisible] =
|
|
96612
|
-
const sectionRef =
|
|
96613
|
-
|
|
96631
|
+
const [isVisible, setIsVisible] = React8.useState(false);
|
|
96632
|
+
const sectionRef = React8.useRef(null);
|
|
96633
|
+
React8.useEffect(() => {
|
|
96614
96634
|
const observer = new IntersectionObserver(
|
|
96615
96635
|
([entry]) => {
|
|
96616
96636
|
if (entry.isIntersecting) {
|
|
@@ -96698,8 +96718,8 @@ function StatsAnimatedCounter({
|
|
|
96698
96718
|
);
|
|
96699
96719
|
}
|
|
96700
96720
|
function useNumberTicker(endValue, duration = 2500, isVisible, decimals = 0) {
|
|
96701
|
-
const [displayValue, setDisplayValue] =
|
|
96702
|
-
|
|
96721
|
+
const [displayValue, setDisplayValue] = React8.useState("0");
|
|
96722
|
+
React8.useEffect(() => {
|
|
96703
96723
|
if (!isVisible) return;
|
|
96704
96724
|
let startTime = null;
|
|
96705
96725
|
let animationFrame;
|
|
@@ -96814,9 +96834,9 @@ function StatsNumberTicker({
|
|
|
96814
96834
|
statLabelClassName,
|
|
96815
96835
|
statDescriptionClassName
|
|
96816
96836
|
}) {
|
|
96817
|
-
const [isVisible, setIsVisible] =
|
|
96818
|
-
const sectionRef =
|
|
96819
|
-
|
|
96837
|
+
const [isVisible, setIsVisible] = React8.useState(false);
|
|
96838
|
+
const sectionRef = React8.useRef(null);
|
|
96839
|
+
React8.useEffect(() => {
|
|
96820
96840
|
const observer = new IntersectionObserver(
|
|
96821
96841
|
([entry]) => {
|
|
96822
96842
|
if (entry.isIntersecting) {
|
|
@@ -97075,9 +97095,9 @@ function StatsBarComparison({
|
|
|
97075
97095
|
barValueClassName,
|
|
97076
97096
|
barTrackClassName
|
|
97077
97097
|
}) {
|
|
97078
|
-
const [isVisible, setIsVisible] =
|
|
97079
|
-
const sectionRef =
|
|
97080
|
-
|
|
97098
|
+
const [isVisible, setIsVisible] = React8.useState(!animate);
|
|
97099
|
+
const sectionRef = React8.useRef(null);
|
|
97100
|
+
React8.useEffect(() => {
|
|
97081
97101
|
if (!animate) return;
|
|
97082
97102
|
const observer = new IntersectionObserver(
|
|
97083
97103
|
([entry]) => {
|
|
@@ -97255,7 +97275,7 @@ function TimelineVerticalIconDashed({
|
|
|
97255
97275
|
"mx-auto flex flex-col items-center justify-center text-center sm:max-w-xl",
|
|
97256
97276
|
stepsClassName
|
|
97257
97277
|
),
|
|
97258
|
-
children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
97278
|
+
children: steps.map((step, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
97259
97279
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center", stepClassName), children: [
|
|
97260
97280
|
/* @__PURE__ */ jsx(
|
|
97261
97281
|
"span",
|
|
@@ -97522,7 +97542,7 @@ function TimelineTwoColumnFeatured({
|
|
|
97522
97542
|
style,
|
|
97523
97543
|
optixFlowConfig
|
|
97524
97544
|
}) {
|
|
97525
|
-
const renderActions =
|
|
97545
|
+
const renderActions = React8.useMemo(() => {
|
|
97526
97546
|
if (actionsSlot) {
|
|
97527
97547
|
return actionsSlot;
|
|
97528
97548
|
}
|
|
@@ -97650,7 +97670,7 @@ function TimelineTwoColumnFeatured({
|
|
|
97650
97670
|
}
|
|
97651
97671
|
);
|
|
97652
97672
|
}
|
|
97653
|
-
var DiagonalPattern =
|
|
97673
|
+
var DiagonalPattern = React8.memo(({
|
|
97654
97674
|
className,
|
|
97655
97675
|
patternOpacity = 0.15
|
|
97656
97676
|
}) => {
|
|
@@ -97689,7 +97709,7 @@ function TimelineAlternatingDiagonal({
|
|
|
97689
97709
|
style,
|
|
97690
97710
|
optixFlowConfig
|
|
97691
97711
|
}) {
|
|
97692
|
-
const renderedBadge =
|
|
97712
|
+
const renderedBadge = React8.useMemo(() => {
|
|
97693
97713
|
if (badgeSlot) {
|
|
97694
97714
|
return badgeSlot;
|
|
97695
97715
|
}
|
|
@@ -98067,7 +98087,7 @@ function TimelineProductivityList({
|
|
|
98067
98087
|
}
|
|
98068
98088
|
);
|
|
98069
98089
|
}
|
|
98070
|
-
var ProcessBar =
|
|
98090
|
+
var ProcessBar = React8.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("div", { className: "relative w-full scale-75", children: /* @__PURE__ */ jsx("div", { className: "flex items-center justify-between", children: steps.map((step, index) => /* @__PURE__ */ jsxs(React8.Fragment, { children: [
|
|
98071
98091
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col items-center", children: /* @__PURE__ */ jsx(
|
|
98072
98092
|
motion.div,
|
|
98073
98093
|
{
|
|
@@ -98094,7 +98114,7 @@ var ProcessBar = React32.memo(({ currentStep, steps }) => /* @__PURE__ */ jsx("d
|
|
|
98094
98114
|
)
|
|
98095
98115
|
] })
|
|
98096
98116
|
] }, index)) }) }));
|
|
98097
|
-
var StepperContent =
|
|
98117
|
+
var StepperContent = React8.memo(({ step, optixFlowConfig, imageClassName, descriptionClassName, background }) => {
|
|
98098
98118
|
return /* @__PURE__ */ jsxs("div", { className: cn("my-4 flex min-h-[400px] w-full flex-col items-center justify-center overflow-hidden rounded-2xl p-6 text-center", getNestedCardBg(background), getNestedCardTextColor(background)), children: [
|
|
98099
98119
|
/* @__PURE__ */ jsx(
|
|
98100
98120
|
motion.div,
|
|
@@ -98127,7 +98147,7 @@ var StepperContent = React32.memo(({ step, optixFlowConfig, imageClassName, desc
|
|
|
98127
98147
|
)
|
|
98128
98148
|
] });
|
|
98129
98149
|
});
|
|
98130
|
-
var NavButtons =
|
|
98150
|
+
var NavButtons = React8.memo(({ handlePrev, handleNext }) => /* @__PURE__ */ jsxs("div", { className: "flex w-full justify-end gap-3 tracking-tight", children: [
|
|
98131
98151
|
/* @__PURE__ */ jsxs(
|
|
98132
98152
|
Pressable,
|
|
98133
98153
|
{
|
|
@@ -98178,10 +98198,10 @@ function TimelineStepperAnimated({
|
|
|
98178
98198
|
}) {
|
|
98179
98199
|
const safeInitialStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(initialStep ?? 0, (steps?.length ?? 1) - 1)) : 0;
|
|
98180
98200
|
const [currentStep, setCurrentStep] = useState(safeInitialStep);
|
|
98181
|
-
const handleNext =
|
|
98201
|
+
const handleNext = React8.useCallback(() => {
|
|
98182
98202
|
setCurrentStep((prev) => Math.min(prev + 1, (steps?.length ?? 1) - 1));
|
|
98183
98203
|
}, [steps?.length]);
|
|
98184
|
-
const handlePrev =
|
|
98204
|
+
const handlePrev = React8.useCallback(() => {
|
|
98185
98205
|
setCurrentStep((prev) => Math.max(prev - 1, 0));
|
|
98186
98206
|
}, []);
|
|
98187
98207
|
const safeCurrentStep = (steps?.length ?? 0) > 0 ? Math.max(0, Math.min(currentStep, (steps?.length ?? 1) - 1)) : 0;
|
|
@@ -98890,7 +98910,7 @@ function TimelineTabbedPhases({
|
|
|
98890
98910
|
style,
|
|
98891
98911
|
optixFlowConfig
|
|
98892
98912
|
}) {
|
|
98893
|
-
const renderDownloadButton =
|
|
98913
|
+
const renderDownloadButton = React8.useMemo(() => {
|
|
98894
98914
|
if (downloadSlot) {
|
|
98895
98915
|
return downloadSlot;
|
|
98896
98916
|
}
|
|
@@ -99110,7 +99130,7 @@ function TimelineProductLaunch({
|
|
|
99110
99130
|
id,
|
|
99111
99131
|
style
|
|
99112
99132
|
}) {
|
|
99113
|
-
const renderCta =
|
|
99133
|
+
const renderCta = React8.useMemo(() => {
|
|
99114
99134
|
if (ctaSlot) {
|
|
99115
99135
|
return ctaSlot;
|
|
99116
99136
|
}
|
|
@@ -99568,9 +99588,9 @@ function LinkTreeBlock({
|
|
|
99568
99588
|
}) {
|
|
99569
99589
|
const resolvedBackground = background;
|
|
99570
99590
|
const resolvedPattern = pattern ?? backgroundPattern;
|
|
99571
|
-
const [lightboxOpen, setLightboxOpen] =
|
|
99572
|
-
const [lightboxIndex, setLightboxIndex] =
|
|
99573
|
-
const lightboxItems =
|
|
99591
|
+
const [lightboxOpen, setLightboxOpen] = React8.useState(false);
|
|
99592
|
+
const [lightboxIndex, setLightboxIndex] = React8.useState(0);
|
|
99593
|
+
const lightboxItems = React8.useMemo(() => {
|
|
99574
99594
|
if (!mediaGallery || mediaGallery.length === 0) return [];
|
|
99575
99595
|
return mediaGallery.slice(0, mediaGalleryLimit).map((item, index) => ({
|
|
99576
99596
|
id: item.id ?? `media-${index}`,
|
|
@@ -99582,11 +99602,11 @@ function LinkTreeBlock({
|
|
|
99582
99602
|
share: true
|
|
99583
99603
|
}));
|
|
99584
99604
|
}, [mediaGallery, mediaGalleryLimit]);
|
|
99585
|
-
const handleMediaClick =
|
|
99605
|
+
const handleMediaClick = React8.useCallback((index) => {
|
|
99586
99606
|
setLightboxIndex(index);
|
|
99587
99607
|
setLightboxOpen(true);
|
|
99588
99608
|
}, []);
|
|
99589
|
-
const handleLightboxClose =
|
|
99609
|
+
const handleLightboxClose = React8.useCallback(() => {
|
|
99590
99610
|
setLightboxOpen(false);
|
|
99591
99611
|
}, []);
|
|
99592
99612
|
const resolveImage = (value, fallbackAlt) => {
|
|
@@ -99598,7 +99618,7 @@ function LinkTreeBlock({
|
|
|
99598
99618
|
};
|
|
99599
99619
|
const nameForAlt = typeof brandName === "string" ? brandName : "Brand avatar";
|
|
99600
99620
|
const resolvedAvatar = resolveImage(brandAvatar || brandLogo, nameForAlt);
|
|
99601
|
-
const renderBrandHeader =
|
|
99621
|
+
const renderBrandHeader = React8.useMemo(() => {
|
|
99602
99622
|
if (brandSlot) return brandSlot;
|
|
99603
99623
|
return /* @__PURE__ */ jsxs(
|
|
99604
99624
|
"div",
|
|
@@ -99685,7 +99705,7 @@ function LinkTreeBlock({
|
|
|
99685
99705
|
brandTagline,
|
|
99686
99706
|
taglineClassName
|
|
99687
99707
|
]);
|
|
99688
|
-
const renderLinks =
|
|
99708
|
+
const renderLinks = React8.useMemo(() => {
|
|
99689
99709
|
if (linksSlot) return linksSlot;
|
|
99690
99710
|
if (!links || links.length === 0) return null;
|
|
99691
99711
|
return /* @__PURE__ */ jsx("div", { className: cn("space-y-3", linksClassName), children: links.map((link, index) => {
|
|
@@ -99801,7 +99821,7 @@ function LinkTreeBlock({
|
|
|
99801
99821
|
linkBadgeClassName,
|
|
99802
99822
|
linkChevronClassName
|
|
99803
99823
|
]);
|
|
99804
|
-
const renderMediaGallery =
|
|
99824
|
+
const renderMediaGallery = React8.useMemo(() => {
|
|
99805
99825
|
if (mediaGallerySlot) return mediaGallerySlot;
|
|
99806
99826
|
if (!mediaGallery || mediaGallery.length === 0) return null;
|
|
99807
99827
|
const items = mediaGallery.slice(0, mediaGalleryLimit);
|
|
@@ -99914,7 +99934,7 @@ function LinkTreeBlock({
|
|
|
99914
99934
|
mediaGalleryOverlayClassName,
|
|
99915
99935
|
mediaGalleryPlayIconClassName
|
|
99916
99936
|
]);
|
|
99917
|
-
const renderSocialLinks =
|
|
99937
|
+
const renderSocialLinks = React8.useMemo(() => {
|
|
99918
99938
|
if (socialLinksSlot) return socialLinksSlot;
|
|
99919
99939
|
if (!socialLinks || socialLinks.length === 0) return null;
|
|
99920
99940
|
return /* @__PURE__ */ jsx(
|
|
@@ -99947,7 +99967,7 @@ function LinkTreeBlock({
|
|
|
99947
99967
|
socialIconClassName,
|
|
99948
99968
|
socialLinkClassName
|
|
99949
99969
|
]);
|
|
99950
|
-
const renderFooter =
|
|
99970
|
+
const renderFooter = React8.useMemo(() => {
|
|
99951
99971
|
if (footerSlot) return footerSlot;
|
|
99952
99972
|
if (!footerAction) return null;
|
|
99953
99973
|
const resolvedFooterAction = footerAction;
|