@opensite/ui 3.6.9 → 3.7.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/badge.d.cts +1 -1
- package/dist/badge.d.ts +1 -1
- package/dist/hero-dashed-border-features.cjs +10 -1
- package/dist/hero-dashed-border-features.js +10 -1
- package/dist/hero-design-carousel-portfolio.cjs +1 -1
- package/dist/hero-design-carousel-portfolio.js +1 -1
- package/dist/hero-logo-centered-screenshot.cjs +52 -31
- package/dist/hero-logo-centered-screenshot.d.cts +12 -4
- package/dist/hero-logo-centered-screenshot.d.ts +12 -4
- package/dist/hero-logo-centered-screenshot.js +52 -31
- package/dist/hero-platform-features-grid.cjs +60 -27
- package/dist/hero-platform-features-grid.d.cts +12 -4
- package/dist/hero-platform-features-grid.d.ts +12 -4
- package/dist/hero-platform-features-grid.js +60 -27
- package/dist/hero-tech-carousel.cjs +55 -22
- package/dist/hero-tech-carousel.d.cts +12 -10
- package/dist/hero-tech-carousel.d.ts +12 -10
- package/dist/hero-tech-carousel.js +55 -22
- package/dist/hero-video-background-dark.cjs +3 -3
- package/dist/hero-video-background-dark.js +3 -3
- package/dist/registry.cjs +55 -85
- package/dist/registry.js +55 -85
- package/package.json +1 -1
package/dist/badge.d.cts
CHANGED
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
10
10
|
asChild?: boolean;
|
package/dist/badge.d.ts
CHANGED
|
@@ -4,7 +4,7 @@ import * as React from 'react';
|
|
|
4
4
|
import { VariantProps } from 'class-variance-authority';
|
|
5
5
|
|
|
6
6
|
declare const badgeVariants: (props?: ({
|
|
7
|
-
variant?: "
|
|
7
|
+
variant?: "outline" | "default" | "secondary" | "destructive" | null | undefined;
|
|
8
8
|
} & class_variance_authority_types.ClassProp) | undefined) => string;
|
|
9
9
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
10
10
|
asChild?: boolean;
|
|
@@ -623,7 +623,16 @@ function HeroDashedBorderFeatures({
|
|
|
623
623
|
),
|
|
624
624
|
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
625
625
|
renderAnnouncement,
|
|
626
|
-
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
626
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
627
|
+
"div",
|
|
628
|
+
{
|
|
629
|
+
className: cn(
|
|
630
|
+
"mt-8 md:mt-16 mb-0 flex justify-center",
|
|
631
|
+
logoClassName
|
|
632
|
+
),
|
|
633
|
+
children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" })
|
|
634
|
+
}
|
|
635
|
+
),
|
|
627
636
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
628
637
|
"h1",
|
|
629
638
|
{
|
|
@@ -602,7 +602,16 @@ function HeroDashedBorderFeatures({
|
|
|
602
602
|
),
|
|
603
603
|
children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl", children: [
|
|
604
604
|
renderAnnouncement,
|
|
605
|
-
(logo || logoSlot) && /* @__PURE__ */ jsx(
|
|
605
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx(
|
|
606
|
+
"div",
|
|
607
|
+
{
|
|
608
|
+
className: cn(
|
|
609
|
+
"mt-8 md:mt-16 mb-0 flex justify-center",
|
|
610
|
+
logoClassName
|
|
611
|
+
),
|
|
612
|
+
children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" })
|
|
613
|
+
}
|
|
614
|
+
),
|
|
606
615
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
607
616
|
"h1",
|
|
608
617
|
{
|
|
@@ -392,10 +392,53 @@ var Section = React__default.default.forwardRef(
|
|
|
392
392
|
}
|
|
393
393
|
);
|
|
394
394
|
Section.displayName = "Section";
|
|
395
|
+
var SIZE_CLASSES = {
|
|
396
|
+
sm: "max-h-6 sm:max-h-7",
|
|
397
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
398
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
399
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
400
|
+
};
|
|
401
|
+
var BrandLogo = ({
|
|
402
|
+
logo,
|
|
403
|
+
logoSlot,
|
|
404
|
+
logoClassName,
|
|
405
|
+
size = "md",
|
|
406
|
+
optixFlowConfig
|
|
407
|
+
}) => {
|
|
408
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
409
|
+
if (!logo || !logo.src) return null;
|
|
410
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
411
|
+
img.Img,
|
|
412
|
+
{
|
|
413
|
+
src: logo.src,
|
|
414
|
+
className: cn(
|
|
415
|
+
"w-auto object-contain",
|
|
416
|
+
SIZE_CLASSES[size],
|
|
417
|
+
logo.className
|
|
418
|
+
),
|
|
419
|
+
alt: logo.alt || "Logo",
|
|
420
|
+
optixFlowConfig,
|
|
421
|
+
loading: "eager"
|
|
422
|
+
}
|
|
423
|
+
);
|
|
424
|
+
if (logo.url) {
|
|
425
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
426
|
+
pressable.Pressable,
|
|
427
|
+
{
|
|
428
|
+
href: logo.url,
|
|
429
|
+
className: cn("flex items-center", logoClassName),
|
|
430
|
+
children: imgElement
|
|
431
|
+
}
|
|
432
|
+
);
|
|
433
|
+
}
|
|
434
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
435
|
+
};
|
|
436
|
+
var brand_logo_default = BrandLogo;
|
|
395
437
|
function HeroLogoCenteredScreenshot({
|
|
396
438
|
sectionId = "hero-logo-centered-screenshot",
|
|
397
439
|
logo,
|
|
398
440
|
logoSlot,
|
|
441
|
+
logoClassName,
|
|
399
442
|
heading,
|
|
400
443
|
description,
|
|
401
444
|
action,
|
|
@@ -414,20 +457,6 @@ function HeroLogoCenteredScreenshot({
|
|
|
414
457
|
imageClassName,
|
|
415
458
|
optixFlowConfig
|
|
416
459
|
}) {
|
|
417
|
-
const renderLogo = React.useMemo(() => {
|
|
418
|
-
if (logoSlot) return logoSlot;
|
|
419
|
-
if (!logo) return null;
|
|
420
|
-
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
421
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
422
|
-
img.Img,
|
|
423
|
-
{
|
|
424
|
-
src: logoSrc,
|
|
425
|
-
alt: logo.alt,
|
|
426
|
-
className: cn("h-10 md:h-16 object-contain", logo.className),
|
|
427
|
-
optixFlowConfig
|
|
428
|
-
}
|
|
429
|
-
);
|
|
430
|
-
}, [logoSlot, logo, optixFlowConfig]);
|
|
431
460
|
const renderAction = React.useMemo(() => {
|
|
432
461
|
if (actionSlot) return actionSlot;
|
|
433
462
|
if (!action) return null;
|
|
@@ -470,9 +499,10 @@ function HeroLogoCenteredScreenshot({
|
|
|
470
499
|
spacing,
|
|
471
500
|
pattern,
|
|
472
501
|
patternOpacity,
|
|
473
|
-
className
|
|
474
|
-
|
|
475
|
-
|
|
502
|
+
className,
|
|
503
|
+
containerClassName,
|
|
504
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
505
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-full md:max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
476
506
|
"div",
|
|
477
507
|
{
|
|
478
508
|
className: cn(
|
|
@@ -480,7 +510,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
480
510
|
contentClassName
|
|
481
511
|
),
|
|
482
512
|
children: [
|
|
483
|
-
|
|
513
|
+
(logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(brand_logo_default, { logo, logoSlot, size: "lg" }) }),
|
|
484
514
|
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center items-center w-full text-balance", children: [
|
|
485
515
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
486
516
|
"h1",
|
|
@@ -491,33 +521,24 @@ function HeroLogoCenteredScreenshot({
|
|
|
491
521
|
),
|
|
492
522
|
children: heading
|
|
493
523
|
}
|
|
494
|
-
) :
|
|
495
|
-
"h1",
|
|
496
|
-
{
|
|
497
|
-
className: cn(
|
|
498
|
-
"mb-4 text-3xl font-medium lg:text-5xl",
|
|
499
|
-
headingClassName
|
|
500
|
-
),
|
|
501
|
-
children: heading
|
|
502
|
-
}
|
|
503
|
-
)),
|
|
524
|
+
) : heading),
|
|
504
525
|
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
505
526
|
"p",
|
|
506
527
|
{
|
|
507
528
|
className: cn(
|
|
508
|
-
"max-w-3xl lg:text-xl",
|
|
529
|
+
"max-w-full md:max-w-3xl lg:text-xl",
|
|
509
530
|
descriptionClassName
|
|
510
531
|
),
|
|
511
532
|
children: description
|
|
512
533
|
}
|
|
513
|
-
) :
|
|
534
|
+
) : description)
|
|
514
535
|
] }),
|
|
515
536
|
renderAction
|
|
516
537
|
]
|
|
517
538
|
}
|
|
518
539
|
) }),
|
|
519
540
|
renderImage
|
|
520
|
-
] })
|
|
541
|
+
] })
|
|
521
542
|
}
|
|
522
543
|
);
|
|
523
544
|
}
|
|
@@ -1,20 +1,28 @@
|
|
|
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
|
|
3
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
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';
|
|
8
11
|
|
|
9
12
|
interface HeroLogoCenteredScreenshotProps {
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Brand logo configuration — renders above the announcement badge.
|
|
15
|
+
* LOGO MEDIA ONLY. Do not use photos, hero images, or video assets.
|
|
12
16
|
*/
|
|
13
|
-
logo?:
|
|
17
|
+
logo?: LogoConfig;
|
|
14
18
|
/**
|
|
15
19
|
* Custom slot for logo (overrides logo prop)
|
|
16
20
|
*/
|
|
17
21
|
logoSlot?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for the logo container
|
|
24
|
+
*/
|
|
25
|
+
logoClassName?: string;
|
|
18
26
|
/**
|
|
19
27
|
* Main heading content
|
|
20
28
|
*/
|
|
@@ -85,6 +93,6 @@ interface HeroLogoCenteredScreenshotProps {
|
|
|
85
93
|
/** Optional Section ID */
|
|
86
94
|
sectionId?: string;
|
|
87
95
|
}
|
|
88
|
-
declare function HeroLogoCenteredScreenshot({ sectionId, logo, logoSlot, heading, description, action, actionSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroLogoCenteredScreenshotProps): React.JSX.Element;
|
|
96
|
+
declare function HeroLogoCenteredScreenshot({ sectionId, logo, logoSlot, logoClassName, heading, description, action, actionSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroLogoCenteredScreenshotProps): React.JSX.Element;
|
|
89
97
|
|
|
90
98
|
export { HeroLogoCenteredScreenshot, type HeroLogoCenteredScreenshotProps };
|
|
@@ -1,20 +1,28 @@
|
|
|
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
|
|
3
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
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';
|
|
8
11
|
|
|
9
12
|
interface HeroLogoCenteredScreenshotProps {
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Brand logo configuration — renders above the announcement badge.
|
|
15
|
+
* LOGO MEDIA ONLY. Do not use photos, hero images, or video assets.
|
|
12
16
|
*/
|
|
13
|
-
logo?:
|
|
17
|
+
logo?: LogoConfig;
|
|
14
18
|
/**
|
|
15
19
|
* Custom slot for logo (overrides logo prop)
|
|
16
20
|
*/
|
|
17
21
|
logoSlot?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for the logo container
|
|
24
|
+
*/
|
|
25
|
+
logoClassName?: string;
|
|
18
26
|
/**
|
|
19
27
|
* Main heading content
|
|
20
28
|
*/
|
|
@@ -85,6 +93,6 @@ interface HeroLogoCenteredScreenshotProps {
|
|
|
85
93
|
/** Optional Section ID */
|
|
86
94
|
sectionId?: string;
|
|
87
95
|
}
|
|
88
|
-
declare function HeroLogoCenteredScreenshot({ sectionId, logo, logoSlot, heading, description, action, actionSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroLogoCenteredScreenshotProps): React.JSX.Element;
|
|
96
|
+
declare function HeroLogoCenteredScreenshot({ sectionId, logo, logoSlot, logoClassName, heading, description, action, actionSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroLogoCenteredScreenshotProps): React.JSX.Element;
|
|
89
97
|
|
|
90
98
|
export { HeroLogoCenteredScreenshot, type HeroLogoCenteredScreenshotProps };
|
|
@@ -386,10 +386,53 @@ var Section = React.forwardRef(
|
|
|
386
386
|
}
|
|
387
387
|
);
|
|
388
388
|
Section.displayName = "Section";
|
|
389
|
+
var SIZE_CLASSES = {
|
|
390
|
+
sm: "max-h-6 sm:max-h-7",
|
|
391
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
392
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
393
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
394
|
+
};
|
|
395
|
+
var BrandLogo = ({
|
|
396
|
+
logo,
|
|
397
|
+
logoSlot,
|
|
398
|
+
logoClassName,
|
|
399
|
+
size = "md",
|
|
400
|
+
optixFlowConfig
|
|
401
|
+
}) => {
|
|
402
|
+
if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
|
|
403
|
+
if (!logo || !logo.src) return null;
|
|
404
|
+
const imgElement = /* @__PURE__ */ jsx(
|
|
405
|
+
Img,
|
|
406
|
+
{
|
|
407
|
+
src: logo.src,
|
|
408
|
+
className: cn(
|
|
409
|
+
"w-auto object-contain",
|
|
410
|
+
SIZE_CLASSES[size],
|
|
411
|
+
logo.className
|
|
412
|
+
),
|
|
413
|
+
alt: logo.alt || "Logo",
|
|
414
|
+
optixFlowConfig,
|
|
415
|
+
loading: "eager"
|
|
416
|
+
}
|
|
417
|
+
);
|
|
418
|
+
if (logo.url) {
|
|
419
|
+
return /* @__PURE__ */ jsx(
|
|
420
|
+
Pressable,
|
|
421
|
+
{
|
|
422
|
+
href: logo.url,
|
|
423
|
+
className: cn("flex items-center", logoClassName),
|
|
424
|
+
children: imgElement
|
|
425
|
+
}
|
|
426
|
+
);
|
|
427
|
+
}
|
|
428
|
+
return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
429
|
+
};
|
|
430
|
+
var brand_logo_default = BrandLogo;
|
|
389
431
|
function HeroLogoCenteredScreenshot({
|
|
390
432
|
sectionId = "hero-logo-centered-screenshot",
|
|
391
433
|
logo,
|
|
392
434
|
logoSlot,
|
|
435
|
+
logoClassName,
|
|
393
436
|
heading,
|
|
394
437
|
description,
|
|
395
438
|
action,
|
|
@@ -408,20 +451,6 @@ function HeroLogoCenteredScreenshot({
|
|
|
408
451
|
imageClassName,
|
|
409
452
|
optixFlowConfig
|
|
410
453
|
}) {
|
|
411
|
-
const renderLogo = useMemo(() => {
|
|
412
|
-
if (logoSlot) return logoSlot;
|
|
413
|
-
if (!logo) return null;
|
|
414
|
-
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
415
|
-
return /* @__PURE__ */ jsx(
|
|
416
|
-
Img,
|
|
417
|
-
{
|
|
418
|
-
src: logoSrc,
|
|
419
|
-
alt: logo.alt,
|
|
420
|
-
className: cn("h-10 md:h-16 object-contain", logo.className),
|
|
421
|
-
optixFlowConfig
|
|
422
|
-
}
|
|
423
|
-
);
|
|
424
|
-
}, [logoSlot, logo, optixFlowConfig]);
|
|
425
454
|
const renderAction = useMemo(() => {
|
|
426
455
|
if (actionSlot) return actionSlot;
|
|
427
456
|
if (!action) return null;
|
|
@@ -464,9 +493,10 @@ function HeroLogoCenteredScreenshot({
|
|
|
464
493
|
spacing,
|
|
465
494
|
pattern,
|
|
466
495
|
patternOpacity,
|
|
467
|
-
className
|
|
468
|
-
|
|
469
|
-
|
|
496
|
+
className,
|
|
497
|
+
containerClassName,
|
|
498
|
+
children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
|
|
499
|
+
/* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-full md:max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
|
|
470
500
|
"div",
|
|
471
501
|
{
|
|
472
502
|
className: cn(
|
|
@@ -474,7 +504,7 @@ function HeroLogoCenteredScreenshot({
|
|
|
474
504
|
contentClassName
|
|
475
505
|
),
|
|
476
506
|
children: [
|
|
477
|
-
|
|
507
|
+
(logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(brand_logo_default, { logo, logoSlot, size: "lg" }) }),
|
|
478
508
|
/* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center items-center w-full text-balance", children: [
|
|
479
509
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
480
510
|
"h1",
|
|
@@ -485,33 +515,24 @@ function HeroLogoCenteredScreenshot({
|
|
|
485
515
|
),
|
|
486
516
|
children: heading
|
|
487
517
|
}
|
|
488
|
-
) :
|
|
489
|
-
"h1",
|
|
490
|
-
{
|
|
491
|
-
className: cn(
|
|
492
|
-
"mb-4 text-3xl font-medium lg:text-5xl",
|
|
493
|
-
headingClassName
|
|
494
|
-
),
|
|
495
|
-
children: heading
|
|
496
|
-
}
|
|
497
|
-
)),
|
|
518
|
+
) : heading),
|
|
498
519
|
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
499
520
|
"p",
|
|
500
521
|
{
|
|
501
522
|
className: cn(
|
|
502
|
-
"max-w-3xl lg:text-xl",
|
|
523
|
+
"max-w-full md:max-w-3xl lg:text-xl",
|
|
503
524
|
descriptionClassName
|
|
504
525
|
),
|
|
505
526
|
children: description
|
|
506
527
|
}
|
|
507
|
-
) :
|
|
528
|
+
) : description)
|
|
508
529
|
] }),
|
|
509
530
|
renderAction
|
|
510
531
|
]
|
|
511
532
|
}
|
|
512
533
|
) }),
|
|
513
534
|
renderImage
|
|
514
|
-
] })
|
|
535
|
+
] })
|
|
515
536
|
}
|
|
516
537
|
);
|
|
517
538
|
}
|
|
@@ -422,10 +422,53 @@ var Section = React__namespace.default.forwardRef(
|
|
|
422
422
|
}
|
|
423
423
|
);
|
|
424
424
|
Section.displayName = "Section";
|
|
425
|
+
var SIZE_CLASSES = {
|
|
426
|
+
sm: "max-h-6 sm:max-h-7",
|
|
427
|
+
md: "max-h-8 sm:max-h-9 lg:max-h-10",
|
|
428
|
+
lg: "max-h-10 sm:max-h-12 lg:max-h-14",
|
|
429
|
+
xl: "max-h-12 sm:max-h-14 lg:max-h-16"
|
|
430
|
+
};
|
|
431
|
+
var BrandLogo = ({
|
|
432
|
+
logo,
|
|
433
|
+
logoSlot,
|
|
434
|
+
logoClassName,
|
|
435
|
+
size = "md",
|
|
436
|
+
optixFlowConfig
|
|
437
|
+
}) => {
|
|
438
|
+
if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
|
|
439
|
+
if (!logo || !logo.src) return null;
|
|
440
|
+
const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
|
|
441
|
+
img.Img,
|
|
442
|
+
{
|
|
443
|
+
src: logo.src,
|
|
444
|
+
className: cn(
|
|
445
|
+
"w-auto object-contain",
|
|
446
|
+
SIZE_CLASSES[size],
|
|
447
|
+
logo.className
|
|
448
|
+
),
|
|
449
|
+
alt: logo.alt || "Logo",
|
|
450
|
+
optixFlowConfig,
|
|
451
|
+
loading: "eager"
|
|
452
|
+
}
|
|
453
|
+
);
|
|
454
|
+
if (logo.url) {
|
|
455
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
456
|
+
pressable.Pressable,
|
|
457
|
+
{
|
|
458
|
+
href: logo.url,
|
|
459
|
+
className: cn("flex items-center", logoClassName),
|
|
460
|
+
children: imgElement
|
|
461
|
+
}
|
|
462
|
+
);
|
|
463
|
+
}
|
|
464
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
|
|
465
|
+
};
|
|
466
|
+
var brand_logo_default = BrandLogo;
|
|
425
467
|
function HeroPlatformFeaturesGrid({
|
|
426
468
|
sectionId = "hero-platform-features-grid",
|
|
427
469
|
logo,
|
|
428
470
|
logoSlot,
|
|
471
|
+
logoClassName,
|
|
429
472
|
subtitle,
|
|
430
473
|
description,
|
|
431
474
|
heading,
|
|
@@ -444,23 +487,6 @@ function HeroPlatformFeaturesGrid({
|
|
|
444
487
|
featuresClassName,
|
|
445
488
|
optixFlowConfig
|
|
446
489
|
}) {
|
|
447
|
-
const renderLogo = React.useMemo(() => {
|
|
448
|
-
if (logoSlot) return logoSlot;
|
|
449
|
-
if (!logo) return null;
|
|
450
|
-
const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
451
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
452
|
-
img.Img,
|
|
453
|
-
{
|
|
454
|
-
src: logoSrc,
|
|
455
|
-
alt: logo.alt,
|
|
456
|
-
className: cn(
|
|
457
|
-
"mx-auto mb-5 w-24 md:mb-6 md:w-28 lg:mb-7 lg:w-32",
|
|
458
|
-
logo.imgClassName
|
|
459
|
-
),
|
|
460
|
-
optixFlowConfig
|
|
461
|
-
}
|
|
462
|
-
);
|
|
463
|
-
}, [logoSlot, logo, optixFlowConfig]);
|
|
464
490
|
const renderAction = React.useMemo(() => {
|
|
465
491
|
if (actionSlot) return actionSlot;
|
|
466
492
|
if (!action) return null;
|
|
@@ -525,28 +551,35 @@ function HeroPlatformFeaturesGrid({
|
|
|
525
551
|
headerClassName
|
|
526
552
|
),
|
|
527
553
|
children: [
|
|
528
|
-
|
|
529
|
-
subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
554
|
+
logo || logoSlot ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(brand_logo_default, { logo, logoSlot, size: "lg" }) }) : null,
|
|
555
|
+
subtitle && (typeof subtitle === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
556
|
+
"span",
|
|
557
|
+
{
|
|
558
|
+
className: cn(
|
|
559
|
+
"text-sm tracking-widest md:text-base opacity-50"
|
|
560
|
+
),
|
|
561
|
+
children: subtitle
|
|
562
|
+
}
|
|
563
|
+
) : subtitle),
|
|
530
564
|
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
531
565
|
"h1",
|
|
532
566
|
{
|
|
533
567
|
className: cn(
|
|
534
|
-
"
|
|
568
|
+
"text-4xl font-semibold text-balance lg:text-6xl",
|
|
535
569
|
headingClassName
|
|
536
570
|
),
|
|
537
571
|
children: heading
|
|
538
572
|
}
|
|
539
|
-
) :
|
|
540
|
-
|
|
573
|
+
) : heading),
|
|
574
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
575
|
+
"p",
|
|
541
576
|
{
|
|
542
577
|
className: cn(
|
|
543
|
-
"
|
|
544
|
-
headingClassName
|
|
578
|
+
"mb-6 max-w-full md:max-w-md text-base md:text-lg text-balance"
|
|
545
579
|
),
|
|
546
|
-
children:
|
|
580
|
+
children: description
|
|
547
581
|
}
|
|
548
|
-
)),
|
|
549
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mb-6 max-w-2xl md:text-lg text-balance"), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("max-w-2xl md:text-lg text-balance"), children: description })),
|
|
582
|
+
) : description),
|
|
550
583
|
renderAction
|
|
551
584
|
]
|
|
552
585
|
}
|
|
@@ -1,20 +1,28 @@
|
|
|
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
|
|
3
|
+
import { L as LogoConfig } from './types-mWZcgKth.cjs';
|
|
4
|
+
import { A as ActionConfig, F as FeatureItem, 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';
|
|
8
11
|
|
|
9
12
|
interface HeroPlatformFeaturesGridProps {
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Brand logo configuration — renders above the announcement badge.
|
|
15
|
+
* LOGO MEDIA ONLY. Do not use photos, hero images, or video assets.
|
|
12
16
|
*/
|
|
13
|
-
logo?:
|
|
17
|
+
logo?: LogoConfig;
|
|
14
18
|
/**
|
|
15
19
|
* Custom slot for logo (overrides logo prop)
|
|
16
20
|
*/
|
|
17
21
|
logoSlot?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for the logo container
|
|
24
|
+
*/
|
|
25
|
+
logoClassName?: string;
|
|
18
26
|
/**
|
|
19
27
|
* Subtitle/label text above heading
|
|
20
28
|
*/
|
|
@@ -87,6 +95,6 @@ interface HeroPlatformFeaturesGridProps {
|
|
|
87
95
|
/** Optional Section ID */
|
|
88
96
|
sectionId?: string;
|
|
89
97
|
}
|
|
90
|
-
declare function HeroPlatformFeaturesGrid({ sectionId, logo, logoSlot, subtitle, description, heading, action, actionSlot, features, featuresSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, featuresClassName, optixFlowConfig, }: HeroPlatformFeaturesGridProps): React.JSX.Element;
|
|
98
|
+
declare function HeroPlatformFeaturesGrid({ sectionId, logo, logoSlot, logoClassName, subtitle, description, heading, action, actionSlot, features, featuresSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, featuresClassName, optixFlowConfig, }: HeroPlatformFeaturesGridProps): React.JSX.Element;
|
|
91
99
|
|
|
92
100
|
export { HeroPlatformFeaturesGrid, type HeroPlatformFeaturesGridProps };
|
|
@@ -1,20 +1,28 @@
|
|
|
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
|
|
3
|
+
import { L as LogoConfig } from './types-hJ2R0GoH.js';
|
|
4
|
+
import { A as ActionConfig, F as FeatureItem, 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';
|
|
8
11
|
|
|
9
12
|
interface HeroPlatformFeaturesGridProps {
|
|
10
13
|
/**
|
|
11
|
-
*
|
|
14
|
+
* Brand logo configuration — renders above the announcement badge.
|
|
15
|
+
* LOGO MEDIA ONLY. Do not use photos, hero images, or video assets.
|
|
12
16
|
*/
|
|
13
|
-
logo?:
|
|
17
|
+
logo?: LogoConfig;
|
|
14
18
|
/**
|
|
15
19
|
* Custom slot for logo (overrides logo prop)
|
|
16
20
|
*/
|
|
17
21
|
logoSlot?: React.ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Additional CSS classes for the logo container
|
|
24
|
+
*/
|
|
25
|
+
logoClassName?: string;
|
|
18
26
|
/**
|
|
19
27
|
* Subtitle/label text above heading
|
|
20
28
|
*/
|
|
@@ -87,6 +95,6 @@ interface HeroPlatformFeaturesGridProps {
|
|
|
87
95
|
/** Optional Section ID */
|
|
88
96
|
sectionId?: string;
|
|
89
97
|
}
|
|
90
|
-
declare function HeroPlatformFeaturesGrid({ sectionId, logo, logoSlot, subtitle, description, heading, action, actionSlot, features, featuresSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, featuresClassName, optixFlowConfig, }: HeroPlatformFeaturesGridProps): React.JSX.Element;
|
|
98
|
+
declare function HeroPlatformFeaturesGrid({ sectionId, logo, logoSlot, logoClassName, subtitle, description, heading, action, actionSlot, features, featuresSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, featuresClassName, optixFlowConfig, }: HeroPlatformFeaturesGridProps): React.JSX.Element;
|
|
91
99
|
|
|
92
100
|
export { HeroPlatformFeaturesGrid, type HeroPlatformFeaturesGridProps };
|