@opensite/ui 0.8.9 → 0.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/about-company-profile.cjs +32 -4
- package/dist/about-company-profile.js +32 -4
- package/dist/about-culture-tabs.cjs +38 -8
- package/dist/about-culture-tabs.js +38 -8
- package/dist/about-developer-profile.cjs +37 -5
- package/dist/about-developer-profile.js +37 -5
- package/dist/about-developer-story.cjs +31 -3
- package/dist/about-developer-story.js +31 -3
- package/dist/about-expandable-values.cjs +43 -9
- package/dist/about-expandable-values.js +43 -9
- package/dist/about-interactive-tabs.cjs +63 -4
- package/dist/about-interactive-tabs.js +63 -4
- package/dist/about-location-info-hero.cjs +28 -2
- package/dist/about-location-info-hero.js +28 -2
- package/dist/about-minimal-story.cjs +35 -4
- package/dist/about-minimal-story.js +35 -4
- package/dist/about-mission-dual-image.cjs +30 -2
- package/dist/about-mission-dual-image.js +30 -2
- package/dist/about-mission-features.cjs +36 -4
- package/dist/about-mission-features.js +36 -4
- package/dist/about-mission-principles.cjs +39 -6
- package/dist/about-mission-principles.js +39 -6
- package/dist/about-network-spotlight.cjs +33 -5
- package/dist/about-network-spotlight.js +33 -5
- package/dist/about-startup-team.cjs +47 -6
- package/dist/about-startup-team.js +47 -6
- package/dist/about-stats-showcase.cjs +31 -4
- package/dist/about-stats-showcase.js +31 -4
- package/dist/about-stats-sidebar.cjs +29 -3
- package/dist/about-stats-sidebar.js +29 -3
- package/dist/about-story-expertise.cjs +44 -8
- package/dist/about-story-expertise.js +44 -8
- package/dist/about-story-gallery.cjs +28 -1
- package/dist/about-story-gallery.js +28 -1
- package/dist/about-story-hero.cjs +36 -4
- package/dist/about-story-hero.js +36 -4
- package/dist/about-streamline-team.cjs +32 -4
- package/dist/about-streamline-team.js +32 -4
- package/dist/about-vision-gallery.cjs +32 -3
- package/dist/about-vision-gallery.js +32 -3
- package/dist/alternating-blocks.cjs +5 -1
- package/dist/alternating-blocks.js +5 -1
- package/dist/banner-announcement-dismissible.cjs +377 -1
- package/dist/banner-announcement-dismissible.d.cts +7 -1
- package/dist/banner-announcement-dismissible.d.ts +7 -1
- package/dist/banner-announcement-dismissible.js +378 -2
- package/dist/banner-countdown-sale.cjs +388 -8
- package/dist/banner-countdown-sale.d.cts +11 -1
- package/dist/banner-countdown-sale.d.ts +11 -1
- package/dist/banner-countdown-sale.js +379 -3
- package/dist/banner-delivery-countdown.cjs +377 -1
- package/dist/banner-delivery-countdown.d.cts +11 -1
- package/dist/banner-delivery-countdown.d.ts +11 -1
- package/dist/banner-delivery-countdown.js +378 -2
- package/dist/banner-event-promo.cjs +377 -1
- package/dist/banner-event-promo.d.cts +7 -1
- package/dist/banner-event-promo.d.ts +7 -1
- package/dist/banner-event-promo.js +378 -2
- package/dist/banner-floating-offer.cjs +379 -3
- package/dist/banner-floating-offer.d.cts +7 -1
- package/dist/banner-floating-offer.d.ts +7 -1
- package/dist/banner-floating-offer.js +380 -4
- package/dist/banner-gdpr-rights.cjs +398 -31
- package/dist/banner-gdpr-rights.d.cts +7 -1
- package/dist/banner-gdpr-rights.d.ts +7 -1
- package/dist/banner-gdpr-rights.js +399 -32
- package/dist/banner-privacy-notice.cjs +399 -32
- package/dist/banner-privacy-notice.d.cts +7 -1
- package/dist/banner-privacy-notice.d.ts +7 -1
- package/dist/banner-privacy-notice.js +400 -33
- package/dist/banner-promo-cta.cjs +382 -12
- package/dist/banner-promo-cta.d.cts +7 -1
- package/dist/banner-promo-cta.d.ts +7 -1
- package/dist/banner-promo-cta.js +383 -13
- package/dist/banner-social-follow.cjs +395 -28
- package/dist/banner-social-follow.d.cts +7 -1
- package/dist/banner-social-follow.d.ts +7 -1
- package/dist/banner-social-follow.js +396 -29
- package/dist/banner-survey-incentive.cjs +377 -1
- package/dist/banner-survey-incentive.d.cts +7 -1
- package/dist/banner-survey-incentive.d.ts +7 -1
- package/dist/banner-survey-incentive.js +378 -2
- package/dist/community-initiatives.cjs +43 -10
- package/dist/community-initiatives.js +43 -10
- package/dist/components.cjs +76 -36
- package/dist/components.js +76 -36
- package/dist/contact-floating-banner.cjs +378 -2
- package/dist/contact-floating-banner.d.cts +7 -1
- package/dist/contact-floating-banner.d.ts +7 -1
- package/dist/contact-floating-banner.js +379 -2
- package/dist/cta-accent-background.cjs +28 -1
- package/dist/cta-accent-background.js +28 -1
- package/dist/cta-app-download-newsletter.cjs +30 -2
- package/dist/cta-app-download-newsletter.js +30 -2
- package/dist/cta-documentation-links.cjs +28 -2
- package/dist/cta-documentation-links.js +28 -2
- package/dist/cta-feature-cards-grid.cjs +34 -3
- package/dist/cta-feature-cards-grid.js +34 -3
- package/dist/cta-feature-checklist.cjs +27 -1
- package/dist/cta-feature-checklist.js +27 -1
- package/dist/cta-feature-list.cjs +33 -2
- package/dist/cta-feature-list.js +33 -2
- package/dist/cta-gradient-logos-floating.cjs +28 -1
- package/dist/cta-gradient-logos-floating.js +28 -1
- package/dist/cta-minimal-separator.cjs +27 -1
- package/dist/cta-minimal-separator.js +27 -1
- package/dist/cta-platform-demo.cjs +28 -1
- package/dist/cta-platform-demo.js +28 -1
- package/dist/cta-simple-centered.cjs +28 -1
- package/dist/cta-simple-centered.js +28 -1
- package/dist/cta-split-gradient-image.cjs +28 -1
- package/dist/cta-split-gradient-image.js +28 -1
- package/dist/cta-split-image-logos.cjs +29 -2
- package/dist/cta-split-image-logos.js +29 -2
- package/dist/cta-split-image.cjs +29 -2
- package/dist/cta-split-image.js +29 -2
- package/dist/cta-stacked-cards.cjs +28 -1
- package/dist/cta-stacked-cards.js +28 -1
- package/dist/faq-badge-support.cjs +33 -5
- package/dist/faq-badge-support.js +33 -5
- package/dist/faq-bordered-badge.cjs +31 -3
- package/dist/faq-bordered-badge.js +31 -3
- package/dist/faq-card-categories.cjs +60 -4
- package/dist/faq-card-categories.js +60 -4
- package/dist/faq-categorized-sections.cjs +31 -3
- package/dist/faq-categorized-sections.js +31 -3
- package/dist/faq-centered-accordion.cjs +31 -3
- package/dist/faq-centered-accordion.js +31 -3
- package/dist/faq-gradient-categories.cjs +31 -3
- package/dist/faq-gradient-categories.js +31 -3
- package/dist/faq-icon-benefits.cjs +40 -5
- package/dist/faq-icon-benefits.js +40 -5
- package/dist/faq-muted-cards.cjs +29 -2
- package/dist/faq-muted-cards.js +29 -2
- package/dist/faq-numbered-grid.cjs +32 -3
- package/dist/faq-numbered-grid.js +32 -3
- package/dist/faq-numbered-list.cjs +32 -3
- package/dist/faq-numbered-list.js +32 -3
- package/dist/faq-profile-sidebar.cjs +36 -6
- package/dist/faq-profile-sidebar.js +36 -6
- package/dist/faq-sidebar-navigation.cjs +30 -3
- package/dist/faq-sidebar-navigation.js +30 -3
- package/dist/faq-simple-accordion.cjs +29 -2
- package/dist/faq-simple-accordion.js +29 -2
- package/dist/feature-accordion-image.cjs +28 -2
- package/dist/feature-accordion-image.js +28 -2
- package/dist/feature-badge-grid-six.cjs +27 -1
- package/dist/feature-badge-grid-six.js +27 -1
- package/dist/feature-bento-image-grid.cjs +27 -1
- package/dist/feature-bento-image-grid.js +27 -1
- package/dist/feature-bento-utilities.cjs +56 -4
- package/dist/feature-bento-utilities.js +56 -4
- package/dist/feature-capabilities-grid.cjs +29 -3
- package/dist/feature-capabilities-grid.js +29 -3
- package/dist/feature-card-grid-linked.cjs +29 -2
- package/dist/feature-card-grid-linked.js +29 -2
- package/dist/feature-carousel-progress.cjs +28 -2
- package/dist/feature-carousel-progress.js +28 -2
- package/dist/feature-category-image-cards.cjs +28 -2
- package/dist/feature-category-image-cards.js +28 -2
- package/dist/feature-checklist-image.cjs +30 -2
- package/dist/feature-checklist-image.js +30 -2
- package/dist/feature-checklist-three-column.cjs +35 -5
- package/dist/feature-checklist-three-column.js +35 -5
- package/dist/feature-icon-grid-accent.cjs +28 -2
- package/dist/feature-icon-grid-accent.js +28 -2
- package/dist/feature-icon-grid-bordered.cjs +9 -4
- package/dist/feature-icon-grid-bordered.js +9 -4
- package/dist/feature-icon-grid-muted.cjs +28 -2
- package/dist/feature-icon-grid-muted.js +28 -2
- package/dist/feature-icon-tabs-content.cjs +56 -5
- package/dist/feature-icon-tabs-content.js +56 -5
- package/dist/feature-image-cards-three-column.cjs +27 -1
- package/dist/feature-image-cards-three-column.js +27 -1
- package/dist/feature-integration-cards.cjs +28 -2
- package/dist/feature-integration-cards.js +28 -2
- package/dist/feature-pattern-grid-links.cjs +28 -2
- package/dist/feature-pattern-grid-links.js +28 -2
- package/dist/feature-utility-cards-grid.cjs +9 -4
- package/dist/feature-utility-cards-grid.js +9 -4
- package/dist/footer-comprehensive-links.cjs +231 -151
- package/dist/footer-comprehensive-links.js +231 -151
- package/dist/hero-ad-campaign-expert.cjs +24 -2
- package/dist/hero-ad-campaign-expert.js +24 -2
- package/dist/hero-adaptable-product-grid.cjs +27 -1
- package/dist/hero-adaptable-product-grid.js +27 -1
- package/dist/hero-ai-powered-carousel.cjs +27 -1
- package/dist/hero-ai-powered-carousel.js +27 -1
- package/dist/hero-announcement-badge.cjs +27 -1
- package/dist/hero-announcement-badge.js +27 -1
- package/dist/hero-architecture-fullscreen.cjs +50 -2
- package/dist/hero-architecture-fullscreen.js +50 -2
- package/dist/hero-badge-image-split.cjs +27 -1
- package/dist/hero-badge-image-split.js +27 -1
- package/dist/hero-business-carousel-dots.cjs +27 -1
- package/dist/hero-business-carousel-dots.js +27 -1
- package/dist/hero-centered-gradient-cta.cjs +28 -2
- package/dist/hero-centered-gradient-cta.js +28 -2
- package/dist/hero-centered-image-grid.cjs +27 -1
- package/dist/hero-centered-image-grid.js +27 -1
- package/dist/hero-centered-screenshot.cjs +50 -2
- package/dist/hero-centered-screenshot.js +50 -2
- package/dist/hero-coming-soon-countdown.cjs +37 -7
- package/dist/hero-coming-soon-countdown.js +37 -7
- package/dist/hero-community-survey-cta.cjs +27 -1
- package/dist/hero-community-survey-cta.js +27 -1
- package/dist/hero-conversation-intelligence.cjs +50 -2
- package/dist/hero-conversation-intelligence.js +50 -2
- package/dist/hero-conversion-video-play.cjs +55 -3
- package/dist/hero-conversion-video-play.js +55 -3
- package/dist/hero-creative-studio-stacked.cjs +28 -2
- package/dist/hero-creative-studio-stacked.js +28 -2
- package/dist/hero-crm-streamlined.cjs +27 -1
- package/dist/hero-crm-streamlined.js +27 -1
- package/dist/hero-customer-support-layered.cjs +51 -3
- package/dist/hero-customer-support-layered.js +51 -3
- package/dist/hero-dashed-border-features.cjs +27 -1
- package/dist/hero-dashed-border-features.js +27 -1
- package/dist/hero-design-showcase-logos.cjs +27 -1
- package/dist/hero-design-showcase-logos.js +27 -1
- package/dist/hero-design-system-3d.cjs +32 -2
- package/dist/hero-design-system-3d.js +32 -2
- package/dist/hero-developer-tools-code.cjs +27 -1
- package/dist/hero-developer-tools-code.js +27 -1
- package/dist/hero-digital-agency-fullscreen.cjs +33 -3
- package/dist/hero-digital-agency-fullscreen.js +33 -3
- package/dist/hero-ecommerce-product-showcase.cjs +32 -6
- package/dist/hero-ecommerce-product-showcase.js +32 -6
- package/dist/hero-enterprise-security.cjs +34 -4
- package/dist/hero-enterprise-security.js +34 -4
- package/dist/hero-event-registration.cjs +35 -5
- package/dist/hero-event-registration.js +35 -5
- package/dist/hero-feature-cards-grid.cjs +82 -4
- package/dist/hero-feature-cards-grid.js +82 -4
- package/dist/hero-gradient-avatars-rating.cjs +30 -4
- package/dist/hero-gradient-avatars-rating.js +30 -4
- package/dist/hero-gradient-client-focused.cjs +27 -1
- package/dist/hero-gradient-client-focused.js +27 -1
- package/dist/hero-grid-pattern-efficiency.cjs +28 -2
- package/dist/hero-grid-pattern-efficiency.js +28 -2
- package/dist/hero-grid-pattern-solutions.cjs +27 -1
- package/dist/hero-grid-pattern-solutions.js +27 -1
- package/dist/hero-image-left-content.cjs +27 -1
- package/dist/hero-image-left-content.js +27 -1
- package/dist/hero-innovation-image-grid.cjs +27 -1
- package/dist/hero-innovation-image-grid.js +27 -1
- package/dist/hero-logo-centered-screenshot.cjs +27 -1
- package/dist/hero-logo-centered-screenshot.js +27 -1
- package/dist/hero-marketplace-scattered-images.cjs +27 -1
- package/dist/hero-marketplace-scattered-images.js +27 -1
- package/dist/hero-mentorship-video-split.cjs +7 -3
- package/dist/hero-mentorship-video-split.js +7 -3
- package/dist/hero-minimal-centered-dark.cjs +55 -3
- package/dist/hero-minimal-centered-dark.js +55 -3
- package/dist/hero-mobile-app-download.cjs +34 -4
- package/dist/hero-mobile-app-download.js +34 -4
- package/dist/hero-newsletter-minimal.cjs +29 -3
- package/dist/hero-newsletter-minimal.js +29 -3
- package/dist/hero-overlay-cta-grid.cjs +33 -3
- package/dist/hero-overlay-cta-grid.js +33 -3
- package/dist/hero-pattern-badge-logos.cjs +28 -2
- package/dist/hero-pattern-badge-logos.js +28 -2
- package/dist/hero-pattern-logo-tech-stack.cjs +33 -3
- package/dist/hero-pattern-logo-tech-stack.js +33 -3
- package/dist/hero-platform-features-grid.cjs +28 -2
- package/dist/hero-platform-features-grid.js +28 -2
- package/dist/hero-portfolio-creative.cjs +29 -3
- package/dist/hero-portfolio-creative.js +29 -3
- package/dist/hero-pricing-comparison.cjs +52 -4
- package/dist/hero-pricing-comparison.js +52 -4
- package/dist/hero-product-showcase-floating.cjs +34 -4
- package/dist/hero-product-showcase-floating.js +34 -4
- package/dist/hero-productivity-launcher-video.cjs +29 -3
- package/dist/hero-productivity-launcher-video.js +29 -3
- package/dist/hero-saas-dashboard-preview.cjs +34 -4
- package/dist/hero-saas-dashboard-preview.js +34 -4
- package/dist/hero-shared-inbox-layered.cjs +51 -3
- package/dist/hero-shared-inbox-layered.js +51 -3
- package/dist/hero-simple-centered-image.cjs +27 -1
- package/dist/hero-simple-centered-image.js +27 -1
- package/dist/hero-software-growth-video-dialog.cjs +50 -2
- package/dist/hero-software-growth-video-dialog.js +50 -2
- package/dist/hero-spiral-pattern-cards.cjs +28 -2
- package/dist/hero-spiral-pattern-cards.js +28 -2
- package/dist/hero-split-icon-cards.cjs +34 -4
- package/dist/hero-split-icon-cards.js +34 -4
- package/dist/hero-split-image-newsletter.cjs +28 -2
- package/dist/hero-split-image-newsletter.js +28 -2
- package/dist/hero-split-spiral-shapes.cjs +28 -2
- package/dist/hero-split-spiral-shapes.js +28 -2
- package/dist/hero-startup-launch-cta.cjs +28 -2
- package/dist/hero-startup-launch-cta.js +28 -2
- package/dist/hero-stats-social-proof.cjs +34 -4
- package/dist/hero-stats-social-proof.js +34 -4
- package/dist/hero-tech-carousel.cjs +27 -1
- package/dist/hero-tech-carousel.js +27 -1
- package/dist/hero-ui-library-showcase.cjs +27 -1
- package/dist/hero-ui-library-showcase.js +27 -1
- package/dist/hero-video-background-dark.cjs +28 -2
- package/dist/hero-video-background-dark.js +28 -2
- package/dist/hero-video-dialog-gradient.cjs +27 -1
- package/dist/hero-video-dialog-gradient.js +27 -1
- package/dist/hero-welcome-asymmetric-images.cjs +30 -2
- package/dist/hero-welcome-asymmetric-images.js +30 -2
- package/dist/index.cjs +104 -36
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +102 -37
- package/dist/link-page-bento-layout.cjs +57 -28
- package/dist/link-page-bento-layout.d.cts +1 -5
- package/dist/link-page-bento-layout.d.ts +1 -5
- package/dist/link-page-bento-layout.js +57 -28
- package/dist/link-page-grid-cards.cjs +52 -23
- package/dist/link-page-grid-cards.d.cts +1 -5
- package/dist/link-page-grid-cards.d.ts +1 -5
- package/dist/link-page-grid-cards.js +52 -23
- package/dist/link-page-minimal-profile.cjs +46 -18
- package/dist/link-page-minimal-profile.d.cts +1 -5
- package/dist/link-page-minimal-profile.d.ts +1 -5
- package/dist/link-page-minimal-profile.js +46 -18
- package/dist/link-page-newsletter-social.cjs +53 -28
- package/dist/link-page-newsletter-social.d.cts +1 -5
- package/dist/link-page-newsletter-social.d.ts +1 -5
- package/dist/link-page-newsletter-social.js +53 -28
- package/dist/link-tree-block.cjs +122 -34
- package/dist/link-tree-block.d.cts +1 -8
- package/dist/link-tree-block.d.ts +1 -8
- package/dist/link-tree-block.js +122 -34
- package/dist/media-hover-ctas.cjs +28 -2
- package/dist/media-hover-ctas.js +28 -2
- package/dist/process-expandable-timeline.cjs +66 -10
- package/dist/process-expandable-timeline.js +66 -10
- package/dist/process-hover-cards.cjs +39 -6
- package/dist/process-hover-cards.js +39 -6
- package/dist/process-icon-timeline.cjs +53 -3
- package/dist/process-icon-timeline.js +53 -3
- package/dist/process-mission-principles.cjs +44 -6
- package/dist/process-mission-principles.js +44 -6
- package/dist/process-numbered-services.cjs +76 -22
- package/dist/process-numbered-services.js +76 -22
- package/dist/process-roadmap-timeline.cjs +63 -9
- package/dist/process-roadmap-timeline.js +63 -9
- package/dist/process-scroll-image.cjs +71 -32
- package/dist/process-scroll-image.js +71 -32
- package/dist/process-steps-grid.cjs +61 -5
- package/dist/process-steps-grid.js +61 -5
- package/dist/process-sticky-steps.cjs +49 -69
- package/dist/process-sticky-steps.d.cts +1 -13
- package/dist/process-sticky-steps.d.ts +1 -13
- package/dist/process-sticky-steps.js +49 -69
- package/dist/project-zigzag-layout.cjs +379 -3
- package/dist/project-zigzag-layout.d.cts +8 -1
- package/dist/project-zigzag-layout.d.ts +8 -1
- package/dist/project-zigzag-layout.js +380 -3
- package/dist/registry.cjs +2759 -2476
- package/dist/registry.js +2759 -2476
- package/dist/team-media-showcase.cjs +59 -4
- package/dist/team-media-showcase.d.cts +4 -0
- package/dist/team-media-showcase.d.ts +4 -0
- package/dist/team-media-showcase.js +59 -4
- package/dist/testimonials-carousel-image.d.cts +6 -0
- package/dist/testimonials-carousel-image.d.ts +6 -0
- package/dist/utils.cjs +58 -0
- package/dist/utils.d.cts +113 -1
- package/dist/utils.d.ts +113 -1
- package/dist/utils.js +56 -1
- package/package.json +1 -1
|
@@ -62,6 +62,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:")) {
|
|
@@ -910,7 +936,7 @@ function AboutCompanyProfile({
|
|
|
910
936
|
),
|
|
911
937
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
912
938
|
typeof breakout.title === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-lg font-semibold", children: breakout.title }) : breakout.title,
|
|
913
|
-
typeof breakout.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "
|
|
939
|
+
typeof breakout.description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: getTextColor(background, "muted"), children: breakout.description }) : breakout.description
|
|
914
940
|
] }),
|
|
915
941
|
breakout.action && /* @__PURE__ */ jsxRuntime.jsx(
|
|
916
942
|
Pressable,
|
|
@@ -929,7 +955,7 @@ function AboutCompanyProfile({
|
|
|
929
955
|
]
|
|
930
956
|
}
|
|
931
957
|
);
|
|
932
|
-
}, [breakoutSlot, breakout, breakoutClassName, optixFlowConfig]);
|
|
958
|
+
}, [breakoutSlot, breakout, breakoutClassName, optixFlowConfig, background]);
|
|
933
959
|
const companiesContent = React.useMemo(() => {
|
|
934
960
|
if (companiesSlot) return companiesSlot;
|
|
935
961
|
if (!companies || companies.length === 0)
|
|
@@ -1010,7 +1036,8 @@ function AboutCompanyProfile({
|
|
|
1010
1036
|
"p",
|
|
1011
1037
|
{
|
|
1012
1038
|
className: cn(
|
|
1013
|
-
"text-
|
|
1039
|
+
"text-balance",
|
|
1040
|
+
getTextColor(background, "muted"),
|
|
1014
1041
|
descriptionClassName
|
|
1015
1042
|
),
|
|
1016
1043
|
children: description
|
|
@@ -1072,7 +1099,8 @@ function AboutCompanyProfile({
|
|
|
1072
1099
|
"p",
|
|
1073
1100
|
{
|
|
1074
1101
|
className: cn(
|
|
1075
|
-
"max-w-xl
|
|
1102
|
+
"max-w-xl",
|
|
1103
|
+
getTextColor(background, "muted"),
|
|
1076
1104
|
achievementsDescriptionClassName
|
|
1077
1105
|
),
|
|
1078
1106
|
children: achievementsDescription
|
|
@@ -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:")) {
|
|
@@ -889,7 +915,7 @@ function AboutCompanyProfile({
|
|
|
889
915
|
),
|
|
890
916
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
891
917
|
typeof breakout.title === "string" ? /* @__PURE__ */ jsx("p", { className: "mb-2 text-lg font-semibold", children: breakout.title }) : breakout.title,
|
|
892
|
-
typeof breakout.description === "string" ? /* @__PURE__ */ jsx("p", { className: "
|
|
918
|
+
typeof breakout.description === "string" ? /* @__PURE__ */ jsx("p", { className: getTextColor(background, "muted"), children: breakout.description }) : breakout.description
|
|
893
919
|
] }),
|
|
894
920
|
breakout.action && /* @__PURE__ */ jsx(
|
|
895
921
|
Pressable,
|
|
@@ -908,7 +934,7 @@ function AboutCompanyProfile({
|
|
|
908
934
|
]
|
|
909
935
|
}
|
|
910
936
|
);
|
|
911
|
-
}, [breakoutSlot, breakout, breakoutClassName, optixFlowConfig]);
|
|
937
|
+
}, [breakoutSlot, breakout, breakoutClassName, optixFlowConfig, background]);
|
|
912
938
|
const companiesContent = useMemo(() => {
|
|
913
939
|
if (companiesSlot) return companiesSlot;
|
|
914
940
|
if (!companies || companies.length === 0)
|
|
@@ -989,7 +1015,8 @@ function AboutCompanyProfile({
|
|
|
989
1015
|
"p",
|
|
990
1016
|
{
|
|
991
1017
|
className: cn(
|
|
992
|
-
"text-
|
|
1018
|
+
"text-balance",
|
|
1019
|
+
getTextColor(background, "muted"),
|
|
993
1020
|
descriptionClassName
|
|
994
1021
|
),
|
|
995
1022
|
children: description
|
|
@@ -1051,7 +1078,8 @@ function AboutCompanyProfile({
|
|
|
1051
1078
|
"p",
|
|
1052
1079
|
{
|
|
1053
1080
|
className: cn(
|
|
1054
|
-
"max-w-xl
|
|
1081
|
+
"max-w-xl",
|
|
1082
|
+
getTextColor(background, "muted"),
|
|
1055
1083
|
achievementsDescriptionClassName
|
|
1056
1084
|
),
|
|
1057
1085
|
children: achievementsDescription
|
|
@@ -34,6 +34,36 @@ var TabsPrimitive__namespace = /*#__PURE__*/_interopNamespace(TabsPrimitive);
|
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
37
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
38
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
39
|
+
if (isDark) {
|
|
40
|
+
switch (variant) {
|
|
41
|
+
case "default":
|
|
42
|
+
return "text-foreground";
|
|
43
|
+
case "muted":
|
|
44
|
+
return "text-foreground/80";
|
|
45
|
+
case "subtle":
|
|
46
|
+
return "text-foreground/60";
|
|
47
|
+
case "accent":
|
|
48
|
+
return "text-accent-foreground";
|
|
49
|
+
}
|
|
50
|
+
} else {
|
|
51
|
+
switch (variant) {
|
|
52
|
+
case "default":
|
|
53
|
+
return "text-foreground";
|
|
54
|
+
case "muted":
|
|
55
|
+
return "text-muted-foreground";
|
|
56
|
+
case "subtle":
|
|
57
|
+
return "text-muted-foreground/70";
|
|
58
|
+
case "accent":
|
|
59
|
+
return "text-primary";
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
function getAccentColor(parentBg, options) {
|
|
64
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
65
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
66
|
+
}
|
|
37
67
|
function normalizePhoneNumber(input) {
|
|
38
68
|
const trimmed = input.trim();
|
|
39
69
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1089,9 +1119,9 @@ function AboutCultureTabs({
|
|
|
1089
1119
|
containerClassName,
|
|
1090
1120
|
children: [
|
|
1091
1121
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mb-12 max-w-3xl space-y-4 text-center", headerClassName), children: [
|
|
1092
|
-
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm
|
|
1122
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm", getAccentColor(background), badgeClassName), children: badgeText }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: badgeClassName, children: badgeText })),
|
|
1093
1123
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
1094
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("
|
|
1124
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
1095
1125
|
] }),
|
|
1096
1126
|
aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1097
1127
|
Tabs,
|
|
@@ -1105,7 +1135,7 @@ function AboutCultureTabs({
|
|
|
1105
1135
|
TabsTrigger,
|
|
1106
1136
|
{
|
|
1107
1137
|
value: aspect.id,
|
|
1108
|
-
className: "px-3 py-2.5 data-[state=active]
|
|
1138
|
+
className: cn("px-3 py-2.5", `data-[state=active]:${getAccentColor(background)}`, "data-[state=active]:text-primary-foreground"),
|
|
1109
1139
|
children: aspect.title
|
|
1110
1140
|
},
|
|
1111
1141
|
aspect.id
|
|
@@ -1114,7 +1144,7 @@ function AboutCultureTabs({
|
|
|
1114
1144
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
|
|
1115
1145
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "space-y-4", children: [
|
|
1116
1146
|
/* @__PURE__ */ jsxRuntime.jsx("h3", { className: "text-2xl font-bold tracking-tight", children: aspect.title }),
|
|
1117
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "leading-relaxed
|
|
1147
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: aspect.description })
|
|
1118
1148
|
] }),
|
|
1119
1149
|
/* @__PURE__ */ jsxRuntime.jsx(Card, { className: "border-0 bg-gradient-to-br from-primary/5 to-primary/10 p-0", children: /* @__PURE__ */ jsxRuntime.jsxs(CardContent, { className: "space-y-4 p-6 pt-6", children: [
|
|
1120
1150
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1122,10 +1152,10 @@ function AboutCultureTabs({
|
|
|
1122
1152
|
{
|
|
1123
1153
|
name: "lucide/quote",
|
|
1124
1154
|
size: 32,
|
|
1125
|
-
className: "
|
|
1155
|
+
className: cn(getAccentColor(background), "opacity-40")
|
|
1126
1156
|
}
|
|
1127
1157
|
),
|
|
1128
|
-
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: "italic
|
|
1158
|
+
/* @__PURE__ */ jsxRuntime.jsxs("p", { className: cn("italic", getTextColor(background, "muted")), children: [
|
|
1129
1159
|
'"',
|
|
1130
1160
|
aspect.testimonial.quote,
|
|
1131
1161
|
'"'
|
|
@@ -1142,7 +1172,7 @@ function AboutCultureTabs({
|
|
|
1142
1172
|
) }),
|
|
1143
1173
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1144
1174
|
/* @__PURE__ */ jsxRuntime.jsx("h4", { className: "text-sm font-medium", children: aspect.testimonial.author }),
|
|
1145
|
-
/* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-xs
|
|
1175
|
+
/* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("text-xs", getTextColor(background, "muted")), children: aspect.testimonial.role })
|
|
1146
1176
|
] })
|
|
1147
1177
|
] })
|
|
1148
1178
|
] }) })
|
|
@@ -1171,7 +1201,7 @@ function AboutCultureTabs({
|
|
|
1171
1201
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-8 md:grid-cols-2", children: [
|
|
1172
1202
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
1173
1203
|
ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", ctaHeadingClassName), children: ctaHeading })),
|
|
1174
|
-
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6
|
|
1204
|
+
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6", getTextColor(background, "muted"), ctaDescriptionClassName), children: ctaDescription }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-6", ctaDescriptionClassName), children: ctaDescription })),
|
|
1175
1205
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex gap-4", actionsClassName), children: actionsContent })
|
|
1176
1206
|
] }),
|
|
1177
1207
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "grid grid-cols-3 gap-2", children: ctaImagesContent })
|
|
@@ -12,6 +12,36 @@ import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
|
12
12
|
function cn(...inputs) {
|
|
13
13
|
return twMerge(clsx(inputs));
|
|
14
14
|
}
|
|
15
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
16
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
17
|
+
if (isDark) {
|
|
18
|
+
switch (variant) {
|
|
19
|
+
case "default":
|
|
20
|
+
return "text-foreground";
|
|
21
|
+
case "muted":
|
|
22
|
+
return "text-foreground/80";
|
|
23
|
+
case "subtle":
|
|
24
|
+
return "text-foreground/60";
|
|
25
|
+
case "accent":
|
|
26
|
+
return "text-accent-foreground";
|
|
27
|
+
}
|
|
28
|
+
} else {
|
|
29
|
+
switch (variant) {
|
|
30
|
+
case "default":
|
|
31
|
+
return "text-foreground";
|
|
32
|
+
case "muted":
|
|
33
|
+
return "text-muted-foreground";
|
|
34
|
+
case "subtle":
|
|
35
|
+
return "text-muted-foreground/70";
|
|
36
|
+
case "accent":
|
|
37
|
+
return "text-primary";
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
function getAccentColor(parentBg, options) {
|
|
42
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
43
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
44
|
+
}
|
|
15
45
|
function normalizePhoneNumber(input) {
|
|
16
46
|
const trimmed = input.trim();
|
|
17
47
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1067,9 +1097,9 @@ function AboutCultureTabs({
|
|
|
1067
1097
|
containerClassName,
|
|
1068
1098
|
children: [
|
|
1069
1099
|
/* @__PURE__ */ jsxs("div", { className: cn("mx-auto mb-12 max-w-3xl space-y-4 text-center", headerClassName), children: [
|
|
1070
|
-
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm
|
|
1100
|
+
badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx("div", { className: cn("inline-block rounded-lg bg-primary/10 px-3 py-1 text-sm", getAccentColor(background), badgeClassName), children: badgeText }) : /* @__PURE__ */ jsx("div", { className: badgeClassName, children: badgeText })),
|
|
1071
1101
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-3xl font-bold tracking-tight md:text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: headingClassName, children: heading })),
|
|
1072
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("
|
|
1102
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn(getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
|
|
1073
1103
|
] }),
|
|
1074
1104
|
aspectsSlot ? aspectsSlot : resolvedAspects.length > 0 ? /* @__PURE__ */ jsxs(
|
|
1075
1105
|
Tabs,
|
|
@@ -1083,7 +1113,7 @@ function AboutCultureTabs({
|
|
|
1083
1113
|
TabsTrigger,
|
|
1084
1114
|
{
|
|
1085
1115
|
value: aspect.id,
|
|
1086
|
-
className: "px-3 py-2.5 data-[state=active]
|
|
1116
|
+
className: cn("px-3 py-2.5", `data-[state=active]:${getAccentColor(background)}`, "data-[state=active]:text-primary-foreground"),
|
|
1087
1117
|
children: aspect.title
|
|
1088
1118
|
},
|
|
1089
1119
|
aspect.id
|
|
@@ -1092,7 +1122,7 @@ function AboutCultureTabs({
|
|
|
1092
1122
|
/* @__PURE__ */ jsxs("div", { className: "grid gap-6 md:grid-cols-2", children: [
|
|
1093
1123
|
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
1094
1124
|
/* @__PURE__ */ jsx("h3", { className: "text-2xl font-bold tracking-tight", children: aspect.title }),
|
|
1095
|
-
/* @__PURE__ */ jsx("p", { className: "leading-relaxed
|
|
1125
|
+
/* @__PURE__ */ jsx("p", { className: cn("leading-relaxed", getTextColor(background, "muted")), children: aspect.description })
|
|
1096
1126
|
] }),
|
|
1097
1127
|
/* @__PURE__ */ jsx(Card, { className: "border-0 bg-gradient-to-br from-primary/5 to-primary/10 p-0", children: /* @__PURE__ */ jsxs(CardContent, { className: "space-y-4 p-6 pt-6", children: [
|
|
1098
1128
|
/* @__PURE__ */ jsx(
|
|
@@ -1100,10 +1130,10 @@ function AboutCultureTabs({
|
|
|
1100
1130
|
{
|
|
1101
1131
|
name: "lucide/quote",
|
|
1102
1132
|
size: 32,
|
|
1103
|
-
className: "
|
|
1133
|
+
className: cn(getAccentColor(background), "opacity-40")
|
|
1104
1134
|
}
|
|
1105
1135
|
),
|
|
1106
|
-
/* @__PURE__ */ jsxs("p", { className: "italic
|
|
1136
|
+
/* @__PURE__ */ jsxs("p", { className: cn("italic", getTextColor(background, "muted")), children: [
|
|
1107
1137
|
'"',
|
|
1108
1138
|
aspect.testimonial.quote,
|
|
1109
1139
|
'"'
|
|
@@ -1120,7 +1150,7 @@ function AboutCultureTabs({
|
|
|
1120
1150
|
) }),
|
|
1121
1151
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1122
1152
|
/* @__PURE__ */ jsx("h4", { className: "text-sm font-medium", children: aspect.testimonial.author }),
|
|
1123
|
-
/* @__PURE__ */ jsx("p", { className: "text-xs
|
|
1153
|
+
/* @__PURE__ */ jsx("p", { className: cn("text-xs", getTextColor(background, "muted")), children: aspect.testimonial.role })
|
|
1124
1154
|
] })
|
|
1125
1155
|
] })
|
|
1126
1156
|
] }) })
|
|
@@ -1149,7 +1179,7 @@ function AboutCultureTabs({
|
|
|
1149
1179
|
/* @__PURE__ */ jsxs("div", { className: "grid items-center gap-8 md:grid-cols-2", children: [
|
|
1150
1180
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
1151
1181
|
ctaHeading && (typeof ctaHeading === "string" ? /* @__PURE__ */ jsx("h3", { className: cn("mb-4 text-2xl font-bold", ctaHeadingClassName), children: ctaHeading }) : /* @__PURE__ */ jsx("div", { className: cn("mb-4", ctaHeadingClassName), children: ctaHeading })),
|
|
1152
|
-
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6
|
|
1182
|
+
ctaDescription && (typeof ctaDescription === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mb-6", getTextColor(background, "muted"), ctaDescriptionClassName), children: ctaDescription }) : /* @__PURE__ */ jsx("div", { className: cn("mb-6", ctaDescriptionClassName), children: ctaDescription })),
|
|
1153
1183
|
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsx("div", { className: cn("flex gap-4", actionsClassName), children: actionsContent })
|
|
1154
1184
|
] }),
|
|
1155
1185
|
/* @__PURE__ */ jsx("div", { className: "grid grid-cols-3 gap-2", children: ctaImagesContent })
|
|
@@ -62,6 +62,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
62
62
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
63
63
|
return isDark ? "text-foreground" : "";
|
|
64
64
|
}
|
|
65
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
66
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
67
|
+
if (isDark) {
|
|
68
|
+
switch (variant) {
|
|
69
|
+
case "default":
|
|
70
|
+
return "text-foreground";
|
|
71
|
+
case "muted":
|
|
72
|
+
return "text-foreground/80";
|
|
73
|
+
case "subtle":
|
|
74
|
+
return "text-foreground/60";
|
|
75
|
+
case "accent":
|
|
76
|
+
return "text-accent-foreground";
|
|
77
|
+
}
|
|
78
|
+
} else {
|
|
79
|
+
switch (variant) {
|
|
80
|
+
case "default":
|
|
81
|
+
return "text-foreground";
|
|
82
|
+
case "muted":
|
|
83
|
+
return "text-muted-foreground";
|
|
84
|
+
case "subtle":
|
|
85
|
+
return "text-muted-foreground/70";
|
|
86
|
+
case "accent":
|
|
87
|
+
return "text-primary";
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
function getAccentColor(parentBg, options) {
|
|
92
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
93
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
94
|
+
}
|
|
65
95
|
function normalizePhoneNumber(input) {
|
|
66
96
|
const trimmed = input.trim();
|
|
67
97
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -893,14 +923,15 @@ function AboutDeveloperProfile({
|
|
|
893
923
|
href: link.href,
|
|
894
924
|
"aria-label": link["aria-label"],
|
|
895
925
|
className: cn(
|
|
896
|
-
"
|
|
926
|
+
getTextColor(background, "muted"),
|
|
927
|
+
`hover:${getAccentColor(background)}`,
|
|
897
928
|
link.className
|
|
898
929
|
),
|
|
899
930
|
children: link.icon
|
|
900
931
|
},
|
|
901
932
|
idx
|
|
902
933
|
));
|
|
903
|
-
}, [socialLinksSlot, socialLinks]);
|
|
934
|
+
}, [socialLinksSlot, socialLinks, background]);
|
|
904
935
|
const skillsContent = React.useMemo(() => {
|
|
905
936
|
if (skillsSlot) return skillsSlot;
|
|
906
937
|
if (!skills || skills.length === 0) return null;
|
|
@@ -917,7 +948,7 @@ function AboutDeveloperProfile({
|
|
|
917
948
|
},
|
|
918
949
|
idx
|
|
919
950
|
));
|
|
920
|
-
}, [skillsSlot, skills, skillTagClassName]);
|
|
951
|
+
}, [skillsSlot, skills, skillTagClassName, background]);
|
|
921
952
|
const actionsContent = React.useMemo(() => {
|
|
922
953
|
if (actionsSlot) return actionsSlot;
|
|
923
954
|
if (!actions || actions.length === 0) return null;
|
|
@@ -971,7 +1002,7 @@ function AboutDeveloperProfile({
|
|
|
971
1002
|
),
|
|
972
1003
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center md:text-left", children: [
|
|
973
1004
|
name && (typeof name === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: nameClassName, children: name })),
|
|
974
|
-
role && (typeof role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-xl
|
|
1005
|
+
role && (typeof role === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2 text-xl", getAccentColor(background), roleClassName), children: role }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-2", roleClassName), children: role })),
|
|
975
1006
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
976
1007
|
"div",
|
|
977
1008
|
{
|
|
@@ -988,7 +1019,8 @@ function AboutDeveloperProfile({
|
|
|
988
1019
|
"p",
|
|
989
1020
|
{
|
|
990
1021
|
className: cn(
|
|
991
|
-
"text-lg
|
|
1022
|
+
"text-lg whitespace-pre-line",
|
|
1023
|
+
getTextColor(background, "muted"),
|
|
992
1024
|
bioClassName
|
|
993
1025
|
),
|
|
994
1026
|
children: bio
|
|
@@ -41,6 +41,36 @@ function getNestedCardTextColor(parentBg, options) {
|
|
|
41
41
|
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
42
42
|
return isDark ? "text-foreground" : "";
|
|
43
43
|
}
|
|
44
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
45
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
46
|
+
if (isDark) {
|
|
47
|
+
switch (variant) {
|
|
48
|
+
case "default":
|
|
49
|
+
return "text-foreground";
|
|
50
|
+
case "muted":
|
|
51
|
+
return "text-foreground/80";
|
|
52
|
+
case "subtle":
|
|
53
|
+
return "text-foreground/60";
|
|
54
|
+
case "accent":
|
|
55
|
+
return "text-accent-foreground";
|
|
56
|
+
}
|
|
57
|
+
} else {
|
|
58
|
+
switch (variant) {
|
|
59
|
+
case "default":
|
|
60
|
+
return "text-foreground";
|
|
61
|
+
case "muted":
|
|
62
|
+
return "text-muted-foreground";
|
|
63
|
+
case "subtle":
|
|
64
|
+
return "text-muted-foreground/70";
|
|
65
|
+
case "accent":
|
|
66
|
+
return "text-primary";
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
function getAccentColor(parentBg, options) {
|
|
71
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
72
|
+
return isDark ? "text-accent-foreground" : "text-primary";
|
|
73
|
+
}
|
|
44
74
|
function normalizePhoneNumber(input) {
|
|
45
75
|
const trimmed = input.trim();
|
|
46
76
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -872,14 +902,15 @@ function AboutDeveloperProfile({
|
|
|
872
902
|
href: link.href,
|
|
873
903
|
"aria-label": link["aria-label"],
|
|
874
904
|
className: cn(
|
|
875
|
-
"
|
|
905
|
+
getTextColor(background, "muted"),
|
|
906
|
+
`hover:${getAccentColor(background)}`,
|
|
876
907
|
link.className
|
|
877
908
|
),
|
|
878
909
|
children: link.icon
|
|
879
910
|
},
|
|
880
911
|
idx
|
|
881
912
|
));
|
|
882
|
-
}, [socialLinksSlot, socialLinks]);
|
|
913
|
+
}, [socialLinksSlot, socialLinks, background]);
|
|
883
914
|
const skillsContent = useMemo(() => {
|
|
884
915
|
if (skillsSlot) return skillsSlot;
|
|
885
916
|
if (!skills || skills.length === 0) return null;
|
|
@@ -896,7 +927,7 @@ function AboutDeveloperProfile({
|
|
|
896
927
|
},
|
|
897
928
|
idx
|
|
898
929
|
));
|
|
899
|
-
}, [skillsSlot, skills, skillTagClassName]);
|
|
930
|
+
}, [skillsSlot, skills, skillTagClassName, background]);
|
|
900
931
|
const actionsContent = useMemo(() => {
|
|
901
932
|
if (actionsSlot) return actionsSlot;
|
|
902
933
|
if (!actions || actions.length === 0) return null;
|
|
@@ -950,7 +981,7 @@ function AboutDeveloperProfile({
|
|
|
950
981
|
),
|
|
951
982
|
/* @__PURE__ */ jsxs("div", { className: "text-center md:text-left", children: [
|
|
952
983
|
name && (typeof name === "string" ? /* @__PURE__ */ jsx("h1", { className: cn("text-4xl font-bold", nameClassName), children: name }) : /* @__PURE__ */ jsx("div", { className: nameClassName, children: name })),
|
|
953
|
-
role && (typeof role === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-xl
|
|
984
|
+
role && (typeof role === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2 text-xl", getAccentColor(background), roleClassName), children: role }) : /* @__PURE__ */ jsx("div", { className: cn("mt-2", roleClassName), children: role })),
|
|
954
985
|
(socialLinksSlot || socialLinks && socialLinks.length > 0) && /* @__PURE__ */ jsx(
|
|
955
986
|
"div",
|
|
956
987
|
{
|
|
@@ -967,7 +998,8 @@ function AboutDeveloperProfile({
|
|
|
967
998
|
"p",
|
|
968
999
|
{
|
|
969
1000
|
className: cn(
|
|
970
|
-
"text-lg
|
|
1001
|
+
"text-lg whitespace-pre-line",
|
|
1002
|
+
getTextColor(background, "muted"),
|
|
971
1003
|
bioClassName
|
|
972
1004
|
),
|
|
973
1005
|
children: bio
|
|
@@ -32,6 +32,32 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
32
32
|
function cn(...inputs) {
|
|
33
33
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
34
|
}
|
|
35
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
36
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
+
if (isDark) {
|
|
38
|
+
switch (variant) {
|
|
39
|
+
case "default":
|
|
40
|
+
return "text-foreground";
|
|
41
|
+
case "muted":
|
|
42
|
+
return "text-foreground/80";
|
|
43
|
+
case "subtle":
|
|
44
|
+
return "text-foreground/60";
|
|
45
|
+
case "accent":
|
|
46
|
+
return "text-accent-foreground";
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
switch (variant) {
|
|
50
|
+
case "default":
|
|
51
|
+
return "text-foreground";
|
|
52
|
+
case "muted":
|
|
53
|
+
return "text-muted-foreground";
|
|
54
|
+
case "subtle":
|
|
55
|
+
return "text-muted-foreground/70";
|
|
56
|
+
case "accent":
|
|
57
|
+
return "text-primary";
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
35
61
|
function normalizePhoneNumber(input) {
|
|
36
62
|
const trimmed = input.trim();
|
|
37
63
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1049,7 +1075,7 @@ function AboutDeveloperStory({
|
|
|
1049
1075
|
),
|
|
1050
1076
|
children: stats.map((stat, idx) => /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "text-center", children: [
|
|
1051
1077
|
stat.value && (typeof stat.value === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "text-4xl font-bold", children: stat.value }) : stat.value),
|
|
1052
|
-
stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mt-2
|
|
1078
|
+
stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2", getTextColor(background, "muted")), children: stat.label }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mt-2", children: stat.label }))
|
|
1053
1079
|
] }, idx))
|
|
1054
1080
|
}
|
|
1055
1081
|
);
|
|
@@ -1079,7 +1105,8 @@ function AboutDeveloperStory({
|
|
|
1079
1105
|
"p",
|
|
1080
1106
|
{
|
|
1081
1107
|
className: cn(
|
|
1082
|
-
"max-w-2xl text-lg
|
|
1108
|
+
"max-w-2xl text-lg md:text-xl text-balance",
|
|
1109
|
+
getTextColor(background, "muted"),
|
|
1083
1110
|
descriptionClassName
|
|
1084
1111
|
),
|
|
1085
1112
|
children: description
|
|
@@ -1105,7 +1132,8 @@ function AboutDeveloperStory({
|
|
|
1105
1132
|
"p",
|
|
1106
1133
|
{
|
|
1107
1134
|
className: cn(
|
|
1108
|
-
"mt-6 text-lg
|
|
1135
|
+
"mt-6 text-lg whitespace-pre-line",
|
|
1136
|
+
getTextColor(background, "muted"),
|
|
1109
1137
|
storyContentClassName
|
|
1110
1138
|
),
|
|
1111
1139
|
children: storyContent
|
|
@@ -11,6 +11,32 @@ import { jsx, jsxs } from 'react/jsx-runtime';
|
|
|
11
11
|
function cn(...inputs) {
|
|
12
12
|
return twMerge(clsx(inputs));
|
|
13
13
|
}
|
|
14
|
+
function getTextColor(parentBg, variant = "default", options) {
|
|
15
|
+
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
16
|
+
if (isDark) {
|
|
17
|
+
switch (variant) {
|
|
18
|
+
case "default":
|
|
19
|
+
return "text-foreground";
|
|
20
|
+
case "muted":
|
|
21
|
+
return "text-foreground/80";
|
|
22
|
+
case "subtle":
|
|
23
|
+
return "text-foreground/60";
|
|
24
|
+
case "accent":
|
|
25
|
+
return "text-accent-foreground";
|
|
26
|
+
}
|
|
27
|
+
} else {
|
|
28
|
+
switch (variant) {
|
|
29
|
+
case "default":
|
|
30
|
+
return "text-foreground";
|
|
31
|
+
case "muted":
|
|
32
|
+
return "text-muted-foreground";
|
|
33
|
+
case "subtle":
|
|
34
|
+
return "text-muted-foreground/70";
|
|
35
|
+
case "accent":
|
|
36
|
+
return "text-primary";
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
14
40
|
function normalizePhoneNumber(input) {
|
|
15
41
|
const trimmed = input.trim();
|
|
16
42
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -1028,7 +1054,7 @@ function AboutDeveloperStory({
|
|
|
1028
1054
|
),
|
|
1029
1055
|
children: stats.map((stat, idx) => /* @__PURE__ */ jsxs("div", { className: "text-center", children: [
|
|
1030
1056
|
stat.value && (typeof stat.value === "string" ? /* @__PURE__ */ jsx("p", { className: "text-4xl font-bold", children: stat.value }) : stat.value),
|
|
1031
|
-
stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: "mt-2
|
|
1057
|
+
stat.label && (typeof stat.label === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2", getTextColor(background, "muted")), children: stat.label }) : /* @__PURE__ */ jsx("div", { className: "mt-2", children: stat.label }))
|
|
1032
1058
|
] }, idx))
|
|
1033
1059
|
}
|
|
1034
1060
|
);
|
|
@@ -1058,7 +1084,8 @@ function AboutDeveloperStory({
|
|
|
1058
1084
|
"p",
|
|
1059
1085
|
{
|
|
1060
1086
|
className: cn(
|
|
1061
|
-
"max-w-2xl text-lg
|
|
1087
|
+
"max-w-2xl text-lg md:text-xl text-balance",
|
|
1088
|
+
getTextColor(background, "muted"),
|
|
1062
1089
|
descriptionClassName
|
|
1063
1090
|
),
|
|
1064
1091
|
children: description
|
|
@@ -1084,7 +1111,8 @@ function AboutDeveloperStory({
|
|
|
1084
1111
|
"p",
|
|
1085
1112
|
{
|
|
1086
1113
|
className: cn(
|
|
1087
|
-
"mt-6 text-lg
|
|
1114
|
+
"mt-6 text-lg whitespace-pre-line",
|
|
1115
|
+
getTextColor(background, "muted"),
|
|
1088
1116
|
storyContentClassName
|
|
1089
1117
|
),
|
|
1090
1118
|
children: storyContent
|