@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
|
@@ -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:")) {
|
|
@@ -895,7 +921,7 @@ function HeroCenteredImageGrid({
|
|
|
895
921
|
/* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs("div", { className: cn("z-10 flex flex-col items-center gap-8 text-center", contentClassName), children: [
|
|
896
922
|
/* @__PURE__ */ jsxs("div", { className: "max-w-3xl", children: [
|
|
897
923
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-4 text-4xl font-semibold text-pretty lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
898
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("
|
|
924
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
899
925
|
] }),
|
|
900
926
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex w-full flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
|
|
901
927
|
] }) }),
|
|
@@ -32,6 +32,54 @@ 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
|
+
}
|
|
61
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
62
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
63
|
+
if (isDark) {
|
|
64
|
+
switch (variant) {
|
|
65
|
+
case "default":
|
|
66
|
+
return "border-foreground/20";
|
|
67
|
+
case "muted":
|
|
68
|
+
return "border-foreground/10";
|
|
69
|
+
case "accent":
|
|
70
|
+
return "border-accent-foreground";
|
|
71
|
+
}
|
|
72
|
+
} else {
|
|
73
|
+
switch (variant) {
|
|
74
|
+
case "default":
|
|
75
|
+
return "border-border";
|
|
76
|
+
case "muted":
|
|
77
|
+
return "border-muted";
|
|
78
|
+
case "accent":
|
|
79
|
+
return "border-primary";
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
35
83
|
function normalizePhoneNumber(input) {
|
|
36
84
|
const trimmed = input.trim();
|
|
37
85
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -874,10 +922,10 @@ function HeroCenteredScreenshot({
|
|
|
874
922
|
pattern,
|
|
875
923
|
patternOpacity,
|
|
876
924
|
className: cn(className),
|
|
877
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "overflow-hidden border-b
|
|
925
|
+
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("overflow-hidden border-b", getBorderColor(background, "muted")), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
|
|
878
926
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("z-10 items-center text-center", contentClassName), children: [
|
|
879
927
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mb-8 text-4xl font-semibold text-pretty lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
880
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-3xl
|
|
928
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-3xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
881
929
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-12 flex w-full flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
|
|
882
930
|
] }) }),
|
|
883
931
|
imageSrc && /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -11,6 +11,54 @@ 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
|
+
}
|
|
40
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
41
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
|
+
if (isDark) {
|
|
43
|
+
switch (variant) {
|
|
44
|
+
case "default":
|
|
45
|
+
return "border-foreground/20";
|
|
46
|
+
case "muted":
|
|
47
|
+
return "border-foreground/10";
|
|
48
|
+
case "accent":
|
|
49
|
+
return "border-accent-foreground";
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
switch (variant) {
|
|
53
|
+
case "default":
|
|
54
|
+
return "border-border";
|
|
55
|
+
case "muted":
|
|
56
|
+
return "border-muted";
|
|
57
|
+
case "accent":
|
|
58
|
+
return "border-primary";
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
14
62
|
function normalizePhoneNumber(input) {
|
|
15
63
|
const trimmed = input.trim();
|
|
16
64
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -853,10 +901,10 @@ function HeroCenteredScreenshot({
|
|
|
853
901
|
pattern,
|
|
854
902
|
patternOpacity,
|
|
855
903
|
className: cn(className),
|
|
856
|
-
children: /* @__PURE__ */ jsx("div", { className: "overflow-hidden border-b
|
|
904
|
+
children: /* @__PURE__ */ jsx("div", { className: cn("overflow-hidden border-b", getBorderColor(background, "muted")), children: /* @__PURE__ */ jsxs("div", { className: cn("container", containerClassName), children: [
|
|
857
905
|
/* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs("div", { className: cn("z-10 items-center text-center", contentClassName), children: [
|
|
858
906
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mb-8 text-4xl font-semibold text-pretty lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
859
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-3xl
|
|
907
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-3xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
860
908
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-12 flex w-full flex-col justify-center gap-2 sm:flex-row", actionsClassName), children: renderActions })
|
|
861
909
|
] }) }),
|
|
862
910
|
imageSrc && /* @__PURE__ */ jsx(
|
|
@@ -61,6 +61,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
61
61
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
62
62
|
return isDark ? "text-foreground" : "";
|
|
63
63
|
}
|
|
64
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
65
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
66
|
+
if (isDark) {
|
|
67
|
+
switch (variant) {
|
|
68
|
+
case "default":
|
|
69
|
+
return "text-foreground";
|
|
70
|
+
case "muted":
|
|
71
|
+
return "text-foreground/80";
|
|
72
|
+
case "subtle":
|
|
73
|
+
return "text-foreground/60";
|
|
74
|
+
case "accent":
|
|
75
|
+
return "text-accent-foreground";
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
switch (variant) {
|
|
79
|
+
case "default":
|
|
80
|
+
return "text-foreground";
|
|
81
|
+
case "muted":
|
|
82
|
+
return "text-muted-foreground";
|
|
83
|
+
case "subtle":
|
|
84
|
+
return "text-muted-foreground/70";
|
|
85
|
+
case "accent":
|
|
86
|
+
return "text-primary";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function getAccentColor(parentBg, options) {
|
|
91
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
92
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
93
|
+
}
|
|
64
94
|
function normalizePhoneNumber(input) {
|
|
65
95
|
const trimmed = input.trim();
|
|
66
96
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1009,9 +1039,9 @@ function HeroComingSoonCountdown({
|
|
|
1009
1039
|
getNestedCardBg(background, "muted"),
|
|
1010
1040
|
getNestedCardTextColor(background)
|
|
1011
1041
|
), children: item.value }),
|
|
1012
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "mt-2 text-sm
|
|
1042
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mt-2 text-sm", getTextColor(background, "muted")), children: item.label })
|
|
1013
1043
|
] }, item.label));
|
|
1014
|
-
}, [countdownSlot, countdownItems]);
|
|
1044
|
+
}, [countdownSlot, countdownItems, background]);
|
|
1015
1045
|
const renderForm = React.useMemo(() => {
|
|
1016
1046
|
if (formSlot) return formSlot;
|
|
1017
1047
|
if (!submitAction) return null;
|
|
@@ -1022,7 +1052,7 @@ function HeroComingSoonCountdown({
|
|
|
1022
1052
|
{
|
|
1023
1053
|
type: "email",
|
|
1024
1054
|
placeholder: emailPlaceholder,
|
|
1025
|
-
className: "h-12 flex-1
|
|
1055
|
+
className: cn("h-12 flex-1 border-border/50", `${getNestedCardBg(background, "muted")}/30`)
|
|
1026
1056
|
}
|
|
1027
1057
|
),
|
|
1028
1058
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1047,12 +1077,12 @@ function HeroComingSoonCountdown({
|
|
|
1047
1077
|
Pressable,
|
|
1048
1078
|
{
|
|
1049
1079
|
href: link.href,
|
|
1050
|
-
className: cn("
|
|
1080
|
+
className: cn(getTextColor(background, "muted"), "hover:opacity-80", link.className),
|
|
1051
1081
|
children: link.icon ?? (link.iconName && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: link.iconName, size: 20 }))
|
|
1052
1082
|
},
|
|
1053
1083
|
index
|
|
1054
1084
|
));
|
|
1055
|
-
}, [socialLinksSlot, socialLinks]);
|
|
1085
|
+
}, [socialLinksSlot, socialLinks, background]);
|
|
1056
1086
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1057
1087
|
Section,
|
|
1058
1088
|
{
|
|
@@ -1067,11 +1097,11 @@ function HeroComingSoonCountdown({
|
|
|
1067
1097
|
getNestedCardTextColor(background),
|
|
1068
1098
|
badgeClassName
|
|
1069
1099
|
), children: [
|
|
1070
|
-
badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16, className:
|
|
1100
|
+
badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16, className: getAccentColor(background) }),
|
|
1071
1101
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
|
|
1072
1102
|
] }),
|
|
1073
1103
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mt-8 max-w-3xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-8", headingClassName), children: heading })),
|
|
1074
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 max-w-xl text-lg
|
|
1104
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 max-w-xl text-lg md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
|
|
1075
1105
|
(countdownSlot || countdownItems && countdownItems.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-12 grid grid-cols-4 gap-4 md:gap-8", countdownClassName), children: renderCountdown }),
|
|
1076
1106
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-12 flex w-full max-w-md flex-col gap-4 sm:flex-row", formClassName), children: renderForm }),
|
|
1077
1107
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-16 flex items-center gap-6", socialLinksClassName), children: renderSocialLinks })
|
|
@@ -40,6 +40,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
40
40
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
41
41
|
return isDark ? "text-foreground" : "";
|
|
42
42
|
}
|
|
43
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
44
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
45
|
+
if (isDark) {
|
|
46
|
+
switch (variant) {
|
|
47
|
+
case "default":
|
|
48
|
+
return "text-foreground";
|
|
49
|
+
case "muted":
|
|
50
|
+
return "text-foreground/80";
|
|
51
|
+
case "subtle":
|
|
52
|
+
return "text-foreground/60";
|
|
53
|
+
case "accent":
|
|
54
|
+
return "text-accent-foreground";
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
switch (variant) {
|
|
58
|
+
case "default":
|
|
59
|
+
return "text-foreground";
|
|
60
|
+
case "muted":
|
|
61
|
+
return "text-muted-foreground";
|
|
62
|
+
case "subtle":
|
|
63
|
+
return "text-muted-foreground/70";
|
|
64
|
+
case "accent":
|
|
65
|
+
return "text-primary";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function getAccentColor(parentBg, options) {
|
|
70
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
71
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
72
|
+
}
|
|
43
73
|
function normalizePhoneNumber(input) {
|
|
44
74
|
const trimmed = input.trim();
|
|
45
75
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -988,9 +1018,9 @@ function HeroComingSoonCountdown({
|
|
|
988
1018
|
getNestedCardBg(background, "muted"),
|
|
989
1019
|
getNestedCardTextColor(background)
|
|
990
1020
|
), children: item.value }),
|
|
991
|
-
/* @__PURE__ */ jsx("span", { className: "mt-2 text-sm
|
|
1021
|
+
/* @__PURE__ */ jsx("span", { className: cn("mt-2 text-sm", getTextColor(background, "muted")), children: item.label })
|
|
992
1022
|
] }, item.label));
|
|
993
|
-
}, [countdownSlot, countdownItems]);
|
|
1023
|
+
}, [countdownSlot, countdownItems, background]);
|
|
994
1024
|
const renderForm = useMemo(() => {
|
|
995
1025
|
if (formSlot) return formSlot;
|
|
996
1026
|
if (!submitAction) return null;
|
|
@@ -1001,7 +1031,7 @@ function HeroComingSoonCountdown({
|
|
|
1001
1031
|
{
|
|
1002
1032
|
type: "email",
|
|
1003
1033
|
placeholder: emailPlaceholder,
|
|
1004
|
-
className: "h-12 flex-1
|
|
1034
|
+
className: cn("h-12 flex-1 border-border/50", `${getNestedCardBg(background, "muted")}/30`)
|
|
1005
1035
|
}
|
|
1006
1036
|
),
|
|
1007
1037
|
/* @__PURE__ */ jsx(
|
|
@@ -1026,12 +1056,12 @@ function HeroComingSoonCountdown({
|
|
|
1026
1056
|
Pressable,
|
|
1027
1057
|
{
|
|
1028
1058
|
href: link.href,
|
|
1029
|
-
className: cn("
|
|
1059
|
+
className: cn(getTextColor(background, "muted"), "hover:opacity-80", link.className),
|
|
1030
1060
|
children: link.icon ?? (link.iconName && /* @__PURE__ */ jsx(DynamicIcon, { name: link.iconName, size: 20 }))
|
|
1031
1061
|
},
|
|
1032
1062
|
index
|
|
1033
1063
|
));
|
|
1034
|
-
}, [socialLinksSlot, socialLinks]);
|
|
1064
|
+
}, [socialLinksSlot, socialLinks, background]);
|
|
1035
1065
|
return /* @__PURE__ */ jsx(
|
|
1036
1066
|
Section,
|
|
1037
1067
|
{
|
|
@@ -1046,11 +1076,11 @@ function HeroComingSoonCountdown({
|
|
|
1046
1076
|
getNestedCardTextColor(background),
|
|
1047
1077
|
badgeClassName
|
|
1048
1078
|
), children: [
|
|
1049
|
-
badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16, className:
|
|
1079
|
+
badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16, className: getAccentColor(background) }),
|
|
1050
1080
|
/* @__PURE__ */ jsx("span", { children: badgeText })
|
|
1051
1081
|
] }),
|
|
1052
1082
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mt-8 max-w-3xl text-5xl font-bold tracking-tight md:text-6xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mt-8", headingClassName), children: heading })),
|
|
1053
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-6 max-w-xl text-lg
|
|
1083
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-6 max-w-xl text-lg md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("mt-6", descriptionClassName), children: description })),
|
|
1054
1084
|
(countdownSlot || countdownItems && countdownItems.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-12 grid grid-cols-4 gap-4 md:gap-8", countdownClassName), children: renderCountdown }),
|
|
1055
1085
|
/* @__PURE__ */ jsx("div", { className: cn("mt-12 flex w-full max-w-md flex-col gap-4 sm:flex-row", formClassName), children: renderForm }),
|
|
1056
1086
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("mt-16 flex items-center gap-6", socialLinksClassName), children: renderSocialLinks })
|
|
@@ -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:")) {
|
|
@@ -1038,7 +1064,7 @@ function HeroCommunitySurveyCta({
|
|
|
1038
1064
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container flex flex-col gap-7 text-center", containerClassName), children: [
|
|
1039
1065
|
renderAnnouncement,
|
|
1040
1066
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("mx-auto max-w-4xl text-4xl font-semibold text-balance lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
1041
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-4xl
|
|
1067
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mx-auto max-w-4xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
1042
1068
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col justify-center gap-4 sm:flex-row", actionsClassName), children: renderActions })
|
|
1043
1069
|
] }),
|
|
1044
1070
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative px-8", children: [
|
|
@@ -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:")) {
|
|
@@ -1017,7 +1043,7 @@ function HeroCommunitySurveyCta({
|
|
|
1017
1043
|
/* @__PURE__ */ jsxs("div", { className: cn("container flex flex-col gap-7 text-center", containerClassName), children: [
|
|
1018
1044
|
renderAnnouncement,
|
|
1019
1045
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("mx-auto max-w-4xl text-4xl font-semibold text-balance lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
1020
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl
|
|
1046
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mx-auto max-w-4xl lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
1021
1047
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex flex-col justify-center gap-4 sm:flex-row", actionsClassName), children: renderActions })
|
|
1022
1048
|
] }),
|
|
1023
1049
|
/* @__PURE__ */ jsxs("div", { className: "relative px-8", children: [
|
|
@@ -60,6 +60,54 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
64
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
65
|
+
if (isDark) {
|
|
66
|
+
switch (variant) {
|
|
67
|
+
case "default":
|
|
68
|
+
return "text-foreground";
|
|
69
|
+
case "muted":
|
|
70
|
+
return "text-foreground/80";
|
|
71
|
+
case "subtle":
|
|
72
|
+
return "text-foreground/60";
|
|
73
|
+
case "accent":
|
|
74
|
+
return "text-accent-foreground";
|
|
75
|
+
}
|
|
76
|
+
} else {
|
|
77
|
+
switch (variant) {
|
|
78
|
+
case "default":
|
|
79
|
+
return "text-foreground";
|
|
80
|
+
case "muted":
|
|
81
|
+
return "text-muted-foreground";
|
|
82
|
+
case "subtle":
|
|
83
|
+
return "text-muted-foreground/70";
|
|
84
|
+
case "accent":
|
|
85
|
+
return "text-primary";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
90
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
91
|
+
if (isDark) {
|
|
92
|
+
switch (variant) {
|
|
93
|
+
case "default":
|
|
94
|
+
return "border-foreground/20";
|
|
95
|
+
case "muted":
|
|
96
|
+
return "border-foreground/10";
|
|
97
|
+
case "accent":
|
|
98
|
+
return "border-accent-foreground";
|
|
99
|
+
}
|
|
100
|
+
} else {
|
|
101
|
+
switch (variant) {
|
|
102
|
+
case "default":
|
|
103
|
+
return "border-border";
|
|
104
|
+
case "muted":
|
|
105
|
+
return "border-muted";
|
|
106
|
+
case "accent":
|
|
107
|
+
return "border-primary";
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
63
111
|
function normalizePhoneNumber(input) {
|
|
64
112
|
const trimmed = input.trim();
|
|
65
113
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -918,7 +966,7 @@ function HeroConversationIntelligence({
|
|
|
918
966
|
className: "w-full rounded-xl bg-[linear-gradient(var(--color-muted),transparent)]"
|
|
919
967
|
}
|
|
920
968
|
),
|
|
921
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "
|
|
969
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("absolute top-1/2 left-1/2 z-10 w-[87.69%] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl border", getBorderColor(background, "muted")), children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 1.594405594 / 1, children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
922
970
|
img.Img,
|
|
923
971
|
{
|
|
924
972
|
src: image.src,
|
|
@@ -951,7 +999,7 @@ function HeroConversationIntelligence({
|
|
|
951
999
|
`after:${getNestedCardBg(background)}`
|
|
952
1000
|
), children: headingHighlight })
|
|
953
1001
|
] }),
|
|
954
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl leading-normal
|
|
1002
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-center text-xl leading-normal", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
955
1003
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center justify-center gap-5", actionsClassName), children: renderActions })
|
|
956
1004
|
] }) }),
|
|
957
1005
|
/* @__PURE__ */ jsxRuntime.jsx("div", { children: renderImage })
|
|
@@ -38,6 +38,54 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
42
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
|
+
if (isDark) {
|
|
44
|
+
switch (variant) {
|
|
45
|
+
case "default":
|
|
46
|
+
return "text-foreground";
|
|
47
|
+
case "muted":
|
|
48
|
+
return "text-foreground/80";
|
|
49
|
+
case "subtle":
|
|
50
|
+
return "text-foreground/60";
|
|
51
|
+
case "accent":
|
|
52
|
+
return "text-accent-foreground";
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
switch (variant) {
|
|
56
|
+
case "default":
|
|
57
|
+
return "text-foreground";
|
|
58
|
+
case "muted":
|
|
59
|
+
return "text-muted-foreground";
|
|
60
|
+
case "subtle":
|
|
61
|
+
return "text-muted-foreground/70";
|
|
62
|
+
case "accent":
|
|
63
|
+
return "text-primary";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
68
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
69
|
+
if (isDark) {
|
|
70
|
+
switch (variant) {
|
|
71
|
+
case "default":
|
|
72
|
+
return "border-foreground/20";
|
|
73
|
+
case "muted":
|
|
74
|
+
return "border-foreground/10";
|
|
75
|
+
case "accent":
|
|
76
|
+
return "border-accent-foreground";
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
switch (variant) {
|
|
80
|
+
case "default":
|
|
81
|
+
return "border-border";
|
|
82
|
+
case "muted":
|
|
83
|
+
return "border-muted";
|
|
84
|
+
case "accent":
|
|
85
|
+
return "border-primary";
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
41
89
|
function normalizePhoneNumber(input) {
|
|
42
90
|
const trimmed = input.trim();
|
|
43
91
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -896,7 +944,7 @@ function HeroConversationIntelligence({
|
|
|
896
944
|
className: "w-full rounded-xl bg-[linear-gradient(var(--color-muted),transparent)]"
|
|
897
945
|
}
|
|
898
946
|
),
|
|
899
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
947
|
+
/* @__PURE__ */ jsx("div", { className: cn("absolute top-1/2 left-1/2 z-10 w-[87.69%] -translate-x-1/2 -translate-y-1/2 overflow-hidden rounded-xl border", getBorderColor(background, "muted")), children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 1.594405594 / 1, children: /* @__PURE__ */ jsx(
|
|
900
948
|
Img,
|
|
901
949
|
{
|
|
902
950
|
src: image.src,
|
|
@@ -929,7 +977,7 @@ function HeroConversationIntelligence({
|
|
|
929
977
|
`after:${getNestedCardBg(background)}`
|
|
930
978
|
), children: headingHighlight })
|
|
931
979
|
] }),
|
|
932
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl leading-normal
|
|
980
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-center text-xl leading-normal", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
933
981
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex items-center justify-center gap-5", actionsClassName), children: renderActions })
|
|
934
982
|
] }) }),
|
|
935
983
|
/* @__PURE__ */ jsx("div", { children: renderImage })
|