@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
|
@@ -9,6 +9,7 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
9
9
|
var reactSlot = require('@radix-ui/react-slot');
|
|
10
10
|
var classVarianceAuthority = require('class-variance-authority');
|
|
11
11
|
var pressable = require('@page-speed/pressable');
|
|
12
|
+
var img = require('@page-speed/img');
|
|
12
13
|
|
|
13
14
|
function _interopNamespace(e) {
|
|
14
15
|
if (e && e.__esModule) return e;
|
|
@@ -533,6 +534,47 @@ function ActionComponent({ action }) {
|
|
|
533
534
|
}
|
|
534
535
|
);
|
|
535
536
|
}
|
|
537
|
+
var SIZE_CLASSES = {
|
|
538
|
+
sm: "max-h-6 sm:max-h-7",
|
|
539
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
540
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
541
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
542
|
+
};
|
|
543
|
+
var BrandLogo = ({
|
|
544
|
+
logo,
|
|
545
|
+
logoSlot,
|
|
546
|
+
logoClassName,
|
|
547
|
+
size = "md",
|
|
548
|
+
optixFlowConfig
|
|
549
|
+
}) => {
|
|
550
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
551
|
+
if (!logo || !logo.src) return null;
|
|
552
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
553
|
+
img.Img,
|
|
554
|
+
{
|
|
555
|
+
src: logo.src,
|
|
556
|
+
className: cn(
|
|
557
|
+
"w-auto object-contain",
|
|
558
|
+
SIZE_CLASSES[size],
|
|
559
|
+
logo.className
|
|
560
|
+
),
|
|
561
|
+
alt: logo.alt || "Logo",
|
|
562
|
+
optixFlowConfig,
|
|
563
|
+
loading: "eager"
|
|
564
|
+
}
|
|
565
|
+
);
|
|
566
|
+
if (logo.url) {
|
|
567
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
568
|
+
pressable.Pressable,
|
|
569
|
+
{
|
|
570
|
+
href: logo.url,
|
|
571
|
+
className: cn("flex items-center", logoClassName),
|
|
572
|
+
children: imgElement
|
|
573
|
+
}
|
|
574
|
+
);
|
|
575
|
+
}
|
|
576
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
577
|
+
};
|
|
536
578
|
function HeroDeveloperToolsCode({
|
|
537
579
|
sectionId = "hero-developer-tools-code",
|
|
538
580
|
badgeText,
|
|
@@ -556,7 +598,10 @@ function HeroDeveloperToolsCode({
|
|
|
556
598
|
descriptionClassName,
|
|
557
599
|
actionsClassName,
|
|
558
600
|
patternClassName,
|
|
559
|
-
terminalClassName
|
|
601
|
+
terminalClassName,
|
|
602
|
+
logo,
|
|
603
|
+
logoSlot,
|
|
604
|
+
logoClassName
|
|
560
605
|
}) {
|
|
561
606
|
const renderBadge = React.useMemo(() => {
|
|
562
607
|
if (badgeSlot) return badgeSlot;
|
|
@@ -621,6 +666,7 @@ function HeroDeveloperToolsCode({
|
|
|
621
666
|
children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-8 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
622
667
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-4 md:gap-8", contentClassName), children: [
|
|
623
668
|
renderBadge,
|
|
669
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
624
670
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
625
671
|
"h1",
|
|
626
672
|
{
|
|
@@ -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 } 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';
|
|
@@ -113,9 +116,21 @@ interface HeroDeveloperToolsCodeProps {
|
|
|
113
116
|
* Additional CSS classes for the pattern overlay
|
|
114
117
|
*/
|
|
115
118
|
patternClassName?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
121
|
+
*/
|
|
122
|
+
logo?: LogoConfig;
|
|
123
|
+
/**
|
|
124
|
+
* Custom slot for logo (overrides logo prop)
|
|
125
|
+
*/
|
|
126
|
+
logoSlot?: React.ReactNode;
|
|
127
|
+
/**
|
|
128
|
+
* Additional CSS classes for the logo container
|
|
129
|
+
*/
|
|
130
|
+
logoClassName?: string;
|
|
116
131
|
/** Optional Section ID */
|
|
117
132
|
sectionId?: string;
|
|
118
133
|
}
|
|
119
|
-
declare function HeroDeveloperToolsCode({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, terminalTitle, terminalLines, terminalSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, patternClassName, terminalClassName, }: HeroDeveloperToolsCodeProps): React.JSX.Element;
|
|
134
|
+
declare function HeroDeveloperToolsCode({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, terminalTitle, terminalLines, terminalSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, patternClassName, terminalClassName, logo, logoSlot, logoClassName, }: HeroDeveloperToolsCodeProps): React.JSX.Element;
|
|
120
135
|
|
|
121
136
|
export { HeroDeveloperToolsCode, type HeroDeveloperToolsCodeProps };
|
|
@@ -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 } 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';
|
|
@@ -113,9 +116,21 @@ interface HeroDeveloperToolsCodeProps {
|
|
|
113
116
|
* Additional CSS classes for the pattern overlay
|
|
114
117
|
*/
|
|
115
118
|
patternClassName?: string;
|
|
119
|
+
/**
|
|
120
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
121
|
+
*/
|
|
122
|
+
logo?: LogoConfig;
|
|
123
|
+
/**
|
|
124
|
+
* Custom slot for logo (overrides logo prop)
|
|
125
|
+
*/
|
|
126
|
+
logoSlot?: React.ReactNode;
|
|
127
|
+
/**
|
|
128
|
+
* Additional CSS classes for the logo container
|
|
129
|
+
*/
|
|
130
|
+
logoClassName?: string;
|
|
116
131
|
/** Optional Section ID */
|
|
117
132
|
sectionId?: string;
|
|
118
133
|
}
|
|
119
|
-
declare function HeroDeveloperToolsCode({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, terminalTitle, terminalLines, terminalSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, patternClassName, terminalClassName, }: HeroDeveloperToolsCodeProps): React.JSX.Element;
|
|
134
|
+
declare function HeroDeveloperToolsCode({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, terminalTitle, terminalLines, terminalSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, patternClassName, terminalClassName, logo, logoSlot, logoClassName, }: HeroDeveloperToolsCodeProps): React.JSX.Element;
|
|
120
135
|
|
|
121
136
|
export { HeroDeveloperToolsCode, type HeroDeveloperToolsCodeProps };
|
|
@@ -8,6 +8,7 @@ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
|
8
8
|
import { Slot } from '@radix-ui/react-slot';
|
|
9
9
|
import { cva } from 'class-variance-authority';
|
|
10
10
|
import { Pressable, buttonVariants } from '@page-speed/pressable';
|
|
11
|
+
import { Img } from '@page-speed/img';
|
|
11
12
|
|
|
12
13
|
// components/blocks/hero/hero-developer-tools-code.tsx
|
|
13
14
|
function cn(...inputs) {
|
|
@@ -512,6 +513,47 @@ function ActionComponent({ action }) {
|
|
|
512
513
|
}
|
|
513
514
|
);
|
|
514
515
|
}
|
|
516
|
+
var SIZE_CLASSES = {
|
|
517
|
+
sm: "max-h-6 sm:max-h-7",
|
|
518
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
519
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
520
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
521
|
+
};
|
|
522
|
+
var BrandLogo = ({
|
|
523
|
+
logo,
|
|
524
|
+
logoSlot,
|
|
525
|
+
logoClassName,
|
|
526
|
+
size = "md",
|
|
527
|
+
optixFlowConfig
|
|
528
|
+
}) => {
|
|
529
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
530
|
+
if (!logo || !logo.src) return null;
|
|
531
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
532
|
+
Img,
|
|
533
|
+
{
|
|
534
|
+
src: logo.src,
|
|
535
|
+
className: cn(
|
|
536
|
+
"w-auto object-contain",
|
|
537
|
+
SIZE_CLASSES[size],
|
|
538
|
+
logo.className
|
|
539
|
+
),
|
|
540
|
+
alt: logo.alt || "Logo",
|
|
541
|
+
optixFlowConfig,
|
|
542
|
+
loading: "eager"
|
|
543
|
+
}
|
|
544
|
+
);
|
|
545
|
+
if (logo.url) {
|
|
546
|
+
return /* @__PURE__ */ jsx(
|
|
547
|
+
Pressable,
|
|
548
|
+
{
|
|
549
|
+
href: logo.url,
|
|
550
|
+
className: cn("flex items-center", logoClassName),
|
|
551
|
+
children: imgElement
|
|
552
|
+
}
|
|
553
|
+
);
|
|
554
|
+
}
|
|
555
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
556
|
+
};
|
|
515
557
|
function HeroDeveloperToolsCode({
|
|
516
558
|
sectionId = "hero-developer-tools-code",
|
|
517
559
|
badgeText,
|
|
@@ -535,7 +577,10 @@ function HeroDeveloperToolsCode({
|
|
|
535
577
|
descriptionClassName,
|
|
536
578
|
actionsClassName,
|
|
537
579
|
patternClassName,
|
|
538
|
-
terminalClassName
|
|
580
|
+
terminalClassName,
|
|
581
|
+
logo,
|
|
582
|
+
logoSlot,
|
|
583
|
+
logoClassName
|
|
539
584
|
}) {
|
|
540
585
|
const renderBadge = useMemo(() => {
|
|
541
586
|
if (badgeSlot) return badgeSlot;
|
|
@@ -600,6 +645,7 @@ function HeroDeveloperToolsCode({
|
|
|
600
645
|
children: /* @__PURE__ */ jsx("div", { className: "pt-8 md:pt-0", children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
|
|
601
646
|
/* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-4 md:gap-8", contentClassName), children: [
|
|
602
647
|
renderBadge,
|
|
648
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
603
649
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
604
650
|
"h1",
|
|
605
651
|
{
|
|
@@ -470,6 +470,47 @@ function ActionComponent({ action }) {
|
|
|
470
470
|
}
|
|
471
471
|
);
|
|
472
472
|
}
|
|
473
|
+
var SIZE_CLASSES = {
|
|
474
|
+
sm: "max-h-6 sm:max-h-7",
|
|
475
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
476
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
477
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
478
|
+
};
|
|
479
|
+
var BrandLogo = ({
|
|
480
|
+
logo,
|
|
481
|
+
logoSlot,
|
|
482
|
+
logoClassName,
|
|
483
|
+
size = "md",
|
|
484
|
+
optixFlowConfig
|
|
485
|
+
}) => {
|
|
486
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
487
|
+
if (!logo || !logo.src) return null;
|
|
488
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
489
|
+
img.Img,
|
|
490
|
+
{
|
|
491
|
+
src: logo.src,
|
|
492
|
+
className: cn(
|
|
493
|
+
"w-auto object-contain",
|
|
494
|
+
SIZE_CLASSES[size],
|
|
495
|
+
logo.className
|
|
496
|
+
),
|
|
497
|
+
alt: logo.alt || "Logo",
|
|
498
|
+
optixFlowConfig,
|
|
499
|
+
loading: "eager"
|
|
500
|
+
}
|
|
501
|
+
);
|
|
502
|
+
if (logo.url) {
|
|
503
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
504
|
+
pressable.Pressable,
|
|
505
|
+
{
|
|
506
|
+
href: logo.url,
|
|
507
|
+
className: cn("flex items-center", logoClassName),
|
|
508
|
+
children: imgElement
|
|
509
|
+
}
|
|
510
|
+
);
|
|
511
|
+
}
|
|
512
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
513
|
+
};
|
|
473
514
|
function HeroDigitalAgencyFullscreen({
|
|
474
515
|
sectionId = "hero-digital-agency-fullscreen",
|
|
475
516
|
heading,
|
|
@@ -487,7 +528,10 @@ function HeroDigitalAgencyFullscreen({
|
|
|
487
528
|
headingClassName,
|
|
488
529
|
descriptionClassName,
|
|
489
530
|
actionsClassName,
|
|
490
|
-
optixFlowConfig
|
|
531
|
+
optixFlowConfig,
|
|
532
|
+
logo,
|
|
533
|
+
logoSlot,
|
|
534
|
+
logoClassName
|
|
491
535
|
}) {
|
|
492
536
|
const [isImageLoaded, setIsImageLoaded] = React.useState(false);
|
|
493
537
|
const bgImageRef = React.useRef(null);
|
|
@@ -545,6 +589,7 @@ function HeroDigitalAgencyFullscreen({
|
|
|
545
589
|
contentClassName
|
|
546
590
|
),
|
|
547
591
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "container flex flex-col gap-6 mb-6 md:mb-24 px-6 md:px-0", children: [
|
|
592
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
|
|
548
593
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
549
594
|
"h1",
|
|
550
595
|
{
|
|
@@ -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';
|
|
@@ -71,9 +74,21 @@ interface HeroDigitalAgencyFullscreenProps {
|
|
|
71
74
|
* OptixFlow image optimization configuration
|
|
72
75
|
*/
|
|
73
76
|
optixFlowConfig?: OptixFlowConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
79
|
+
*/
|
|
80
|
+
logo?: LogoConfig;
|
|
81
|
+
/**
|
|
82
|
+
* Custom slot for logo (overrides logo prop)
|
|
83
|
+
*/
|
|
84
|
+
logoSlot?: React.ReactNode;
|
|
85
|
+
/**
|
|
86
|
+
* Additional CSS classes for the logo container
|
|
87
|
+
*/
|
|
88
|
+
logoClassName?: string;
|
|
74
89
|
/** Optional Section ID */
|
|
75
90
|
sectionId?: string;
|
|
76
91
|
}
|
|
77
|
-
declare function HeroDigitalAgencyFullscreen({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroDigitalAgencyFullscreenProps): React.JSX.Element;
|
|
92
|
+
declare function HeroDigitalAgencyFullscreen({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroDigitalAgencyFullscreenProps): React.JSX.Element;
|
|
78
93
|
|
|
79
94
|
export { HeroDigitalAgencyFullscreen, type HeroDigitalAgencyFullscreenProps };
|
|
@@ -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';
|
|
@@ -71,9 +74,21 @@ interface HeroDigitalAgencyFullscreenProps {
|
|
|
71
74
|
* OptixFlow image optimization configuration
|
|
72
75
|
*/
|
|
73
76
|
optixFlowConfig?: OptixFlowConfig;
|
|
77
|
+
/**
|
|
78
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
79
|
+
*/
|
|
80
|
+
logo?: LogoConfig;
|
|
81
|
+
/**
|
|
82
|
+
* Custom slot for logo (overrides logo prop)
|
|
83
|
+
*/
|
|
84
|
+
logoSlot?: React.ReactNode;
|
|
85
|
+
/**
|
|
86
|
+
* Additional CSS classes for the logo container
|
|
87
|
+
*/
|
|
88
|
+
logoClassName?: string;
|
|
74
89
|
/** Optional Section ID */
|
|
75
90
|
sectionId?: string;
|
|
76
91
|
}
|
|
77
|
-
declare function HeroDigitalAgencyFullscreen({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroDigitalAgencyFullscreenProps): React.JSX.Element;
|
|
92
|
+
declare function HeroDigitalAgencyFullscreen({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroDigitalAgencyFullscreenProps): React.JSX.Element;
|
|
78
93
|
|
|
79
94
|
export { HeroDigitalAgencyFullscreen, type HeroDigitalAgencyFullscreenProps };
|
|
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
|
|
|
464
464
|
}
|
|
465
465
|
);
|
|
466
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
|
+
};
|
|
467
508
|
function HeroDigitalAgencyFullscreen({
|
|
468
509
|
sectionId = "hero-digital-agency-fullscreen",
|
|
469
510
|
heading,
|
|
@@ -481,7 +522,10 @@ function HeroDigitalAgencyFullscreen({
|
|
|
481
522
|
headingClassName,
|
|
482
523
|
descriptionClassName,
|
|
483
524
|
actionsClassName,
|
|
484
|
-
optixFlowConfig
|
|
525
|
+
optixFlowConfig,
|
|
526
|
+
logo,
|
|
527
|
+
logoSlot,
|
|
528
|
+
logoClassName
|
|
485
529
|
}) {
|
|
486
530
|
const [isImageLoaded, setIsImageLoaded] = useState(false);
|
|
487
531
|
const bgImageRef = useRef(null);
|
|
@@ -539,6 +583,7 @@ function HeroDigitalAgencyFullscreen({
|
|
|
539
583
|
contentClassName
|
|
540
584
|
),
|
|
541
585
|
children: /* @__PURE__ */ jsxs("div", { className: "container flex flex-col gap-6 mb-6 md:mb-24 px-6 md:px-0", children: [
|
|
586
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
|
|
542
587
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
543
588
|
"h1",
|
|
544
589
|
{
|
|
@@ -534,6 +534,47 @@ function ActionComponent({ action }) {
|
|
|
534
534
|
}
|
|
535
535
|
);
|
|
536
536
|
}
|
|
537
|
+
var SIZE_CLASSES = {
|
|
538
|
+
sm: "max-h-6 sm:max-h-7",
|
|
539
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
540
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
541
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
542
|
+
};
|
|
543
|
+
var BrandLogo = ({
|
|
544
|
+
logo,
|
|
545
|
+
logoSlot,
|
|
546
|
+
logoClassName,
|
|
547
|
+
size = "md",
|
|
548
|
+
optixFlowConfig
|
|
549
|
+
}) => {
|
|
550
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
551
|
+
if (!logo || !logo.src) return null;
|
|
552
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
553
|
+
img.Img,
|
|
554
|
+
{
|
|
555
|
+
src: logo.src,
|
|
556
|
+
className: cn(
|
|
557
|
+
"w-auto object-contain",
|
|
558
|
+
SIZE_CLASSES[size],
|
|
559
|
+
logo.className
|
|
560
|
+
),
|
|
561
|
+
alt: logo.alt || "Logo",
|
|
562
|
+
optixFlowConfig,
|
|
563
|
+
loading: "eager"
|
|
564
|
+
}
|
|
565
|
+
);
|
|
566
|
+
if (logo.url) {
|
|
567
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
568
|
+
pressable.Pressable,
|
|
569
|
+
{
|
|
570
|
+
href: logo.url,
|
|
571
|
+
className: cn("flex items-center", logoClassName),
|
|
572
|
+
children: imgElement
|
|
573
|
+
}
|
|
574
|
+
);
|
|
575
|
+
}
|
|
576
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
577
|
+
};
|
|
537
578
|
function HeroEcommerceProductShowcase({
|
|
538
579
|
sectionId = "hero-ecommerce-product-showcase",
|
|
539
580
|
badgeText,
|
|
@@ -560,7 +601,10 @@ function HeroEcommerceProductShowcase({
|
|
|
560
601
|
actionsClassName,
|
|
561
602
|
statsClassName,
|
|
562
603
|
imagesClassName,
|
|
563
|
-
optixFlowConfig
|
|
604
|
+
optixFlowConfig,
|
|
605
|
+
logo,
|
|
606
|
+
logoSlot,
|
|
607
|
+
logoClassName
|
|
564
608
|
}) {
|
|
565
609
|
const renderBadge = React.useMemo(() => {
|
|
566
610
|
if (badgeSlot) return badgeSlot;
|
|
@@ -691,6 +735,7 @@ function HeroEcommerceProductShowcase({
|
|
|
691
735
|
),
|
|
692
736
|
children: [
|
|
693
737
|
renderBadge,
|
|
738
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
694
739
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
695
740
|
"h1",
|
|
696
741
|
{
|
|
@@ -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, 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';
|
|
@@ -107,9 +110,21 @@ interface HeroEcommerceProductShowcaseProps {
|
|
|
107
110
|
* OptixFlow image optimization configuration
|
|
108
111
|
*/
|
|
109
112
|
optixFlowConfig?: OptixFlowConfig;
|
|
113
|
+
/**
|
|
114
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
115
|
+
*/
|
|
116
|
+
logo?: LogoConfig;
|
|
117
|
+
/**
|
|
118
|
+
* Custom slot for logo (overrides logo prop)
|
|
119
|
+
*/
|
|
120
|
+
logoSlot?: React.ReactNode;
|
|
121
|
+
/**
|
|
122
|
+
* Additional CSS classes for the logo container
|
|
123
|
+
*/
|
|
124
|
+
logoClassName?: string;
|
|
110
125
|
/** Optional Section ID */
|
|
111
126
|
sectionId?: string;
|
|
112
127
|
}
|
|
113
|
-
declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
|
|
128
|
+
declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
|
|
114
129
|
|
|
115
130
|
export { HeroEcommerceProductShowcase, type HeroEcommerceProductShowcaseProps };
|
|
@@ -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, 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';
|
|
@@ -107,9 +110,21 @@ interface HeroEcommerceProductShowcaseProps {
|
|
|
107
110
|
* OptixFlow image optimization configuration
|
|
108
111
|
*/
|
|
109
112
|
optixFlowConfig?: OptixFlowConfig;
|
|
113
|
+
/**
|
|
114
|
+
* Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
|
|
115
|
+
*/
|
|
116
|
+
logo?: LogoConfig;
|
|
117
|
+
/**
|
|
118
|
+
* Custom slot for logo (overrides logo prop)
|
|
119
|
+
*/
|
|
120
|
+
logoSlot?: React.ReactNode;
|
|
121
|
+
/**
|
|
122
|
+
* Additional CSS classes for the logo container
|
|
123
|
+
*/
|
|
124
|
+
logoClassName?: string;
|
|
110
125
|
/** Optional Section ID */
|
|
111
126
|
sectionId?: string;
|
|
112
127
|
}
|
|
113
|
-
declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
|
|
128
|
+
declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
|
|
114
129
|
|
|
115
130
|
export { HeroEcommerceProductShowcase, type HeroEcommerceProductShowcaseProps };
|
|
@@ -513,6 +513,47 @@ function ActionComponent({ action }) {
|
|
|
513
513
|
}
|
|
514
514
|
);
|
|
515
515
|
}
|
|
516
|
+
var SIZE_CLASSES = {
|
|
517
|
+
sm: "max-h-6 sm:max-h-7",
|
|
518
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
519
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
520
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
521
|
+
};
|
|
522
|
+
var BrandLogo = ({
|
|
523
|
+
logo,
|
|
524
|
+
logoSlot,
|
|
525
|
+
logoClassName,
|
|
526
|
+
size = "md",
|
|
527
|
+
optixFlowConfig
|
|
528
|
+
}) => {
|
|
529
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
530
|
+
if (!logo || !logo.src) return null;
|
|
531
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
532
|
+
Img,
|
|
533
|
+
{
|
|
534
|
+
src: logo.src,
|
|
535
|
+
className: cn(
|
|
536
|
+
"w-auto object-contain",
|
|
537
|
+
SIZE_CLASSES[size],
|
|
538
|
+
logo.className
|
|
539
|
+
),
|
|
540
|
+
alt: logo.alt || "Logo",
|
|
541
|
+
optixFlowConfig,
|
|
542
|
+
loading: "eager"
|
|
543
|
+
}
|
|
544
|
+
);
|
|
545
|
+
if (logo.url) {
|
|
546
|
+
return /* @__PURE__ */ jsx(
|
|
547
|
+
Pressable,
|
|
548
|
+
{
|
|
549
|
+
href: logo.url,
|
|
550
|
+
className: cn("flex items-center", logoClassName),
|
|
551
|
+
children: imgElement
|
|
552
|
+
}
|
|
553
|
+
);
|
|
554
|
+
}
|
|
555
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
556
|
+
};
|
|
516
557
|
function HeroEcommerceProductShowcase({
|
|
517
558
|
sectionId = "hero-ecommerce-product-showcase",
|
|
518
559
|
badgeText,
|
|
@@ -539,7 +580,10 @@ function HeroEcommerceProductShowcase({
|
|
|
539
580
|
actionsClassName,
|
|
540
581
|
statsClassName,
|
|
541
582
|
imagesClassName,
|
|
542
|
-
optixFlowConfig
|
|
583
|
+
optixFlowConfig,
|
|
584
|
+
logo,
|
|
585
|
+
logoSlot,
|
|
586
|
+
logoClassName
|
|
543
587
|
}) {
|
|
544
588
|
const renderBadge = useMemo(() => {
|
|
545
589
|
if (badgeSlot) return badgeSlot;
|
|
@@ -670,6 +714,7 @@ function HeroEcommerceProductShowcase({
|
|
|
670
714
|
),
|
|
671
715
|
children: [
|
|
672
716
|
renderBadge,
|
|
717
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
|
|
673
718
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
674
719
|
"h1",
|
|
675
720
|
{
|