@opensite/ui 3.6.9 → 3.7.0

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.
@@ -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("div", { className: cn("my-6 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
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("div", { className: cn("my-6 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
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
  {
@@ -794,7 +794,7 @@ function HeroDesignCarouselPortfolio({
794
794
  "div",
795
795
  {
796
796
  className: cn(
797
- "flex flex-col gap-10 pt-12 pb-8 lg:pt-24 lg:pb-12",
797
+ "flex flex-col gap-10 pt-12 pb-8 lg:pt-12 lg:pb-12",
798
798
  contentClassName
799
799
  ),
800
800
  children: [
@@ -768,7 +768,7 @@ function HeroDesignCarouselPortfolio({
768
768
  "div",
769
769
  {
770
770
  className: cn(
771
- "flex flex-col gap-10 pt-12 pb-8 lg:pt-24 lg:pb-12",
771
+ "flex flex-col gap-10 pt-12 pb-8 lg:pt-12 lg:pb-12",
772
772
  contentClassName
773
773
  ),
774
774
  children: [
@@ -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: cn(className),
474
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
475
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
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
- renderLogo,
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
- ) : /* @__PURE__ */ jsxRuntime.jsx(
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
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
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 LogoItem, A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
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
- * Logo configuration
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?: LogoItem;
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 LogoItem, A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
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
- * Logo configuration
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?: LogoItem;
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: cn(className),
468
- children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
469
- /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
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
- renderLogo,
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
- ) : /* @__PURE__ */ jsx(
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
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
528
+ ) : description)
508
529
  ] }),
509
530
  renderAction
510
531
  ]
511
532
  }
512
533
  ) }),
513
534
  renderImage
514
- ] }) })
535
+ ] })
515
536
  }
516
537
  );
517
538
  }
