@opensite/ui 0.5.3 → 0.5.5
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.cjs +11 -11
- package/dist/about-company-profile.js +12 -11
- package/dist/about-developer-profile.cjs +11 -11
- package/dist/about-developer-profile.js +12 -11
- package/dist/about-developer-story.cjs +11 -11
- package/dist/about-developer-story.js +12 -11
- package/dist/about-interactive-tabs.cjs +10 -5
- package/dist/about-interactive-tabs.js +12 -6
- package/dist/about-location-info-hero.cjs +14 -14
- package/dist/about-location-info-hero.js +15 -15
- package/dist/about-minimal-story.cjs +5 -4
- package/dist/about-minimal-story.js +6 -5
- package/dist/about-mission-dual-image.cjs +5 -5
- package/dist/about-mission-dual-image.js +6 -5
- package/dist/about-mission-features.cjs +5 -4
- package/dist/about-mission-features.js +6 -5
- package/dist/about-network-spotlight.cjs +12 -134
- package/dist/about-network-spotlight.js +13 -135
- package/dist/about-startup-team.cjs +10 -12
- package/dist/about-startup-team.js +11 -12
- package/dist/about-stats-showcase.cjs +17 -16
- package/dist/about-stats-showcase.js +17 -16
- package/dist/about-stats-sidebar.cjs +8 -7
- package/dist/about-stats-sidebar.js +8 -7
- package/dist/about-story-expertise.cjs +17 -139
- package/dist/about-story-expertise.js +18 -140
- package/dist/about-story-gallery.cjs +6 -9
- package/dist/about-story-gallery.js +6 -9
- package/dist/about-story-hero.cjs +6 -9
- package/dist/about-story-hero.js +7 -10
- package/dist/about-streamline-team.cjs +10 -10
- package/dist/about-streamline-team.js +11 -10
- package/dist/about-vision-gallery.cjs +33 -40
- package/dist/about-vision-gallery.d.cts +44 -24
- package/dist/about-vision-gallery.d.ts +44 -24
- package/dist/about-vision-gallery.js +34 -40
- package/dist/alternating-blocks.cjs +5 -5
- package/dist/alternating-blocks.js +5 -5
- package/dist/article-breadcrumb-social.cjs +35 -41
- package/dist/article-breadcrumb-social.d.cts +0 -2
- package/dist/article-breadcrumb-social.d.ts +0 -2
- package/dist/article-breadcrumb-social.js +35 -41
- package/dist/article-chapters-author.cjs +80 -80
- package/dist/article-chapters-author.js +79 -79
- package/dist/article-compact-toc.cjs +31 -30
- package/dist/article-compact-toc.js +30 -29
- package/dist/article-hero-prose.cjs +9 -9
- package/dist/article-hero-prose.d.cts +5 -5
- package/dist/article-hero-prose.d.ts +5 -5
- package/dist/article-hero-prose.js +9 -9
- package/dist/article-sidebar-sticky.cjs +12 -11
- package/dist/article-sidebar-sticky.js +12 -11
- package/dist/article-split-animated.cjs +23 -142
- package/dist/article-split-animated.js +23 -142
- package/dist/article-toc-sidebar.cjs +31 -31
- package/dist/article-toc-sidebar.js +30 -30
- package/dist/banner-announcement-dismissible.cjs +37 -17
- package/dist/banner-announcement-dismissible.d.cts +0 -2
- package/dist/banner-announcement-dismissible.d.ts +0 -2
- 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.js +29 -13
- package/dist/banner-floating-offer.cjs +42 -24
- package/dist/banner-floating-offer.d.cts +0 -3
- package/dist/banner-floating-offer.d.ts +0 -3
- package/dist/banner-floating-offer.js +43 -25
- package/dist/banner-gdpr-rights.cjs +36 -19
- package/dist/banner-gdpr-rights.d.cts +3 -5
- package/dist/banner-gdpr-rights.d.ts +3 -5
- package/dist/banner-gdpr-rights.js +37 -20
- package/dist/banner-privacy-notice.cjs +34 -17
- package/dist/banner-privacy-notice.d.cts +0 -2
- package/dist/banner-privacy-notice.d.ts +0 -2
- package/dist/banner-privacy-notice.js +35 -18
- package/dist/banner-promo-cta.cjs +27 -12
- package/dist/banner-promo-cta.js +28 -12
- package/dist/banner-social-follow.cjs +37 -17
- package/dist/banner-social-follow.d.cts +0 -2
- package/dist/banner-social-follow.d.ts +0 -2
- package/dist/banner-social-follow.js +38 -18
- package/dist/banner-survey-incentive.cjs +34 -17
- package/dist/banner-survey-incentive.d.cts +0 -2
- package/dist/banner-survey-incentive.d.ts +0 -2
- package/dist/banner-survey-incentive.js +35 -18
- package/dist/blog-cards-read-time.cjs +408 -24
- package/dist/blog-cards-read-time.d.cts +20 -1
- package/dist/blog-cards-read-time.d.ts +20 -1
- package/dist/blog-cards-read-time.js +409 -24
- package/dist/blog-cards-tagline-cta.cjs +406 -19
- package/dist/blog-cards-tagline-cta.d.cts +20 -1
- package/dist/blog-cards-tagline-cta.d.ts +20 -1
- package/dist/blog-cards-tagline-cta.js +407 -19
- package/dist/blog-category-overlay.cjs +407 -20
- package/dist/blog-category-overlay.d.cts +27 -8
- package/dist/blog-category-overlay.d.ts +27 -8
- package/dist/blog-category-overlay.js +408 -20
- package/dist/blog-featured-popular.cjs +406 -19
- package/dist/blog-featured-popular.d.cts +20 -1
- package/dist/blog-featured-popular.d.ts +20 -1
- package/dist/blog-featured-popular.js +407 -19
- package/dist/blog-filtered-results.cjs +457 -71
- package/dist/blog-filtered-results.d.cts +38 -19
- package/dist/blog-filtered-results.d.ts +38 -19
- package/dist/blog-filtered-results.js +455 -69
- package/dist/blog-grid-author-cards.cjs +408 -20
- package/dist/blog-grid-author-cards.d.cts +28 -9
- package/dist/blog-grid-author-cards.d.ts +28 -9
- package/dist/blog-grid-author-cards.js +409 -20
- package/dist/blog-grid-nine-posts.cjs +403 -16
- package/dist/blog-grid-nine-posts.d.cts +24 -5
- package/dist/blog-grid-nine-posts.d.ts +24 -5
- package/dist/blog-grid-nine-posts.js +404 -16
- package/dist/blog-horizontal-cards.cjs +407 -20
- package/dist/blog-horizontal-cards.d.cts +21 -2
- package/dist/blog-horizontal-cards.d.ts +21 -2
- package/dist/blog-horizontal-cards.js +408 -20
- package/dist/blog-horizontal-timeline.cjs +401 -14
- package/dist/blog-horizontal-timeline.d.cts +28 -9
- package/dist/blog-horizontal-timeline.d.ts +28 -9
- package/dist/blog-horizontal-timeline.js +402 -14
- package/dist/blog-masonry-featured.cjs +405 -18
- package/dist/blog-masonry-featured.d.cts +28 -9
- package/dist/blog-masonry-featured.d.ts +28 -9
- package/dist/blog-masonry-featured.js +406 -18
- package/dist/blog-related-articles.cjs +401 -14
- package/dist/blog-related-articles.d.cts +20 -1
- package/dist/blog-related-articles.d.ts +20 -1
- package/dist/blog-related-articles.js +402 -14
- package/dist/blog-tech-insights.cjs +410 -23
- package/dist/blog-tech-insights.d.cts +31 -12
- package/dist/blog-tech-insights.d.ts +31 -12
- package/dist/blog-tech-insights.js +411 -23
- package/dist/case-studies-featured-border.cjs +423 -14
- package/dist/case-studies-featured-border.d.cts +20 -1
- package/dist/case-studies-featured-border.d.ts +20 -1
- package/dist/case-studies-featured-border.js +424 -14
- package/dist/case-studies-image-grid.cjs +404 -7
- package/dist/case-studies-image-grid.d.cts +20 -1
- package/dist/case-studies-image-grid.d.ts +20 -1
- package/dist/case-studies-image-grid.js +405 -7
- package/dist/case-studies-stats-card.cjs +416 -29
- package/dist/case-studies-stats-card.d.cts +20 -1
- package/dist/case-studies-stats-card.d.ts +20 -1
- package/dist/case-studies-stats-card.js +417 -29
- package/dist/case-studies-testimonial-stats.cjs +409 -10
- package/dist/case-studies-testimonial-stats.d.cts +20 -1
- package/dist/case-studies-testimonial-stats.d.ts +20 -1
- package/dist/case-studies-testimonial-stats.js +409 -10
- package/dist/case-study-prose-sidebar.cjs +414 -23
- package/dist/case-study-prose-sidebar.d.cts +34 -15
- package/dist/case-study-prose-sidebar.d.ts +34 -15
- package/dist/case-study-prose-sidebar.js +415 -23
- package/dist/case-study-stats-metrics.cjs +443 -43
- package/dist/case-study-stats-metrics.d.cts +39 -20
- package/dist/case-study-stats-metrics.d.ts +39 -20
- package/dist/case-study-stats-metrics.js +444 -43
- package/dist/case-study-toc-social-sidebar.cjs +436 -46
- package/dist/case-study-toc-social-sidebar.d.cts +36 -17
- package/dist/case-study-toc-social-sidebar.d.ts +36 -17
- package/dist/case-study-toc-social-sidebar.js +437 -47
- package/dist/comparison-ai-models.cjs +498 -77
- package/dist/comparison-ai-models.d.cts +25 -7
- package/dist/comparison-ai-models.d.ts +25 -7
- package/dist/comparison-ai-models.js +497 -76
- package/dist/comparison-feature-cards.cjs +492 -80
- package/dist/comparison-feature-cards.d.cts +25 -6
- package/dist/comparison-feature-cards.d.ts +25 -6
- package/dist/comparison-feature-cards.js +492 -79
- package/dist/comparison-feature-grid.cjs +475 -47
- package/dist/comparison-feature-grid.d.cts +24 -1
- package/dist/comparison-feature-grid.d.ts +24 -1
- package/dist/comparison-feature-grid.js +476 -47
- package/dist/comparison-grid-badges.cjs +422 -25
- package/dist/comparison-grid-badges.d.cts +26 -3
- package/dist/comparison-grid-badges.d.ts +26 -3
- package/dist/comparison-grid-badges.js +423 -25
- package/dist/comparison-image-cards.cjs +450 -36
- package/dist/comparison-image-cards.d.cts +23 -4
- package/dist/comparison-image-cards.d.ts +23 -4
- package/dist/comparison-image-cards.js +451 -36
- package/dist/comparison-legacy-modern.cjs +442 -41
- package/dist/comparison-legacy-modern.d.cts +29 -6
- package/dist/comparison-legacy-modern.d.ts +29 -6
- package/dist/comparison-legacy-modern.js +443 -41
- package/dist/comparison-metrics-rows.cjs +478 -47
- package/dist/comparison-metrics-rows.d.cts +20 -1
- package/dist/comparison-metrics-rows.d.ts +20 -1
- package/dist/comparison-metrics-rows.js +479 -47
- package/dist/comparison-table-tabs.cjs +423 -13
- package/dist/comparison-table-tabs.d.cts +25 -2
- package/dist/comparison-table-tabs.d.ts +25 -2
- package/dist/comparison-table-tabs.js +424 -14
- package/dist/comparison-table-tooltips.cjs +443 -37
- package/dist/comparison-table-tooltips.d.cts +24 -1
- package/dist/comparison-table-tooltips.d.ts +24 -1
- package/dist/comparison-table-tooltips.js +443 -37
- package/dist/comparison-table-two-column.cjs +463 -53
- package/dist/comparison-table-two-column.d.cts +24 -6
- package/dist/comparison-table-two-column.d.ts +24 -6
- package/dist/comparison-table-two-column.js +464 -53
- package/dist/components.cjs +8 -8
- package/dist/components.js +9 -9
- package/dist/contact-callback.cjs +577 -190
- package/dist/contact-callback.d.cts +35 -1
- package/dist/contact-callback.d.ts +35 -1
- package/dist/contact-callback.js +578 -190
- package/dist/contact-card.cjs +502 -115
- package/dist/contact-card.d.cts +20 -1
- package/dist/contact-card.d.ts +20 -1
- package/dist/contact-card.js +503 -115
- package/dist/contact-careers.cjs +628 -241
- package/dist/contact-careers.d.cts +20 -2
- package/dist/contact-careers.d.ts +20 -2
- package/dist/contact-careers.js +629 -242
- package/dist/contact-catering.cjs +664 -277
- package/dist/contact-catering.d.cts +20 -1
- package/dist/contact-catering.d.ts +20 -1
- package/dist/contact-catering.js +665 -277
- package/dist/contact-consultation.cjs +567 -180
- package/dist/contact-consultation.d.cts +20 -2
- package/dist/contact-consultation.d.ts +20 -2
- package/dist/contact-consultation.js +568 -180
- package/dist/contact-dark.cjs +486 -99
- package/dist/contact-dark.d.cts +20 -2
- package/dist/contact-dark.d.ts +20 -2
- package/dist/contact-dark.js +487 -99
- package/dist/contact-demo.cjs +558 -171
- package/dist/contact-demo.d.cts +20 -2
- package/dist/contact-demo.d.ts +20 -2
- package/dist/contact-demo.js +559 -171
- package/dist/contact-emergency.cjs +571 -184
- package/dist/contact-emergency.d.cts +20 -2
- package/dist/contact-emergency.d.ts +20 -2
- package/dist/contact-emergency.js +572 -184
- package/dist/contact-event.cjs +489 -102
- package/dist/contact-event.d.cts +20 -2
- package/dist/contact-event.d.ts +20 -2
- package/dist/contact-event.js +490 -102
- package/dist/contact-faq.cjs +478 -91
- package/dist/contact-faq.d.cts +20 -2
- package/dist/contact-faq.d.ts +20 -2
- package/dist/contact-faq.js +479 -91
- package/dist/contact-feedback.cjs +450 -63
- package/dist/contact-feedback.d.cts +20 -2
- package/dist/contact-feedback.d.ts +20 -2
- package/dist/contact-feedback.js +451 -63
- package/dist/contact-fitness.cjs +489 -102
- package/dist/contact-fitness.d.cts +20 -2
- package/dist/contact-fitness.d.ts +20 -2
- package/dist/contact-fitness.js +490 -102
- package/dist/contact-floating-banner.cjs +5 -5
- package/dist/contact-floating-banner.js +5 -5
- package/dist/contact-guest.cjs +489 -102
- package/dist/contact-guest.d.cts +20 -2
- package/dist/contact-guest.d.ts +20 -2
- package/dist/contact-guest.js +490 -102
- package/dist/contact-image.cjs +489 -102
- package/dist/contact-image.d.cts +20 -2
- package/dist/contact-image.d.ts +20 -2
- package/dist/contact-image.js +490 -102
- package/dist/contact-insurance.cjs +489 -102
- package/dist/contact-insurance.d.cts +20 -2
- package/dist/contact-insurance.d.ts +20 -2
- package/dist/contact-insurance.js +490 -102
- package/dist/contact-interview.cjs +489 -102
- package/dist/contact-interview.d.cts +20 -2
- package/dist/contact-interview.d.ts +20 -2
- package/dist/contact-interview.js +490 -102
- package/dist/contact-locations.cjs +489 -102
- package/dist/contact-locations.d.cts +20 -2
- package/dist/contact-locations.d.ts +20 -2
- package/dist/contact-locations.js +490 -102
- package/dist/contact-maintenance.cjs +489 -102
- package/dist/contact-maintenance.d.cts +20 -2
- package/dist/contact-maintenance.d.ts +20 -2
- package/dist/contact-maintenance.js +490 -102
- package/dist/contact-map.cjs +489 -102
- package/dist/contact-map.d.cts +20 -2
- package/dist/contact-map.d.ts +20 -2
- package/dist/contact-map.js +490 -102
- package/dist/contact-minimal.cjs +466 -79
- package/dist/contact-minimal.d.cts +32 -1
- package/dist/contact-minimal.d.ts +32 -1
- package/dist/contact-minimal.js +467 -79
- package/dist/contact-moving.cjs +489 -102
- package/dist/contact-moving.d.cts +20 -2
- package/dist/contact-moving.d.ts +20 -2
- package/dist/contact-moving.js +490 -102
- package/dist/contact-multistep.cjs +489 -102
- package/dist/contact-multistep.d.cts +20 -2
- package/dist/contact-multistep.d.ts +20 -2
- package/dist/contact-multistep.js +490 -102
- package/dist/contact-partnership.cjs +489 -102
- package/dist/contact-partnership.d.cts +20 -2
- package/dist/contact-partnership.d.ts +20 -2
- package/dist/contact-partnership.js +490 -102
- package/dist/contact-photography.cjs +489 -102
- package/dist/contact-photography.d.cts +20 -2
- package/dist/contact-photography.d.ts +20 -2
- package/dist/contact-photography.js +490 -102
- package/dist/contact-press.cjs +489 -102
- package/dist/contact-press.d.cts +20 -2
- package/dist/contact-press.d.ts +20 -2
- package/dist/contact-press.js +490 -102
- package/dist/contact-quote.cjs +489 -102
- package/dist/contact-quote.d.cts +20 -2
- package/dist/contact-quote.d.ts +20 -2
- package/dist/contact-quote.js +490 -102
- package/dist/contact-referral.cjs +489 -102
- package/dist/contact-referral.d.cts +20 -2
- package/dist/contact-referral.d.ts +20 -2
- package/dist/contact-referral.js +490 -102
- package/dist/contact-report.cjs +489 -102
- package/dist/contact-report.d.cts +20 -2
- package/dist/contact-report.d.ts +20 -2
- package/dist/contact-report.js +490 -102
- package/dist/contact-reservation.cjs +489 -102
- package/dist/contact-reservation.d.cts +20 -2
- package/dist/contact-reservation.d.ts +20 -2
- package/dist/contact-reservation.js +490 -102
- package/dist/contact-retreat.cjs +489 -102
- package/dist/contact-retreat.d.cts +20 -2
- package/dist/contact-retreat.d.ts +20 -2
- package/dist/contact-retreat.js +490 -102
- package/dist/contact-rsvp.cjs +489 -102
- package/dist/contact-rsvp.d.cts +20 -2
- package/dist/contact-rsvp.d.ts +20 -2
- package/dist/contact-rsvp.js +490 -102
- package/dist/contact-sales.cjs +489 -102
- package/dist/contact-sales.d.cts +20 -1
- package/dist/contact-sales.d.ts +20 -1
- package/dist/contact-sales.js +490 -102
- package/dist/contact-schedule.cjs +489 -102
- package/dist/contact-schedule.d.cts +20 -2
- package/dist/contact-schedule.d.ts +20 -2
- package/dist/contact-schedule.js +490 -102
- package/dist/contact-sponsorship.cjs +489 -102
- package/dist/contact-sponsorship.d.cts +20 -2
- package/dist/contact-sponsorship.d.ts +20 -2
- package/dist/contact-sponsorship.js +490 -102
- package/dist/contact-support.cjs +463 -76
- package/dist/contact-support.d.cts +20 -2
- package/dist/contact-support.d.ts +20 -2
- package/dist/contact-support.js +464 -76
- package/dist/contact-tenant.cjs +489 -102
- package/dist/contact-tenant.d.cts +20 -2
- package/dist/contact-tenant.d.ts +20 -2
- package/dist/contact-tenant.js +490 -102
- package/dist/contact-vendor.cjs +489 -102
- package/dist/contact-vendor.d.cts +20 -2
- package/dist/contact-vendor.d.ts +20 -2
- package/dist/contact-vendor.js +490 -102
- package/dist/contact-volunteer.cjs +489 -102
- package/dist/contact-volunteer.d.cts +20 -2
- package/dist/contact-volunteer.d.ts +20 -2
- package/dist/contact-volunteer.js +490 -102
- package/dist/contact-warranty.cjs +489 -102
- package/dist/contact-warranty.d.cts +20 -2
- package/dist/contact-warranty.d.ts +20 -2
- package/dist/contact-warranty.js +490 -102
- package/dist/contact-wedding.cjs +489 -102
- package/dist/contact-wedding.d.cts +20 -2
- package/dist/contact-wedding.d.ts +20 -2
- package/dist/contact-wedding.js +490 -102
- package/dist/cta-accent-background.cjs +11 -11
- package/dist/cta-accent-background.js +12 -12
- package/dist/cta-app-download-newsletter.cjs +16 -135
- package/dist/cta-app-download-newsletter.js +17 -136
- package/dist/cta-background-icon-badge.cjs +12 -131
- package/dist/cta-background-icon-badge.js +13 -132
- package/dist/cta-case-study-testimonial.cjs +31 -154
- package/dist/cta-case-study-testimonial.js +32 -155
- package/dist/cta-documentation-links.cjs +15 -15
- package/dist/cta-documentation-links.js +16 -16
- package/dist/cta-enterprise-dark-features.cjs +21 -21
- package/dist/cta-enterprise-dark-features.js +22 -22
- package/dist/cta-enterprise-split.cjs +14 -14
- package/dist/cta-enterprise-split.js +15 -15
- package/dist/cta-feature-cards-grid.cjs +16 -16
- package/dist/cta-feature-cards-grid.js +17 -17
- package/dist/cta-feature-checklist.cjs +14 -14
- package/dist/cta-feature-checklist.js +15 -15
- package/dist/cta-feature-list.cjs +16 -135
- package/dist/cta-feature-list.js +17 -136
- package/dist/cta-fullwidth-background.cjs +14 -133
- package/dist/cta-fullwidth-background.js +15 -134
- package/dist/cta-gradient-logos-floating.cjs +17 -17
- package/dist/cta-gradient-logos-floating.js +18 -18
- package/dist/cta-gradient-stats-hero.cjs +16 -16
- package/dist/cta-gradient-stats-hero.js +17 -17
- package/dist/cta-hero-feature-cards.cjs +36 -136
- package/dist/cta-hero-feature-cards.js +37 -137
- package/dist/cta-image-overlay-arrow.cjs +12 -131
- package/dist/cta-image-overlay-arrow.js +13 -132
- package/dist/cta-image-overlay-centered.cjs +12 -131
- package/dist/cta-image-overlay-centered.js +13 -132
- package/dist/cta-minimal-separator.cjs +8 -8
- package/dist/cta-minimal-separator.js +9 -9
- package/dist/cta-newsletter-features.cjs +14 -14
- package/dist/cta-newsletter-features.js +15 -15
- package/dist/cta-pattern-background.cjs +11 -11
- package/dist/cta-pattern-background.js +12 -12
- package/dist/cta-platform-demo.cjs +16 -139
- package/dist/cta-platform-demo.js +17 -140
- package/dist/cta-simple-centered.cjs +11 -11
- package/dist/cta-simple-centered.js +12 -12
- package/dist/cta-split-gradient-image.cjs +14 -133
- package/dist/cta-split-gradient-image.js +15 -134
- package/dist/cta-split-image-logos.cjs +17 -136
- package/dist/cta-split-image-logos.js +18 -137
- package/dist/cta-split-image.cjs +60 -174
- package/dist/cta-split-image.js +61 -175
- package/dist/cta-stacked-cards.cjs +11 -11
- package/dist/cta-stacked-cards.js +12 -12
- package/dist/cta-video-background-hero.cjs +16 -100
- package/dist/cta-video-background-hero.js +17 -101
- package/dist/cta-workflow-tabs.cjs +18 -137
- package/dist/cta-workflow-tabs.js +19 -138
- package/dist/hero-ad-campaign-expert.cjs +2 -2
- package/dist/hero-ad-campaign-expert.js +2 -2
- package/dist/hero-adaptable-product-grid.cjs +2 -2
- package/dist/hero-adaptable-product-grid.js +2 -2
- package/dist/hero-agency-animated-images.cjs +2 -2
- package/dist/hero-agency-animated-images.js +2 -2
- package/dist/hero-ai-powered-carousel.cjs +2 -2
- package/dist/hero-ai-powered-carousel.js +2 -2
- package/dist/hero-announcement-badge.cjs +2 -2
- package/dist/hero-announcement-badge.js +2 -2
- package/dist/hero-architecture-fullscreen.cjs +2 -2
- package/dist/hero-architecture-fullscreen.js +2 -2
- package/dist/hero-badge-image-split.cjs +2 -2
- package/dist/hero-badge-image-split.js +2 -2
- package/dist/hero-badge-shadow-overlay.cjs +2 -2
- package/dist/hero-badge-shadow-overlay.js +2 -2
- package/dist/hero-billing-platform-logos.cjs +2 -2
- package/dist/hero-billing-platform-logos.js +2 -2
- package/dist/hero-business-carousel-dots.cjs +2 -2
- package/dist/hero-business-carousel-dots.js +2 -2
- package/dist/hero-business-operations-mosaic.cjs +2 -2
- package/dist/hero-business-operations-mosaic.js +2 -2
- package/dist/hero-centered-gradient-cta.cjs +2 -2
- package/dist/hero-centered-gradient-cta.js +2 -2
- package/dist/hero-centered-image-grid.cjs +2 -2
- package/dist/hero-centered-image-grid.js +2 -2
- package/dist/hero-centered-screenshot.cjs +2 -2
- package/dist/hero-centered-screenshot.js +2 -2
- package/dist/hero-coming-soon-countdown.cjs +2 -2
- package/dist/hero-coming-soon-countdown.js +2 -2
- package/dist/hero-community-survey-cta.cjs +2 -2
- package/dist/hero-community-survey-cta.js +2 -2
- package/dist/hero-conversation-intelligence.cjs +2 -2
- package/dist/hero-conversation-intelligence.js +2 -2
- package/dist/hero-conversion-video-play.cjs +2 -2
- package/dist/hero-conversion-video-play.js +2 -2
- package/dist/hero-creative-studio-stacked.cjs +2 -2
- package/dist/hero-creative-studio-stacked.js +2 -2
- package/dist/hero-crm-streamlined.cjs +2 -2
- package/dist/hero-crm-streamlined.js +2 -2
- package/dist/hero-customer-support-layered.cjs +2 -2
- package/dist/hero-customer-support-layered.js +2 -2
- package/dist/hero-dashed-border-features.cjs +2 -2
- package/dist/hero-dashed-border-features.js +2 -2
- package/dist/hero-design-carousel-portfolio.cjs +2 -2
- package/dist/hero-design-carousel-portfolio.js +2 -2
- package/dist/hero-design-showcase-logos.cjs +2 -2
- package/dist/hero-design-showcase-logos.js +2 -2
- package/dist/hero-design-system-3d.cjs +2 -2
- package/dist/hero-design-system-3d.js +2 -2
- package/dist/hero-developer-tools-code.cjs +2 -2
- package/dist/hero-developer-tools-code.js +2 -2
- package/dist/hero-digital-agency-fullscreen.cjs +2 -2
- package/dist/hero-digital-agency-fullscreen.js +2 -2
- package/dist/hero-ecommerce-product-showcase.cjs +2 -2
- package/dist/hero-ecommerce-product-showcase.js +2 -2
- package/dist/hero-enterprise-security.cjs +2 -2
- package/dist/hero-enterprise-security.js +2 -2
- package/dist/hero-event-registration.cjs +2 -2
- package/dist/hero-event-registration.js +2 -2
- package/dist/hero-feature-cards-grid.cjs +2 -2
- package/dist/hero-feature-cards-grid.js +2 -2
- package/dist/hero-fullscreen-background-image.cjs +2 -2
- package/dist/hero-fullscreen-background-image.js +2 -2
- package/dist/hero-fullscreen-logo-cta.cjs +2 -2
- package/dist/hero-fullscreen-logo-cta.js +2 -2
- package/dist/hero-gradient-avatars-rating.cjs +2 -2
- package/dist/hero-gradient-avatars-rating.js +2 -2
- package/dist/hero-gradient-client-focused.cjs +2 -2
- package/dist/hero-gradient-client-focused.js +2 -2
- package/dist/hero-grid-pattern-efficiency.cjs +2 -2
- package/dist/hero-grid-pattern-efficiency.js +2 -2
- package/dist/hero-grid-pattern-solutions.cjs +2 -2
- package/dist/hero-grid-pattern-solutions.js +2 -2
- package/dist/hero-hiring-animated-text.cjs +2 -2
- package/dist/hero-hiring-animated-text.js +2 -2
- package/dist/hero-image-left-content.cjs +2 -2
- package/dist/hero-image-left-content.js +2 -2
- package/dist/hero-image-slider.cjs +2 -2
- package/dist/hero-image-slider.js +2 -2
- package/dist/hero-innovation-image-grid.cjs +2 -2
- package/dist/hero-innovation-image-grid.js +2 -2
- package/dist/hero-logo-centered-screenshot.cjs +2 -2
- package/dist/hero-logo-centered-screenshot.js +2 -2
- package/dist/hero-marketplace-scattered-images.cjs +2 -2
- package/dist/hero-marketplace-scattered-images.js +2 -2
- package/dist/hero-mental-health-team.cjs +2 -2
- package/dist/hero-mental-health-team.js +2 -2
- package/dist/hero-mentorship-video-split.cjs +2 -2
- package/dist/hero-mentorship-video-split.js +2 -2
- package/dist/hero-minimal-centered-dark.cjs +2 -2
- package/dist/hero-minimal-centered-dark.js +2 -2
- package/dist/hero-mobile-app-download.cjs +2 -2
- package/dist/hero-mobile-app-download.js +2 -2
- package/dist/hero-newsletter-minimal.cjs +2 -2
- package/dist/hero-newsletter-minimal.js +2 -2
- package/dist/hero-pattern-badge-logos.cjs +2 -2
- package/dist/hero-pattern-badge-logos.js +2 -2
- package/dist/hero-pattern-logo-tech-stack.cjs +2 -2
- package/dist/hero-pattern-logo-tech-stack.js +2 -2
- package/dist/hero-platform-features-grid.cjs +2 -2
- package/dist/hero-platform-features-grid.js +2 -2
- package/dist/hero-portfolio-creative.cjs +2 -2
- package/dist/hero-portfolio-creative.js +2 -2
- package/dist/hero-premium-split-avatars.cjs +2 -2
- package/dist/hero-premium-split-avatars.js +2 -2
- package/dist/hero-presentation-platform-video.cjs +2 -2
- package/dist/hero-presentation-platform-video.js +2 -2
- package/dist/hero-pricing-comparison.cjs +2 -2
- package/dist/hero-pricing-comparison.js +2 -2
- package/dist/hero-product-showcase-floating.cjs +2 -2
- package/dist/hero-product-showcase-floating.js +2 -2
- package/dist/hero-productivity-launcher-video.cjs +2 -2
- package/dist/hero-productivity-launcher-video.js +2 -2
- package/dist/hero-saas-dashboard-preview.cjs +2 -2
- package/dist/hero-saas-dashboard-preview.js +2 -2
- package/dist/hero-shared-inbox-layered.cjs +2 -2
- package/dist/hero-shared-inbox-layered.js +2 -2
- package/dist/hero-simple-centered-image.cjs +2 -2
- package/dist/hero-simple-centered-image.js +2 -2
- package/dist/hero-software-growth-video-dialog.cjs +2 -2
- package/dist/hero-software-growth-video-dialog.js +2 -2
- package/dist/hero-spiral-pattern-cards.cjs +2 -2
- package/dist/hero-spiral-pattern-cards.js +2 -2
- package/dist/hero-split-geometric-shapes.cjs +2 -2
- package/dist/hero-split-geometric-shapes.js +2 -2
- package/dist/hero-split-icon-cards.cjs +1 -1
- package/dist/hero-split-icon-cards.js +1 -1
- package/dist/hero-split-image-newsletter.cjs +2 -2
- package/dist/hero-split-image-newsletter.js +2 -2
- package/dist/hero-split-spiral-shapes.cjs +2 -2
- package/dist/hero-split-spiral-shapes.js +2 -2
- package/dist/hero-startup-launch-cta.cjs +2 -2
- package/dist/hero-startup-launch-cta.js +2 -2
- package/dist/hero-stats-social-proof.cjs +2 -2
- package/dist/hero-stats-social-proof.js +2 -2
- package/dist/hero-task-timer-animated.cjs +2 -2
- package/dist/hero-task-timer-animated.js +2 -2
- package/dist/hero-tech-carousel.cjs +2 -2
- package/dist/hero-tech-carousel.js +2 -2
- package/dist/hero-therapy-testimonial-grid.cjs +2 -2
- package/dist/hero-therapy-testimonial-grid.js +2 -2
- package/dist/hero-ui-library-showcase.cjs +2 -2
- package/dist/hero-ui-library-showcase.js +2 -2
- package/dist/hero-video-background-dark.cjs +2 -2
- package/dist/hero-video-background-dark.js +2 -2
- package/dist/hero-video-dialog-gradient.cjs +2 -2
- package/dist/hero-video-dialog-gradient.js +2 -2
- package/dist/hero-video-overlay-stars.cjs +2 -2
- package/dist/hero-video-overlay-stars.js +2 -2
- package/dist/hero-welcome-asymmetric-images.cjs +2 -2
- package/dist/hero-welcome-asymmetric-images.js +2 -2
- package/dist/index.cjs +8 -8
- package/dist/index.js +9 -9
- package/dist/media-hover-ctas.cjs +7 -7
- package/dist/media-hover-ctas.js +7 -7
- package/dist/registry.cjs +10071 -8111
- package/dist/registry.js +10033 -8073
- package/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
+
var React = require('react');
|
|
4
5
|
var clsx = require('clsx');
|
|
5
6
|
var tailwindMerge = require('tailwind-merge');
|
|
6
|
-
var React = require('react');
|
|
7
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
8
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
9
|
|
|
@@ -27,7 +27,7 @@ function _interopNamespace(e) {
|
|
|
27
27
|
|
|
28
28
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
29
29
|
|
|
30
|
-
//
|
|
30
|
+
// components/blocks/banner/banner-event-promo.tsx
|
|
31
31
|
function cn(...inputs) {
|
|
32
32
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
33
33
|
}
|
|
@@ -450,8 +450,8 @@ var Pressable = React__namespace.forwardRef(
|
|
|
450
450
|
);
|
|
451
451
|
Pressable.displayName = "Pressable";
|
|
452
452
|
function BannerEventPromo({
|
|
453
|
-
eventName
|
|
454
|
-
eventDetails
|
|
453
|
+
eventName,
|
|
454
|
+
eventDetails,
|
|
455
455
|
separator,
|
|
456
456
|
actions,
|
|
457
457
|
actionsSlot,
|
|
@@ -464,11 +464,18 @@ function BannerEventPromo({
|
|
|
464
464
|
eventDetailsClassName,
|
|
465
465
|
actionsClassName
|
|
466
466
|
}) {
|
|
467
|
-
const
|
|
467
|
+
const actionsContent = React.useMemo(() => {
|
|
468
468
|
if (actionsSlot) return actionsSlot;
|
|
469
469
|
if (!actions || actions.length === 0) return null;
|
|
470
470
|
return actions.map((action, index) => {
|
|
471
|
-
const {
|
|
471
|
+
const {
|
|
472
|
+
label,
|
|
473
|
+
icon: actionIcon,
|
|
474
|
+
iconAfter,
|
|
475
|
+
children,
|
|
476
|
+
className: actionClassName,
|
|
477
|
+
...pressableProps
|
|
478
|
+
} = action;
|
|
472
479
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
473
480
|
Pressable,
|
|
474
481
|
{
|
|
@@ -484,8 +491,8 @@ function BannerEventPromo({
|
|
|
484
491
|
index
|
|
485
492
|
);
|
|
486
493
|
});
|
|
487
|
-
};
|
|
488
|
-
const
|
|
494
|
+
}, [actions, actionsSlot]);
|
|
495
|
+
const separatorContent = React.useMemo(() => {
|
|
489
496
|
if (separator) return separator;
|
|
490
497
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
491
498
|
"svg",
|
|
@@ -496,14 +503,22 @@ function BannerEventPromo({
|
|
|
496
503
|
children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
497
504
|
}
|
|
498
505
|
);
|
|
499
|
-
};
|
|
506
|
+
}, [separator, separatorClassName]);
|
|
507
|
+
const eventNameContent = React.useMemo(() => {
|
|
508
|
+
if (!eventName) return null;
|
|
509
|
+
return typeof eventName === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventNameClassName, children: eventName });
|
|
510
|
+
}, [eventName, eventNameClassName]);
|
|
511
|
+
const eventDetailsContent = React.useMemo(() => {
|
|
512
|
+
if (!eventDetails) return null;
|
|
513
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: eventDetailsClassName, children: eventDetails });
|
|
514
|
+
}, [eventDetails, eventDetailsClassName]);
|
|
500
515
|
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: [
|
|
501
516
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "text-sm leading-6", children: [
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
517
|
+
eventNameContent,
|
|
518
|
+
eventNameContent && eventDetailsContent && separatorContent,
|
|
519
|
+
eventDetailsContent
|
|
505
520
|
] }),
|
|
506
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children:
|
|
521
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: actionsClassName, children: actionsContent })
|
|
507
522
|
] }) }) }) });
|
|
508
523
|
}
|
|
509
524
|
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { useMemo } from 'react';
|
|
2
4
|
import { clsx } from 'clsx';
|
|
3
5
|
import { twMerge } from 'tailwind-merge';
|
|
4
|
-
import * as React from 'react';
|
|
5
6
|
import { cva } from 'class-variance-authority';
|
|
6
7
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
8
|
|
|
8
|
-
//
|
|
9
|
+
// components/blocks/banner/banner-event-promo.tsx
|
|
9
10
|
function cn(...inputs) {
|
|
10
11
|
return twMerge(clsx(inputs));
|
|
11
12
|
}
|
|
@@ -428,8 +429,8 @@ var Pressable = React.forwardRef(
|
|
|
428
429
|
);
|
|
429
430
|
Pressable.displayName = "Pressable";
|
|
430
431
|
function BannerEventPromo({
|
|
431
|
-
eventName
|
|
432
|
-
eventDetails
|
|
432
|
+
eventName,
|
|
433
|
+
eventDetails,
|
|
433
434
|
separator,
|
|
434
435
|
actions,
|
|
435
436
|
actionsSlot,
|
|
@@ -442,11 +443,18 @@ function BannerEventPromo({
|
|
|
442
443
|
eventDetailsClassName,
|
|
443
444
|
actionsClassName
|
|
444
445
|
}) {
|
|
445
|
-
const
|
|
446
|
+
const actionsContent = useMemo(() => {
|
|
446
447
|
if (actionsSlot) return actionsSlot;
|
|
447
448
|
if (!actions || actions.length === 0) return null;
|
|
448
449
|
return actions.map((action, index) => {
|
|
449
|
-
const {
|
|
450
|
+
const {
|
|
451
|
+
label,
|
|
452
|
+
icon: actionIcon,
|
|
453
|
+
iconAfter,
|
|
454
|
+
children,
|
|
455
|
+
className: actionClassName,
|
|
456
|
+
...pressableProps
|
|
457
|
+
} = action;
|
|
450
458
|
return /* @__PURE__ */ jsx(
|
|
451
459
|
Pressable,
|
|
452
460
|
{
|
|
@@ -462,8 +470,8 @@ function BannerEventPromo({
|
|
|
462
470
|
index
|
|
463
471
|
);
|
|
464
472
|
});
|
|
465
|
-
};
|
|
466
|
-
const
|
|
473
|
+
}, [actions, actionsSlot]);
|
|
474
|
+
const separatorContent = useMemo(() => {
|
|
467
475
|
if (separator) return separator;
|
|
468
476
|
return /* @__PURE__ */ jsx(
|
|
469
477
|
"svg",
|
|
@@ -474,14 +482,22 @@ function BannerEventPromo({
|
|
|
474
482
|
children: /* @__PURE__ */ jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
475
483
|
}
|
|
476
484
|
);
|
|
477
|
-
};
|
|
485
|
+
}, [separator, separatorClassName]);
|
|
486
|
+
const eventNameContent = useMemo(() => {
|
|
487
|
+
if (!eventName) return null;
|
|
488
|
+
return typeof eventName === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", eventNameClassName), children: eventName }) : /* @__PURE__ */ jsx("span", { className: eventNameClassName, children: eventName });
|
|
489
|
+
}, [eventName, eventNameClassName]);
|
|
490
|
+
const eventDetailsContent = useMemo(() => {
|
|
491
|
+
if (!eventDetails) return null;
|
|
492
|
+
return /* @__PURE__ */ jsx("span", { className: eventDetailsClassName, children: eventDetails });
|
|
493
|
+
}, [eventDetails, eventDetailsClassName]);
|
|
478
494
|
return /* @__PURE__ */ jsx("div", { className: cn("bg-primary text-primary-foreground", className), children: /* @__PURE__ */ jsx("div", { className: cn("container mx-auto px-4 md:px-6 2xl:max-w-[1400px]", containerClassName), children: /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-between gap-x-6 p-4", contentClassName), children: /* @__PURE__ */ jsxs("div", { className: cn("flex flex-wrap justify-between w-full items-center gap-x-4 gap-y-2", textClassName), children: [
|
|
479
495
|
/* @__PURE__ */ jsxs("p", { className: "text-sm leading-6", children: [
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
496
|
+
eventNameContent,
|
|
497
|
+
eventNameContent && eventDetailsContent && separatorContent,
|
|
498
|
+
eventDetailsContent
|
|
483
499
|
] }),
|
|
484
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children:
|
|
500
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: actionsClassName, children: actionsContent })
|
|
485
501
|
] }) }) }) });
|
|
486
502
|
}
|
|
487
503
|
|
|
@@ -555,17 +555,17 @@ function processSvgForCurrentColor(svg) {
|
|
|
555
555
|
return processed;
|
|
556
556
|
}
|
|
557
557
|
function BannerFloatingOffer({
|
|
558
|
-
offerTitle
|
|
559
|
-
offerDescription
|
|
558
|
+
offerTitle,
|
|
559
|
+
offerDescription,
|
|
560
560
|
separator,
|
|
561
561
|
actions,
|
|
562
562
|
actionsSlot,
|
|
563
563
|
open,
|
|
564
|
-
defaultOpen
|
|
564
|
+
defaultOpen,
|
|
565
565
|
onOpenChange,
|
|
566
|
-
dismissible
|
|
566
|
+
dismissible,
|
|
567
567
|
dismissIcon,
|
|
568
|
-
dismissAriaLabel
|
|
568
|
+
dismissAriaLabel,
|
|
569
569
|
className,
|
|
570
570
|
containerClassName,
|
|
571
571
|
textClassName,
|
|
@@ -576,24 +576,34 @@ function BannerFloatingOffer({
|
|
|
576
576
|
dismissButtonClassName
|
|
577
577
|
}) {
|
|
578
578
|
const isControlled = open !== void 0;
|
|
579
|
-
const
|
|
579
|
+
const initialOpen = defaultOpen ?? true;
|
|
580
|
+
const [internalOpen, setInternalOpen] = React.useState(initialOpen);
|
|
580
581
|
const isVisible = isControlled ? open : internalOpen;
|
|
582
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
583
|
+
const isDismissible = dismissible ?? false;
|
|
581
584
|
React.useEffect(() => {
|
|
582
585
|
if (!isControlled && defaultOpen !== internalOpen) {
|
|
583
|
-
setInternalOpen(
|
|
586
|
+
setInternalOpen(initialOpen);
|
|
584
587
|
}
|
|
585
|
-
}, [defaultOpen, isControlled, internalOpen]);
|
|
586
|
-
const handleDismiss = () => {
|
|
588
|
+
}, [defaultOpen, initialOpen, isControlled, internalOpen]);
|
|
589
|
+
const handleDismiss = React.useCallback(() => {
|
|
587
590
|
if (!isControlled) {
|
|
588
591
|
setInternalOpen(false);
|
|
589
592
|
}
|
|
590
593
|
onOpenChange?.(false);
|
|
591
|
-
};
|
|
592
|
-
const
|
|
594
|
+
}, [isControlled, onOpenChange]);
|
|
595
|
+
const actionsContent = React.useMemo(() => {
|
|
593
596
|
if (actionsSlot) return actionsSlot;
|
|
594
597
|
if (!actions || actions.length === 0) return null;
|
|
595
598
|
return actions.map((action, index) => {
|
|
596
|
-
const {
|
|
599
|
+
const {
|
|
600
|
+
label,
|
|
601
|
+
icon: actionIcon,
|
|
602
|
+
iconAfter,
|
|
603
|
+
children,
|
|
604
|
+
className: actionClassName,
|
|
605
|
+
...pressableProps
|
|
606
|
+
} = action;
|
|
597
607
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
598
608
|
Pressable,
|
|
599
609
|
{
|
|
@@ -609,8 +619,8 @@ function BannerFloatingOffer({
|
|
|
609
619
|
index
|
|
610
620
|
);
|
|
611
621
|
});
|
|
612
|
-
};
|
|
613
|
-
const
|
|
622
|
+
}, [actions, actionsSlot]);
|
|
623
|
+
const separatorContent = React.useMemo(() => {
|
|
614
624
|
if (separator) return separator;
|
|
615
625
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
616
626
|
"svg",
|
|
@@ -621,11 +631,19 @@ function BannerFloatingOffer({
|
|
|
621
631
|
children: /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
622
632
|
}
|
|
623
633
|
);
|
|
624
|
-
};
|
|
625
|
-
const
|
|
634
|
+
}, [separator, separatorClassName]);
|
|
635
|
+
const dismissIconContent = React.useMemo(() => {
|
|
626
636
|
if (dismissIcon) return dismissIcon;
|
|
627
637
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
628
|
-
};
|
|
638
|
+
}, [dismissIcon]);
|
|
639
|
+
const offerTitleContent = React.useMemo(() => {
|
|
640
|
+
if (!offerTitle) return null;
|
|
641
|
+
return typeof offerTitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerTitleClassName, children: offerTitle });
|
|
642
|
+
}, [offerTitle, offerTitleClassName]);
|
|
643
|
+
const offerDescriptionContent = React.useMemo(() => {
|
|
644
|
+
if (!offerDescription) return null;
|
|
645
|
+
return /* @__PURE__ */ jsxRuntime.jsx("span", { className: offerDescriptionClassName, children: offerDescription });
|
|
646
|
+
}, [offerDescription, offerDescriptionClassName]);
|
|
629
647
|
if (!isVisible) {
|
|
630
648
|
return null;
|
|
631
649
|
}
|
|
@@ -638,13 +656,13 @@ function BannerFloatingOffer({
|
|
|
638
656
|
),
|
|
639
657
|
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: [
|
|
640
658
|
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", textClassName), children: [
|
|
641
|
-
|
|
642
|
-
|
|
643
|
-
|
|
659
|
+
offerTitleContent,
|
|
660
|
+
offerTitleContent && offerDescriptionContent && separatorContent,
|
|
661
|
+
offerDescriptionContent
|
|
644
662
|
] }),
|
|
645
663
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", actionsClassName), children: [
|
|
646
|
-
|
|
647
|
-
|
|
664
|
+
actionsContent,
|
|
665
|
+
isDismissible && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
648
666
|
Pressable,
|
|
649
667
|
{
|
|
650
668
|
onClick: handleDismiss,
|
|
@@ -653,8 +671,8 @@ function BannerFloatingOffer({
|
|
|
653
671
|
asButton: true,
|
|
654
672
|
className: cn("size-8 text-primary-foreground hover:text-primary-foreground/80", dismissButtonClassName),
|
|
655
673
|
children: [
|
|
656
|
-
|
|
657
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
674
|
+
dismissIconContent,
|
|
675
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
658
676
|
]
|
|
659
677
|
}
|
|
660
678
|
)
|
|
@@ -35,7 +35,6 @@ interface BannerFloatingOfferProps {
|
|
|
35
35
|
open?: boolean;
|
|
36
36
|
/**
|
|
37
37
|
* Default visibility state for uncontrolled mode
|
|
38
|
-
* @default true
|
|
39
38
|
*/
|
|
40
39
|
defaultOpen?: boolean;
|
|
41
40
|
/**
|
|
@@ -44,7 +43,6 @@ interface BannerFloatingOfferProps {
|
|
|
44
43
|
onOpenChange?: (open: boolean) => void;
|
|
45
44
|
/**
|
|
46
45
|
* Whether the banner can be dismissed
|
|
47
|
-
* @default false
|
|
48
46
|
*/
|
|
49
47
|
dismissible?: boolean;
|
|
50
48
|
/**
|
|
@@ -53,7 +51,6 @@ interface BannerFloatingOfferProps {
|
|
|
53
51
|
dismissIcon?: React.ReactNode;
|
|
54
52
|
/**
|
|
55
53
|
* ARIA label for dismiss button
|
|
56
|
-
* @default "Dismiss banner"
|
|
57
54
|
*/
|
|
58
55
|
dismissAriaLabel?: string;
|
|
59
56
|
/**
|
|
@@ -35,7 +35,6 @@ interface BannerFloatingOfferProps {
|
|
|
35
35
|
open?: boolean;
|
|
36
36
|
/**
|
|
37
37
|
* Default visibility state for uncontrolled mode
|
|
38
|
-
* @default true
|
|
39
38
|
*/
|
|
40
39
|
defaultOpen?: boolean;
|
|
41
40
|
/**
|
|
@@ -44,7 +43,6 @@ interface BannerFloatingOfferProps {
|
|
|
44
43
|
onOpenChange?: (open: boolean) => void;
|
|
45
44
|
/**
|
|
46
45
|
* Whether the banner can be dismissed
|
|
47
|
-
* @default false
|
|
48
46
|
*/
|
|
49
47
|
dismissible?: boolean;
|
|
50
48
|
/**
|
|
@@ -53,7 +51,6 @@ interface BannerFloatingOfferProps {
|
|
|
53
51
|
dismissIcon?: React.ReactNode;
|
|
54
52
|
/**
|
|
55
53
|
* ARIA label for dismiss button
|
|
56
|
-
* @default "Dismiss banner"
|
|
57
54
|
*/
|
|
58
55
|
dismissAriaLabel?: string;
|
|
59
56
|
/**
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import * as React from 'react';
|
|
3
|
-
import { useState, useEffect } from 'react';
|
|
3
|
+
import { useState, useEffect, useCallback, useMemo } from 'react';
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { cva } from 'class-variance-authority';
|
|
@@ -534,17 +534,17 @@ function processSvgForCurrentColor(svg) {
|
|
|
534
534
|
return processed;
|
|
535
535
|
}
|
|
536
536
|
function BannerFloatingOffer({
|
|
537
|
-
offerTitle
|
|
538
|
-
offerDescription
|
|
537
|
+
offerTitle,
|
|
538
|
+
offerDescription,
|
|
539
539
|
separator,
|
|
540
540
|
actions,
|
|
541
541
|
actionsSlot,
|
|
542
542
|
open,
|
|
543
|
-
defaultOpen
|
|
543
|
+
defaultOpen,
|
|
544
544
|
onOpenChange,
|
|
545
|
-
dismissible
|
|
545
|
+
dismissible,
|
|
546
546
|
dismissIcon,
|
|
547
|
-
dismissAriaLabel
|
|
547
|
+
dismissAriaLabel,
|
|
548
548
|
className,
|
|
549
549
|
containerClassName,
|
|
550
550
|
textClassName,
|
|
@@ -555,24 +555,34 @@ function BannerFloatingOffer({
|
|
|
555
555
|
dismissButtonClassName
|
|
556
556
|
}) {
|
|
557
557
|
const isControlled = open !== void 0;
|
|
558
|
-
const
|
|
558
|
+
const initialOpen = defaultOpen ?? true;
|
|
559
|
+
const [internalOpen, setInternalOpen] = useState(initialOpen);
|
|
559
560
|
const isVisible = isControlled ? open : internalOpen;
|
|
561
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
562
|
+
const isDismissible = dismissible ?? false;
|
|
560
563
|
useEffect(() => {
|
|
561
564
|
if (!isControlled && defaultOpen !== internalOpen) {
|
|
562
|
-
setInternalOpen(
|
|
565
|
+
setInternalOpen(initialOpen);
|
|
563
566
|
}
|
|
564
|
-
}, [defaultOpen, isControlled, internalOpen]);
|
|
565
|
-
const handleDismiss = () => {
|
|
567
|
+
}, [defaultOpen, initialOpen, isControlled, internalOpen]);
|
|
568
|
+
const handleDismiss = useCallback(() => {
|
|
566
569
|
if (!isControlled) {
|
|
567
570
|
setInternalOpen(false);
|
|
568
571
|
}
|
|
569
572
|
onOpenChange?.(false);
|
|
570
|
-
};
|
|
571
|
-
const
|
|
573
|
+
}, [isControlled, onOpenChange]);
|
|
574
|
+
const actionsContent = useMemo(() => {
|
|
572
575
|
if (actionsSlot) return actionsSlot;
|
|
573
576
|
if (!actions || actions.length === 0) return null;
|
|
574
577
|
return actions.map((action, index) => {
|
|
575
|
-
const {
|
|
578
|
+
const {
|
|
579
|
+
label,
|
|
580
|
+
icon: actionIcon,
|
|
581
|
+
iconAfter,
|
|
582
|
+
children,
|
|
583
|
+
className: actionClassName,
|
|
584
|
+
...pressableProps
|
|
585
|
+
} = action;
|
|
576
586
|
return /* @__PURE__ */ jsx(
|
|
577
587
|
Pressable,
|
|
578
588
|
{
|
|
@@ -588,8 +598,8 @@ function BannerFloatingOffer({
|
|
|
588
598
|
index
|
|
589
599
|
);
|
|
590
600
|
});
|
|
591
|
-
};
|
|
592
|
-
const
|
|
601
|
+
}, [actions, actionsSlot]);
|
|
602
|
+
const separatorContent = useMemo(() => {
|
|
593
603
|
if (separator) return separator;
|
|
594
604
|
return /* @__PURE__ */ jsx(
|
|
595
605
|
"svg",
|
|
@@ -600,11 +610,19 @@ function BannerFloatingOffer({
|
|
|
600
610
|
children: /* @__PURE__ */ jsx("circle", { cx: 1, cy: 1, r: 1 })
|
|
601
611
|
}
|
|
602
612
|
);
|
|
603
|
-
};
|
|
604
|
-
const
|
|
613
|
+
}, [separator, separatorClassName]);
|
|
614
|
+
const dismissIconContent = useMemo(() => {
|
|
605
615
|
if (dismissIcon) return dismissIcon;
|
|
606
616
|
return /* @__PURE__ */ jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
607
|
-
};
|
|
617
|
+
}, [dismissIcon]);
|
|
618
|
+
const offerTitleContent = useMemo(() => {
|
|
619
|
+
if (!offerTitle) return null;
|
|
620
|
+
return typeof offerTitle === "string" ? /* @__PURE__ */ jsx("strong", { className: cn("font-semibold", offerTitleClassName), children: offerTitle }) : /* @__PURE__ */ jsx("span", { className: offerTitleClassName, children: offerTitle });
|
|
621
|
+
}, [offerTitle, offerTitleClassName]);
|
|
622
|
+
const offerDescriptionContent = useMemo(() => {
|
|
623
|
+
if (!offerDescription) return null;
|
|
624
|
+
return /* @__PURE__ */ jsx("span", { className: offerDescriptionClassName, children: offerDescription });
|
|
625
|
+
}, [offerDescription, offerDescriptionClassName]);
|
|
608
626
|
if (!isVisible) {
|
|
609
627
|
return null;
|
|
610
628
|
}
|
|
@@ -617,13 +635,13 @@ function BannerFloatingOffer({
|
|
|
617
635
|
),
|
|
618
636
|
children: /* @__PURE__ */ 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: [
|
|
619
637
|
/* @__PURE__ */ jsxs("p", { className: cn("text-sm leading-6 text-primary-foreground", textClassName), children: [
|
|
620
|
-
|
|
621
|
-
|
|
622
|
-
|
|
638
|
+
offerTitleContent,
|
|
639
|
+
offerTitleContent && offerDescriptionContent && separatorContent,
|
|
640
|
+
offerDescriptionContent
|
|
623
641
|
] }),
|
|
624
642
|
/* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", actionsClassName), children: [
|
|
625
|
-
|
|
626
|
-
|
|
643
|
+
actionsContent,
|
|
644
|
+
isDismissible && /* @__PURE__ */ jsxs(
|
|
627
645
|
Pressable,
|
|
628
646
|
{
|
|
629
647
|
onClick: handleDismiss,
|
|
@@ -632,8 +650,8 @@ function BannerFloatingOffer({
|
|
|
632
650
|
asButton: true,
|
|
633
651
|
className: cn("size-8 text-primary-foreground hover:text-primary-foreground/80", dismissButtonClassName),
|
|
634
652
|
children: [
|
|
635
|
-
|
|
636
|
-
/* @__PURE__ */ jsx("span", { className: "sr-only", children:
|
|
653
|
+
dismissIconContent,
|
|
654
|
+
/* @__PURE__ */ jsx("span", { className: "sr-only", children: dismissLabel })
|
|
637
655
|
]
|
|
638
656
|
}
|
|
639
657
|
)
|
|
@@ -556,14 +556,14 @@ function processSvgForCurrentColor(svg) {
|
|
|
556
556
|
}
|
|
557
557
|
function BannerGdprRights({
|
|
558
558
|
icon,
|
|
559
|
-
iconName
|
|
559
|
+
iconName,
|
|
560
560
|
title,
|
|
561
561
|
description,
|
|
562
562
|
actions,
|
|
563
563
|
actionsSlot,
|
|
564
564
|
onDismiss,
|
|
565
565
|
dismissIcon,
|
|
566
|
-
dismissAriaLabel
|
|
566
|
+
dismissAriaLabel,
|
|
567
567
|
className,
|
|
568
568
|
containerClassName,
|
|
569
569
|
contentClassName,
|
|
@@ -574,12 +574,14 @@ function BannerGdprRights({
|
|
|
574
574
|
dismissButtonClassName
|
|
575
575
|
}) {
|
|
576
576
|
const [isVisible, setIsVisible] = React.useState(true);
|
|
577
|
-
const
|
|
577
|
+
const dismissLabel = dismissAriaLabel ?? "Dismiss banner";
|
|
578
|
+
const handleDismiss = React.useCallback(() => {
|
|
578
579
|
setIsVisible(false);
|
|
579
580
|
onDismiss?.();
|
|
580
|
-
};
|
|
581
|
-
const
|
|
581
|
+
}, [onDismiss]);
|
|
582
|
+
const iconContent = React.useMemo(() => {
|
|
582
583
|
if (icon) return icon;
|
|
584
|
+
if (!iconName) return null;
|
|
583
585
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
584
586
|
DynamicIcon,
|
|
585
587
|
{
|
|
@@ -588,12 +590,19 @@ function BannerGdprRights({
|
|
|
588
590
|
className: cn("text-muted-foreground mt-0.5 shrink-0", iconClassName)
|
|
589
591
|
}
|
|
590
592
|
);
|
|
591
|
-
};
|
|
592
|
-
const
|
|
593
|
+
}, [icon, iconName, iconClassName]);
|
|
594
|
+
const actionsContent = React.useMemo(() => {
|
|
593
595
|
if (actionsSlot) return actionsSlot;
|
|
594
596
|
if (!actions || actions.length === 0) return null;
|
|
595
597
|
return actions.map((action, index) => {
|
|
596
|
-
const {
|
|
598
|
+
const {
|
|
599
|
+
label,
|
|
600
|
+
icon: actionIcon,
|
|
601
|
+
iconAfter,
|
|
602
|
+
children,
|
|
603
|
+
className: actionClassName,
|
|
604
|
+
...pressableProps
|
|
605
|
+
} = action;
|
|
597
606
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
598
607
|
Pressable,
|
|
599
608
|
{
|
|
@@ -608,11 +617,22 @@ function BannerGdprRights({
|
|
|
608
617
|
index
|
|
609
618
|
);
|
|
610
619
|
});
|
|
611
|
-
};
|
|
612
|
-
const
|
|
620
|
+
}, [actions, actionsSlot]);
|
|
621
|
+
const dismissIconContent = React.useMemo(() => {
|
|
613
622
|
if (dismissIcon) return dismissIcon;
|
|
614
623
|
return /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "mynaui/x", size: 16 });
|
|
615
|
-
};
|
|
624
|
+
}, [dismissIcon]);
|
|
625
|
+
const titleContent = React.useMemo(() => {
|
|
626
|
+
if (!title) return null;
|
|
627
|
+
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 });
|
|
628
|
+
}, [title, titleClassName]);
|
|
629
|
+
const descriptionContent = React.useMemo(() => {
|
|
630
|
+
if (!description && !actionsContent) return null;
|
|
631
|
+
return /* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("text-sm text-muted-foreground mt-1", descriptionClassName), children: [
|
|
632
|
+
description,
|
|
633
|
+
actionsContent && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: actionsContent })
|
|
634
|
+
] });
|
|
635
|
+
}, [description, actionsContent, descriptionClassName, actionsClassName]);
|
|
616
636
|
if (!isVisible) {
|
|
617
637
|
return null;
|
|
618
638
|
}
|
|
@@ -625,13 +645,10 @@ function BannerGdprRights({
|
|
|
625
645
|
),
|
|
626
646
|
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: [
|
|
627
647
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-start gap-3", contentClassName), children: [
|
|
628
|
-
|
|
648
|
+
iconContent,
|
|
629
649
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
630
|
-
|
|
631
|
-
|
|
632
|
-
description,
|
|
633
|
-
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: actionsClassName, children: renderActions() })
|
|
634
|
-
] })
|
|
650
|
+
titleContent,
|
|
651
|
+
descriptionContent
|
|
635
652
|
] })
|
|
636
653
|
] }),
|
|
637
654
|
/* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -643,8 +660,8 @@ function BannerGdprRights({
|
|
|
643
660
|
asButton: true,
|
|
644
661
|
className: cn("size-8", dismissButtonClassName),
|
|
645
662
|
children: [
|
|
646
|
-
|
|
647
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children:
|
|
663
|
+
dismissIconContent,
|
|
664
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "sr-only", children: dismissLabel })
|
|
648
665
|
]
|
|
649
666
|
}
|
|
650
667
|
)
|
|
@@ -15,7 +15,6 @@ interface BannerGdprRightsProps {
|
|
|
15
15
|
icon?: React.ReactNode;
|
|
16
16
|
/**
|
|
17
17
|
* Icon name for DynamicIcon (used if icon prop is not provided)
|
|
18
|
-
* @default "mynaui/globe"
|
|
19
18
|
*/
|
|
20
19
|
iconName?: string;
|
|
21
20
|
/**
|
|
@@ -44,7 +43,6 @@ interface BannerGdprRightsProps {
|
|
|
44
43
|
dismissIcon?: React.ReactNode;
|
|
45
44
|
/**
|
|
46
45
|
* ARIA label for dismiss button
|
|
47
|
-
* @default "Dismiss banner"
|
|
48
46
|
*/
|
|
49
47
|
dismissAriaLabel?: string;
|
|
50
48
|
/**
|
|
@@ -81,11 +79,11 @@ interface BannerGdprRightsProps {
|
|
|
81
79
|
dismissButtonClassName?: string;
|
|
82
80
|
}
|
|
83
81
|
/**
|
|
84
|
-
* BannerGdprRights - A bottom-positioned
|
|
82
|
+
* BannerGdprRights - A bottom-positioned privacy rights notice.
|
|
85
83
|
*
|
|
86
|
-
* Features a fixed bottom position with
|
|
84
|
+
* Features a fixed bottom position with icon, title, description, and optional action link.
|
|
87
85
|
* Includes a dismiss button to close the banner. The banner is positioned at the bottom
|
|
88
|
-
* of the viewport with a border-top styling. Ideal for
|
|
86
|
+
* of the viewport with a border-top styling. Ideal for privacy notices, data policy updates,
|
|
89
87
|
* and user rights information.
|
|
90
88
|
*
|
|
91
89
|
* @example
|
|
@@ -15,7 +15,6 @@ interface BannerGdprRightsProps {
|
|
|
15
15
|
icon?: React.ReactNode;
|
|
16
16
|
/**
|
|
17
17
|
* Icon name for DynamicIcon (used if icon prop is not provided)
|
|
18
|
-
* @default "mynaui/globe"
|
|
19
18
|
*/
|
|
20
19
|
iconName?: string;
|
|
21
20
|
/**
|
|
@@ -44,7 +43,6 @@ interface BannerGdprRightsProps {
|
|
|
44
43
|
dismissIcon?: React.ReactNode;
|
|
45
44
|
/**
|
|
46
45
|
* ARIA label for dismiss button
|
|
47
|
-
* @default "Dismiss banner"
|
|
48
46
|
*/
|
|
49
47
|
dismissAriaLabel?: string;
|
|
50
48
|
/**
|
|
@@ -81,11 +79,11 @@ interface BannerGdprRightsProps {
|
|
|
81
79
|
dismissButtonClassName?: string;
|
|
82
80
|
}
|
|
83
81
|
/**
|
|
84
|
-
* BannerGdprRights - A bottom-positioned
|
|
82
|
+
* BannerGdprRights - A bottom-positioned privacy rights notice.
|
|
85
83
|
*
|
|
86
|
-
* Features a fixed bottom position with
|
|
84
|
+
* Features a fixed bottom position with icon, title, description, and optional action link.
|
|
87
85
|
* Includes a dismiss button to close the banner. The banner is positioned at the bottom
|
|
88
|
-
* of the viewport with a border-top styling. Ideal for
|
|
86
|
+
* of the viewport with a border-top styling. Ideal for privacy notices, data policy updates,
|
|
89
87
|
* and user rights information.
|
|
90
88
|
*
|
|
91
89
|
* @example
|