@opensite/ui 0.8.9 → 0.9.1
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 +32 -4
- package/dist/about-company-profile.js +32 -4
- package/dist/about-culture-tabs.cjs +38 -8
- package/dist/about-culture-tabs.js +38 -8
- package/dist/about-developer-profile.cjs +37 -5
- package/dist/about-developer-profile.js +37 -5
- package/dist/about-developer-story.cjs +31 -3
- package/dist/about-developer-story.js +31 -3
- package/dist/about-expandable-values.cjs +43 -9
- package/dist/about-expandable-values.js +43 -9
- package/dist/about-interactive-tabs.cjs +63 -4
- package/dist/about-interactive-tabs.js +63 -4
- package/dist/about-location-info-hero.cjs +28 -2
- package/dist/about-location-info-hero.js +28 -2
- package/dist/about-minimal-story.cjs +35 -4
- package/dist/about-minimal-story.js +35 -4
- package/dist/about-mission-dual-image.cjs +30 -2
- package/dist/about-mission-dual-image.js +30 -2
- package/dist/about-mission-features.cjs +36 -4
- package/dist/about-mission-features.js +36 -4
- package/dist/about-mission-principles.cjs +39 -6
- package/dist/about-mission-principles.js +39 -6
- package/dist/about-network-spotlight.cjs +33 -5
- package/dist/about-network-spotlight.js +33 -5
- package/dist/about-startup-team.cjs +47 -6
- package/dist/about-startup-team.js +47 -6
- package/dist/about-stats-showcase.cjs +31 -4
- package/dist/about-stats-showcase.js +31 -4
- package/dist/about-stats-sidebar.cjs +29 -3
- package/dist/about-stats-sidebar.js +29 -3
- package/dist/about-story-expertise.cjs +44 -8
- package/dist/about-story-expertise.js +44 -8
- package/dist/about-story-gallery.cjs +28 -1
- package/dist/about-story-gallery.js +28 -1
- package/dist/about-story-hero.cjs +36 -4
- package/dist/about-story-hero.js +36 -4
- package/dist/about-streamline-team.cjs +32 -4
- package/dist/about-streamline-team.js +32 -4
- package/dist/about-vision-gallery.cjs +32 -3
- package/dist/about-vision-gallery.js +32 -3
- package/dist/alternating-blocks.cjs +5 -1
- package/dist/alternating-blocks.js +5 -1
- package/dist/banner-announcement-dismissible.cjs +377 -1
- package/dist/banner-announcement-dismissible.d.cts +7 -1
- package/dist/banner-announcement-dismissible.d.ts +7 -1
- package/dist/banner-announcement-dismissible.js +378 -2
- package/dist/banner-countdown-sale.cjs +388 -8
- package/dist/banner-countdown-sale.d.cts +11 -1
- package/dist/banner-countdown-sale.d.ts +11 -1
- package/dist/banner-countdown-sale.js +379 -3
- package/dist/banner-delivery-countdown.cjs +377 -1
- package/dist/banner-delivery-countdown.d.cts +11 -1
- package/dist/banner-delivery-countdown.d.ts +11 -1
- package/dist/banner-delivery-countdown.js +378 -2
- package/dist/banner-event-promo.cjs +377 -1
- package/dist/banner-event-promo.d.cts +7 -1
- package/dist/banner-event-promo.d.ts +7 -1
- package/dist/banner-event-promo.js +378 -2
- package/dist/banner-floating-offer.cjs +379 -3
- package/dist/banner-floating-offer.d.cts +7 -1
- package/dist/banner-floating-offer.d.ts +7 -1
- package/dist/banner-floating-offer.js +380 -4
- package/dist/banner-gdpr-rights.cjs +398 -31
- package/dist/banner-gdpr-rights.d.cts +7 -1
- package/dist/banner-gdpr-rights.d.ts +7 -1
- package/dist/banner-gdpr-rights.js +399 -32
- package/dist/banner-privacy-notice.cjs +399 -32
- package/dist/banner-privacy-notice.d.cts +7 -1
- package/dist/banner-privacy-notice.d.ts +7 -1
- package/dist/banner-privacy-notice.js +400 -33
- package/dist/banner-promo-cta.cjs +382 -12
- package/dist/banner-promo-cta.d.cts +7 -1
- package/dist/banner-promo-cta.d.ts +7 -1
- package/dist/banner-promo-cta.js +383 -13
- package/dist/banner-social-follow.cjs +395 -28
- package/dist/banner-social-follow.d.cts +7 -1
- package/dist/banner-social-follow.d.ts +7 -1
- package/dist/banner-social-follow.js +396 -29
- package/dist/banner-survey-incentive.cjs +377 -1
- package/dist/banner-survey-incentive.d.cts +7 -1
- package/dist/banner-survey-incentive.d.ts +7 -1
- package/dist/banner-survey-incentive.js +378 -2
- package/dist/community-initiatives.cjs +43 -10
- package/dist/community-initiatives.js +43 -10
- package/dist/components.cjs +76 -36
- package/dist/components.js +76 -36
- package/dist/contact-floating-banner.cjs +378 -2
- package/dist/contact-floating-banner.d.cts +7 -1
- package/dist/contact-floating-banner.d.ts +7 -1
- package/dist/contact-floating-banner.js +379 -2
- package/dist/cta-accent-background.cjs +28 -1
- package/dist/cta-accent-background.js +28 -1
- package/dist/cta-app-download-newsletter.cjs +30 -2
- package/dist/cta-app-download-newsletter.js +30 -2
- package/dist/cta-documentation-links.cjs +28 -2
- package/dist/cta-documentation-links.js +28 -2
- package/dist/cta-feature-cards-grid.cjs +34 -3
- package/dist/cta-feature-cards-grid.js +34 -3
- package/dist/cta-feature-checklist.cjs +27 -1
- package/dist/cta-feature-checklist.js +27 -1
- package/dist/cta-feature-list.cjs +33 -2
- package/dist/cta-feature-list.js +33 -2
- package/dist/cta-gradient-logos-floating.cjs +28 -1
- package/dist/cta-gradient-logos-floating.js +28 -1
- package/dist/cta-minimal-separator.cjs +27 -1
- package/dist/cta-minimal-separator.js +27 -1
- package/dist/cta-platform-demo.cjs +28 -1
- package/dist/cta-platform-demo.js +28 -1
- package/dist/cta-simple-centered.cjs +28 -1
- package/dist/cta-simple-centered.js +28 -1
- package/dist/cta-split-gradient-image.cjs +28 -1
- package/dist/cta-split-gradient-image.js +28 -1
- package/dist/cta-split-image-logos.cjs +29 -2
- package/dist/cta-split-image-logos.js +29 -2
- package/dist/cta-split-image.cjs +29 -2
- package/dist/cta-split-image.js +29 -2
- package/dist/cta-stacked-cards.cjs +28 -1
- package/dist/cta-stacked-cards.js +28 -1
- package/dist/faq-badge-support.cjs +33 -5
- package/dist/faq-badge-support.js +33 -5
- package/dist/faq-bordered-badge.cjs +31 -3
- package/dist/faq-bordered-badge.js +31 -3
- package/dist/faq-card-categories.cjs +60 -4
- package/dist/faq-card-categories.js +60 -4
- package/dist/faq-categorized-sections.cjs +31 -3
- package/dist/faq-categorized-sections.js +31 -3
- package/dist/faq-centered-accordion.cjs +31 -3
- package/dist/faq-centered-accordion.js +31 -3
- package/dist/faq-gradient-categories.cjs +31 -3
- package/dist/faq-gradient-categories.js +31 -3
- package/dist/faq-icon-benefits.cjs +40 -5
- package/dist/faq-icon-benefits.js +40 -5
- package/dist/faq-muted-cards.cjs +29 -2
- package/dist/faq-muted-cards.js +29 -2
- package/dist/faq-numbered-grid.cjs +32 -3
- package/dist/faq-numbered-grid.js +32 -3
- package/dist/faq-numbered-list.cjs +32 -3
- package/dist/faq-numbered-list.js +32 -3
- package/dist/faq-profile-sidebar.cjs +36 -6
- package/dist/faq-profile-sidebar.js +36 -6
- package/dist/faq-sidebar-navigation.cjs +30 -3
- package/dist/faq-sidebar-navigation.js +30 -3
- package/dist/faq-simple-accordion.cjs +29 -2
- package/dist/faq-simple-accordion.js +29 -2
- package/dist/feature-accordion-image.cjs +28 -2
- package/dist/feature-accordion-image.js +28 -2
- package/dist/feature-badge-grid-six.cjs +27 -1
- package/dist/feature-badge-grid-six.js +27 -1
- package/dist/feature-bento-image-grid.cjs +27 -1
- package/dist/feature-bento-image-grid.js +27 -1
- package/dist/feature-bento-utilities.cjs +56 -4
- package/dist/feature-bento-utilities.js +56 -4
- package/dist/feature-capabilities-grid.cjs +29 -3
- package/dist/feature-capabilities-grid.js +29 -3
- package/dist/feature-card-grid-linked.cjs +29 -2
- package/dist/feature-card-grid-linked.js +29 -2
- package/dist/feature-carousel-progress.cjs +28 -2
- package/dist/feature-carousel-progress.js +28 -2
- package/dist/feature-category-image-cards.cjs +28 -2
- package/dist/feature-category-image-cards.js +28 -2
- package/dist/feature-checklist-image.cjs +30 -2
- package/dist/feature-checklist-image.js +30 -2
- package/dist/feature-checklist-three-column.cjs +35 -5
- package/dist/feature-checklist-three-column.js +35 -5
- package/dist/feature-icon-grid-accent.cjs +28 -2
- package/dist/feature-icon-grid-accent.js +28 -2
- package/dist/feature-icon-grid-bordered.cjs +9 -4
- package/dist/feature-icon-grid-bordered.js +9 -4
- package/dist/feature-icon-grid-muted.cjs +28 -2
- package/dist/feature-icon-grid-muted.js +28 -2
- package/dist/feature-icon-tabs-content.cjs +56 -5
- package/dist/feature-icon-tabs-content.js +56 -5
- package/dist/feature-image-cards-three-column.cjs +27 -1
- package/dist/feature-image-cards-three-column.js +27 -1
- package/dist/feature-integration-cards.cjs +28 -2
- package/dist/feature-integration-cards.js +28 -2
- package/dist/feature-pattern-grid-links.cjs +28 -2
- package/dist/feature-pattern-grid-links.js +28 -2
- package/dist/feature-utility-cards-grid.cjs +9 -4
- package/dist/feature-utility-cards-grid.js +9 -4
- package/dist/footer-comprehensive-links.cjs +231 -151
- package/dist/footer-comprehensive-links.js +231 -151
- package/dist/hero-ad-campaign-expert.cjs +24 -2
- package/dist/hero-ad-campaign-expert.js +24 -2
- package/dist/hero-adaptable-product-grid.cjs +27 -1
- package/dist/hero-adaptable-product-grid.js +27 -1
- package/dist/hero-ai-powered-carousel.cjs +27 -1
- package/dist/hero-ai-powered-carousel.js +27 -1
- package/dist/hero-announcement-badge.cjs +27 -1
- package/dist/hero-announcement-badge.js +27 -1
- package/dist/hero-architecture-fullscreen.cjs +50 -2
- package/dist/hero-architecture-fullscreen.js +50 -2
- package/dist/hero-badge-image-split.cjs +27 -1
- package/dist/hero-badge-image-split.js +27 -1
- package/dist/hero-business-carousel-dots.cjs +27 -1
- package/dist/hero-business-carousel-dots.js +27 -1
- package/dist/hero-centered-gradient-cta.cjs +28 -2
- package/dist/hero-centered-gradient-cta.js +28 -2
- package/dist/hero-centered-image-grid.cjs +27 -1
- package/dist/hero-centered-image-grid.js +27 -1
- package/dist/hero-centered-screenshot.cjs +50 -2
- package/dist/hero-centered-screenshot.js +50 -2
- package/dist/hero-coming-soon-countdown.cjs +37 -7
- package/dist/hero-coming-soon-countdown.js +37 -7
- package/dist/hero-community-survey-cta.cjs +27 -1
- package/dist/hero-community-survey-cta.js +27 -1
- package/dist/hero-conversation-intelligence.cjs +50 -2
- package/dist/hero-conversation-intelligence.js +50 -2
- package/dist/hero-conversion-video-play.cjs +55 -3
- package/dist/hero-conversion-video-play.js +55 -3
- package/dist/hero-creative-studio-stacked.cjs +28 -2
- package/dist/hero-creative-studio-stacked.js +28 -2
- package/dist/hero-crm-streamlined.cjs +27 -1
- package/dist/hero-crm-streamlined.js +27 -1
- package/dist/hero-customer-support-layered.cjs +51 -3
- package/dist/hero-customer-support-layered.js +51 -3
- package/dist/hero-dashed-border-features.cjs +27 -1
- package/dist/hero-dashed-border-features.js +27 -1
- package/dist/hero-design-showcase-logos.cjs +27 -1
- package/dist/hero-design-showcase-logos.js +27 -1
- package/dist/hero-design-system-3d.cjs +32 -2
- package/dist/hero-design-system-3d.js +32 -2
- package/dist/hero-developer-tools-code.cjs +27 -1
- package/dist/hero-developer-tools-code.js +27 -1
- package/dist/hero-digital-agency-fullscreen.cjs +33 -3
- package/dist/hero-digital-agency-fullscreen.js +33 -3
- package/dist/hero-ecommerce-product-showcase.cjs +32 -6
- package/dist/hero-ecommerce-product-showcase.js +32 -6
- package/dist/hero-enterprise-security.cjs +34 -4
- package/dist/hero-enterprise-security.js +34 -4
- package/dist/hero-event-registration.cjs +35 -5
- package/dist/hero-event-registration.js +35 -5
- package/dist/hero-feature-cards-grid.cjs +82 -4
- package/dist/hero-feature-cards-grid.js +82 -4
- package/dist/hero-gradient-avatars-rating.cjs +30 -4
- package/dist/hero-gradient-avatars-rating.js +30 -4
- package/dist/hero-gradient-client-focused.cjs +27 -1
- package/dist/hero-gradient-client-focused.js +27 -1
- package/dist/hero-grid-pattern-efficiency.cjs +28 -2
- package/dist/hero-grid-pattern-efficiency.js +28 -2
- package/dist/hero-grid-pattern-solutions.cjs +27 -1
- package/dist/hero-grid-pattern-solutions.js +27 -1
- package/dist/hero-image-left-content.cjs +27 -1
- package/dist/hero-image-left-content.js +27 -1
- package/dist/hero-innovation-image-grid.cjs +27 -1
- package/dist/hero-innovation-image-grid.js +27 -1
- package/dist/hero-logo-centered-screenshot.cjs +27 -1
- package/dist/hero-logo-centered-screenshot.js +27 -1
- package/dist/hero-marketplace-scattered-images.cjs +27 -1
- package/dist/hero-marketplace-scattered-images.js +27 -1
- package/dist/hero-mentorship-video-split.cjs +7 -3
- package/dist/hero-mentorship-video-split.js +7 -3
- package/dist/hero-minimal-centered-dark.cjs +55 -3
- package/dist/hero-minimal-centered-dark.js +55 -3
- package/dist/hero-mobile-app-download.cjs +34 -4
- package/dist/hero-mobile-app-download.js +34 -4
- package/dist/hero-newsletter-minimal.cjs +29 -3
- package/dist/hero-newsletter-minimal.js +29 -3
- package/dist/hero-overlay-cta-grid.cjs +33 -3
- package/dist/hero-overlay-cta-grid.js +33 -3
- package/dist/hero-pattern-badge-logos.cjs +28 -2
- package/dist/hero-pattern-badge-logos.js +28 -2
- package/dist/hero-pattern-logo-tech-stack.cjs +33 -3
- package/dist/hero-pattern-logo-tech-stack.js +33 -3
- package/dist/hero-platform-features-grid.cjs +28 -2
- package/dist/hero-platform-features-grid.js +28 -2
- package/dist/hero-portfolio-creative.cjs +29 -3
- package/dist/hero-portfolio-creative.js +29 -3
- package/dist/hero-pricing-comparison.cjs +52 -4
- package/dist/hero-pricing-comparison.js +52 -4
- package/dist/hero-product-showcase-floating.cjs +34 -4
- package/dist/hero-product-showcase-floating.js +34 -4
- package/dist/hero-productivity-launcher-video.cjs +29 -3
- package/dist/hero-productivity-launcher-video.js +29 -3
- package/dist/hero-saas-dashboard-preview.cjs +34 -4
- package/dist/hero-saas-dashboard-preview.js +34 -4
- package/dist/hero-shared-inbox-layered.cjs +51 -3
- package/dist/hero-shared-inbox-layered.js +51 -3
- package/dist/hero-simple-centered-image.cjs +27 -1
- package/dist/hero-simple-centered-image.js +27 -1
- package/dist/hero-software-growth-video-dialog.cjs +50 -2
- package/dist/hero-software-growth-video-dialog.js +50 -2
- package/dist/hero-spiral-pattern-cards.cjs +28 -2
- package/dist/hero-spiral-pattern-cards.js +28 -2
- package/dist/hero-split-icon-cards.cjs +34 -4
- package/dist/hero-split-icon-cards.js +34 -4
- package/dist/hero-split-image-newsletter.cjs +28 -2
- package/dist/hero-split-image-newsletter.js +28 -2
- package/dist/hero-split-spiral-shapes.cjs +28 -2
- package/dist/hero-split-spiral-shapes.js +28 -2
- package/dist/hero-startup-launch-cta.cjs +28 -2
- package/dist/hero-startup-launch-cta.js +28 -2
- package/dist/hero-stats-social-proof.cjs +34 -4
- package/dist/hero-stats-social-proof.js +34 -4
- package/dist/hero-tech-carousel.cjs +27 -1
- package/dist/hero-tech-carousel.js +27 -1
- package/dist/hero-ui-library-showcase.cjs +27 -1
- package/dist/hero-ui-library-showcase.js +27 -1
- package/dist/hero-video-background-dark.cjs +28 -2
- package/dist/hero-video-background-dark.js +28 -2
- package/dist/hero-video-dialog-gradient.cjs +27 -1
- package/dist/hero-video-dialog-gradient.js +27 -1
- package/dist/hero-welcome-asymmetric-images.cjs +30 -2
- package/dist/hero-welcome-asymmetric-images.js +30 -2
- package/dist/index.cjs +104 -36
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +102 -37
- package/dist/link-page-bento-layout.cjs +57 -28
- package/dist/link-page-bento-layout.d.cts +1 -5
- package/dist/link-page-bento-layout.d.ts +1 -5
- package/dist/link-page-bento-layout.js +57 -28
- package/dist/link-page-grid-cards.cjs +52 -23
- package/dist/link-page-grid-cards.d.cts +1 -5
- package/dist/link-page-grid-cards.d.ts +1 -5
- package/dist/link-page-grid-cards.js +52 -23
- package/dist/link-page-minimal-profile.cjs +46 -18
- package/dist/link-page-minimal-profile.d.cts +1 -5
- package/dist/link-page-minimal-profile.d.ts +1 -5
- package/dist/link-page-minimal-profile.js +46 -18
- package/dist/link-page-newsletter-social.cjs +53 -28
- package/dist/link-page-newsletter-social.d.cts +1 -5
- package/dist/link-page-newsletter-social.d.ts +1 -5
- package/dist/link-page-newsletter-social.js +53 -28
- package/dist/link-tree-block.cjs +122 -34
- package/dist/link-tree-block.d.cts +1 -8
- package/dist/link-tree-block.d.ts +1 -8
- package/dist/link-tree-block.js +122 -34
- package/dist/media-hover-ctas.cjs +28 -2
- package/dist/media-hover-ctas.js +28 -2
- package/dist/process-expandable-timeline.cjs +66 -10
- package/dist/process-expandable-timeline.js +66 -10
- package/dist/process-hover-cards.cjs +39 -6
- package/dist/process-hover-cards.js +39 -6
- package/dist/process-icon-timeline.cjs +53 -3
- package/dist/process-icon-timeline.js +53 -3
- package/dist/process-mission-principles.cjs +44 -6
- package/dist/process-mission-principles.js +44 -6
- package/dist/process-numbered-services.cjs +76 -22
- package/dist/process-numbered-services.js +76 -22
- package/dist/process-roadmap-timeline.cjs +63 -9
- package/dist/process-roadmap-timeline.js +63 -9
- package/dist/process-scroll-image.cjs +71 -32
- package/dist/process-scroll-image.js +71 -32
- package/dist/process-steps-grid.cjs +61 -5
- package/dist/process-steps-grid.js +61 -5
- package/dist/process-sticky-steps.cjs +49 -69
- package/dist/process-sticky-steps.d.cts +1 -13
- package/dist/process-sticky-steps.d.ts +1 -13
- package/dist/process-sticky-steps.js +49 -69
- package/dist/project-zigzag-layout.cjs +379 -3
- package/dist/project-zigzag-layout.d.cts +8 -1
- package/dist/project-zigzag-layout.d.ts +8 -1
- package/dist/project-zigzag-layout.js +380 -3
- package/dist/registry.cjs +2759 -2476
- package/dist/registry.js +2759 -2476
- package/dist/team-media-showcase.cjs +59 -4
- package/dist/team-media-showcase.d.cts +4 -0
- package/dist/team-media-showcase.d.ts +4 -0
- package/dist/team-media-showcase.js +59 -4
- package/dist/testimonials-carousel-image.d.cts +6 -0
- package/dist/testimonials-carousel-image.d.ts +6 -0
- package/dist/utils.cjs +58 -0
- package/dist/utils.d.cts +113 -1
- package/dist/utils.d.ts +113 -1
- package/dist/utils.js +56 -1
- package/package.json +1 -1
|
@@ -62,6 +62,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
62
62
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
63
63
|
return isDark ? "text-foreground" : "";
|
|
64
64
|
}
|
|
65
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
66
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
67
|
+
if (isDark) {
|
|
68
|
+
switch (variant) {
|
|
69
|
+
case "default":
|
|
70
|
+
return "text-foreground";
|
|
71
|
+
case "muted":
|
|
72
|
+
return "text-foreground/80";
|
|
73
|
+
case "subtle":
|
|
74
|
+
return "text-foreground/60";
|
|
75
|
+
case "accent":
|
|
76
|
+
return "text-accent-foreground";
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
switch (variant) {
|
|
80
|
+
case "default":
|
|
81
|
+
return "text-foreground";
|
|
82
|
+
case "muted":
|
|
83
|
+
return "text-muted-foreground";
|
|
84
|
+
case "subtle":
|
|
85
|
+
return "text-muted-foreground/70";
|
|
86
|
+
case "accent":
|
|
87
|
+
return "text-primary";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function getAccentColor(parentBg, options) {
|
|
92
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
93
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
94
|
+
}
|
|
65
95
|
function normalizePhoneNumber(input) {
|
|
66
96
|
const trimmed = input.trim();
|
|
67
97
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -909,7 +939,7 @@ function HeroStatsSocialProof({
|
|
|
909
939
|
if (!stats || stats.length === 0) return null;
|
|
910
940
|
return stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: stat.className, children: [
|
|
911
941
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-3xl font-bold ", children: stat.value }),
|
|
912
|
-
stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm
|
|
942
|
+
stat.label && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm", getTextColor(background, "muted")), children: stat.label })
|
|
913
943
|
] }, index));
|
|
914
944
|
}, [statsSlot, stats]);
|
|
915
945
|
const renderStatusCard = React.useMemo(() => {
|
|
@@ -923,7 +953,7 @@ function HeroStatsSocialProof({
|
|
|
923
953
|
statusCard.icon && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-success/10", children: statusCard.icon }),
|
|
924
954
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
925
955
|
statusCard.title && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-semibold ", children: statusCard.title }),
|
|
926
|
-
statusCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm
|
|
956
|
+
statusCard.subtitle && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-sm", getTextColor(background, "muted")), children: statusCard.subtitle })
|
|
927
957
|
] })
|
|
928
958
|
] }) });
|
|
929
959
|
}, [statusCardSlot, statusCard]);
|
|
@@ -937,12 +967,12 @@ function HeroStatsSocialProof({
|
|
|
937
967
|
className: cn(className),
|
|
938
968
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
939
969
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
940
|
-
badge && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("inline-flex w-fit items-center gap-2 rounded-full
|
|
970
|
+
badge && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("inline-flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm font-medium", `${getAccentColor(background)}/10`, getAccentColor(background), badgeClassName), children: [
|
|
941
971
|
badgeIcon,
|
|
942
972
|
typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
|
|
943
973
|
] }),
|
|
944
974
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
945
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg
|
|
975
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
946
976
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col gap-4 sm:flex-row", actionsClassName), children: renderActions }),
|
|
947
977
|
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("grid grid-cols-3 gap-8 pt-8 border-t border-border", statsClassName), children: renderStats })
|
|
948
978
|
] }),
|
|
@@ -41,6 +41,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
41
41
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
42
|
return isDark ? "text-foreground" : "";
|
|
43
43
|
}
|
|
44
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
45
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
46
|
+
if (isDark) {
|
|
47
|
+
switch (variant) {
|
|
48
|
+
case "default":
|
|
49
|
+
return "text-foreground";
|
|
50
|
+
case "muted":
|
|
51
|
+
return "text-foreground/80";
|
|
52
|
+
case "subtle":
|
|
53
|
+
return "text-foreground/60";
|
|
54
|
+
case "accent":
|
|
55
|
+
return "text-accent-foreground";
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
switch (variant) {
|
|
59
|
+
case "default":
|
|
60
|
+
return "text-foreground";
|
|
61
|
+
case "muted":
|
|
62
|
+
return "text-muted-foreground";
|
|
63
|
+
case "subtle":
|
|
64
|
+
return "text-muted-foreground/70";
|
|
65
|
+
case "accent":
|
|
66
|
+
return "text-primary";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function getAccentColor(parentBg, options) {
|
|
71
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
72
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
73
|
+
}
|
|
44
74
|
function normalizePhoneNumber(input) {
|
|
45
75
|
const trimmed = input.trim();
|
|
46
76
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -888,7 +918,7 @@ function HeroStatsSocialProof({
|
|
|
888
918
|
if (!stats || stats.length === 0) return null;
|
|
889
919
|
return stats.map((stat, index) => /* @__PURE__ */ jsxs("div", { className: stat.className, children: [
|
|
890
920
|
/* @__PURE__ */ jsx("div", { className: "text-3xl font-bold ", children: stat.value }),
|
|
891
|
-
stat.label && /* @__PURE__ */ jsx("div", { className: "text-sm
|
|
921
|
+
stat.label && /* @__PURE__ */ jsx("div", { className: cn("text-sm", getTextColor(background, "muted")), children: stat.label })
|
|
892
922
|
] }, index));
|
|
893
923
|
}, [statsSlot, stats]);
|
|
894
924
|
const renderStatusCard = useMemo(() => {
|
|
@@ -902,7 +932,7 @@ function HeroStatsSocialProof({
|
|
|
902
932
|
statusCard.icon && /* @__PURE__ */ jsx("div", { className: "flex h-12 w-12 items-center justify-center rounded-full bg-success/10", children: statusCard.icon }),
|
|
903
933
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
904
934
|
statusCard.title && /* @__PURE__ */ jsx("div", { className: "font-semibold ", children: statusCard.title }),
|
|
905
|
-
statusCard.subtitle && /* @__PURE__ */ jsx("div", { className: "text-sm
|
|
935
|
+
statusCard.subtitle && /* @__PURE__ */ jsx("div", { className: cn("text-sm", getTextColor(background, "muted")), children: statusCard.subtitle })
|
|
906
936
|
] })
|
|
907
937
|
] }) });
|
|
908
938
|
}, [statusCardSlot, statusCard]);
|
|
@@ -916,12 +946,12 @@ function HeroStatsSocialProof({
|
|
|
916
946
|
className: cn(className),
|
|
917
947
|
children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
918
948
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
919
|
-
badge && /* @__PURE__ */ jsxs("div", { className: cn("inline-flex w-fit items-center gap-2 rounded-full
|
|
949
|
+
badge && /* @__PURE__ */ jsxs("div", { className: cn("inline-flex w-fit items-center gap-2 rounded-full px-4 py-2 text-sm font-medium", `${getAccentColor(background)}/10`, getAccentColor(background), badgeClassName), children: [
|
|
920
950
|
badgeIcon,
|
|
921
951
|
typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
|
|
922
952
|
] }),
|
|
923
953
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
924
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg
|
|
954
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
925
955
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex flex-col gap-4 sm:flex-row", actionsClassName), children: renderActions }),
|
|
926
956
|
(statsSlot || stats && stats.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("grid grid-cols-3 gap-8 pt-8 border-t border-border", statsClassName), children: renderStats })
|
|
927
957
|
] }),
|
|
@@ -67,6 +67,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
67
67
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
68
68
|
return isDark ? "text-foreground" : "";
|
|
69
69
|
}
|
|
70
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
71
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
72
|
+
if (isDark) {
|
|
73
|
+
switch (variant) {
|
|
74
|
+
case "default":
|
|
75
|
+
return "text-foreground";
|
|
76
|
+
case "muted":
|
|
77
|
+
return "text-foreground/80";
|
|
78
|
+
case "subtle":
|
|
79
|
+
return "text-foreground/60";
|
|
80
|
+
case "accent":
|
|
81
|
+
return "text-accent-foreground";
|
|
82
|
+
}
|
|
83
|
+
} else {
|
|
84
|
+
switch (variant) {
|
|
85
|
+
case "default":
|
|
86
|
+
return "text-foreground";
|
|
87
|
+
case "muted":
|
|
88
|
+
return "text-muted-foreground";
|
|
89
|
+
case "subtle":
|
|
90
|
+
return "text-muted-foreground/70";
|
|
91
|
+
case "accent":
|
|
92
|
+
return "text-primary";
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}
|
|
70
96
|
var CarouselContext = React__namespace.createContext(null);
|
|
71
97
|
function useCarousel() {
|
|
72
98
|
const context = React__namespace.useContext(CarouselContext);
|
|
@@ -670,7 +696,7 @@ function HeroTechCarousel({
|
|
|
670
696
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
|
|
671
697
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center", children: [
|
|
672
698
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading })),
|
|
673
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-center text-lg
|
|
699
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-center text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
674
700
|
technologies && technologies.length > 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn(
|
|
675
701
|
"mx-auto mt-8 mb-12 flex h-[60px] w-fit items-center gap-2 rounded-md px-4 py-2 text-center",
|
|
676
702
|
getNestedCardBg(background),
|
|
@@ -42,6 +42,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
42
42
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
43
|
return isDark ? "text-foreground" : "";
|
|
44
44
|
}
|
|
45
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
46
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
47
|
+
if (isDark) {
|
|
48
|
+
switch (variant) {
|
|
49
|
+
case "default":
|
|
50
|
+
return "text-foreground";
|
|
51
|
+
case "muted":
|
|
52
|
+
return "text-foreground/80";
|
|
53
|
+
case "subtle":
|
|
54
|
+
return "text-foreground/60";
|
|
55
|
+
case "accent":
|
|
56
|
+
return "text-accent-foreground";
|
|
57
|
+
}
|
|
58
|
+
} else {
|
|
59
|
+
switch (variant) {
|
|
60
|
+
case "default":
|
|
61
|
+
return "text-foreground";
|
|
62
|
+
case "muted":
|
|
63
|
+
return "text-muted-foreground";
|
|
64
|
+
case "subtle":
|
|
65
|
+
return "text-muted-foreground/70";
|
|
66
|
+
case "accent":
|
|
67
|
+
return "text-primary";
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
45
71
|
var CarouselContext = React.createContext(null);
|
|
46
72
|
function useCarousel() {
|
|
47
73
|
const context = React.useContext(CarouselContext);
|
|
@@ -645,7 +671,7 @@ function HeroTechCarousel({
|
|
|
645
671
|
children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
|
|
646
672
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center", children: [
|
|
647
673
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("mx-auto mb-4 max-w-2xl text-center text-4xl font-bold md:text-6xl", headingClassName), children: heading })),
|
|
648
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-center text-lg
|
|
674
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto mt-4 max-w-xl text-center text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
649
675
|
technologies && technologies.length > 0 && /* @__PURE__ */ jsx("div", { className: cn(
|
|
650
676
|
"mx-auto mt-8 mb-12 flex h-[60px] w-fit items-center gap-2 rounded-md px-4 py-2 text-center",
|
|
651
677
|
getNestedCardBg(background),
|
|
@@ -34,6 +34,32 @@ var AspectRatioPrimitive__namespace = /*#__PURE__*/_interopNamespace(AspectRatio
|
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
37
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
38
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
39
|
+
if (isDark) {
|
|
40
|
+
switch (variant) {
|
|
41
|
+
case "default":
|
|
42
|
+
return "text-foreground";
|
|
43
|
+
case "muted":
|
|
44
|
+
return "text-foreground/80";
|
|
45
|
+
case "subtle":
|
|
46
|
+
return "text-foreground/60";
|
|
47
|
+
case "accent":
|
|
48
|
+
return "text-accent-foreground";
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
switch (variant) {
|
|
52
|
+
case "default":
|
|
53
|
+
return "text-foreground";
|
|
54
|
+
case "muted":
|
|
55
|
+
return "text-muted-foreground";
|
|
56
|
+
case "subtle":
|
|
57
|
+
return "text-muted-foreground/70";
|
|
58
|
+
case "accent":
|
|
59
|
+
return "text-primary";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
37
63
|
function normalizePhoneNumber(input) {
|
|
38
64
|
const trimmed = input.trim();
|
|
39
65
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -911,7 +937,7 @@ function HeroUiLibraryShowcase({
|
|
|
911
937
|
renderLogo,
|
|
912
938
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-[880px] flex-col items-center gap-6", children: [
|
|
913
939
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl tracking-tighter capitalize md:text-5xl lg:text-6xl", headingClassName), children: /* @__PURE__ */ jsxRuntime.jsx("p", { children: heading }) }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl tracking-tighter capitalize md:text-5xl lg:text-6xl", headingClassName), children: heading })),
|
|
914
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xl
|
|
940
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
915
941
|
] }),
|
|
916
942
|
renderActions
|
|
917
943
|
] }),
|
|
@@ -12,6 +12,32 @@ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
|
12
12
|
function cn(...inputs) {
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
16
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
17
|
+
if (isDark) {
|
|
18
|
+
switch (variant) {
|
|
19
|
+
case "default":
|
|
20
|
+
return "text-foreground";
|
|
21
|
+
case "muted":
|
|
22
|
+
return "text-foreground/80";
|
|
23
|
+
case "subtle":
|
|
24
|
+
return "text-foreground/60";
|
|
25
|
+
case "accent":
|
|
26
|
+
return "text-accent-foreground";
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
switch (variant) {
|
|
30
|
+
case "default":
|
|
31
|
+
return "text-foreground";
|
|
32
|
+
case "muted":
|
|
33
|
+
return "text-muted-foreground";
|
|
34
|
+
case "subtle":
|
|
35
|
+
return "text-muted-foreground/70";
|
|
36
|
+
case "accent":
|
|
37
|
+
return "text-primary";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
15
41
|
function normalizePhoneNumber(input) {
|
|
16
42
|
const trimmed = input.trim();
|
|
17
43
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -889,7 +915,7 @@ function HeroUiLibraryShowcase({
|
|
|
889
915
|
renderLogo,
|
|
890
916
|
/* @__PURE__ */ jsxs("div", { className: "flex max-w-[880px] flex-col items-center gap-6", children: [
|
|
891
917
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl tracking-tighter capitalize md:text-5xl lg:text-6xl", headingClassName), children: /* @__PURE__ */ jsx("p", { children: heading }) }) : /* @__PURE__ */ jsx("h1", { className: cn("text-4xl tracking-tighter capitalize md:text-5xl lg:text-6xl", headingClassName), children: heading })),
|
|
892
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xl
|
|
918
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
893
919
|
] }),
|
|
894
920
|
renderActions
|
|
895
921
|
] }),
|
|
@@ -31,6 +31,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
31
31
|
function cn(...inputs) {
|
|
32
32
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
33
33
|
}
|
|
34
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
35
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
36
|
+
if (isDark) {
|
|
37
|
+
switch (variant) {
|
|
38
|
+
case "default":
|
|
39
|
+
return "text-foreground";
|
|
40
|
+
case "muted":
|
|
41
|
+
return "text-foreground/80";
|
|
42
|
+
case "subtle":
|
|
43
|
+
return "text-foreground/60";
|
|
44
|
+
case "accent":
|
|
45
|
+
return "text-accent-foreground";
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
switch (variant) {
|
|
49
|
+
case "default":
|
|
50
|
+
return "text-foreground";
|
|
51
|
+
case "muted":
|
|
52
|
+
return "text-muted-foreground";
|
|
53
|
+
case "subtle":
|
|
54
|
+
return "text-muted-foreground/70";
|
|
55
|
+
case "accent":
|
|
56
|
+
return "text-primary";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
34
60
|
function normalizePhoneNumber(input) {
|
|
35
61
|
const trimmed = input.trim();
|
|
36
62
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -886,9 +912,9 @@ function HeroVideoBackgroundDark({
|
|
|
886
912
|
className: cn(className),
|
|
887
913
|
children: [
|
|
888
914
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative z-10 container mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
|
|
889
|
-
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-xs
|
|
915
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("text-xs", getTextColor(background, "muted")), children: badgeText }) : badgeText),
|
|
890
916
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
|
|
891
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg
|
|
917
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
892
918
|
renderActions
|
|
893
919
|
] }),
|
|
894
920
|
renderVideo
|
|
@@ -10,6 +10,32 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
10
10
|
function cn(...inputs) {
|
|
11
11
|
return twMerge(clsx(inputs));
|
|
12
12
|
}
|
|
13
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
14
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
15
|
+
if (isDark) {
|
|
16
|
+
switch (variant) {
|
|
17
|
+
case "default":
|
|
18
|
+
return "text-foreground";
|
|
19
|
+
case "muted":
|
|
20
|
+
return "text-foreground/80";
|
|
21
|
+
case "subtle":
|
|
22
|
+
return "text-foreground/60";
|
|
23
|
+
case "accent":
|
|
24
|
+
return "text-accent-foreground";
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
switch (variant) {
|
|
28
|
+
case "default":
|
|
29
|
+
return "text-foreground";
|
|
30
|
+
case "muted":
|
|
31
|
+
return "text-muted-foreground";
|
|
32
|
+
case "subtle":
|
|
33
|
+
return "text-muted-foreground/70";
|
|
34
|
+
case "accent":
|
|
35
|
+
return "text-primary";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
13
39
|
function normalizePhoneNumber(input) {
|
|
14
40
|
const trimmed = input.trim();
|
|
15
41
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -865,9 +891,9 @@ function HeroVideoBackgroundDark({
|
|
|
865
891
|
className: cn(className),
|
|
866
892
|
children: [
|
|
867
893
|
/* @__PURE__ */ jsxs("div", { className: cn("relative z-10 container mx-auto flex size-full max-w-3xl flex-col justify-center gap-4 lg:items-center lg:text-center", contentClassName), children: [
|
|
868
|
-
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("span", { className: "text-xs
|
|
894
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("span", { className: cn("text-xs", getTextColor(background, "muted")), children: badgeText }) : badgeText),
|
|
869
895
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("text-5xl font-bold lg:text-[4.2rem]", headingClassName), children: heading })),
|
|
870
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg
|
|
896
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
871
897
|
renderActions
|
|
872
898
|
] }),
|
|
873
899
|
renderVideo
|
|
@@ -36,6 +36,32 @@ var DialogPrimitive__namespace = /*#__PURE__*/_interopNamespace(DialogPrimitive)
|
|
|
36
36
|
function cn(...inputs) {
|
|
37
37
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
38
38
|
}
|
|
39
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
40
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
41
|
+
if (isDark) {
|
|
42
|
+
switch (variant) {
|
|
43
|
+
case "default":
|
|
44
|
+
return "text-foreground";
|
|
45
|
+
case "muted":
|
|
46
|
+
return "text-foreground/80";
|
|
47
|
+
case "subtle":
|
|
48
|
+
return "text-foreground/60";
|
|
49
|
+
case "accent":
|
|
50
|
+
return "text-accent-foreground";
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
switch (variant) {
|
|
54
|
+
case "default":
|
|
55
|
+
return "text-foreground";
|
|
56
|
+
case "muted":
|
|
57
|
+
return "text-muted-foreground";
|
|
58
|
+
case "subtle":
|
|
59
|
+
return "text-muted-foreground/70";
|
|
60
|
+
case "accent":
|
|
61
|
+
return "text-primary";
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
39
65
|
function normalizePhoneNumber(input) {
|
|
40
66
|
const trimmed = input.trim();
|
|
41
67
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1110,7 +1136,7 @@ function HeroVideoDialogGradient({
|
|
|
1110
1136
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8", children: [
|
|
1111
1137
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-6", children: [
|
|
1112
1138
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("max-w-[920px] text-center text-4xl leading-tight font-semibold md:text-6xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("max-w-[920px] text-center text-4xl leading-tight font-semibold md:text-6xl lg:text-7xl", headingClassName), children: heading })),
|
|
1113
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-[750px] text-center text-base leading-relaxed font-normal
|
|
1139
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-[750px] text-center text-base leading-relaxed font-normal md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
1114
1140
|
] }),
|
|
1115
1141
|
renderActions
|
|
1116
1142
|
] }),
|
|
@@ -13,6 +13,32 @@ import * as DialogPrimitive from '@radix-ui/react-dialog';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
17
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
18
|
+
if (isDark) {
|
|
19
|
+
switch (variant) {
|
|
20
|
+
case "default":
|
|
21
|
+
return "text-foreground";
|
|
22
|
+
case "muted":
|
|
23
|
+
return "text-foreground/80";
|
|
24
|
+
case "subtle":
|
|
25
|
+
return "text-foreground/60";
|
|
26
|
+
case "accent":
|
|
27
|
+
return "text-accent-foreground";
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
switch (variant) {
|
|
31
|
+
case "default":
|
|
32
|
+
return "text-foreground";
|
|
33
|
+
case "muted":
|
|
34
|
+
return "text-muted-foreground";
|
|
35
|
+
case "subtle":
|
|
36
|
+
return "text-muted-foreground/70";
|
|
37
|
+
case "accent":
|
|
38
|
+
return "text-primary";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
16
42
|
function normalizePhoneNumber(input) {
|
|
17
43
|
const trimmed = input.trim();
|
|
18
44
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1087,7 +1113,7 @@ function HeroVideoDialogGradient({
|
|
|
1087
1113
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8", children: [
|
|
1088
1114
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-6", children: [
|
|
1089
1115
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("max-w-[920px] text-center text-4xl leading-tight font-semibold md:text-6xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h1", { className: cn("max-w-[920px] text-center text-4xl leading-tight font-semibold md:text-6xl lg:text-7xl", headingClassName), children: heading })),
|
|
1090
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-[750px] text-center text-base leading-relaxed font-normal
|
|
1116
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-[750px] text-center text-base leading-relaxed font-normal md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
1091
1117
|
] }),
|
|
1092
1118
|
renderActions
|
|
1093
1119
|
] }),
|
|
@@ -32,6 +32,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
32
32
|
function cn(...inputs) {
|
|
33
33
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
34
|
}
|
|
35
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
36
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
+
if (isDark) {
|
|
38
|
+
switch (variant) {
|
|
39
|
+
case "default":
|
|
40
|
+
return "text-foreground";
|
|
41
|
+
case "muted":
|
|
42
|
+
return "text-foreground/80";
|
|
43
|
+
case "subtle":
|
|
44
|
+
return "text-foreground/60";
|
|
45
|
+
case "accent":
|
|
46
|
+
return "text-accent-foreground";
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
switch (variant) {
|
|
50
|
+
case "default":
|
|
51
|
+
return "text-foreground";
|
|
52
|
+
case "muted":
|
|
53
|
+
return "text-muted-foreground";
|
|
54
|
+
case "subtle":
|
|
55
|
+
return "text-muted-foreground/70";
|
|
56
|
+
case "accent":
|
|
57
|
+
return "text-primary";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
35
61
|
function normalizePhoneNumber(input) {
|
|
36
62
|
const trimmed = input.trim();
|
|
37
63
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -941,7 +967,8 @@ function HeroWelcomeAsymmetricImages({
|
|
|
941
967
|
"p",
|
|
942
968
|
{
|
|
943
969
|
className: cn(
|
|
944
|
-
"mb-12 max-w-[70%] text-xl font-normal
|
|
970
|
+
"mb-12 max-w-[70%] text-xl font-normal",
|
|
971
|
+
getTextColor(background, "muted"),
|
|
945
972
|
descriptionClassName
|
|
946
973
|
),
|
|
947
974
|
children: description
|
|
@@ -950,7 +977,8 @@ function HeroWelcomeAsymmetricImages({
|
|
|
950
977
|
"div",
|
|
951
978
|
{
|
|
952
979
|
className: cn(
|
|
953
|
-
"mb-12 max-w-[70%] text-xl font-normal
|
|
980
|
+
"mb-12 max-w-[70%] text-xl font-normal",
|
|
981
|
+
getTextColor(background, "muted"),
|
|
954
982
|
descriptionClassName
|
|
955
983
|
),
|
|
956
984
|
children: description
|
|
@@ -11,6 +11,32 @@ import { Img } from '@page-speed/img';
|
|
|
11
11
|
function cn(...inputs) {
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
15
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
16
|
+
if (isDark) {
|
|
17
|
+
switch (variant) {
|
|
18
|
+
case "default":
|
|
19
|
+
return "text-foreground";
|
|
20
|
+
case "muted":
|
|
21
|
+
return "text-foreground/80";
|
|
22
|
+
case "subtle":
|
|
23
|
+
return "text-foreground/60";
|
|
24
|
+
case "accent":
|
|
25
|
+
return "text-accent-foreground";
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
switch (variant) {
|
|
29
|
+
case "default":
|
|
30
|
+
return "text-foreground";
|
|
31
|
+
case "muted":
|
|
32
|
+
return "text-muted-foreground";
|
|
33
|
+
case "subtle":
|
|
34
|
+
return "text-muted-foreground/70";
|
|
35
|
+
case "accent":
|
|
36
|
+
return "text-primary";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
14
40
|
function normalizePhoneNumber(input) {
|
|
15
41
|
const trimmed = input.trim();
|
|
16
42
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -920,7 +946,8 @@ function HeroWelcomeAsymmetricImages({
|
|
|
920
946
|
"p",
|
|
921
947
|
{
|
|
922
948
|
className: cn(
|
|
923
|
-
"mb-12 max-w-[70%] text-xl font-normal
|
|
949
|
+
"mb-12 max-w-[70%] text-xl font-normal",
|
|
950
|
+
getTextColor(background, "muted"),
|
|
924
951
|
descriptionClassName
|
|
925
952
|
),
|
|
926
953
|
children: description
|
|
@@ -929,7 +956,8 @@ function HeroWelcomeAsymmetricImages({
|
|
|
929
956
|
"div",
|
|
930
957
|
{
|
|
931
958
|
className: cn(
|
|
932
|
-
"mb-12 max-w-[70%] text-xl font-normal
|
|
959
|
+
"mb-12 max-w-[70%] text-xl font-normal",
|
|
960
|
+
getTextColor(background, "muted"),
|
|
933
961
|
descriptionClassName
|
|
934
962
|
),
|
|
935
963
|
children: description
|