@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
|
@@ -564,6 +564,34 @@ function processSvgForCurrentColor(svg) {
|
|
|
564
564
|
);
|
|
565
565
|
return processed;
|
|
566
566
|
}
|
|
567
|
+
var maxWidthStyles = {
|
|
568
|
+
sm: "max-w-screen-sm",
|
|
569
|
+
md: "max-w-screen-md",
|
|
570
|
+
lg: "max-w-screen-lg",
|
|
571
|
+
xl: "max-w-7xl",
|
|
572
|
+
"2xl": "max-w-screen-2xl",
|
|
573
|
+
"4xl": "max-w-[1536px]",
|
|
574
|
+
full: "max-w-full"
|
|
575
|
+
};
|
|
576
|
+
var Container = React__default.forwardRef(
|
|
577
|
+
({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
|
|
578
|
+
const Component = as;
|
|
579
|
+
return /* @__PURE__ */ jsx(
|
|
580
|
+
Component,
|
|
581
|
+
{
|
|
582
|
+
ref,
|
|
583
|
+
className: cn(
|
|
584
|
+
"mx-auto w-full px-2 sm:px-4 lg:px-8",
|
|
585
|
+
maxWidthStyles[maxWidth],
|
|
586
|
+
className
|
|
587
|
+
),
|
|
588
|
+
...props,
|
|
589
|
+
children
|
|
590
|
+
}
|
|
591
|
+
);
|
|
592
|
+
}
|
|
593
|
+
);
|
|
594
|
+
Container.displayName = "Container";
|
|
567
595
|
|
|
568
596
|
// lib/patternSvgs.ts
|
|
569
597
|
var patternSvgs = {
|
|
@@ -830,34 +858,87 @@ function PatternBackground({
|
|
|
830
858
|
}
|
|
831
859
|
);
|
|
832
860
|
}
|
|
833
|
-
var
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
|
|
838
|
-
|
|
839
|
-
|
|
840
|
-
|
|
861
|
+
var backgroundStyles = {
|
|
862
|
+
default: "bg-background text-foreground",
|
|
863
|
+
white: "bg-white text-dark",
|
|
864
|
+
gray: "bg-muted/30 text-foreground",
|
|
865
|
+
dark: "bg-foreground text-background",
|
|
866
|
+
transparent: "bg-transparent text-foreground",
|
|
867
|
+
gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
|
|
868
|
+
primary: "bg-primary text-primary-foreground",
|
|
869
|
+
secondary: "bg-secondary text-secondary-foreground",
|
|
870
|
+
muted: "bg-muted text-muted-foreground"
|
|
841
871
|
};
|
|
842
|
-
var
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
872
|
+
var spacingStyles = {
|
|
873
|
+
none: "py-0 md:py-0",
|
|
874
|
+
sm: "py-12 md:py-16",
|
|
875
|
+
md: "py-16 md:py-24",
|
|
876
|
+
lg: "py-20 md:py-32",
|
|
877
|
+
xl: "py-24 md:py-40"
|
|
878
|
+
};
|
|
879
|
+
var predefinedSpacings = ["none", "sm", "md", "lg", "xl"];
|
|
880
|
+
var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
|
|
881
|
+
var Section = React__default.forwardRef(
|
|
882
|
+
({
|
|
883
|
+
id,
|
|
884
|
+
title,
|
|
885
|
+
subtitle,
|
|
886
|
+
children,
|
|
887
|
+
className,
|
|
888
|
+
style,
|
|
889
|
+
background = "default",
|
|
890
|
+
spacing = "lg",
|
|
891
|
+
pattern,
|
|
892
|
+
patternOpacity,
|
|
893
|
+
patternClassName,
|
|
894
|
+
containerClassName,
|
|
895
|
+
containerMaxWidth = "xl",
|
|
896
|
+
...props
|
|
897
|
+
}, ref) => {
|
|
898
|
+
const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
|
|
899
|
+
return /* @__PURE__ */ jsxs(
|
|
900
|
+
"section",
|
|
847
901
|
{
|
|
848
902
|
ref,
|
|
903
|
+
id,
|
|
849
904
|
className: cn(
|
|
850
|
-
"
|
|
851
|
-
|
|
905
|
+
"relative",
|
|
906
|
+
pattern ? "overflow-hidden" : null,
|
|
907
|
+
backgroundStyles[background],
|
|
908
|
+
isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
|
|
852
909
|
className
|
|
853
910
|
),
|
|
911
|
+
style,
|
|
854
912
|
...props,
|
|
855
|
-
children
|
|
913
|
+
children: [
|
|
914
|
+
/* @__PURE__ */ jsx(
|
|
915
|
+
PatternBackground,
|
|
916
|
+
{
|
|
917
|
+
pattern,
|
|
918
|
+
opacity: effectivePatternOpacity,
|
|
919
|
+
className: patternClassName
|
|
920
|
+
}
|
|
921
|
+
),
|
|
922
|
+
/* @__PURE__ */ jsxs(
|
|
923
|
+
Container,
|
|
924
|
+
{
|
|
925
|
+
maxWidth: containerMaxWidth,
|
|
926
|
+
className: cn("relative z-10", containerClassName),
|
|
927
|
+
children: [
|
|
928
|
+
(title || subtitle) && /* @__PURE__ */ jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
|
|
929
|
+
subtitle && /* @__PURE__ */ jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider text-primary", children: subtitle }),
|
|
930
|
+
title && /* @__PURE__ */ jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
|
|
931
|
+
] }),
|
|
932
|
+
children
|
|
933
|
+
]
|
|
934
|
+
}
|
|
935
|
+
)
|
|
936
|
+
]
|
|
856
937
|
}
|
|
857
938
|
);
|
|
858
939
|
}
|
|
859
940
|
);
|
|
860
|
-
|
|
941
|
+
Section.displayName = "Section";
|
|
861
942
|
var socialIconMap = {
|
|
862
943
|
facebook: "simple-icons/facebook",
|
|
863
944
|
x: "simple-icons/x",
|
|
@@ -888,155 +969,154 @@ function FooterComprehensiveLinks({
|
|
|
888
969
|
const year = useMemo(() => (/* @__PURE__ */ new Date()).getFullYear(), []);
|
|
889
970
|
const copyrightText = copyright || `\xA9 ${year} ${companyName || ""}. All rights reserved.`;
|
|
890
971
|
return /* @__PURE__ */ jsxs(
|
|
891
|
-
|
|
972
|
+
Section,
|
|
892
973
|
{
|
|
893
|
-
|
|
894
|
-
|
|
895
|
-
|
|
896
|
-
|
|
974
|
+
background,
|
|
975
|
+
spacing: "lg",
|
|
976
|
+
pattern,
|
|
977
|
+
patternOpacity,
|
|
978
|
+
className,
|
|
979
|
+
containerClassName: "relative z-10",
|
|
897
980
|
children: [
|
|
898
|
-
/* @__PURE__ */
|
|
899
|
-
|
|
900
|
-
|
|
901
|
-
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
981
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-10 lg:gap-12", children: [
|
|
982
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-12", children: [
|
|
983
|
+
(logoSrc || tagline || summary) && /* @__PURE__ */ jsx("div", { className: "sm:col-span-2 lg:col-span-3", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
984
|
+
logoSrc && /* @__PURE__ */ jsx(Pressable, { href: logoHref || "/", className: "inline-flex w-fit", children: /* @__PURE__ */ jsx(
|
|
985
|
+
Img,
|
|
986
|
+
{
|
|
987
|
+
src: logoSrc,
|
|
988
|
+
alt: logoAlt || "Logo",
|
|
989
|
+
className: "h-9 w-auto",
|
|
990
|
+
loading: "eager",
|
|
991
|
+
optixFlowConfig
|
|
992
|
+
}
|
|
993
|
+
) }),
|
|
994
|
+
tagline && /* @__PURE__ */ jsx("p", { className: "text-sm font-medium", children: tagline }),
|
|
995
|
+
summary && /* @__PURE__ */ jsx("p", { className: "text-sm leading-relaxed text-muted-foreground", children: summary })
|
|
996
|
+
] }) }),
|
|
997
|
+
linkColumns && linkColumns.length > 0 && linkColumns.map((column) => /* @__PURE__ */ jsx("div", { className: "lg:col-span-2", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
998
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: column.title }),
|
|
999
|
+
/* @__PURE__ */ jsx("ul", { className: "flex flex-col gap-2.5", children: column.links.map((link) => /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(
|
|
1000
|
+
Pressable,
|
|
1001
|
+
{
|
|
1002
|
+
href: link.href,
|
|
1003
|
+
className: "text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1004
|
+
children: link.label
|
|
1005
|
+
}
|
|
1006
|
+
) }, link.href)) })
|
|
1007
|
+
] }) }, column.title)),
|
|
1008
|
+
contact || (socialLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-6 lg:col-span-3", children: [
|
|
1009
|
+
contact ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
1010
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Contact" }),
|
|
1011
|
+
/* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-3", children: [
|
|
1012
|
+
contact.email ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1013
|
+
Pressable,
|
|
1014
|
+
{
|
|
1015
|
+
href: contact.email,
|
|
1016
|
+
className: "group flex items-center gap-2.5 text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1017
|
+
children: [
|
|
1018
|
+
/* @__PURE__ */ jsx(
|
|
1019
|
+
DynamicIcon,
|
|
1020
|
+
{
|
|
1021
|
+
name: "lucide/mail",
|
|
1022
|
+
size: 16,
|
|
1023
|
+
className: "text-muted-foreground transition-colors group-hover:text-primary"
|
|
1024
|
+
}
|
|
1025
|
+
),
|
|
1026
|
+
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.email })
|
|
1027
|
+
]
|
|
1028
|
+
}
|
|
1029
|
+
) }) : null,
|
|
1030
|
+
contact.phone ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1031
|
+
Pressable,
|
|
1032
|
+
{
|
|
1033
|
+
href: contact.phone,
|
|
1034
|
+
className: "group flex items-center gap-2.5 text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1035
|
+
children: [
|
|
1036
|
+
/* @__PURE__ */ jsx(
|
|
1037
|
+
DynamicIcon,
|
|
1038
|
+
{
|
|
1039
|
+
name: "lucide/phone",
|
|
1040
|
+
size: 16,
|
|
1041
|
+
className: "text-muted-foreground transition-colors group-hover:text-primary"
|
|
1042
|
+
}
|
|
1043
|
+
),
|
|
1044
|
+
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.phone })
|
|
1045
|
+
]
|
|
1046
|
+
}
|
|
1047
|
+
) }) : null,
|
|
1048
|
+
contact.address ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
1049
|
+
Pressable,
|
|
1050
|
+
{
|
|
1051
|
+
href: `https://maps.google.com/?q=${encodeURIComponent(
|
|
1052
|
+
contact.address
|
|
1053
|
+
)}`,
|
|
1054
|
+
className: "group flex items-start gap-2.5 text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1055
|
+
children: [
|
|
1056
|
+
/* @__PURE__ */ jsx(
|
|
1057
|
+
DynamicIcon,
|
|
1058
|
+
{
|
|
1059
|
+
name: "lucide/map-pin",
|
|
1060
|
+
size: 16,
|
|
1061
|
+
className: "mt-0.5 text-muted-foreground transition-colors group-hover:text-primary"
|
|
1062
|
+
}
|
|
1063
|
+
),
|
|
1064
|
+
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.address })
|
|
1065
|
+
]
|
|
1066
|
+
}
|
|
1067
|
+
) }) : null
|
|
1068
|
+
] })
|
|
1069
|
+
] }) : null,
|
|
1070
|
+
(socialLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
1071
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Follow Us" }),
|
|
1072
|
+
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: socialLinks?.map((link) => /* @__PURE__ */ jsx(
|
|
919
1073
|
Pressable,
|
|
920
1074
|
{
|
|
921
1075
|
href: link.href,
|
|
922
|
-
|
|
923
|
-
|
|
924
|
-
|
|
925
|
-
|
|
926
|
-
|
|
927
|
-
|
|
928
|
-
|
|
929
|
-
|
|
930
|
-
/* @__PURE__ */ jsxs("ul", { className: "flex flex-col gap-3", children: [
|
|
931
|
-
contact.email ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
932
|
-
Pressable,
|
|
1076
|
+
"aria-label": link.label || `Follow us on ${link.platform}`,
|
|
1077
|
+
className: cn(
|
|
1078
|
+
"flex h-9 w-9 items-center justify-center rounded-full transition-colors hover:bg-muted/80 hover:text-primary",
|
|
1079
|
+
getNestedCardBg(background),
|
|
1080
|
+
getNestedCardTextColor(background)
|
|
1081
|
+
),
|
|
1082
|
+
children: /* @__PURE__ */ jsx(
|
|
1083
|
+
DynamicIcon,
|
|
933
1084
|
{
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
children: [
|
|
937
|
-
/* @__PURE__ */ jsx(
|
|
938
|
-
DynamicIcon,
|
|
939
|
-
{
|
|
940
|
-
name: "lucide/mail",
|
|
941
|
-
size: 16,
|
|
942
|
-
className: "text-muted-foreground transition-colors group-hover:text-primary"
|
|
943
|
-
}
|
|
944
|
-
),
|
|
945
|
-
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.email })
|
|
946
|
-
]
|
|
1085
|
+
name: socialIconMap[link.platform],
|
|
1086
|
+
size: 16
|
|
947
1087
|
}
|
|
948
|
-
)
|
|
949
|
-
|
|
950
|
-
|
|
951
|
-
|
|
952
|
-
href: contact.phone,
|
|
953
|
-
className: "group flex items-center gap-2.5 text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
954
|
-
children: [
|
|
955
|
-
/* @__PURE__ */ jsx(
|
|
956
|
-
DynamicIcon,
|
|
957
|
-
{
|
|
958
|
-
name: "lucide/phone",
|
|
959
|
-
size: 16,
|
|
960
|
-
className: "text-muted-foreground transition-colors group-hover:text-primary"
|
|
961
|
-
}
|
|
962
|
-
),
|
|
963
|
-
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.phone })
|
|
964
|
-
]
|
|
965
|
-
}
|
|
966
|
-
) }) : null,
|
|
967
|
-
contact.address ? /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsxs(
|
|
968
|
-
Pressable,
|
|
969
|
-
{
|
|
970
|
-
href: `https://maps.google.com/?q=${encodeURIComponent(
|
|
971
|
-
contact.address
|
|
972
|
-
)}`,
|
|
973
|
-
className: "group flex items-start gap-2.5 text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
974
|
-
children: [
|
|
975
|
-
/* @__PURE__ */ jsx(
|
|
976
|
-
DynamicIcon,
|
|
977
|
-
{
|
|
978
|
-
name: "lucide/map-pin",
|
|
979
|
-
size: 16,
|
|
980
|
-
className: "mt-0.5 text-muted-foreground transition-colors group-hover:text-primary"
|
|
981
|
-
}
|
|
982
|
-
),
|
|
983
|
-
/* @__PURE__ */ jsx("span", { className: "underline underline-offset-2", children: contact.address })
|
|
984
|
-
]
|
|
985
|
-
}
|
|
986
|
-
) }) : null
|
|
987
|
-
] })
|
|
988
|
-
] }) : null,
|
|
989
|
-
(socialLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
990
|
-
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: "Follow Us" }),
|
|
991
|
-
/* @__PURE__ */ jsx("div", { className: "flex items-center gap-3", children: socialLinks?.map((link) => /* @__PURE__ */ jsx(
|
|
992
|
-
Pressable,
|
|
993
|
-
{
|
|
994
|
-
href: link.href,
|
|
995
|
-
"aria-label": link.label || `Follow us on ${link.platform}`,
|
|
996
|
-
className: cn(
|
|
997
|
-
"flex h-9 w-9 items-center justify-center rounded-full transition-colors hover:bg-muted/80 hover:text-primary",
|
|
998
|
-
getNestedCardBg(background),
|
|
999
|
-
getNestedCardTextColor(background)
|
|
1000
|
-
),
|
|
1001
|
-
children: /* @__PURE__ */ jsx(
|
|
1002
|
-
DynamicIcon,
|
|
1003
|
-
{
|
|
1004
|
-
name: socialIconMap[link.platform],
|
|
1005
|
-
size: 16
|
|
1006
|
-
}
|
|
1007
|
-
)
|
|
1008
|
-
},
|
|
1009
|
-
`${link.platform}-${link.href}`
|
|
1010
|
-
)) })
|
|
1011
|
-
] }) : null
|
|
1088
|
+
)
|
|
1089
|
+
},
|
|
1090
|
+
`${link.platform}-${link.href}`
|
|
1091
|
+
)) })
|
|
1012
1092
|
] }) : null
|
|
1013
|
-
] })
|
|
1014
|
-
(articleLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsx("div", { className: "border-t pt-8", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
1015
|
-
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: articleSectionTitle }),
|
|
1016
|
-
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-x-8 gap-y-2.5 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4", children: articleLinks?.map((link) => /* @__PURE__ */ jsx(
|
|
1017
|
-
Pressable,
|
|
1018
|
-
{
|
|
1019
|
-
href: link.href,
|
|
1020
|
-
className: "truncate text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1021
|
-
children: link.label
|
|
1022
|
-
},
|
|
1023
|
-
link.href
|
|
1024
|
-
)) })
|
|
1025
|
-
] }) }) : null
|
|
1093
|
+
] }) : null
|
|
1026
1094
|
] }),
|
|
1027
|
-
/* @__PURE__ */ jsx("div", { className: "
|
|
1028
|
-
/* @__PURE__ */ jsx("
|
|
1029
|
-
|
|
1095
|
+
(articleLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsx("div", { className: "border-t pt-8", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
1096
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-semibold", children: articleSectionTitle }),
|
|
1097
|
+
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-1 gap-x-8 gap-y-2.5 sm:grid-cols-2 lg:grid-cols-3 xl:grid-cols-4", children: articleLinks?.map((link) => /* @__PURE__ */ jsx(
|
|
1030
1098
|
Pressable,
|
|
1031
1099
|
{
|
|
1032
1100
|
href: link.href,
|
|
1033
|
-
className: "text-sm text-muted-foreground
|
|
1101
|
+
className: "truncate text-sm text-muted-foreground transition-colors hover:text-primary",
|
|
1034
1102
|
children: link.label
|
|
1035
1103
|
},
|
|
1036
1104
|
link.href
|
|
1037
|
-
)) })
|
|
1038
|
-
] }) })
|
|
1039
|
-
] })
|
|
1105
|
+
)) })
|
|
1106
|
+
] }) }) : null
|
|
1107
|
+
] }),
|
|
1108
|
+
/* @__PURE__ */ jsx("div", { className: "mt-10 border-t pt-8", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-between gap-4 sm:flex-row", children: [
|
|
1109
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: copyrightText }),
|
|
1110
|
+
(bottomLinks?.length ?? 0) > 0 ? /* @__PURE__ */ jsx("div", { className: "flex items-center gap-4 sm:gap-6", children: bottomLinks?.map((link) => /* @__PURE__ */ jsx(
|
|
1111
|
+
Pressable,
|
|
1112
|
+
{
|
|
1113
|
+
href: link.href,
|
|
1114
|
+
className: "text-sm text-muted-foreground underline underline-offset-2 transition-colors hover:text-primary",
|
|
1115
|
+
children: link.label
|
|
1116
|
+
},
|
|
1117
|
+
link.href
|
|
1118
|
+
)) }) : null
|
|
1119
|
+
] }) })
|
|
1040
1120
|
]
|
|
1041
1121
|
}
|
|
1042
1122
|
);
|
|
@@ -60,6 +60,28 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
|
60
60
|
}
|
|
61
61
|
}
|
|
62
62
|
}
|
|
63
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
64
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
65
|
+
if (isDark) {
|
|
66
|
+
switch (variant) {
|
|
67
|
+
case "default":
|
|
68
|
+
return "border-foreground/20";
|
|
69
|
+
case "muted":
|
|
70
|
+
return "border-foreground/10";
|
|
71
|
+
case "accent":
|
|
72
|
+
return "border-accent-foreground";
|
|
73
|
+
}
|
|
74
|
+
} else {
|
|
75
|
+
switch (variant) {
|
|
76
|
+
case "default":
|
|
77
|
+
return "border-border";
|
|
78
|
+
case "muted":
|
|
79
|
+
return "border-muted";
|
|
80
|
+
case "accent":
|
|
81
|
+
return "border-primary";
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
}
|
|
63
85
|
function normalizePhoneNumber(input) {
|
|
64
86
|
const trimmed = input.trim();
|
|
65
87
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -910,14 +932,14 @@ function HeroAdCampaignExpert({
|
|
|
910
932
|
(heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl leading-tight font-bold tracking-tighter lg:text-5xl", headingClassName), children: heading }) : heading ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading }) : headingHighlight ? /* @__PURE__ */ jsxRuntime.jsxs("h2", { className: cn("text-3xl leading-tight font-bold tracking-tighter lg:text-5xl", headingClassName), children: [
|
|
911
933
|
"Your ad campaigns excel with",
|
|
912
934
|
" ",
|
|
913
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "
|
|
935
|
+
/* @__PURE__ */ jsxRuntime.jsx("span", { className: cn(getBorderColor(background, "muted"), "border-b-2"), children: headingHighlight }),
|
|
914
936
|
", delivering optimized performance."
|
|
915
937
|
] }) : null),
|
|
916
938
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
917
939
|
renderAction
|
|
918
940
|
] }),
|
|
919
941
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative flex w-full justify-center lg:w-1/2", imageContainerClassName), children: [
|
|
920
|
-
imageSrc && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 -mb-16 h-auto w-[80%] max-w-[355px] lg:w-[520px]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 355 / 520, className: "
|
|
942
|
+
imageSrc && /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative z-10 -mb-16 h-auto w-[80%] max-w-[355px] lg:w-[520px]", children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: 355 / 520, className: cn(getBorderColor(background, "muted"), "border"), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
921
943
|
img.Img,
|
|
922
944
|
{
|
|
923
945
|
src: imageSrc,
|
|
@@ -38,6 +38,28 @@ function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
}
|
|
41
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
42
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
|
+
if (isDark) {
|
|
44
|
+
switch (variant) {
|
|
45
|
+
case "default":
|
|
46
|
+
return "border-foreground/20";
|
|
47
|
+
case "muted":
|
|
48
|
+
return "border-foreground/10";
|
|
49
|
+
case "accent":
|
|
50
|
+
return "border-accent-foreground";
|
|
51
|
+
}
|
|
52
|
+
} else {
|
|
53
|
+
switch (variant) {
|
|
54
|
+
case "default":
|
|
55
|
+
return "border-border";
|
|
56
|
+
case "muted":
|
|
57
|
+
return "border-muted";
|
|
58
|
+
case "accent":
|
|
59
|
+
return "border-primary";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
41
63
|
function normalizePhoneNumber(input) {
|
|
42
64
|
const trimmed = input.trim();
|
|
43
65
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -888,14 +910,14 @@ function HeroAdCampaignExpert({
|
|
|
888
910
|
(heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl leading-tight font-bold tracking-tighter lg:text-5xl", headingClassName), children: heading }) : heading ? /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading }) : headingHighlight ? /* @__PURE__ */ jsxs("h2", { className: cn("text-3xl leading-tight font-bold tracking-tighter lg:text-5xl", headingClassName), children: [
|
|
889
911
|
"Your ad campaigns excel with",
|
|
890
912
|
" ",
|
|
891
|
-
/* @__PURE__ */ jsx("span", { className: "
|
|
913
|
+
/* @__PURE__ */ jsx("span", { className: cn(getBorderColor(background, "muted"), "border-b-2"), children: headingHighlight }),
|
|
892
914
|
", delivering optimized performance."
|
|
893
915
|
] }) : null),
|
|
894
916
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
895
917
|
renderAction
|
|
896
918
|
] }),
|
|
897
919
|
/* @__PURE__ */ jsxs("div", { className: cn("relative flex w-full justify-center lg:w-1/2", imageContainerClassName), children: [
|
|
898
|
-
imageSrc && /* @__PURE__ */ jsx("div", { className: "relative z-10 -mb-16 h-auto w-[80%] max-w-[355px] lg:w-[520px]", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 355 / 520, className: "
|
|
920
|
+
imageSrc && /* @__PURE__ */ jsx("div", { className: "relative z-10 -mb-16 h-auto w-[80%] max-w-[355px] lg:w-[520px]", children: /* @__PURE__ */ jsx(AspectRatio, { ratio: 355 / 520, className: cn(getBorderColor(background, "muted"), "border"), children: /* @__PURE__ */ jsx(
|
|
899
921
|
Img,
|
|
900
922
|
{
|
|
901
923
|
src: imageSrc,
|
|
@@ -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:")) {
|
|
@@ -876,7 +902,7 @@ function HeroAdaptableProductGrid({
|
|
|
876
902
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-5xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
877
903
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mt-14 grid gap-10 lg:grid-cols-2", children: [
|
|
878
904
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: contentClassName, children: [
|
|
879
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg
|
|
905
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-lg lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
880
906
|
renderAction
|
|
881
907
|
] }),
|
|
882
908
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("relative flex items-center justify-center overflow-hidden", imageContainerClassName), 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:")) {
|
|
@@ -855,7 +881,7 @@ function HeroAdaptableProductGrid({
|
|
|
855
881
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-5xl lg:text-7xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
856
882
|
/* @__PURE__ */ jsxs("div", { className: "mt-14 grid gap-10 lg:grid-cols-2", children: [
|
|
857
883
|
/* @__PURE__ */ jsxs("div", { className: contentClassName, children: [
|
|
858
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg
|
|
884
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-lg lg:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
859
885
|
renderAction
|
|
860
886
|
] }),
|
|
861
887
|
/* @__PURE__ */ jsxs("div", { className: cn("relative flex items-center justify-center overflow-hidden", imageContainerClassName), children: [
|