@opensite/ui 3.7.1 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (283) hide show
  1. package/dist/badge.d.cts +1 -1
  2. package/dist/badge.d.ts +1 -1
  3. package/dist/hero-ad-campaign-expert.cjs +46 -1
  4. package/dist/hero-ad-campaign-expert.d.cts +16 -1
  5. package/dist/hero-ad-campaign-expert.d.ts +16 -1
  6. package/dist/hero-ad-campaign-expert.js +46 -1
  7. package/dist/hero-adaptable-product-grid.cjs +46 -1
  8. package/dist/hero-adaptable-product-grid.d.cts +16 -1
  9. package/dist/hero-adaptable-product-grid.d.ts +16 -1
  10. package/dist/hero-adaptable-product-grid.js +46 -1
  11. package/dist/hero-agency-animated-images.cjs +46 -1
  12. package/dist/hero-agency-animated-images.d.cts +16 -1
  13. package/dist/hero-agency-animated-images.d.ts +16 -1
  14. package/dist/hero-agency-animated-images.js +46 -1
  15. package/dist/hero-ai-powered-carousel.cjs +46 -1
  16. package/dist/hero-ai-powered-carousel.d.cts +16 -1
  17. package/dist/hero-ai-powered-carousel.d.ts +16 -1
  18. package/dist/hero-ai-powered-carousel.js +46 -1
  19. package/dist/hero-announcement-badge.cjs +47 -1
  20. package/dist/hero-announcement-badge.d.cts +16 -1
  21. package/dist/hero-announcement-badge.d.ts +16 -1
  22. package/dist/hero-announcement-badge.js +47 -1
  23. package/dist/hero-architecture-fullscreen.cjs +46 -1
  24. package/dist/hero-architecture-fullscreen.d.cts +16 -1
  25. package/dist/hero-architecture-fullscreen.d.ts +16 -1
  26. package/dist/hero-architecture-fullscreen.js +46 -1
  27. package/dist/hero-badge-image-split.cjs +46 -1
  28. package/dist/hero-badge-image-split.d.cts +16 -1
  29. package/dist/hero-badge-image-split.d.ts +16 -1
  30. package/dist/hero-badge-image-split.js +46 -1
  31. package/dist/hero-badge-shadow-overlay.cjs +46 -1
  32. package/dist/hero-badge-shadow-overlay.d.cts +16 -1
  33. package/dist/hero-badge-shadow-overlay.d.ts +16 -1
  34. package/dist/hero-badge-shadow-overlay.js +46 -1
  35. package/dist/hero-business-carousel-dots.cjs +46 -1
  36. package/dist/hero-business-carousel-dots.d.cts +16 -1
  37. package/dist/hero-business-carousel-dots.d.ts +16 -1
  38. package/dist/hero-business-carousel-dots.js +46 -1
  39. package/dist/hero-business-operations-mosaic.cjs +46 -1
  40. package/dist/hero-business-operations-mosaic.d.cts +16 -1
  41. package/dist/hero-business-operations-mosaic.d.ts +16 -1
  42. package/dist/hero-business-operations-mosaic.js +46 -1
  43. package/dist/hero-centered-gradient-cta.cjs +47 -1
  44. package/dist/hero-centered-gradient-cta.d.cts +16 -1
  45. package/dist/hero-centered-gradient-cta.d.ts +16 -1
  46. package/dist/hero-centered-gradient-cta.js +47 -1
  47. package/dist/hero-centered-image-grid.cjs +46 -1
  48. package/dist/hero-centered-image-grid.d.cts +16 -1
  49. package/dist/hero-centered-image-grid.d.ts +16 -1
  50. package/dist/hero-centered-image-grid.js +46 -1
  51. package/dist/hero-centered-screenshot.cjs +46 -1
  52. package/dist/hero-centered-screenshot.d.cts +16 -1
  53. package/dist/hero-centered-screenshot.d.ts +16 -1
  54. package/dist/hero-centered-screenshot.js +46 -1
  55. package/dist/hero-coming-soon-countdown.cjs +47 -1
  56. package/dist/hero-coming-soon-countdown.d.cts +16 -1
  57. package/dist/hero-coming-soon-countdown.d.ts +16 -1
  58. package/dist/hero-coming-soon-countdown.js +47 -1
  59. package/dist/hero-community-survey-cta.cjs +46 -1
  60. package/dist/hero-community-survey-cta.d.cts +16 -1
  61. package/dist/hero-community-survey-cta.d.ts +16 -1
  62. package/dist/hero-community-survey-cta.js +46 -1
  63. package/dist/hero-conversation-intelligence.cjs +46 -1
  64. package/dist/hero-conversation-intelligence.d.cts +16 -1
  65. package/dist/hero-conversation-intelligence.d.ts +16 -1
  66. package/dist/hero-conversation-intelligence.js +46 -1
  67. package/dist/hero-creative-studio-stacked.cjs +46 -1
  68. package/dist/hero-creative-studio-stacked.d.cts +17 -2
  69. package/dist/hero-creative-studio-stacked.d.ts +17 -2
  70. package/dist/hero-creative-studio-stacked.js +46 -1
  71. package/dist/hero-crm-streamlined.cjs +46 -1
  72. package/dist/hero-crm-streamlined.d.cts +16 -1
  73. package/dist/hero-crm-streamlined.d.ts +16 -1
  74. package/dist/hero-crm-streamlined.js +46 -1
  75. package/dist/hero-customer-support-layered.cjs +46 -1
  76. package/dist/hero-customer-support-layered.d.cts +16 -1
  77. package/dist/hero-customer-support-layered.d.ts +16 -1
  78. package/dist/hero-customer-support-layered.js +46 -1
  79. package/dist/hero-design-system-3d.cjs +67 -20
  80. package/dist/hero-design-system-3d.d.cts +16 -1
  81. package/dist/hero-design-system-3d.d.ts +16 -1
  82. package/dist/hero-design-system-3d.js +67 -20
  83. package/dist/hero-developer-tools-code.cjs +47 -1
  84. package/dist/hero-developer-tools-code.d.cts +16 -1
  85. package/dist/hero-developer-tools-code.d.ts +16 -1
  86. package/dist/hero-developer-tools-code.js +47 -1
  87. package/dist/hero-digital-agency-fullscreen.cjs +46 -1
  88. package/dist/hero-digital-agency-fullscreen.d.cts +16 -1
  89. package/dist/hero-digital-agency-fullscreen.d.ts +16 -1
  90. package/dist/hero-digital-agency-fullscreen.js +46 -1
  91. package/dist/hero-ecommerce-product-showcase.cjs +46 -1
  92. package/dist/hero-ecommerce-product-showcase.d.cts +16 -1
  93. package/dist/hero-ecommerce-product-showcase.d.ts +16 -1
  94. package/dist/hero-ecommerce-product-showcase.js +46 -1
  95. package/dist/hero-enterprise-security.cjs +47 -1
  96. package/dist/hero-enterprise-security.d.cts +16 -1
  97. package/dist/hero-enterprise-security.d.ts +16 -1
  98. package/dist/hero-enterprise-security.js +47 -1
  99. package/dist/hero-feature-cards-grid.cjs +47 -1
  100. package/dist/hero-feature-cards-grid.d.cts +16 -1
  101. package/dist/hero-feature-cards-grid.d.ts +16 -1
  102. package/dist/hero-feature-cards-grid.js +47 -1
  103. package/dist/hero-fullscreen-background-image.cjs +46 -1
  104. package/dist/hero-fullscreen-background-image.d.cts +16 -1
  105. package/dist/hero-fullscreen-background-image.d.ts +16 -1
  106. package/dist/hero-fullscreen-background-image.js +46 -1
  107. package/dist/hero-gradient-avatars-rating.cjs +46 -1
  108. package/dist/hero-gradient-avatars-rating.d.cts +16 -1
  109. package/dist/hero-gradient-avatars-rating.d.ts +16 -1
  110. package/dist/hero-gradient-avatars-rating.js +46 -1
  111. package/dist/hero-gradient-client-focused.cjs +46 -1
  112. package/dist/hero-gradient-client-focused.d.cts +16 -1
  113. package/dist/hero-gradient-client-focused.d.ts +16 -1
  114. package/dist/hero-gradient-client-focused.js +46 -1
  115. package/dist/hero-grid-pattern-efficiency.cjs +47 -1
  116. package/dist/hero-grid-pattern-efficiency.d.cts +16 -1
  117. package/dist/hero-grid-pattern-efficiency.d.ts +16 -1
  118. package/dist/hero-grid-pattern-efficiency.js +47 -1
  119. package/dist/hero-grid-pattern-solutions.cjs +46 -1
  120. package/dist/hero-grid-pattern-solutions.d.cts +16 -1
  121. package/dist/hero-grid-pattern-solutions.d.ts +16 -1
  122. package/dist/hero-grid-pattern-solutions.js +46 -1
  123. package/dist/hero-hiring-animated-text.cjs +47 -1
  124. package/dist/hero-hiring-animated-text.d.cts +16 -1
  125. package/dist/hero-hiring-animated-text.d.ts +16 -1
  126. package/dist/hero-hiring-animated-text.js +47 -1
  127. package/dist/hero-image-left-content.cjs +46 -1
  128. package/dist/hero-image-left-content.d.cts +16 -1
  129. package/dist/hero-image-left-content.d.ts +16 -1
  130. package/dist/hero-image-left-content.js +46 -1
  131. package/dist/hero-image-slider.cjs +46 -1
  132. package/dist/hero-image-slider.d.cts +16 -1
  133. package/dist/hero-image-slider.d.ts +16 -1
  134. package/dist/hero-image-slider.js +46 -1
  135. package/dist/hero-innovation-image-grid.cjs +46 -1
  136. package/dist/hero-innovation-image-grid.d.cts +16 -1
  137. package/dist/hero-innovation-image-grid.d.ts +16 -1
  138. package/dist/hero-innovation-image-grid.js +46 -1
  139. package/dist/hero-logo-centered-screenshot.cjs +2 -2
  140. package/dist/hero-logo-centered-screenshot.js +2 -2
  141. package/dist/hero-marketplace-scattered-images.cjs +46 -1
  142. package/dist/hero-marketplace-scattered-images.d.cts +16 -1
  143. package/dist/hero-marketplace-scattered-images.d.ts +16 -1
  144. package/dist/hero-marketplace-scattered-images.js +46 -1
  145. package/dist/hero-minimal-centered-dark.cjs +47 -1
  146. package/dist/hero-minimal-centered-dark.d.cts +16 -1
  147. package/dist/hero-minimal-centered-dark.d.ts +16 -1
  148. package/dist/hero-minimal-centered-dark.js +47 -1
  149. package/dist/hero-mobile-app-download.cjs +46 -1
  150. package/dist/hero-mobile-app-download.d.cts +16 -1
  151. package/dist/hero-mobile-app-download.d.ts +16 -1
  152. package/dist/hero-mobile-app-download.js +46 -1
  153. package/dist/hero-newsletter-minimal.cjs +48 -1
  154. package/dist/hero-newsletter-minimal.d.cts +16 -1
  155. package/dist/hero-newsletter-minimal.d.ts +16 -1
  156. package/dist/hero-newsletter-minimal.js +48 -1
  157. package/dist/hero-overlay-cta-grid.cjs +46 -1
  158. package/dist/hero-overlay-cta-grid.d.cts +16 -1
  159. package/dist/hero-overlay-cta-grid.d.ts +16 -1
  160. package/dist/hero-overlay-cta-grid.js +46 -1
  161. package/dist/hero-portfolio-creative.cjs +46 -1
  162. package/dist/hero-portfolio-creative.d.cts +16 -1
  163. package/dist/hero-portfolio-creative.d.ts +16 -1
  164. package/dist/hero-portfolio-creative.js +46 -1
  165. package/dist/hero-premium-split-avatars.cjs +46 -1
  166. package/dist/hero-premium-split-avatars.d.cts +16 -1
  167. package/dist/hero-premium-split-avatars.d.ts +16 -1
  168. package/dist/hero-premium-split-avatars.js +46 -1
  169. package/dist/hero-presentation-platform-video.cjs +47 -1
  170. package/dist/hero-presentation-platform-video.d.cts +16 -1
  171. package/dist/hero-presentation-platform-video.d.ts +16 -1
  172. package/dist/hero-presentation-platform-video.js +47 -1
  173. package/dist/hero-pricing-comparison.cjs +47 -1
  174. package/dist/hero-pricing-comparison.d.cts +16 -1
  175. package/dist/hero-pricing-comparison.d.ts +16 -1
  176. package/dist/hero-pricing-comparison.js +47 -1
  177. package/dist/hero-product-showcase-floating.cjs +46 -1
  178. package/dist/hero-product-showcase-floating.d.cts +16 -1
  179. package/dist/hero-product-showcase-floating.d.ts +16 -1
  180. package/dist/hero-product-showcase-floating.js +46 -1
  181. package/dist/hero-productivity-launcher-video.cjs +68 -20
  182. package/dist/hero-productivity-launcher-video.d.cts +16 -1
  183. package/dist/hero-productivity-launcher-video.d.ts +16 -1
  184. package/dist/hero-productivity-launcher-video.js +68 -20
  185. package/dist/hero-saas-dashboard-preview.cjs +46 -1
  186. package/dist/hero-saas-dashboard-preview.d.cts +16 -1
  187. package/dist/hero-saas-dashboard-preview.d.ts +16 -1
  188. package/dist/hero-saas-dashboard-preview.js +46 -1
  189. package/dist/hero-shared-inbox-layered.cjs +46 -1
  190. package/dist/hero-shared-inbox-layered.d.cts +16 -1
  191. package/dist/hero-shared-inbox-layered.d.ts +16 -1
  192. package/dist/hero-shared-inbox-layered.js +46 -1
  193. package/dist/hero-simple-centered-image.cjs +46 -1
  194. package/dist/hero-simple-centered-image.d.cts +16 -1
  195. package/dist/hero-simple-centered-image.d.ts +16 -1
  196. package/dist/hero-simple-centered-image.js +46 -1
  197. package/dist/hero-software-growth-video-dialog.cjs +46 -1
  198. package/dist/hero-software-growth-video-dialog.d.cts +16 -1
  199. package/dist/hero-software-growth-video-dialog.d.ts +16 -1
  200. package/dist/hero-software-growth-video-dialog.js +46 -1
  201. package/dist/hero-spiral-pattern-cards.cjs +46 -1
  202. package/dist/hero-spiral-pattern-cards.d.cts +16 -1
  203. package/dist/hero-spiral-pattern-cards.d.ts +16 -1
  204. package/dist/hero-spiral-pattern-cards.js +46 -1
  205. package/dist/hero-split-geometric-shapes.cjs +46 -1
  206. package/dist/hero-split-geometric-shapes.d.cts +16 -1
  207. package/dist/hero-split-geometric-shapes.d.ts +16 -1
  208. package/dist/hero-split-geometric-shapes.js +46 -1
  209. package/dist/hero-split-icon-cards.cjs +47 -1
  210. package/dist/hero-split-icon-cards.d.cts +16 -1
  211. package/dist/hero-split-icon-cards.d.ts +16 -1
  212. package/dist/hero-split-icon-cards.js +47 -1
  213. package/dist/hero-split-image-newsletter.cjs +46 -1
  214. package/dist/hero-split-image-newsletter.d.cts +16 -1
  215. package/dist/hero-split-image-newsletter.d.ts +16 -1
  216. package/dist/hero-split-image-newsletter.js +47 -2
  217. package/dist/hero-split-spiral-shapes.cjs +46 -1
  218. package/dist/hero-split-spiral-shapes.d.cts +16 -1
  219. package/dist/hero-split-spiral-shapes.d.ts +16 -1
  220. package/dist/hero-split-spiral-shapes.js +46 -1
  221. package/dist/hero-startup-launch-cta.cjs +46 -1
  222. package/dist/hero-startup-launch-cta.d.cts +16 -1
  223. package/dist/hero-startup-launch-cta.d.ts +16 -1
  224. package/dist/hero-startup-launch-cta.js +46 -1
  225. package/dist/hero-stats-social-proof.cjs +46 -1
  226. package/dist/hero-stats-social-proof.d.cts +16 -1
  227. package/dist/hero-stats-social-proof.d.ts +16 -1
  228. package/dist/hero-stats-social-proof.js +46 -1
  229. package/dist/hero-task-timer-animated.cjs +46 -1
  230. package/dist/hero-task-timer-animated.d.cts +16 -1
  231. package/dist/hero-task-timer-animated.d.ts +16 -1
  232. package/dist/hero-task-timer-animated.js +46 -1
  233. package/dist/hero-testimonial-image-grid.cjs +46 -1
  234. package/dist/hero-testimonial-image-grid.d.cts +16 -1
  235. package/dist/hero-testimonial-image-grid.d.ts +16 -1
  236. package/dist/hero-testimonial-image-grid.js +46 -1
  237. package/dist/hero-therapy-testimonial-grid.cjs +46 -1
  238. package/dist/hero-therapy-testimonial-grid.d.cts +16 -1
  239. package/dist/hero-therapy-testimonial-grid.d.ts +16 -1
  240. package/dist/hero-therapy-testimonial-grid.js +46 -1
  241. package/dist/hero-ui-library-showcase.cjs +3 -2
  242. package/dist/hero-ui-library-showcase.d.cts +13 -5
  243. package/dist/hero-ui-library-showcase.d.ts +13 -5
  244. package/dist/hero-ui-library-showcase.js +3 -2
  245. package/dist/hero-video-background-dark.cjs +47 -1
  246. package/dist/hero-video-background-dark.d.cts +16 -1
  247. package/dist/hero-video-background-dark.d.ts +16 -1
  248. package/dist/hero-video-background-dark.js +47 -1
  249. package/dist/{hero-video-dialog-gradient-Cr96k01H.d.ts → hero-video-dialog-gradient-B6-kFIvZ.d.ts} +14 -1
  250. package/dist/{hero-video-dialog-gradient-Dc0wRYdW.d.cts → hero-video-dialog-gradient-DPnh6Vn-.d.cts} +14 -1
  251. package/dist/hero-video-dialog-gradient.cjs +46 -1
  252. package/dist/hero-video-dialog-gradient.d.cts +4 -1
  253. package/dist/hero-video-dialog-gradient.d.ts +4 -1
  254. package/dist/hero-video-dialog-gradient.js +46 -1
  255. package/dist/hero-welcome-asymmetric-images.cjs +46 -1
  256. package/dist/hero-welcome-asymmetric-images.d.cts +16 -1
  257. package/dist/hero-welcome-asymmetric-images.d.ts +16 -1
  258. package/dist/hero-welcome-asymmetric-images.js +46 -1
  259. package/dist/link-page-bento-layout.cjs +59 -3
  260. package/dist/link-page-bento-layout.d.cts +16 -1
  261. package/dist/link-page-bento-layout.d.ts +16 -1
  262. package/dist/link-page-bento-layout.js +59 -3
  263. package/dist/link-page-grid-cards.cjs +59 -3
  264. package/dist/link-page-grid-cards.d.cts +16 -1
  265. package/dist/link-page-grid-cards.d.ts +16 -1
  266. package/dist/link-page-grid-cards.js +59 -3
  267. package/dist/link-page-minimal-profile.cjs +59 -3
  268. package/dist/link-page-minimal-profile.d.cts +16 -1
  269. package/dist/link-page-minimal-profile.d.ts +16 -1
  270. package/dist/link-page-minimal-profile.js +59 -3
  271. package/dist/link-page-newsletter-social.cjs +59 -3
  272. package/dist/link-page-newsletter-social.d.cts +16 -1
  273. package/dist/link-page-newsletter-social.d.ts +16 -1
  274. package/dist/link-page-newsletter-social.js +59 -3
  275. package/dist/link-tree-block.cjs +58 -2
  276. package/dist/link-tree-block.d.cts +16 -1
  277. package/dist/link-tree-block.d.ts +16 -1
  278. package/dist/link-tree-block.js +58 -2
  279. package/dist/registry.cjs +706 -184
  280. package/dist/registry.js +706 -184
  281. package/dist/social-link-icon.d.cts +1 -1
  282. package/dist/social-link-icon.d.ts +1 -1
  283. package/package.json +1 -1
