@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
|
@@ -35,6 +35,58 @@ var SeparatorPrimitive__namespace = /*#__PURE__*/_interopNamespace(SeparatorPrim
|
|
|
35
35
|
function cn(...inputs) {
|
|
36
36
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
37
37
|
}
|
|
38
|
+
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
39
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
40
|
+
if (isDark) {
|
|
41
|
+
switch (variant) {
|
|
42
|
+
case "muted":
|
|
43
|
+
return "bg-background";
|
|
44
|
+
case "card":
|
|
45
|
+
return "bg-card";
|
|
46
|
+
case "accent":
|
|
47
|
+
return "bg-accent";
|
|
48
|
+
case "subtle":
|
|
49
|
+
return "bg-background/50";
|
|
50
|
+
}
|
|
51
|
+
} else {
|
|
52
|
+
switch (variant) {
|
|
53
|
+
case "muted":
|
|
54
|
+
return "bg-muted";
|
|
55
|
+
case "card":
|
|
56
|
+
return "bg-card";
|
|
57
|
+
case "accent":
|
|
58
|
+
return "bg-accent";
|
|
59
|
+
case "subtle":
|
|
60
|
+
return "bg-muted/50";
|
|
61
|
+
}
|
|
62
|
+
}
|
|
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
|
+
}
|
|
38
90
|
var svgCache = /* @__PURE__ */ new Map();
|
|
39
91
|
function DynamicIcon({
|
|
40
92
|
name,
|
|
@@ -642,13 +694,13 @@ function FeatureBentoUtilities({
|
|
|
642
694
|
renderImage(),
|
|
643
695
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "p-6", children: [
|
|
644
696
|
renderTitle(),
|
|
645
|
-
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
697
|
+
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: card.description })
|
|
646
698
|
] })
|
|
647
699
|
] }, index);
|
|
648
700
|
}
|
|
649
701
|
return /* @__PURE__ */ jsxRuntime.jsxs(Card, { className: cardClasses, children: [
|
|
650
702
|
renderTitle(),
|
|
651
|
-
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
703
|
+
card.description && /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: card.description })
|
|
652
704
|
] }, index);
|
|
653
705
|
}, [optixFlowConfig]);
|
|
654
706
|
const renderColumn = React__namespace.useCallback((cards, slot) => {
|
|
@@ -669,10 +721,10 @@ function FeatureBentoUtilities({
|
|
|
669
721
|
pattern,
|
|
670
722
|
patternOpacity,
|
|
671
723
|
patternClassName,
|
|
672
|
-
className: cn("
|
|
724
|
+
className: cn(getNestedCardBg(background, "muted"), className),
|
|
673
725
|
containerClassName: cn("max-w-7xl", containerClassName),
|
|
674
726
|
children: [
|
|
675
|
-
(labelIconElement || label) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2
|
|
727
|
+
(labelIconElement || label) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex items-center gap-2", getTextColor(background, "muted"), labelClassName), children: [
|
|
676
728
|
labelIconElement,
|
|
677
729
|
label && (typeof label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-sm", children: label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "text-sm", children: label }))
|
|
678
730
|
] }),
|
|
@@ -13,6 +13,58 @@ import { Img } from '@page-speed/img';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
+
function getNestedCardBg(parentBg, variant = "muted", options) {
|
|
17
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
18
|
+
if (isDark) {
|
|
19
|
+
switch (variant) {
|
|
20
|
+
case "muted":
|
|
21
|
+
return "bg-background";
|
|
22
|
+
case "card":
|
|
23
|
+
return "bg-card";
|
|
24
|
+
case "accent":
|
|
25
|
+
return "bg-accent";
|
|
26
|
+
case "subtle":
|
|
27
|
+
return "bg-background/50";
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
switch (variant) {
|
|
31
|
+
case "muted":
|
|
32
|
+
return "bg-muted";
|
|
33
|
+
case "card":
|
|
34
|
+
return "bg-card";
|
|
35
|
+
case "accent":
|
|
36
|
+
return "bg-accent";
|
|
37
|
+
case "subtle":
|
|
38
|
+
return "bg-muted/50";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
43
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
44
|
+
if (isDark) {
|
|
45
|
+
switch (variant) {
|
|
46
|
+
case "default":
|
|
47
|
+
return "text-foreground";
|
|
48
|
+
case "muted":
|
|
49
|
+
return "text-foreground/80";
|
|
50
|
+
case "subtle":
|
|
51
|
+
return "text-foreground/60";
|
|
52
|
+
case "accent":
|
|
53
|
+
return "text-accent-foreground";
|
|
54
|
+
}
|
|
55
|
+
} else {
|
|
56
|
+
switch (variant) {
|
|
57
|
+
case "default":
|
|
58
|
+
return "text-foreground";
|
|
59
|
+
case "muted":
|
|
60
|
+
return "text-muted-foreground";
|
|
61
|
+
case "subtle":
|
|
62
|
+
return "text-muted-foreground/70";
|
|
63
|
+
case "accent":
|
|
64
|
+
return "text-primary";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
16
68
|
var svgCache = /* @__PURE__ */ new Map();
|
|
17
69
|
function DynamicIcon({
|
|
18
70
|
name,
|
|
@@ -620,13 +672,13 @@ function FeatureBentoUtilities({
|
|
|
620
672
|
renderImage(),
|
|
621
673
|
/* @__PURE__ */ jsxs("div", { className: "p-6", children: [
|
|
622
674
|
renderTitle(),
|
|
623
|
-
card.description && /* @__PURE__ */ jsx("p", { className: "
|
|
675
|
+
card.description && /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: card.description })
|
|
624
676
|
] })
|
|
625
677
|
] }, index);
|
|
626
678
|
}
|
|
627
679
|
return /* @__PURE__ */ jsxs(Card, { className: cardClasses, children: [
|
|
628
680
|
renderTitle(),
|
|
629
|
-
card.description && /* @__PURE__ */ jsx("p", { className: "
|
|
681
|
+
card.description && /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: card.description })
|
|
630
682
|
] }, index);
|
|
631
683
|
}, [optixFlowConfig]);
|
|
632
684
|
const renderColumn = React.useCallback((cards, slot) => {
|
|
@@ -647,10 +699,10 @@ function FeatureBentoUtilities({
|
|
|
647
699
|
pattern,
|
|
648
700
|
patternOpacity,
|
|
649
701
|
patternClassName,
|
|
650
|
-
className: cn("
|
|
702
|
+
className: cn(getNestedCardBg(background, "muted"), className),
|
|
651
703
|
containerClassName: cn("max-w-7xl", containerClassName),
|
|
652
704
|
children: [
|
|
653
|
-
(labelIconElement || label) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2
|
|
705
|
+
(labelIconElement || label) && /* @__PURE__ */ jsxs("div", { className: cn("flex items-center gap-2", getTextColor(background, "muted"), labelClassName), children: [
|
|
654
706
|
labelIconElement,
|
|
655
707
|
label && (typeof label === "string" ? /* @__PURE__ */ jsx("p", { className: "text-sm", children: label }) : /* @__PURE__ */ jsx("div", { className: "text-sm", children: label }))
|
|
656
708
|
] }),
|
|
@@ -31,6 +31,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
31
31
|
function cn(...inputs) {
|
|
32
32
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
33
33
|
}
|
|
34
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
35
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
36
|
+
if (isDark) {
|
|
37
|
+
switch (variant) {
|
|
38
|
+
case "default":
|
|
39
|
+
return "text-foreground";
|
|
40
|
+
case "muted":
|
|
41
|
+
return "text-foreground/80";
|
|
42
|
+
case "subtle":
|
|
43
|
+
return "text-foreground/60";
|
|
44
|
+
case "accent":
|
|
45
|
+
return "text-accent-foreground";
|
|
46
|
+
}
|
|
47
|
+
} else {
|
|
48
|
+
switch (variant) {
|
|
49
|
+
case "default":
|
|
50
|
+
return "text-foreground";
|
|
51
|
+
case "muted":
|
|
52
|
+
return "text-muted-foreground";
|
|
53
|
+
case "subtle":
|
|
54
|
+
return "text-muted-foreground/70";
|
|
55
|
+
case "accent":
|
|
56
|
+
return "text-primary";
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
34
60
|
var svgCache = /* @__PURE__ */ new Map();
|
|
35
61
|
function DynamicIcon({
|
|
36
62
|
name,
|
|
@@ -601,10 +627,10 @@ function FeatureCapabilitiesGrid({
|
|
|
601
627
|
iconContent && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-xl border border-border/15 bg-background/5", item.iconClassName), children: iconContent }),
|
|
602
628
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center gap-2", children: [
|
|
603
629
|
item.title && (typeof item.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: cn("text-lg font-medium", item.titleClassName), children: item.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-lg font-medium", item.titleClassName), children: item.title })),
|
|
604
|
-
item.badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full border border-border/20 px-2 py-0.5 text-[10px] leading-none
|
|
630
|
+
item.badge && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("rounded-full border border-border/20 px-2 py-0.5 text-[10px] leading-none", getTextColor(background, "muted"), item.badgeClassName), children: item.badge })
|
|
605
631
|
] }) })
|
|
606
632
|
] }),
|
|
607
|
-
item.description && /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: cn("relative z-10 px-6 pb-6 text-sm
|
|
633
|
+
item.description && /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: cn("relative z-10 px-6 pb-6 text-sm", getTextColor(background, "muted"), item.descriptionClassName), children: item.description }),
|
|
608
634
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
609
635
|
framerMotion.motion.div,
|
|
610
636
|
{
|
|
@@ -631,7 +657,7 @@ function FeatureCapabilitiesGrid({
|
|
|
631
657
|
className,
|
|
632
658
|
containerClassName,
|
|
633
659
|
children: [
|
|
634
|
-
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs tracking-widest
|
|
660
|
+
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs tracking-widest", getTextColor(background, "muted"), eyebrowClassName), children: eyebrow }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-xs tracking-widest", getTextColor(background, "muted"), eyebrowClassName), children: eyebrow })),
|
|
635
661
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("mt-3 text-4xl font-semibold tracking-tight sm:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-3 text-4xl font-semibold tracking-tight sm:text-5xl", headingClassName), children: heading })),
|
|
636
662
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-10 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", gridClassName), children: itemsContent })
|
|
637
663
|
]
|
|
@@ -10,6 +10,32 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
10
10
|
function cn(...inputs) {
|
|
11
11
|
return twMerge(clsx(inputs));
|
|
12
12
|
}
|
|
13
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
14
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
15
|
+
if (isDark) {
|
|
16
|
+
switch (variant) {
|
|
17
|
+
case "default":
|
|
18
|
+
return "text-foreground";
|
|
19
|
+
case "muted":
|
|
20
|
+
return "text-foreground/80";
|
|
21
|
+
case "subtle":
|
|
22
|
+
return "text-foreground/60";
|
|
23
|
+
case "accent":
|
|
24
|
+
return "text-accent-foreground";
|
|
25
|
+
}
|
|
26
|
+
} else {
|
|
27
|
+
switch (variant) {
|
|
28
|
+
case "default":
|
|
29
|
+
return "text-foreground";
|
|
30
|
+
case "muted":
|
|
31
|
+
return "text-muted-foreground";
|
|
32
|
+
case "subtle":
|
|
33
|
+
return "text-muted-foreground/70";
|
|
34
|
+
case "accent":
|
|
35
|
+
return "text-primary";
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
13
39
|
var svgCache = /* @__PURE__ */ new Map();
|
|
14
40
|
function DynamicIcon({
|
|
15
41
|
name,
|
|
@@ -580,10 +606,10 @@ function FeatureCapabilitiesGrid({
|
|
|
580
606
|
iconContent && /* @__PURE__ */ jsx("div", { className: cn("flex h-10 w-10 items-center justify-center rounded-xl border border-border/15 bg-background/5", item.iconClassName), children: iconContent }),
|
|
581
607
|
/* @__PURE__ */ jsx("div", { className: "flex-1", children: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
582
608
|
item.title && (typeof item.title === "string" ? /* @__PURE__ */ jsx(CardTitle, { className: cn("text-lg font-medium", item.titleClassName), children: item.title }) : /* @__PURE__ */ jsx("div", { className: cn("text-lg font-medium", item.titleClassName), children: item.title })),
|
|
583
|
-
item.badge && /* @__PURE__ */ jsx("span", { className: cn("rounded-full border border-border/20 px-2 py-0.5 text-[10px] leading-none
|
|
609
|
+
item.badge && /* @__PURE__ */ jsx("span", { className: cn("rounded-full border border-border/20 px-2 py-0.5 text-[10px] leading-none", getTextColor(background, "muted"), item.badgeClassName), children: item.badge })
|
|
584
610
|
] }) })
|
|
585
611
|
] }),
|
|
586
|
-
item.description && /* @__PURE__ */ jsx(CardContent, { className: cn("relative z-10 px-6 pb-6 text-sm
|
|
612
|
+
item.description && /* @__PURE__ */ jsx(CardContent, { className: cn("relative z-10 px-6 pb-6 text-sm", getTextColor(background, "muted"), item.descriptionClassName), children: item.description }),
|
|
587
613
|
/* @__PURE__ */ jsx(
|
|
588
614
|
motion.div,
|
|
589
615
|
{
|
|
@@ -610,7 +636,7 @@ function FeatureCapabilitiesGrid({
|
|
|
610
636
|
className,
|
|
611
637
|
containerClassName,
|
|
612
638
|
children: [
|
|
613
|
-
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xs tracking-widest
|
|
639
|
+
eyebrow && (typeof eyebrow === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xs tracking-widest", getTextColor(background, "muted"), eyebrowClassName), children: eyebrow }) : /* @__PURE__ */ jsx("div", { className: cn("text-xs tracking-widest", getTextColor(background, "muted"), eyebrowClassName), children: eyebrow })),
|
|
614
640
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("mt-3 text-4xl font-semibold tracking-tight sm:text-5xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("mt-3 text-4xl font-semibold tracking-tight sm:text-5xl", headingClassName), children: heading })),
|
|
615
641
|
/* @__PURE__ */ jsx("div", { className: cn("mt-10 grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3", gridClassName), children: itemsContent })
|
|
616
642
|
]
|
|
@@ -62,6 +62,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
62
62
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
63
63
|
return isDark ? "text-foreground" : "";
|
|
64
64
|
}
|
|
65
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
66
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
67
|
+
if (isDark) {
|
|
68
|
+
switch (variant) {
|
|
69
|
+
case "default":
|
|
70
|
+
return "text-foreground";
|
|
71
|
+
case "muted":
|
|
72
|
+
return "text-foreground/80";
|
|
73
|
+
case "subtle":
|
|
74
|
+
return "text-foreground/60";
|
|
75
|
+
case "accent":
|
|
76
|
+
return "text-accent-foreground";
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
switch (variant) {
|
|
80
|
+
case "default":
|
|
81
|
+
return "text-foreground";
|
|
82
|
+
case "muted":
|
|
83
|
+
return "text-muted-foreground";
|
|
84
|
+
case "subtle":
|
|
85
|
+
return "text-muted-foreground/70";
|
|
86
|
+
case "accent":
|
|
87
|
+
return "text-primary";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
65
91
|
function normalizePhoneNumber(input) {
|
|
66
92
|
const trimmed = input.trim();
|
|
67
93
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -946,7 +972,8 @@ function FeatureCardGridLinked({
|
|
|
946
972
|
"p",
|
|
947
973
|
{
|
|
948
974
|
className: cn(
|
|
949
|
-
"p-4
|
|
975
|
+
"p-4 md:p-8",
|
|
976
|
+
getTextColor(background, "muted"),
|
|
950
977
|
feature.descriptionClassName
|
|
951
978
|
),
|
|
952
979
|
children: feature.description
|
|
@@ -957,7 +984,7 @@ function FeatureCardGridLinked({
|
|
|
957
984
|
featureKey
|
|
958
985
|
);
|
|
959
986
|
});
|
|
960
|
-
}, [featuresSlot, features, cardClassName, renderImage]);
|
|
987
|
+
}, [featuresSlot, features, cardClassName, renderImage, background]);
|
|
961
988
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
962
989
|
Section,
|
|
963
990
|
{
|
|
@@ -41,6 +41,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
41
41
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
42
|
return isDark ? "text-foreground" : "";
|
|
43
43
|
}
|
|
44
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
45
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
46
|
+
if (isDark) {
|
|
47
|
+
switch (variant) {
|
|
48
|
+
case "default":
|
|
49
|
+
return "text-foreground";
|
|
50
|
+
case "muted":
|
|
51
|
+
return "text-foreground/80";
|
|
52
|
+
case "subtle":
|
|
53
|
+
return "text-foreground/60";
|
|
54
|
+
case "accent":
|
|
55
|
+
return "text-accent-foreground";
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
switch (variant) {
|
|
59
|
+
case "default":
|
|
60
|
+
return "text-foreground";
|
|
61
|
+
case "muted":
|
|
62
|
+
return "text-muted-foreground";
|
|
63
|
+
case "subtle":
|
|
64
|
+
return "text-muted-foreground/70";
|
|
65
|
+
case "accent":
|
|
66
|
+
return "text-primary";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
44
70
|
function normalizePhoneNumber(input) {
|
|
45
71
|
const trimmed = input.trim();
|
|
46
72
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -925,7 +951,8 @@ function FeatureCardGridLinked({
|
|
|
925
951
|
"p",
|
|
926
952
|
{
|
|
927
953
|
className: cn(
|
|
928
|
-
"p-4
|
|
954
|
+
"p-4 md:p-8",
|
|
955
|
+
getTextColor(background, "muted"),
|
|
929
956
|
feature.descriptionClassName
|
|
930
957
|
),
|
|
931
958
|
children: feature.description
|
|
@@ -936,7 +963,7 @@ function FeatureCardGridLinked({
|
|
|
936
963
|
featureKey
|
|
937
964
|
);
|
|
938
965
|
});
|
|
939
|
-
}, [featuresSlot, features, cardClassName, renderImage]);
|
|
966
|
+
}, [featuresSlot, features, cardClassName, renderImage, background]);
|
|
940
967
|
return /* @__PURE__ */ jsxs(
|
|
941
968
|
Section,
|
|
942
969
|
{
|
|
@@ -38,6 +38,32 @@ var ProgressPrimitive__namespace = /*#__PURE__*/_interopNamespace(ProgressPrimit
|
|
|
38
38
|
function cn(...inputs) {
|
|
39
39
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
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
|
+
}
|
|
41
67
|
var svgCache = /* @__PURE__ */ new Map();
|
|
42
68
|
function DynamicIcon({
|
|
43
69
|
name,
|
|
@@ -1252,7 +1278,7 @@ function FeatureCarouselProgress({
|
|
|
1252
1278
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "p-1", children: /* @__PURE__ */ jsxRuntime.jsx(Card, { className: cn(cardClassName, slide.className), children: /* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "flex flex-col justify-center p-6", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1253
1279
|
(slide.icon || slide.iconName) && /* @__PURE__ */ jsxRuntime.jsx("span", { className: cn("mb-5 flex size-8 items-center justify-center rounded-full bg-primary text-primary-foreground lg:size-10", slide.iconClassName), children: renderSlideIcon(slide) }),
|
|
1254
1280
|
slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title })),
|
|
1255
|
-
slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("pt-2
|
|
1281
|
+
slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("pt-2", getTextColor(background, "muted"), slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("pt-2", getTextColor(background, "muted"), slide.descriptionClassName), children: slide.description }))
|
|
1256
1282
|
] }) }) }) })
|
|
1257
1283
|
},
|
|
1258
1284
|
index
|
|
@@ -1277,7 +1303,7 @@ function FeatureCarouselProgress({
|
|
|
1277
1303
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mb-4 flex justify-between px-1 md:mb-5", controlsClassName), children: [
|
|
1278
1304
|
carouselLabel && (typeof carouselLabel === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "font-medium", children: carouselLabel }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "font-medium", children: carouselLabel })),
|
|
1279
1305
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
1280
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mr-2 hidden items-center gap-3 text-xs
|
|
1306
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mr-2 hidden items-center gap-3 text-xs md:flex", getTextColor(background, "muted")), children: [
|
|
1281
1307
|
/* @__PURE__ */ jsxRuntime.jsx("span", { children: "01" }),
|
|
1282
1308
|
/* @__PURE__ */ jsxRuntime.jsx(Progress, { value: progress, className: cn("h-0.5 w-52", progressClassName) }),
|
|
1283
1309
|
/* @__PURE__ */ jsxRuntime.jsxs("span", { children: [
|
|
@@ -13,6 +13,32 @@ import * as ProgressPrimitive from '@radix-ui/react-progress';
|
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
16
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
17
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
18
|
+
if (isDark) {
|
|
19
|
+
switch (variant) {
|
|
20
|
+
case "default":
|
|
21
|
+
return "text-foreground";
|
|
22
|
+
case "muted":
|
|
23
|
+
return "text-foreground/80";
|
|
24
|
+
case "subtle":
|
|
25
|
+
return "text-foreground/60";
|
|
26
|
+
case "accent":
|
|
27
|
+
return "text-accent-foreground";
|
|
28
|
+
}
|
|
29
|
+
} else {
|
|
30
|
+
switch (variant) {
|
|
31
|
+
case "default":
|
|
32
|
+
return "text-foreground";
|
|
33
|
+
case "muted":
|
|
34
|
+
return "text-muted-foreground";
|
|
35
|
+
case "subtle":
|
|
36
|
+
return "text-muted-foreground/70";
|
|
37
|
+
case "accent":
|
|
38
|
+
return "text-primary";
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
16
42
|
var svgCache = /* @__PURE__ */ new Map();
|
|
17
43
|
function DynamicIcon({
|
|
18
44
|
name,
|
|
@@ -1227,7 +1253,7 @@ function FeatureCarouselProgress({
|
|
|
1227
1253
|
children: /* @__PURE__ */ jsx("div", { className: "p-1", children: /* @__PURE__ */ jsx(Card, { className: cn(cardClassName, slide.className), children: /* @__PURE__ */ jsx(CardContent, { className: "flex flex-col justify-center p-6", children: /* @__PURE__ */ jsxs("div", { children: [
|
|
1228
1254
|
(slide.icon || slide.iconName) && /* @__PURE__ */ jsx("span", { className: cn("mb-5 flex size-8 items-center justify-center rounded-full bg-primary text-primary-foreground lg:size-10", slide.iconClassName), children: renderSlideIcon(slide) }),
|
|
1229
1255
|
slide.title && (typeof slide.title === "string" ? /* @__PURE__ */ jsx("p", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title }) : /* @__PURE__ */ jsx("div", { className: cn("text-xl font-semibold md:text-2xl lg:text-2xl", slide.titleClassName), children: slide.title })),
|
|
1230
|
-
slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("pt-2
|
|
1256
|
+
slide.description && (typeof slide.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("pt-2", getTextColor(background, "muted"), slide.descriptionClassName), children: slide.description }) : /* @__PURE__ */ jsx("div", { className: cn("pt-2", getTextColor(background, "muted"), slide.descriptionClassName), children: slide.description }))
|
|
1231
1257
|
] }) }) }) })
|
|
1232
1258
|
},
|
|
1233
1259
|
index
|
|
@@ -1252,7 +1278,7 @@ function FeatureCarouselProgress({
|
|
|
1252
1278
|
/* @__PURE__ */ jsxs("div", { className: cn("mb-4 flex justify-between px-1 md:mb-5", controlsClassName), children: [
|
|
1253
1279
|
carouselLabel && (typeof carouselLabel === "string" ? /* @__PURE__ */ jsx("p", { className: "font-medium", children: carouselLabel }) : /* @__PURE__ */ jsx("div", { className: "font-medium", children: carouselLabel })),
|
|
1254
1280
|
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
1255
|
-
/* @__PURE__ */ jsxs("div", { className: "mr-2 hidden items-center gap-3 text-xs
|
|
1281
|
+
/* @__PURE__ */ jsxs("div", { className: cn("mr-2 hidden items-center gap-3 text-xs md:flex", getTextColor(background, "muted")), children: [
|
|
1256
1282
|
/* @__PURE__ */ jsx("span", { children: "01" }),
|
|
1257
1283
|
/* @__PURE__ */ jsx(Progress, { value: progress, className: cn("h-0.5 w-52", progressClassName) }),
|
|
1258
1284
|
/* @__PURE__ */ jsxs("span", { children: [
|
|
@@ -47,6 +47,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
47
47
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
48
48
|
return isDark ? "text-foreground" : "";
|
|
49
49
|
}
|
|
50
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
51
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
52
|
+
if (isDark) {
|
|
53
|
+
switch (variant) {
|
|
54
|
+
case "default":
|
|
55
|
+
return "text-foreground";
|
|
56
|
+
case "muted":
|
|
57
|
+
return "text-foreground/80";
|
|
58
|
+
case "subtle":
|
|
59
|
+
return "text-foreground/60";
|
|
60
|
+
case "accent":
|
|
61
|
+
return "text-accent-foreground";
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
switch (variant) {
|
|
65
|
+
case "default":
|
|
66
|
+
return "text-foreground";
|
|
67
|
+
case "muted":
|
|
68
|
+
return "text-muted-foreground";
|
|
69
|
+
case "subtle":
|
|
70
|
+
return "text-muted-foreground/70";
|
|
71
|
+
case "accent":
|
|
72
|
+
return "text-primary";
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
50
76
|
var badgeVariants = classVarianceAuthority.cva(
|
|
51
77
|
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
52
78
|
{
|
|
@@ -559,7 +585,7 @@ function FeatureCategoryImageCards({
|
|
|
559
585
|
), children: [
|
|
560
586
|
/* @__PURE__ */ jsxRuntime.jsxs(CardHeader, { className: "text-center", children: [
|
|
561
587
|
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(CardTitle, { className: cn("text-lg font-semibold md:text-2xl", feature.titleClassName), children: feature.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-lg font-semibold md:text-2xl", feature.titleClassName), children: feature.title })),
|
|
562
|
-
feature.category && (typeof feature.category === "string" ? /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { className: cn("
|
|
588
|
+
feature.category && (typeof feature.category === "string" ? /* @__PURE__ */ jsxRuntime.jsx(CardDescription, { className: cn("md:text-lg", getTextColor(background, "muted"), feature.categoryClassName), children: feature.category }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("md:text-lg", getTextColor(background, "muted"), feature.categoryClassName), children: feature.category }))
|
|
563
589
|
] }),
|
|
564
590
|
/* @__PURE__ */ jsxRuntime.jsx(CardContent, { className: "px-7 pb-7", children: renderFeatureImage(feature) })
|
|
565
591
|
] }, index));
|
|
@@ -578,7 +604,7 @@ function FeatureCategoryImageCards({
|
|
|
578
604
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col items-center justify-center gap-4 text-center", headerClassName), children: [
|
|
579
605
|
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
|
|
580
606
|
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-3xl font-semibold md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-3xl font-semibold md:text-5xl", titleClassName), children: title })),
|
|
581
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-2xl
|
|
607
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-2xl md:text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-w-2xl md:text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }))
|
|
582
608
|
] }),
|
|
583
609
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mx-auto mt-20 grid max-w-7xl gap-7 md:grid-cols-2 lg:grid-cols-3", gridClassName), children: featuresContent })
|
|
584
610
|
]
|
|
@@ -41,6 +41,32 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
41
41
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
42
|
return isDark ? "text-foreground" : "";
|
|
43
43
|
}
|
|
44
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
45
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
46
|
+
if (isDark) {
|
|
47
|
+
switch (variant) {
|
|
48
|
+
case "default":
|
|
49
|
+
return "text-foreground";
|
|
50
|
+
case "muted":
|
|
51
|
+
return "text-foreground/80";
|
|
52
|
+
case "subtle":
|
|
53
|
+
return "text-foreground/60";
|
|
54
|
+
case "accent":
|
|
55
|
+
return "text-accent-foreground";
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
switch (variant) {
|
|
59
|
+
case "default":
|
|
60
|
+
return "text-foreground";
|
|
61
|
+
case "muted":
|
|
62
|
+
return "text-muted-foreground";
|
|
63
|
+
case "subtle":
|
|
64
|
+
return "text-muted-foreground/70";
|
|
65
|
+
case "accent":
|
|
66
|
+
return "text-primary";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
44
70
|
var badgeVariants = cva(
|
|
45
71
|
"inline-flex items-center justify-center rounded-full border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden",
|
|
46
72
|
{
|
|
@@ -553,7 +579,7 @@ function FeatureCategoryImageCards({
|
|
|
553
579
|
), children: [
|
|
554
580
|
/* @__PURE__ */ jsxs(CardHeader, { className: "text-center", children: [
|
|
555
581
|
feature.title && (typeof feature.title === "string" ? /* @__PURE__ */ jsx(CardTitle, { className: cn("text-lg font-semibold md:text-2xl", feature.titleClassName), children: feature.title }) : /* @__PURE__ */ jsx("div", { className: cn("text-lg font-semibold md:text-2xl", feature.titleClassName), children: feature.title })),
|
|
556
|
-
feature.category && (typeof feature.category === "string" ? /* @__PURE__ */ jsx(CardDescription, { className: cn("
|
|
582
|
+
feature.category && (typeof feature.category === "string" ? /* @__PURE__ */ jsx(CardDescription, { className: cn("md:text-lg", getTextColor(background, "muted"), feature.categoryClassName), children: feature.category }) : /* @__PURE__ */ jsx("div", { className: cn("md:text-lg", getTextColor(background, "muted"), feature.categoryClassName), children: feature.category }))
|
|
557
583
|
] }),
|
|
558
584
|
/* @__PURE__ */ jsx(CardContent, { className: "px-7 pb-7", children: renderFeatureImage(feature) })
|
|
559
585
|
] }, index));
|
|
@@ -572,7 +598,7 @@ function FeatureCategoryImageCards({
|
|
|
572
598
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col items-center justify-center gap-4 text-center", headerClassName), children: [
|
|
573
599
|
badge && /* @__PURE__ */ jsx(Badge, { variant: "outline", className: badgeClassName, children: badge }),
|
|
574
600
|
title && (typeof title === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-3xl font-semibold md:text-5xl", titleClassName), children: title }) : /* @__PURE__ */ jsx("div", { className: cn("text-3xl font-semibold md:text-5xl", titleClassName), children: title })),
|
|
575
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl
|
|
601
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-2xl md:text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: cn("max-w-2xl md:text-lg", getTextColor(background, "muted"), descriptionClassName), children: description }))
|
|
576
602
|
] }),
|
|
577
603
|
/* @__PURE__ */ jsx("div", { className: cn("mx-auto mt-20 grid max-w-7xl gap-7 md:grid-cols-2 lg:grid-cols-3", gridClassName), children: featuresContent })
|
|
578
604
|
]
|