@@ -625,8 +625,8 @@ function HeroVideoBackgroundDark({
625
625
  "div",
626
626
  {
627
627
  className: cn(
628
- "relative z-10 mx-auto flex size-full",
629
- "md:max-w-3xl lg:max-w-4xl flex-col justify-center",
628
+ "relative z-10 mx-auto flex flex-col justify-center",
629
+ "size-full max-w-full md:max-w-md lg:max-w-4xl",
630
630
  "gap-4 md:gap-6 items-center text-center px-4 md:px-6",
631
631
  contentClassName
632
632
  ),
@@ -637,7 +637,7 @@ function HeroVideoBackgroundDark({
637
637
  {
638
638
  className: cn(
639
639
  "font-bold text-5xl md:text-6xl lg:text-8xl",
640
- "text-balance text-white text-shadow-lg",
640
+ "text-pretty text-white text-shadow-lg",
641
641
  headingClassName
642
642
  ),
643
643
  children: heading
@@ -619,8 +619,8 @@ function HeroVideoBackgroundDark({
619
619
  "div",
620
620
  {
621
621
  className: cn(
622
- "relative z-10 mx-auto flex size-full",
623
- "md:max-w-3xl lg:max-w-4xl flex-col justify-center",
622
+ "relative z-10 mx-auto flex flex-col justify-center",
623
+ "size-full max-w-full md:max-w-md lg:max-w-4xl",
624
624
  "gap-4 md:gap-6 items-center text-center px-4 md:px-6",
625
625
  contentClassName
626
626
  ),
@@ -631,7 +631,7 @@ function HeroVideoBackgroundDark({
631
631
  {
632
632
  className: cn(
633
633
  "font-bold text-5xl md:text-6xl lg:text-8xl",
634
- "text-balance text-white text-shadow-lg",
634
+ "text-pretty text-white text-shadow-lg",
635
635
  headingClassName
636
636
  ),
637
637
  children: heading
package/dist/registry.cjs CHANGED
@@ -50986,6 +50986,7 @@ function HeroLogoCenteredScreenshot({
50986
50986
  sectionId = "hero-logo-centered-screenshot",
50987
50987
  logo,
50988
50988
  logoSlot: logoSlot2,
50989
+ logoClassName,
50989
50990
  heading,
50990
50991
  description,
50991
50992
  action,
@@ -51004,20 +51005,6 @@ function HeroLogoCenteredScreenshot({
51004
51005
  imageClassName,
51005
51006
  optixFlowConfig
51006
51007
  }) {
51007
- const renderLogo = React30.useMemo(() => {
51008
- if (logoSlot2) return logoSlot2;
51009
- if (!logo) return null;
51010
- const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
51011
- return /* @__PURE__ */ jsxRuntime.jsx(
51012
- img$1.Img,
51013
- {
51014
- src: logoSrc,
51015
- alt: logo.alt,
51016
- className: cn("h-10 md:h-16 object-contain", logo.className),
51017
- optixFlowConfig
51018
- }
51019
- );
51020
- }, [logoSlot2, logo, optixFlowConfig]);
51021
51008
  const renderAction = React30.useMemo(() => {
51022
51009
  if (actionSlot) return actionSlot;
51023
51010
  if (!action) return null;
@@ -51060,9 +51047,10 @@ function HeroLogoCenteredScreenshot({
51060
51047
  spacing,
51061
51048
  pattern,
51062
51049
  patternOpacity,
51063
- className: cn(className),
51064
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
51065
- /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
51050
+ className,
51051
+ containerClassName,
51052
+ children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
51053
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-full md:max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
51066
51054
  "div",
51067
51055
  {
51068
51056
  className: cn(
@@ -51070,7 +51058,7 @@ function HeroLogoCenteredScreenshot({
51070
51058
  contentClassName
51071
51059
  ),
51072
51060
  children: [
51073
- renderLogo,
51061
+ (logo || logoSlot2) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(brand_logo_default, { logo, logoSlot: logoSlot2, size: "lg" }) }),
51074
51062
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col justify-center items-center w-full text-balance", children: [
51075
51063
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
51076
51064
  "h1",
@@ -51081,33 +51069,24 @@ function HeroLogoCenteredScreenshot({
51081
51069
  ),
51082
51070
  children: heading
51083
51071
  }
51084
- ) : /* @__PURE__ */ jsxRuntime.jsx(
51085
- "h1",
51086
- {
51087
- className: cn(
51088
- "mb-4 text-3xl font-medium lg:text-5xl",
51089
- headingClassName
51090
- ),
51091
- children: heading
51092
- }
51093
- )),
51072
+ ) : heading),
51094
51073
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
51095
51074
  "p",
51096
51075
  {
51097
51076
  className: cn(
51098
- "max-w-3xl lg:text-xl",
51077
+ "max-w-full md:max-w-3xl lg:text-xl",
51099
51078
  descriptionClassName
51100
51079
  ),
51101
51080
  children: description
51102
51081
  }
51103
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
51082
+ ) : description)
51104
51083
  ] }),
51105
51084
  renderAction
51106
51085
  ]
51107
51086
  }
51108
51087
  ) }),
51109
51088
  renderImage
51110
- ] }) })
51089
+ ] })
51111
51090
  }
51112
51091
  );
51113
51092
  }
