@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
@@ -498,6 +498,47 @@ function ActionComponent({ action }) {
498
498
  }
499
499
  );
500
500
  }
501
+ var SIZE_CLASSES = {
502
+ sm: "max-h-6 sm:max-h-7",
503
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
504
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
505
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
506
+ };
507
+ var BrandLogo = ({
508
+ logo,
509
+ logoSlot,
510
+ logoClassName,
511
+ size = "md",
512
+ optixFlowConfig
513
+ }) => {
514
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
515
+ if (!logo || !logo.src) return null;
516
+ const imgElement = /* @__PURE__ */ jsx(
517
+ Img,
518
+ {
519
+ src: logo.src,
520
+ className: cn(
521
+ "w-auto object-contain",
522
+ SIZE_CLASSES[size],
523
+ logo.className
524
+ ),
525
+ alt: logo.alt || "Logo",
526
+ optixFlowConfig,
527
+ loading: "eager"
528
+ }
529
+ );
530
+ if (logo.url) {
531
+ return /* @__PURE__ */ jsx(
532
+ Pressable,
533
+ {
534
+ href: logo.url,
535
+ className: cn("flex items-center", logoClassName),
536
+ children: imgElement
537
+ }
538
+ );
539
+ }
540
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
541
+ };
501
542
  function HeroStartupLaunchCta({
502
543
  sectionId = "hero-startup-launch-cta",
503
544
  badge,
@@ -527,7 +568,10 @@ function HeroStartupLaunchCta({
527
568
  actionsClassName,
528
569
  socialProofClassName,
529
570
  imageClassName,
530
- optixFlowConfig
571
+ optixFlowConfig,
572
+ logo,
573
+ logoSlot,
574
+ logoClassName
531
575
  }) {
532
576
  const renderAvatars = useMemo(() => {
533
577
  if (avatarsSlot) return avatarsSlot;
@@ -582,6 +626,7 @@ function HeroStartupLaunchCta({
582
626
  badgeIcon,
583
627
  typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
584
628
  ] }),
629
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
585
630
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
586
631
  "h1",
587
632
  {
@@ -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 HeroStatsSocialProof({
538
579
  sectionId = "hero-stats-social-proof",
539
580
  badge,
@@ -561,7 +602,10 @@ function HeroStatsSocialProof({
561
602
  actionsClassName,
562
603
  statsClassName,
563
604
  imageClassName,
564
- optixFlowConfig
605
+ optixFlowConfig,
606
+ logo,
607
+ logoSlot,
608
+ logoClassName
565
609
  }) {
566
610
  const renderStats = React.useMemo(() => {
567
611
  if (statsSlot) return statsSlot;
@@ -608,6 +652,7 @@ function HeroStatsSocialProof({
608
652
  badgeIcon,
609
653
  typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
610
654
  ] }),
655
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
611
656
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
612
657
  "h1",
613
658
  {
@@ -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, 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';
@@ -114,9 +117,21 @@ interface HeroStatsSocialProofProps {
114
117
  * OptixFlow image optimization configuration
115
118
  */
116
119
  optixFlowConfig?: OptixFlowConfig;
120
+ /**
121
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
122
+ */
123
+ logo?: LogoConfig;
124
+ /**
125
+ * Custom slot for logo (overrides logo prop)
126
+ */
127
+ logoSlot?: React.ReactNode;
128
+ /**
129
+ * Additional CSS classes for the logo container
130
+ */
131
+ logoClassName?: string;
117
132
  /** Optional Section ID */
118
133
  sectionId?: string;
119
134
  }
120
- declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, }: HeroStatsSocialProofProps): React.JSX.Element;
135
+ declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStatsSocialProofProps): React.JSX.Element;
121
136
 
122
137
  export { HeroStatsSocialProof, type HeroStatsSocialProofProps };
@@ -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, 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';
@@ -114,9 +117,21 @@ interface HeroStatsSocialProofProps {
114
117
  * OptixFlow image optimization configuration
115
118
  */
116
119
  optixFlowConfig?: OptixFlowConfig;
120
+ /**
121
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
122
+ */
123
+ logo?: LogoConfig;
124
+ /**
125
+ * Custom slot for logo (overrides logo prop)
126
+ */
127
+ logoSlot?: React.ReactNode;
128
+ /**
129
+ * Additional CSS classes for the logo container
130
+ */
131
+ logoClassName?: string;
117
132
  /** Optional Section ID */
118
133
  sectionId?: string;
119
134
  }
120
- declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, }: HeroStatsSocialProofProps): React.JSX.Element;
135
+ declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStatsSocialProofProps): React.JSX.Element;
121
136
 
122
137
  export { HeroStatsSocialProof, type HeroStatsSocialProofProps };
@@ -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 HeroStatsSocialProof({
517
558
  sectionId = "hero-stats-social-proof",
518
559
  badge,
@@ -540,7 +581,10 @@ function HeroStatsSocialProof({
540
581
  actionsClassName,
541
582
  statsClassName,
542
583
  imageClassName,
543
- optixFlowConfig
584
+ optixFlowConfig,
585
+ logo,
586
+ logoSlot,
587
+ logoClassName
544
588
  }) {
545
589
  const renderStats = useMemo(() => {
546
590
  if (statsSlot) return statsSlot;
@@ -587,6 +631,7 @@ function HeroStatsSocialProof({
587
631
  badgeIcon,
588
632
  typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
589
633
  ] }),
634
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
590
635
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
591
636
  "h1",
592
637
  {
@@ -495,6 +495,47 @@ function ActionComponent({ action }) {
495
495
  }
496
496
  );
497
497
  }
498
+ var SIZE_CLASSES = {
499
+ sm: "max-h-6 sm:max-h-7",
500
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
501
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
502
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
503
+ };
504
+ var BrandLogo = ({
505
+ logo,
506
+ logoSlot,
507
+ logoClassName,
508
+ size = "md",
509
+ optixFlowConfig
510
+ }) => {
511
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
512
+ if (!logo || !logo.src) return null;
513
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
514
+ img.Img,
515
+ {
516
+ src: logo.src,
517
+ className: cn(
518
+ "w-auto object-contain",
519
+ SIZE_CLASSES[size],
520
+ logo.className
521
+ ),
522
+ alt: logo.alt || "Logo",
523
+ optixFlowConfig,
524
+ loading: "eager"
525
+ }
526
+ );
527
+ if (logo.url) {
528
+ return /* @__PURE__ */ jsxRuntime.jsx(
529
+ pressable.Pressable,
530
+ {
531
+ href: logo.url,
532
+ className: cn("flex items-center", logoClassName),
533
+ children: imgElement
534
+ }
535
+ );
536
+ }
537
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
538
+ };
498
539
  function HeroTaskTimerAnimated({
499
540
  sectionId = "hero-task-timer-animated",
500
541
  heading,
@@ -514,7 +555,10 @@ function HeroTaskTimerAnimated({
514
555
  headerClassName,
515
556
  headingClassName,
516
557
  imagesClassName,
517
- optixFlowConfig
558
+ optixFlowConfig,
559
+ logo,
560
+ logoSlot,
561
+ logoClassName
518
562
  }) {
519
563
  const renderImages = React.useMemo(() => {
520
564
  if (imagesSlot) return imagesSlot;
@@ -574,6 +618,7 @@ function HeroTaskTimerAnimated({
574
618
  headerClassName
575
619
  ),
576
620
  children: [
621
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
577
622
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
578
623
  "h1",
579
624
  {
@@ -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';
@@ -78,9 +81,21 @@ interface HeroTaskTimerAnimatedProps {
78
81
  * Additional CSS classes for the description
79
82
  */
80
83
  descriptionClassName?: string;
84
+ /**
85
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
86
+ */
87
+ logo?: LogoConfig;
88
+ /**
89
+ * Custom slot for logo (overrides logo prop)
90
+ */
91
+ logoSlot?: React.ReactNode;
92
+ /**
93
+ * Additional CSS classes for the logo container
94
+ */
95
+ logoClassName?: string;
81
96
  /** Optional Section ID */
82
97
  sectionId?: string;
83
98
  }
84
- declare function HeroTaskTimerAnimated({ sectionId, heading, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
99
+ declare function HeroTaskTimerAnimated({ sectionId, heading, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
85
100
 
86
101
  export { HeroTaskTimerAnimated, type HeroTaskTimerAnimatedProps };
@@ -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';
@@ -78,9 +81,21 @@ interface HeroTaskTimerAnimatedProps {
78
81
  * Additional CSS classes for the description
79
82
  */
80
83
  descriptionClassName?: string;
84
+ /**
85
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
86
+ */
87
+ logo?: LogoConfig;
88
+ /**
89
+ * Custom slot for logo (overrides logo prop)
90
+ */
91
+ logoSlot?: React.ReactNode;
92
+ /**
93
+ * Additional CSS classes for the logo container
94
+ */
95
+ logoClassName?: string;
81
96
  /** Optional Section ID */
82
97
  sectionId?: string;
83
98
  }
84
- declare function HeroTaskTimerAnimated({ sectionId, heading, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
99
+ declare function HeroTaskTimerAnimated({ sectionId, heading, description, descriptionClassName, actions, actionsSlot, actionsClassName, images, imagesSlot, background, pattern, patternOpacity, className, spacing, containerClassName, headerClassName, headingClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTaskTimerAnimatedProps): React.JSX.Element;
85
100
 
86
101
  export { HeroTaskTimerAnimated, type HeroTaskTimerAnimatedProps };
@@ -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__ */ jsx(Fragment, { children: logoSlot });
487
+ if (!logo || !logo.src) return null;
488
+ const imgElement = /* @__PURE__ */ jsx(
489
+ 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__ */ jsx(
504
+ Pressable,
505
+ {
506
+ href: logo.url,
507
+ className: cn("flex items-center", logoClassName),
508
+ children: imgElement
509
+ }
510
+ );
511
+ }
512
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
513
+ };
473
514
  function HeroTaskTimerAnimated({
474
515
  sectionId = "hero-task-timer-animated",
475
516
  heading,
@@ -489,7 +530,10 @@ function HeroTaskTimerAnimated({
489
530
  headerClassName,
490
531
  headingClassName,
491
532
  imagesClassName,
492
- optixFlowConfig
533
+ optixFlowConfig,
534
+ logo,
535
+ logoSlot,
536
+ logoClassName
493
537
  }) {
494
538
  const renderImages = useMemo(() => {
495
539
  if (imagesSlot) return imagesSlot;
@@ -549,6 +593,7 @@ function HeroTaskTimerAnimated({
549
593
  headerClassName
550
594
  ),
551
595
  children: [
596
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
552
597
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
553
598
  "h1",
554
599
  {
@@ -542,6 +542,47 @@ function ActionComponent({ action }) {
542
542
  }
543
543
  );
544
544
  }
545
+ var SIZE_CLASSES = {
546
+ sm: "max-h-6 sm:max-h-7",
547
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
548
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
549
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
550
+ };
551
+ var BrandLogo = ({
552
+ logo,
553
+ logoSlot,
554
+ logoClassName,
555
+ size = "md",
556
+ optixFlowConfig
557
+ }) => {
558
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
559
+ if (!logo || !logo.src) return null;
560
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
561
+ img.Img,
562
+ {
563
+ src: logo.src,
564
+ className: cn(
565
+ "w-auto object-contain",
566
+ SIZE_CLASSES[size],
567
+ logo.className
568
+ ),
569
+ alt: logo.alt || "Logo",
570
+ optixFlowConfig,
571
+ loading: "eager"
572
+ }
573
+ );
574
+ if (logo.url) {
575
+ return /* @__PURE__ */ jsxRuntime.jsx(
576
+ pressable.Pressable,
577
+ {
578
+ href: logo.url,
579
+ className: cn("flex items-center", logoClassName),
580
+ children: imgElement
581
+ }
582
+ );
583
+ }
584
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
585
+ };
545
586
  function HeroTestimonialImageGrid({
546
587
  sectionId = "hero-testimonial-image-grid",
547
588
  heading,
@@ -561,7 +602,10 @@ function HeroTestimonialImageGrid({
561
602
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
562
603
  headingClassName,
563
604
  descriptionClassName,
564
- optixFlowConfig
605
+ optixFlowConfig,
606
+ logo,
607
+ logoSlot,
608
+ logoClassName
565
609
  }) {
566
610
  const renderTestimonial = React.useMemo(() => {
567
611
  if (testimonialSlot) return testimonialSlot;
@@ -620,6 +664,7 @@ function HeroTestimonialImageGrid({
620
664
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-10 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
621
665
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex-1", children: [
622
666
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
667
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
623
668
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
624
669
  "h1",
625
670
  {
@@ -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';
@@ -123,6 +126,18 @@ interface HeroTestimonialImageGridProps {
123
126
  apiKey: string;
124
127
  compression?: number;
125
128
  };
129
+ /**
130
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
131
+ */
132
+ logo?: LogoConfig;
133
+ /**
134
+ * Custom slot for logo (overrides logo prop)
135
+ */
136
+ logoSlot?: React.ReactNode;
137
+ /**
138
+ * Additional CSS classes for the logo container
139
+ */
140
+ logoClassName?: string;
126
141
  /** Optional Section ID */
127
142
  sectionId?: string;
128
143
  }
@@ -130,6 +145,6 @@ interface HeroTestimonialImageGridProps {
130
145
  * HeroTestimonialImageGrid - A hero layout with heading, description, testimonial,
131
146
  * and a creative 2x2 image grid. Ideal for showcasing product features or portfolio work.
132
147
  */
133
- declare function HeroTestimonialImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, testimonial, testimonialSlot, gridImages, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroTestimonialImageGridProps): React.JSX.Element;
148
+ declare function HeroTestimonialImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, testimonial, testimonialSlot, gridImages, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTestimonialImageGridProps): React.JSX.Element;
134
149
 
135
150
  export { HeroTestimonialImageGrid, type HeroTestimonialImageGridProps };
@@ -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';
@@ -123,6 +126,18 @@ interface HeroTestimonialImageGridProps {
123
126
  apiKey: string;
124
127
  compression?: number;
125
128
  };
129
+ /**
130
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
131
+ */
132
+ logo?: LogoConfig;
133
+ /**
134
+ * Custom slot for logo (overrides logo prop)
135
+ */
136
+ logoSlot?: React.ReactNode;
137
+ /**
138
+ * Additional CSS classes for the logo container
139
+ */
140
+ logoClassName?: string;
126
141
  /** Optional Section ID */
127
142
  sectionId?: string;
128
143
  }
@@ -130,6 +145,6 @@ interface HeroTestimonialImageGridProps {
130
145
  * HeroTestimonialImageGrid - A hero layout with heading, description, testimonial,
131
146
  * and a creative 2x2 image grid. Ideal for showcasing product features or portfolio work.
132
147
  */
133
- declare function HeroTestimonialImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, testimonial, testimonialSlot, gridImages, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroTestimonialImageGridProps): React.JSX.Element;
148
+ declare function HeroTestimonialImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, testimonial, testimonialSlot, gridImages, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTestimonialImageGridProps): React.JSX.Element;
134
149
 
135
150
  export { HeroTestimonialImageGrid, type HeroTestimonialImageGridProps };