@opensite/ui 0.5.2 → 0.5.4
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-company-profile.d.cts +2 -2
- package/dist/about-company-profile.d.ts +2 -2
- package/dist/about-developer-profile.d.cts +2 -2
- package/dist/about-developer-profile.d.ts +2 -2
- package/dist/about-developer-story.d.cts +2 -2
- package/dist/about-developer-story.d.ts +2 -2
- package/dist/about-interactive-tabs.d.cts +2 -2
- package/dist/about-interactive-tabs.d.ts +2 -2
- package/dist/about-location-info-hero.d.cts +2 -2
- package/dist/about-location-info-hero.d.ts +2 -2
- package/dist/about-minimal-story.d.cts +2 -2
- package/dist/about-minimal-story.d.ts +2 -2
- package/dist/about-mission-dual-image.d.cts +2 -2
- package/dist/about-mission-dual-image.d.ts +2 -2
- package/dist/about-mission-features.d.cts +2 -2
- package/dist/about-mission-features.d.ts +2 -2
- package/dist/about-network-spotlight.d.cts +2 -2
- package/dist/about-network-spotlight.d.ts +2 -2
- package/dist/about-startup-team.d.cts +2 -2
- package/dist/about-startup-team.d.ts +2 -2
- package/dist/about-stats-showcase.d.cts +2 -2
- package/dist/about-stats-showcase.d.ts +2 -2
- package/dist/about-stats-sidebar.d.cts +2 -2
- package/dist/about-stats-sidebar.d.ts +2 -2
- package/dist/about-story-expertise.d.cts +2 -2
- package/dist/about-story-expertise.d.ts +2 -2
- package/dist/about-story-gallery.d.cts +2 -2
- package/dist/about-story-gallery.d.ts +2 -2
- package/dist/about-story-hero.d.cts +2 -2
- package/dist/about-story-hero.d.ts +2 -2
- package/dist/about-streamline-team.d.cts +2 -2
- package/dist/about-streamline-team.d.ts +2 -2
- package/dist/about-vision-gallery.d.cts +2 -2
- package/dist/about-vision-gallery.d.ts +2 -2
- package/dist/alternating-blocks.d.cts +2 -2
- package/dist/alternating-blocks.d.ts +2 -2
- package/dist/animated-dialog.d.cts +2 -2
- package/dist/animated-dialog.d.ts +2 -2
- package/dist/article-breadcrumb-social.d.cts +2 -2
- package/dist/article-breadcrumb-social.d.ts +2 -2
- package/dist/article-chapters-author.d.cts +2 -2
- package/dist/article-chapters-author.d.ts +2 -2
- package/dist/article-compact-toc.d.cts +2 -2
- package/dist/article-compact-toc.d.ts +2 -2
- package/dist/article-hero-prose.d.cts +2 -2
- package/dist/article-hero-prose.d.ts +2 -2
- package/dist/article-sidebar-sticky.d.cts +2 -2
- package/dist/article-sidebar-sticky.d.ts +2 -2
- package/dist/article-split-animated.d.cts +2 -2
- package/dist/article-split-animated.d.ts +2 -2
- package/dist/article-toc-sidebar.d.cts +2 -2
- package/dist/article-toc-sidebar.d.ts +2 -2
- package/dist/auto-scroll-carousel.d.cts +2 -2
- package/dist/auto-scroll-carousel.d.ts +2 -2
- package/dist/badge.d.cts +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/banner-announcement-dismissible.cjs +37 -17
- package/dist/banner-announcement-dismissible.d.cts +2 -4
- package/dist/banner-announcement-dismissible.d.ts +2 -4
- package/dist/banner-announcement-dismissible.js +38 -18
- package/dist/banner-countdown-sale.cjs +19 -11
- package/dist/banner-countdown-sale.d.cts +0 -1
- package/dist/banner-countdown-sale.d.ts +0 -1
- package/dist/banner-countdown-sale.js +21 -13
- package/dist/banner-delivery-countdown.cjs +29 -24
- package/dist/banner-delivery-countdown.d.cts +0 -2
- package/dist/banner-delivery-countdown.d.ts +0 -2
- package/dist/banner-delivery-countdown.js +30 -25
- package/dist/banner-event-promo.cjs +28 -13
- package/dist/banner-event-promo.d.cts +2 -2
- package/dist/banner-event-promo.d.ts +2 -2
- package/dist/banner-event-promo.js +29 -13
- package/dist/banner-floating-offer.cjs +42 -24
- package/dist/banner-floating-offer.d.cts +2 -5
- package/dist/banner-floating-offer.d.ts +2 -5
- package/dist/banner-floating-offer.js +43 -25
- package/dist/banner-gdpr-rights.cjs +36 -19
- package/dist/banner-gdpr-rights.d.cts +5 -7
- package/dist/banner-gdpr-rights.d.ts +5 -7
- package/dist/banner-gdpr-rights.js +37 -20
- package/dist/banner-privacy-notice.cjs +34 -17
- package/dist/banner-privacy-notice.d.cts +2 -4
- package/dist/banner-privacy-notice.d.ts +2 -4
- package/dist/banner-privacy-notice.js +35 -18
- package/dist/banner-promo-cta.cjs +27 -12
- package/dist/banner-promo-cta.d.cts +2 -2
- package/dist/banner-promo-cta.d.ts +2 -2
- package/dist/banner-promo-cta.js +28 -12
- package/dist/banner-social-follow.cjs +37 -17
- package/dist/banner-social-follow.d.cts +2 -4
- package/dist/banner-social-follow.d.ts +2 -4
- package/dist/banner-social-follow.js +38 -18
- package/dist/banner-survey-incentive.cjs +34 -17
- package/dist/banner-survey-incentive.d.cts +2 -4
- package/dist/banner-survey-incentive.d.ts +2 -4
- package/dist/banner-survey-incentive.js +35 -18
- package/dist/{blocks-Cohq4eio.d.cts → blocks-DP3Vofl4.d.cts} +1 -1
- package/dist/{blocks-k17uluAz.d.ts → blocks-XLPGq8A5.d.ts} +1 -1
- package/dist/blog-cards-read-time.d.cts +2 -2
- package/dist/blog-cards-read-time.d.ts +2 -2
- package/dist/blog-cards-tagline-cta.d.cts +2 -2
- package/dist/blog-cards-tagline-cta.d.ts +2 -2
- package/dist/blog-category-overlay.d.cts +2 -2
- package/dist/blog-category-overlay.d.ts +2 -2
- package/dist/blog-featured-popular.d.cts +2 -2
- package/dist/blog-featured-popular.d.ts +2 -2
- package/dist/blog-filtered-results.d.cts +2 -2
- package/dist/blog-filtered-results.d.ts +2 -2
- package/dist/blog-grid-author-cards.d.cts +2 -2
- package/dist/blog-grid-author-cards.d.ts +2 -2
- package/dist/blog-grid-nine-posts.d.cts +2 -2
- package/dist/blog-grid-nine-posts.d.ts +2 -2
- package/dist/blog-horizontal-cards.d.cts +2 -2
- package/dist/blog-horizontal-cards.d.ts +2 -2
- package/dist/blog-horizontal-timeline.d.cts +2 -2
- package/dist/blog-horizontal-timeline.d.ts +2 -2
- package/dist/blog-masonry-featured.d.cts +2 -2
- package/dist/blog-masonry-featured.d.ts +2 -2
- package/dist/blog-related-articles.d.cts +2 -2
- package/dist/blog-related-articles.d.ts +2 -2
- package/dist/blog-tech-insights.d.cts +2 -2
- package/dist/blog-tech-insights.d.ts +2 -2
- package/dist/blur-vignette-grid.d.cts +2 -2
- package/dist/blur-vignette-grid.d.ts +2 -2
- package/dist/{button-variants-lRElsmTc.d.cts → button-variants-CdNtNOuP.d.cts} +1 -1
- package/dist/{button-variants-lRElsmTc.d.ts → button-variants-CdNtNOuP.d.ts} +1 -1
- package/dist/button.d.cts +1 -1
- package/dist/button.d.ts +1 -1
- package/dist/carousel-badge-cards.d.cts +2 -2
- package/dist/carousel-badge-cards.d.ts +2 -2
- package/dist/carousel-demo-link.d.cts +2 -2
- package/dist/carousel-demo-link.d.ts +2 -2
- package/dist/carousel-gradient-overlay.d.cts +2 -2
- package/dist/carousel-gradient-overlay.d.ts +2 -2
- package/dist/carousel-gradient-text.d.cts +2 -2
- package/dist/carousel-gradient-text.d.ts +2 -2
- package/dist/carousel-icon-sidebar.d.cts +2 -2
- package/dist/carousel-icon-sidebar.d.ts +2 -2
- package/dist/carousel-icon-tabs.d.cts +2 -2
- package/dist/carousel-icon-tabs.d.ts +2 -2
- package/dist/carousel-scale-focus.d.cts +2 -2
- package/dist/carousel-scale-focus.d.ts +2 -2
- package/dist/carousel-sidebar-resources.d.cts +2 -2
- package/dist/carousel-sidebar-resources.d.ts +2 -2
- package/dist/carousel-tabs-content.d.cts +2 -2
- package/dist/carousel-tabs-content.d.ts +2 -2
- package/dist/case-studies-featured-border.d.cts +2 -2
- package/dist/case-studies-featured-border.d.ts +2 -2
- package/dist/case-studies-image-grid.d.cts +2 -2
- package/dist/case-studies-image-grid.d.ts +2 -2
- package/dist/case-studies-stats-card.d.cts +2 -2
- package/dist/case-studies-stats-card.d.ts +2 -2
- package/dist/case-studies-testimonial-stats.d.cts +2 -2
- package/dist/case-studies-testimonial-stats.d.ts +2 -2
- package/dist/case-study-prose-sidebar.d.cts +2 -2
- package/dist/case-study-prose-sidebar.d.ts +2 -2
- package/dist/case-study-stats-metrics.d.cts +2 -2
- package/dist/case-study-stats-metrics.d.ts +2 -2
- package/dist/case-study-toc-social-sidebar.d.cts +2 -2
- package/dist/case-study-toc-social-sidebar.d.ts +2 -2
- package/dist/comparison-ai-models.d.cts +2 -2
- package/dist/comparison-ai-models.d.ts +2 -2
- package/dist/comparison-feature-cards.d.cts +2 -2
- package/dist/comparison-feature-cards.d.ts +2 -2
- package/dist/comparison-image-cards.d.cts +2 -2
- package/dist/comparison-image-cards.d.ts +2 -2
- package/dist/comparison-metrics-rows.d.cts +2 -2
- package/dist/comparison-metrics-rows.d.ts +2 -2
- package/dist/comparison-table-two-column.d.cts +2 -2
- package/dist/comparison-table-two-column.d.ts +2 -2
- package/dist/components.d.cts +2 -2
- package/dist/components.d.ts +2 -2
- package/dist/contact-callback.d.cts +2 -2
- package/dist/contact-callback.d.ts +2 -2
- package/dist/contact-card.d.cts +2 -2
- package/dist/contact-card.d.ts +2 -2
- package/dist/contact-careers.d.cts +2 -2
- package/dist/contact-careers.d.ts +2 -2
- package/dist/contact-catering.d.cts +2 -2
- package/dist/contact-catering.d.ts +2 -2
- package/dist/contact-consultation.d.cts +2 -2
- package/dist/contact-consultation.d.ts +2 -2
- package/dist/contact-dark.d.cts +2 -2
- package/dist/contact-dark.d.ts +2 -2
- package/dist/contact-demo.d.cts +2 -2
- package/dist/contact-demo.d.ts +2 -2
- package/dist/contact-emergency.d.cts +2 -2
- package/dist/contact-emergency.d.ts +2 -2
- package/dist/contact-event.d.cts +2 -2
- package/dist/contact-event.d.ts +2 -2
- package/dist/contact-faq.d.cts +2 -2
- package/dist/contact-faq.d.ts +2 -2
- package/dist/contact-feedback.d.cts +2 -2
- package/dist/contact-feedback.d.ts +2 -2
- package/dist/contact-fitness.d.cts +2 -2
- package/dist/contact-fitness.d.ts +2 -2
- package/dist/contact-floating-banner.d.cts +2 -2
- package/dist/contact-floating-banner.d.ts +2 -2
- package/dist/contact-guest.d.cts +2 -2
- package/dist/contact-guest.d.ts +2 -2
- package/dist/contact-help-center.d.cts +2 -2
- package/dist/contact-help-center.d.ts +2 -2
- package/dist/contact-image.d.cts +2 -2
- package/dist/contact-image.d.ts +2 -2
- package/dist/contact-insurance.d.cts +2 -2
- package/dist/contact-insurance.d.ts +2 -2
- package/dist/contact-interview.d.cts +2 -2
- package/dist/contact-interview.d.ts +2 -2
- package/dist/contact-locations.d.cts +2 -2
- package/dist/contact-locations.d.ts +2 -2
- package/dist/contact-maintenance.d.cts +2 -2
- package/dist/contact-maintenance.d.ts +2 -2
- package/dist/contact-map.d.cts +2 -2
- package/dist/contact-map.d.ts +2 -2
- package/dist/contact-minimal.d.cts +2 -2
- package/dist/contact-minimal.d.ts +2 -2
- package/dist/contact-moving.d.cts +2 -2
- package/dist/contact-moving.d.ts +2 -2
- package/dist/contact-multistep.d.cts +2 -2
- package/dist/contact-multistep.d.ts +2 -2
- package/dist/contact-partnership.d.cts +2 -2
- package/dist/contact-partnership.d.ts +2 -2
- package/dist/contact-photography.d.cts +2 -2
- package/dist/contact-photography.d.ts +2 -2
- package/dist/contact-press.d.cts +2 -2
- package/dist/contact-press.d.ts +2 -2
- package/dist/contact-quote.d.cts +2 -2
- package/dist/contact-quote.d.ts +2 -2
- package/dist/contact-referral.d.cts +2 -2
- package/dist/contact-referral.d.ts +2 -2
- package/dist/contact-report.d.cts +2 -2
- package/dist/contact-report.d.ts +2 -2
- package/dist/contact-reservation.d.cts +2 -2
- package/dist/contact-reservation.d.ts +2 -2
- package/dist/contact-retreat.d.cts +2 -2
- package/dist/contact-retreat.d.ts +2 -2
- package/dist/contact-rsvp.d.cts +2 -2
- package/dist/contact-rsvp.d.ts +2 -2
- package/dist/contact-sales.d.cts +2 -2
- package/dist/contact-sales.d.ts +2 -2
- package/dist/contact-schedule.d.cts +2 -2
- package/dist/contact-schedule.d.ts +2 -2
- package/dist/contact-sponsorship.d.cts +2 -2
- package/dist/contact-sponsorship.d.ts +2 -2
- package/dist/contact-support.d.cts +2 -2
- package/dist/contact-support.d.ts +2 -2
- package/dist/contact-tenant.d.cts +2 -2
- package/dist/contact-tenant.d.ts +2 -2
- package/dist/contact-vendor.d.cts +2 -2
- package/dist/contact-vendor.d.ts +2 -2
- package/dist/contact-volunteer.d.cts +2 -2
- package/dist/contact-volunteer.d.ts +2 -2
- package/dist/contact-warranty.d.cts +2 -2
- package/dist/contact-warranty.d.ts +2 -2
- package/dist/contact-wedding.d.cts +2 -2
- package/dist/contact-wedding.d.ts +2 -2
- package/dist/container.d.cts +2 -2
- package/dist/container.d.ts +2 -2
- package/dist/cta-accent-background.d.cts +2 -2
- package/dist/cta-accent-background.d.ts +2 -2
- package/dist/cta-app-download-newsletter.d.cts +2 -2
- package/dist/cta-app-download-newsletter.d.ts +2 -2
- package/dist/cta-background-icon-badge.d.cts +2 -2
- package/dist/cta-background-icon-badge.d.ts +2 -2
- package/dist/cta-case-study-testimonial.d.cts +2 -2
- package/dist/cta-case-study-testimonial.d.ts +2 -2
- package/dist/cta-documentation-links.d.cts +2 -2
- package/dist/cta-documentation-links.d.ts +2 -2
- package/dist/cta-enterprise-dark-features.d.cts +2 -2
- package/dist/cta-enterprise-dark-features.d.ts +2 -2
- package/dist/cta-enterprise-split.d.cts +2 -2
- package/dist/cta-enterprise-split.d.ts +2 -2
- package/dist/cta-feature-cards-grid.d.cts +2 -2
- package/dist/cta-feature-cards-grid.d.ts +2 -2
- package/dist/cta-feature-checklist.d.cts +2 -2
- package/dist/cta-feature-checklist.d.ts +2 -2
- package/dist/cta-feature-list.d.cts +2 -2
- package/dist/cta-feature-list.d.ts +2 -2
- package/dist/cta-fullwidth-background.d.cts +2 -2
- package/dist/cta-fullwidth-background.d.ts +2 -2
- package/dist/cta-gradient-logos-floating.d.cts +2 -2
- package/dist/cta-gradient-logos-floating.d.ts +2 -2
- package/dist/cta-gradient-stats-hero.d.cts +2 -2
- package/dist/cta-gradient-stats-hero.d.ts +2 -2
- package/dist/cta-hero-feature-cards.d.cts +2 -2
- package/dist/cta-hero-feature-cards.d.ts +2 -2
- package/dist/cta-image-overlay-arrow.d.cts +2 -2
- package/dist/cta-image-overlay-arrow.d.ts +2 -2
- package/dist/cta-image-overlay-centered.d.cts +2 -2
- package/dist/cta-image-overlay-centered.d.ts +2 -2
- package/dist/cta-minimal-separator.d.cts +2 -2
- package/dist/cta-minimal-separator.d.ts +2 -2
- package/dist/cta-newsletter-features.d.cts +2 -2
- package/dist/cta-newsletter-features.d.ts +2 -2
- package/dist/cta-pattern-background.d.cts +2 -2
- package/dist/cta-pattern-background.d.ts +2 -2
- package/dist/cta-platform-demo.d.cts +2 -2
- package/dist/cta-platform-demo.d.ts +2 -2
- package/dist/cta-simple-centered.d.cts +2 -2
- package/dist/cta-simple-centered.d.ts +2 -2
- package/dist/cta-split-gradient-image.d.cts +2 -2
- package/dist/cta-split-gradient-image.d.ts +2 -2
- package/dist/cta-split-image-logos.d.cts +2 -2
- package/dist/cta-split-image-logos.d.ts +2 -2
- package/dist/cta-split-image.d.cts +2 -2
- package/dist/cta-split-image.d.ts +2 -2
- package/dist/cta-stacked-cards.d.cts +2 -2
- package/dist/cta-stacked-cards.d.ts +2 -2
- package/dist/cta-video-background-hero.d.cts +2 -2
- package/dist/cta-video-background-hero.d.ts +2 -2
- package/dist/cta-workflow-tabs.d.cts +2 -2
- package/dist/cta-workflow-tabs.d.ts +2 -2
- package/dist/expandable-case-study-cards.d.cts +2 -2
- package/dist/expandable-case-study-cards.d.ts +2 -2
- package/dist/faq-badge-support.d.cts +2 -2
- package/dist/faq-badge-support.d.ts +2 -2
- package/dist/faq-bordered-badge.d.cts +2 -2
- package/dist/faq-bordered-badge.d.ts +2 -2
- package/dist/faq-card-categories.d.cts +2 -2
- package/dist/faq-card-categories.d.ts +2 -2
- package/dist/faq-categorized-sections.d.cts +2 -2
- package/dist/faq-categorized-sections.d.ts +2 -2
- package/dist/faq-centered-accordion.d.cts +2 -2
- package/dist/faq-centered-accordion.d.ts +2 -2
- package/dist/faq-gradient-categories.d.cts +2 -2
- package/dist/faq-gradient-categories.d.ts +2 -2
- package/dist/faq-icon-benefits.d.cts +2 -2
- package/dist/faq-icon-benefits.d.ts +2 -2
- package/dist/faq-muted-cards.d.cts +2 -2
- package/dist/faq-muted-cards.d.ts +2 -2
- package/dist/faq-numbered-grid.d.cts +2 -2
- package/dist/faq-numbered-grid.d.ts +2 -2
- package/dist/faq-numbered-list.d.cts +2 -2
- package/dist/faq-numbered-list.d.ts +2 -2
- package/dist/faq-profile-sidebar.d.cts +2 -2
- package/dist/faq-profile-sidebar.d.ts +2 -2
- package/dist/faq-rounded-cards.d.cts +2 -2
- package/dist/faq-rounded-cards.d.ts +2 -2
- package/dist/faq-sidebar-navigation.d.cts +2 -2
- package/dist/faq-sidebar-navigation.d.ts +2 -2
- package/dist/faq-simple-accordion.d.cts +2 -2
- package/dist/faq-simple-accordion.d.ts +2 -2
- package/dist/faq-split-help.d.cts +2 -2
- package/dist/faq-split-help.d.ts +2 -2
- package/dist/faq-static-list.d.cts +2 -2
- package/dist/faq-static-list.d.ts +2 -2
- package/dist/feature-accordion-image.d.cts +2 -2
- package/dist/feature-accordion-image.d.ts +2 -2
- package/dist/feature-badge-grid-six.d.cts +2 -2
- package/dist/feature-badge-grid-six.d.ts +2 -2
- package/dist/feature-bento-image-grid.d.cts +2 -2
- package/dist/feature-bento-image-grid.d.ts +2 -2
- package/dist/feature-bento-utilities.d.cts +2 -2
- package/dist/feature-bento-utilities.d.ts +2 -2
- package/dist/feature-card-grid-linked.d.cts +2 -2
- package/dist/feature-card-grid-linked.d.ts +2 -2
- package/dist/feature-category-image-cards.d.cts +2 -2
- package/dist/feature-category-image-cards.d.ts +2 -2
- package/dist/feature-checklist-image.d.cts +2 -2
- package/dist/feature-checklist-image.d.ts +2 -2
- package/dist/feature-checklist-three-column.d.cts +2 -2
- package/dist/feature-checklist-three-column.d.ts +2 -2
- package/dist/feature-icon-grid-accent.d.cts +2 -2
- package/dist/feature-icon-grid-accent.d.ts +2 -2
- package/dist/feature-icon-tabs-content.d.cts +2 -2
- package/dist/feature-icon-tabs-content.d.ts +2 -2
- package/dist/feature-image-cards-three-column.d.cts +2 -2
- package/dist/feature-image-cards-three-column.d.ts +2 -2
- package/dist/feature-image-overlay-badge.d.cts +2 -2
- package/dist/feature-image-overlay-badge.d.ts +2 -2
- package/dist/feature-integration-cards.d.cts +2 -2
- package/dist/feature-integration-cards.d.ts +2 -2
- package/dist/feature-numbered-cards.d.cts +2 -2
- package/dist/feature-numbered-cards.d.ts +2 -2
- package/dist/feature-showcase.d.cts +2 -2
- package/dist/feature-showcase.d.ts +2 -2
- package/dist/feature-split-image-reverse.d.cts +2 -2
- package/dist/feature-split-image-reverse.d.ts +2 -2
- package/dist/feature-split-image.d.cts +2 -2
- package/dist/feature-split-image.d.ts +2 -2
- package/dist/feature-stats-highlight.d.cts +2 -2
- package/dist/feature-stats-highlight.d.ts +2 -2
- package/dist/feature-tabbed-content-image.d.cts +2 -2
- package/dist/feature-tabbed-content-image.d.ts +2 -2
- package/dist/feature-utility-cards-grid.d.cts +2 -2
- package/dist/feature-utility-cards-grid.d.ts +2 -2
- package/dist/footer-animated-social.d.cts +2 -2
- package/dist/footer-animated-social.d.ts +2 -2
- package/dist/footer-background-card.d.cts +2 -2
- package/dist/footer-background-card.d.ts +2 -2
- package/dist/footer-brand-description.d.cts +2 -2
- package/dist/footer-brand-description.d.ts +2 -2
- package/dist/footer-brand-links-contact.d.cts +2 -2
- package/dist/footer-brand-links-contact.d.ts +2 -2
- package/dist/footer-contact-card.d.cts +2 -2
- package/dist/footer-contact-card.d.ts +2 -2
- package/dist/footer-cta-banner.d.cts +2 -2
- package/dist/footer-cta-banner.d.ts +2 -2
- package/dist/footer-cta-social.d.cts +2 -2
- package/dist/footer-cta-social.d.ts +2 -2
- package/dist/footer-nav-social.d.cts +2 -2
- package/dist/footer-nav-social.d.ts +2 -2
- package/dist/footer-newsletter-minimal.d.cts +2 -2
- package/dist/footer-newsletter-minimal.d.ts +2 -2
- package/dist/footer-simple-centered.d.cts +2 -2
- package/dist/footer-simple-centered.d.ts +2 -2
- package/dist/footer-social-newsletter.d.cts +2 -2
- package/dist/footer-social-newsletter.d.ts +2 -2
- package/dist/hero-ad-campaign-expert.d.cts +2 -2
- package/dist/hero-ad-campaign-expert.d.ts +2 -2
- package/dist/hero-adaptable-product-grid.d.cts +2 -2
- package/dist/hero-adaptable-product-grid.d.ts +2 -2
- package/dist/hero-agency-animated-images.d.cts +2 -2
- package/dist/hero-agency-animated-images.d.ts +2 -2
- package/dist/hero-ai-powered-carousel.d.cts +2 -2
- package/dist/hero-ai-powered-carousel.d.ts +2 -2
- package/dist/hero-announcement-badge.d.cts +2 -2
- package/dist/hero-announcement-badge.d.ts +2 -2
- package/dist/hero-architecture-fullscreen.d.cts +2 -2
- package/dist/hero-architecture-fullscreen.d.ts +2 -2
- package/dist/hero-badge-image-split.d.cts +2 -2
- package/dist/hero-badge-image-split.d.ts +2 -2
- package/dist/hero-badge-shadow-overlay.d.cts +2 -2
- package/dist/hero-badge-shadow-overlay.d.ts +2 -2
- package/dist/hero-billing-platform-logos.d.cts +2 -2
- package/dist/hero-billing-platform-logos.d.ts +2 -2
- package/dist/hero-business-carousel-dots.d.cts +2 -2
- package/dist/hero-business-carousel-dots.d.ts +2 -2
- package/dist/hero-business-operations-mosaic.d.cts +2 -2
- package/dist/hero-business-operations-mosaic.d.ts +2 -2
- package/dist/hero-centered-gradient-cta.d.cts +2 -2
- package/dist/hero-centered-gradient-cta.d.ts +2 -2
- package/dist/hero-centered-image-grid.d.cts +2 -2
- package/dist/hero-centered-image-grid.d.ts +2 -2
- package/dist/hero-centered-screenshot.d.cts +2 -2
- package/dist/hero-centered-screenshot.d.ts +2 -2
- package/dist/hero-coming-soon-countdown.d.cts +2 -2
- package/dist/hero-coming-soon-countdown.d.ts +2 -2
- package/dist/hero-community-survey-cta.d.cts +2 -2
- package/dist/hero-community-survey-cta.d.ts +2 -2
- package/dist/hero-conversation-intelligence.d.cts +2 -2
- package/dist/hero-conversation-intelligence.d.ts +2 -2
- package/dist/hero-conversion-video-play.d.cts +2 -2
- package/dist/hero-conversion-video-play.d.ts +2 -2
- package/dist/hero-creative-studio-stacked.d.cts +2 -2
- package/dist/hero-creative-studio-stacked.d.ts +2 -2
- package/dist/hero-crm-streamlined.d.cts +2 -2
- package/dist/hero-crm-streamlined.d.ts +2 -2
- package/dist/hero-customer-support-layered.d.cts +2 -2
- package/dist/hero-customer-support-layered.d.ts +2 -2
- package/dist/hero-dashed-border-features.d.cts +2 -2
- package/dist/hero-dashed-border-features.d.ts +2 -2
- package/dist/hero-design-carousel-portfolio.d.cts +2 -2
- package/dist/hero-design-carousel-portfolio.d.ts +2 -2
- package/dist/hero-design-showcase-logos.d.cts +2 -2
- package/dist/hero-design-showcase-logos.d.ts +2 -2
- package/dist/hero-design-system-3d.d.cts +2 -2
- package/dist/hero-design-system-3d.d.ts +2 -2
- package/dist/hero-developer-tools-code.d.cts +2 -2
- package/dist/hero-developer-tools-code.d.ts +2 -2
- package/dist/hero-digital-agency-fullscreen.d.cts +2 -2
- package/dist/hero-digital-agency-fullscreen.d.ts +2 -2
- package/dist/hero-ecommerce-product-showcase.d.cts +2 -2
- package/dist/hero-ecommerce-product-showcase.d.ts +2 -2
- package/dist/hero-enterprise-security.d.cts +2 -2
- package/dist/hero-enterprise-security.d.ts +2 -2
- package/dist/hero-event-registration.d.cts +2 -2
- package/dist/hero-event-registration.d.ts +2 -2
- package/dist/hero-feature-cards-grid.d.cts +2 -2
- package/dist/hero-feature-cards-grid.d.ts +2 -2
- package/dist/hero-floating-images.d.cts +2 -2
- package/dist/hero-floating-images.d.ts +2 -2
- package/dist/hero-fullscreen-background-image.d.cts +2 -2
- package/dist/hero-fullscreen-background-image.d.ts +2 -2
- package/dist/hero-fullscreen-logo-cta.d.cts +2 -2
- package/dist/hero-fullscreen-logo-cta.d.ts +2 -2
- package/dist/hero-gradient-avatars-rating.d.cts +2 -2
- package/dist/hero-gradient-avatars-rating.d.ts +2 -2
- package/dist/hero-gradient-client-focused.d.cts +2 -2
- package/dist/hero-gradient-client-focused.d.ts +2 -2
- package/dist/hero-grid-pattern-efficiency.d.cts +2 -2
- package/dist/hero-grid-pattern-efficiency.d.ts +2 -2
- package/dist/hero-grid-pattern-solutions.d.cts +2 -2
- package/dist/hero-grid-pattern-solutions.d.ts +2 -2
- package/dist/hero-hiring-animated-text.d.cts +2 -2
- package/dist/hero-hiring-animated-text.d.ts +2 -2
- package/dist/hero-image-left-content.d.cts +2 -2
- package/dist/hero-image-left-content.d.ts +2 -2
- package/dist/hero-image-slider.d.cts +2 -2
- package/dist/hero-image-slider.d.ts +2 -2
- package/dist/hero-innovation-image-grid.d.cts +2 -2
- package/dist/hero-innovation-image-grid.d.ts +2 -2
- package/dist/hero-logo-centered-screenshot.d.cts +2 -2
- package/dist/hero-logo-centered-screenshot.d.ts +2 -2
- package/dist/hero-marketplace-scattered-images.d.cts +2 -2
- package/dist/hero-marketplace-scattered-images.d.ts +2 -2
- package/dist/hero-mental-health-team.d.cts +2 -2
- package/dist/hero-mental-health-team.d.ts +2 -2
- package/dist/hero-mentorship-video-split.d.cts +2 -2
- package/dist/hero-mentorship-video-split.d.ts +2 -2
- package/dist/hero-minimal-centered-dark.d.cts +2 -2
- package/dist/hero-minimal-centered-dark.d.ts +2 -2
- package/dist/hero-mobile-app-download.d.cts +2 -2
- package/dist/hero-mobile-app-download.d.ts +2 -2
- package/dist/hero-newsletter-minimal.d.cts +2 -2
- package/dist/hero-newsletter-minimal.d.ts +2 -2
- package/dist/hero-pattern-badge-logos.d.cts +2 -2
- package/dist/hero-pattern-badge-logos.d.ts +2 -2
- package/dist/hero-pattern-logo-tech-stack.d.cts +2 -2
- package/dist/hero-pattern-logo-tech-stack.d.ts +2 -2
- package/dist/hero-platform-features-grid.d.cts +2 -2
- package/dist/hero-platform-features-grid.d.ts +2 -2
- package/dist/hero-portfolio-creative.d.cts +2 -2
- package/dist/hero-portfolio-creative.d.ts +2 -2
- package/dist/hero-premium-split-avatars.d.cts +2 -2
- package/dist/hero-premium-split-avatars.d.ts +2 -2
- package/dist/hero-presentation-platform-video.d.cts +2 -2
- package/dist/hero-presentation-platform-video.d.ts +2 -2
- package/dist/hero-pricing-comparison.d.cts +2 -2
- package/dist/hero-pricing-comparison.d.ts +2 -2
- package/dist/hero-product-showcase-floating.d.cts +2 -2
- package/dist/hero-product-showcase-floating.d.ts +2 -2
- package/dist/hero-productivity-launcher-video.d.cts +2 -2
- package/dist/hero-productivity-launcher-video.d.ts +2 -2
- package/dist/hero-saas-dashboard-preview.d.cts +2 -2
- package/dist/hero-saas-dashboard-preview.d.ts +2 -2
- package/dist/hero-shared-inbox-layered.d.cts +2 -2
- package/dist/hero-shared-inbox-layered.d.ts +2 -2
- package/dist/hero-simple-centered-image.d.cts +2 -2
- package/dist/hero-simple-centered-image.d.ts +2 -2
- package/dist/hero-software-growth-video-dialog.d.cts +2 -2
- package/dist/hero-software-growth-video-dialog.d.ts +2 -2
- package/dist/hero-spiral-pattern-cards.d.cts +2 -2
- package/dist/hero-spiral-pattern-cards.d.ts +2 -2
- package/dist/hero-split-geometric-shapes.d.cts +2 -2
- package/dist/hero-split-geometric-shapes.d.ts +2 -2
- package/dist/hero-split-icon-cards.d.cts +2 -2
- package/dist/hero-split-icon-cards.d.ts +2 -2
- package/dist/hero-split-image-newsletter.d.cts +2 -2
- package/dist/hero-split-image-newsletter.d.ts +2 -2
- package/dist/hero-split-spiral-shapes.d.cts +2 -2
- package/dist/hero-split-spiral-shapes.d.ts +2 -2
- package/dist/hero-startup-launch-cta.d.cts +2 -2
- package/dist/hero-startup-launch-cta.d.ts +2 -2
- package/dist/hero-stats-social-proof.d.cts +2 -2
- package/dist/hero-stats-social-proof.d.ts +2 -2
- package/dist/hero-task-timer-animated.d.cts +2 -2
- package/dist/hero-task-timer-animated.d.ts +2 -2
- package/dist/hero-tech-carousel.d.cts +2 -2
- package/dist/hero-tech-carousel.d.ts +2 -2
- package/dist/hero-therapy-testimonial-grid.d.cts +2 -2
- package/dist/hero-therapy-testimonial-grid.d.ts +2 -2
- package/dist/hero-ui-library-showcase.d.cts +2 -2
- package/dist/hero-ui-library-showcase.d.ts +2 -2
- package/dist/hero-video-background-dark.d.cts +2 -2
- package/dist/hero-video-background-dark.d.ts +2 -2
- package/dist/hero-video-dialog-gradient.d.cts +2 -2
- package/dist/hero-video-dialog-gradient.d.ts +2 -2
- package/dist/hero-video-overlay-stars.d.cts +2 -2
- package/dist/hero-video-overlay-stars.d.ts +2 -2
- package/dist/hero-welcome-asymmetric-images.d.cts +2 -2
- package/dist/hero-welcome-asymmetric-images.d.ts +2 -2
- package/dist/image-slider.d.cts +2 -2
- package/dist/image-slider.d.ts +2 -2
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/industries-badge-list-bordered.d.cts +2 -2
- package/dist/industries-badge-list-bordered.d.ts +2 -2
- package/dist/industries-expandable-showcase.d.cts +2 -2
- package/dist/industries-expandable-showcase.d.ts +2 -2
- package/dist/industries-hover-reveal-grid.d.cts +2 -2
- package/dist/industries-hover-reveal-grid.d.ts +2 -2
- package/dist/industries-timeline-table.d.cts +2 -2
- package/dist/industries-timeline-table.d.ts +2 -2
- package/dist/interior-carousel.d.cts +2 -2
- package/dist/interior-carousel.d.ts +2 -2
- package/dist/link-page-bento-layout.d.cts +2 -2
- package/dist/link-page-bento-layout.d.ts +2 -2
- package/dist/link-page-grid-cards.d.cts +2 -2
- package/dist/link-page-grid-cards.d.ts +2 -2
- package/dist/link-page-minimal-profile.d.cts +2 -2
- package/dist/link-page-minimal-profile.d.ts +2 -2
- package/dist/link-page-newsletter-social.d.cts +2 -2
- package/dist/link-page-newsletter-social.d.ts +2 -2
- package/dist/link-tree-block.d.cts +2 -2
- package/dist/link-tree-block.d.ts +2 -2
- package/dist/list-searchable-grid.d.cts +2 -2
- package/dist/list-searchable-grid.d.ts +2 -2
- package/dist/logos-carousel-heading.d.cts +2 -2
- package/dist/logos-carousel-heading.d.ts +2 -2
- package/dist/logos-centered-simple.d.cts +2 -2
- package/dist/logos-centered-simple.d.ts +2 -2
- package/dist/logos-certifications-grid.d.cts +2 -2
- package/dist/logos-certifications-grid.d.ts +2 -2
- package/dist/logos-double-carousel-pattern.d.cts +2 -2
- package/dist/logos-double-carousel-pattern.d.ts +2 -2
- package/dist/logos-inline-tagline.d.cts +2 -2
- package/dist/logos-inline-tagline.d.ts +2 -2
- package/dist/logos-marquee-muted.d.cts +2 -2
- package/dist/logos-marquee-muted.d.ts +2 -2
- package/dist/logos-minimal-carousel.d.cts +2 -2
- package/dist/logos-minimal-carousel.d.ts +2 -2
- package/dist/logos-numbered-carousel.d.cts +2 -2
- package/dist/logos-numbered-carousel.d.ts +2 -2
- package/dist/logos-partner-grid-sidebar.d.cts +2 -2
- package/dist/logos-partner-grid-sidebar.d.ts +2 -2
- package/dist/logos-partner-network.d.cts +2 -2
- package/dist/logos-partner-network.d.ts +2 -2
- package/dist/logos-two-row-grid.d.cts +2 -2
- package/dist/logos-two-row-grid.d.ts +2 -2
- package/dist/masonry-motion-grid.d.cts +2 -2
- package/dist/masonry-motion-grid.d.ts +2 -2
- package/dist/media-hover-ctas.d.cts +2 -2
- package/dist/media-hover-ctas.d.ts +2 -2
- package/dist/navbar-animated-preview.d.cts +2 -2
- package/dist/navbar-animated-preview.d.ts +2 -2
- package/dist/navbar-centered-menu.d.cts +2 -2
- package/dist/navbar-centered-menu.d.ts +2 -2
- package/dist/navbar-dark-icons.d.cts +2 -2
- package/dist/navbar-dark-icons.d.ts +2 -2
- package/dist/navbar-dropdown-menu.d.cts +2 -2
- package/dist/navbar-dropdown-menu.d.ts +2 -2
- package/dist/navbar-education-platform.d.cts +2 -2
- package/dist/navbar-education-platform.d.ts +2 -2
- package/dist/navbar-enterprise-mega.d.cts +2 -2
- package/dist/navbar-enterprise-mega.d.ts +2 -2
- package/dist/navbar-feature-grid.d.cts +2 -2
- package/dist/navbar-feature-grid.d.ts +2 -2
- package/dist/navbar-floating-pill.d.cts +2 -2
- package/dist/navbar-floating-pill.d.ts +2 -2
- package/dist/navbar-fullscreen-menu.d.cts +2 -2
- package/dist/navbar-fullscreen-menu.d.ts +2 -2
- package/dist/navbar-icon-links.d.cts +2 -2
- package/dist/navbar-icon-links.d.ts +2 -2
- package/dist/navbar-image-preview.d.cts +2 -2
- package/dist/navbar-image-preview.d.ts +2 -2
- package/dist/navbar-mega-menu.d.cts +2 -2
- package/dist/navbar-mega-menu.d.ts +2 -2
- package/dist/navbar-multi-column-groups.d.cts +2 -2
- package/dist/navbar-multi-column-groups.d.ts +2 -2
- package/dist/navbar-platform-resources.d.cts +2 -2
- package/dist/navbar-platform-resources.d.ts +2 -2
- package/dist/navbar-search-focused.d.cts +2 -2
- package/dist/navbar-search-focused.d.ts +2 -2
- package/dist/navbar-sidebar-mobile.d.cts +2 -2
- package/dist/navbar-sidebar-mobile.d.ts +2 -2
- package/dist/navbar-simple-links.d.cts +2 -2
- package/dist/navbar-simple-links.d.ts +2 -2
- package/dist/navbar-split-cta.d.cts +2 -2
- package/dist/navbar-split-cta.d.ts +2 -2
- package/dist/navbar-sticky-compact.d.cts +2 -2
- package/dist/navbar-sticky-compact.d.ts +2 -2
- package/dist/navbar-tabbed-sections.d.cts +2 -2
- package/dist/navbar-tabbed-sections.d.ts +2 -2
- package/dist/navbar-transparent-overlay.d.cts +2 -2
- package/dist/navbar-transparent-overlay.d.ts +2 -2
- package/dist/page-hero-banner.d.cts +2 -2
- package/dist/page-hero-banner.d.ts +2 -2
- package/dist/pressable.d.cts +1 -1
- package/dist/pressable.d.ts +1 -1
- package/dist/process-expandable-timeline.d.cts +2 -2
- package/dist/process-expandable-timeline.d.ts +2 -2
- package/dist/process-hover-cards.d.cts +2 -2
- package/dist/process-hover-cards.d.ts +2 -2
- package/dist/process-icon-timeline.d.cts +2 -2
- package/dist/process-icon-timeline.d.ts +2 -2
- package/dist/process-mission-principles.d.cts +2 -2
- package/dist/process-mission-principles.d.ts +2 -2
- package/dist/process-numbered-services.d.cts +2 -2
- package/dist/process-numbered-services.d.ts +2 -2
- package/dist/process-roadmap-timeline.d.cts +2 -2
- package/dist/process-roadmap-timeline.d.ts +2 -2
- package/dist/process-scroll-image.d.cts +2 -2
- package/dist/process-scroll-image.d.ts +2 -2
- package/dist/process-steps-grid.d.cts +2 -2
- package/dist/process-steps-grid.d.ts +2 -2
- package/dist/process-sticky-steps.d.cts +2 -2
- package/dist/process-sticky-steps.d.ts +2 -2
- package/dist/project-alternating-motion.d.cts +2 -2
- package/dist/project-alternating-motion.d.ts +2 -2
- package/dist/project-background-reveal.d.cts +2 -2
- package/dist/project-background-reveal.d.ts +2 -2
- package/dist/project-card-overlay.d.cts +2 -2
- package/dist/project-card-overlay.d.ts +2 -2
- package/dist/project-carousel-cinematic.d.cts +2 -2
- package/dist/project-carousel-cinematic.d.ts +2 -2
- package/dist/project-carousel-detail-cards.d.cts +2 -2
- package/dist/project-carousel-detail-cards.d.ts +2 -2
- package/dist/project-carousel-minimal.d.cts +2 -2
- package/dist/project-carousel-minimal.d.ts +2 -2
- package/dist/project-detail-architecture-carousel.d.cts +2 -2
- package/dist/project-detail-architecture-carousel.d.ts +2 -2
- package/dist/project-experience-quote.d.cts +2 -2
- package/dist/project-experience-quote.d.ts +2 -2
- package/dist/project-featured-carousel.d.cts +2 -2
- package/dist/project-featured-carousel.d.ts +2 -2
- package/dist/project-filterable-gallery.d.cts +2 -2
- package/dist/project-filterable-gallery.d.ts +2 -2
- package/dist/project-filterable-three-column.d.cts +2 -2
- package/dist/project-filterable-three-column.d.ts +2 -2
- package/dist/project-grid-gallery.d.cts +2 -2
- package/dist/project-grid-gallery.d.ts +2 -2
- package/dist/project-grid-motion.d.cts +2 -2
- package/dist/project-grid-motion.d.ts +2 -2
- package/dist/project-horizontal-cards.d.cts +2 -2
- package/dist/project-horizontal-cards.d.ts +2 -2
- package/dist/project-hover-reveal-grid.d.cts +2 -2
- package/dist/project-hover-reveal-grid.d.ts +2 -2
- package/dist/project-interactive-hover-reveal.d.cts +2 -2
- package/dist/project-interactive-hover-reveal.d.ts +2 -2
- package/dist/project-masonry-columns.d.cts +2 -2
- package/dist/project-masonry-columns.d.ts +2 -2
- package/dist/project-nature-mosaic.d.cts +2 -2
- package/dist/project-nature-mosaic.d.ts +2 -2
- package/dist/project-scroll-reveal.d.cts +2 -2
- package/dist/project-scroll-reveal.d.ts +2 -2
- package/dist/project-showcase-alternating.d.cts +2 -2
- package/dist/project-showcase-alternating.d.ts +2 -2
- package/dist/project-sticky-scroll.d.cts +2 -2
- package/dist/project-sticky-scroll.d.ts +2 -2
- package/dist/project-studio-hover-preview.d.cts +2 -2
- package/dist/project-studio-hover-preview.d.ts +2 -2
- package/dist/project-table-list.d.cts +2 -2
- package/dist/project-table-list.d.ts +2 -2
- package/dist/project-video-carousel.d.cts +2 -2
- package/dist/project-video-carousel.d.ts +2 -2
- package/dist/project-video-hover-bento.d.cts +2 -2
- package/dist/project-video-hover-bento.d.ts +2 -2
- package/dist/project-video-hover-grid.d.cts +2 -2
- package/dist/project-video-hover-grid.d.ts +2 -2
- package/dist/project-video-hover-rounded.d.cts +2 -2
- package/dist/project-video-hover-rounded.d.ts +2 -2
- package/dist/project-video-hover-stack.d.cts +2 -2
- package/dist/project-video-hover-stack.d.ts +2 -2
- package/dist/project-video-hover-two-by-two.d.cts +2 -2
- package/dist/project-video-hover-two-by-two.d.ts +2 -2
- package/dist/project-work-showcase.d.cts +2 -2
- package/dist/project-work-showcase.d.ts +2 -2
- package/dist/registry.cjs +1084 -447
- package/dist/registry.js +1084 -447
- package/dist/resource-detail-whitepaper-sidebar.d.cts +2 -2
- package/dist/resource-detail-whitepaper-sidebar.d.ts +2 -2
- package/dist/resource-list-course-cards.d.cts +2 -2
- package/dist/resource-list-course-cards.d.ts +2 -2
- package/dist/resource-list-featured-articles.d.cts +2 -2
- package/dist/resource-list-featured-articles.d.ts +2 -2
- package/dist/resource-list-featured-grid.d.cts +2 -2
- package/dist/resource-list-featured-grid.d.ts +2 -2
- package/dist/resource-list-hero-filter.d.cts +2 -2
- package/dist/resource-list-hero-filter.d.ts +2 -2
- package/dist/resource-list-news-updates.d.cts +2 -2
- package/dist/resource-list-news-updates.d.ts +2 -2
- package/dist/reviews-images-helpful.d.cts +2 -2
- package/dist/reviews-images-helpful.d.ts +2 -2
- package/dist/reviews-list-verified.d.cts +2 -2
- package/dist/reviews-list-verified.d.ts +2 -2
- package/dist/section.d.cts +2 -2
- package/dist/section.d.ts +2 -2
- package/dist/service-detail-centered-expertise.d.cts +2 -2
- package/dist/service-detail-centered-expertise.d.ts +2 -2
- package/dist/service-detail-compact-cards.d.cts +2 -2
- package/dist/service-detail-compact-cards.d.ts +2 -2
- package/dist/service-detail-image-hero.d.cts +2 -2
- package/dist/service-detail-image-hero.d.ts +2 -2
- package/dist/service-detail-prose-minimal.d.cts +2 -2
- package/dist/service-detail-prose-minimal.d.ts +2 -2
- package/dist/service-detail-sidebar-related.d.cts +2 -2
- package/dist/service-detail-sidebar-related.d.ts +2 -2
- package/dist/service-detail-sidebar-stats.d.cts +2 -2
- package/dist/service-detail-sidebar-stats.d.ts +2 -2
- package/dist/service-detail-stats-hero.d.cts +2 -2
- package/dist/service-detail-stats-hero.d.ts +2 -2
- package/dist/service-hover-carousel.d.cts +2 -2
- package/dist/service-hover-carousel.d.ts +2 -2
- package/dist/services-list-feature-spotlight.d.cts +2 -2
- package/dist/services-list-feature-spotlight.d.ts +2 -2
- package/dist/stats-animated-counter.cjs +83 -20
- package/dist/stats-animated-counter.d.cts +2 -2
- package/dist/stats-animated-counter.d.ts +2 -2
- package/dist/stats-animated-counter.js +83 -20
- package/dist/stats-bar-comparison.cjs +92 -32
- package/dist/stats-bar-comparison.d.cts +2 -2
- package/dist/stats-bar-comparison.d.ts +2 -2
- package/dist/stats-bar-comparison.js +92 -32
- package/dist/stats-card-group.cjs +51 -38
- package/dist/stats-card-group.d.cts +2 -2
- package/dist/stats-card-group.d.ts +2 -2
- package/dist/stats-card-group.js +51 -38
- package/dist/stats-circular-progress.cjs +110 -31
- package/dist/stats-circular-progress.d.cts +2 -2
- package/dist/stats-circular-progress.d.ts +2 -2
- package/dist/stats-circular-progress.js +110 -31
- package/dist/stats-growth-timeline.cjs +59 -23
- package/dist/stats-growth-timeline.d.cts +2 -2
- package/dist/stats-growth-timeline.d.ts +2 -2
- package/dist/stats-growth-timeline.js +59 -23
- package/dist/stats-icon-cards.cjs +73 -20
- package/dist/stats-icon-cards.d.cts +2 -2
- package/dist/stats-icon-cards.d.ts +2 -2
- package/dist/stats-icon-cards.js +73 -20
- package/dist/stats-impact-grid.d.cts +2 -2
- package/dist/stats-impact-grid.d.ts +2 -2
- package/dist/stats-milestone-sidebar.d.cts +2 -2
- package/dist/stats-milestone-sidebar.d.ts +2 -2
- package/dist/stats-number-ticker.d.cts +2 -2
- package/dist/stats-number-ticker.d.ts +2 -2
- package/dist/stats-primary-secondary.cjs +84 -18
- package/dist/stats-primary-secondary.d.cts +2 -2
- package/dist/stats-primary-secondary.d.ts +2 -2
- package/dist/stats-primary-secondary.js +84 -18
- package/dist/stats-simple-grid.cjs +80 -13
- package/dist/stats-simple-grid.d.cts +2 -2
- package/dist/stats-simple-grid.d.ts +2 -2
- package/dist/stats-simple-grid.js +80 -13
- package/dist/stats-timeline-tabs.cjs +121 -65
- package/dist/stats-timeline-tabs.d.cts +2 -2
- package/dist/stats-timeline-tabs.d.ts +2 -2
- package/dist/stats-timeline-tabs.js +121 -65
- package/dist/team-media-showcase.d.cts +2 -2
- package/dist/team-media-showcase.d.ts +2 -2
- package/dist/testimonial-carousel-cards.d.cts +2 -2
- package/dist/testimonial-carousel-cards.d.ts +2 -2
- package/dist/testimonials-animated-split.d.cts +2 -2
- package/dist/testimonials-animated-split.d.ts +2 -2
- package/dist/testimonials-bento-grid.d.cts +2 -2
- package/dist/testimonials-bento-grid.d.ts +2 -2
- package/dist/testimonials-carousel-image.d.cts +2 -2
- package/dist/testimonials-carousel-image.d.ts +2 -2
- package/dist/testimonials-centered-avatars.d.cts +2 -2
- package/dist/testimonials-centered-avatars.d.ts +2 -2
- package/dist/testimonials-company-logo.d.cts +2 -2
- package/dist/testimonials-company-logo.d.ts +2 -2
- package/dist/testimonials-grid-add-review.d.cts +2 -2
- package/dist/testimonials-grid-add-review.d.ts +2 -2
- package/dist/testimonials-large-quote.d.cts +2 -2
- package/dist/testimonials-large-quote.d.ts +2 -2
- package/dist/testimonials-logo-cards.d.cts +2 -2
- package/dist/testimonials-logo-cards.d.ts +2 -2
- package/dist/testimonials-marquee.d.cts +2 -2
- package/dist/testimonials-marquee.d.ts +2 -2
- package/dist/testimonials-masonry-grid.d.cts +2 -2
- package/dist/testimonials-masonry-grid.d.ts +2 -2
- package/dist/testimonials-mini-dividers.d.cts +2 -2
- package/dist/testimonials-mini-dividers.d.ts +2 -2
- package/dist/testimonials-minimal-numbered.d.cts +2 -2
- package/dist/testimonials-minimal-numbered.d.ts +2 -2
- package/dist/testimonials-parallax-number.d.cts +2 -2
- package/dist/testimonials-parallax-number.d.ts +2 -2
- package/dist/testimonials-quote-carousel.d.cts +2 -2
- package/dist/testimonials-quote-carousel.d.ts +2 -2
- package/dist/testimonials-scrolling-columns.d.cts +2 -2
- package/dist/testimonials-scrolling-columns.d.ts +2 -2
- package/dist/testimonials-simple-grid.d.cts +2 -2
- package/dist/testimonials-simple-grid.d.ts +2 -2
- package/dist/testimonials-slider-minimal.d.cts +2 -2
- package/dist/testimonials-slider-minimal.d.ts +2 -2
- package/dist/testimonials-split-image.d.cts +2 -2
- package/dist/testimonials-split-image.d.ts +2 -2
- package/dist/testimonials-stats-header.d.cts +2 -2
- package/dist/testimonials-stats-header.d.ts +2 -2
- package/dist/testimonials-twitter-cards.d.cts +2 -2
- package/dist/testimonials-twitter-cards.d.ts +2 -2
- package/dist/testimonials-wall-compact.d.cts +2 -2
- package/dist/testimonials-wall-compact.d.ts +2 -2
- package/dist/timeline-ai-workflow-cards.d.cts +2 -2
- package/dist/timeline-ai-workflow-cards.d.ts +2 -2
- package/dist/timeline-alternating-diagonal.d.cts +2 -2
- package/dist/timeline-alternating-diagonal.d.ts +2 -2
- package/dist/timeline-changelog-badges.d.cts +2 -2
- package/dist/timeline-changelog-badges.d.ts +2 -2
- package/dist/timeline-history-prose.d.cts +2 -2
- package/dist/timeline-history-prose.d.ts +2 -2
- package/dist/timeline-horizontal-icons.d.cts +2 -2
- package/dist/timeline-horizontal-icons.d.ts +2 -2
- package/dist/timeline-horizontal-phases.d.cts +2 -2
- package/dist/timeline-horizontal-phases.d.ts +2 -2
- package/dist/timeline-product-launch.d.cts +2 -2
- package/dist/timeline-product-launch.d.ts +2 -2
- package/dist/timeline-productivity-list.d.cts +2 -2
- package/dist/timeline-productivity-list.d.ts +2 -2
- package/dist/timeline-scroll-highlight.d.cts +2 -2
- package/dist/timeline-scroll-highlight.d.ts +2 -2
- package/dist/timeline-scroll-sticky-image.d.cts +2 -2
- package/dist/timeline-scroll-sticky-image.d.ts +2 -2
- package/dist/timeline-stepper-animated.d.cts +2 -2
- package/dist/timeline-stepper-animated.d.ts +2 -2
- package/dist/timeline-tabbed-phases.d.cts +2 -2
- package/dist/timeline-tabbed-phases.d.ts +2 -2
- package/dist/timeline-two-column-featured.d.cts +2 -2
- package/dist/timeline-two-column-featured.d.ts +2 -2
- package/dist/timeline-vertical-icon-dashed.d.cts +2 -2
- package/dist/timeline-vertical-icon-dashed.d.ts +2 -2
- package/dist/types.d.cts +2 -2
- package/dist/types.d.ts +2 -2
- package/package.json +1 -1
package/dist/registry.cjs
CHANGED
|
@@ -76250,7 +76250,7 @@ function ProjectDetailParallaxScroll(props) {
|
|
|
76250
76250
|
}
|
|
76251
76251
|
function BannerPromoCta({
|
|
76252
76252
|
message,
|
|
76253
|
-
discount
|
|
76253
|
+
discount,
|
|
76254
76254
|
separator,
|
|
76255
76255
|
actions,
|
|
76256
76256
|
actionsSlot,
|
|
@@ -76262,11 +76262,18 @@ function BannerPromoCta({
|
|
|
76262
76262
|
discountClassName,
|
|
76263
76263
|
actionsClassName
|
|
76264
76264
|
}) {
|
|
76265
|
-
const
|
|
76265
|
+
const actionsContent = React13.useMemo(() => {
|
|
76266
76266
|
if (actionsSlot) return actionsSlot;
|
|
76267
76267
|
if (!actions || actions.length === 0) return null;
|
|
76268
76268
|
return actions.map((action, index) => {
|
|
76269
|
-
const {
|
|
76269
|
+
const {
|
|
76270
|
+
label,
|
|
76271
|
+
icon: actionIcon,
|
|
76272
|
+
iconAfter,
|
|
76273
|
+
children,
|
|
76274
|
+
className: actionClassName,
|
|
76275
|
+
...pressableProps
|
|
76276
|
+
} = action;
|
|
76270
76277
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76271
76278
|
Pressable,
|
|
76272
76279
|
{
|
|
@@ -76281,20 +76288,28 @@ function BannerPromoCta({
|
|
|
76281
76288
|
index
|
|
76282
76289
|
);
|
|
76283
76290
|
});
|
|
76284
|
-
};
|
|
76285
|
-
const
|
|
76291
|
+
}, [actions, actionsSlot]);
|
|
76292
|
+
const separatorContent = React13.useMemo(() => {
|
|
76286
76293
|
if (separator) return separator;
|
|
76287
76294
|
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("hidden sm:inline", separatorClassName), children: "\xB7" });
|
|
76288
|
-
};
|
|
76295
|
+
}, [separator, separatorClassName]);
|
|
76296
|
+
const messageContent = React13.useMemo(() => {
|
|
76297
|
+
if (!message) return null;
|
|
76298
|
+
return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
|
|
76299
|
+
}, [message, messageClassName]);
|
|
76300
|
+
const discountContent = React13.useMemo(() => {
|
|
76301
|
+
if (!discount) return null;
|
|
76302
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: discountClassName, children: discount });
|
|
76303
|
+
}, [discount, discountClassName]);
|
|
76289
76304
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76290
76305
|
"div",
|
|
76291
76306
|
{
|
|
76292
76307
|
className: cn("w-full bg-primary text-primary-foreground", className),
|
|
76293
76308
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-center text-sm", contentClassName), children: [
|
|
76294
|
-
|
|
76295
|
-
|
|
76296
|
-
|
|
76297
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children:
|
|
76309
|
+
messageContent,
|
|
76310
|
+
messageContent && discountContent && separatorContent,
|
|
76311
|
+
discountContent,
|
|
76312
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent })
|
|
76298
76313
|
] }) })
|
|
76299
76314
|
}
|
|
76300
76315
|
);
|
|
@@ -76314,17 +76329,16 @@ function BannerCountdownSale({
|
|
|
76314
76329
|
timeUnitClassName,
|
|
76315
76330
|
separatorClassName
|
|
76316
76331
|
}) {
|
|
76317
|
-
const
|
|
76318
|
-
() => new Date(Date.now() + 24 * 60 * 60 * 1e3),
|
|
76319
|
-
[]
|
|
76320
|
-
);
|
|
76321
|
-
const targetTime = endTime ?? defaultEndTime;
|
|
76332
|
+
const targetTime = endTime;
|
|
76322
76333
|
const [timeLeft, setTimeLeft] = React13.useState({
|
|
76323
76334
|
hours: 0,
|
|
76324
76335
|
minutes: 0,
|
|
76325
76336
|
seconds: 0
|
|
76326
76337
|
});
|
|
76327
76338
|
React13.useEffect(() => {
|
|
76339
|
+
if (!targetTime) {
|
|
76340
|
+
return;
|
|
76341
|
+
}
|
|
76328
76342
|
const calculateTimeLeft = () => {
|
|
76329
76343
|
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
76330
76344
|
const target = targetTime.getTime();
|
|
@@ -76344,10 +76358,11 @@ function BannerCountdownSale({
|
|
|
76344
76358
|
}, 1e3);
|
|
76345
76359
|
return () => clearInterval(timer);
|
|
76346
76360
|
}, [targetTime]);
|
|
76347
|
-
const pad = (n) => n.toString().padStart(2, "0");
|
|
76348
|
-
const
|
|
76361
|
+
const pad = React13.useCallback((n) => n.toString().padStart(2, "0"), []);
|
|
76362
|
+
const timerContent = React13.useMemo(() => {
|
|
76349
76363
|
if (timerSlot) return timerSlot;
|
|
76350
76364
|
if (renderTimer) return renderTimer(timeLeft);
|
|
76365
|
+
if (!targetTime) return null;
|
|
76351
76366
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-1 font-mono text-lg font-bold", timerClassName), children: [
|
|
76352
76367
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.hours) }),
|
|
76353
76368
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: separatorClassName, children: ":" }),
|
|
@@ -76355,20 +76370,28 @@ function BannerCountdownSale({
|
|
|
76355
76370
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: separatorClassName, children: ":" }),
|
|
76356
76371
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded bg-destructive px-2 py-0.5", timeUnitClassName), children: pad(timeLeft.seconds) })
|
|
76357
76372
|
] });
|
|
76358
|
-
};
|
|
76373
|
+
}, [timerSlot, renderTimer, timeLeft, timerClassName, timeUnitClassName, separatorClassName, pad, targetTime]);
|
|
76374
|
+
const messageContent = React13.useMemo(() => {
|
|
76375
|
+
if (!message) return null;
|
|
76376
|
+
return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
|
|
76377
|
+
}, [message, messageClassName]);
|
|
76378
|
+
const descriptionContent = React13.useMemo(() => {
|
|
76379
|
+
if (!description) return null;
|
|
76380
|
+
return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-destructive-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description });
|
|
76381
|
+
}, [description, descriptionClassName]);
|
|
76359
76382
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full bg-destructive text-white", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap items-center justify-center gap-x-4 gap-y-1 text-sm", contentClassName), children: [
|
|
76360
|
-
|
|
76361
|
-
|
|
76362
|
-
|
|
76383
|
+
messageContent,
|
|
76384
|
+
timerContent,
|
|
76385
|
+
descriptionContent
|
|
76363
76386
|
] }) }) });
|
|
76364
76387
|
}
|
|
76365
76388
|
function BannerDeliveryCountdown({
|
|
76366
76389
|
icon,
|
|
76367
|
-
iconName
|
|
76368
|
-
deliveryDate
|
|
76390
|
+
iconName,
|
|
76391
|
+
deliveryDate,
|
|
76369
76392
|
cutoffTime,
|
|
76370
|
-
prefixText
|
|
76371
|
-
middleText
|
|
76393
|
+
prefixText,
|
|
76394
|
+
middleText,
|
|
76372
76395
|
timerSlot,
|
|
76373
76396
|
renderTimer,
|
|
76374
76397
|
className,
|
|
@@ -76379,17 +76402,16 @@ function BannerDeliveryCountdown({
|
|
|
76379
76402
|
timerClassName,
|
|
76380
76403
|
deliveryDateClassName
|
|
76381
76404
|
}) {
|
|
76382
|
-
const
|
|
76383
|
-
() => new Date(Date.now() + 4 * 60 * 60 * 1e3),
|
|
76384
|
-
[]
|
|
76385
|
-
);
|
|
76386
|
-
const targetTime = cutoffTime ?? defaultCutoffTime;
|
|
76405
|
+
const targetTime = cutoffTime;
|
|
76387
76406
|
const [timeLeft, setTimeLeft] = React13.useState({
|
|
76388
76407
|
hours: 0,
|
|
76389
76408
|
minutes: 0,
|
|
76390
76409
|
seconds: 0
|
|
76391
76410
|
});
|
|
76392
76411
|
React13.useEffect(() => {
|
|
76412
|
+
if (!targetTime) {
|
|
76413
|
+
return;
|
|
76414
|
+
}
|
|
76393
76415
|
const calculateTimeLeft = () => {
|
|
76394
76416
|
const now = (/* @__PURE__ */ new Date()).getTime();
|
|
76395
76417
|
const target = targetTime.getTime();
|
|
@@ -76409,14 +76431,16 @@ function BannerDeliveryCountdown({
|
|
|
76409
76431
|
}, 1e3);
|
|
76410
76432
|
return () => clearInterval(timer);
|
|
76411
76433
|
}, [targetTime]);
|
|
76412
|
-
const pad = (n) => n.toString().padStart(2, "0");
|
|
76413
|
-
const
|
|
76434
|
+
const pad = React13.useCallback((n) => n.toString().padStart(2, "0"), []);
|
|
76435
|
+
const iconContent = React13.useMemo(() => {
|
|
76414
76436
|
if (icon) return icon;
|
|
76437
|
+
if (!iconName) return null;
|
|
76415
76438
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: iconName, size: 16, className: iconClassName });
|
|
76416
|
-
};
|
|
76417
|
-
const
|
|
76439
|
+
}, [icon, iconName, iconClassName]);
|
|
76440
|
+
const timerContent = React13.useMemo(() => {
|
|
76418
76441
|
if (timerSlot) return timerSlot;
|
|
76419
76442
|
if (renderTimer) return renderTimer(timeLeft);
|
|
76443
|
+
if (!targetTime) return null;
|
|
76420
76444
|
return /* @__PURE__ */ jsxRuntime.jsxs("span", { className: cn("font-mono font-bold", timerClassName), children: [
|
|
76421
76445
|
pad(timeLeft.hours),
|
|
76422
76446
|
":",
|
|
@@ -76424,29 +76448,33 @@ function BannerDeliveryCountdown({
|
|
|
76424
76448
|
":",
|
|
76425
76449
|
pad(timeLeft.seconds)
|
|
76426
76450
|
] });
|
|
76427
|
-
};
|
|
76451
|
+
}, [timerSlot, renderTimer, timeLeft, timerClassName, pad, targetTime]);
|
|
76452
|
+
const deliveryDateContent = React13.useMemo(() => {
|
|
76453
|
+
if (!deliveryDate) return null;
|
|
76454
|
+
return typeof deliveryDate === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: deliveryDateClassName, children: deliveryDate });
|
|
76455
|
+
}, [deliveryDate, deliveryDateClassName]);
|
|
76456
|
+
const messageParts = React13.useMemo(() => {
|
|
76457
|
+
return [prefixText, timerContent, middleText, deliveryDateContent].filter(
|
|
76458
|
+
(part) => part !== null && part !== void 0
|
|
76459
|
+
);
|
|
76460
|
+
}, [prefixText, timerContent, middleText, deliveryDateContent]);
|
|
76428
76461
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("w-full bg-accent text-accent-foreground", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container py-2.5", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-wrap items-center justify-center gap-3 text-sm", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", messageClassName), children: [
|
|
76429
|
-
|
|
76430
|
-
/* @__PURE__ */ jsxRuntime.
|
|
76431
|
-
|
|
76432
|
-
|
|
76433
|
-
|
|
76434
|
-
" ",
|
|
76435
|
-
middleText,
|
|
76436
|
-
" ",
|
|
76437
|
-
deliveryDate && (typeof deliveryDate === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-semibold", deliveryDateClassName), children: deliveryDate }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: deliveryDateClassName, children: deliveryDate }))
|
|
76438
|
-
] })
|
|
76462
|
+
iconContent,
|
|
76463
|
+
messageParts.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: messageParts.map((part, index) => /* @__PURE__ */ jsxRuntime.jsxs(React13__namespace.Fragment, { children: [
|
|
76464
|
+
index > 0 ? " " : null,
|
|
76465
|
+
part
|
|
76466
|
+
] }, index)) })
|
|
76439
76467
|
] }) }) }) });
|
|
76440
76468
|
}
|
|
76441
76469
|
function BannerAnnouncementDismissible({
|
|
76442
76470
|
icon,
|
|
76443
|
-
iconName
|
|
76471
|
+
iconName,
|
|
76444
76472
|
message,
|
|
76445
76473
|
actions,
|
|
76446
76474
|
actionsSlot,
|
|
76447
76475
|
onDismiss,
|
|
76448
76476
|
dismissIcon,
|
|
76449
|
-
dismissAriaLabel
|
|
76477
|
+
dismissAriaLabel,
|
|
76450
76478
|
className,
|
|
76451
76479
|
containerClassName,
|
|
76452
76480
|
contentClassName,
|
|
@@ -76456,15 +76484,23 @@ function BannerAnnouncementDismissible({
|
|
|
76456
76484
|
dismissButtonClassName
|
|
76457
76485
|
}) {
|
|
76458
76486
|
const [isVisible, setIsVisible] = React13.useState(true);
|
|
76459
|
-
const
|
|
76487
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
76488
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76460
76489
|
setIsVisible(false);
|
|
76461
76490
|
onDismiss?.();
|
|
76462
|
-
};
|
|
76463
|
-
const
|
|
76491
|
+
}, [onDismiss]);
|
|
76492
|
+
const actionsContent = React13.useMemo(() => {
|
|
76464
76493
|
if (actionsSlot) return actionsSlot;
|
|
76465
76494
|
if (!actions || actions.length === 0) return null;
|
|
76466
76495
|
return actions.map((action, index) => {
|
|
76467
|
-
const {
|
|
76496
|
+
const {
|
|
76497
|
+
label,
|
|
76498
|
+
icon: actionIcon,
|
|
76499
|
+
iconAfter,
|
|
76500
|
+
children,
|
|
76501
|
+
className: actionClassName,
|
|
76502
|
+
...pressableProps
|
|
76503
|
+
} = action;
|
|
76468
76504
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76469
76505
|
Pressable,
|
|
76470
76506
|
{
|
|
@@ -76480,23 +76516,35 @@ function BannerAnnouncementDismissible({
|
|
|
76480
76516
|
index
|
|
76481
76517
|
);
|
|
76482
76518
|
});
|
|
76483
|
-
};
|
|
76484
|
-
const
|
|
76519
|
+
}, [actions, actionsSlot]);
|
|
76520
|
+
const iconContent = React13.useMemo(() => {
|
|
76485
76521
|
if (icon) return icon;
|
|
76486
|
-
|
|
76487
|
-
|
|
76488
|
-
|
|
76522
|
+
if (!iconName) return null;
|
|
76523
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76524
|
+
DynamicIcon,
|
|
76525
|
+
{
|
|
76526
|
+
name: iconName,
|
|
76527
|
+
size: 20,
|
|
76528
|
+
className: cn("shrink-0", iconClassName)
|
|
76529
|
+
}
|
|
76530
|
+
);
|
|
76531
|
+
}, [icon, iconName, iconClassName]);
|
|
76532
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
76489
76533
|
if (dismissIcon) return dismissIcon;
|
|
76490
76534
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
76491
|
-
};
|
|
76535
|
+
}, [dismissIcon]);
|
|
76536
|
+
const messageContent = React13.useMemo(() => {
|
|
76537
|
+
if (!message) return null;
|
|
76538
|
+
return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium text-sm", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: messageClassName, children: message });
|
|
76539
|
+
}, [message, messageClassName]);
|
|
76492
76540
|
if (!isVisible) {
|
|
76493
76541
|
return null;
|
|
76494
76542
|
}
|
|
76495
76543
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-background border-b", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-7xl mx-auto px-4 py-3 flex items-center justify-between gap-2", containerClassName), children: [
|
|
76496
76544
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-4", contentClassName), children: [
|
|
76497
|
-
|
|
76498
|
-
|
|
76499
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children:
|
|
76545
|
+
iconContent,
|
|
76546
|
+
messageContent,
|
|
76547
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
76500
76548
|
] }),
|
|
76501
76549
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
76502
76550
|
Pressable,
|
|
@@ -76507,8 +76555,8 @@ function BannerAnnouncementDismissible({
|
|
|
76507
76555
|
asButton: true,
|
|
76508
76556
|
className: cn("size-8", dismissButtonClassName),
|
|
76509
76557
|
children: [
|
|
76510
|
-
|
|
76511
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
76558
|
+
dismissIconContent,
|
|
76559
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
76512
76560
|
]
|
|
76513
76561
|
}
|
|
76514
76562
|
)
|
|
@@ -76516,14 +76564,14 @@ function BannerAnnouncementDismissible({
|
|
|
76516
76564
|
}
|
|
76517
76565
|
function BannerPrivacyNotice({
|
|
76518
76566
|
icon,
|
|
76519
|
-
iconName
|
|
76567
|
+
iconName,
|
|
76520
76568
|
title,
|
|
76521
76569
|
description,
|
|
76522
76570
|
actions,
|
|
76523
76571
|
actionsSlot,
|
|
76524
76572
|
onDismiss,
|
|
76525
76573
|
dismissIcon,
|
|
76526
|
-
dismissAriaLabel
|
|
76574
|
+
dismissAriaLabel,
|
|
76527
76575
|
className,
|
|
76528
76576
|
containerClassName,
|
|
76529
76577
|
contentClassName,
|
|
@@ -76534,12 +76582,14 @@ function BannerPrivacyNotice({
|
|
|
76534
76582
|
dismissButtonClassName
|
|
76535
76583
|
}) {
|
|
76536
76584
|
const [isVisible, setIsVisible] = React13.useState(true);
|
|
76537
|
-
const
|
|
76585
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
76586
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76538
76587
|
setIsVisible(false);
|
|
76539
76588
|
onDismiss?.();
|
|
76540
|
-
};
|
|
76541
|
-
const
|
|
76589
|
+
}, [onDismiss]);
|
|
76590
|
+
const iconContent = React13.useMemo(() => {
|
|
76542
76591
|
if (icon) return icon;
|
|
76592
|
+
if (!iconName) return null;
|
|
76543
76593
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76544
76594
|
DynamicIcon,
|
|
76545
76595
|
{
|
|
@@ -76548,12 +76598,19 @@ function BannerPrivacyNotice({
|
|
|
76548
76598
|
className: cn("mt-0.5 shrink-0", iconClassName)
|
|
76549
76599
|
}
|
|
76550
76600
|
);
|
|
76551
|
-
};
|
|
76552
|
-
const
|
|
76601
|
+
}, [icon, iconName, iconClassName]);
|
|
76602
|
+
const actionsContent = React13.useMemo(() => {
|
|
76553
76603
|
if (actionsSlot) return actionsSlot;
|
|
76554
76604
|
if (!actions || actions.length === 0) return null;
|
|
76555
76605
|
return actions.map((action, index) => {
|
|
76556
|
-
const {
|
|
76606
|
+
const {
|
|
76607
|
+
label,
|
|
76608
|
+
icon: actionIcon,
|
|
76609
|
+
iconAfter,
|
|
76610
|
+
children,
|
|
76611
|
+
className: actionClassName,
|
|
76612
|
+
...pressableProps
|
|
76613
|
+
} = action;
|
|
76557
76614
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76558
76615
|
Pressable,
|
|
76559
76616
|
{
|
|
@@ -76568,11 +76625,19 @@ function BannerPrivacyNotice({
|
|
|
76568
76625
|
index
|
|
76569
76626
|
);
|
|
76570
76627
|
});
|
|
76571
|
-
};
|
|
76572
|
-
const
|
|
76628
|
+
}, [actions, actionsSlot]);
|
|
76629
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
76573
76630
|
if (dismissIcon) return dismissIcon;
|
|
76574
76631
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
76575
|
-
};
|
|
76632
|
+
}, [dismissIcon]);
|
|
76633
|
+
const titleContent = React13.useMemo(() => {
|
|
76634
|
+
if (!title) return null;
|
|
76635
|
+
return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
|
|
76636
|
+
}, [title, titleClassName]);
|
|
76637
|
+
const descriptionContent = React13.useMemo(() => {
|
|
76638
|
+
if (!description) return null;
|
|
76639
|
+
return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: description });
|
|
76640
|
+
}, [description, descriptionClassName]);
|
|
76576
76641
|
if (!isVisible) {
|
|
76577
76642
|
return null;
|
|
76578
76643
|
}
|
|
@@ -76585,11 +76650,11 @@ function BannerPrivacyNotice({
|
|
|
76585
76650
|
),
|
|
76586
76651
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
|
|
76587
76652
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-4", contentClassName), children: [
|
|
76588
|
-
|
|
76653
|
+
iconContent,
|
|
76589
76654
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
76590
|
-
|
|
76591
|
-
|
|
76592
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children:
|
|
76655
|
+
titleContent,
|
|
76656
|
+
descriptionContent,
|
|
76657
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
76593
76658
|
] })
|
|
76594
76659
|
] }),
|
|
76595
76660
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -76601,8 +76666,8 @@ function BannerPrivacyNotice({
|
|
|
76601
76666
|
asButton: true,
|
|
76602
76667
|
className: cn("size-8", dismissButtonClassName),
|
|
76603
76668
|
children: [
|
|
76604
|
-
|
|
76605
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
76669
|
+
dismissIconContent,
|
|
76670
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
76606
76671
|
]
|
|
76607
76672
|
}
|
|
76608
76673
|
)
|
|
@@ -76612,14 +76677,14 @@ function BannerPrivacyNotice({
|
|
|
76612
76677
|
}
|
|
76613
76678
|
function BannerSurveyIncentive({
|
|
76614
76679
|
icon,
|
|
76615
|
-
iconName
|
|
76680
|
+
iconName,
|
|
76616
76681
|
title,
|
|
76617
76682
|
description,
|
|
76618
76683
|
actions,
|
|
76619
76684
|
actionsSlot,
|
|
76620
76685
|
onDismiss,
|
|
76621
76686
|
dismissIcon,
|
|
76622
|
-
dismissAriaLabel
|
|
76687
|
+
dismissAriaLabel,
|
|
76623
76688
|
className,
|
|
76624
76689
|
containerClassName,
|
|
76625
76690
|
contentClassName,
|
|
@@ -76631,12 +76696,14 @@ function BannerSurveyIncentive({
|
|
|
76631
76696
|
dismissButtonClassName
|
|
76632
76697
|
}) {
|
|
76633
76698
|
const [isVisible, setIsVisible] = React13.useState(true);
|
|
76634
|
-
const
|
|
76699
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
76700
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76635
76701
|
setIsVisible(false);
|
|
76636
76702
|
onDismiss?.();
|
|
76637
|
-
};
|
|
76638
|
-
const
|
|
76703
|
+
}, [onDismiss]);
|
|
76704
|
+
const iconContent = React13.useMemo(() => {
|
|
76639
76705
|
if (icon) return icon;
|
|
76706
|
+
if (!iconName) return null;
|
|
76640
76707
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76641
76708
|
DynamicIcon,
|
|
76642
76709
|
{
|
|
@@ -76645,12 +76712,19 @@ function BannerSurveyIncentive({
|
|
|
76645
76712
|
className: cn("shrink-0 hidden md:block", iconClassName)
|
|
76646
76713
|
}
|
|
76647
76714
|
);
|
|
76648
|
-
};
|
|
76649
|
-
const
|
|
76715
|
+
}, [icon, iconName, iconClassName]);
|
|
76716
|
+
const actionsContent = React13.useMemo(() => {
|
|
76650
76717
|
if (actionsSlot) return actionsSlot;
|
|
76651
76718
|
if (!actions || actions.length === 0) return null;
|
|
76652
76719
|
return actions.map((action, index) => {
|
|
76653
|
-
const {
|
|
76720
|
+
const {
|
|
76721
|
+
label,
|
|
76722
|
+
icon: actionIcon,
|
|
76723
|
+
iconAfter,
|
|
76724
|
+
children,
|
|
76725
|
+
className: actionClassName,
|
|
76726
|
+
...pressableProps
|
|
76727
|
+
} = action;
|
|
76654
76728
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76655
76729
|
Pressable,
|
|
76656
76730
|
{
|
|
@@ -76666,24 +76740,32 @@ function BannerSurveyIncentive({
|
|
|
76666
76740
|
index
|
|
76667
76741
|
);
|
|
76668
76742
|
});
|
|
76669
|
-
};
|
|
76670
|
-
const
|
|
76743
|
+
}, [actions, actionsSlot]);
|
|
76744
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
76671
76745
|
if (dismissIcon) return dismissIcon;
|
|
76672
76746
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
76673
|
-
};
|
|
76747
|
+
}, [dismissIcon]);
|
|
76748
|
+
const titleContent = React13.useMemo(() => {
|
|
76749
|
+
if (!title) return null;
|
|
76750
|
+
return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: titleClassName, children: title });
|
|
76751
|
+
}, [title, titleClassName]);
|
|
76752
|
+
const descriptionContent = React13.useMemo(() => {
|
|
76753
|
+
if (!description) return null;
|
|
76754
|
+
return typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-muted-foreground", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: descriptionClassName, children: description });
|
|
76755
|
+
}, [description, descriptionClassName]);
|
|
76674
76756
|
if (!isVisible) {
|
|
76675
76757
|
return null;
|
|
76676
76758
|
}
|
|
76677
76759
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-background border-b text-sm", className), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex md:items-center justify-between max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
|
|
76678
76760
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", contentClassName), children: [
|
|
76679
|
-
|
|
76761
|
+
iconContent,
|
|
76680
76762
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col md:flex-row gap-1", textClassName), children: [
|
|
76681
|
-
|
|
76682
|
-
|
|
76763
|
+
titleContent,
|
|
76764
|
+
descriptionContent
|
|
76683
76765
|
] })
|
|
76684
76766
|
] }),
|
|
76685
76767
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex gap-2", actionsClassName), children: [
|
|
76686
|
-
|
|
76768
|
+
actionsContent,
|
|
76687
76769
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
76688
76770
|
Pressable,
|
|
76689
76771
|
{
|
|
@@ -76693,8 +76775,8 @@ function BannerSurveyIncentive({
|
|
|
76693
76775
|
asButton: true,
|
|
76694
76776
|
className: cn("size-8", dismissButtonClassName),
|
|
76695
76777
|
children: [
|
|
76696
|
-
|
|
76697
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
76778
|
+
dismissIconContent,
|
|
76779
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
76698
76780
|
]
|
|
76699
76781
|
}
|
|
76700
76782
|
)
|
|
@@ -76703,13 +76785,13 @@ function BannerSurveyIncentive({
|
|
|
76703
76785
|
}
|
|
76704
76786
|
function BannerSocialFollow({
|
|
76705
76787
|
icon,
|
|
76706
|
-
iconName
|
|
76788
|
+
iconName,
|
|
76707
76789
|
message,
|
|
76708
76790
|
actions,
|
|
76709
76791
|
actionsSlot,
|
|
76710
76792
|
onDismiss,
|
|
76711
76793
|
dismissIcon,
|
|
76712
|
-
dismissAriaLabel
|
|
76794
|
+
dismissAriaLabel,
|
|
76713
76795
|
className,
|
|
76714
76796
|
containerClassName,
|
|
76715
76797
|
iconClassName,
|
|
@@ -76718,19 +76800,35 @@ function BannerSocialFollow({
|
|
|
76718
76800
|
dismissButtonClassName
|
|
76719
76801
|
}) {
|
|
76720
76802
|
const [isVisible, setIsVisible] = React13.useState(true);
|
|
76721
|
-
const
|
|
76803
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
76804
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76722
76805
|
setIsVisible(false);
|
|
76723
76806
|
onDismiss?.();
|
|
76724
|
-
};
|
|
76725
|
-
const
|
|
76807
|
+
}, [onDismiss]);
|
|
76808
|
+
const iconContent = React13.useMemo(() => {
|
|
76726
76809
|
if (icon) return icon;
|
|
76727
|
-
|
|
76728
|
-
|
|
76729
|
-
|
|
76810
|
+
if (!iconName) return null;
|
|
76811
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76812
|
+
DynamicIcon,
|
|
76813
|
+
{
|
|
76814
|
+
name: iconName,
|
|
76815
|
+
size: 20,
|
|
76816
|
+
className: cn("shrink-0", iconClassName)
|
|
76817
|
+
}
|
|
76818
|
+
);
|
|
76819
|
+
}, [icon, iconName, iconClassName]);
|
|
76820
|
+
const actionsContent = React13.useMemo(() => {
|
|
76730
76821
|
if (actionsSlot) return actionsSlot;
|
|
76731
76822
|
if (!actions || actions.length === 0) return null;
|
|
76732
76823
|
return actions.map((action, index) => {
|
|
76733
|
-
const {
|
|
76824
|
+
const {
|
|
76825
|
+
label,
|
|
76826
|
+
icon: actionIcon,
|
|
76827
|
+
iconAfter,
|
|
76828
|
+
children,
|
|
76829
|
+
className: actionClassName,
|
|
76830
|
+
...pressableProps
|
|
76831
|
+
} = action;
|
|
76734
76832
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76735
76833
|
Pressable,
|
|
76736
76834
|
{
|
|
@@ -76746,11 +76844,15 @@ function BannerSocialFollow({
|
|
|
76746
76844
|
index
|
|
76747
76845
|
);
|
|
76748
76846
|
});
|
|
76749
|
-
};
|
|
76750
|
-
const
|
|
76847
|
+
}, [actions, actionsSlot]);
|
|
76848
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
76751
76849
|
if (dismissIcon) return dismissIcon;
|
|
76752
76850
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
76753
|
-
};
|
|
76851
|
+
}, [dismissIcon]);
|
|
76852
|
+
const messageContent = React13.useMemo(() => {
|
|
76853
|
+
if (!message) return null;
|
|
76854
|
+
return typeof message === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("font-medium", messageClassName), children: message }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: messageClassName, children: message });
|
|
76855
|
+
}, [message, messageClassName]);
|
|
76754
76856
|
if (!isVisible) {
|
|
76755
76857
|
return null;
|
|
76756
76858
|
}
|
|
@@ -76762,9 +76864,9 @@ function BannerSocialFollow({
|
|
|
76762
76864
|
className
|
|
76763
76865
|
),
|
|
76764
76866
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("max-w-7xl mx-auto px-3 py-3 flex items-center justify-center text-left md:text-center gap-2", containerClassName), children: [
|
|
76765
|
-
|
|
76766
|
-
|
|
76767
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children:
|
|
76867
|
+
iconContent,
|
|
76868
|
+
messageContent,
|
|
76869
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent }),
|
|
76768
76870
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
76769
76871
|
Pressable,
|
|
76770
76872
|
{
|
|
@@ -76774,8 +76876,8 @@ function BannerSocialFollow({
|
|
|
76774
76876
|
asButton: true,
|
|
76775
76877
|
className: cn("size-8", dismissButtonClassName),
|
|
76776
76878
|
children: [
|
|
76777
|
-
|
|
76778
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
76879
|
+
dismissIconContent,
|
|
76880
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
76779
76881
|
]
|
|
76780
76882
|
}
|
|
76781
76883
|
)
|
|
@@ -76785,14 +76887,14 @@ function BannerSocialFollow({
|
|
|
76785
76887
|
}
|
|
76786
76888
|
function BannerGdprRights({
|
|
76787
76889
|
icon,
|
|
76788
|
-
iconName
|
|
76890
|
+
iconName,
|
|
76789
76891
|
title,
|
|
76790
76892
|
description,
|
|
76791
76893
|
actions,
|
|
76792
76894
|
actionsSlot,
|
|
76793
76895
|
onDismiss,
|
|
76794
76896
|
dismissIcon,
|
|
76795
|
-
dismissAriaLabel
|
|
76897
|
+
dismissAriaLabel,
|
|
76796
76898
|
className,
|
|
76797
76899
|
containerClassName,
|
|
76798
76900
|
contentClassName,
|
|
@@ -76803,12 +76905,14 @@ function BannerGdprRights({
|
|
|
76803
76905
|
dismissButtonClassName
|
|
76804
76906
|
}) {
|
|
76805
76907
|
const [isVisible, setIsVisible] = React13.useState(true);
|
|
76806
|
-
const
|
|
76908
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
76909
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76807
76910
|
setIsVisible(false);
|
|
76808
76911
|
onDismiss?.();
|
|
76809
|
-
};
|
|
76810
|
-
const
|
|
76912
|
+
}, [onDismiss]);
|
|
76913
|
+
const iconContent = React13.useMemo(() => {
|
|
76811
76914
|
if (icon) return icon;
|
|
76915
|
+
if (!iconName) return null;
|
|
76812
76916
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76813
76917
|
DynamicIcon,
|
|
76814
76918
|
{
|
|
@@ -76817,12 +76921,19 @@ function BannerGdprRights({
|
|
|
76817
76921
|
className: cn("text-muted-foreground mt-0.5 shrink-0", iconClassName)
|
|
76818
76922
|
}
|
|
76819
76923
|
);
|
|
76820
|
-
};
|
|
76821
|
-
const
|
|
76924
|
+
}, [icon, iconName, iconClassName]);
|
|
76925
|
+
const actionsContent = React13.useMemo(() => {
|
|
76822
76926
|
if (actionsSlot) return actionsSlot;
|
|
76823
76927
|
if (!actions || actions.length === 0) return null;
|
|
76824
76928
|
return actions.map((action, index) => {
|
|
76825
|
-
const {
|
|
76929
|
+
const {
|
|
76930
|
+
label,
|
|
76931
|
+
icon: actionIcon,
|
|
76932
|
+
iconAfter,
|
|
76933
|
+
children,
|
|
76934
|
+
className: actionClassName,
|
|
76935
|
+
...pressableProps
|
|
76936
|
+
} = action;
|
|
76826
76937
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76827
76938
|
Pressable,
|
|
76828
76939
|
{
|
|
@@ -76837,11 +76948,22 @@ function BannerGdprRights({
|
|
|
76837
76948
|
index
|
|
76838
76949
|
);
|
|
76839
76950
|
});
|
|
76840
|
-
};
|
|
76841
|
-
const
|
|
76951
|
+
}, [actions, actionsSlot]);
|
|
76952
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
76842
76953
|
if (dismissIcon) return dismissIcon;
|
|
76843
76954
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
76844
|
-
};
|
|
76955
|
+
}, [dismissIcon]);
|
|
76956
|
+
const titleContent = React13.useMemo(() => {
|
|
76957
|
+
if (!title) return null;
|
|
76958
|
+
return typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("font-semibold text-sm", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title });
|
|
76959
|
+
}, [title, titleClassName]);
|
|
76960
|
+
const descriptionContent = React13.useMemo(() => {
|
|
76961
|
+
if (!description && !actionsContent) return null;
|
|
76962
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
|
|
76963
|
+
description,
|
|
76964
|
+
actionsContent && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent })
|
|
76965
|
+
] });
|
|
76966
|
+
}, [description, actionsContent, descriptionClassName, actionsClassName]);
|
|
76845
76967
|
if (!isVisible) {
|
|
76846
76968
|
return null;
|
|
76847
76969
|
}
|
|
@@ -76854,13 +76976,10 @@ function BannerGdprRights({
|
|
|
76854
76976
|
),
|
|
76855
76977
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start justify-between gap-4 max-w-7xl mx-auto px-4 py-4", containerClassName), children: [
|
|
76856
76978
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-3", contentClassName), children: [
|
|
76857
|
-
|
|
76979
|
+
iconContent,
|
|
76858
76980
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
76859
|
-
|
|
76860
|
-
|
|
76861
|
-
description,
|
|
76862
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: renderActions() })
|
|
76863
|
-
] })
|
|
76981
|
+
titleContent,
|
|
76982
|
+
descriptionContent
|
|
76864
76983
|
] })
|
|
76865
76984
|
] }),
|
|
76866
76985
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -76872,8 +76991,8 @@ function BannerGdprRights({
|
|
|
76872
76991
|
asButton: true,
|
|
76873
76992
|
className: cn("size-8", dismissButtonClassName),
|
|
76874
76993
|
children: [
|
|
76875
|
-
|
|
76876
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
76994
|
+
dismissIconContent,
|
|
76995
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
76877
76996
|
]
|
|
76878
76997
|
}
|
|
76879
76998
|
)
|
|
@@ -76882,8 +77001,8 @@ function BannerGdprRights({
|
|
|
76882
77001
|
);
|
|
76883
77002
|
}
|
|
76884
77003
|
function BannerEventPromo({
|
|
76885
|
-
eventName
|
|
76886
|
-
eventDetails
|
|
77004
|
+
eventName,
|
|
77005
|
+
eventDetails,
|
|
76887
77006
|
separator,
|
|
76888
77007
|
actions,
|
|
76889
77008
|
actionsSlot,
|
|
@@ -76896,11 +77015,18 @@ function BannerEventPromo({
|
|
|
76896
77015
|
eventDetailsClassName,
|
|
76897
77016
|
actionsClassName
|
|
76898
77017
|
}) {
|
|
76899
|
-
const
|
|
77018
|
+
const actionsContent = React13.useMemo(() => {
|
|
76900
77019
|
if (actionsSlot) return actionsSlot;
|
|
76901
77020
|
if (!actions || actions.length === 0) return null;
|
|
76902
77021
|
return actions.map((action, index) => {
|
|
76903
|
-
const {
|
|
77022
|
+
const {
|
|
77023
|
+
label,
|
|
77024
|
+
icon: actionIcon,
|
|
77025
|
+
iconAfter,
|
|
77026
|
+
children,
|
|
77027
|
+
className: actionClassName,
|
|
77028
|
+
...pressableProps
|
|
77029
|
+
} = action;
|
|
76904
77030
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76905
77031
|
Pressable,
|
|
76906
77032
|
{
|
|
@@ -76916,8 +77042,8 @@ function BannerEventPromo({
|
|
|
76916
77042
|
index
|
|
76917
77043
|
);
|
|
76918
77044
|
});
|
|
76919
|
-
};
|
|
76920
|
-
const
|
|
77045
|
+
}, [actions, actionsSlot]);
|
|
77046
|
+
const separatorContent = React13.useMemo(() => {
|
|
76921
77047
|
if (separator) return separator;
|
|
76922
77048
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76923
77049
|
"svg",
|
|
@@ -76928,28 +77054,36 @@ function BannerEventPromo({
|
|
|
76928
77054
|
children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
76929
77055
|
}
|
|
76930
77056
|
);
|
|
76931
|
-
};
|
|
77057
|
+
}, [separator, separatorClassName]);
|
|
77058
|
+
const eventNameContent = React13.useMemo(() => {
|
|
77059
|
+
if (!eventName) return null;
|
|
77060
|
+
return typeof eventName === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventNameClassName, children: eventName });
|
|
77061
|
+
}, [eventName, eventNameClassName]);
|
|
77062
|
+
const eventDetailsContent = React13.useMemo(() => {
|
|
77063
|
+
if (!eventDetails) return null;
|
|
77064
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails });
|
|
77065
|
+
}, [eventDetails, eventDetailsClassName]);
|
|
76932
77066
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("bg-primary text-primary-foreground", className), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto px-4 md:px-6 2xl:max-w-[1400px]", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-between gap-x-6 p-4", contentClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-wrap justify-between w-full items-center gap-x-4 gap-y-2", textClassName), children: [
|
|
76933
77067
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm leading-6", children: [
|
|
76934
|
-
|
|
76935
|
-
|
|
76936
|
-
|
|
77068
|
+
eventNameContent,
|
|
77069
|
+
eventNameContent && eventDetailsContent && separatorContent,
|
|
77070
|
+
eventDetailsContent
|
|
76937
77071
|
] }),
|
|
76938
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children:
|
|
77072
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
76939
77073
|
] }) }) }) });
|
|
76940
77074
|
}
|
|
76941
77075
|
function BannerFloatingOffer({
|
|
76942
|
-
offerTitle
|
|
76943
|
-
offerDescription
|
|
77076
|
+
offerTitle,
|
|
77077
|
+
offerDescription,
|
|
76944
77078
|
separator,
|
|
76945
77079
|
actions,
|
|
76946
77080
|
actionsSlot,
|
|
76947
77081
|
open,
|
|
76948
|
-
defaultOpen
|
|
77082
|
+
defaultOpen,
|
|
76949
77083
|
onOpenChange,
|
|
76950
|
-
dismissible
|
|
77084
|
+
dismissible,
|
|
76951
77085
|
dismissIcon,
|
|
76952
|
-
dismissAriaLabel
|
|
77086
|
+
dismissAriaLabel,
|
|
76953
77087
|
className,
|
|
76954
77088
|
containerClassName,
|
|
76955
77089
|
textClassName,
|
|
@@ -76960,24 +77094,34 @@ function BannerFloatingOffer({
|
|
|
76960
77094
|
dismissButtonClassName
|
|
76961
77095
|
}) {
|
|
76962
77096
|
const isControlled = open !== void 0;
|
|
76963
|
-
const
|
|
77097
|
+
const initialOpen = defaultOpen ?? true;
|
|
77098
|
+
const [internalOpen, setInternalOpen] = React13.useState(initialOpen);
|
|
76964
77099
|
const isVisible = isControlled ? open : internalOpen;
|
|
77100
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
77101
|
+
const isDismissible = dismissible ?? false;
|
|
76965
77102
|
React13.useEffect(() => {
|
|
76966
77103
|
if (!isControlled && defaultOpen !== internalOpen) {
|
|
76967
|
-
setInternalOpen(
|
|
77104
|
+
setInternalOpen(initialOpen);
|
|
76968
77105
|
}
|
|
76969
|
-
}, [defaultOpen, isControlled, internalOpen]);
|
|
76970
|
-
const handleDismiss = () => {
|
|
77106
|
+
}, [defaultOpen, initialOpen, isControlled, internalOpen]);
|
|
77107
|
+
const handleDismiss = React13.useCallback(() => {
|
|
76971
77108
|
if (!isControlled) {
|
|
76972
77109
|
setInternalOpen(false);
|
|
76973
77110
|
}
|
|
76974
77111
|
onOpenChange?.(false);
|
|
76975
|
-
};
|
|
76976
|
-
const
|
|
77112
|
+
}, [isControlled, onOpenChange]);
|
|
77113
|
+
const actionsContent = React13.useMemo(() => {
|
|
76977
77114
|
if (actionsSlot) return actionsSlot;
|
|
76978
77115
|
if (!actions || actions.length === 0) return null;
|
|
76979
77116
|
return actions.map((action, index) => {
|
|
76980
|
-
const {
|
|
77117
|
+
const {
|
|
77118
|
+
label,
|
|
77119
|
+
icon: actionIcon,
|
|
77120
|
+
iconAfter,
|
|
77121
|
+
children,
|
|
77122
|
+
className: actionClassName,
|
|
77123
|
+
...pressableProps
|
|
77124
|
+
} = action;
|
|
76981
77125
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
76982
77126
|
Pressable,
|
|
76983
77127
|
{
|
|
@@ -76993,8 +77137,8 @@ function BannerFloatingOffer({
|
|
|
76993
77137
|
index
|
|
76994
77138
|
);
|
|
76995
77139
|
});
|
|
76996
|
-
};
|
|
76997
|
-
const
|
|
77140
|
+
}, [actions, actionsSlot]);
|
|
77141
|
+
const separatorContent = React13.useMemo(() => {
|
|
76998
77142
|
if (separator) return separator;
|
|
76999
77143
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
77000
77144
|
"svg",
|
|
@@ -77005,11 +77149,19 @@ function BannerFloatingOffer({
|
|
|
77005
77149
|
children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
77006
77150
|
}
|
|
77007
77151
|
);
|
|
77008
|
-
};
|
|
77009
|
-
const
|
|
77152
|
+
}, [separator, separatorClassName]);
|
|
77153
|
+
const dismissIconContent = React13.useMemo(() => {
|
|
77010
77154
|
if (dismissIcon) return dismissIcon;
|
|
77011
77155
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
77012
|
-
};
|
|
77156
|
+
}, [dismissIcon]);
|
|
77157
|
+
const offerTitleContent = React13.useMemo(() => {
|
|
77158
|
+
if (!offerTitle) return null;
|
|
77159
|
+
return typeof offerTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerTitleClassName, children: offerTitle });
|
|
77160
|
+
}, [offerTitle, offerTitleClassName]);
|
|
77161
|
+
const offerDescriptionContent = React13.useMemo(() => {
|
|
77162
|
+
if (!offerDescription) return null;
|
|
77163
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription });
|
|
77164
|
+
}, [offerDescription, offerDescriptionClassName]);
|
|
77013
77165
|
if (!isVisible) {
|
|
77014
77166
|
return null;
|
|
77015
77167
|
}
|
|
@@ -77022,13 +77174,13 @@ function BannerFloatingOffer({
|
|
|
77022
77174
|
),
|
|
77023
77175
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("pointer-events-auto flex items-center justify-between gap-x-6 bg-primary px-6 py-2.5 sm:rounded-xl sm:py-3 sm:pl-4 sm:pr-3.5", containerClassName), children: [
|
|
77024
77176
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", textClassName), children: [
|
|
77025
|
-
|
|
77026
|
-
|
|
77027
|
-
|
|
77177
|
+
offerTitleContent,
|
|
77178
|
+
offerTitleContent && offerDescriptionContent && separatorContent,
|
|
77179
|
+
offerDescriptionContent
|
|
77028
77180
|
] }),
|
|
77029
77181
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", actionsClassName), children: [
|
|
77030
|
-
|
|
77031
|
-
|
|
77182
|
+
actionsContent,
|
|
77183
|
+
isDismissible && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
77032
77184
|
Pressable,
|
|
77033
77185
|
{
|
|
77034
77186
|
onClick: handleDismiss,
|
|
@@ -77037,8 +77189,8 @@ function BannerFloatingOffer({
|
|
|
77037
77189
|
asButton: true,
|
|
77038
77190
|
className: cn("size-8 text-primary-foreground hover:text-primary-foreground/80", dismissButtonClassName),
|
|
77039
77191
|
children: [
|
|
77040
|
-
|
|
77041
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
77192
|
+
dismissIconContent,
|
|
77193
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
77042
77194
|
]
|
|
77043
77195
|
}
|
|
77044
77196
|
)
|
|
@@ -84027,8 +84179,8 @@ function StatsSimpleGrid({
|
|
|
84027
84179
|
statsSlot,
|
|
84028
84180
|
actions,
|
|
84029
84181
|
actionsSlot,
|
|
84030
|
-
background
|
|
84031
|
-
spacing
|
|
84182
|
+
background,
|
|
84183
|
+
spacing,
|
|
84032
84184
|
pattern,
|
|
84033
84185
|
patternOpacity,
|
|
84034
84186
|
patternClassName,
|
|
@@ -84046,7 +84198,14 @@ function StatsSimpleGrid({
|
|
|
84046
84198
|
if (actionsSlot) return actionsSlot;
|
|
84047
84199
|
if (!actions || actions.length === 0) return null;
|
|
84048
84200
|
return actions.map((action, index) => {
|
|
84049
|
-
const {
|
|
84201
|
+
const {
|
|
84202
|
+
label,
|
|
84203
|
+
icon,
|
|
84204
|
+
iconAfter,
|
|
84205
|
+
children,
|
|
84206
|
+
className: actionClassName,
|
|
84207
|
+
...pressableProps
|
|
84208
|
+
} = action;
|
|
84050
84209
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84051
84210
|
Pressable,
|
|
84052
84211
|
{
|
|
@@ -84067,10 +84226,34 @@ function StatsSimpleGrid({
|
|
|
84067
84226
|
if (statsSlot) return statsSlot;
|
|
84068
84227
|
if (!stats || stats.length === 0) return null;
|
|
84069
84228
|
return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("w-full", statItemClassName), children: [
|
|
84070
|
-
stat.value && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84071
|
-
|
|
84229
|
+
stat.value && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84230
|
+
"div",
|
|
84231
|
+
{
|
|
84232
|
+
className: cn(
|
|
84233
|
+
"mb-2 text-4xl font-semibold sm:text-4xl lg:text-5xl",
|
|
84234
|
+
statValueClassName
|
|
84235
|
+
),
|
|
84236
|
+
children: stat.value
|
|
84237
|
+
}
|
|
84238
|
+
),
|
|
84239
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84240
|
+
"div",
|
|
84241
|
+
{
|
|
84242
|
+
className: cn(
|
|
84243
|
+
"text-base leading-6 text-muted-foreground lg:text-lg",
|
|
84244
|
+
statLabelClassName
|
|
84245
|
+
),
|
|
84246
|
+
children: stat.label
|
|
84247
|
+
}
|
|
84248
|
+
)
|
|
84072
84249
|
] }, index));
|
|
84073
|
-
}, [
|
|
84250
|
+
}, [
|
|
84251
|
+
statsSlot,
|
|
84252
|
+
stats,
|
|
84253
|
+
statItemClassName,
|
|
84254
|
+
statValueClassName,
|
|
84255
|
+
statLabelClassName
|
|
84256
|
+
]);
|
|
84074
84257
|
const hasHeaderContent = !!(heading || actionsSlot || actions && actions.length > 0);
|
|
84075
84258
|
const hasStatsContent = !!(statsSlot || stats && stats.length > 0);
|
|
84076
84259
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -84082,13 +84265,49 @@ function StatsSimpleGrid({
|
|
|
84082
84265
|
patternOpacity,
|
|
84083
84266
|
patternClassName,
|
|
84084
84267
|
className,
|
|
84085
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84086
|
-
|
|
84087
|
-
|
|
84088
|
-
|
|
84089
|
-
|
|
84090
|
-
|
|
84091
|
-
|
|
84268
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84269
|
+
"div",
|
|
84270
|
+
{
|
|
84271
|
+
className: cn(
|
|
84272
|
+
"flex flex-col items-start text-left",
|
|
84273
|
+
containerClassName
|
|
84274
|
+
),
|
|
84275
|
+
children: [
|
|
84276
|
+
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 w-full md:mb-16", contentClassName), children: [
|
|
84277
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84278
|
+
"h2",
|
|
84279
|
+
{
|
|
84280
|
+
className: cn(
|
|
84281
|
+
"mb-8 w-full max-w-[24rem] text-3xl font-bold text-pretty sm:text-4xl md:max-w-[30rem] lg:max-w-[37rem] lg:text-5xl",
|
|
84282
|
+
headingClassName
|
|
84283
|
+
),
|
|
84284
|
+
children: heading
|
|
84285
|
+
}
|
|
84286
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
84287
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84288
|
+
"div",
|
|
84289
|
+
{
|
|
84290
|
+
className: cn(
|
|
84291
|
+
"flex flex-col justify-start gap-2 sm:flex-row",
|
|
84292
|
+
actionsClassName
|
|
84293
|
+
),
|
|
84294
|
+
children: actionsContent
|
|
84295
|
+
}
|
|
84296
|
+
)
|
|
84297
|
+
] }),
|
|
84298
|
+
hasStatsContent && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84299
|
+
"div",
|
|
84300
|
+
{
|
|
84301
|
+
className: cn(
|
|
84302
|
+
"grid w-full grid-cols-2 gap-12 sm:w-fit sm:grid-cols-4 lg:gap-16",
|
|
84303
|
+
statsClassName
|
|
84304
|
+
),
|
|
84305
|
+
children: statsContent
|
|
84306
|
+
}
|
|
84307
|
+
)
|
|
84308
|
+
]
|
|
84309
|
+
}
|
|
84310
|
+
)
|
|
84092
84311
|
}
|
|
84093
84312
|
);
|
|
84094
84313
|
}
|
|
@@ -84097,8 +84316,8 @@ function StatsIconCards({
|
|
|
84097
84316
|
description,
|
|
84098
84317
|
stats,
|
|
84099
84318
|
statsSlot,
|
|
84100
|
-
background
|
|
84101
|
-
spacing
|
|
84319
|
+
background,
|
|
84320
|
+
spacing,
|
|
84102
84321
|
pattern,
|
|
84103
84322
|
patternOpacity,
|
|
84104
84323
|
patternClassName,
|
|
@@ -84114,28 +84333,46 @@ function StatsIconCards({
|
|
|
84114
84333
|
statGrowthClassName,
|
|
84115
84334
|
statIconClassName
|
|
84116
84335
|
}) {
|
|
84117
|
-
const renderIcon = React13.useCallback(
|
|
84118
|
-
|
|
84119
|
-
|
|
84120
|
-
|
|
84121
|
-
|
|
84122
|
-
|
|
84123
|
-
|
|
84124
|
-
|
|
84125
|
-
|
|
84126
|
-
|
|
84127
|
-
|
|
84128
|
-
|
|
84336
|
+
const renderIcon = React13.useCallback(
|
|
84337
|
+
(stat) => {
|
|
84338
|
+
if (stat.iconSlot) return stat.iconSlot;
|
|
84339
|
+
if (!stat.icon) return null;
|
|
84340
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84341
|
+
"div",
|
|
84342
|
+
{
|
|
84343
|
+
className: cn(
|
|
84344
|
+
"flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
|
|
84345
|
+
statIconClassName
|
|
84346
|
+
),
|
|
84347
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
|
|
84348
|
+
}
|
|
84349
|
+
);
|
|
84350
|
+
},
|
|
84351
|
+
[statIconClassName]
|
|
84352
|
+
);
|
|
84129
84353
|
const statsContent = React13.useMemo(() => {
|
|
84130
84354
|
if (statsSlot) return statsSlot;
|
|
84131
84355
|
if (!stats || stats.length === 0) return null;
|
|
84132
84356
|
return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
84133
84357
|
"div",
|
|
84134
84358
|
{
|
|
84135
|
-
className: cn(
|
|
84359
|
+
className: cn(
|
|
84360
|
+
"relative overflow-hidden rounded-xl border bg-background p-6",
|
|
84361
|
+
stat.className,
|
|
84362
|
+
statCardClassName
|
|
84363
|
+
),
|
|
84136
84364
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
|
|
84137
84365
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
84138
|
-
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84366
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84367
|
+
"p",
|
|
84368
|
+
{
|
|
84369
|
+
className: cn(
|
|
84370
|
+
"font-medium text-muted-foreground",
|
|
84371
|
+
statLabelClassName
|
|
84372
|
+
),
|
|
84373
|
+
children: stat.label
|
|
84374
|
+
}
|
|
84375
|
+
),
|
|
84139
84376
|
stat.value && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mt-4 text-4xl font-bold", statValueClassName), children: stat.value }),
|
|
84140
84377
|
stat.growth && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84141
84378
|
"p",
|
|
@@ -84164,7 +84401,15 @@ function StatsIconCards({
|
|
|
84164
84401
|
},
|
|
84165
84402
|
index
|
|
84166
84403
|
));
|
|
84167
|
-
}, [
|
|
84404
|
+
}, [
|
|
84405
|
+
statsSlot,
|
|
84406
|
+
stats,
|
|
84407
|
+
statCardClassName,
|
|
84408
|
+
statLabelClassName,
|
|
84409
|
+
statValueClassName,
|
|
84410
|
+
statGrowthClassName,
|
|
84411
|
+
renderIcon
|
|
84412
|
+
]);
|
|
84168
84413
|
const hasHeaderContent = !!(heading || description);
|
|
84169
84414
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84170
84415
|
Section,
|
|
@@ -84177,10 +84422,37 @@ function StatsIconCards({
|
|
|
84177
84422
|
className,
|
|
84178
84423
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
|
|
84179
84424
|
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-10 text-center", contentClassName), children: [
|
|
84180
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84181
|
-
|
|
84425
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84426
|
+
"h2",
|
|
84427
|
+
{
|
|
84428
|
+
className: cn(
|
|
84429
|
+
"text-3xl font-bold md:text-4xl",
|
|
84430
|
+
headingClassName
|
|
84431
|
+
),
|
|
84432
|
+
children: heading
|
|
84433
|
+
}
|
|
84434
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
84435
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84436
|
+
"p",
|
|
84437
|
+
{
|
|
84438
|
+
className: cn(
|
|
84439
|
+
"mt-3 text-muted-foreground",
|
|
84440
|
+
descriptionClassName
|
|
84441
|
+
),
|
|
84442
|
+
children: description
|
|
84443
|
+
}
|
|
84444
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-3", descriptionClassName), children: description }))
|
|
84182
84445
|
] }),
|
|
84183
|
-
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84446
|
+
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84447
|
+
"div",
|
|
84448
|
+
{
|
|
84449
|
+
className: cn(
|
|
84450
|
+
"grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
|
|
84451
|
+
statsClassName
|
|
84452
|
+
),
|
|
84453
|
+
children: statsContent
|
|
84454
|
+
}
|
|
84455
|
+
)
|
|
84184
84456
|
] })
|
|
84185
84457
|
}
|
|
84186
84458
|
);
|
|
@@ -84193,8 +84465,8 @@ function StatsTimelineTabs({
|
|
|
84193
84465
|
periods,
|
|
84194
84466
|
tabsSlot,
|
|
84195
84467
|
defaultPeriod,
|
|
84196
|
-
background
|
|
84197
|
-
spacing
|
|
84468
|
+
background,
|
|
84469
|
+
spacing,
|
|
84198
84470
|
pattern,
|
|
84199
84471
|
patternOpacity,
|
|
84200
84472
|
patternClassName,
|
|
@@ -84218,68 +84490,100 @@ function StatsTimelineTabs({
|
|
|
84218
84490
|
const tabsContent = React13.useMemo(() => {
|
|
84219
84491
|
if (tabsSlot) return tabsSlot;
|
|
84220
84492
|
if (!periods || periods.length === 0) return null;
|
|
84221
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84222
|
-
|
|
84223
|
-
|
|
84224
|
-
|
|
84225
|
-
|
|
84226
|
-
|
|
84227
|
-
{
|
|
84228
|
-
|
|
84229
|
-
|
|
84230
|
-
|
|
84231
|
-
|
|
84232
|
-
|
|
84233
|
-
|
|
84234
|
-
|
|
84235
|
-
|
|
84236
|
-
|
|
84237
|
-
|
|
84238
|
-
|
|
84239
|
-
{
|
|
84240
|
-
name: "lucide/clock",
|
|
84241
|
-
size: 16,
|
|
84242
|
-
className: "mr-1 text-muted-foreground"
|
|
84243
|
-
}
|
|
84493
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84494
|
+
Tabs,
|
|
84495
|
+
{
|
|
84496
|
+
defaultValue: effectiveDefaultPeriod,
|
|
84497
|
+
className: cn("mt-8 w-full", tabsClassName),
|
|
84498
|
+
children: [
|
|
84499
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-8 flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { className: tabsListClassName, children: periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: period.id, children: period.label }, period.id)) }) }),
|
|
84500
|
+
periods.map((period) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
84501
|
+
TabsContent,
|
|
84502
|
+
{
|
|
84503
|
+
value: period.id,
|
|
84504
|
+
className: cn("mt-4", period.className),
|
|
84505
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
84506
|
+
"div",
|
|
84507
|
+
{
|
|
84508
|
+
className: cn(
|
|
84509
|
+
"grid gap-6 md:grid-cols-2 lg:grid-cols-4",
|
|
84510
|
+
statsGridClassName
|
|
84244
84511
|
),
|
|
84245
|
-
|
|
84246
|
-
|
|
84247
|
-
|
|
84248
|
-
|
|
84249
|
-
|
|
84250
|
-
|
|
84251
|
-
|
|
84252
|
-
|
|
84253
|
-
|
|
84254
|
-
|
|
84255
|
-
|
|
84256
|
-
|
|
84257
|
-
|
|
84258
|
-
|
|
84259
|
-
|
|
84260
|
-
|
|
84261
|
-
|
|
84262
|
-
|
|
84263
|
-
|
|
84264
|
-
|
|
84265
|
-
|
|
84266
|
-
|
|
84267
|
-
|
|
84268
|
-
|
|
84269
|
-
|
|
84270
|
-
|
|
84271
|
-
|
|
84272
|
-
|
|
84273
|
-
|
|
84274
|
-
|
|
84275
|
-
|
|
84276
|
-
|
|
84277
|
-
|
|
84278
|
-
|
|
84279
|
-
|
|
84280
|
-
|
|
84281
|
-
|
|
84282
|
-
|
|
84512
|
+
children: period.stats.map((stat, index) => {
|
|
84513
|
+
const isPositive = stat.trend === "up" && !stat.inversePositive || stat.trend === "down" && stat.inversePositive;
|
|
84514
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84515
|
+
"div",
|
|
84516
|
+
{
|
|
84517
|
+
className: cn(
|
|
84518
|
+
"rounded-lg border bg-card p-6 transition-shadow hover:shadow-md",
|
|
84519
|
+
stat.className,
|
|
84520
|
+
statCardClassName
|
|
84521
|
+
),
|
|
84522
|
+
children: [
|
|
84523
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-start justify-between", children: [
|
|
84524
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-lg font-medium", children: stat.label }),
|
|
84525
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center", children: [
|
|
84526
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
84527
|
+
DynamicIcon,
|
|
84528
|
+
{
|
|
84529
|
+
name: "lucide/clock",
|
|
84530
|
+
size: 16,
|
|
84531
|
+
className: "mr-1 text-muted-foreground"
|
|
84532
|
+
}
|
|
84533
|
+
),
|
|
84534
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs text-muted-foreground", children: period.label })
|
|
84535
|
+
] })
|
|
84536
|
+
] }),
|
|
84537
|
+
stat.value && /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mt-4 text-3xl font-bold", children: stat.value }),
|
|
84538
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-2 flex items-center", children: [
|
|
84539
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
84540
|
+
"div",
|
|
84541
|
+
{
|
|
84542
|
+
className: cn(
|
|
84543
|
+
"flex items-center rounded-full px-2 py-1 text-xs font-medium",
|
|
84544
|
+
isPositive ? "bg-emerald-50 text-emerald-600 dark:bg-emerald-950 dark:text-emerald-400" : "bg-rose-50 text-rose-600 dark:bg-rose-950 dark:text-rose-400"
|
|
84545
|
+
),
|
|
84546
|
+
children: [
|
|
84547
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
84548
|
+
DynamicIcon,
|
|
84549
|
+
{
|
|
84550
|
+
name: stat.trend === "up" ? "lucide/arrow-up-right" : "lucide/arrow-down-right",
|
|
84551
|
+
size: 12,
|
|
84552
|
+
className: "mr-1"
|
|
84553
|
+
}
|
|
84554
|
+
),
|
|
84555
|
+
Math.abs(stat.change),
|
|
84556
|
+
"%"
|
|
84557
|
+
]
|
|
84558
|
+
}
|
|
84559
|
+
),
|
|
84560
|
+
stat.previousLabel && /* @__PURE__ */ jsxRuntime.jsxs("p", { className: "ml-2 text-sm text-muted-foreground", children: [
|
|
84561
|
+
"vs ",
|
|
84562
|
+
stat.previousLabel
|
|
84563
|
+
] })
|
|
84564
|
+
] })
|
|
84565
|
+
]
|
|
84566
|
+
},
|
|
84567
|
+
index
|
|
84568
|
+
);
|
|
84569
|
+
})
|
|
84570
|
+
}
|
|
84571
|
+
)
|
|
84572
|
+
},
|
|
84573
|
+
period.id
|
|
84574
|
+
))
|
|
84575
|
+
]
|
|
84576
|
+
}
|
|
84577
|
+
);
|
|
84578
|
+
}, [
|
|
84579
|
+
tabsSlot,
|
|
84580
|
+
periods,
|
|
84581
|
+
effectiveDefaultPeriod,
|
|
84582
|
+
tabsClassName,
|
|
84583
|
+
tabsListClassName,
|
|
84584
|
+
statsGridClassName,
|
|
84585
|
+
statCardClassName
|
|
84586
|
+
]);
|
|
84283
84587
|
const hasHeaderContent = !!(badge || badgeSlot || heading || description);
|
|
84284
84588
|
const hasTabsContent = !!(tabsSlot || periods && periods.length > 0);
|
|
84285
84589
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -84294,8 +84598,32 @@ function StatsTimelineTabs({
|
|
|
84294
84598
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col space-y-6", children: [
|
|
84295
84599
|
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("space-y-2 text-center", headerClassName), children: [
|
|
84296
84600
|
badgeContent,
|
|
84297
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84298
|
-
|
|
84601
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84602
|
+
"h2",
|
|
84603
|
+
{
|
|
84604
|
+
className: cn(
|
|
84605
|
+
"text-3xl font-bold md:text-4xl",
|
|
84606
|
+
headingClassName
|
|
84607
|
+
),
|
|
84608
|
+
children: heading
|
|
84609
|
+
}
|
|
84610
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
84611
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84612
|
+
"p",
|
|
84613
|
+
{
|
|
84614
|
+
className: cn(
|
|
84615
|
+
"mx-auto max-w-2xl text-muted-foreground",
|
|
84616
|
+
descriptionClassName
|
|
84617
|
+
),
|
|
84618
|
+
children: description
|
|
84619
|
+
}
|
|
84620
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
84621
|
+
"div",
|
|
84622
|
+
{
|
|
84623
|
+
className: cn("mx-auto max-w-2xl", descriptionClassName),
|
|
84624
|
+
children: description
|
|
84625
|
+
}
|
|
84626
|
+
))
|
|
84299
84627
|
] }),
|
|
84300
84628
|
hasTabsContent && tabsContent
|
|
84301
84629
|
] }) })
|
|
@@ -84310,8 +84638,8 @@ function StatsPrimarySecondary({
|
|
|
84310
84638
|
primarySlot,
|
|
84311
84639
|
secondaryStats,
|
|
84312
84640
|
secondaryStatsSlot,
|
|
84313
|
-
background
|
|
84314
|
-
spacing
|
|
84641
|
+
background,
|
|
84642
|
+
spacing,
|
|
84315
84643
|
pattern,
|
|
84316
84644
|
patternOpacity,
|
|
84317
84645
|
patternClassName,
|
|
@@ -84328,30 +84656,77 @@ function StatsPrimarySecondary({
|
|
|
84328
84656
|
const renderPrimaryBadge = React13.useCallback(() => {
|
|
84329
84657
|
if (primaryBadgeSlot) return primaryBadgeSlot;
|
|
84330
84658
|
if (!primaryBadge) return null;
|
|
84331
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84332
|
-
|
|
84333
|
-
|
|
84334
|
-
|
|
84659
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84660
|
+
Badge,
|
|
84661
|
+
{
|
|
84662
|
+
variant: "secondary",
|
|
84663
|
+
className: cn("ml-2 gap-1", primaryBadgeClassName),
|
|
84664
|
+
children: [
|
|
84665
|
+
/* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/badge-check", size: 16, className: "shrink-0" }),
|
|
84666
|
+
primaryBadge
|
|
84667
|
+
]
|
|
84668
|
+
}
|
|
84669
|
+
);
|
|
84335
84670
|
}, [primaryBadgeSlot, primaryBadge, primaryBadgeClassName]);
|
|
84336
84671
|
const primaryContent = React13.useMemo(() => {
|
|
84337
84672
|
if (primarySlot) return primarySlot;
|
|
84338
84673
|
if (!primaryValue) return null;
|
|
84339
84674
|
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("lg:col-span-4", primaryClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:pe-6 xl:pe-12", children: [
|
|
84340
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
84341
|
-
|
|
84342
|
-
|
|
84343
|
-
|
|
84344
|
-
|
|
84675
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
84676
|
+
"p",
|
|
84677
|
+
{
|
|
84678
|
+
className: cn(
|
|
84679
|
+
"text-6xl font-bold leading-10",
|
|
84680
|
+
primaryValueClassName
|
|
84681
|
+
),
|
|
84682
|
+
children: [
|
|
84683
|
+
primaryValue,
|
|
84684
|
+
renderPrimaryBadge()
|
|
84685
|
+
]
|
|
84686
|
+
}
|
|
84687
|
+
),
|
|
84688
|
+
primaryDescription && (typeof primaryDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84689
|
+
"p",
|
|
84690
|
+
{
|
|
84691
|
+
className: cn(
|
|
84692
|
+
"mt-2 text-muted-foreground sm:mt-3",
|
|
84693
|
+
primaryDescriptionClassName
|
|
84694
|
+
),
|
|
84695
|
+
children: primaryDescription
|
|
84696
|
+
}
|
|
84697
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-2 sm:mt-3", primaryDescriptionClassName), children: primaryDescription }))
|
|
84345
84698
|
] }) });
|
|
84346
|
-
}, [
|
|
84699
|
+
}, [
|
|
84700
|
+
primarySlot,
|
|
84701
|
+
primaryValue,
|
|
84702
|
+
primaryClassName,
|
|
84703
|
+
primaryValueClassName,
|
|
84704
|
+
primaryDescription,
|
|
84705
|
+
primaryDescriptionClassName,
|
|
84706
|
+
renderPrimaryBadge
|
|
84707
|
+
]);
|
|
84347
84708
|
const secondaryStatsContent = React13.useMemo(() => {
|
|
84348
84709
|
if (secondaryStatsSlot) return secondaryStatsSlot;
|
|
84349
84710
|
if (!secondaryStats || secondaryStats.length === 0) return null;
|
|
84350
84711
|
return secondaryStats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: stat.className, children: [
|
|
84351
84712
|
stat.value && /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-3xl font-semibold", secondaryValueClassName), children: stat.value }),
|
|
84352
|
-
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84713
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84714
|
+
"p",
|
|
84715
|
+
{
|
|
84716
|
+
className: cn(
|
|
84717
|
+
"mt-1 text-muted-foreground",
|
|
84718
|
+
secondaryLabelClassName
|
|
84719
|
+
),
|
|
84720
|
+
children: stat.label
|
|
84721
|
+
}
|
|
84722
|
+
)
|
|
84353
84723
|
] }, index));
|
|
84354
|
-
}, [
|
|
84724
|
+
}, [
|
|
84725
|
+
secondaryStatsSlot,
|
|
84726
|
+
secondaryStats,
|
|
84727
|
+
secondaryValueClassName,
|
|
84728
|
+
secondaryLabelClassName
|
|
84729
|
+
]);
|
|
84355
84730
|
const hasPrimaryContent = !!(primarySlot || primaryValue);
|
|
84356
84731
|
const hasSecondaryContent = !!(secondaryStatsSlot || secondaryStats && secondaryStats.length > 0);
|
|
84357
84732
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -84363,10 +84738,29 @@ function StatsPrimarySecondary({
|
|
|
84363
84738
|
patternOpacity,
|
|
84364
84739
|
patternClassName,
|
|
84365
84740
|
className,
|
|
84366
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84367
|
-
|
|
84368
|
-
|
|
84369
|
-
|
|
84741
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84742
|
+
"div",
|
|
84743
|
+
{
|
|
84744
|
+
className: cn(
|
|
84745
|
+
"grid items-center gap-6 lg:grid-cols-12 lg:gap-12",
|
|
84746
|
+
containerClassName
|
|
84747
|
+
),
|
|
84748
|
+
children: [
|
|
84749
|
+
hasPrimaryContent && primaryContent,
|
|
84750
|
+
hasSecondaryContent && /* @__PURE__ */ jsxRuntime.jsx(
|
|
84751
|
+
"div",
|
|
84752
|
+
{
|
|
84753
|
+
className: cn(
|
|
84754
|
+
"relative lg:before:absolute lg:before:-start-12 lg:before:top-0 lg:before:h-full lg:before:w-px lg:before:bg-border",
|
|
84755
|
+
hasPrimaryContent ? "lg:col-span-8" : "lg:col-span-12",
|
|
84756
|
+
secondaryClassName
|
|
84757
|
+
),
|
|
84758
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-6 sm:gap-8 md:grid-cols-4 lg:grid-cols-3", children: secondaryStatsContent })
|
|
84759
|
+
}
|
|
84760
|
+
)
|
|
84761
|
+
]
|
|
84762
|
+
}
|
|
84763
|
+
)
|
|
84370
84764
|
}
|
|
84371
84765
|
);
|
|
84372
84766
|
}
|
|
@@ -84385,8 +84779,8 @@ function StatsGrowthTimeline({
|
|
|
84385
84779
|
futureSlot,
|
|
84386
84780
|
actions,
|
|
84387
84781
|
actionsSlot,
|
|
84388
|
-
background
|
|
84389
|
-
spacing
|
|
84782
|
+
background,
|
|
84783
|
+
spacing,
|
|
84390
84784
|
pattern,
|
|
84391
84785
|
patternOpacity,
|
|
84392
84786
|
patternClassName,
|
|
@@ -84409,14 +84803,7 @@ function StatsGrowthTimeline({
|
|
|
84409
84803
|
const renderMilestoneIcon = React13.useCallback((milestone) => {
|
|
84410
84804
|
if (milestone.iconSlot) return milestone.iconSlot;
|
|
84411
84805
|
if (!milestone.icon) return null;
|
|
84412
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
84413
|
-
DynamicIcon,
|
|
84414
|
-
{
|
|
84415
|
-
name: milestone.icon,
|
|
84416
|
-
size: 32,
|
|
84417
|
-
className: "text-primary"
|
|
84418
|
-
}
|
|
84419
|
-
) });
|
|
84806
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-16 w-16 items-center justify-center rounded-full bg-primary/10", children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: milestone.icon, size: 32, className: "text-primary" }) });
|
|
84420
84807
|
}, []);
|
|
84421
84808
|
const milestonesContent = React13.useMemo(() => {
|
|
84422
84809
|
if (milestonesSlot) return milestonesSlot;
|
|
@@ -84451,18 +84838,35 @@ function StatsGrowthTimeline({
|
|
|
84451
84838
|
milestone.id
|
|
84452
84839
|
)) })
|
|
84453
84840
|
] });
|
|
84454
|
-
}, [
|
|
84841
|
+
}, [
|
|
84842
|
+
milestonesSlot,
|
|
84843
|
+
milestones,
|
|
84844
|
+
timelineClassName,
|
|
84845
|
+
milestoneClassName,
|
|
84846
|
+
renderMilestoneIcon
|
|
84847
|
+
]);
|
|
84455
84848
|
const currentStatsContent = React13.useMemo(() => {
|
|
84456
84849
|
if (currentStatsSlot) return currentStatsSlot;
|
|
84457
84850
|
if (!currentStats || currentStats.length === 0) return null;
|
|
84458
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84459
|
-
|
|
84460
|
-
|
|
84461
|
-
|
|
84462
|
-
|
|
84463
|
-
|
|
84464
|
-
|
|
84465
|
-
|
|
84851
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
84852
|
+
"div",
|
|
84853
|
+
{
|
|
84854
|
+
className: cn("mt-24 rounded-lg bg-muted p-8", currentStatsClassName),
|
|
84855
|
+
children: [
|
|
84856
|
+
currentStatsHeading && (typeof currentStatsHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-6 text-center text-2xl font-bold", children: currentStatsHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-6 text-center", children: currentStatsHeading })),
|
|
84857
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-2 gap-8 md:grid-cols-4", children: currentStats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("text-center", stat.className), children: [
|
|
84858
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-2 text-3xl font-bold text-primary md:text-4xl", children: stat.value }),
|
|
84859
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium text-muted-foreground", children: stat.label })
|
|
84860
|
+
] }, index)) })
|
|
84861
|
+
]
|
|
84862
|
+
}
|
|
84863
|
+
);
|
|
84864
|
+
}, [
|
|
84865
|
+
currentStatsSlot,
|
|
84866
|
+
currentStats,
|
|
84867
|
+
currentStatsHeading,
|
|
84868
|
+
currentStatsClassName
|
|
84869
|
+
]);
|
|
84466
84870
|
const actionsContent = React13.useMemo(() => {
|
|
84467
84871
|
if (actionsSlot) return actionsSlot;
|
|
84468
84872
|
if (!actions || actions.length === 0) return null;
|
|
@@ -84483,13 +84887,21 @@ function StatsGrowthTimeline({
|
|
|
84483
84887
|
}, [actionsSlot, actions]);
|
|
84484
84888
|
const futureContent = React13.useMemo(() => {
|
|
84485
84889
|
if (futureSlot) return futureSlot;
|
|
84486
|
-
if (!futureHeading && !futureDescription && (!actions || actions.length === 0))
|
|
84890
|
+
if (!futureHeading && !futureDescription && (!actions || actions.length === 0))
|
|
84891
|
+
return null;
|
|
84487
84892
|
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mt-16 text-center", futureClassName), children: [
|
|
84488
84893
|
futureHeading && (typeof futureHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-4 text-2xl font-bold", children: futureHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-4", children: futureHeading })),
|
|
84489
84894
|
futureDescription && (typeof futureDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mx-auto mb-8 max-w-2xl text-muted-foreground", children: futureDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto mb-8 max-w-2xl", children: futureDescription })),
|
|
84490
84895
|
actionsContent
|
|
84491
84896
|
] });
|
|
84492
|
-
}, [
|
|
84897
|
+
}, [
|
|
84898
|
+
futureSlot,
|
|
84899
|
+
futureHeading,
|
|
84900
|
+
futureDescription,
|
|
84901
|
+
futureClassName,
|
|
84902
|
+
actionsContent,
|
|
84903
|
+
actions
|
|
84904
|
+
]);
|
|
84493
84905
|
const hasHeaderContent = !!(badge || badgeSlot || heading || description);
|
|
84494
84906
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84495
84907
|
Section,
|
|
@@ -84503,8 +84915,26 @@ function StatsGrowthTimeline({
|
|
|
84503
84915
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-5xl", containerClassName), children: [
|
|
84504
84916
|
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-16 text-center", headerClassName), children: [
|
|
84505
84917
|
badgeContent,
|
|
84506
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84507
|
-
|
|
84918
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84919
|
+
"h2",
|
|
84920
|
+
{
|
|
84921
|
+
className: cn(
|
|
84922
|
+
"mb-4 text-3xl font-bold md:text-5xl",
|
|
84923
|
+
headingClassName
|
|
84924
|
+
),
|
|
84925
|
+
children: heading
|
|
84926
|
+
}
|
|
84927
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
|
|
84928
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84929
|
+
"p",
|
|
84930
|
+
{
|
|
84931
|
+
className: cn(
|
|
84932
|
+
"mx-auto max-w-3xl text-lg text-muted-foreground",
|
|
84933
|
+
descriptionClassName
|
|
84934
|
+
),
|
|
84935
|
+
children: description
|
|
84936
|
+
}
|
|
84937
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-3xl", descriptionClassName), children: description }))
|
|
84508
84938
|
] }),
|
|
84509
84939
|
milestonesContent,
|
|
84510
84940
|
currentStatsContent,
|
|
@@ -84807,8 +85237,8 @@ function StatsCircularProgress({
|
|
|
84807
85237
|
categories,
|
|
84808
85238
|
categoriesSlot,
|
|
84809
85239
|
defaultCategory,
|
|
84810
|
-
background
|
|
84811
|
-
spacing
|
|
85240
|
+
background,
|
|
85241
|
+
spacing,
|
|
84812
85242
|
pattern,
|
|
84813
85243
|
patternOpacity,
|
|
84814
85244
|
patternClassName,
|
|
@@ -84844,40 +85274,95 @@ function StatsCircularProgress({
|
|
|
84844
85274
|
className: "w-full rounded-md border bg-background px-3 py-2",
|
|
84845
85275
|
children: categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, `select-${cat.id}`))
|
|
84846
85276
|
}
|
|
84847
|
-
) }),
|
|
84848
|
-
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
84849
|
-
|
|
84850
|
-
|
|
84851
|
-
|
|
84852
|
-
|
|
84853
|
-
|
|
84854
|
-
|
|
84855
|
-
|
|
84856
|
-
|
|
84857
|
-
|
|
84858
|
-
|
|
85277
|
+
) }),
|
|
85278
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
85279
|
+
Tabs,
|
|
85280
|
+
{
|
|
85281
|
+
value: category,
|
|
85282
|
+
onValueChange: setCategory,
|
|
85283
|
+
className: cn("w-full", tabsClassName),
|
|
85284
|
+
children: [
|
|
85285
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-12 hidden justify-center md:flex", children: /* @__PURE__ */ jsxRuntime.jsx(TabsList, { children: categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsTrigger, { value: cat.id, children: typeof cat.name === "string" ? `${cat.name} Metrics` : cat.name }, cat.id)) }) }),
|
|
85286
|
+
categories.map((cat) => /* @__PURE__ */ jsxRuntime.jsx(TabsContent, { value: cat.id, className: cat.className, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
85287
|
+
"div",
|
|
85288
|
+
{
|
|
85289
|
+
className: cn(
|
|
85290
|
+
"grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
|
|
85291
|
+
statsClassName
|
|
85292
|
+
),
|
|
85293
|
+
children: cat.stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85294
|
+
"div",
|
|
84859
85295
|
{
|
|
84860
85296
|
className: cn(
|
|
84861
|
-
"
|
|
84862
|
-
|
|
84863
|
-
|
|
85297
|
+
"flex flex-col items-center justify-center rounded-xl border bg-card p-6",
|
|
85298
|
+
stat.className,
|
|
85299
|
+
statCardClassName
|
|
84864
85300
|
),
|
|
84865
85301
|
children: [
|
|
84866
|
-
|
|
84867
|
-
|
|
85302
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative mb-4 flex items-center justify-center", children: [
|
|
85303
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
85304
|
+
CircularProgressIndicator,
|
|
85305
|
+
{
|
|
85306
|
+
value: stat.value,
|
|
85307
|
+
size: 120
|
|
85308
|
+
}
|
|
85309
|
+
),
|
|
85310
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "absolute flex flex-col items-center justify-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85311
|
+
"span",
|
|
85312
|
+
{
|
|
85313
|
+
className: cn(
|
|
85314
|
+
"text-2xl font-bold md:text-3xl",
|
|
85315
|
+
getColorClass(stat.value),
|
|
85316
|
+
statValueClassName
|
|
85317
|
+
),
|
|
85318
|
+
children: [
|
|
85319
|
+
stat.value,
|
|
85320
|
+
stat.suffix
|
|
85321
|
+
]
|
|
85322
|
+
}
|
|
85323
|
+
) })
|
|
85324
|
+
] }),
|
|
85325
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx(
|
|
85326
|
+
"h3",
|
|
85327
|
+
{
|
|
85328
|
+
className: cn(
|
|
85329
|
+
"text-center text-lg font-semibold md:text-xl",
|
|
85330
|
+
statLabelClassName
|
|
85331
|
+
),
|
|
85332
|
+
children: stat.label
|
|
85333
|
+
}
|
|
85334
|
+
),
|
|
85335
|
+
stat.info && /* @__PURE__ */ jsxRuntime.jsx(
|
|
85336
|
+
"p",
|
|
85337
|
+
{
|
|
85338
|
+
className: cn(
|
|
85339
|
+
"mt-1 text-center text-xs text-muted-foreground md:text-sm",
|
|
85340
|
+
statInfoClassName
|
|
85341
|
+
),
|
|
85342
|
+
children: stat.info
|
|
85343
|
+
}
|
|
85344
|
+
)
|
|
84868
85345
|
]
|
|
84869
|
-
}
|
|
84870
|
-
|
|
84871
|
-
|
|
84872
|
-
|
|
84873
|
-
|
|
84874
|
-
|
|
84875
|
-
|
|
84876
|
-
|
|
84877
|
-
)) }) }, cat.id))
|
|
84878
|
-
] })
|
|
85346
|
+
},
|
|
85347
|
+
index
|
|
85348
|
+
))
|
|
85349
|
+
}
|
|
85350
|
+
) }, cat.id))
|
|
85351
|
+
]
|
|
85352
|
+
}
|
|
85353
|
+
)
|
|
84879
85354
|
] });
|
|
84880
|
-
}, [
|
|
85355
|
+
}, [
|
|
85356
|
+
categoriesSlot,
|
|
85357
|
+
categories,
|
|
85358
|
+
category,
|
|
85359
|
+
tabsClassName,
|
|
85360
|
+
statsClassName,
|
|
85361
|
+
statCardClassName,
|
|
85362
|
+
statValueClassName,
|
|
85363
|
+
statLabelClassName,
|
|
85364
|
+
statInfoClassName
|
|
85365
|
+
]);
|
|
84881
85366
|
const hasHeaderContent = !!(badge || badgeSlot || heading || description);
|
|
84882
85367
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84883
85368
|
Section,
|
|
@@ -84891,8 +85376,32 @@ function StatsCircularProgress({
|
|
|
84891
85376
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-6xl", containerClassName), children: [
|
|
84892
85377
|
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
|
|
84893
85378
|
badgeContent,
|
|
84894
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
84895
|
-
|
|
85379
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
85380
|
+
"h2",
|
|
85381
|
+
{
|
|
85382
|
+
className: cn(
|
|
85383
|
+
"text-3xl font-bold md:text-4xl",
|
|
85384
|
+
headingClassName
|
|
85385
|
+
),
|
|
85386
|
+
children: heading
|
|
85387
|
+
}
|
|
85388
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
85389
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
85390
|
+
"p",
|
|
85391
|
+
{
|
|
85392
|
+
className: cn(
|
|
85393
|
+
"mx-auto mt-3 max-w-2xl text-muted-foreground",
|
|
85394
|
+
descriptionClassName
|
|
85395
|
+
),
|
|
85396
|
+
children: description
|
|
85397
|
+
}
|
|
85398
|
+
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
85399
|
+
"div",
|
|
85400
|
+
{
|
|
85401
|
+
className: cn("mx-auto mt-3 max-w-2xl", descriptionClassName),
|
|
85402
|
+
children: description
|
|
85403
|
+
}
|
|
85404
|
+
))
|
|
84896
85405
|
] }),
|
|
84897
85406
|
categoriesContent
|
|
84898
85407
|
] })
|
|
@@ -84904,8 +85413,8 @@ function StatsCardGroup({
|
|
|
84904
85413
|
statsSlot,
|
|
84905
85414
|
avatars,
|
|
84906
85415
|
avatarsSlot,
|
|
84907
|
-
background
|
|
84908
|
-
spacing
|
|
85416
|
+
background,
|
|
85417
|
+
spacing,
|
|
84909
85418
|
pattern,
|
|
84910
85419
|
patternOpacity,
|
|
84911
85420
|
patternClassName,
|
|
@@ -84919,44 +85428,50 @@ function StatsCardGroup({
|
|
|
84919
85428
|
avatarsClassName,
|
|
84920
85429
|
optixFlowConfig
|
|
84921
85430
|
}) {
|
|
84922
|
-
const renderIcon = React13.useCallback(
|
|
84923
|
-
|
|
84924
|
-
|
|
84925
|
-
|
|
84926
|
-
|
|
84927
|
-
|
|
84928
|
-
className: cn(
|
|
84929
|
-
"mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
|
|
84930
|
-
statIconClassName
|
|
84931
|
-
),
|
|
84932
|
-
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
|
|
84933
|
-
}
|
|
84934
|
-
);
|
|
84935
|
-
}, [statIconClassName]);
|
|
84936
|
-
const renderAvatars = React13.useCallback((stat) => {
|
|
84937
|
-
if (!stat.showAvatars) return null;
|
|
84938
|
-
if (avatarsSlot) return avatarsSlot;
|
|
84939
|
-
if (!avatars || avatars.length === 0) return null;
|
|
84940
|
-
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
|
|
84941
|
-
avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
84942
|
-
img.Img,
|
|
85431
|
+
const renderIcon = React13.useCallback(
|
|
85432
|
+
(stat) => {
|
|
85433
|
+
if (stat.iconSlot) return stat.iconSlot;
|
|
85434
|
+
if (!stat.icon) return null;
|
|
85435
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85436
|
+
"div",
|
|
84943
85437
|
{
|
|
84944
|
-
src: avatar.src,
|
|
84945
|
-
alt: avatar.alt,
|
|
84946
85438
|
className: cn(
|
|
84947
|
-
"h-
|
|
84948
|
-
|
|
85439
|
+
"mb-4 flex h-12 w-12 items-center justify-center rounded-full bg-primary/10",
|
|
85440
|
+
statIconClassName
|
|
84949
85441
|
),
|
|
84950
|
-
|
|
84951
|
-
}
|
|
84952
|
-
|
|
84953
|
-
|
|
84954
|
-
|
|
84955
|
-
|
|
84956
|
-
|
|
84957
|
-
|
|
84958
|
-
|
|
84959
|
-
|
|
85442
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 24, className: "text-primary" })
|
|
85443
|
+
}
|
|
85444
|
+
);
|
|
85445
|
+
},
|
|
85446
|
+
[statIconClassName]
|
|
85447
|
+
);
|
|
85448
|
+
const renderAvatars = React13.useCallback(
|
|
85449
|
+
(stat) => {
|
|
85450
|
+
if (!stat.showAvatars) return null;
|
|
85451
|
+
if (avatarsSlot) return avatarsSlot;
|
|
85452
|
+
if (!avatars || avatars.length === 0) return null;
|
|
85453
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex -space-x-2", avatarsClassName), children: [
|
|
85454
|
+
avatars.slice(0, 4).map((avatar, avatarIndex) => /* @__PURE__ */ jsxRuntime.jsx(
|
|
85455
|
+
img.Img,
|
|
85456
|
+
{
|
|
85457
|
+
src: avatar.src,
|
|
85458
|
+
alt: avatar.alt,
|
|
85459
|
+
className: cn(
|
|
85460
|
+
"h-8 w-8 rounded-full border-2 border-background object-cover",
|
|
85461
|
+
avatar.className
|
|
85462
|
+
),
|
|
85463
|
+
optixFlowConfig
|
|
85464
|
+
},
|
|
85465
|
+
avatarIndex
|
|
85466
|
+
)),
|
|
85467
|
+
avatars.length > 4 && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex h-8 w-8 items-center justify-center rounded-full border-2 border-background bg-muted text-xs font-medium", children: [
|
|
85468
|
+
"+",
|
|
85469
|
+
avatars.length - 4
|
|
85470
|
+
] })
|
|
85471
|
+
] });
|
|
85472
|
+
},
|
|
85473
|
+
[avatarsSlot, avatars, avatarsClassName, optixFlowConfig]
|
|
85474
|
+
);
|
|
84960
85475
|
const statsContent = React13.useMemo(() => {
|
|
84961
85476
|
if (statsSlot) return statsSlot;
|
|
84962
85477
|
if (!stats || stats.length === 0) return null;
|
|
@@ -84986,7 +85501,14 @@ function StatsCardGroup({
|
|
|
84986
85501
|
},
|
|
84987
85502
|
index
|
|
84988
85503
|
));
|
|
84989
|
-
}, [
|
|
85504
|
+
}, [
|
|
85505
|
+
statsSlot,
|
|
85506
|
+
stats,
|
|
85507
|
+
statValueClassName,
|
|
85508
|
+
statLabelClassName,
|
|
85509
|
+
renderIcon,
|
|
85510
|
+
renderAvatars
|
|
85511
|
+
]);
|
|
84990
85512
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
84991
85513
|
Section,
|
|
84992
85514
|
{
|
|
@@ -85036,17 +85558,38 @@ function AnimatedStatItem({
|
|
|
85036
85558
|
const iconContent = React13.useMemo(() => {
|
|
85037
85559
|
if (stat.iconSlot) return stat.iconSlot;
|
|
85038
85560
|
if (!stat.icon) return null;
|
|
85039
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85561
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85562
|
+
"div",
|
|
85563
|
+
{
|
|
85564
|
+
className: cn(
|
|
85565
|
+
"mb-4 flex h-14 w-14 items-center justify-center rounded-full bg-primary/10",
|
|
85566
|
+
iconClassName
|
|
85567
|
+
),
|
|
85568
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: stat.icon, size: 28, className: "text-primary" })
|
|
85569
|
+
}
|
|
85570
|
+
);
|
|
85040
85571
|
}, [stat.iconSlot, stat.icon, iconClassName]);
|
|
85041
|
-
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85042
|
-
|
|
85043
|
-
|
|
85044
|
-
stat.
|
|
85045
|
-
|
|
85046
|
-
|
|
85047
|
-
|
|
85048
|
-
|
|
85049
|
-
|
|
85572
|
+
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85573
|
+
"div",
|
|
85574
|
+
{
|
|
85575
|
+
className: cn("flex flex-col items-center text-center", stat.className),
|
|
85576
|
+
children: [
|
|
85577
|
+
iconContent,
|
|
85578
|
+
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
85579
|
+
"div",
|
|
85580
|
+
{
|
|
85581
|
+
className: cn("mb-2 text-4xl font-bold md:text-5xl", valueClassName),
|
|
85582
|
+
children: [
|
|
85583
|
+
stat.prefix,
|
|
85584
|
+
count,
|
|
85585
|
+
stat.suffix
|
|
85586
|
+
]
|
|
85587
|
+
}
|
|
85588
|
+
),
|
|
85589
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-muted-foreground", labelClassName), children: stat.label })
|
|
85590
|
+
]
|
|
85591
|
+
}
|
|
85592
|
+
);
|
|
85050
85593
|
}
|
|
85051
85594
|
function StatsAnimatedCounter({
|
|
85052
85595
|
heading,
|
|
@@ -85054,8 +85597,8 @@ function StatsAnimatedCounter({
|
|
|
85054
85597
|
stats,
|
|
85055
85598
|
statsSlot,
|
|
85056
85599
|
animationDuration = 2e3,
|
|
85057
|
-
background
|
|
85058
|
-
spacing
|
|
85600
|
+
background,
|
|
85601
|
+
spacing,
|
|
85059
85602
|
pattern,
|
|
85060
85603
|
patternOpacity,
|
|
85061
85604
|
patternClassName,
|
|
@@ -85102,7 +85645,15 @@ function StatsAnimatedCounter({
|
|
|
85102
85645
|
},
|
|
85103
85646
|
index
|
|
85104
85647
|
));
|
|
85105
|
-
}, [
|
|
85648
|
+
}, [
|
|
85649
|
+
statsSlot,
|
|
85650
|
+
stats,
|
|
85651
|
+
animationDuration,
|
|
85652
|
+
isVisible,
|
|
85653
|
+
statValueClassName,
|
|
85654
|
+
statLabelClassName,
|
|
85655
|
+
statIconClassName
|
|
85656
|
+
]);
|
|
85106
85657
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85107
85658
|
Section,
|
|
85108
85659
|
{
|
|
@@ -85112,13 +85663,47 @@ function StatsAnimatedCounter({
|
|
|
85112
85663
|
patternOpacity,
|
|
85113
85664
|
patternClassName,
|
|
85114
85665
|
className,
|
|
85115
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85116
|
-
|
|
85117
|
-
|
|
85118
|
-
|
|
85119
|
-
|
|
85120
|
-
|
|
85121
|
-
|
|
85666
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85667
|
+
"div",
|
|
85668
|
+
{
|
|
85669
|
+
ref: sectionRef,
|
|
85670
|
+
className: cn("mx-auto max-w-5xl", containerClassName),
|
|
85671
|
+
children: [
|
|
85672
|
+
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", contentClassName), children: [
|
|
85673
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
85674
|
+
"h2",
|
|
85675
|
+
{
|
|
85676
|
+
className: cn(
|
|
85677
|
+
"mb-4 text-3xl font-bold md:text-4xl",
|
|
85678
|
+
headingClassName
|
|
85679
|
+
),
|
|
85680
|
+
children: heading
|
|
85681
|
+
}
|
|
85682
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
|
|
85683
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
85684
|
+
"p",
|
|
85685
|
+
{
|
|
85686
|
+
className: cn(
|
|
85687
|
+
"mx-auto max-w-2xl text-muted-foreground",
|
|
85688
|
+
descriptionClassName
|
|
85689
|
+
),
|
|
85690
|
+
children: description
|
|
85691
|
+
}
|
|
85692
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
|
|
85693
|
+
] }),
|
|
85694
|
+
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
85695
|
+
"div",
|
|
85696
|
+
{
|
|
85697
|
+
className: cn(
|
|
85698
|
+
"grid gap-8 sm:grid-cols-2 lg:grid-cols-4",
|
|
85699
|
+
statsClassName
|
|
85700
|
+
),
|
|
85701
|
+
children: statsContent
|
|
85702
|
+
}
|
|
85703
|
+
)
|
|
85704
|
+
]
|
|
85705
|
+
}
|
|
85706
|
+
)
|
|
85122
85707
|
}
|
|
85123
85708
|
);
|
|
85124
85709
|
}
|
|
@@ -85385,8 +85970,8 @@ function StatsBarComparison({
|
|
|
85385
85970
|
comparisons,
|
|
85386
85971
|
comparisonsSlot,
|
|
85387
85972
|
animate = true,
|
|
85388
|
-
background
|
|
85389
|
-
spacing
|
|
85973
|
+
background,
|
|
85974
|
+
spacing,
|
|
85390
85975
|
pattern,
|
|
85391
85976
|
patternOpacity,
|
|
85392
85977
|
patternClassName,
|
|
@@ -85429,29 +86014,64 @@ function StatsBarComparison({
|
|
|
85429
86014
|
const comparisonsContent = React13.useMemo(() => {
|
|
85430
86015
|
if (comparisonsSlot) return comparisonsSlot;
|
|
85431
86016
|
if (!comparisons || comparisons.length === 0) return null;
|
|
85432
|
-
return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85433
|
-
|
|
85434
|
-
|
|
85435
|
-
|
|
85436
|
-
|
|
85437
|
-
|
|
85438
|
-
|
|
85439
|
-
|
|
85440
|
-
|
|
85441
|
-
|
|
85442
|
-
|
|
85443
|
-
|
|
85444
|
-
|
|
85445
|
-
|
|
85446
|
-
style: {
|
|
85447
|
-
width: isVisible ? `${bar.value}%` : "0%",
|
|
85448
|
-
transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
|
|
86017
|
+
return comparisons.map((group, groupIndex) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
86018
|
+
"div",
|
|
86019
|
+
{
|
|
86020
|
+
className: cn(
|
|
86021
|
+
"rounded-xl border bg-card p-6",
|
|
86022
|
+
group.className,
|
|
86023
|
+
groupCardClassName
|
|
86024
|
+
),
|
|
86025
|
+
children: [
|
|
86026
|
+
group.title && (typeof group.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
86027
|
+
"h3",
|
|
86028
|
+
{
|
|
86029
|
+
className: cn("mb-6 text-lg font-semibold", groupTitleClassName),
|
|
86030
|
+
children: group.title
|
|
85449
86031
|
}
|
|
85450
|
-
}
|
|
85451
|
-
|
|
85452
|
-
|
|
85453
|
-
|
|
85454
|
-
|
|
86032
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", groupTitleClassName), children: group.title })),
|
|
86033
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "space-y-4", children: group.bars.map((bar, barIndex) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: bar.className, children: [
|
|
86034
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-2 flex items-center justify-between", children: [
|
|
86035
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-medium", barLabelClassName), children: bar.label }),
|
|
86036
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-sm font-bold", barValueClassName), children: bar.displayValue })
|
|
86037
|
+
] }),
|
|
86038
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
86039
|
+
"div",
|
|
86040
|
+
{
|
|
86041
|
+
className: cn(
|
|
86042
|
+
"h-3 w-full overflow-hidden rounded-full bg-muted",
|
|
86043
|
+
barTrackClassName
|
|
86044
|
+
),
|
|
86045
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
86046
|
+
"div",
|
|
86047
|
+
{
|
|
86048
|
+
className: cn(
|
|
86049
|
+
"h-full rounded-full transition-all duration-1000 ease-out",
|
|
86050
|
+
bar.color || "bg-primary"
|
|
86051
|
+
),
|
|
86052
|
+
style: {
|
|
86053
|
+
width: isVisible ? `${bar.value}%` : "0%",
|
|
86054
|
+
transitionDelay: `${groupIndex * 100 + barIndex * 50}ms`
|
|
86055
|
+
}
|
|
86056
|
+
}
|
|
86057
|
+
)
|
|
86058
|
+
}
|
|
86059
|
+
)
|
|
86060
|
+
] }, barIndex)) })
|
|
86061
|
+
]
|
|
86062
|
+
},
|
|
86063
|
+
groupIndex
|
|
86064
|
+
));
|
|
86065
|
+
}, [
|
|
86066
|
+
comparisonsSlot,
|
|
86067
|
+
comparisons,
|
|
86068
|
+
isVisible,
|
|
86069
|
+
groupCardClassName,
|
|
86070
|
+
groupTitleClassName,
|
|
86071
|
+
barLabelClassName,
|
|
86072
|
+
barValueClassName,
|
|
86073
|
+
barTrackClassName
|
|
86074
|
+
]);
|
|
85455
86075
|
const hasHeaderContent = !!(badge || badgeSlot || heading || description);
|
|
85456
86076
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
85457
86077
|
Section,
|
|
@@ -85462,14 +86082,39 @@ function StatsBarComparison({
|
|
|
85462
86082
|
patternOpacity,
|
|
85463
86083
|
patternClassName,
|
|
85464
86084
|
className,
|
|
85465
|
-
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
85466
|
-
|
|
85467
|
-
|
|
85468
|
-
|
|
85469
|
-
|
|
85470
|
-
|
|
85471
|
-
|
|
85472
|
-
|
|
86085
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
86086
|
+
"div",
|
|
86087
|
+
{
|
|
86088
|
+
ref: sectionRef,
|
|
86089
|
+
className: cn("mx-auto max-w-4xl", containerClassName),
|
|
86090
|
+
children: [
|
|
86091
|
+
hasHeaderContent && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-12 text-center", headerClassName), children: [
|
|
86092
|
+
badgeContent,
|
|
86093
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
86094
|
+
"h2",
|
|
86095
|
+
{
|
|
86096
|
+
className: cn(
|
|
86097
|
+
"mb-4 text-3xl font-bold md:text-4xl",
|
|
86098
|
+
headingClassName
|
|
86099
|
+
),
|
|
86100
|
+
children: heading
|
|
86101
|
+
}
|
|
86102
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", headingClassName), children: heading })),
|
|
86103
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
86104
|
+
"p",
|
|
86105
|
+
{
|
|
86106
|
+
className: cn(
|
|
86107
|
+
"mx-auto max-w-2xl text-muted-foreground",
|
|
86108
|
+
descriptionClassName
|
|
86109
|
+
),
|
|
86110
|
+
children: description
|
|
86111
|
+
}
|
|
86112
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto max-w-2xl", descriptionClassName), children: description }))
|
|
86113
|
+
] }),
|
|
86114
|
+
(comparisonsSlot || comparisons && comparisons.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("space-y-10", comparisonsClassName), children: comparisonsContent })
|
|
86115
|
+
]
|
|
86116
|
+
}
|
|
86117
|
+
)
|
|
85473
86118
|
}
|
|
85474
86119
|
);
|
|
85475
86120
|
}
|
|
@@ -102488,8 +103133,7 @@ var BLOCK_REGISTRY = {
|
|
|
102488
103133
|
exampleUsage: `<BannerPromoCta
|
|
102489
103134
|
message="Summer Sale"
|
|
102490
103135
|
discount="Up to 70% off"
|
|
102491
|
-
|
|
102492
|
-
linkText="Shop Now"
|
|
103136
|
+
actions={[{ label: "Shop Now", href: "/sale" }]}
|
|
102493
103137
|
/>`.trim()
|
|
102494
103138
|
},
|
|
102495
103139
|
"banner-countdown-sale": {
|
|
@@ -102558,10 +103202,9 @@ var BLOCK_REGISTRY = {
|
|
|
102558
103202
|
component: BannerAnnouncementDismissible,
|
|
102559
103203
|
props: "BannerAnnouncementDismissibleProps",
|
|
102560
103204
|
exampleUsage: `<BannerAnnouncementDismissible
|
|
102561
|
-
|
|
103205
|
+
iconName="mynaui/rocket"
|
|
102562
103206
|
message="New feature: AI-powered analytics is now live!"
|
|
102563
|
-
|
|
102564
|
-
buttonLink="/features/analytics"
|
|
103207
|
+
actions={[{ label: "Try It Now", href: "/features/analytics", variant: "secondary", size: "sm" }]}
|
|
102565
103208
|
onDismiss={() => console.log('Banner dismissed')}
|
|
102566
103209
|
/>`.trim()
|
|
102567
103210
|
},
|
|
@@ -102586,8 +103229,7 @@ var BLOCK_REGISTRY = {
|
|
|
102586
103229
|
exampleUsage: `<BannerPrivacyNotice
|
|
102587
103230
|
title="Privacy Policy Updated"
|
|
102588
103231
|
description="We've made changes to how we handle your data."
|
|
102589
|
-
|
|
102590
|
-
linkUrl="/privacy"
|
|
103232
|
+
actions={[{ label: "Read More", href: "/privacy", variant: "link" }]}
|
|
102591
103233
|
onDismiss={() => console.log('Dismissed')}
|
|
102592
103234
|
/>`.trim()
|
|
102593
103235
|
},
|
|
@@ -102611,8 +103253,7 @@ var BLOCK_REGISTRY = {
|
|
|
102611
103253
|
exampleUsage: `<BannerSurveyIncentive
|
|
102612
103254
|
title="Share your feedback!"
|
|
102613
103255
|
description="Complete our quick survey and receive a 15% discount code."
|
|
102614
|
-
|
|
102615
|
-
buttonLink="/survey"
|
|
103256
|
+
actions={[{ label: "Start Survey", href: "/survey", size: "sm" }]}
|
|
102616
103257
|
onDismiss={() => console.log('Dismissed')}
|
|
102617
103258
|
/>`.trim()
|
|
102618
103259
|
},
|
|
@@ -102635,15 +103276,14 @@ var BLOCK_REGISTRY = {
|
|
|
102635
103276
|
props: "BannerSocialFollowProps",
|
|
102636
103277
|
exampleUsage: `<BannerSocialFollow
|
|
102637
103278
|
message="Join our community of 50,000+ developers!"
|
|
102638
|
-
|
|
102639
|
-
buttonLink="https://twitter.com/example"
|
|
103279
|
+
actions={[{ label: "Follow Now", href: "https://twitter.com/example", variant: "secondary", size: "sm" }]}
|
|
102640
103280
|
onDismiss={() => console.log('Dismissed')}
|
|
102641
103281
|
/>`.trim()
|
|
102642
103282
|
},
|
|
102643
103283
|
"banner-gdpr-rights": {
|
|
102644
103284
|
id: "banner-gdpr-rights",
|
|
102645
103285
|
name: "Banner GDPR Rights",
|
|
102646
|
-
description: "A bottom-positioned
|
|
103286
|
+
description: "A bottom-positioned privacy rights notice with icon, title, description, and manage data link. Features a fixed bottom position with border-top styling. Includes a dismiss button to close the banner. Ideal for privacy notices, data policy updates, and user rights information.",
|
|
102647
103287
|
semanticTags: [
|
|
102648
103288
|
"banner",
|
|
102649
103289
|
"gdpr",
|
|
@@ -102662,8 +103302,7 @@ var BLOCK_REGISTRY = {
|
|
|
102662
103302
|
exampleUsage: `<BannerGdprRights
|
|
102663
103303
|
title="Your Privacy Rights"
|
|
102664
103304
|
description="You can request access to or deletion of your personal data at any time."
|
|
102665
|
-
|
|
102666
|
-
linkUrl="/privacy/manage"
|
|
103305
|
+
actions={[{ label: "Manage Data", href: "/privacy/manage", variant: "link" }]}
|
|
102667
103306
|
onDismiss={() => console.log('Dismissed')}
|
|
102668
103307
|
/>`.trim()
|
|
102669
103308
|
},
|
|
@@ -102687,8 +103326,7 @@ var BLOCK_REGISTRY = {
|
|
|
102687
103326
|
exampleUsage: `<BannerEventPromo
|
|
102688
103327
|
eventName="TechSummit 2024"
|
|
102689
103328
|
eventDetails="Join us in San Francisco from Sept 15 - 17 for the biggest tech event of the year."
|
|
102690
|
-
|
|
102691
|
-
buttonLink="/events/techsummit"
|
|
103329
|
+
actions={[{ label: "Get Tickets", href: "/events/techsummit", variant: "ghost", size: "sm" }]}
|
|
102692
103330
|
/>`.trim()
|
|
102693
103331
|
},
|
|
102694
103332
|
"banner-floating-offer": {
|
|
@@ -102713,10 +103351,9 @@ var BLOCK_REGISTRY = {
|
|
|
102713
103351
|
exampleUsage: `<BannerFloatingOffer
|
|
102714
103352
|
offerTitle="Black Friday Special"
|
|
102715
103353
|
offerDescription="Save 60% on annual plans - ends tonight!"
|
|
102716
|
-
|
|
102717
|
-
buttonLink="/pricing"
|
|
103354
|
+
actions={[{ label: "Claim Offer", href: "/pricing", variant: "secondary", size: "sm" }]}
|
|
102718
103355
|
dismissible={true}
|
|
102719
|
-
|
|
103356
|
+
onOpenChange={(open) => console.log('Visibility:', open)}
|
|
102720
103357
|
/>`.trim()
|
|
102721
103358
|
},
|
|
102722
103359
|
// Industries blocks
|