@@ -6,6 +6,7 @@ import { twMerge } from 'tailwind-merge';
6
6
  import { Pressable, buttonVariants } from '@page-speed/pressable';
7
7
  import { Icon } from '@page-speed/icon';
8
8
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
+ import { Img } from '@page-speed/img';
9
10
 
10
11
  // components/blocks/hero/hero-feature-cards-grid.tsx
11
12
  function cn(...inputs) {
@@ -478,6 +479,47 @@ function ActionComponent({ action }) {
478
479
  }
479
480
  );
480
481
  }
482
+ var SIZE_CLASSES = {
483
+ sm: "max-h-6 sm:max-h-7",
484
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
485
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
486
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
487
+ };
488
+ var BrandLogo = ({
489
+ logo,
490
+ logoSlot,
491
+ logoClassName,
492
+ size = "md",
493
+ optixFlowConfig
494
+ }) => {
495
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
496
+ if (!logo || !logo.src) return null;
497
+ const imgElement = /* @__PURE__ */ jsx(
498
+ Img,
499
+ {
500
+ src: logo.src,
501
+ className: cn(
502
+ "w-auto object-contain",
503
+ SIZE_CLASSES[size],
504
+ logo.className
505
+ ),
506
+ alt: logo.alt || "Logo",
507
+ optixFlowConfig,
508
+ loading: "eager"
509
+ }
510
+ );
511
+ if (logo.url) {
512
+ return /* @__PURE__ */ jsx(
513
+ Pressable,
514
+ {
515
+ href: logo.url,
516
+ className: cn("flex items-center", logoClassName),
517
+ children: imgElement
518
+ }
519
+ );
520
+ }
521
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
522
+ };
481
523
  function HeroFeatureCardsGrid({
482
524
  sectionId = "hero-feature-cards-grid",
483
525
  heading,
@@ -496,7 +538,10 @@ function HeroFeatureCardsGrid({
496
538
  headingClassName,
497
539
  descriptionClassName,
498
540
  actionsClassName,
499
- featuresClassName
541
+ featuresClassName,
542
+ logo,
543
+ logoSlot,
544
+ logoClassName
500
545
  }) {
501
546
  const renderFeatures = useMemo(() => {
502
547
  if (featuresSlot) return featuresSlot;
@@ -559,6 +604,7 @@ function HeroFeatureCardsGrid({
559
604
  contentClassName
560
605
  ),
561
606
  children: [
607
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
562
608
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
563
609
  "h1",
564
610
  {
@@ -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 HeroFullscreenBackgroundImage({
474
515
  sectionId = "hero-fullscreen-background-image",
475
516
  heading,
@@ -487,7 +528,10 @@ function HeroFullscreenBackgroundImage({
487
528
  headingClassName,
488
529
  descriptionClassName,
489
530
  actionsClassName,
490
- optixFlowConfig
531
+ optixFlowConfig,
532
+ logo,
533
+ logoSlot,
534
+ logoClassName
491
535
  }) {
492
536
  const renderBackground = React.useMemo(() => {
493
537
  if (!backgroundImage) return null;
@@ -529,6 +573,7 @@ function HeroFullscreenBackgroundImage({
529
573
  contentClassName
530
574
  ),
531
575
  children: [
576
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
532
577
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
533
578
  "h1",
534
579
  {
@@ -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';
@@ -74,9 +77,21 @@ interface HeroFullscreenBackgroundImageProps {
74
77
  apiKey: string;
75
78
  compression?: number;
76
79
  };
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroFullscreenBackgroundImage({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroFullscreenBackgroundImageProps): React.JSX.Element;
95
+ declare function HeroFullscreenBackgroundImage({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroFullscreenBackgroundImageProps): React.JSX.Element;
81
96
 
82
97
  export { HeroFullscreenBackgroundImage, type HeroFullscreenBackgroundImageProps };
@@ -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';
@@ -74,9 +77,21 @@ interface HeroFullscreenBackgroundImageProps {
74
77
  apiKey: string;
75
78
  compression?: number;
76
79
  };
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroFullscreenBackgroundImage({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroFullscreenBackgroundImageProps): React.JSX.Element;
95
+ declare function HeroFullscreenBackgroundImage({ sectionId, heading, description, actions, actionsSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroFullscreenBackgroundImageProps): React.JSX.Element;
81
96
 
82
97
  export { HeroFullscreenBackgroundImage, type HeroFullscreenBackgroundImageProps };
@@ -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 HeroFullscreenBackgroundImage({
468
509
  sectionId = "hero-fullscreen-background-image",
469
510
  heading,
@@ -481,7 +522,10 @@ function HeroFullscreenBackgroundImage({
481
522
  headingClassName,
482
523
  descriptionClassName,
483
524
  actionsClassName,
484
- optixFlowConfig
525
+ optixFlowConfig,
526
+ logo,
527
+ logoSlot,
528
+ logoClassName
485
529
  }) {
486
530
  const renderBackground = useMemo(() => {
487
531
  if (!backgroundImage) return null;
@@ -523,6 +567,7 @@ function HeroFullscreenBackgroundImage({
523
567
  contentClassName
524
568
  ),
525
569
  children: [
570
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
526
571
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
527
572
  "h1",
528
573
  {
@@ -531,6 +531,47 @@ function ActionComponent({ action }) {
531
531
  }
532
532
  );
533
533
  }
534
+ var SIZE_CLASSES = {
535
+ sm: "max-h-6 sm:max-h-7",
536
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
537
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
538
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
539
+ };
540
+ var BrandLogo = ({
541
+ logo,
542
+ logoSlot,
543
+ logoClassName,
544
+ size = "md",
545
+ optixFlowConfig
546
+ }) => {
547
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
548
+ if (!logo || !logo.src) return null;
549
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
550
+ img.Img,
551
+ {
552
+ src: logo.src,
553
+ className: cn(
554
+ "w-auto object-contain",
555
+ SIZE_CLASSES[size],
556
+ logo.className
557
+ ),
558
+ alt: logo.alt || "Logo",
559
+ optixFlowConfig,
560
+ loading: "eager"
561
+ }
562
+ );
563
+ if (logo.url) {
564
+ return /* @__PURE__ */ jsxRuntime.jsx(
565
+ pressable.Pressable,
566
+ {
567
+ href: logo.url,
568
+ className: cn("flex items-center", logoClassName),
569
+ children: imgElement
570
+ }
571
+ );
572
+ }
573
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
574
+ };
534
575
  function HeroGradientAvatarsRating({
535
576
  sectionId = "hero-gradient-avatars-rating",
536
577
  heading,
@@ -555,7 +596,10 @@ function HeroGradientAvatarsRating({
555
596
  descriptionClassName,
556
597
  actionsClassName,
557
598
  imagesClassName,
558
- optixFlowConfig
599
+ optixFlowConfig,
600
+ logo,
601
+ logoSlot,
602
+ logoClassName
559
603
  }) {
560
604
  const renderAvatars = React.useMemo(() => {
561
605
  if (avatarsSlot) return avatarsSlot;
@@ -661,6 +705,7 @@ function HeroGradientAvatarsRating({
661
705
  contentClassName
662
706
  ),
663
707
  children: [
708
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
664
709
  heading && /* @__PURE__ */ jsxRuntime.jsx(
665
710
  "h1",
666
711
  {
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
3
4
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -108,9 +111,21 @@ interface HeroGradientAvatarsRatingProps {
108
111
  * OptixFlow image optimization configuration
109
112
  */
110
113
  optixFlowConfig?: OptixFlowConfig;
114
+ /**
115
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
116
+ */
117
+ logo?: LogoConfig;
118
+ /**
119
+ * Custom slot for logo (overrides logo prop)
120
+ */
121
+ logoSlot?: React.ReactNode;
122
+ /**
123
+ * Additional CSS classes for the logo container
124
+ */
125
+ logoClassName?: string;
111
126
  /** Optional Section ID */
112
127
  sectionId?: string;
113
128
  }
114
- declare function HeroGradientAvatarsRating({ sectionId, heading, description, actions, actionsSlot, avatars, avatarsSlot, ratingValue, ratingLabel, starCount, images, imagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroGradientAvatarsRatingProps): React.JSX.Element;
129
+ declare function HeroGradientAvatarsRating({ sectionId, heading, description, actions, actionsSlot, avatars, avatarsSlot, ratingValue, ratingLabel, starCount, images, imagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroGradientAvatarsRatingProps): React.JSX.Element;
115
130
 
116
131
  export { type AvatarItem, HeroGradientAvatarsRating, type HeroGradientAvatarsRatingProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -108,9 +111,21 @@ interface HeroGradientAvatarsRatingProps {
108
111
  * OptixFlow image optimization configuration
109
112
  */
110
113
  optixFlowConfig?: OptixFlowConfig;
114
+ /**
115
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
116
+ */
117
+ logo?: LogoConfig;
118
+ /**
119
+ * Custom slot for logo (overrides logo prop)
120
+ */
121
+ logoSlot?: React.ReactNode;
122
+ /**
123
+ * Additional CSS classes for the logo container
124
+ */
125
+ logoClassName?: string;
111
126
  /** Optional Section ID */
112
127
  sectionId?: string;
113
128
  }
114
- declare function HeroGradientAvatarsRating({ sectionId, heading, description, actions, actionsSlot, avatars, avatarsSlot, ratingValue, ratingLabel, starCount, images, imagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroGradientAvatarsRatingProps): React.JSX.Element;
129
+ declare function HeroGradientAvatarsRating({ sectionId, heading, description, actions, actionsSlot, avatars, avatarsSlot, ratingValue, ratingLabel, starCount, images, imagesSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroGradientAvatarsRatingProps): React.JSX.Element;
115
130
 
116
131
  export { type AvatarItem, HeroGradientAvatarsRating, type HeroGradientAvatarsRatingProps };
@@ -509,6 +509,47 @@ function ActionComponent({ action }) {
509
509
  }
510
510
  );
511
511
  }
512
+ var SIZE_CLASSES = {
513
+ sm: "max-h-6 sm:max-h-7",
514
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
515
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
516
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
517
+ };
518
+ var BrandLogo = ({
519
+ logo,
520
+ logoSlot,
521
+ logoClassName,
522
+ size = "md",
523
+ optixFlowConfig
524
+ }) => {
525
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
526
+ if (!logo || !logo.src) return null;
527
+ const imgElement = /* @__PURE__ */ jsx(
528
+ Img,
529
+ {
530
+ src: logo.src,
531
+ className: cn(
532
+ "w-auto object-contain",
533
+ SIZE_CLASSES[size],
534
+ logo.className
535
+ ),
536
+ alt: logo.alt || "Logo",
537
+ optixFlowConfig,
538
+ loading: "eager"
539
+ }
540
+ );
541
+ if (logo.url) {
542
+ return /* @__PURE__ */ jsx(
543
+ Pressable,
544
+ {
545
+ href: logo.url,
546
+ className: cn("flex items-center", logoClassName),
547
+ children: imgElement
548
+ }
549
+ );
550
+ }
551
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
552
+ };
512
553
  function HeroGradientAvatarsRating({
513
554
  sectionId = "hero-gradient-avatars-rating",
514
555
  heading,
@@ -533,7 +574,10 @@ function HeroGradientAvatarsRating({
533
574
  descriptionClassName,
534
575
  actionsClassName,
535
576
  imagesClassName,
536
- optixFlowConfig
577
+ optixFlowConfig,
578
+ logo,
579
+ logoSlot,
580
+ logoClassName
537
581
  }) {
538
582
  const renderAvatars = useMemo(() => {
539
583
  if (avatarsSlot) return avatarsSlot;
@@ -639,6 +683,7 @@ function HeroGradientAvatarsRating({
639
683
  contentClassName
640
684
  ),
641
685
  children: [
686
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
642
687
  heading && /* @__PURE__ */ jsx(
643
688
  "h1",
644
689
  {
@@ -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 HeroGradientClientFocused({
474
515
  sectionId = "hero-gradient-client-focused",
475
516
  heading,
@@ -488,7 +529,10 @@ function HeroGradientClientFocused({
488
529
  descriptionClassName,
489
530
  actionsClassName,
490
531
  imageClassName,
491
- optixFlowConfig
532
+ optixFlowConfig,
533
+ logo,
534
+ logoSlot,
535
+ logoClassName
492
536
  }) {
493
537
  const renderImage = React.useMemo(() => {
494
538
  if (imageSlot) return imageSlot;
@@ -518,6 +562,7 @@ function HeroGradientClientFocused({
518
562
  patternOpacity,
519
563
  containerClassName,
520
564
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative flex flex-col items-center gap-4", children: [
565
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
521
566
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
522
567
  "h1",
523
568
  {
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
3
4
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -74,9 +77,21 @@ interface HeroGradientClientFocusedProps {
74
77
  * OptixFlow image optimization configuration
75
78
  */
76
79
  optixFlowConfig?: OptixFlowConfig;
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroGradientClientFocused({ sectionId, heading, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroGradientClientFocusedProps): React.JSX.Element;
95
+ declare function HeroGradientClientFocused({ sectionId, heading, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroGradientClientFocusedProps): React.JSX.Element;
81
96
 
82
97
  export { HeroGradientClientFocused, type HeroGradientClientFocusedProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -74,9 +77,21 @@ interface HeroGradientClientFocusedProps {
74
77
  * OptixFlow image optimization configuration
75
78
  */
76
79
  optixFlowConfig?: OptixFlowConfig;
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroGradientClientFocused({ sectionId, heading, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroGradientClientFocusedProps): React.JSX.Element;
95
+ declare function HeroGradientClientFocused({ sectionId, heading, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroGradientClientFocusedProps): React.JSX.Element;
81
96
 
82
97
  export { HeroGradientClientFocused, type HeroGradientClientFocusedProps };