@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
|
@@ -39,6 +39,54 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
39
39
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
40
40
|
return isDark ? "text-foreground" : "";
|
|
41
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
|
+
}
|
|
68
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
69
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
70
|
+
if (isDark) {
|
|
71
|
+
switch (variant) {
|
|
72
|
+
case "default":
|
|
73
|
+
return "border-foreground/20";
|
|
74
|
+
case "muted":
|
|
75
|
+
return "border-foreground/10";
|
|
76
|
+
case "accent":
|
|
77
|
+
return "border-accent-foreground";
|
|
78
|
+
}
|
|
79
|
+
} else {
|
|
80
|
+
switch (variant) {
|
|
81
|
+
case "default":
|
|
82
|
+
return "border-border";
|
|
83
|
+
case "muted":
|
|
84
|
+
return "border-muted";
|
|
85
|
+
case "accent":
|
|
86
|
+
return "border-primary";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
42
90
|
var svgCache = /* @__PURE__ */ new Map();
|
|
43
91
|
function DynamicIcon({
|
|
44
92
|
name,
|
|
@@ -583,7 +631,7 @@ function ProcessIconTimeline({
|
|
|
583
631
|
),
|
|
584
632
|
children: [
|
|
585
633
|
step.title && (typeof step.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-2 text-xl font-semibold tracking-tight", children: step.title }) : /* @__PURE__ */ jsx("div", { className: "mb-2 text-xl font-semibold tracking-tight", children: step.title })),
|
|
586
|
-
step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: "mb-4
|
|
634
|
+
step.description && (typeof step.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-4", getTextColor(background, "muted")), children: step.description }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", getTextColor(background, "muted")), children: step.description })),
|
|
587
635
|
step.highlights?.length ? /* @__PURE__ */ jsx(
|
|
588
636
|
"div",
|
|
589
637
|
{
|
|
@@ -640,7 +688,8 @@ function ProcessIconTimeline({
|
|
|
640
688
|
"p",
|
|
641
689
|
{
|
|
642
690
|
className: cn(
|
|
643
|
-
"text-lg
|
|
691
|
+
"text-lg",
|
|
692
|
+
getTextColor(background, "muted"),
|
|
644
693
|
descriptionClassName
|
|
645
694
|
),
|
|
646
695
|
children: description
|
|
@@ -652,7 +701,8 @@ function ProcessIconTimeline({
|
|
|
652
701
|
"div",
|
|
653
702
|
{
|
|
654
703
|
className: cn(
|
|
655
|
-
"absolute left-6 top-0 bottom-0 w-px
|
|
704
|
+
"absolute left-6 top-0 bottom-0 w-px lg:left-1/2 lg:-translate-x-1/2",
|
|
705
|
+
getBorderColor(background, "default"),
|
|
656
706
|
timelineLineClassName
|
|
657
707
|
)
|
|
658
708
|
}
|
|
@@ -44,6 +44,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
44
44
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
45
45
|
return isDark ? "text-foreground" : "";
|
|
46
46
|
}
|
|
47
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
48
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
49
|
+
if (isDark) {
|
|
50
|
+
switch (variant) {
|
|
51
|
+
case "default":
|
|
52
|
+
return "text-foreground";
|
|
53
|
+
case "muted":
|
|
54
|
+
return "text-foreground/80";
|
|
55
|
+
case "subtle":
|
|
56
|
+
return "text-foreground/60";
|
|
57
|
+
case "accent":
|
|
58
|
+
return "text-accent-foreground";
|
|
59
|
+
}
|
|
60
|
+
} else {
|
|
61
|
+
switch (variant) {
|
|
62
|
+
case "default":
|
|
63
|
+
return "text-foreground";
|
|
64
|
+
case "muted":
|
|
65
|
+
return "text-muted-foreground";
|
|
66
|
+
case "subtle":
|
|
67
|
+
return "text-muted-foreground/70";
|
|
68
|
+
case "accent":
|
|
69
|
+
return "text-primary";
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
function getAccentColor(parentBg, options) {
|
|
74
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
75
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
76
|
+
}
|
|
47
77
|
var maxWidthStyles = {
|
|
48
78
|
sm: "max-w-screen-sm",
|
|
49
79
|
md: "max-w-screen-md",
|
|
@@ -452,7 +482,7 @@ function ProcessMissionPrinciples({
|
|
|
452
482
|
"div",
|
|
453
483
|
{
|
|
454
484
|
className: cn(
|
|
455
|
-
"grid gap-6 md:grid-cols-2 lg:grid-cols-3",
|
|
485
|
+
"grid gap-6 md:grid-cols-2 lg:grid-cols-3 px-4 md:px-0",
|
|
456
486
|
principlesGridClassName
|
|
457
487
|
),
|
|
458
488
|
children: principles.map((principle, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
@@ -478,7 +508,7 @@ function ProcessMissionPrinciples({
|
|
|
478
508
|
),
|
|
479
509
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "pt-4", children: [
|
|
480
510
|
principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title })),
|
|
481
|
-
principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
511
|
+
principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }))
|
|
482
512
|
] })
|
|
483
513
|
]
|
|
484
514
|
},
|
|
@@ -486,7 +516,14 @@ function ProcessMissionPrinciples({
|
|
|
486
516
|
))
|
|
487
517
|
}
|
|
488
518
|
);
|
|
489
|
-
}, [
|
|
519
|
+
}, [
|
|
520
|
+
principlesSlot,
|
|
521
|
+
principles,
|
|
522
|
+
background,
|
|
523
|
+
principlesGridClassName,
|
|
524
|
+
principleCardClassName,
|
|
525
|
+
principleBadgeClassName
|
|
526
|
+
]);
|
|
490
527
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
491
528
|
Section,
|
|
492
529
|
{
|
|
@@ -501,7 +538,8 @@ function ProcessMissionPrinciples({
|
|
|
501
538
|
"span",
|
|
502
539
|
{
|
|
503
540
|
className: cn(
|
|
504
|
-
"mb-4 inline-block text-sm font-semibold uppercase tracking-wider
|
|
541
|
+
"mb-4 inline-block text-sm font-semibold uppercase tracking-wider",
|
|
542
|
+
getAccentColor(background),
|
|
505
543
|
missionLabelClassName
|
|
506
544
|
),
|
|
507
545
|
children: missionLabel
|
|
@@ -521,7 +559,7 @@ function ProcessMissionPrinciples({
|
|
|
521
559
|
"p",
|
|
522
560
|
{
|
|
523
561
|
className: cn(
|
|
524
|
-
"text-lg
|
|
562
|
+
"text-lg leading-relaxed",
|
|
525
563
|
missionDescriptionClassName
|
|
526
564
|
),
|
|
527
565
|
children: missionDescription
|
|
@@ -533,7 +571,7 @@ function ProcessMissionPrinciples({
|
|
|
533
571
|
"span",
|
|
534
572
|
{
|
|
535
573
|
className: cn(
|
|
536
|
-
"mb-8 inline-block text-sm font-semibold uppercase tracking-wider
|
|
574
|
+
"mb-8 inline-block text-sm font-semibold uppercase tracking-wider",
|
|
537
575
|
principlesLabelClassName
|
|
538
576
|
),
|
|
539
577
|
children: principlesLabel
|
|
@@ -38,6 +38,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
38
38
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
39
39
|
return isDark ? "text-foreground" : "";
|
|
40
40
|
}
|
|
41
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
42
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
|
+
if (isDark) {
|
|
44
|
+
switch (variant) {
|
|
45
|
+
case "default":
|
|
46
|
+
return "text-foreground";
|
|
47
|
+
case "muted":
|
|
48
|
+
return "text-foreground/80";
|
|
49
|
+
case "subtle":
|
|
50
|
+
return "text-foreground/60";
|
|
51
|
+
case "accent":
|
|
52
|
+
return "text-accent-foreground";
|
|
53
|
+
}
|
|
54
|
+
} else {
|
|
55
|
+
switch (variant) {
|
|
56
|
+
case "default":
|
|
57
|
+
return "text-foreground";
|
|
58
|
+
case "muted":
|
|
59
|
+
return "text-muted-foreground";
|
|
60
|
+
case "subtle":
|
|
61
|
+
return "text-muted-foreground/70";
|
|
62
|
+
case "accent":
|
|
63
|
+
return "text-primary";
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
function getAccentColor(parentBg, options) {
|
|
68
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
69
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
70
|
+
}
|
|
41
71
|
var maxWidthStyles = {
|
|
42
72
|
sm: "max-w-screen-sm",
|
|
43
73
|
md: "max-w-screen-md",
|
|
@@ -446,7 +476,7 @@ function ProcessMissionPrinciples({
|
|
|
446
476
|
"div",
|
|
447
477
|
{
|
|
448
478
|
className: cn(
|
|
449
|
-
"grid gap-6 md:grid-cols-2 lg:grid-cols-3",
|
|
479
|
+
"grid gap-6 md:grid-cols-2 lg:grid-cols-3 px-4 md:px-0",
|
|
450
480
|
principlesGridClassName
|
|
451
481
|
),
|
|
452
482
|
children: principles.map((principle, index) => /* @__PURE__ */ jsxs(
|
|
@@ -472,7 +502,7 @@ function ProcessMissionPrinciples({
|
|
|
472
502
|
),
|
|
473
503
|
/* @__PURE__ */ jsxs("div", { className: "pt-4", children: [
|
|
474
504
|
principle.title && (typeof principle.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-xl font-semibold tracking-tight", children: principle.title })),
|
|
475
|
-
principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: "
|
|
505
|
+
principle.description && (typeof principle.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: principle.description }))
|
|
476
506
|
] })
|
|
477
507
|
]
|
|
478
508
|
},
|
|
@@ -480,7 +510,14 @@ function ProcessMissionPrinciples({
|
|
|
480
510
|
))
|
|
481
511
|
}
|
|
482
512
|
);
|
|
483
|
-
}, [
|
|
513
|
+
}, [
|
|
514
|
+
principlesSlot,
|
|
515
|
+
principles,
|
|
516
|
+
background,
|
|
517
|
+
principlesGridClassName,
|
|
518
|
+
principleCardClassName,
|
|
519
|
+
principleBadgeClassName
|
|
520
|
+
]);
|
|
484
521
|
return /* @__PURE__ */ jsx(
|
|
485
522
|
Section,
|
|
486
523
|
{
|
|
@@ -495,7 +532,8 @@ function ProcessMissionPrinciples({
|
|
|
495
532
|
"span",
|
|
496
533
|
{
|
|
497
534
|
className: cn(
|
|
498
|
-
"mb-4 inline-block text-sm font-semibold uppercase tracking-wider
|
|
535
|
+
"mb-4 inline-block text-sm font-semibold uppercase tracking-wider",
|
|
536
|
+
getAccentColor(background),
|
|
499
537
|
missionLabelClassName
|
|
500
538
|
),
|
|
501
539
|
children: missionLabel
|
|
@@ -515,7 +553,7 @@ function ProcessMissionPrinciples({
|
|
|
515
553
|
"p",
|
|
516
554
|
{
|
|
517
555
|
className: cn(
|
|
518
|
-
"text-lg
|
|
556
|
+
"text-lg leading-relaxed",
|
|
519
557
|
missionDescriptionClassName
|
|
520
558
|
),
|
|
521
559
|
children: missionDescription
|
|
@@ -527,7 +565,7 @@ function ProcessMissionPrinciples({
|
|
|
527
565
|
"span",
|
|
528
566
|
{
|
|
529
567
|
className: cn(
|
|
530
|
-
"mb-8 inline-block text-sm font-semibold uppercase tracking-wider
|
|
568
|
+
"mb-8 inline-block text-sm font-semibold uppercase tracking-wider",
|
|
531
569
|
principlesLabelClassName
|
|
532
570
|
),
|
|
533
571
|
children: principlesLabel
|
|
@@ -61,6 +61,58 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
61
61
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
62
62
|
return isDark ? "text-foreground" : "";
|
|
63
63
|
}
|
|
64
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
65
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
66
|
+
if (isDark) {
|
|
67
|
+
switch (variant) {
|
|
68
|
+
case "default":
|
|
69
|
+
return "text-foreground";
|
|
70
|
+
case "muted":
|
|
71
|
+
return "text-foreground/80";
|
|
72
|
+
case "subtle":
|
|
73
|
+
return "text-foreground/60";
|
|
74
|
+
case "accent":
|
|
75
|
+
return "text-accent-foreground";
|
|
76
|
+
}
|
|
77
|
+
} else {
|
|
78
|
+
switch (variant) {
|
|
79
|
+
case "default":
|
|
80
|
+
return "text-foreground";
|
|
81
|
+
case "muted":
|
|
82
|
+
return "text-muted-foreground";
|
|
83
|
+
case "subtle":
|
|
84
|
+
return "text-muted-foreground/70";
|
|
85
|
+
case "accent":
|
|
86
|
+
return "text-primary";
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
function getAccentColor(parentBg, options) {
|
|
91
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
92
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
93
|
+
}
|
|
94
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
95
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
96
|
+
if (isDark) {
|
|
97
|
+
switch (variant) {
|
|
98
|
+
case "default":
|
|
99
|
+
return "border-foreground/20";
|
|
100
|
+
case "muted":
|
|
101
|
+
return "border-foreground/10";
|
|
102
|
+
case "accent":
|
|
103
|
+
return "border-accent-foreground";
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
switch (variant) {
|
|
107
|
+
case "default":
|
|
108
|
+
return "border-border";
|
|
109
|
+
case "muted":
|
|
110
|
+
return "border-muted";
|
|
111
|
+
case "accent":
|
|
112
|
+
return "border-primary";
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
}
|
|
64
116
|
function normalizePhoneNumber(input) {
|
|
65
117
|
const trimmed = input.trim();
|
|
66
118
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -974,7 +1026,7 @@ function ProcessNumberedServices({
|
|
|
974
1026
|
serviceBadgeClassName,
|
|
975
1027
|
capabilitiesClassName,
|
|
976
1028
|
background,
|
|
977
|
-
spacing,
|
|
1029
|
+
spacing = "py-6 md:py-32",
|
|
978
1030
|
pattern,
|
|
979
1031
|
patternOpacity,
|
|
980
1032
|
// Backwards compatibility
|
|
@@ -998,22 +1050,11 @@ function ProcessNumberedServices({
|
|
|
998
1050
|
className: actionClassName,
|
|
999
1051
|
...pressableProps
|
|
1000
1052
|
} = action;
|
|
1001
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
"mt-4 inline-flex items-center gap-2 p-0 text-primary hover:text-primary/80",
|
|
1007
|
-
actionClassName
|
|
1008
|
-
),
|
|
1009
|
-
...pressableProps,
|
|
1010
|
-
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1011
|
-
icon,
|
|
1012
|
-
label,
|
|
1013
|
-
iconAfter ?? /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
1014
|
-
] })
|
|
1015
|
-
}
|
|
1016
|
-
);
|
|
1053
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: cn(actionClassName), ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1054
|
+
icon,
|
|
1055
|
+
label,
|
|
1056
|
+
iconAfter && iconAfter
|
|
1057
|
+
] }) });
|
|
1017
1058
|
};
|
|
1018
1059
|
}, []);
|
|
1019
1060
|
const renderServices = React.useMemo(() => {
|
|
@@ -1032,7 +1073,10 @@ function ProcessNumberedServices({
|
|
|
1032
1073
|
"div",
|
|
1033
1074
|
{
|
|
1034
1075
|
className: cn(
|
|
1035
|
-
"flex size-16 items-center justify-center rounded-full border-2
|
|
1076
|
+
"flex size-16 items-center justify-center rounded-full border-2 text-xl font-bold transition-colors",
|
|
1077
|
+
getBorderColor(background, "accent"),
|
|
1078
|
+
getAccentColor(background),
|
|
1079
|
+
"bg-primary/5 group-hover:bg-primary group-hover:text-primary-foreground",
|
|
1036
1080
|
serviceBadgeClassName
|
|
1037
1081
|
),
|
|
1038
1082
|
children: service.number ?? `0${index + 1}`
|
|
@@ -1040,7 +1084,7 @@ function ProcessNumberedServices({
|
|
|
1040
1084
|
) }),
|
|
1041
1085
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "lg:col-span-4", children: [
|
|
1042
1086
|
service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title })),
|
|
1043
|
-
service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
1087
|
+
service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description })),
|
|
1044
1088
|
renderServiceAction(service)
|
|
1045
1089
|
] }),
|
|
1046
1090
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "lg:col-span-7", children: service.capabilities?.length ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1064,7 +1108,7 @@ function ProcessNumberedServices({
|
|
|
1064
1108
|
{
|
|
1065
1109
|
name: "lucide/check-circle-2",
|
|
1066
1110
|
size: 18,
|
|
1067
|
-
className:
|
|
1111
|
+
className: getAccentColor(background)
|
|
1068
1112
|
}
|
|
1069
1113
|
),
|
|
1070
1114
|
/* @__PURE__ */ jsxRuntime.jsx("span", { className: "text-sm font-medium", children: capability })
|
|
@@ -1078,7 +1122,16 @@ function ProcessNumberedServices({
|
|
|
1078
1122
|
},
|
|
1079
1123
|
index
|
|
1080
1124
|
)) });
|
|
1081
|
-
}, [
|
|
1125
|
+
}, [
|
|
1126
|
+
servicesSlot,
|
|
1127
|
+
services,
|
|
1128
|
+
background,
|
|
1129
|
+
servicesClassName,
|
|
1130
|
+
serviceItemClassName,
|
|
1131
|
+
serviceBadgeClassName,
|
|
1132
|
+
capabilitiesClassName,
|
|
1133
|
+
renderServiceAction
|
|
1134
|
+
]);
|
|
1082
1135
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1083
1136
|
Section,
|
|
1084
1137
|
{
|
|
@@ -1103,7 +1156,8 @@ function ProcessNumberedServices({
|
|
|
1103
1156
|
"p",
|
|
1104
1157
|
{
|
|
1105
1158
|
className: cn(
|
|
1106
|
-
"text-lg
|
|
1159
|
+
"text-lg",
|
|
1160
|
+
getTextColor(background, "muted"),
|
|
1107
1161
|
descriptionClassName
|
|
1108
1162
|
),
|
|
1109
1163
|
children: description
|
|
@@ -40,6 +40,58 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
40
40
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
41
41
|
return isDark ? "text-foreground" : "";
|
|
42
42
|
}
|
|
43
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
44
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
45
|
+
if (isDark) {
|
|
46
|
+
switch (variant) {
|
|
47
|
+
case "default":
|
|
48
|
+
return "text-foreground";
|
|
49
|
+
case "muted":
|
|
50
|
+
return "text-foreground/80";
|
|
51
|
+
case "subtle":
|
|
52
|
+
return "text-foreground/60";
|
|
53
|
+
case "accent":
|
|
54
|
+
return "text-accent-foreground";
|
|
55
|
+
}
|
|
56
|
+
} else {
|
|
57
|
+
switch (variant) {
|
|
58
|
+
case "default":
|
|
59
|
+
return "text-foreground";
|
|
60
|
+
case "muted":
|
|
61
|
+
return "text-muted-foreground";
|
|
62
|
+
case "subtle":
|
|
63
|
+
return "text-muted-foreground/70";
|
|
64
|
+
case "accent":
|
|
65
|
+
return "text-primary";
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
function getAccentColor(parentBg, options) {
|
|
70
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
71
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
72
|
+
}
|
|
73
|
+
function getBorderColor(parentBg, variant = "default", options) {
|
|
74
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
75
|
+
if (isDark) {
|
|
76
|
+
switch (variant) {
|
|
77
|
+
case "default":
|
|
78
|
+
return "border-foreground/20";
|
|
79
|
+
case "muted":
|
|
80
|
+
return "border-foreground/10";
|
|
81
|
+
case "accent":
|
|
82
|
+
return "border-accent-foreground";
|
|
83
|
+
}
|
|
84
|
+
} else {
|
|
85
|
+
switch (variant) {
|
|
86
|
+
case "default":
|
|
87
|
+
return "border-border";
|
|
88
|
+
case "muted":
|
|
89
|
+
return "border-muted";
|
|
90
|
+
case "accent":
|
|
91
|
+
return "border-primary";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
43
95
|
function normalizePhoneNumber(input) {
|
|
44
96
|
const trimmed = input.trim();
|
|
45
97
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -953,7 +1005,7 @@ function ProcessNumberedServices({
|
|
|
953
1005
|
serviceBadgeClassName,
|
|
954
1006
|
capabilitiesClassName,
|
|
955
1007
|
background,
|
|
956
|
-
spacing,
|
|
1008
|
+
spacing = "py-6 md:py-32",
|
|
957
1009
|
pattern,
|
|
958
1010
|
patternOpacity,
|
|
959
1011
|
// Backwards compatibility
|
|
@@ -977,22 +1029,11 @@ function ProcessNumberedServices({
|
|
|
977
1029
|
className: actionClassName,
|
|
978
1030
|
...pressableProps
|
|
979
1031
|
} = action;
|
|
980
|
-
return /* @__PURE__ */ jsx(
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
"mt-4 inline-flex items-center gap-2 p-0 text-primary hover:text-primary/80",
|
|
986
|
-
actionClassName
|
|
987
|
-
),
|
|
988
|
-
...pressableProps,
|
|
989
|
-
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
990
|
-
icon,
|
|
991
|
-
label,
|
|
992
|
-
iconAfter ?? /* @__PURE__ */ jsx(DynamicIcon, { name: "lucide/arrow-right", size: 16 })
|
|
993
|
-
] })
|
|
994
|
-
}
|
|
995
|
-
);
|
|
1032
|
+
return /* @__PURE__ */ jsx(Pressable, { asButton: true, className: cn(actionClassName), ...pressableProps, children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1033
|
+
icon,
|
|
1034
|
+
label,
|
|
1035
|
+
iconAfter && iconAfter
|
|
1036
|
+
] }) });
|
|
996
1037
|
};
|
|
997
1038
|
}, []);
|
|
998
1039
|
const renderServices = useMemo(() => {
|
|
@@ -1011,7 +1052,10 @@ function ProcessNumberedServices({
|
|
|
1011
1052
|
"div",
|
|
1012
1053
|
{
|
|
1013
1054
|
className: cn(
|
|
1014
|
-
"flex size-16 items-center justify-center rounded-full border-2
|
|
1055
|
+
"flex size-16 items-center justify-center rounded-full border-2 text-xl font-bold transition-colors",
|
|
1056
|
+
getBorderColor(background, "accent"),
|
|
1057
|
+
getAccentColor(background),
|
|
1058
|
+
"bg-primary/5 group-hover:bg-primary group-hover:text-primary-foreground",
|
|
1015
1059
|
serviceBadgeClassName
|
|
1016
1060
|
),
|
|
1017
1061
|
children: service.number ?? `0${index + 1}`
|
|
@@ -1019,7 +1063,7 @@ function ProcessNumberedServices({
|
|
|
1019
1063
|
) }),
|
|
1020
1064
|
/* @__PURE__ */ jsxs("div", { className: "lg:col-span-4", children: [
|
|
1021
1065
|
service.title && (typeof service.title === "string" ? /* @__PURE__ */ jsx("h3", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title }) : /* @__PURE__ */ jsx("div", { className: "mb-3 text-2xl font-semibold tracking-tight", children: service.title })),
|
|
1022
|
-
service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: "
|
|
1066
|
+
service.description && (typeof service.description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description }) : /* @__PURE__ */ jsx("div", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: service.description })),
|
|
1023
1067
|
renderServiceAction(service)
|
|
1024
1068
|
] }),
|
|
1025
1069
|
/* @__PURE__ */ jsx("div", { className: "lg:col-span-7", children: service.capabilities?.length ? /* @__PURE__ */ jsx(
|
|
@@ -1043,7 +1087,7 @@ function ProcessNumberedServices({
|
|
|
1043
1087
|
{
|
|
1044
1088
|
name: "lucide/check-circle-2",
|
|
1045
1089
|
size: 18,
|
|
1046
|
-
className:
|
|
1090
|
+
className: getAccentColor(background)
|
|
1047
1091
|
}
|
|
1048
1092
|
),
|
|
1049
1093
|
/* @__PURE__ */ jsx("span", { className: "text-sm font-medium", children: capability })
|
|
@@ -1057,7 +1101,16 @@ function ProcessNumberedServices({
|
|
|
1057
1101
|
},
|
|
1058
1102
|
index
|
|
1059
1103
|
)) });
|
|
1060
|
-
}, [
|
|
1104
|
+
}, [
|
|
1105
|
+
servicesSlot,
|
|
1106
|
+
services,
|
|
1107
|
+
background,
|
|
1108
|
+
servicesClassName,
|
|
1109
|
+
serviceItemClassName,
|
|
1110
|
+
serviceBadgeClassName,
|
|
1111
|
+
capabilitiesClassName,
|
|
1112
|
+
renderServiceAction
|
|
1113
|
+
]);
|
|
1061
1114
|
return /* @__PURE__ */ jsx(
|
|
1062
1115
|
Section,
|
|
1063
1116
|
{
|
|
@@ -1082,7 +1135,8 @@ function ProcessNumberedServices({
|
|
|
1082
1135
|
"p",
|
|
1083
1136
|
{
|
|
1084
1137
|
className: cn(
|
|
1085
|
-
"text-lg
|
|
1138
|
+
"text-lg",
|
|
1139
|
+
getTextColor(background, "muted"),
|
|
1086
1140
|
descriptionClassName
|
|
1087
1141
|
),
|
|
1088
1142
|
children: description
|