@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
|
@@ -8,6 +8,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
8
8
|
var pressable = require('@page-speed/pressable');
|
|
9
9
|
var reactSlot = require('@radix-ui/react-slot');
|
|
10
10
|
var classVarianceAuthority = require('class-variance-authority');
|
|
11
|
+
var img = require('@page-speed/img');
|
|
11
12
|
|
|
12
13
|
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
13
14
|
|
|
@@ -503,6 +504,47 @@ function ActionComponent({ action }) {
|
|
|
503
504
|
}
|
|
504
505
|
);
|
|
505
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
|
+
};
|
|
506
548
|
function HeroMinimalCenteredDark({
|
|
507
549
|
sectionId = "hero-minimal-centered-dark",
|
|
508
550
|
badge,
|
|
@@ -523,7 +565,10 @@ function HeroMinimalCenteredDark({
|
|
|
523
565
|
headingClassName,
|
|
524
566
|
descriptionClassName,
|
|
525
567
|
actionsClassName,
|
|
526
|
-
statsClassName
|
|
568
|
+
statsClassName,
|
|
569
|
+
logo,
|
|
570
|
+
logoSlot,
|
|
571
|
+
logoClassName
|
|
527
572
|
}) {
|
|
528
573
|
const renderStats = React.useMemo(() => {
|
|
529
574
|
if (statsSlot) return statsSlot;
|
|
@@ -552,6 +597,7 @@ function HeroMinimalCenteredDark({
|
|
|
552
597
|
containerClassName,
|
|
553
598
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
554
599
|
badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("px-4 py-1", badgeClassName), children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge }),
|
|
600
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
|
|
555
601
|
(heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
556
602
|
"h1",
|
|
557
603
|
{
|
|
@@ -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, k as StatItem } 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';
|
|
@@ -86,9 +89,21 @@ interface HeroMinimalCenteredDarkProps {
|
|
|
86
89
|
* Additional CSS classes for the stats container
|
|
87
90
|
*/
|
|
88
91
|
statsClassName?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
94
|
+
*/
|
|
95
|
+
logo?: LogoConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Custom slot for logo (overrides logo prop)
|
|
98
|
+
*/
|
|
99
|
+
logoSlot?: React.ReactNode;
|
|
100
|
+
/**
|
|
101
|
+
* Additional CSS classes for the logo container
|
|
102
|
+
*/
|
|
103
|
+
logoClassName?: string;
|
|
89
104
|
/** Optional Section ID */
|
|
90
105
|
sectionId?: string;
|
|
91
106
|
}
|
|
92
|
-
declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
|
|
107
|
+
declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
|
|
93
108
|
|
|
94
109
|
export { HeroMinimalCenteredDark, type HeroMinimalCenteredDarkProps };
|
|
@@ -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, k as StatItem } 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';
|
|
@@ -86,9 +89,21 @@ interface HeroMinimalCenteredDarkProps {
|
|
|
86
89
|
* Additional CSS classes for the stats container
|
|
87
90
|
*/
|
|
88
91
|
statsClassName?: string;
|
|
92
|
+
/**
|
|
93
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
94
|
+
*/
|
|
95
|
+
logo?: LogoConfig;
|
|
96
|
+
/**
|
|
97
|
+
* Custom slot for logo (overrides logo prop)
|
|
98
|
+
*/
|
|
99
|
+
logoSlot?: React.ReactNode;
|
|
100
|
+
/**
|
|
101
|
+
* Additional CSS classes for the logo container
|
|
102
|
+
*/
|
|
103
|
+
logoClassName?: string;
|
|
89
104
|
/** Optional Section ID */
|
|
90
105
|
sectionId?: string;
|
|
91
106
|
}
|
|
92
|
-
declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
|
|
107
|
+
declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
|
|
93
108
|
|
|
94
109
|
export { HeroMinimalCenteredDark, type HeroMinimalCenteredDarkProps };
|
|
@@ -6,6 +6,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
6
6
|
import { Pressable, buttonVariants } from '@page-speed/pressable';
|
|
7
7
|
import { Slot } from '@radix-ui/react-slot';
|
|
8
8
|
import { cva } from 'class-variance-authority';
|
|
9
|
+
import { Img } from '@page-speed/img';
|
|
9
10
|
|
|
10
11
|
// components/blocks/hero/hero-minimal-centered-dark.tsx
|
|
11
12
|
function cn(...inputs) {
|
|
@@ -497,6 +498,47 @@ function ActionComponent({ action }) {
|
|
|
497
498
|
}
|
|
498
499
|
);
|
|
499
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
|
+
};
|
|
500
542
|
function HeroMinimalCenteredDark({
|
|
501
543
|
sectionId = "hero-minimal-centered-dark",
|
|
502
544
|
badge,
|
|
@@ -517,7 +559,10 @@ function HeroMinimalCenteredDark({
|
|
|
517
559
|
headingClassName,
|
|
518
560
|
descriptionClassName,
|
|
519
561
|
actionsClassName,
|
|
520
|
-
statsClassName
|
|
562
|
+
statsClassName,
|
|
563
|
+
logo,
|
|
564
|
+
logoSlot,
|
|
565
|
+
logoClassName
|
|
521
566
|
}) {
|
|
522
567
|
const renderStats = useMemo(() => {
|
|
523
568
|
if (statsSlot) return statsSlot;
|
|
@@ -546,6 +591,7 @@ function HeroMinimalCenteredDark({
|
|
|
546
591
|
containerClassName,
|
|
547
592
|
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
548
593
|
badge && /* @__PURE__ */ jsx(Badge, { className: cn("px-4 py-1", badgeClassName), children: typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge }),
|
|
594
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
|
|
549
595
|
(heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
550
596
|
"h1",
|
|
551
597
|
{
|
|
@@ -456,6 +456,47 @@ function Badge({
|
|
|
456
456
|
}
|
|
457
457
|
);
|
|
458
458
|
}
|
|
459
|
+
var SIZE_CLASSES = {
|
|
460
|
+
sm: "max-h-6 sm:max-h-7",
|
|
461
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
462
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
463
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
464
|
+
};
|
|
465
|
+
var BrandLogo = ({
|
|
466
|
+
logo,
|
|
467
|
+
logoSlot,
|
|
468
|
+
logoClassName,
|
|
469
|
+
size = "md",
|
|
470
|
+
optixFlowConfig
|
|
471
|
+
}) => {
|
|
472
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
473
|
+
if (!logo || !logo.src) return null;
|
|
474
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
475
|
+
img.Img,
|
|
476
|
+
{
|
|
477
|
+
src: logo.src,
|
|
478
|
+
className: cn(
|
|
479
|
+
"w-auto object-contain",
|
|
480
|
+
SIZE_CLASSES[size],
|
|
481
|
+
logo.className
|
|
482
|
+
),
|
|
483
|
+
alt: logo.alt || "Logo",
|
|
484
|
+
optixFlowConfig,
|
|
485
|
+
loading: "eager"
|
|
486
|
+
}
|
|
487
|
+
);
|
|
488
|
+
if (logo.url) {
|
|
489
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
490
|
+
pressable.Pressable,
|
|
491
|
+
{
|
|
492
|
+
href: logo.url,
|
|
493
|
+
className: cn("flex items-center", logoClassName),
|
|
494
|
+
children: imgElement
|
|
495
|
+
}
|
|
496
|
+
);
|
|
497
|
+
}
|
|
498
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
499
|
+
};
|
|
459
500
|
function HeroMobileAppDownload({
|
|
460
501
|
sectionId = "hero-mobile-app-download",
|
|
461
502
|
badgeText,
|
|
@@ -483,7 +524,10 @@ function HeroMobileAppDownload({
|
|
|
483
524
|
description,
|
|
484
525
|
descriptionClassName,
|
|
485
526
|
imageClassName,
|
|
486
|
-
optixFlowConfig
|
|
527
|
+
optixFlowConfig,
|
|
528
|
+
logo,
|
|
529
|
+
logoSlot,
|
|
530
|
+
logoClassName
|
|
487
531
|
}) {
|
|
488
532
|
const renderBadge = React.useMemo(() => {
|
|
489
533
|
if (badgeSlot) return badgeSlot;
|
|
@@ -617,6 +661,7 @@ function HeroMobileAppDownload({
|
|
|
617
661
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-8 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 md:gap-20", children: [
|
|
618
662
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
619
663
|
renderBadge,
|
|
664
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
620
665
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
621
666
|
"h1",
|
|
622
667
|
{
|
|
@@ -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';
|
|
@@ -146,9 +149,21 @@ interface HeroMobileAppDownloadProps {
|
|
|
146
149
|
* OptixFlow image optimization configuration
|
|
147
150
|
*/
|
|
148
151
|
optixFlowConfig?: OptixFlowConfig;
|
|
152
|
+
/**
|
|
153
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
154
|
+
*/
|
|
155
|
+
logo?: LogoConfig;
|
|
156
|
+
/**
|
|
157
|
+
* Custom slot for logo (overrides logo prop)
|
|
158
|
+
*/
|
|
159
|
+
logoSlot?: React.ReactNode;
|
|
160
|
+
/**
|
|
161
|
+
* Additional CSS classes for the logo container
|
|
162
|
+
*/
|
|
163
|
+
logoClassName?: string;
|
|
149
164
|
/** Optional Section ID */
|
|
150
165
|
sectionId?: string;
|
|
151
166
|
}
|
|
152
|
-
declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, }: HeroMobileAppDownloadProps): React.JSX.Element;
|
|
167
|
+
declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMobileAppDownloadProps): React.JSX.Element;
|
|
153
168
|
|
|
154
169
|
export { HeroMobileAppDownload, type HeroMobileAppDownloadProps };
|
|
@@ -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';
|
|
@@ -146,9 +149,21 @@ interface HeroMobileAppDownloadProps {
|
|
|
146
149
|
* OptixFlow image optimization configuration
|
|
147
150
|
*/
|
|
148
151
|
optixFlowConfig?: OptixFlowConfig;
|
|
152
|
+
/**
|
|
153
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
154
|
+
*/
|
|
155
|
+
logo?: LogoConfig;
|
|
156
|
+
/**
|
|
157
|
+
* Custom slot for logo (overrides logo prop)
|
|
158
|
+
*/
|
|
159
|
+
logoSlot?: React.ReactNode;
|
|
160
|
+
/**
|
|
161
|
+
* Additional CSS classes for the logo container
|
|
162
|
+
*/
|
|
163
|
+
logoClassName?: string;
|
|
149
164
|
/** Optional Section ID */
|
|
150
165
|
sectionId?: string;
|
|
151
166
|
}
|
|
152
|
-
declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, }: HeroMobileAppDownloadProps): React.JSX.Element;
|
|
167
|
+
declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMobileAppDownloadProps): React.JSX.Element;
|
|
153
168
|
|
|
154
169
|
export { HeroMobileAppDownload, type HeroMobileAppDownloadProps };
|
|
@@ -435,6 +435,47 @@ function Badge({
|
|
|
435
435
|
}
|
|
436
436
|
);
|
|
437
437
|
}
|
|
438
|
+
var SIZE_CLASSES = {
|
|
439
|
+
sm: "max-h-6 sm:max-h-7",
|
|
440
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
441
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
442
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
443
|
+
};
|
|
444
|
+
var BrandLogo = ({
|
|
445
|
+
logo,
|
|
446
|
+
logoSlot,
|
|
447
|
+
logoClassName,
|
|
448
|
+
size = "md",
|
|
449
|
+
optixFlowConfig
|
|
450
|
+
}) => {
|
|
451
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
452
|
+
if (!logo || !logo.src) return null;
|
|
453
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
454
|
+
Img,
|
|
455
|
+
{
|
|
456
|
+
src: logo.src,
|
|
457
|
+
className: cn(
|
|
458
|
+
"w-auto object-contain",
|
|
459
|
+
SIZE_CLASSES[size],
|
|
460
|
+
logo.className
|
|
461
|
+
),
|
|
462
|
+
alt: logo.alt || "Logo",
|
|
463
|
+
optixFlowConfig,
|
|
464
|
+
loading: "eager"
|
|
465
|
+
}
|
|
466
|
+
);
|
|
467
|
+
if (logo.url) {
|
|
468
|
+
return /* @__PURE__ */ jsx(
|
|
469
|
+
Pressable,
|
|
470
|
+
{
|
|
471
|
+
href: logo.url,
|
|
472
|
+
className: cn("flex items-center", logoClassName),
|
|
473
|
+
children: imgElement
|
|
474
|
+
}
|
|
475
|
+
);
|
|
476
|
+
}
|
|
477
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
478
|
+
};
|
|
438
479
|
function HeroMobileAppDownload({
|
|
439
480
|
sectionId = "hero-mobile-app-download",
|
|
440
481
|
badgeText,
|
|
@@ -462,7 +503,10 @@ function HeroMobileAppDownload({
|
|
|
462
503
|
description,
|
|
463
504
|
descriptionClassName,
|
|
464
505
|
imageClassName,
|
|
465
|
-
optixFlowConfig
|
|
506
|
+
optixFlowConfig,
|
|
507
|
+
logo,
|
|
508
|
+
logoSlot,
|
|
509
|
+
logoClassName
|
|
466
510
|
}) {
|
|
467
511
|
const renderBadge = useMemo(() => {
|
|
468
512
|
if (badgeSlot) return badgeSlot;
|
|
@@ -596,6 +640,7 @@ function HeroMobileAppDownload({
|
|
|
596
640
|
children: /* @__PURE__ */ jsx("div", { className: "pt-8 md:pt-0", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 md:gap-20", children: [
|
|
597
641
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
|
|
598
642
|
renderBadge,
|
|
643
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
599
644
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
600
645
|
"h1",
|
|
601
646
|
{
|
|
@@ -6,6 +6,8 @@ var clsx = require('clsx');
|
|
|
6
6
|
var tailwindMerge = require('tailwind-merge');
|
|
7
7
|
var jsxRuntime = require('react/jsx-runtime');
|
|
8
8
|
var integration = require('@page-speed/forms/integration');
|
|
9
|
+
var pressable = require('@page-speed/pressable');
|
|
10
|
+
var img = require('@page-speed/img');
|
|
9
11
|
|
|
10
12
|
function _interopNamespace(e) {
|
|
11
13
|
if (e && e.__esModule) return e;
|
|
@@ -407,6 +409,47 @@ var Section = React3__namespace.default.forwardRef(
|
|
|
407
409
|
}
|
|
408
410
|
);
|
|
409
411
|
Section.displayName = "Section";
|
|
412
|
+
var SIZE_CLASSES = {
|
|
413
|
+
sm: "max-h-6 sm:max-h-7",
|
|
414
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
415
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
416
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
417
|
+
};
|
|
418
|
+
var BrandLogo = ({
|
|
419
|
+
logo,
|
|
420
|
+
logoSlot,
|
|
421
|
+
logoClassName,
|
|
422
|
+
size = "md",
|
|
423
|
+
optixFlowConfig
|
|
424
|
+
}) => {
|
|
425
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
426
|
+
if (!logo || !logo.src) return null;
|
|
427
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
428
|
+
img.Img,
|
|
429
|
+
{
|
|
430
|
+
src: logo.src,
|
|
431
|
+
className: cn(
|
|
432
|
+
"w-auto object-contain",
|
|
433
|
+
SIZE_CLASSES[size],
|
|
434
|
+
logo.className
|
|
435
|
+
),
|
|
436
|
+
alt: logo.alt || "Logo",
|
|
437
|
+
optixFlowConfig,
|
|
438
|
+
loading: "eager"
|
|
439
|
+
}
|
|
440
|
+
);
|
|
441
|
+
if (logo.url) {
|
|
442
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
443
|
+
pressable.Pressable,
|
|
444
|
+
{
|
|
445
|
+
href: logo.url,
|
|
446
|
+
className: cn("flex items-center", logoClassName),
|
|
447
|
+
children: imgElement
|
|
448
|
+
}
|
|
449
|
+
);
|
|
450
|
+
}
|
|
451
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
452
|
+
};
|
|
410
453
|
var DEFAULT_STYLE_RULES = {
|
|
411
454
|
formContainer: "mt-10 flex justify-center items-center w-full max-w-md flex-col gap-4 sm:flex-row",
|
|
412
455
|
fieldsContainer: "",
|
|
@@ -444,7 +487,10 @@ function HeroNewsletterMinimal({
|
|
|
444
487
|
headingClassName,
|
|
445
488
|
descriptionClassName,
|
|
446
489
|
disclaimerClassName,
|
|
447
|
-
statsClassName
|
|
490
|
+
statsClassName,
|
|
491
|
+
logo,
|
|
492
|
+
logoSlot,
|
|
493
|
+
logoClassName
|
|
448
494
|
}) {
|
|
449
495
|
const renderStats = React3__namespace.useMemo(() => {
|
|
450
496
|
if (statsSlot) return statsSlot;
|
|
@@ -524,6 +570,7 @@ function HeroNewsletterMinimal({
|
|
|
524
570
|
className,
|
|
525
571
|
containerClassName,
|
|
526
572
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center", children: [
|
|
573
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
527
574
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
528
575
|
"h1",
|
|
529
576
|
{
|
|
@@ -1,8 +1,11 @@
|
|
|
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 { FormEngineProps } from '@page-speed/forms/integration';
|
|
4
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
4
5
|
import { A as ActionConfig, k as StatItem } from './blocks-DyouPohq.cjs';
|
|
5
6
|
import 'react/jsx-runtime';
|
|
7
|
+
import './dynamic-icon.cjs';
|
|
8
|
+
import '@page-speed/icon';
|
|
6
9
|
import 'class-variance-authority';
|
|
7
10
|
import '@page-speed/pressable';
|
|
8
11
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
@@ -91,9 +94,21 @@ interface HeroNewsletterMinimalProps {
|
|
|
91
94
|
* Additional CSS classes for the pattern overlay
|
|
92
95
|
*/
|
|
93
96
|
patternClassName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
99
|
+
*/
|
|
100
|
+
logo?: LogoConfig;
|
|
101
|
+
/**
|
|
102
|
+
* Custom slot for logo (overrides logo prop)
|
|
103
|
+
*/
|
|
104
|
+
logoSlot?: React.ReactNode;
|
|
105
|
+
/**
|
|
106
|
+
* Additional CSS classes for the logo container
|
|
107
|
+
*/
|
|
108
|
+
logoClassName?: string;
|
|
94
109
|
/** Optional Section ID */
|
|
95
110
|
sectionId?: string;
|
|
96
111
|
}
|
|
97
|
-
declare function HeroNewsletterMinimal({ sectionId, heading, description, formEngineSetup, buttonAction, helperText, formSlot, disclaimer, stats, patternClassName, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, disclaimerClassName, statsClassName, }: HeroNewsletterMinimalProps): React.JSX.Element;
|
|
112
|
+
declare function HeroNewsletterMinimal({ sectionId, heading, description, formEngineSetup, buttonAction, helperText, formSlot, disclaimer, stats, patternClassName, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, disclaimerClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroNewsletterMinimalProps): React.JSX.Element;
|
|
98
113
|
|
|
99
114
|
export { HeroNewsletterMinimal, type HeroNewsletterMinimalProps };
|
|
@@ -1,8 +1,11 @@
|
|
|
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 { FormEngineProps } from '@page-speed/forms/integration';
|
|
4
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
4
5
|
import { A as ActionConfig, k as StatItem } from './blocks-DyouPohq.js';
|
|
5
6
|
import 'react/jsx-runtime';
|
|
7
|
+
import './dynamic-icon.js';
|
|
8
|
+
import '@page-speed/icon';
|
|
6
9
|
import 'class-variance-authority';
|
|
7
10
|
import '@page-speed/pressable';
|
|
8
11
|
import '@opensite/hooks/usePlatformFromUrl';
|
|
@@ -91,9 +94,21 @@ interface HeroNewsletterMinimalProps {
|
|
|
91
94
|
* Additional CSS classes for the pattern overlay
|
|
92
95
|
*/
|
|
93
96
|
patternClassName?: string;
|
|
97
|
+
/**
|
|
98
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
99
|
+
*/
|
|
100
|
+
logo?: LogoConfig;
|
|
101
|
+
/**
|
|
102
|
+
* Custom slot for logo (overrides logo prop)
|
|
103
|
+
*/
|
|
104
|
+
logoSlot?: React.ReactNode;
|
|
105
|
+
/**
|
|
106
|
+
* Additional CSS classes for the logo container
|
|
107
|
+
*/
|
|
108
|
+
logoClassName?: string;
|
|
94
109
|
/** Optional Section ID */
|
|
95
110
|
sectionId?: string;
|
|
96
111
|
}
|
|
97
|
-
declare function HeroNewsletterMinimal({ sectionId, heading, description, formEngineSetup, buttonAction, helperText, formSlot, disclaimer, stats, patternClassName, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, disclaimerClassName, statsClassName, }: HeroNewsletterMinimalProps): React.JSX.Element;
|
|
112
|
+
declare function HeroNewsletterMinimal({ sectionId, heading, description, formEngineSetup, buttonAction, helperText, formSlot, disclaimer, stats, patternClassName, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, disclaimerClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroNewsletterMinimalProps): React.JSX.Element;
|
|
98
113
|
|
|
99
114
|
export { HeroNewsletterMinimal, type HeroNewsletterMinimalProps };
|
|
@@ -5,6 +5,8 @@ import { clsx } from 'clsx';
|
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
7
|
import { FormEngine } from '@page-speed/forms/integration';
|
|
8
|
+
import { Pressable } from '@page-speed/pressable';
|
|
9
|
+
import { Img } from '@page-speed/img';
|
|
8
10
|
|
|
9
11
|
// components/blocks/hero/hero-newsletter-minimal.tsx
|
|
10
12
|
function cn(...inputs) {
|
|
@@ -386,6 +388,47 @@ var Section = React3__default.forwardRef(
|
|
|
386
388
|
}
|
|
387
389
|
);
|
|
388
390
|
Section.displayName = "Section";
|
|
391
|
+
var SIZE_CLASSES = {
|
|
392
|
+
sm: "max-h-6 sm:max-h-7",
|
|
393
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
394
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
395
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
396
|
+
};
|
|
397
|
+
var BrandLogo = ({
|
|
398
|
+
logo,
|
|
399
|
+
logoSlot,
|
|
400
|
+
logoClassName,
|
|
401
|
+
size = "md",
|
|
402
|
+
optixFlowConfig
|
|
403
|
+
}) => {
|
|
404
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
405
|
+
if (!logo || !logo.src) return null;
|
|
406
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
407
|
+
Img,
|
|
408
|
+
{
|
|
409
|
+
src: logo.src,
|
|
410
|
+
className: cn(
|
|
411
|
+
"w-auto object-contain",
|
|
412
|
+
SIZE_CLASSES[size],
|
|
413
|
+
logo.className
|
|
414
|
+
),
|
|
415
|
+
alt: logo.alt || "Logo",
|
|
416
|
+
optixFlowConfig,
|
|
417
|
+
loading: "eager"
|
|
418
|
+
}
|
|
419
|
+
);
|
|
420
|
+
if (logo.url) {
|
|
421
|
+
return /* @__PURE__ */ jsx(
|
|
422
|
+
Pressable,
|
|
423
|
+
{
|
|
424
|
+
href: logo.url,
|
|
425
|
+
className: cn("flex items-center", logoClassName),
|
|
426
|
+
children: imgElement
|
|
427
|
+
}
|
|
428
|
+
);
|
|
429
|
+
}
|
|
430
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
431
|
+
};
|
|
389
432
|
var DEFAULT_STYLE_RULES = {
|
|
390
433
|
formContainer: "mt-10 flex justify-center items-center w-full max-w-md flex-col gap-4 sm:flex-row",
|
|
391
434
|
fieldsContainer: "",
|
|
@@ -423,7 +466,10 @@ function HeroNewsletterMinimal({
|
|
|
423
466
|
headingClassName,
|
|
424
467
|
descriptionClassName,
|
|
425
468
|
disclaimerClassName,
|
|
426
|
-
statsClassName
|
|
469
|
+
statsClassName,
|
|
470
|
+
logo,
|
|
471
|
+
logoSlot,
|
|
472
|
+
logoClassName
|
|
427
473
|
}) {
|
|
428
474
|
const renderStats = React3.useMemo(() => {
|
|
429
475
|
if (statsSlot) return statsSlot;
|
|
@@ -503,6 +549,7 @@ function HeroNewsletterMinimal({
|
|
|
503
549
|
className,
|
|
504
550
|
containerClassName,
|
|
505
551
|
children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center justify-center", children: [
|
|
552
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
506
553
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
507
554
|
"h1",
|
|
508
555
|
{
|