@opensite/ui 3.7.2 → 3.7.4
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/hero-ad-campaign-expert.cjs +46 -1
- package/dist/hero-ad-campaign-expert.d.cts +16 -1
- package/dist/hero-ad-campaign-expert.d.ts +16 -1
- package/dist/hero-ad-campaign-expert.js +46 -1
- package/dist/hero-adaptable-product-grid.cjs +46 -1
- package/dist/hero-adaptable-product-grid.d.cts +16 -1
- package/dist/hero-adaptable-product-grid.d.ts +16 -1
- package/dist/hero-adaptable-product-grid.js +46 -1
- package/dist/hero-agency-animated-images.cjs +46 -1
- package/dist/hero-agency-animated-images.d.cts +16 -1
- package/dist/hero-agency-animated-images.d.ts +16 -1
- package/dist/hero-agency-animated-images.js +46 -1
- package/dist/hero-ai-powered-carousel.cjs +56 -8
- package/dist/hero-ai-powered-carousel.d.cts +16 -1
- package/dist/hero-ai-powered-carousel.d.ts +16 -1
- package/dist/hero-ai-powered-carousel.js +56 -8
- package/dist/hero-announcement-badge.cjs +47 -1
- package/dist/hero-announcement-badge.d.cts +16 -1
- package/dist/hero-announcement-badge.d.ts +16 -1
- package/dist/hero-announcement-badge.js +47 -1
- package/dist/hero-architecture-fullscreen.cjs +46 -1
- package/dist/hero-architecture-fullscreen.d.cts +16 -1
- package/dist/hero-architecture-fullscreen.d.ts +16 -1
- package/dist/hero-architecture-fullscreen.js +46 -1
- package/dist/hero-badge-image-split.cjs +46 -1
- package/dist/hero-badge-image-split.d.cts +16 -1
- package/dist/hero-badge-image-split.d.ts +16 -1
- package/dist/hero-badge-image-split.js +46 -1
- package/dist/hero-badge-shadow-overlay.cjs +54 -3
- package/dist/hero-badge-shadow-overlay.d.cts +16 -1
- package/dist/hero-badge-shadow-overlay.d.ts +16 -1
- package/dist/hero-badge-shadow-overlay.js +54 -3
- package/dist/hero-business-carousel-dots.cjs +46 -1
- package/dist/hero-business-carousel-dots.d.cts +16 -1
- package/dist/hero-business-carousel-dots.d.ts +16 -1
- package/dist/hero-business-carousel-dots.js +46 -1
- package/dist/hero-business-operations-mosaic.cjs +46 -1
- package/dist/hero-business-operations-mosaic.d.cts +16 -1
- package/dist/hero-business-operations-mosaic.d.ts +16 -1
- package/dist/hero-business-operations-mosaic.js +46 -1
- package/dist/hero-centered-gradient-cta.cjs +47 -1
- package/dist/hero-centered-gradient-cta.d.cts +16 -1
- package/dist/hero-centered-gradient-cta.d.ts +16 -1
- package/dist/hero-centered-gradient-cta.js +47 -1
- package/dist/hero-centered-image-grid.cjs +46 -1
- package/dist/hero-centered-image-grid.d.cts +16 -1
- package/dist/hero-centered-image-grid.d.ts +16 -1
- package/dist/hero-centered-image-grid.js +46 -1
- package/dist/hero-centered-screenshot.cjs +46 -1
- package/dist/hero-centered-screenshot.d.cts +16 -1
- package/dist/hero-centered-screenshot.d.ts +16 -1
- package/dist/hero-centered-screenshot.js +46 -1
- package/dist/hero-coming-soon-countdown.cjs +47 -1
- package/dist/hero-coming-soon-countdown.d.cts +16 -1
- package/dist/hero-coming-soon-countdown.d.ts +16 -1
- package/dist/hero-coming-soon-countdown.js +47 -1
- package/dist/hero-community-survey-cta.cjs +46 -1
- package/dist/hero-community-survey-cta.d.cts +16 -1
- package/dist/hero-community-survey-cta.d.ts +16 -1
- package/dist/hero-community-survey-cta.js +46 -1
- package/dist/hero-conversation-intelligence.cjs +46 -1
- package/dist/hero-conversation-intelligence.d.cts +16 -1
- package/dist/hero-conversation-intelligence.d.ts +16 -1
- package/dist/hero-conversation-intelligence.js +46 -1
- package/dist/hero-creative-studio-stacked.cjs +46 -1
- package/dist/hero-creative-studio-stacked.d.cts +17 -2
- package/dist/hero-creative-studio-stacked.d.ts +17 -2
- package/dist/hero-creative-studio-stacked.js +46 -1
- package/dist/hero-crm-streamlined.cjs +58 -9
- package/dist/hero-crm-streamlined.d.cts +16 -1
- package/dist/hero-crm-streamlined.d.ts +16 -1
- package/dist/hero-crm-streamlined.js +58 -9
- package/dist/hero-customer-support-layered.cjs +46 -1
- package/dist/hero-customer-support-layered.d.cts +16 -1
- package/dist/hero-customer-support-layered.d.ts +16 -1
- package/dist/hero-customer-support-layered.js +46 -1
- package/dist/hero-design-system-3d.cjs +67 -20
- package/dist/hero-design-system-3d.d.cts +16 -1
- package/dist/hero-design-system-3d.d.ts +16 -1
- package/dist/hero-design-system-3d.js +67 -20
- package/dist/hero-developer-tools-code.cjs +47 -1
- package/dist/hero-developer-tools-code.d.cts +16 -1
- package/dist/hero-developer-tools-code.d.ts +16 -1
- package/dist/hero-developer-tools-code.js +47 -1
- package/dist/hero-digital-agency-fullscreen.cjs +46 -1
- package/dist/hero-digital-agency-fullscreen.d.cts +16 -1
- package/dist/hero-digital-agency-fullscreen.d.ts +16 -1
- package/dist/hero-digital-agency-fullscreen.js +46 -1
- package/dist/hero-ecommerce-product-showcase.cjs +46 -1
- package/dist/hero-ecommerce-product-showcase.d.cts +16 -1
- package/dist/hero-ecommerce-product-showcase.d.ts +16 -1
- package/dist/hero-ecommerce-product-showcase.js +46 -1
- package/dist/hero-enterprise-security.cjs +47 -1
- package/dist/hero-enterprise-security.d.cts +16 -1
- package/dist/hero-enterprise-security.d.ts +16 -1
- package/dist/hero-enterprise-security.js +47 -1
- package/dist/hero-feature-cards-grid.cjs +47 -1
- package/dist/hero-feature-cards-grid.d.cts +16 -1
- package/dist/hero-feature-cards-grid.d.ts +16 -1
- package/dist/hero-feature-cards-grid.js +47 -1
- package/dist/hero-fullscreen-background-image.cjs +46 -1
- package/dist/hero-fullscreen-background-image.d.cts +16 -1
- package/dist/hero-fullscreen-background-image.d.ts +16 -1
- package/dist/hero-fullscreen-background-image.js +46 -1
- package/dist/hero-gradient-avatars-rating.cjs +46 -1
- package/dist/hero-gradient-avatars-rating.d.cts +16 -1
- package/dist/hero-gradient-avatars-rating.d.ts +16 -1
- package/dist/hero-gradient-avatars-rating.js +46 -1
- package/dist/hero-gradient-client-focused.cjs +46 -1
- package/dist/hero-gradient-client-focused.d.cts +16 -1
- package/dist/hero-gradient-client-focused.d.ts +16 -1
- package/dist/hero-gradient-client-focused.js +46 -1
- package/dist/hero-grid-pattern-efficiency.cjs +47 -1
- package/dist/hero-grid-pattern-efficiency.d.cts +16 -1
- package/dist/hero-grid-pattern-efficiency.d.ts +16 -1
- package/dist/hero-grid-pattern-efficiency.js +47 -1
- package/dist/hero-grid-pattern-solutions.cjs +46 -1
- package/dist/hero-grid-pattern-solutions.d.cts +16 -1
- package/dist/hero-grid-pattern-solutions.d.ts +16 -1
- package/dist/hero-grid-pattern-solutions.js +46 -1
- package/dist/hero-hiring-animated-text.cjs +47 -1
- package/dist/hero-hiring-animated-text.d.cts +16 -1
- package/dist/hero-hiring-animated-text.d.ts +16 -1
- package/dist/hero-hiring-animated-text.js +47 -1
- package/dist/hero-image-left-content.cjs +46 -1
- package/dist/hero-image-left-content.d.cts +16 -1
- package/dist/hero-image-left-content.d.ts +16 -1
- package/dist/hero-image-left-content.js +46 -1
- package/dist/hero-image-slider.cjs +46 -1
- package/dist/hero-image-slider.d.cts +16 -1
- package/dist/hero-image-slider.d.ts +16 -1
- package/dist/hero-image-slider.js +46 -1
- package/dist/hero-innovation-image-grid.cjs +46 -1
- package/dist/hero-innovation-image-grid.d.cts +16 -1
- package/dist/hero-innovation-image-grid.d.ts +16 -1
- package/dist/hero-innovation-image-grid.js +46 -1
- package/dist/hero-marketplace-scattered-images.cjs +46 -1
- package/dist/hero-marketplace-scattered-images.d.cts +16 -1
- package/dist/hero-marketplace-scattered-images.d.ts +16 -1
- package/dist/hero-marketplace-scattered-images.js +46 -1
- package/dist/hero-minimal-centered-dark.cjs +47 -1
- package/dist/hero-minimal-centered-dark.d.cts +16 -1
- package/dist/hero-minimal-centered-dark.d.ts +16 -1
- package/dist/hero-minimal-centered-dark.js +47 -1
- package/dist/hero-mobile-app-download.cjs +46 -1
- package/dist/hero-mobile-app-download.d.cts +16 -1
- package/dist/hero-mobile-app-download.d.ts +16 -1
- package/dist/hero-mobile-app-download.js +46 -1
- package/dist/hero-newsletter-minimal.cjs +48 -1
- package/dist/hero-newsletter-minimal.d.cts +16 -1
- package/dist/hero-newsletter-minimal.d.ts +16 -1
- package/dist/hero-newsletter-minimal.js +48 -1
- package/dist/hero-overlay-cta-grid.cjs +46 -1
- package/dist/hero-overlay-cta-grid.d.cts +16 -1
- package/dist/hero-overlay-cta-grid.d.ts +16 -1
- package/dist/hero-overlay-cta-grid.js +46 -1
- package/dist/hero-portfolio-creative.cjs +46 -1
- package/dist/hero-portfolio-creative.d.cts +16 -1
- package/dist/hero-portfolio-creative.d.ts +16 -1
- package/dist/hero-portfolio-creative.js +46 -1
- package/dist/hero-premium-split-avatars.cjs +46 -1
- package/dist/hero-premium-split-avatars.d.cts +16 -1
- package/dist/hero-premium-split-avatars.d.ts +16 -1
- package/dist/hero-premium-split-avatars.js +46 -1
- package/dist/hero-presentation-platform-video.cjs +47 -1
- package/dist/hero-presentation-platform-video.d.cts +16 -1
- package/dist/hero-presentation-platform-video.d.ts +16 -1
- package/dist/hero-presentation-platform-video.js +47 -1
- package/dist/hero-pricing-comparison.cjs +47 -1
- package/dist/hero-pricing-comparison.d.cts +16 -1
- package/dist/hero-pricing-comparison.d.ts +16 -1
- package/dist/hero-pricing-comparison.js +47 -1
- package/dist/hero-product-showcase-floating.cjs +46 -1
- package/dist/hero-product-showcase-floating.d.cts +16 -1
- package/dist/hero-product-showcase-floating.d.ts +16 -1
- package/dist/hero-product-showcase-floating.js +46 -1
- package/dist/hero-productivity-launcher-video.cjs +68 -20
- package/dist/hero-productivity-launcher-video.d.cts +16 -1
- package/dist/hero-productivity-launcher-video.d.ts +16 -1
- package/dist/hero-productivity-launcher-video.js +68 -20
- package/dist/hero-saas-dashboard-preview.cjs +46 -1
- package/dist/hero-saas-dashboard-preview.d.cts +16 -1
- package/dist/hero-saas-dashboard-preview.d.ts +16 -1
- package/dist/hero-saas-dashboard-preview.js +46 -1
- package/dist/hero-shared-inbox-layered.cjs +46 -1
- package/dist/hero-shared-inbox-layered.d.cts +16 -1
- package/dist/hero-shared-inbox-layered.d.ts +16 -1
- package/dist/hero-shared-inbox-layered.js +46 -1
- package/dist/hero-simple-centered-image.cjs +46 -1
- package/dist/hero-simple-centered-image.d.cts +16 -1
- package/dist/hero-simple-centered-image.d.ts +16 -1
- package/dist/hero-simple-centered-image.js +46 -1
- package/dist/hero-software-growth-video-dialog.cjs +46 -1
- package/dist/hero-software-growth-video-dialog.d.cts +16 -1
- package/dist/hero-software-growth-video-dialog.d.ts +16 -1
- package/dist/hero-software-growth-video-dialog.js +46 -1
- package/dist/hero-spiral-pattern-cards.cjs +46 -1
- package/dist/hero-spiral-pattern-cards.d.cts +16 -1
- package/dist/hero-spiral-pattern-cards.d.ts +16 -1
- package/dist/hero-spiral-pattern-cards.js +46 -1
- package/dist/hero-split-geometric-shapes.cjs +46 -1
- package/dist/hero-split-geometric-shapes.d.cts +16 -1
- package/dist/hero-split-geometric-shapes.d.ts +16 -1
- package/dist/hero-split-geometric-shapes.js +46 -1
- package/dist/hero-split-icon-cards.cjs +47 -1
- package/dist/hero-split-icon-cards.d.cts +16 -1
- package/dist/hero-split-icon-cards.d.ts +16 -1
- package/dist/hero-split-icon-cards.js +47 -1
- package/dist/hero-split-image-newsletter.cjs +46 -1
- package/dist/hero-split-image-newsletter.d.cts +16 -1
- package/dist/hero-split-image-newsletter.d.ts +16 -1
- package/dist/hero-split-image-newsletter.js +47 -2
- package/dist/hero-split-spiral-shapes.cjs +46 -1
- package/dist/hero-split-spiral-shapes.d.cts +16 -1
- package/dist/hero-split-spiral-shapes.d.ts +16 -1
- package/dist/hero-split-spiral-shapes.js +46 -1
- package/dist/hero-startup-launch-cta.cjs +46 -1
- package/dist/hero-startup-launch-cta.d.cts +16 -1
- package/dist/hero-startup-launch-cta.d.ts +16 -1
- package/dist/hero-startup-launch-cta.js +46 -1
- package/dist/hero-stats-social-proof.cjs +46 -1
- package/dist/hero-stats-social-proof.d.cts +16 -1
- package/dist/hero-stats-social-proof.d.ts +16 -1
- package/dist/hero-stats-social-proof.js +46 -1
- package/dist/hero-task-timer-animated.cjs +46 -1
- package/dist/hero-task-timer-animated.d.cts +16 -1
- package/dist/hero-task-timer-animated.d.ts +16 -1
- package/dist/hero-task-timer-animated.js +46 -1
- package/dist/hero-testimonial-image-grid.cjs +46 -1
- package/dist/hero-testimonial-image-grid.d.cts +16 -1
- package/dist/hero-testimonial-image-grid.d.ts +16 -1
- package/dist/hero-testimonial-image-grid.js +46 -1
- package/dist/hero-therapy-testimonial-grid.cjs +46 -1
- package/dist/hero-therapy-testimonial-grid.d.cts +16 -1
- package/dist/hero-therapy-testimonial-grid.d.ts +16 -1
- package/dist/hero-therapy-testimonial-grid.js +46 -1
- package/dist/hero-ui-library-showcase.cjs +3 -2
- package/dist/hero-ui-library-showcase.d.cts +13 -5
- package/dist/hero-ui-library-showcase.d.ts +13 -5
- package/dist/hero-ui-library-showcase.js +3 -2
- package/dist/hero-video-background-dark.cjs +47 -1
- package/dist/hero-video-background-dark.d.cts +16 -1
- package/dist/hero-video-background-dark.d.ts +16 -1
- package/dist/hero-video-background-dark.js +47 -1
- package/dist/{hero-video-dialog-gradient-Cr96k01H.d.ts → hero-video-dialog-gradient-B6-kFIvZ.d.ts} +14 -1
- package/dist/{hero-video-dialog-gradient-Dc0wRYdW.d.cts → hero-video-dialog-gradient-DPnh6Vn-.d.cts} +14 -1
- package/dist/hero-video-dialog-gradient.cjs +46 -1
- package/dist/hero-video-dialog-gradient.d.cts +4 -1
- package/dist/hero-video-dialog-gradient.d.ts +4 -1
- package/dist/hero-video-dialog-gradient.js +46 -1
- package/dist/hero-welcome-asymmetric-images.cjs +46 -1
- package/dist/hero-welcome-asymmetric-images.d.cts +16 -1
- package/dist/hero-welcome-asymmetric-images.d.ts +16 -1
- package/dist/hero-welcome-asymmetric-images.js +46 -1
- package/dist/link-page-bento-layout.cjs +59 -3
- package/dist/link-page-bento-layout.d.cts +16 -1
- package/dist/link-page-bento-layout.d.ts +16 -1
- package/dist/link-page-bento-layout.js +59 -3
- package/dist/link-page-grid-cards.cjs +59 -3
- package/dist/link-page-grid-cards.d.cts +16 -1
- package/dist/link-page-grid-cards.d.ts +16 -1
- package/dist/link-page-grid-cards.js +59 -3
- package/dist/link-page-minimal-profile.cjs +59 -3
- package/dist/link-page-minimal-profile.d.cts +16 -1
- package/dist/link-page-minimal-profile.d.ts +16 -1
- package/dist/link-page-minimal-profile.js +59 -3
- package/dist/link-page-newsletter-social.cjs +59 -3
- package/dist/link-page-newsletter-social.d.cts +16 -1
- package/dist/link-page-newsletter-social.d.ts +16 -1
- package/dist/link-page-newsletter-social.js +59 -3
- package/dist/link-tree-block.cjs +58 -2
- package/dist/link-tree-block.d.cts +16 -1
- package/dist/link-tree-block.d.ts +16 -1
- package/dist/link-tree-block.js +58 -2
- package/dist/registry.cjs +734 -199
- package/dist/registry.js +734 -199
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/package.json +1 -1
|
@@ -501,6 +501,47 @@ function ActionComponent({ action }) {
|
|
|
501
501
|
}
|
|
502
502
|
);
|
|
503
503
|
}
|
|
504
|
+
var SIZE_CLASSES = {
|
|
505
|
+
sm: "max-h-6 sm:max-h-7",
|
|
506
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
507
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
508
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
509
|
+
};
|
|
510
|
+
var BrandLogo = ({
|
|
511
|
+
logo,
|
|
512
|
+
logoSlot,
|
|
513
|
+
logoClassName,
|
|
514
|
+
size = "md",
|
|
515
|
+
optixFlowConfig
|
|
516
|
+
}) => {
|
|
517
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
518
|
+
if (!logo || !logo.src) return null;
|
|
519
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
520
|
+
img.Img,
|
|
521
|
+
{
|
|
522
|
+
src: logo.src,
|
|
523
|
+
className: cn(
|
|
524
|
+
"w-auto object-contain",
|
|
525
|
+
SIZE_CLASSES[size],
|
|
526
|
+
logo.className
|
|
527
|
+
),
|
|
528
|
+
alt: logo.alt || "Logo",
|
|
529
|
+
optixFlowConfig,
|
|
530
|
+
loading: "eager"
|
|
531
|
+
}
|
|
532
|
+
);
|
|
533
|
+
if (logo.url) {
|
|
534
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
535
|
+
pressable.Pressable,
|
|
536
|
+
{
|
|
537
|
+
href: logo.url,
|
|
538
|
+
className: cn("flex items-center", logoClassName),
|
|
539
|
+
children: imgElement
|
|
540
|
+
}
|
|
541
|
+
);
|
|
542
|
+
}
|
|
543
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
544
|
+
};
|
|
504
545
|
function CardArrowIcon({ className }) {
|
|
505
546
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
506
547
|
"svg",
|
|
@@ -544,7 +585,10 @@ function HeroOverlayCtaGrid({
|
|
|
544
585
|
contentClassName = "relative flex flex-col gap-6 md:gap-12 px-6 pt-0 md:pt-28 pb-6 md:pt-0 md:pb-0 min-h-screen h-fit md:h-screen justify-end md:justify-center",
|
|
545
586
|
headingClassName,
|
|
546
587
|
descriptionClassName,
|
|
547
|
-
optixFlowConfig
|
|
588
|
+
optixFlowConfig,
|
|
589
|
+
logo,
|
|
590
|
+
logoSlot,
|
|
591
|
+
logoClassName
|
|
548
592
|
}) {
|
|
549
593
|
const renderBadge = React.useMemo(() => {
|
|
550
594
|
if (badgeSlot) return badgeSlot;
|
|
@@ -628,6 +672,7 @@ function HeroOverlayCtaGrid({
|
|
|
628
672
|
className: "mx-auto max-w-3xl text-center text-balance text-white px-0 flex flex-col items-center justify-center",
|
|
629
673
|
children: [
|
|
630
674
|
renderBadge,
|
|
675
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
631
676
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
632
677
|
"h1",
|
|
633
678
|
{
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
|
|
3
3
|
import { ActionConfig } from '@page-speed/maps/components/geo-map';
|
|
4
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
4
5
|
import './blocks-DyouPohq.cjs';
|
|
5
6
|
import 'class-variance-authority';
|
|
6
7
|
import '@page-speed/pressable';
|
|
7
8
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
8
9
|
import 'react/jsx-runtime';
|
|
10
|
+
import './dynamic-icon.cjs';
|
|
11
|
+
import '@page-speed/icon';
|
|
9
12
|
|
|
10
13
|
interface HeroOverlayCtaGridCard {
|
|
11
14
|
/**
|
|
@@ -121,6 +124,18 @@ interface HeroOverlayCtaGridProps {
|
|
|
121
124
|
apiKey: string;
|
|
122
125
|
compression?: number;
|
|
123
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
129
|
+
*/
|
|
130
|
+
logo?: LogoConfig;
|
|
131
|
+
/**
|
|
132
|
+
* Custom slot for logo (overrides logo prop)
|
|
133
|
+
*/
|
|
134
|
+
logoSlot?: React.ReactNode;
|
|
135
|
+
/**
|
|
136
|
+
* Additional CSS classes for the logo container
|
|
137
|
+
*/
|
|
138
|
+
logoClassName?: string;
|
|
124
139
|
/** Optional Section ID */
|
|
125
140
|
sectionId?: string;
|
|
126
141
|
}
|
|
@@ -129,6 +144,6 @@ interface HeroOverlayCtaGridProps {
|
|
|
129
144
|
* and a supporting grid of icon cards. Ideal for service-focused landing pages that
|
|
130
145
|
* need a strong hero statement plus quick navigation to top offerings.
|
|
131
146
|
*/
|
|
132
|
-
declare function HeroOverlayCtaGrid({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, cards, cardsSlot, backgroundImage, backgroundAlt, backgroundSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroOverlayCtaGridProps): React.JSX.Element;
|
|
147
|
+
declare function HeroOverlayCtaGrid({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, cards, cardsSlot, backgroundImage, backgroundAlt, backgroundSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroOverlayCtaGridProps): React.JSX.Element;
|
|
133
148
|
|
|
134
149
|
export { HeroOverlayCtaGrid, type HeroOverlayCtaGridProps };
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
|
|
3
3
|
import { ActionConfig } from '@page-speed/maps/components/geo-map';
|
|
4
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
4
5
|
import './blocks-DyouPohq.js';
|
|
5
6
|
import 'class-variance-authority';
|
|
6
7
|
import '@page-speed/pressable';
|
|
7
8
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
8
9
|
import 'react/jsx-runtime';
|
|
10
|
+
import './dynamic-icon.js';
|
|
11
|
+
import '@page-speed/icon';
|
|
9
12
|
|
|
10
13
|
interface HeroOverlayCtaGridCard {
|
|
11
14
|
/**
|
|
@@ -121,6 +124,18 @@ interface HeroOverlayCtaGridProps {
|
|
|
121
124
|
apiKey: string;
|
|
122
125
|
compression?: number;
|
|
123
126
|
};
|
|
127
|
+
/**
|
|
128
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
129
|
+
*/
|
|
130
|
+
logo?: LogoConfig;
|
|
131
|
+
/**
|
|
132
|
+
* Custom slot for logo (overrides logo prop)
|
|
133
|
+
*/
|
|
134
|
+
logoSlot?: React.ReactNode;
|
|
135
|
+
/**
|
|
136
|
+
* Additional CSS classes for the logo container
|
|
137
|
+
*/
|
|
138
|
+
logoClassName?: string;
|
|
124
139
|
/** Optional Section ID */
|
|
125
140
|
sectionId?: string;
|
|
126
141
|
}
|
|
@@ -129,6 +144,6 @@ interface HeroOverlayCtaGridProps {
|
|
|
129
144
|
* and a supporting grid of icon cards. Ideal for service-focused landing pages that
|
|
130
145
|
* need a strong hero statement plus quick navigation to top offerings.
|
|
131
146
|
*/
|
|
132
|
-
declare function HeroOverlayCtaGrid({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, cards, cardsSlot, backgroundImage, backgroundAlt, backgroundSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroOverlayCtaGridProps): React.JSX.Element;
|
|
147
|
+
declare function HeroOverlayCtaGrid({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, actionsClassName, cards, cardsSlot, backgroundImage, backgroundAlt, backgroundSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroOverlayCtaGridProps): React.JSX.Element;
|
|
133
148
|
|
|
134
149
|
export { HeroOverlayCtaGrid, type HeroOverlayCtaGridProps };
|
|
@@ -480,6 +480,47 @@ function ActionComponent({ action }) {
|
|
|
480
480
|
}
|
|
481
481
|
);
|
|
482
482
|
}
|
|
483
|
+
var SIZE_CLASSES = {
|
|
484
|
+
sm: "max-h-6 sm:max-h-7",
|
|
485
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
486
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
487
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
488
|
+
};
|
|
489
|
+
var BrandLogo = ({
|
|
490
|
+
logo,
|
|
491
|
+
logoSlot,
|
|
492
|
+
logoClassName,
|
|
493
|
+
size = "md",
|
|
494
|
+
optixFlowConfig
|
|
495
|
+
}) => {
|
|
496
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
497
|
+
if (!logo || !logo.src) return null;
|
|
498
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
499
|
+
Img,
|
|
500
|
+
{
|
|
501
|
+
src: logo.src,
|
|
502
|
+
className: cn(
|
|
503
|
+
"w-auto object-contain",
|
|
504
|
+
SIZE_CLASSES[size],
|
|
505
|
+
logo.className
|
|
506
|
+
),
|
|
507
|
+
alt: logo.alt || "Logo",
|
|
508
|
+
optixFlowConfig,
|
|
509
|
+
loading: "eager"
|
|
510
|
+
}
|
|
511
|
+
);
|
|
512
|
+
if (logo.url) {
|
|
513
|
+
return /* @__PURE__ */ jsx(
|
|
514
|
+
Pressable,
|
|
515
|
+
{
|
|
516
|
+
href: logo.url,
|
|
517
|
+
className: cn("flex items-center", logoClassName),
|
|
518
|
+
children: imgElement
|
|
519
|
+
}
|
|
520
|
+
);
|
|
521
|
+
}
|
|
522
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
523
|
+
};
|
|
483
524
|
function CardArrowIcon({ className }) {
|
|
484
525
|
return /* @__PURE__ */ jsxs(
|
|
485
526
|
"svg",
|
|
@@ -523,7 +564,10 @@ function HeroOverlayCtaGrid({
|
|
|
523
564
|
contentClassName = "relative flex flex-col gap-6 md:gap-12 px-6 pt-0 md:pt-28 pb-6 md:pt-0 md:pb-0 min-h-screen h-fit md:h-screen justify-end md:justify-center",
|
|
524
565
|
headingClassName,
|
|
525
566
|
descriptionClassName,
|
|
526
|
-
optixFlowConfig
|
|
567
|
+
optixFlowConfig,
|
|
568
|
+
logo,
|
|
569
|
+
logoSlot,
|
|
570
|
+
logoClassName
|
|
527
571
|
}) {
|
|
528
572
|
const renderBadge = useMemo(() => {
|
|
529
573
|
if (badgeSlot) return badgeSlot;
|
|
@@ -607,6 +651,7 @@ function HeroOverlayCtaGrid({
|
|
|
607
651
|
className: "mx-auto max-w-3xl text-center text-balance text-white px-0 flex flex-col items-center justify-center",
|
|
608
652
|
children: [
|
|
609
653
|
renderBadge,
|
|
654
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
610
655
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
611
656
|
"h1",
|
|
612
657
|
{
|
|
@@ -448,6 +448,47 @@ var Section = React__namespace.default.forwardRef(
|
|
|
448
448
|
}
|
|
449
449
|
);
|
|
450
450
|
Section.displayName = "Section";
|
|
451
|
+
var SIZE_CLASSES = {
|
|
452
|
+
sm: "max-h-6 sm:max-h-7",
|
|
453
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
454
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
455
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
456
|
+
};
|
|
457
|
+
var BrandLogo = ({
|
|
458
|
+
logo,
|
|
459
|
+
logoSlot,
|
|
460
|
+
logoClassName,
|
|
461
|
+
size = "md",
|
|
462
|
+
optixFlowConfig
|
|
463
|
+
}) => {
|
|
464
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
465
|
+
if (!logo || !logo.src) return null;
|
|
466
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
467
|
+
img.Img,
|
|
468
|
+
{
|
|
469
|
+
src: logo.src,
|
|
470
|
+
className: cn(
|
|
471
|
+
"w-auto object-contain",
|
|
472
|
+
SIZE_CLASSES[size],
|
|
473
|
+
logo.className
|
|
474
|
+
),
|
|
475
|
+
alt: logo.alt || "Logo",
|
|
476
|
+
optixFlowConfig,
|
|
477
|
+
loading: "eager"
|
|
478
|
+
}
|
|
479
|
+
);
|
|
480
|
+
if (logo.url) {
|
|
481
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
482
|
+
pressable.Pressable,
|
|
483
|
+
{
|
|
484
|
+
href: logo.url,
|
|
485
|
+
className: cn("flex items-center", logoClassName),
|
|
486
|
+
children: imgElement
|
|
487
|
+
}
|
|
488
|
+
);
|
|
489
|
+
}
|
|
490
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
491
|
+
};
|
|
451
492
|
function HeroPortfolioCreative({
|
|
452
493
|
sectionId = "hero-portfolio-creative",
|
|
453
494
|
profile,
|
|
@@ -470,7 +511,10 @@ function HeroPortfolioCreative({
|
|
|
470
511
|
headingClassName,
|
|
471
512
|
descriptionClassName,
|
|
472
513
|
portfolioClassName,
|
|
473
|
-
optixFlowConfig
|
|
514
|
+
optixFlowConfig,
|
|
515
|
+
logo,
|
|
516
|
+
logoSlot,
|
|
517
|
+
logoClassName
|
|
474
518
|
}) {
|
|
475
519
|
const renderProfile = React.useMemo(() => {
|
|
476
520
|
if (profileSlot) return profileSlot;
|
|
@@ -614,6 +658,7 @@ function HeroPortfolioCreative({
|
|
|
614
658
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
615
659
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
616
660
|
renderProfile,
|
|
661
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
617
662
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
618
663
|
"h1",
|
|
619
664
|
{
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
|
|
3
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
3
4
|
import { I as ImageItem, A as ActionConfig, j as SocialLinkItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
|
|
4
5
|
import 'react/jsx-runtime';
|
|
6
|
+
import './dynamic-icon.cjs';
|
|
7
|
+
import '@page-speed/icon';
|
|
5
8
|
import 'class-variance-authority';
|
|
6
9
|
import '@page-speed/pressable';
|
|
7
10
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
@@ -106,9 +109,21 @@ interface HeroPortfolioCreativeProps {
|
|
|
106
109
|
* OptixFlow image optimization configuration
|
|
107
110
|
*/
|
|
108
111
|
optixFlowConfig?: OptixFlowConfig;
|
|
112
|
+
/**
|
|
113
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
114
|
+
*/
|
|
115
|
+
logo?: LogoConfig;
|
|
116
|
+
/**
|
|
117
|
+
* Custom slot for logo (overrides logo prop)
|
|
118
|
+
*/
|
|
119
|
+
logoSlot?: React.ReactNode;
|
|
120
|
+
/**
|
|
121
|
+
* Additional CSS classes for the logo container
|
|
122
|
+
*/
|
|
123
|
+
logoClassName?: string;
|
|
109
124
|
/** Optional Section ID */
|
|
110
125
|
sectionId?: string;
|
|
111
126
|
}
|
|
112
|
-
declare function HeroPortfolioCreative({ sectionId, profile, profileSlot, heading, description, actions, actionsSlot, socialLinks, socialLinksSlot, portfolioImages, portfolioImagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, portfolioClassName, optixFlowConfig, }: HeroPortfolioCreativeProps): React.JSX.Element;
|
|
127
|
+
declare function HeroPortfolioCreative({ sectionId, profile, profileSlot, heading, description, actions, actionsSlot, socialLinks, socialLinksSlot, portfolioImages, portfolioImagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, portfolioClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroPortfolioCreativeProps): React.JSX.Element;
|
|
113
128
|
|
|
114
129
|
export { HeroPortfolioCreative, type HeroPortfolioCreativeProps };
|
|
@@ -1,7 +1,10 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
|
|
3
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
3
4
|
import { I as ImageItem, A as ActionConfig, j as SocialLinkItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
|
|
4
5
|
import 'react/jsx-runtime';
|
|
6
|
+
import './dynamic-icon.js';
|
|
7
|
+
import '@page-speed/icon';
|
|
5
8
|
import 'class-variance-authority';
|
|
6
9
|
import '@page-speed/pressable';
|
|
7
10
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
@@ -106,9 +109,21 @@ interface HeroPortfolioCreativeProps {
|
|
|
106
109
|
* OptixFlow image optimization configuration
|
|
107
110
|
*/
|
|
108
111
|
optixFlowConfig?: OptixFlowConfig;
|
|
112
|
+
/**
|
|
113
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
114
|
+
*/
|
|
115
|
+
logo?: LogoConfig;
|
|
116
|
+
/**
|
|
117
|
+
* Custom slot for logo (overrides logo prop)
|
|
118
|
+
*/
|
|
119
|
+
logoSlot?: React.ReactNode;
|
|
120
|
+
/**
|
|
121
|
+
* Additional CSS classes for the logo container
|
|
122
|
+
*/
|
|
123
|
+
logoClassName?: string;
|
|
109
124
|
/** Optional Section ID */
|
|
110
125
|
sectionId?: string;
|
|
111
126
|
}
|
|
112
|
-
declare function HeroPortfolioCreative({ sectionId, profile, profileSlot, heading, description, actions, actionsSlot, socialLinks, socialLinksSlot, portfolioImages, portfolioImagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, portfolioClassName, optixFlowConfig, }: HeroPortfolioCreativeProps): React.JSX.Element;
|
|
127
|
+
declare function HeroPortfolioCreative({ sectionId, profile, profileSlot, heading, description, actions, actionsSlot, socialLinks, socialLinksSlot, portfolioImages, portfolioImagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, portfolioClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroPortfolioCreativeProps): React.JSX.Element;
|
|
113
128
|
|
|
114
129
|
export { HeroPortfolioCreative, type HeroPortfolioCreativeProps };
|
|
@@ -427,6 +427,47 @@ var Section = React__default.forwardRef(
|
|
|
427
427
|
}
|
|
428
428
|
);
|
|
429
429
|
Section.displayName = "Section";
|
|
430
|
+
var SIZE_CLASSES = {
|
|
431
|
+
sm: "max-h-6 sm:max-h-7",
|
|
432
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
433
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
434
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
435
|
+
};
|
|
436
|
+
var BrandLogo = ({
|
|
437
|
+
logo,
|
|
438
|
+
logoSlot,
|
|
439
|
+
logoClassName,
|
|
440
|
+
size = "md",
|
|
441
|
+
optixFlowConfig
|
|
442
|
+
}) => {
|
|
443
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
444
|
+
if (!logo || !logo.src) return null;
|
|
445
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
446
|
+
Img,
|
|
447
|
+
{
|
|
448
|
+
src: logo.src,
|
|
449
|
+
className: cn(
|
|
450
|
+
"w-auto object-contain",
|
|
451
|
+
SIZE_CLASSES[size],
|
|
452
|
+
logo.className
|
|
453
|
+
),
|
|
454
|
+
alt: logo.alt || "Logo",
|
|
455
|
+
optixFlowConfig,
|
|
456
|
+
loading: "eager"
|
|
457
|
+
}
|
|
458
|
+
);
|
|
459
|
+
if (logo.url) {
|
|
460
|
+
return /* @__PURE__ */ jsx(
|
|
461
|
+
Pressable,
|
|
462
|
+
{
|
|
463
|
+
href: logo.url,
|
|
464
|
+
className: cn("flex items-center", logoClassName),
|
|
465
|
+
children: imgElement
|
|
466
|
+
}
|
|
467
|
+
);
|
|
468
|
+
}
|
|
469
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
470
|
+
};
|
|
430
471
|
function HeroPortfolioCreative({
|
|
431
472
|
sectionId = "hero-portfolio-creative",
|
|
432
473
|
profile,
|
|
@@ -449,7 +490,10 @@ function HeroPortfolioCreative({
|
|
|
449
490
|
headingClassName,
|
|
450
491
|
descriptionClassName,
|
|
451
492
|
portfolioClassName,
|
|
452
|
-
optixFlowConfig
|
|
493
|
+
optixFlowConfig,
|
|
494
|
+
logo,
|
|
495
|
+
logoSlot,
|
|
496
|
+
logoClassName
|
|
453
497
|
}) {
|
|
454
498
|
const renderProfile = useMemo(() => {
|
|
455
499
|
if (profileSlot) return profileSlot;
|
|
@@ -593,6 +637,7 @@ function HeroPortfolioCreative({
|
|
|
593
637
|
children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
594
638
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
595
639
|
renderProfile,
|
|
640
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
596
641
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
597
642
|
"h1",
|
|
598
643
|
{
|
|
@@ -627,6 +627,47 @@ function MediaAspectRatio({
|
|
|
627
627
|
)
|
|
628
628
|
] });
|
|
629
629
|
}
|
|
630
|
+
var SIZE_CLASSES = {
|
|
631
|
+
sm: "max-h-6 sm:max-h-7",
|
|
632
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
633
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
634
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
635
|
+
};
|
|
636
|
+
var BrandLogo = ({
|
|
637
|
+
logo,
|
|
638
|
+
logoSlot,
|
|
639
|
+
logoClassName,
|
|
640
|
+
size = "md",
|
|
641
|
+
optixFlowConfig
|
|
642
|
+
}) => {
|
|
643
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
644
|
+
if (!logo || !logo.src) return null;
|
|
645
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
646
|
+
img.Img,
|
|
647
|
+
{
|
|
648
|
+
src: logo.src,
|
|
649
|
+
className: cn(
|
|
650
|
+
"w-auto object-contain",
|
|
651
|
+
SIZE_CLASSES[size],
|
|
652
|
+
logo.className
|
|
653
|
+
),
|
|
654
|
+
alt: logo.alt || "Logo",
|
|
655
|
+
optixFlowConfig,
|
|
656
|
+
loading: "eager"
|
|
657
|
+
}
|
|
658
|
+
);
|
|
659
|
+
if (logo.url) {
|
|
660
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
661
|
+
pressable.Pressable,
|
|
662
|
+
{
|
|
663
|
+
href: logo.url,
|
|
664
|
+
className: cn("flex items-center", logoClassName),
|
|
665
|
+
children: imgElement
|
|
666
|
+
}
|
|
667
|
+
);
|
|
668
|
+
}
|
|
669
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
670
|
+
};
|
|
630
671
|
function HeroPremiumSplitAvatars({
|
|
631
672
|
sectionId = "hero-premium-split-avatars",
|
|
632
673
|
brandName,
|
|
@@ -653,7 +694,10 @@ function HeroPremiumSplitAvatars({
|
|
|
653
694
|
imageClassName,
|
|
654
695
|
optixFlowConfig,
|
|
655
696
|
mediaAspectRatios = { desktop: "vertical", mobile: "vertical" },
|
|
656
|
-
directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" }
|
|
697
|
+
directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" },
|
|
698
|
+
logo,
|
|
699
|
+
logoSlot,
|
|
700
|
+
logoClassName
|
|
657
701
|
}) {
|
|
658
702
|
const responsiveClassName = React.useMemo(() => {
|
|
659
703
|
const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
|
|
@@ -760,6 +804,7 @@ function HeroPremiumSplitAvatars({
|
|
|
760
804
|
children: [
|
|
761
805
|
renderBrand,
|
|
762
806
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 md:gap-8", children: [
|
|
807
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
763
808
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading })),
|
|
764
809
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2.5 lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
765
810
|
renderAction
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
|
|
3
3
|
import { ResponsiveMediaAspectRatioProps } from './media-aspect-ratio.cjs';
|
|
4
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
4
5
|
import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig, h as DirectionConfig } from './blocks-DyouPohq.cjs';
|
|
5
6
|
import 'react/jsx-runtime';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import '@page-speed/pressable';
|
|
8
9
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
10
|
+
import './dynamic-icon.cjs';
|
|
11
|
+
import '@page-speed/icon';
|
|
9
12
|
|
|
10
13
|
interface AvatarItem {
|
|
11
14
|
/**
|
|
@@ -110,6 +113,18 @@ interface HeroPremiumSplitAvatarsProps {
|
|
|
110
113
|
* OptixFlow image optimization configuration
|
|
111
114
|
*/
|
|
112
115
|
optixFlowConfig?: OptixFlowConfig;
|
|
116
|
+
/**
|
|
117
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
118
|
+
*/
|
|
119
|
+
logo?: LogoConfig;
|
|
120
|
+
/**
|
|
121
|
+
* Custom slot for logo (overrides logo prop)
|
|
122
|
+
*/
|
|
123
|
+
logoSlot?: React.ReactNode;
|
|
124
|
+
/**
|
|
125
|
+
* Additional CSS classes for the logo container
|
|
126
|
+
*/
|
|
127
|
+
logoClassName?: string;
|
|
113
128
|
/** Optional Section ID */
|
|
114
129
|
sectionId?: string;
|
|
115
130
|
/**
|
|
@@ -123,6 +138,6 @@ interface HeroPremiumSplitAvatarsProps {
|
|
|
123
138
|
*/
|
|
124
139
|
directionConfig?: DirectionConfig;
|
|
125
140
|
}
|
|
126
|
-
declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
|
|
141
|
+
declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, logo, logoSlot, logoClassName, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
|
|
127
142
|
|
|
128
143
|
export { HeroPremiumSplitAvatars, type HeroPremiumSplitAvatarsProps };
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
|
|
3
3
|
import { ResponsiveMediaAspectRatioProps } from './media-aspect-ratio.js';
|
|
4
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
4
5
|
import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig, h as DirectionConfig } from './blocks-DyouPohq.js';
|
|
5
6
|
import 'react/jsx-runtime';
|
|
6
7
|
import 'class-variance-authority';
|
|
7
8
|
import '@page-speed/pressable';
|
|
8
9
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
10
|
+
import './dynamic-icon.js';
|
|
11
|
+
import '@page-speed/icon';
|
|
9
12
|
|
|
10
13
|
interface AvatarItem {
|
|
11
14
|
/**
|
|
@@ -110,6 +113,18 @@ interface HeroPremiumSplitAvatarsProps {
|
|
|
110
113
|
* OptixFlow image optimization configuration
|
|
111
114
|
*/
|
|
112
115
|
optixFlowConfig?: OptixFlowConfig;
|
|
116
|
+
/**
|
|
117
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
118
|
+
*/
|
|
119
|
+
logo?: LogoConfig;
|
|
120
|
+
/**
|
|
121
|
+
* Custom slot for logo (overrides logo prop)
|
|
122
|
+
*/
|
|
123
|
+
logoSlot?: React.ReactNode;
|
|
124
|
+
/**
|
|
125
|
+
* Additional CSS classes for the logo container
|
|
126
|
+
*/
|
|
127
|
+
logoClassName?: string;
|
|
113
128
|
/** Optional Section ID */
|
|
114
129
|
sectionId?: string;
|
|
115
130
|
/**
|
|
@@ -123,6 +138,6 @@ interface HeroPremiumSplitAvatarsProps {
|
|
|
123
138
|
*/
|
|
124
139
|
directionConfig?: DirectionConfig;
|
|
125
140
|
}
|
|
126
|
-
declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
|
|
141
|
+
declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, logo, logoSlot, logoClassName, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
|
|
127
142
|
|
|
128
143
|
export { HeroPremiumSplitAvatars, type HeroPremiumSplitAvatarsProps };
|
|
@@ -601,6 +601,47 @@ function MediaAspectRatio({
|
|
|
601
601
|
)
|
|
602
602
|
] });
|
|
603
603
|
}
|
|
604
|
+
var SIZE_CLASSES = {
|
|
605
|
+
sm: "max-h-6 sm:max-h-7",
|
|
606
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
607
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
608
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
609
|
+
};
|
|
610
|
+
var BrandLogo = ({
|
|
611
|
+
logo,
|
|
612
|
+
logoSlot,
|
|
613
|
+
logoClassName,
|
|
614
|
+
size = "md",
|
|
615
|
+
optixFlowConfig
|
|
616
|
+
}) => {
|
|
617
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
618
|
+
if (!logo || !logo.src) return null;
|
|
619
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
620
|
+
Img,
|
|
621
|
+
{
|
|
622
|
+
src: logo.src,
|
|
623
|
+
className: cn(
|
|
624
|
+
"w-auto object-contain",
|
|
625
|
+
SIZE_CLASSES[size],
|
|
626
|
+
logo.className
|
|
627
|
+
),
|
|
628
|
+
alt: logo.alt || "Logo",
|
|
629
|
+
optixFlowConfig,
|
|
630
|
+
loading: "eager"
|
|
631
|
+
}
|
|
632
|
+
);
|
|
633
|
+
if (logo.url) {
|
|
634
|
+
return /* @__PURE__ */ jsx(
|
|
635
|
+
Pressable,
|
|
636
|
+
{
|
|
637
|
+
href: logo.url,
|
|
638
|
+
className: cn("flex items-center", logoClassName),
|
|
639
|
+
children: imgElement
|
|
640
|
+
}
|
|
641
|
+
);
|
|
642
|
+
}
|
|
643
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
644
|
+
};
|
|
604
645
|
function HeroPremiumSplitAvatars({
|
|
605
646
|
sectionId = "hero-premium-split-avatars",
|
|
606
647
|
brandName,
|
|
@@ -627,7 +668,10 @@ function HeroPremiumSplitAvatars({
|
|
|
627
668
|
imageClassName,
|
|
628
669
|
optixFlowConfig,
|
|
629
670
|
mediaAspectRatios = { desktop: "vertical", mobile: "vertical" },
|
|
630
|
-
directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" }
|
|
671
|
+
directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" },
|
|
672
|
+
logo,
|
|
673
|
+
logoSlot,
|
|
674
|
+
logoClassName
|
|
631
675
|
}) {
|
|
632
676
|
const responsiveClassName = useMemo(() => {
|
|
633
677
|
const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
|
|
@@ -734,6 +778,7 @@ function HeroPremiumSplitAvatars({
|
|
|
734
778
|
children: [
|
|
735
779
|
renderBrand,
|
|
736
780
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 md:gap-8", children: [
|
|
781
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
737
782
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading })),
|
|
738
783
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2.5 lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
739
784
|
renderAction
|