@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
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
464
464
  }
465
465
  );
466
466
  }
467
+ var SIZE_CLASSES = {
468
+ sm: "max-h-6 sm:max-h-7",
469
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
470
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
471
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
472
+ };
473
+ var BrandLogo = ({
474
+ logo,
475
+ logoSlot,
476
+ logoClassName,
477
+ size = "md",
478
+ optixFlowConfig
479
+ }) => {
480
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
481
+ if (!logo || !logo.src) return null;
482
+ const imgElement = /* @__PURE__ */ jsx(
483
+ Img,
484
+ {
485
+ src: logo.src,
486
+ className: cn(
487
+ "w-auto object-contain",
488
+ SIZE_CLASSES[size],
489
+ logo.className
490
+ ),
491
+ alt: logo.alt || "Logo",
492
+ optixFlowConfig,
493
+ loading: "eager"
494
+ }
495
+ );
496
+ if (logo.url) {
497
+ return /* @__PURE__ */ jsx(
498
+ Pressable,
499
+ {
500
+ href: logo.url,
501
+ className: cn("flex items-center", logoClassName),
502
+ children: imgElement
503
+ }
504
+ );
505
+ }
506
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
507
+ };
467
508
  function HeroDigitalAgencyFullscreen({
468
509
  sectionId = "hero-digital-agency-fullscreen",
469
510
  heading,
@@ -481,7 +522,10 @@ function HeroDigitalAgencyFullscreen({
481
522
  headingClassName,
482
523
  descriptionClassName,
483
524
  actionsClassName,
484
- optixFlowConfig
525
+ optixFlowConfig,
526
+ logo,
527
+ logoSlot,
528
+ logoClassName
485
529
  }) {
486
530
  const [isImageLoaded, setIsImageLoaded] = useState(false);
487
531
  const bgImageRef = useRef(null);
@@ -539,6 +583,7 @@ function HeroDigitalAgencyFullscreen({
539
583
  contentClassName
540
584
  ),
541
585
  children: /* @__PURE__ */ jsxs("div", { className: "container flex flex-col gap-6 mb-6 md:mb-24 px-6 md:px-0", children: [
586
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
542
587
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
543
588
  "h1",
544
589
  {
@@ -534,6 +534,47 @@ function ActionComponent({ action }) {
534
534
  }
535
535
  );
536
536
  }
537
+ var SIZE_CLASSES = {
538
+ sm: "max-h-6 sm:max-h-7",
539
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
540
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
541
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
542
+ };
543
+ var BrandLogo = ({
544
+ logo,
545
+ logoSlot,
546
+ logoClassName,
547
+ size = "md",
548
+ optixFlowConfig
549
+ }) => {
550
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
551
+ if (!logo || !logo.src) return null;
552
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
553
+ img.Img,
554
+ {
555
+ src: logo.src,
556
+ className: cn(
557
+ "w-auto object-contain",
558
+ SIZE_CLASSES[size],
559
+ logo.className
560
+ ),
561
+ alt: logo.alt || "Logo",
562
+ optixFlowConfig,
563
+ loading: "eager"
564
+ }
565
+ );
566
+ if (logo.url) {
567
+ return /* @__PURE__ */ jsxRuntime.jsx(
568
+ pressable.Pressable,
569
+ {
570
+ href: logo.url,
571
+ className: cn("flex items-center", logoClassName),
572
+ children: imgElement
573
+ }
574
+ );
575
+ }
576
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
577
+ };
537
578
  function HeroEcommerceProductShowcase({
538
579
  sectionId = "hero-ecommerce-product-showcase",
539
580
  badgeText,
@@ -560,7 +601,10 @@ function HeroEcommerceProductShowcase({
560
601
  actionsClassName,
561
602
  statsClassName,
562
603
  imagesClassName,
563
- optixFlowConfig
604
+ optixFlowConfig,
605
+ logo,
606
+ logoSlot,
607
+ logoClassName
564
608
  }) {
565
609
  const renderBadge = React.useMemo(() => {
566
610
  if (badgeSlot) return badgeSlot;
@@ -691,6 +735,7 @@ function HeroEcommerceProductShowcase({
691
735
  ),
692
736
  children: [
693
737
  renderBadge,
738
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
694
739
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
695
740
  "h1",
696
741
  {
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
3
4
  import { A as ActionConfig, k as StatItem, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -107,9 +110,21 @@ interface HeroEcommerceProductShowcaseProps {
107
110
  * OptixFlow image optimization configuration
108
111
  */
109
112
  optixFlowConfig?: OptixFlowConfig;
113
+ /**
114
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
115
+ */
116
+ logo?: LogoConfig;
117
+ /**
118
+ * Custom slot for logo (overrides logo prop)
119
+ */
120
+ logoSlot?: React.ReactNode;
121
+ /**
122
+ * Additional CSS classes for the logo container
123
+ */
124
+ logoClassName?: string;
110
125
  /** Optional Section ID */
111
126
  sectionId?: string;
112
127
  }
113
- declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
128
+ declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
114
129
 
115
130
  export { HeroEcommerceProductShowcase, type HeroEcommerceProductShowcaseProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig, k as StatItem, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -107,9 +110,21 @@ interface HeroEcommerceProductShowcaseProps {
107
110
  * OptixFlow image optimization configuration
108
111
  */
109
112
  optixFlowConfig?: OptixFlowConfig;
113
+ /**
114
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
115
+ */
116
+ logo?: LogoConfig;
117
+ /**
118
+ * Custom slot for logo (overrides logo prop)
119
+ */
120
+ logoSlot?: React.ReactNode;
121
+ /**
122
+ * Additional CSS classes for the logo container
123
+ */
124
+ logoClassName?: string;
110
125
  /** Optional Section ID */
111
126
  sectionId?: string;
112
127
  }
113
- declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
128
+ declare function HeroEcommerceProductShowcase({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, actions, actionsSlot, stats, statsSlot, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroEcommerceProductShowcaseProps): React.JSX.Element;
114
129
 
115
130
  export { HeroEcommerceProductShowcase, type HeroEcommerceProductShowcaseProps };
@@ -513,6 +513,47 @@ function ActionComponent({ action }) {
513
513
  }
514
514
  );
515
515
  }
516
+ var SIZE_CLASSES = {
517
+ sm: "max-h-6 sm:max-h-7",
518
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
519
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
520
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
521
+ };
522
+ var BrandLogo = ({
523
+ logo,
524
+ logoSlot,
525
+ logoClassName,
526
+ size = "md",
527
+ optixFlowConfig
528
+ }) => {
529
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
530
+ if (!logo || !logo.src) return null;
531
+ const imgElement = /* @__PURE__ */ jsx(
532
+ Img,
533
+ {
534
+ src: logo.src,
535
+ className: cn(
536
+ "w-auto object-contain",
537
+ SIZE_CLASSES[size],
538
+ logo.className
539
+ ),
540
+ alt: logo.alt || "Logo",
541
+ optixFlowConfig,
542
+ loading: "eager"
543
+ }
544
+ );
545
+ if (logo.url) {
546
+ return /* @__PURE__ */ jsx(
547
+ Pressable,
548
+ {
549
+ href: logo.url,
550
+ className: cn("flex items-center", logoClassName),
551
+ children: imgElement
552
+ }
553
+ );
554
+ }
555
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
556
+ };
516
557
  function HeroEcommerceProductShowcase({
517
558
  sectionId = "hero-ecommerce-product-showcase",
518
559
  badgeText,
@@ -539,7 +580,10 @@ function HeroEcommerceProductShowcase({
539
580
  actionsClassName,
540
581
  statsClassName,
541
582
  imagesClassName,
542
- optixFlowConfig
583
+ optixFlowConfig,
584
+ logo,
585
+ logoSlot,
586
+ logoClassName
543
587
  }) {
544
588
  const renderBadge = useMemo(() => {
545
589
  if (badgeSlot) return badgeSlot;
@@ -670,6 +714,7 @@ function HeroEcommerceProductShowcase({
670
714
  ),
671
715
  children: [
672
716
  renderBadge,
717
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
673
718
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
674
719
  "h1",
675
720
  {
@@ -9,6 +9,7 @@ var icon = require('@page-speed/icon');
9
9
  var jsxRuntime = require('react/jsx-runtime');
10
10
  var reactSlot = require('@radix-ui/react-slot');
11
11
  var classVarianceAuthority = require('class-variance-authority');
12
+ var img = require('@page-speed/img');
12
13
 
13
14
  function _interopNamespace(e) {
14
15
  if (e && e.__esModule) return e;
@@ -533,6 +534,47 @@ function ActionComponent({ action }) {
533
534
  }
534
535
  );
535
536
  }
537
+ var SIZE_CLASSES = {
538
+ sm: "max-h-6 sm:max-h-7",
539
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
540
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
541
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
542
+ };
543
+ var BrandLogo = ({
544
+ logo,
545
+ logoSlot,
546
+ logoClassName,
547
+ size = "md",
548
+ optixFlowConfig
549
+ }) => {
550
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
551
+ if (!logo || !logo.src) return null;
552
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
553
+ img.Img,
554
+ {
555
+ src: logo.src,
556
+ className: cn(
557
+ "w-auto object-contain",
558
+ SIZE_CLASSES[size],
559
+ logo.className
560
+ ),
561
+ alt: logo.alt || "Logo",
562
+ optixFlowConfig,
563
+ loading: "eager"
564
+ }
565
+ );
566
+ if (logo.url) {
567
+ return /* @__PURE__ */ jsxRuntime.jsx(
568
+ pressable.Pressable,
569
+ {
570
+ href: logo.url,
571
+ className: cn("flex items-center", logoClassName),
572
+ children: imgElement
573
+ }
574
+ );
575
+ }
576
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
577
+ };
536
578
  function HeroEnterpriseSecurity({
537
579
  sectionId = "hero-enterprise-security",
538
580
  badge,
@@ -555,7 +597,10 @@ function HeroEnterpriseSecurity({
555
597
  headingClassName,
556
598
  descriptionClassName,
557
599
  actionsClassName,
558
- featuresClassName
600
+ featuresClassName,
601
+ logo,
602
+ logoSlot,
603
+ logoClassName
559
604
  }) {
560
605
  const renderFeatures = React.useMemo(() => {
561
606
  if (featuresSlot) return featuresSlot;
@@ -626,6 +671,7 @@ function HeroEnterpriseSecurity({
626
671
  badgeIcon,
627
672
  typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
628
673
  ] }),
674
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
629
675
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
630
676
  "h1",
631
677
  {
@@ -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, 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';
@@ -97,9 +100,21 @@ interface HeroEnterpriseSecurityProps {
97
100
  * OptixFlow image optimization configuration
98
101
  */
99
102
  optixFlowConfig?: OptixFlowConfig;
103
+ /**
104
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
105
+ */
106
+ logo?: LogoConfig;
107
+ /**
108
+ * Custom slot for logo (overrides logo prop)
109
+ */
110
+ logoSlot?: React.ReactNode;
111
+ /**
112
+ * Additional CSS classes for the logo container
113
+ */
114
+ logoClassName?: string;
100
115
  /** Optional Section ID */
101
116
  sectionId?: string;
102
117
  }
103
- declare function HeroEnterpriseSecurity({ sectionId, badge, badgeIcon, badgeClassName, heading, description, actions, actionsSlot, features, featuresSlot, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, }: HeroEnterpriseSecurityProps): React.JSX.Element;
118
+ declare function HeroEnterpriseSecurity({ sectionId, badge, badgeIcon, badgeClassName, heading, description, actions, actionsSlot, features, featuresSlot, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, logo, logoSlot, logoClassName, }: HeroEnterpriseSecurityProps): React.JSX.Element;
104
119
 
105
120
  export { HeroEnterpriseSecurity, type HeroEnterpriseSecurityProps };
@@ -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, 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';
@@ -97,9 +100,21 @@ interface HeroEnterpriseSecurityProps {
97
100
  * OptixFlow image optimization configuration
98
101
  */
99
102
  optixFlowConfig?: OptixFlowConfig;
103
+ /**
104
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
105
+ */
106
+ logo?: LogoConfig;
107
+ /**
108
+ * Custom slot for logo (overrides logo prop)
109
+ */
110
+ logoSlot?: React.ReactNode;
111
+ /**
112
+ * Additional CSS classes for the logo container
113
+ */
114
+ logoClassName?: string;
100
115
  /** Optional Section ID */
101
116
  sectionId?: string;
102
117
  }
103
- declare function HeroEnterpriseSecurity({ sectionId, badge, badgeIcon, badgeClassName, heading, description, actions, actionsSlot, features, featuresSlot, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, }: HeroEnterpriseSecurityProps): React.JSX.Element;
118
+ declare function HeroEnterpriseSecurity({ sectionId, badge, badgeIcon, badgeClassName, heading, description, actions, actionsSlot, features, featuresSlot, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, logo, logoSlot, logoClassName, }: HeroEnterpriseSecurityProps): React.JSX.Element;
104
119
 
105
120
  export { HeroEnterpriseSecurity, type HeroEnterpriseSecurityProps };
@@ -8,6 +8,7 @@ import { Icon } from '@page-speed/icon';
8
8
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
9
  import { Slot } from '@radix-ui/react-slot';
10
10
  import { cva } from 'class-variance-authority';
11
+ import { Img } from '@page-speed/img';
11
12
 
12
13
  // components/blocks/hero/hero-enterprise-security.tsx
13
14
  function cn(...inputs) {
@@ -512,6 +513,47 @@ function ActionComponent({ action }) {
512
513
  }
513
514
  );
514
515
  }
516
+ var SIZE_CLASSES = {
517
+ sm: "max-h-6 sm:max-h-7",
518
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
519
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
520
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
521
+ };
522
+ var BrandLogo = ({
523
+ logo,
524
+ logoSlot,
525
+ logoClassName,
526
+ size = "md",
527
+ optixFlowConfig
528
+ }) => {
529
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
530
+ if (!logo || !logo.src) return null;
531
+ const imgElement = /* @__PURE__ */ jsx(
532
+ Img,
533
+ {
534
+ src: logo.src,
535
+ className: cn(
536
+ "w-auto object-contain",
537
+ SIZE_CLASSES[size],
538
+ logo.className
539
+ ),
540
+ alt: logo.alt || "Logo",
541
+ optixFlowConfig,
542
+ loading: "eager"
543
+ }
544
+ );
545
+ if (logo.url) {
546
+ return /* @__PURE__ */ jsx(
547
+ Pressable,
548
+ {
549
+ href: logo.url,
550
+ className: cn("flex items-center", logoClassName),
551
+ children: imgElement
552
+ }
553
+ );
554
+ }
555
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
556
+ };
515
557
  function HeroEnterpriseSecurity({
516
558
  sectionId = "hero-enterprise-security",
517
559
  badge,
@@ -534,7 +576,10 @@ function HeroEnterpriseSecurity({
534
576
  headingClassName,
535
577
  descriptionClassName,
536
578
  actionsClassName,
537
- featuresClassName
579
+ featuresClassName,
580
+ logo,
581
+ logoSlot,
582
+ logoClassName
538
583
  }) {
539
584
  const renderFeatures = useMemo(() => {
540
585
  if (featuresSlot) return featuresSlot;
@@ -605,6 +650,7 @@ function HeroEnterpriseSecurity({
605
650
  badgeIcon,
606
651
  typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
607
652
  ] }),
653
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
608
654
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
609
655
  "h1",
610
656
  {
@@ -7,6 +7,7 @@ var tailwindMerge = require('tailwind-merge');
7
7
  var pressable = require('@page-speed/pressable');
8
8
  var icon = require('@page-speed/icon');
9
9
  var jsxRuntime = require('react/jsx-runtime');
10
+ var img = require('@page-speed/img');
10
11
 
11
12
  function _interopNamespace(e) {
12
13
  if (e && e.__esModule) return e;
@@ -499,6 +500,47 @@ function ActionComponent({ action }) {
499
500
  }
500
501
  );
501
502
  }
503
+ var SIZE_CLASSES = {
504
+ sm: "max-h-6 sm:max-h-7",
505
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
506
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
507
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
508
+ };
509
+ var BrandLogo = ({
510
+ logo,
511
+ logoSlot,
512
+ logoClassName,
513
+ size = "md",
514
+ optixFlowConfig
515
+ }) => {
516
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
517
+ if (!logo || !logo.src) return null;
518
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
519
+ img.Img,
520
+ {
521
+ src: logo.src,
522
+ className: cn(
523
+ "w-auto object-contain",
524
+ SIZE_CLASSES[size],
525
+ logo.className
526
+ ),
527
+ alt: logo.alt || "Logo",
528
+ optixFlowConfig,
529
+ loading: "eager"
530
+ }
531
+ );
532
+ if (logo.url) {
533
+ return /* @__PURE__ */ jsxRuntime.jsx(
534
+ pressable.Pressable,
535
+ {
536
+ href: logo.url,
537
+ className: cn("flex items-center", logoClassName),
538
+ children: imgElement
539
+ }
540
+ );
541
+ }
542
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
543
+ };
502
544
  function HeroFeatureCardsGrid({
503
545
  sectionId = "hero-feature-cards-grid",
504
546
  heading,
@@ -517,7 +559,10 @@ function HeroFeatureCardsGrid({
517
559
  headingClassName,
518
560
  descriptionClassName,
519
561
  actionsClassName,
520
- featuresClassName
562
+ featuresClassName,
563
+ logo,
564
+ logoSlot,
565
+ logoClassName
521
566
  }) {
522
567
  const renderFeatures = React.useMemo(() => {
523
568
  if (featuresSlot) return featuresSlot;
@@ -580,6 +625,7 @@ function HeroFeatureCardsGrid({
580
625
  contentClassName
581
626
  ),
582
627
  children: [
628
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
583
629
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
584
630
  "h1",
585
631
  {
@@ -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, F as FeatureItem } 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';
@@ -76,9 +79,21 @@ interface HeroFeatureCardsGridProps {
76
79
  * Additional CSS classes for the features container
77
80
  */
78
81
  featuresClassName?: string;
82
+ /**
83
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
84
+ */
85
+ logo?: LogoConfig;
86
+ /**
87
+ * Custom slot for logo (overrides logo prop)
88
+ */
89
+ logoSlot?: React.ReactNode;
90
+ /**
91
+ * Additional CSS classes for the logo container
92
+ */
93
+ logoClassName?: string;
79
94
  /** Optional Section ID */
80
95
  sectionId?: string;
81
96
  }
82
- declare function HeroFeatureCardsGrid({ sectionId, heading, description, actions, actionsSlot, features, featuresSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, }: HeroFeatureCardsGridProps): React.JSX.Element;
97
+ declare function HeroFeatureCardsGrid({ sectionId, heading, description, actions, actionsSlot, features, featuresSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, logo, logoSlot, logoClassName, }: HeroFeatureCardsGridProps): React.JSX.Element;
83
98
 
84
99
  export { HeroFeatureCardsGrid, type HeroFeatureCardsGridProps };
@@ -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, F as FeatureItem } 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';
@@ -76,9 +79,21 @@ interface HeroFeatureCardsGridProps {
76
79
  * Additional CSS classes for the features container
77
80
  */
78
81
  featuresClassName?: string;
82
+ /**
83
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
84
+ */
85
+ logo?: LogoConfig;
86
+ /**
87
+ * Custom slot for logo (overrides logo prop)
88
+ */
89
+ logoSlot?: React.ReactNode;
90
+ /**
91
+ * Additional CSS classes for the logo container
92
+ */
93
+ logoClassName?: string;
79
94
  /** Optional Section ID */
80
95
  sectionId?: string;
81
96
  }
82
- declare function HeroFeatureCardsGrid({ sectionId, heading, description, actions, actionsSlot, features, featuresSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, }: HeroFeatureCardsGridProps): React.JSX.Element;
97
+ declare function HeroFeatureCardsGrid({ sectionId, heading, description, actions, actionsSlot, features, featuresSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, featuresClassName, logo, logoSlot, logoClassName, }: HeroFeatureCardsGridProps): React.JSX.Element;
83
98
 
84
99
  export { HeroFeatureCardsGrid, type HeroFeatureCardsGridProps };