@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
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var icon = require('@page-speed/icon');
|
|
@@ -25,7 +25,7 @@ function _interopNamespace(e) {
|
|
|
25
25
|
return Object.freeze(n);
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
var
|
|
28
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
29
29
|
|
|
30
30
|
// components/blocks/comparison/comparison-feature-grid.tsx
|
|
31
31
|
function cn(...inputs) {
|
|
@@ -62,9 +62,13 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
62
62
|
return isDark ? "text-foreground" : "";
|
|
63
63
|
}
|
|
64
64
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
65
|
-
|
|
65
|
+
var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
|
|
66
|
+
apiKey,
|
|
67
|
+
...props
|
|
68
|
+
}) {
|
|
66
69
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
67
|
-
}
|
|
70
|
+
});
|
|
71
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
68
72
|
var maxWidthStyles = {
|
|
69
73
|
sm: "max-w-screen-sm",
|
|
70
74
|
md: "max-w-screen-md",
|
|
@@ -74,7 +78,7 @@ var maxWidthStyles = {
|
|
|
74
78
|
"4xl": "max-w-[1536px]",
|
|
75
79
|
full: "max-w-full"
|
|
76
80
|
};
|
|
77
|
-
var Container =
|
|
81
|
+
var Container = React4__namespace.default.forwardRef(
|
|
78
82
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
79
83
|
const Component = as;
|
|
80
84
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -380,7 +384,7 @@ var spacingStyles = {
|
|
|
380
384
|
};
|
|
381
385
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
382
386
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
383
|
-
var Section =
|
|
387
|
+
var Section = React4__namespace.default.forwardRef(
|
|
384
388
|
({
|
|
385
389
|
id,
|
|
386
390
|
title,
|
|
@@ -460,7 +464,7 @@ function ComparisonFeatureGrid({
|
|
|
460
464
|
pattern,
|
|
461
465
|
patternOpacity
|
|
462
466
|
}) {
|
|
463
|
-
const renderStatusIcon =
|
|
467
|
+
const renderStatusIcon = React4__namespace.useCallback((status) => {
|
|
464
468
|
if (status === true) {
|
|
465
469
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
466
470
|
}
|
|
@@ -469,7 +473,7 @@ function ComparisonFeatureGrid({
|
|
|
469
473
|
}
|
|
470
474
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
471
475
|
}, []);
|
|
472
|
-
const gridContent =
|
|
476
|
+
const gridContent = React4__namespace.useMemo(() => {
|
|
473
477
|
if (gridSlot) return gridSlot;
|
|
474
478
|
if (!features || features.length === 0) return null;
|
|
475
479
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -535,14 +539,14 @@ function ComparisonFeatureGrid({
|
|
|
535
539
|
optionBLabel,
|
|
536
540
|
renderStatusIcon
|
|
537
541
|
]);
|
|
538
|
-
const headingContent =
|
|
542
|
+
const headingContent = React4__namespace.useMemo(() => {
|
|
539
543
|
if (!heading) return null;
|
|
540
544
|
if (typeof heading === "string") {
|
|
541
545
|
return /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
542
546
|
}
|
|
543
547
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading });
|
|
544
548
|
}, [heading, headingClassName]);
|
|
545
|
-
const descriptionContent =
|
|
549
|
+
const descriptionContent = React4__namespace.useMemo(() => {
|
|
546
550
|
if (!description) return null;
|
|
547
551
|
if (typeof description === "string") {
|
|
548
552
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React4 from 'react';
|
|
3
|
+
import React4__default from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Icon } from '@page-speed/icon';
|
|
@@ -41,9 +41,13 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
41
41
|
return isDark ? "text-foreground" : "";
|
|
42
42
|
}
|
|
43
43
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
44
|
-
|
|
44
|
+
var DynamicIcon = React4.memo(function DynamicIcon2({
|
|
45
|
+
apiKey,
|
|
46
|
+
...props
|
|
47
|
+
}) {
|
|
45
48
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
46
|
-
}
|
|
49
|
+
});
|
|
50
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
47
51
|
var maxWidthStyles = {
|
|
48
52
|
sm: "max-w-screen-sm",
|
|
49
53
|
md: "max-w-screen-md",
|
|
@@ -53,7 +57,7 @@ var maxWidthStyles = {
|
|
|
53
57
|
"4xl": "max-w-[1536px]",
|
|
54
58
|
full: "max-w-full"
|
|
55
59
|
};
|
|
56
|
-
var Container =
|
|
60
|
+
var Container = React4__default.forwardRef(
|
|
57
61
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
58
62
|
const Component = as;
|
|
59
63
|
return /* @__PURE__ */ jsx(
|
|
@@ -359,7 +363,7 @@ var spacingStyles = {
|
|
|
359
363
|
};
|
|
360
364
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
361
365
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
362
|
-
var Section =
|
|
366
|
+
var Section = React4__default.forwardRef(
|
|
363
367
|
({
|
|
364
368
|
id,
|
|
365
369
|
title,
|
|
@@ -439,7 +443,7 @@ function ComparisonFeatureGrid({
|
|
|
439
443
|
pattern,
|
|
440
444
|
patternOpacity
|
|
441
445
|
}) {
|
|
442
|
-
const renderStatusIcon =
|
|
446
|
+
const renderStatusIcon = React4.useCallback((status) => {
|
|
443
447
|
if (status === true) {
|
|
444
448
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/check", size: 20, className: "text-success" });
|
|
445
449
|
}
|
|
@@ -448,7 +452,7 @@ function ComparisonFeatureGrid({
|
|
|
448
452
|
}
|
|
449
453
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 20, className: "text-destructive" });
|
|
450
454
|
}, []);
|
|
451
|
-
const gridContent =
|
|
455
|
+
const gridContent = React4.useMemo(() => {
|
|
452
456
|
if (gridSlot) return gridSlot;
|
|
453
457
|
if (!features || features.length === 0) return null;
|
|
454
458
|
return /* @__PURE__ */ jsxs(
|
|
@@ -514,14 +518,14 @@ function ComparisonFeatureGrid({
|
|
|
514
518
|
optionBLabel,
|
|
515
519
|
renderStatusIcon
|
|
516
520
|
]);
|
|
517
|
-
const headingContent =
|
|
521
|
+
const headingContent = React4.useMemo(() => {
|
|
518
522
|
if (!heading) return null;
|
|
519
523
|
if (typeof heading === "string") {
|
|
520
524
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-center text-4xl font-semibold", headingClassName), children: heading });
|
|
521
525
|
}
|
|
522
526
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
523
527
|
}, [heading, headingClassName]);
|
|
524
|
-
const descriptionContent =
|
|
528
|
+
const descriptionContent = React4.useMemo(() => {
|
|
525
529
|
if (!description) return null;
|
|
526
530
|
if (typeof description === "string") {
|
|
527
531
|
return /* @__PURE__ */ jsx("p", { className: cn("mb-8 text-center text-muted-foreground", descriptionClassName), children: description });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var icon = require('@page-speed/icon');
|
|
@@ -27,16 +27,20 @@ function _interopNamespace(e) {
|
|
|
27
27
|
return Object.freeze(n);
|
|
28
28
|
}
|
|
29
29
|
|
|
30
|
-
var
|
|
30
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
31
31
|
|
|
32
32
|
// components/blocks/comparison/comparison-grid-badges.tsx
|
|
33
33
|
function cn(...inputs) {
|
|
34
34
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
35
|
}
|
|
36
36
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
37
|
-
|
|
37
|
+
var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
|
|
38
|
+
apiKey,
|
|
39
|
+
...props
|
|
40
|
+
}) {
|
|
38
41
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
39
|
-
}
|
|
42
|
+
});
|
|
43
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
40
44
|
var badgeVariants = classVarianceAuthority.cva(
|
|
41
45
|
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
42
46
|
{
|
|
@@ -78,7 +82,7 @@ var maxWidthStyles = {
|
|
|
78
82
|
"4xl": "max-w-[1536px]",
|
|
79
83
|
full: "max-w-full"
|
|
80
84
|
};
|
|
81
|
-
var Container =
|
|
85
|
+
var Container = React4__namespace.default.forwardRef(
|
|
82
86
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
83
87
|
const Component = as;
|
|
84
88
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -384,7 +388,7 @@ var spacingStyles = {
|
|
|
384
388
|
};
|
|
385
389
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
386
390
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
387
|
-
var Section =
|
|
391
|
+
var Section = React4__namespace.default.forwardRef(
|
|
388
392
|
({
|
|
389
393
|
id,
|
|
390
394
|
title,
|
|
@@ -464,7 +468,7 @@ function ComparisonGridBadges({
|
|
|
464
468
|
pattern,
|
|
465
469
|
patternOpacity
|
|
466
470
|
}) {
|
|
467
|
-
const featuresContent =
|
|
471
|
+
const featuresContent = React4__namespace.useMemo(() => {
|
|
468
472
|
if (featuresSlot) return featuresSlot;
|
|
469
473
|
if (!features || features.length === 0) return null;
|
|
470
474
|
return features.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -511,14 +515,14 @@ function ComparisonGridBadges({
|
|
|
511
515
|
idx
|
|
512
516
|
));
|
|
513
517
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
514
|
-
const headingContent =
|
|
518
|
+
const headingContent = React4__namespace.useMemo(() => {
|
|
515
519
|
if (!heading) return null;
|
|
516
520
|
if (typeof heading === "string") {
|
|
517
521
|
return /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
518
522
|
}
|
|
519
523
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading });
|
|
520
524
|
}, [heading, headingClassName]);
|
|
521
|
-
const descriptionContent =
|
|
525
|
+
const descriptionContent = React4__namespace.useMemo(() => {
|
|
522
526
|
if (!description) return null;
|
|
523
527
|
if (typeof description === "string") {
|
|
524
528
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React4 from 'react';
|
|
3
|
+
import React4__default from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Icon } from '@page-speed/icon';
|
|
@@ -13,9 +13,13 @@ function cn(...inputs) {
|
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
15
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
16
|
-
|
|
16
|
+
var DynamicIcon = React4.memo(function DynamicIcon2({
|
|
17
|
+
apiKey,
|
|
18
|
+
...props
|
|
19
|
+
}) {
|
|
17
20
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
18
|
-
}
|
|
21
|
+
});
|
|
22
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
19
23
|
var badgeVariants = cva(
|
|
20
24
|
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
21
25
|
{
|
|
@@ -57,7 +61,7 @@ var maxWidthStyles = {
|
|
|
57
61
|
"4xl": "max-w-[1536px]",
|
|
58
62
|
full: "max-w-full"
|
|
59
63
|
};
|
|
60
|
-
var Container =
|
|
64
|
+
var Container = React4__default.forwardRef(
|
|
61
65
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
62
66
|
const Component = as;
|
|
63
67
|
return /* @__PURE__ */ jsx(
|
|
@@ -363,7 +367,7 @@ var spacingStyles = {
|
|
|
363
367
|
};
|
|
364
368
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
365
369
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
366
|
-
var Section =
|
|
370
|
+
var Section = React4__default.forwardRef(
|
|
367
371
|
({
|
|
368
372
|
id,
|
|
369
373
|
title,
|
|
@@ -443,7 +447,7 @@ function ComparisonGridBadges({
|
|
|
443
447
|
pattern,
|
|
444
448
|
patternOpacity
|
|
445
449
|
}) {
|
|
446
|
-
const featuresContent =
|
|
450
|
+
const featuresContent = React4.useMemo(() => {
|
|
447
451
|
if (featuresSlot) return featuresSlot;
|
|
448
452
|
if (!features || features.length === 0) return null;
|
|
449
453
|
return features.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
@@ -490,14 +494,14 @@ function ComparisonGridBadges({
|
|
|
490
494
|
idx
|
|
491
495
|
));
|
|
492
496
|
}, [featuresSlot, features, featureCardClassName, badgeClassName, optionALabel, optionBLabel]);
|
|
493
|
-
const headingContent =
|
|
497
|
+
const headingContent = React4.useMemo(() => {
|
|
494
498
|
if (!heading) return null;
|
|
495
499
|
if (typeof heading === "string") {
|
|
496
500
|
return /* @__PURE__ */ jsx("h2", { className: cn("mb-4 text-3xl font-bold md:text-5xl", headingClassName), children: heading });
|
|
497
501
|
}
|
|
498
502
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
499
503
|
}, [heading, headingClassName]);
|
|
500
|
-
const descriptionContent =
|
|
504
|
+
const descriptionContent = React4.useMemo(() => {
|
|
501
505
|
if (!description) return null;
|
|
502
506
|
if (typeof description === "string") {
|
|
503
507
|
return /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-2xl text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var icon = require('@page-speed/icon');
|
|
@@ -26,7 +26,7 @@ function _interopNamespace(e) {
|
|
|
26
26
|
return Object.freeze(n);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
30
30
|
var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrimitive);
|
|
31
31
|
|
|
32
32
|
// components/blocks/comparison/comparison-legacy-modern.tsx
|
|
@@ -64,9 +64,13 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
64
64
|
return isDark ? "text-foreground" : "";
|
|
65
65
|
}
|
|
66
66
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
67
|
-
|
|
67
|
+
var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
|
|
68
|
+
apiKey,
|
|
69
|
+
...props
|
|
70
|
+
}) {
|
|
68
71
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
69
|
-
}
|
|
72
|
+
});
|
|
73
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
70
74
|
function Separator({
|
|
71
75
|
className,
|
|
72
76
|
orientation = "horizontal",
|
|
@@ -96,7 +100,7 @@ var maxWidthStyles = {
|
|
|
96
100
|
"4xl": "max-w-[1536px]",
|
|
97
101
|
full: "max-w-full"
|
|
98
102
|
};
|
|
99
|
-
var Container =
|
|
103
|
+
var Container = React4__namespace.default.forwardRef(
|
|
100
104
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
101
105
|
const Component = as;
|
|
102
106
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -402,7 +406,7 @@ var spacingStyles = {
|
|
|
402
406
|
};
|
|
403
407
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
404
408
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
405
|
-
var Section =
|
|
409
|
+
var Section = React4__namespace.default.forwardRef(
|
|
406
410
|
({
|
|
407
411
|
id,
|
|
408
412
|
title,
|
|
@@ -485,7 +489,7 @@ function ComparisonLegacyModern({
|
|
|
485
489
|
pattern,
|
|
486
490
|
patternOpacity
|
|
487
491
|
}) {
|
|
488
|
-
const columnsContent =
|
|
492
|
+
const columnsContent = React4__namespace.useMemo(() => {
|
|
489
493
|
if (columnsSlot) return columnsSlot;
|
|
490
494
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
491
495
|
return null;
|
|
@@ -497,7 +501,7 @@ function ComparisonLegacyModern({
|
|
|
497
501
|
legacyColumnClassName
|
|
498
502
|
), children: [
|
|
499
503
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
500
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
504
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
|
|
501
505
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
502
506
|
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
503
507
|
/* @__PURE__ */ jsxRuntime.jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -514,7 +518,7 @@ function ComparisonLegacyModern({
|
|
|
514
518
|
),
|
|
515
519
|
children: [
|
|
516
520
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
517
|
-
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
521
|
+
/* @__PURE__ */ jsxRuntime.jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxRuntime.jsxs(React4__namespace.Fragment, { children: [
|
|
518
522
|
/* @__PURE__ */ jsxRuntime.jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
519
523
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
520
524
|
feature.text
|
|
@@ -526,7 +530,7 @@ function ComparisonLegacyModern({
|
|
|
526
530
|
)
|
|
527
531
|
] });
|
|
528
532
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
529
|
-
const headingContent =
|
|
533
|
+
const headingContent = React4__namespace.useMemo(() => {
|
|
530
534
|
if (!heading && !headingHighlight) return null;
|
|
531
535
|
return /* @__PURE__ */ jsxRuntime.jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
532
536
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -539,7 +543,7 @@ function ComparisonLegacyModern({
|
|
|
539
543
|
] }) : headingHighlight)
|
|
540
544
|
] });
|
|
541
545
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
542
|
-
const descriptionContent =
|
|
546
|
+
const descriptionContent = React4__namespace.useMemo(() => {
|
|
543
547
|
if (!description) return null;
|
|
544
548
|
if (typeof description === "string") {
|
|
545
549
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React4 from 'react';
|
|
3
|
+
import React4__default from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Icon } from '@page-speed/icon';
|
|
@@ -42,9 +42,13 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
42
42
|
return isDark ? "text-foreground" : "";
|
|
43
43
|
}
|
|
44
44
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
45
|
-
|
|
45
|
+
var DynamicIcon = React4.memo(function DynamicIcon2({
|
|
46
|
+
apiKey,
|
|
47
|
+
...props
|
|
48
|
+
}) {
|
|
46
49
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
47
|
-
}
|
|
50
|
+
});
|
|
51
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
48
52
|
function Separator({
|
|
49
53
|
className,
|
|
50
54
|
orientation = "horizontal",
|
|
@@ -74,7 +78,7 @@ var maxWidthStyles = {
|
|
|
74
78
|
"4xl": "max-w-[1536px]",
|
|
75
79
|
full: "max-w-full"
|
|
76
80
|
};
|
|
77
|
-
var Container =
|
|
81
|
+
var Container = React4__default.forwardRef(
|
|
78
82
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
79
83
|
const Component = as;
|
|
80
84
|
return /* @__PURE__ */ jsx(
|
|
@@ -380,7 +384,7 @@ var spacingStyles = {
|
|
|
380
384
|
};
|
|
381
385
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
382
386
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
383
|
-
var Section =
|
|
387
|
+
var Section = React4__default.forwardRef(
|
|
384
388
|
({
|
|
385
389
|
id,
|
|
386
390
|
title,
|
|
@@ -463,7 +467,7 @@ function ComparisonLegacyModern({
|
|
|
463
467
|
pattern,
|
|
464
468
|
patternOpacity
|
|
465
469
|
}) {
|
|
466
|
-
const columnsContent =
|
|
470
|
+
const columnsContent = React4.useMemo(() => {
|
|
467
471
|
if (columnsSlot) return columnsSlot;
|
|
468
472
|
if (!legacyFeatures || legacyFeatures.length === 0 || !modernFeatures || modernFeatures.length === 0)
|
|
469
473
|
return null;
|
|
@@ -475,7 +479,7 @@ function ComparisonLegacyModern({
|
|
|
475
479
|
legacyColumnClassName
|
|
476
480
|
), children: [
|
|
477
481
|
legacyTitle && (typeof legacyTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: legacyTitle }) : legacyTitle),
|
|
478
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
482
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: legacyFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
|
|
479
483
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
480
484
|
/* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/x", size: 16, className: "my-1.5 shrink-0 text-muted-foreground" }),
|
|
481
485
|
/* @__PURE__ */ jsx("li", { className: "text-sm", children: feature.text })
|
|
@@ -492,7 +496,7 @@ function ComparisonLegacyModern({
|
|
|
492
496
|
),
|
|
493
497
|
children: [
|
|
494
498
|
modernTitle && (typeof modernTitle === "string" ? /* @__PURE__ */ jsx("h3", { className: "text-2xl font-medium", children: modernTitle }) : modernTitle),
|
|
495
|
-
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(
|
|
499
|
+
/* @__PURE__ */ jsx("ul", { className: "mt-9 space-y-3", children: modernFeatures.map((feature, idx) => /* @__PURE__ */ jsxs(React4.Fragment, { children: [
|
|
496
500
|
/* @__PURE__ */ jsxs("li", { className: "flex items-center gap-2 text-sm", children: [
|
|
497
501
|
/* @__PURE__ */ jsx("span", { className: "text-lg", children: feature.emoji }),
|
|
498
502
|
feature.text
|
|
@@ -504,7 +508,7 @@ function ComparisonLegacyModern({
|
|
|
504
508
|
)
|
|
505
509
|
] });
|
|
506
510
|
}, [columnsSlot, legacyFeatures, modernFeatures, legacyTitle, modernTitle, legacyColumnClassName, modernColumnClassName]);
|
|
507
|
-
const headingContent =
|
|
511
|
+
const headingContent = React4.useMemo(() => {
|
|
508
512
|
if (!heading && !headingHighlight) return null;
|
|
509
513
|
return /* @__PURE__ */ jsxs("h2", { className: cn("text-4xl font-medium md:text-5xl lg:text-7xl", headingClassName), children: [
|
|
510
514
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxs("span", { className: "text-muted-foreground", children: [
|
|
@@ -517,7 +521,7 @@ function ComparisonLegacyModern({
|
|
|
517
521
|
] }) : headingHighlight)
|
|
518
522
|
] });
|
|
519
523
|
}, [heading, headingHighlight, headingClassName, headingHighlightClassName]);
|
|
520
|
-
const descriptionContent =
|
|
524
|
+
const descriptionContent = React4.useMemo(() => {
|
|
521
525
|
if (!description) return null;
|
|
522
526
|
if (typeof description === "string") {
|
|
523
527
|
return /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description });
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var
|
|
4
|
+
var React4 = require('react');
|
|
5
5
|
var clsx = require('clsx');
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var icon = require('@page-speed/icon');
|
|
@@ -26,7 +26,7 @@ function _interopNamespace(e) {
|
|
|
26
26
|
return Object.freeze(n);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var React4__namespace = /*#__PURE__*/_interopNamespace(React4);
|
|
30
30
|
var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
31
31
|
|
|
32
32
|
// components/blocks/comparison/comparison-table-tabs.tsx
|
|
@@ -34,9 +34,13 @@ function cn(...inputs) {
|
|
|
34
34
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
35
35
|
}
|
|
36
36
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
37
|
-
|
|
37
|
+
var DynamicIcon = React4__namespace.memo(function DynamicIcon2({
|
|
38
|
+
apiKey,
|
|
39
|
+
...props
|
|
40
|
+
}) {
|
|
38
41
|
return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
39
|
-
}
|
|
42
|
+
});
|
|
43
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
40
44
|
function Table({ className, ...props }) {
|
|
41
45
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
42
46
|
"div",
|
|
@@ -167,7 +171,7 @@ var maxWidthStyles = {
|
|
|
167
171
|
"4xl": "max-w-[1536px]",
|
|
168
172
|
full: "max-w-full"
|
|
169
173
|
};
|
|
170
|
-
var Container =
|
|
174
|
+
var Container = React4__namespace.default.forwardRef(
|
|
171
175
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
172
176
|
const Component = as;
|
|
173
177
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -473,7 +477,7 @@ var spacingStyles = {
|
|
|
473
477
|
};
|
|
474
478
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
475
479
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
476
|
-
var Section =
|
|
480
|
+
var Section = React4__namespace.default.forwardRef(
|
|
477
481
|
({
|
|
478
482
|
id,
|
|
479
483
|
title,
|
|
@@ -553,8 +557,8 @@ function ComparisonTableTabs({
|
|
|
553
557
|
pattern,
|
|
554
558
|
patternOpacity
|
|
555
559
|
}) {
|
|
556
|
-
const [selectedTab, setSelectedTab] =
|
|
557
|
-
const renderStatusIcon =
|
|
560
|
+
const [selectedTab, setSelectedTab] = React4.useState(models?.[0]?.name || "");
|
|
561
|
+
const renderStatusIcon = React4__namespace.useCallback((status) => {
|
|
558
562
|
if (status === "positive") {
|
|
559
563
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-success/10", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/circle-check", size: 16, className: "text-success" }) });
|
|
560
564
|
}
|
|
@@ -563,7 +567,7 @@ function ComparisonTableTabs({
|
|
|
563
567
|
}
|
|
564
568
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: "flex size-8 items-center justify-center rounded-full border bg-accent/10", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/circle-minus", size: 16, className: "text-accent" }) });
|
|
565
569
|
}, []);
|
|
566
|
-
const tableContent =
|
|
570
|
+
const tableContent = React4__namespace.useMemo(() => {
|
|
567
571
|
if (tableSlot) return tableSlot;
|
|
568
572
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
569
573
|
return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -622,14 +626,14 @@ function ComparisonTableTabs({
|
|
|
622
626
|
] }) })
|
|
623
627
|
] });
|
|
624
628
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
625
|
-
const headingContent =
|
|
629
|
+
const headingContent = React4__namespace.useMemo(() => {
|
|
626
630
|
if (!heading) return null;
|
|
627
631
|
if (typeof heading === "string") {
|
|
628
632
|
return /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
629
633
|
}
|
|
630
634
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading });
|
|
631
635
|
}, [heading, headingClassName]);
|
|
632
|
-
const descriptionContent =
|
|
636
|
+
const descriptionContent = React4__namespace.useMemo(() => {
|
|
633
637
|
if (!description) return null;
|
|
634
638
|
if (typeof description === "string") {
|
|
635
639
|
return /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as
|
|
3
|
-
import
|
|
2
|
+
import * as React4 from 'react';
|
|
3
|
+
import React4__default, { useState } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { Icon } from '@page-speed/icon';
|
|
@@ -12,9 +12,13 @@ function cn(...inputs) {
|
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
14
|
var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
|
|
15
|
-
|
|
15
|
+
var DynamicIcon = React4.memo(function DynamicIcon2({
|
|
16
|
+
apiKey,
|
|
17
|
+
...props
|
|
18
|
+
}) {
|
|
16
19
|
return /* @__PURE__ */ jsx(Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
|
|
17
|
-
}
|
|
20
|
+
});
|
|
21
|
+
DynamicIcon.displayName = "DynamicIcon";
|
|
18
22
|
function Table({ className, ...props }) {
|
|
19
23
|
return /* @__PURE__ */ jsx(
|
|
20
24
|
"div",
|
|
@@ -145,7 +149,7 @@ var maxWidthStyles = {
|
|
|
145
149
|
"4xl": "max-w-[1536px]",
|
|
146
150
|
full: "max-w-full"
|
|
147
151
|
};
|
|
148
|
-
var Container =
|
|
152
|
+
var Container = React4__default.forwardRef(
|
|
149
153
|
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
150
154
|
const Component = as;
|
|
151
155
|
return /* @__PURE__ */ jsx(
|
|
@@ -451,7 +455,7 @@ var spacingStyles = {
|
|
|
451
455
|
};
|
|
452
456
|
var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
|
|
453
457
|
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
454
|
-
var Section =
|
|
458
|
+
var Section = React4__default.forwardRef(
|
|
455
459
|
({
|
|
456
460
|
id,
|
|
457
461
|
title,
|
|
@@ -532,7 +536,7 @@ function ComparisonTableTabs({
|
|
|
532
536
|
patternOpacity
|
|
533
537
|
}) {
|
|
534
538
|
const [selectedTab, setSelectedTab] = useState(models?.[0]?.name || "");
|
|
535
|
-
const renderStatusIcon =
|
|
539
|
+
const renderStatusIcon = React4.useCallback((status) => {
|
|
536
540
|
if (status === "positive") {
|
|
537
541
|
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" }) });
|
|
538
542
|
}
|
|
@@ -541,7 +545,7 @@ function ComparisonTableTabs({
|
|
|
541
545
|
}
|
|
542
546
|
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" }) });
|
|
543
547
|
}, []);
|
|
544
|
-
const tableContent =
|
|
548
|
+
const tableContent = React4.useMemo(() => {
|
|
545
549
|
if (tableSlot) return tableSlot;
|
|
546
550
|
if (!models || models.length === 0 || !features || features.length === 0) return null;
|
|
547
551
|
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -600,14 +604,14 @@ function ComparisonTableTabs({
|
|
|
600
604
|
] }) })
|
|
601
605
|
] });
|
|
602
606
|
}, [tableSlot, models, features, tabsClassName, tableClassName, tableHeaderClassName, tableCellClassName, selectedTab, renderStatusIcon]);
|
|
603
|
-
const headingContent =
|
|
607
|
+
const headingContent = React4.useMemo(() => {
|
|
604
608
|
if (!heading) return null;
|
|
605
609
|
if (typeof heading === "string") {
|
|
606
610
|
return /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold md:text-4xl lg:text-5xl", headingClassName), children: heading });
|
|
607
611
|
}
|
|
608
612
|
return /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading });
|
|
609
613
|
}, [heading, headingClassName]);
|
|
610
|
-
const descriptionContent =
|
|
614
|
+
const descriptionContent = React4.useMemo(() => {
|
|
611
615
|
if (!description) return null;
|
|
612
616
|
if (typeof description === "string") {
|
|
613
617
|
return /* @__PURE__ */ jsx("p", { className: cn("mt-4 text-muted-foreground md:text-lg", descriptionClassName), children: description });
|