@@ -52933,8 +52912,8 @@ function HeroVideoBackgroundDark({
52933
52912
  "div",
52934
52913
  {
52935
52914
  className: cn(
52936
- "relative z-10 mx-auto flex size-full",
52937
- "md:max-w-3xl lg:max-w-4xl flex-col justify-center",
52915
+ "relative z-10 mx-auto flex flex-col justify-center",
52916
+ "size-full max-w-full md:max-w-md lg:max-w-4xl",
52938
52917
  "gap-4 md:gap-6 items-center text-center px-4 md:px-6",
52939
52918
  contentClassName
52940
52919
  ),
@@ -52945,7 +52924,7 @@ function HeroVideoBackgroundDark({
52945
52924
  {
52946
52925
  className: cn(
52947
52926
  "font-bold text-5xl md:text-6xl lg:text-8xl",
52948
- "text-balance text-white text-shadow-lg",
52927
+ "text-pretty text-white text-shadow-lg",
52949
52928
  headingClassName
52950
52929
  ),
52951
52930
  children: heading
@@ -53202,7 +53181,16 @@ function HeroDashedBorderFeatures({
53202
53181
  ),
53203
53182
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mx-auto max-w-3xl", children: [
53204
53183
  renderAnnouncement,
53205
- (logo || logoSlot2) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("my-6 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot: logoSlot2, size: "lg" }) }),
53184
+ (logo || logoSlot2) && /* @__PURE__ */ jsxRuntime.jsx(
53185
+ "div",
53186
+ {
53187
+ className: cn(
53188
+ "mt-8 md:mt-16 mb-0 flex justify-center",
53189
+ logoClassName
53190
+ ),
53191
+ children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot: logoSlot2, size: "lg" })
53192
+ }
53193
+ ),
53206
53194
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
53207
53195
  "h1",
53208
53196
  {
@@ -53375,7 +53363,7 @@ function HeroDesignCarouselPortfolio({
53375
53363
  "div",
53376
53364
  {
53377
53365
  className: cn(
53378
- "flex flex-col gap-10 pt-12 pb-8 lg:pt-24 lg:pb-12",
53366
+ "flex flex-col gap-10 pt-12 pb-8 lg:pt-12 lg:pb-12",
53379
53367
  contentClassName
53380
53368
  ),
53381
53369
  children: [
package/dist/registry.js CHANGED
@@ -50946,6 +50946,7 @@ function HeroLogoCenteredScreenshot({
50946
50946
  sectionId = "hero-logo-centered-screenshot",
50947
50947
  logo,
50948
50948
  logoSlot: logoSlot2,
50949
+ logoClassName,
50949
50950
  heading,
50950
50951
  description,
50951
50952
  action,
@@ -50964,20 +50965,6 @@ function HeroLogoCenteredScreenshot({
50964
50965
  imageClassName,
50965
50966
  optixFlowConfig
50966
50967
  }) {
50967
- const renderLogo = useMemo(() => {
50968
- if (logoSlot2) return logoSlot2;
50969
- if (!logo) return null;
50970
- const logoSrc = typeof logo.src === "string" ? logo.src : logo.src.light;
50971
- return /* @__PURE__ */ jsx(
50972
- Img,
50973
- {
50974
- src: logoSrc,
50975
- alt: logo.alt,
50976
- className: cn("h-10 md:h-16 object-contain", logo.className),
50977
- optixFlowConfig
50978
- }
50979
- );
50980
- }, [logoSlot2, logo, optixFlowConfig]);
50981
50968
  const renderAction = useMemo(() => {
50982
50969
  if (actionSlot) return actionSlot;
50983
50970
  if (!action) return null;
@@ -51020,9 +51007,10 @@ function HeroLogoCenteredScreenshot({
51020
51007
  spacing,
51021
51008
  pattern,
51022
51009
  patternOpacity,
51023
- className: cn(className),
51024
- children: /* @__PURE__ */ jsx("div", { className: "relative", children: /* @__PURE__ */ jsxs("div", { className: cn("container max-w-7xl", containerClassName), children: [
51025
- /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
51010
+ className,
51011
+ containerClassName,
51012
+ children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
51013
+ /* @__PURE__ */ jsx("div", { className: "mx-auto flex max-w-full md:max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxs(
51026
51014
  "div",
51027
51015
  {
51028
51016
  className: cn(
@@ -51030,7 +51018,7 @@ function HeroLogoCenteredScreenshot({
51030
51018
  contentClassName
51031
51019
  ),
51032
51020
  children: [
51033
- renderLogo,
51021
+ (logo || logoSlot2) && /* @__PURE__ */ jsx("div", { className: cn("flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(brand_logo_default, { logo, logoSlot: logoSlot2, size: "lg" }) }),
51034
51022
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col justify-center items-center w-full text-balance", children: [
51035
51023
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
51036
51024
  "h1",
@@ -51041,33 +51029,24 @@ function HeroLogoCenteredScreenshot({
51041
51029
  ),
51042
51030
  children: heading
51043
51031
  }
51044
- ) : /* @__PURE__ */ jsx(
51045
- "h1",
51046
- {
51047
- className: cn(
51048
- "mb-4 text-3xl font-medium lg:text-5xl",
51049
- headingClassName
51050
- ),
51051
- children: heading
51052
- }
51053
- )),
51032
+ ) : heading),
51054
51033
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
51055
51034
  "p",
51056
51035
  {
51057
51036
  className: cn(
51058
- "max-w-3xl lg:text-xl",
51037
+ "max-w-full md:max-w-3xl lg:text-xl",
51059
51038
  descriptionClassName
51060
51039
  ),
51061
51040
  children: description
51062
51041
  }
51063
- ) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description }))
51042
+ ) : description)
51064
51043
  ] }),
51065
51044
  renderAction
51066
51045
  ]
51067
51046
  }
51068
51047
  ) }),
51069
51048
  renderImage
51070
- ] }) })
51049
+ ] })
51071
51050
  }
51072
51051
  );
51073
51052
  }
@@ -52893,8 +52872,8 @@ function HeroVideoBackgroundDark({
52893
52872
  "div",
52894
52873
  {
52895
52874
  className: cn(
52896
- "relative z-10 mx-auto flex size-full",
52897
- "md:max-w-3xl lg:max-w-4xl flex-col justify-center",
52875
+ "relative z-10 mx-auto flex flex-col justify-center",
52876
+ "size-full max-w-full md:max-w-md lg:max-w-4xl",
52898
52877
  "gap-4 md:gap-6 items-center text-center px-4 md:px-6",
52899
52878
  contentClassName
52900
52879
  ),
@@ -52905,7 +52884,7 @@ function HeroVideoBackgroundDark({
52905
52884
  {
52906
52885
  className: cn(
52907
52886
  "font-bold text-5xl md:text-6xl lg:text-8xl",
52908
- "text-balance text-white text-shadow-lg",
52887
+ "text-pretty text-white text-shadow-lg",
52909
52888
  headingClassName
52910
52889
  ),
52911
52890
  children: heading
@@ -53162,7 +53141,16 @@ function HeroDashedBorderFeatures({
53162
53141
  ),
53163
53142
  children: /* @__PURE__ */ jsxs("div", { className: "mx-auto max-w-3xl", children: [
53164
53143
  renderAnnouncement,
53165
- (logo || logoSlot2) && /* @__PURE__ */ jsx("div", { className: cn("my-6 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot: logoSlot2, size: "lg" }) }),
53144
+ (logo || logoSlot2) && /* @__PURE__ */ jsx(
53145
+ "div",
53146
+ {
53147
+ className: cn(
53148
+ "mt-8 md:mt-16 mb-0 flex justify-center",
53149
+ logoClassName
53150
+ ),
53151
+ children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot: logoSlot2, size: "lg" })
53152
+ }
53153
+ ),
53166
53154
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
53167
53155
  "h1",
53168
53156
  {
@@ -53335,7 +53323,7 @@ function HeroDesignCarouselPortfolio({
53335
53323
  "div",
53336
53324
  {
53337
53325
  className: cn(
53338
- "flex flex-col gap-10 pt-12 pb-8 lg:pt-24 lg:pb-12",
53326
+ "flex flex-col gap-10 pt-12 pb-8 lg:pt-12 lg:pb-12",
53339
53327
  contentClassName
53340
53328
  ),
53341
53329
  children: [
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
77
77
  * />
78
78
  * ```
79
79
  */
80
- declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLButtonElement | HTMLAnchorElement | HTMLSpanElement>>;
80
+ declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
81
81
 
82
82
  export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@opensite/ui",
3
- "version": "3.6.9",
3
+ "version": "3.7.0",
4
4
  "description": "Foundational UI component library for OpenSite Semantic Site Builder with tree-shakable exports and abstract styling",
5
5
  "keywords": [
6
6
  "react",