@opensite/ui 3.7.2 → 3.7.3
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 +46 -1
- 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 +46 -1
- 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 +46 -1
- 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 +46 -1
- 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 +46 -1
- package/dist/hero-crm-streamlined.d.cts +16 -1
- package/dist/hero-crm-streamlined.d.ts +16 -1
- package/dist/hero-crm-streamlined.js +46 -1
- 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 +704 -182
- package/dist/registry.js +704 -182
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/package.json +1 -1
|
@@ -4,6 +4,7 @@ import { clsx } from 'clsx';
|
|
|
4
4
|
import { twMerge } from 'tailwind-merge';
|
|
5
5
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
6
6
|
import { Pressable, buttonVariants } from '@page-speed/pressable';
|
|
7
|
+
import { Img } from '@page-speed/img';
|
|
7
8
|
|
|
8
9
|
// components/blocks/hero/hero-hiring-animated-text.tsx
|
|
9
10
|
function cn(...inputs) {
|
|
@@ -463,6 +464,47 @@ function ActionComponent({ action }) {
|
|
|
463
464
|
}
|
|
464
465
|
);
|
|
465
466
|
}
|
|
467
|
+
var SIZE_CLASSES = {
|
|
468
|
+
sm: "max-h-6 sm:max-h-7",
|
|
469
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
470
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
471
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
472
|
+
};
|
|
473
|
+
var BrandLogo = ({
|
|
474
|
+
logo,
|
|
475
|
+
logoSlot,
|
|
476
|
+
logoClassName,
|
|
477
|
+
size = "md",
|
|
478
|
+
optixFlowConfig
|
|
479
|
+
}) => {
|
|
480
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
481
|
+
if (!logo || !logo.src) return null;
|
|
482
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
483
|
+
Img,
|
|
484
|
+
{
|
|
485
|
+
src: logo.src,
|
|
486
|
+
className: cn(
|
|
487
|
+
"w-auto object-contain",
|
|
488
|
+
SIZE_CLASSES[size],
|
|
489
|
+
logo.className
|
|
490
|
+
),
|
|
491
|
+
alt: logo.alt || "Logo",
|
|
492
|
+
optixFlowConfig,
|
|
493
|
+
loading: "eager"
|
|
494
|
+
}
|
|
495
|
+
);
|
|
496
|
+
if (logo.url) {
|
|
497
|
+
return /* @__PURE__ */ jsx(
|
|
498
|
+
Pressable,
|
|
499
|
+
{
|
|
500
|
+
href: logo.url,
|
|
501
|
+
className: cn("flex items-center", logoClassName),
|
|
502
|
+
children: imgElement
|
|
503
|
+
}
|
|
504
|
+
);
|
|
505
|
+
}
|
|
506
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
507
|
+
};
|
|
466
508
|
function HeroHiringAnimatedText({
|
|
467
509
|
sectionId = "hero-hiring-animated-text",
|
|
468
510
|
headingPrefix,
|
|
@@ -481,7 +523,10 @@ function HeroHiringAnimatedText({
|
|
|
481
523
|
contentClassName,
|
|
482
524
|
headingClassName,
|
|
483
525
|
descriptionClassName,
|
|
484
|
-
actionsClassName
|
|
526
|
+
actionsClassName,
|
|
527
|
+
logo,
|
|
528
|
+
logoSlot,
|
|
529
|
+
logoClassName
|
|
485
530
|
}) {
|
|
486
531
|
const [activeIndex, setActiveIndex] = useState(0);
|
|
487
532
|
const cycleText = useCallback(() => {
|
|
@@ -547,6 +592,7 @@ function HeroHiringAnimatedText({
|
|
|
547
592
|
contentClassName
|
|
548
593
|
),
|
|
549
594
|
children: [
|
|
595
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
550
596
|
renderHeading,
|
|
551
597
|
/* @__PURE__ */ jsxs("div", { className: "flex items-stretch md:items-start flex-col gap-8", children: [
|
|
552
598
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
@@ -504,6 +504,47 @@ function ActionComponent({ action }) {
|
|
|
504
504
|
}
|
|
505
505
|
);
|
|
506
506
|
}
|
|
507
|
+
var SIZE_CLASSES = {
|
|
508
|
+
sm: "max-h-6 sm:max-h-7",
|
|
509
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
510
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
511
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
512
|
+
};
|
|
513
|
+
var BrandLogo = ({
|
|
514
|
+
logo,
|
|
515
|
+
logoSlot,
|
|
516
|
+
logoClassName,
|
|
517
|
+
size = "md",
|
|
518
|
+
optixFlowConfig
|
|
519
|
+
}) => {
|
|
520
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
521
|
+
if (!logo || !logo.src) return null;
|
|
522
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
523
|
+
img.Img,
|
|
524
|
+
{
|
|
525
|
+
src: logo.src,
|
|
526
|
+
className: cn(
|
|
527
|
+
"w-auto object-contain",
|
|
528
|
+
SIZE_CLASSES[size],
|
|
529
|
+
logo.className
|
|
530
|
+
),
|
|
531
|
+
alt: logo.alt || "Logo",
|
|
532
|
+
optixFlowConfig,
|
|
533
|
+
loading: "eager"
|
|
534
|
+
}
|
|
535
|
+
);
|
|
536
|
+
if (logo.url) {
|
|
537
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
538
|
+
pressable.Pressable,
|
|
539
|
+
{
|
|
540
|
+
href: logo.url,
|
|
541
|
+
className: cn("flex items-center", logoClassName),
|
|
542
|
+
children: imgElement
|
|
543
|
+
}
|
|
544
|
+
);
|
|
545
|
+
}
|
|
546
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
547
|
+
};
|
|
507
548
|
function HeroImageLeftContent({
|
|
508
549
|
sectionId = "hero-image-left-content",
|
|
509
550
|
badge,
|
|
@@ -528,7 +569,10 @@ function HeroImageLeftContent({
|
|
|
528
569
|
actionsClassName,
|
|
529
570
|
imageContainerClassName,
|
|
530
571
|
imageClassName,
|
|
531
|
-
optixFlowConfig
|
|
572
|
+
optixFlowConfig,
|
|
573
|
+
logo,
|
|
574
|
+
logoSlot,
|
|
575
|
+
logoClassName
|
|
532
576
|
}) {
|
|
533
577
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
534
578
|
Section,
|
|
@@ -565,6 +609,7 @@ function HeroImageLeftContent({
|
|
|
565
609
|
badge,
|
|
566
610
|
badgeIcon
|
|
567
611
|
] }),
|
|
612
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
568
613
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
569
614
|
"h1",
|
|
570
615
|
{
|
|
@@ -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 { A as ActionConfig, 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';
|
|
@@ -99,9 +102,21 @@ interface HeroImageLeftContentProps {
|
|
|
99
102
|
* OptixFlow image optimization configuration
|
|
100
103
|
*/
|
|
101
104
|
optixFlowConfig?: OptixFlowConfig;
|
|
105
|
+
/**
|
|
106
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
107
|
+
*/
|
|
108
|
+
logo?: LogoConfig;
|
|
109
|
+
/**
|
|
110
|
+
* Custom slot for logo (overrides logo prop)
|
|
111
|
+
*/
|
|
112
|
+
logoSlot?: React.ReactNode;
|
|
113
|
+
/**
|
|
114
|
+
* Additional CSS classes for the logo container
|
|
115
|
+
*/
|
|
116
|
+
logoClassName?: string;
|
|
102
117
|
/** Optional Section ID */
|
|
103
118
|
sectionId?: string;
|
|
104
119
|
}
|
|
105
|
-
declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, }: HeroImageLeftContentProps): React.JSX.Element;
|
|
120
|
+
declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroImageLeftContentProps): React.JSX.Element;
|
|
106
121
|
|
|
107
122
|
export { HeroImageLeftContent, type HeroImageLeftContentProps };
|
|
@@ -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 { A as ActionConfig, 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';
|
|
@@ -99,9 +102,21 @@ interface HeroImageLeftContentProps {
|
|
|
99
102
|
* OptixFlow image optimization configuration
|
|
100
103
|
*/
|
|
101
104
|
optixFlowConfig?: OptixFlowConfig;
|
|
105
|
+
/**
|
|
106
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
107
|
+
*/
|
|
108
|
+
logo?: LogoConfig;
|
|
109
|
+
/**
|
|
110
|
+
* Custom slot for logo (overrides logo prop)
|
|
111
|
+
*/
|
|
112
|
+
logoSlot?: React.ReactNode;
|
|
113
|
+
/**
|
|
114
|
+
* Additional CSS classes for the logo container
|
|
115
|
+
*/
|
|
116
|
+
logoClassName?: string;
|
|
102
117
|
/** Optional Section ID */
|
|
103
118
|
sectionId?: string;
|
|
104
119
|
}
|
|
105
|
-
declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, }: HeroImageLeftContentProps): React.JSX.Element;
|
|
120
|
+
declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroImageLeftContentProps): React.JSX.Element;
|
|
106
121
|
|
|
107
122
|
export { HeroImageLeftContent, type HeroImageLeftContentProps };
|
|
@@ -498,6 +498,47 @@ function ActionComponent({ action }) {
|
|
|
498
498
|
}
|
|
499
499
|
);
|
|
500
500
|
}
|
|
501
|
+
var SIZE_CLASSES = {
|
|
502
|
+
sm: "max-h-6 sm:max-h-7",
|
|
503
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
504
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
505
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
506
|
+
};
|
|
507
|
+
var BrandLogo = ({
|
|
508
|
+
logo,
|
|
509
|
+
logoSlot,
|
|
510
|
+
logoClassName,
|
|
511
|
+
size = "md",
|
|
512
|
+
optixFlowConfig
|
|
513
|
+
}) => {
|
|
514
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
515
|
+
if (!logo || !logo.src) return null;
|
|
516
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
517
|
+
Img,
|
|
518
|
+
{
|
|
519
|
+
src: logo.src,
|
|
520
|
+
className: cn(
|
|
521
|
+
"w-auto object-contain",
|
|
522
|
+
SIZE_CLASSES[size],
|
|
523
|
+
logo.className
|
|
524
|
+
),
|
|
525
|
+
alt: logo.alt || "Logo",
|
|
526
|
+
optixFlowConfig,
|
|
527
|
+
loading: "eager"
|
|
528
|
+
}
|
|
529
|
+
);
|
|
530
|
+
if (logo.url) {
|
|
531
|
+
return /* @__PURE__ */ jsx(
|
|
532
|
+
Pressable,
|
|
533
|
+
{
|
|
534
|
+
href: logo.url,
|
|
535
|
+
className: cn("flex items-center", logoClassName),
|
|
536
|
+
children: imgElement
|
|
537
|
+
}
|
|
538
|
+
);
|
|
539
|
+
}
|
|
540
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
541
|
+
};
|
|
501
542
|
function HeroImageLeftContent({
|
|
502
543
|
sectionId = "hero-image-left-content",
|
|
503
544
|
badge,
|
|
@@ -522,7 +563,10 @@ function HeroImageLeftContent({
|
|
|
522
563
|
actionsClassName,
|
|
523
564
|
imageContainerClassName,
|
|
524
565
|
imageClassName,
|
|
525
|
-
optixFlowConfig
|
|
566
|
+
optixFlowConfig,
|
|
567
|
+
logo,
|
|
568
|
+
logoSlot,
|
|
569
|
+
logoClassName
|
|
526
570
|
}) {
|
|
527
571
|
return /* @__PURE__ */ jsx(
|
|
528
572
|
Section,
|
|
@@ -559,6 +603,7 @@ function HeroImageLeftContent({
|
|
|
559
603
|
badge,
|
|
560
604
|
badgeIcon
|
|
561
605
|
] }),
|
|
606
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
562
607
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
563
608
|
"h1",
|
|
564
609
|
{
|
|
@@ -692,6 +692,47 @@ function ActionComponent({ action }) {
|
|
|
692
692
|
}
|
|
693
693
|
);
|
|
694
694
|
}
|
|
695
|
+
var SIZE_CLASSES = {
|
|
696
|
+
sm: "max-h-6 sm:max-h-7",
|
|
697
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
698
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
699
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
700
|
+
};
|
|
701
|
+
var BrandLogo = ({
|
|
702
|
+
logo,
|
|
703
|
+
logoSlot,
|
|
704
|
+
logoClassName,
|
|
705
|
+
size = "md",
|
|
706
|
+
optixFlowConfig
|
|
707
|
+
}) => {
|
|
708
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
709
|
+
if (!logo || !logo.src) return null;
|
|
710
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
711
|
+
img.Img,
|
|
712
|
+
{
|
|
713
|
+
src: logo.src,
|
|
714
|
+
className: cn(
|
|
715
|
+
"w-auto object-contain",
|
|
716
|
+
SIZE_CLASSES[size],
|
|
717
|
+
logo.className
|
|
718
|
+
),
|
|
719
|
+
alt: logo.alt || "Logo",
|
|
720
|
+
optixFlowConfig,
|
|
721
|
+
loading: "eager"
|
|
722
|
+
}
|
|
723
|
+
);
|
|
724
|
+
if (logo.url) {
|
|
725
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
726
|
+
pressable.Pressable,
|
|
727
|
+
{
|
|
728
|
+
href: logo.url,
|
|
729
|
+
className: cn("flex items-center", logoClassName),
|
|
730
|
+
children: imgElement
|
|
731
|
+
}
|
|
732
|
+
);
|
|
733
|
+
}
|
|
734
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
735
|
+
};
|
|
695
736
|
var DEFAULT_STYLE_RULES = {
|
|
696
737
|
formContainer: "",
|
|
697
738
|
fieldsContainer: "",
|
|
@@ -762,7 +803,10 @@ function HeroImageSlider({
|
|
|
762
803
|
formHeadingClassName,
|
|
763
804
|
privacyNotice,
|
|
764
805
|
privacyNoticeClassName,
|
|
765
|
-
gridClassName
|
|
806
|
+
gridClassName,
|
|
807
|
+
logo,
|
|
808
|
+
logoSlot,
|
|
809
|
+
logoClassName
|
|
766
810
|
}) {
|
|
767
811
|
const renderContent = React3.useMemo(() => {
|
|
768
812
|
if (contentSlot) return contentSlot;
|
|
@@ -784,6 +828,7 @@ function HeroImageSlider({
|
|
|
784
828
|
children: eyebrow
|
|
785
829
|
}
|
|
786
830
|
) : eyebrow : null,
|
|
831
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
787
832
|
heading ? typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
788
833
|
"h1",
|
|
789
834
|
{
|
|
@@ -2,11 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import { ImageSliderImage } from './image-slider.cjs';
|
|
3
3
|
import { FormEngineProps } from '@page-speed/forms/integration';
|
|
4
4
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
|
|
5
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
|
|
6
7
|
import 'react/jsx-runtime';
|
|
7
8
|
import 'class-variance-authority';
|
|
8
9
|
import '@page-speed/pressable';
|
|
9
10
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
11
|
+
import './dynamic-icon.cjs';
|
|
12
|
+
import '@page-speed/icon';
|
|
10
13
|
|
|
11
14
|
interface HeroImageSliderProps {
|
|
12
15
|
/**
|
|
@@ -157,6 +160,18 @@ interface HeroImageSliderProps {
|
|
|
157
160
|
* Additional CSS classes for the grid layout
|
|
158
161
|
*/
|
|
159
162
|
gridClassName?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
165
|
+
*/
|
|
166
|
+
logo?: LogoConfig;
|
|
167
|
+
/**
|
|
168
|
+
* Custom slot for logo (overrides logo prop)
|
|
169
|
+
*/
|
|
170
|
+
logoSlot?: React.ReactNode;
|
|
171
|
+
/**
|
|
172
|
+
* Additional CSS classes for the logo container
|
|
173
|
+
*/
|
|
174
|
+
logoClassName?: string;
|
|
160
175
|
/** Optional Section ID */
|
|
161
176
|
sectionId?: string;
|
|
162
177
|
}
|
|
@@ -164,6 +179,6 @@ interface HeroImageSliderProps {
|
|
|
164
179
|
* HeroImageSlider - A full-width hero with background image slider,
|
|
165
180
|
* split layout with content on the left and a form card on the right.
|
|
166
181
|
*/
|
|
167
|
-
declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, }: HeroImageSliderProps): React.JSX.Element;
|
|
182
|
+
declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, logo, logoSlot, logoClassName, }: HeroImageSliderProps): React.JSX.Element;
|
|
168
183
|
|
|
169
184
|
export { HeroImageSlider, type HeroImageSliderProps };
|
|
@@ -2,11 +2,14 @@ import * as React from 'react';
|
|
|
2
2
|
import { ImageSliderImage } from './image-slider.js';
|
|
3
3
|
import { FormEngineProps } from '@page-speed/forms/integration';
|
|
4
4
|
import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
|
|
5
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
5
6
|
import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.js';
|
|
6
7
|
import 'react/jsx-runtime';
|
|
7
8
|
import 'class-variance-authority';
|
|
8
9
|
import '@page-speed/pressable';
|
|
9
10
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
11
|
+
import './dynamic-icon.js';
|
|
12
|
+
import '@page-speed/icon';
|
|
10
13
|
|
|
11
14
|
interface HeroImageSliderProps {
|
|
12
15
|
/**
|
|
@@ -157,6 +160,18 @@ interface HeroImageSliderProps {
|
|
|
157
160
|
* Additional CSS classes for the grid layout
|
|
158
161
|
*/
|
|
159
162
|
gridClassName?: string;
|
|
163
|
+
/**
|
|
164
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
165
|
+
*/
|
|
166
|
+
logo?: LogoConfig;
|
|
167
|
+
/**
|
|
168
|
+
* Custom slot for logo (overrides logo prop)
|
|
169
|
+
*/
|
|
170
|
+
logoSlot?: React.ReactNode;
|
|
171
|
+
/**
|
|
172
|
+
* Additional CSS classes for the logo container
|
|
173
|
+
*/
|
|
174
|
+
logoClassName?: string;
|
|
160
175
|
/** Optional Section ID */
|
|
161
176
|
sectionId?: string;
|
|
162
177
|
}
|
|
@@ -164,6 +179,6 @@ interface HeroImageSliderProps {
|
|
|
164
179
|
* HeroImageSlider - A full-width hero with background image slider,
|
|
165
180
|
* split layout with content on the left and a form card on the right.
|
|
166
181
|
*/
|
|
167
|
-
declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, }: HeroImageSliderProps): React.JSX.Element;
|
|
182
|
+
declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, logo, logoSlot, logoClassName, }: HeroImageSliderProps): React.JSX.Element;
|
|
168
183
|
|
|
169
184
|
export { HeroImageSlider, type HeroImageSliderProps };
|
|
@@ -671,6 +671,47 @@ function ActionComponent({ action }) {
|
|
|
671
671
|
}
|
|
672
672
|
);
|
|
673
673
|
}
|
|
674
|
+
var SIZE_CLASSES = {
|
|
675
|
+
sm: "max-h-6 sm:max-h-7",
|
|
676
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
677
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
678
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
679
|
+
};
|
|
680
|
+
var BrandLogo = ({
|
|
681
|
+
logo,
|
|
682
|
+
logoSlot,
|
|
683
|
+
logoClassName,
|
|
684
|
+
size = "md",
|
|
685
|
+
optixFlowConfig
|
|
686
|
+
}) => {
|
|
687
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
688
|
+
if (!logo || !logo.src) return null;
|
|
689
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
690
|
+
Img,
|
|
691
|
+
{
|
|
692
|
+
src: logo.src,
|
|
693
|
+
className: cn(
|
|
694
|
+
"w-auto object-contain",
|
|
695
|
+
SIZE_CLASSES[size],
|
|
696
|
+
logo.className
|
|
697
|
+
),
|
|
698
|
+
alt: logo.alt || "Logo",
|
|
699
|
+
optixFlowConfig,
|
|
700
|
+
loading: "eager"
|
|
701
|
+
}
|
|
702
|
+
);
|
|
703
|
+
if (logo.url) {
|
|
704
|
+
return /* @__PURE__ */ jsx(
|
|
705
|
+
Pressable,
|
|
706
|
+
{
|
|
707
|
+
href: logo.url,
|
|
708
|
+
className: cn("flex items-center", logoClassName),
|
|
709
|
+
children: imgElement
|
|
710
|
+
}
|
|
711
|
+
);
|
|
712
|
+
}
|
|
713
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
714
|
+
};
|
|
674
715
|
var DEFAULT_STYLE_RULES = {
|
|
675
716
|
formContainer: "",
|
|
676
717
|
fieldsContainer: "",
|
|
@@ -741,7 +782,10 @@ function HeroImageSlider({
|
|
|
741
782
|
formHeadingClassName,
|
|
742
783
|
privacyNotice,
|
|
743
784
|
privacyNoticeClassName,
|
|
744
|
-
gridClassName
|
|
785
|
+
gridClassName,
|
|
786
|
+
logo,
|
|
787
|
+
logoSlot,
|
|
788
|
+
logoClassName
|
|
745
789
|
}) {
|
|
746
790
|
const renderContent = useMemo(() => {
|
|
747
791
|
if (contentSlot) return contentSlot;
|
|
@@ -763,6 +807,7 @@ function HeroImageSlider({
|
|
|
763
807
|
children: eyebrow
|
|
764
808
|
}
|
|
765
809
|
) : eyebrow : null,
|
|
810
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
766
811
|
heading ? typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
767
812
|
"h1",
|
|
768
813
|
{
|
|
@@ -495,6 +495,47 @@ function ActionComponent({ action }) {
|
|
|
495
495
|
}
|
|
496
496
|
);
|
|
497
497
|
}
|
|
498
|
+
var SIZE_CLASSES = {
|
|
499
|
+
sm: "max-h-6 sm:max-h-7",
|
|
500
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
501
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
502
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
503
|
+
};
|
|
504
|
+
var BrandLogo = ({
|
|
505
|
+
logo,
|
|
506
|
+
logoSlot,
|
|
507
|
+
logoClassName,
|
|
508
|
+
size = "md",
|
|
509
|
+
optixFlowConfig
|
|
510
|
+
}) => {
|
|
511
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
512
|
+
if (!logo || !logo.src) return null;
|
|
513
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
514
|
+
img.Img,
|
|
515
|
+
{
|
|
516
|
+
src: logo.src,
|
|
517
|
+
className: cn(
|
|
518
|
+
"w-auto object-contain",
|
|
519
|
+
SIZE_CLASSES[size],
|
|
520
|
+
logo.className
|
|
521
|
+
),
|
|
522
|
+
alt: logo.alt || "Logo",
|
|
523
|
+
optixFlowConfig,
|
|
524
|
+
loading: "eager"
|
|
525
|
+
}
|
|
526
|
+
);
|
|
527
|
+
if (logo.url) {
|
|
528
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
529
|
+
pressable.Pressable,
|
|
530
|
+
{
|
|
531
|
+
href: logo.url,
|
|
532
|
+
className: cn("flex items-center", logoClassName),
|
|
533
|
+
children: imgElement
|
|
534
|
+
}
|
|
535
|
+
);
|
|
536
|
+
}
|
|
537
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
538
|
+
};
|
|
498
539
|
function HeroInnovationImageGrid({
|
|
499
540
|
sectionId = "hero-innovation-image-grid",
|
|
500
541
|
heading,
|
|
@@ -514,7 +555,10 @@ function HeroInnovationImageGrid({
|
|
|
514
555
|
headingClassName,
|
|
515
556
|
descriptionClassName,
|
|
516
557
|
imagesClassName,
|
|
517
|
-
optixFlowConfig
|
|
558
|
+
optixFlowConfig,
|
|
559
|
+
logo,
|
|
560
|
+
logoSlot,
|
|
561
|
+
logoClassName
|
|
518
562
|
}) {
|
|
519
563
|
const renderImages = React.useMemo(() => {
|
|
520
564
|
if (imagesSlot) return imagesSlot;
|
|
@@ -584,6 +628,7 @@ function HeroInnovationImageGrid({
|
|
|
584
628
|
className: cn("flex flex-col gap-2 md:gap-12", contentClassName),
|
|
585
629
|
children: [
|
|
586
630
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
|
|
631
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
587
632
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
588
633
|
"h1",
|
|
589
634
|
{
|
|
@@ -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 { A as ActionConfig, I as ImageItem, 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';
|
|
@@ -78,9 +81,21 @@ interface HeroInnovationImageGridProps {
|
|
|
78
81
|
* OptixFlow image optimization configuration
|
|
79
82
|
*/
|
|
80
83
|
optixFlowConfig?: OptixFlowConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
86
|
+
*/
|
|
87
|
+
logo?: LogoConfig;
|
|
88
|
+
/**
|
|
89
|
+
* Custom slot for logo (overrides logo prop)
|
|
90
|
+
*/
|
|
91
|
+
logoSlot?: React.ReactNode;
|
|
92
|
+
/**
|
|
93
|
+
* Additional CSS classes for the logo container
|
|
94
|
+
*/
|
|
95
|
+
logoClassName?: string;
|
|
81
96
|
/** Optional Section ID */
|
|
82
97
|
sectionId?: string;
|
|
83
98
|
}
|
|
84
|
-
declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroInnovationImageGridProps): React.JSX.Element;
|
|
99
|
+
declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroInnovationImageGridProps): React.JSX.Element;
|
|
85
100
|
|
|
86
101
|
export { HeroInnovationImageGrid, type HeroInnovationImageGridProps };
|
|
@@ -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 { A as ActionConfig, I as ImageItem, 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';
|
|
@@ -78,9 +81,21 @@ interface HeroInnovationImageGridProps {
|
|
|
78
81
|
* OptixFlow image optimization configuration
|
|
79
82
|
*/
|
|
80
83
|
optixFlowConfig?: OptixFlowConfig;
|
|
84
|
+
/**
|
|
85
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
86
|
+
*/
|
|
87
|
+
logo?: LogoConfig;
|
|
88
|
+
/**
|
|
89
|
+
* Custom slot for logo (overrides logo prop)
|
|
90
|
+
*/
|
|
91
|
+
logoSlot?: React.ReactNode;
|
|
92
|
+
/**
|
|
93
|
+
* Additional CSS classes for the logo container
|
|
94
|
+
*/
|
|
95
|
+
logoClassName?: string;
|
|
81
96
|
/** Optional Section ID */
|
|
82
97
|
sectionId?: string;
|
|
83
98
|
}
|
|
84
|
-
declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroInnovationImageGridProps): React.JSX.Element;
|
|
99
|
+
declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroInnovationImageGridProps): React.JSX.Element;
|
|
85
100
|
|
|
86
101
|
export { HeroInnovationImageGrid, type HeroInnovationImageGridProps };
|