@opensite/ui 3.7.2 → 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 (279) hide show
  1. package/dist/hero-ad-campaign-expert.cjs +46 -1
  2. package/dist/hero-ad-campaign-expert.d.cts +16 -1
  3. package/dist/hero-ad-campaign-expert.d.ts +16 -1
  4. package/dist/hero-ad-campaign-expert.js +46 -1
  5. package/dist/hero-adaptable-product-grid.cjs +46 -1
  6. package/dist/hero-adaptable-product-grid.d.cts +16 -1
  7. package/dist/hero-adaptable-product-grid.d.ts +16 -1
  8. package/dist/hero-adaptable-product-grid.js +46 -1
  9. package/dist/hero-agency-animated-images.cjs +46 -1
  10. package/dist/hero-agency-animated-images.d.cts +16 -1
  11. package/dist/hero-agency-animated-images.d.ts +16 -1
  12. package/dist/hero-agency-animated-images.js +46 -1
  13. package/dist/hero-ai-powered-carousel.cjs +46 -1
  14. package/dist/hero-ai-powered-carousel.d.cts +16 -1
  15. package/dist/hero-ai-powered-carousel.d.ts +16 -1
  16. package/dist/hero-ai-powered-carousel.js +46 -1
  17. package/dist/hero-announcement-badge.cjs +47 -1
  18. package/dist/hero-announcement-badge.d.cts +16 -1
  19. package/dist/hero-announcement-badge.d.ts +16 -1
  20. package/dist/hero-announcement-badge.js +47 -1
  21. package/dist/hero-architecture-fullscreen.cjs +46 -1
  22. package/dist/hero-architecture-fullscreen.d.cts +16 -1
  23. package/dist/hero-architecture-fullscreen.d.ts +16 -1
  24. package/dist/hero-architecture-fullscreen.js +46 -1
  25. package/dist/hero-badge-image-split.cjs +46 -1
  26. package/dist/hero-badge-image-split.d.cts +16 -1
  27. package/dist/hero-badge-image-split.d.ts +16 -1
  28. package/dist/hero-badge-image-split.js +46 -1
  29. package/dist/hero-badge-shadow-overlay.cjs +46 -1
  30. package/dist/hero-badge-shadow-overlay.d.cts +16 -1
  31. package/dist/hero-badge-shadow-overlay.d.ts +16 -1
  32. package/dist/hero-badge-shadow-overlay.js +46 -1
  33. package/dist/hero-business-carousel-dots.cjs +46 -1
  34. package/dist/hero-business-carousel-dots.d.cts +16 -1
  35. package/dist/hero-business-carousel-dots.d.ts +16 -1
  36. package/dist/hero-business-carousel-dots.js +46 -1
  37. package/dist/hero-business-operations-mosaic.cjs +46 -1
  38. package/dist/hero-business-operations-mosaic.d.cts +16 -1
  39. package/dist/hero-business-operations-mosaic.d.ts +16 -1
  40. package/dist/hero-business-operations-mosaic.js +46 -1
  41. package/dist/hero-centered-gradient-cta.cjs +47 -1
  42. package/dist/hero-centered-gradient-cta.d.cts +16 -1
  43. package/dist/hero-centered-gradient-cta.d.ts +16 -1
  44. package/dist/hero-centered-gradient-cta.js +47 -1
  45. package/dist/hero-centered-image-grid.cjs +46 -1
  46. package/dist/hero-centered-image-grid.d.cts +16 -1
  47. package/dist/hero-centered-image-grid.d.ts +16 -1
  48. package/dist/hero-centered-image-grid.js +46 -1
  49. package/dist/hero-centered-screenshot.cjs +46 -1
  50. package/dist/hero-centered-screenshot.d.cts +16 -1
  51. package/dist/hero-centered-screenshot.d.ts +16 -1
  52. package/dist/hero-centered-screenshot.js +46 -1
  53. package/dist/hero-coming-soon-countdown.cjs +47 -1
  54. package/dist/hero-coming-soon-countdown.d.cts +16 -1
  55. package/dist/hero-coming-soon-countdown.d.ts +16 -1
  56. package/dist/hero-coming-soon-countdown.js +47 -1
  57. package/dist/hero-community-survey-cta.cjs +46 -1
  58. package/dist/hero-community-survey-cta.d.cts +16 -1
  59. package/dist/hero-community-survey-cta.d.ts +16 -1
  60. package/dist/hero-community-survey-cta.js +46 -1
  61. package/dist/hero-conversation-intelligence.cjs +46 -1
  62. package/dist/hero-conversation-intelligence.d.cts +16 -1
  63. package/dist/hero-conversation-intelligence.d.ts +16 -1
  64. package/dist/hero-conversation-intelligence.js +46 -1
  65. package/dist/hero-creative-studio-stacked.cjs +46 -1
  66. package/dist/hero-creative-studio-stacked.d.cts +17 -2
  67. package/dist/hero-creative-studio-stacked.d.ts +17 -2
  68. package/dist/hero-creative-studio-stacked.js +46 -1
  69. package/dist/hero-crm-streamlined.cjs +46 -1
  70. package/dist/hero-crm-streamlined.d.cts +16 -1
  71. package/dist/hero-crm-streamlined.d.ts +16 -1
  72. package/dist/hero-crm-streamlined.js +46 -1
  73. package/dist/hero-customer-support-layered.cjs +46 -1
  74. package/dist/hero-customer-support-layered.d.cts +16 -1
  75. package/dist/hero-customer-support-layered.d.ts +16 -1
  76. package/dist/hero-customer-support-layered.js +46 -1
  77. package/dist/hero-design-system-3d.cjs +67 -20
  78. package/dist/hero-design-system-3d.d.cts +16 -1
  79. package/dist/hero-design-system-3d.d.ts +16 -1
  80. package/dist/hero-design-system-3d.js +67 -20
  81. package/dist/hero-developer-tools-code.cjs +47 -1
  82. package/dist/hero-developer-tools-code.d.cts +16 -1
  83. package/dist/hero-developer-tools-code.d.ts +16 -1
  84. package/dist/hero-developer-tools-code.js +47 -1
  85. package/dist/hero-digital-agency-fullscreen.cjs +46 -1
  86. package/dist/hero-digital-agency-fullscreen.d.cts +16 -1
  87. package/dist/hero-digital-agency-fullscreen.d.ts +16 -1
  88. package/dist/hero-digital-agency-fullscreen.js +46 -1
  89. package/dist/hero-ecommerce-product-showcase.cjs +46 -1
  90. package/dist/hero-ecommerce-product-showcase.d.cts +16 -1
  91. package/dist/hero-ecommerce-product-showcase.d.ts +16 -1
  92. package/dist/hero-ecommerce-product-showcase.js +46 -1
  93. package/dist/hero-enterprise-security.cjs +47 -1
  94. package/dist/hero-enterprise-security.d.cts +16 -1
  95. package/dist/hero-enterprise-security.d.ts +16 -1
  96. package/dist/hero-enterprise-security.js +47 -1
  97. package/dist/hero-feature-cards-grid.cjs +47 -1
  98. package/dist/hero-feature-cards-grid.d.cts +16 -1
  99. package/dist/hero-feature-cards-grid.d.ts +16 -1
  100. package/dist/hero-feature-cards-grid.js +47 -1
  101. package/dist/hero-fullscreen-background-image.cjs +46 -1
  102. package/dist/hero-fullscreen-background-image.d.cts +16 -1
  103. package/dist/hero-fullscreen-background-image.d.ts +16 -1
  104. package/dist/hero-fullscreen-background-image.js +46 -1
  105. package/dist/hero-gradient-avatars-rating.cjs +46 -1
  106. package/dist/hero-gradient-avatars-rating.d.cts +16 -1
  107. package/dist/hero-gradient-avatars-rating.d.ts +16 -1
  108. package/dist/hero-gradient-avatars-rating.js +46 -1
  109. package/dist/hero-gradient-client-focused.cjs +46 -1
  110. package/dist/hero-gradient-client-focused.d.cts +16 -1
  111. package/dist/hero-gradient-client-focused.d.ts +16 -1
  112. package/dist/hero-gradient-client-focused.js +46 -1
  113. package/dist/hero-grid-pattern-efficiency.cjs +47 -1
  114. package/dist/hero-grid-pattern-efficiency.d.cts +16 -1
  115. package/dist/hero-grid-pattern-efficiency.d.ts +16 -1
  116. package/dist/hero-grid-pattern-efficiency.js +47 -1
  117. package/dist/hero-grid-pattern-solutions.cjs +46 -1
  118. package/dist/hero-grid-pattern-solutions.d.cts +16 -1
  119. package/dist/hero-grid-pattern-solutions.d.ts +16 -1
  120. package/dist/hero-grid-pattern-solutions.js +46 -1
  121. package/dist/hero-hiring-animated-text.cjs +47 -1
  122. package/dist/hero-hiring-animated-text.d.cts +16 -1
  123. package/dist/hero-hiring-animated-text.d.ts +16 -1
  124. package/dist/hero-hiring-animated-text.js +47 -1
  125. package/dist/hero-image-left-content.cjs +46 -1
  126. package/dist/hero-image-left-content.d.cts +16 -1
  127. package/dist/hero-image-left-content.d.ts +16 -1
  128. package/dist/hero-image-left-content.js +46 -1
  129. package/dist/hero-image-slider.cjs +46 -1
  130. package/dist/hero-image-slider.d.cts +16 -1
  131. package/dist/hero-image-slider.d.ts +16 -1
  132. package/dist/hero-image-slider.js +46 -1
  133. package/dist/hero-innovation-image-grid.cjs +46 -1
  134. package/dist/hero-innovation-image-grid.d.cts +16 -1
  135. package/dist/hero-innovation-image-grid.d.ts +16 -1
  136. package/dist/hero-innovation-image-grid.js +46 -1
  137. package/dist/hero-marketplace-scattered-images.cjs +46 -1
  138. package/dist/hero-marketplace-scattered-images.d.cts +16 -1
  139. package/dist/hero-marketplace-scattered-images.d.ts +16 -1
  140. package/dist/hero-marketplace-scattered-images.js +46 -1
  141. package/dist/hero-minimal-centered-dark.cjs +47 -1
  142. package/dist/hero-minimal-centered-dark.d.cts +16 -1
  143. package/dist/hero-minimal-centered-dark.d.ts +16 -1
  144. package/dist/hero-minimal-centered-dark.js +47 -1
  145. package/dist/hero-mobile-app-download.cjs +46 -1
  146. package/dist/hero-mobile-app-download.d.cts +16 -1
  147. package/dist/hero-mobile-app-download.d.ts +16 -1
  148. package/dist/hero-mobile-app-download.js +46 -1
  149. package/dist/hero-newsletter-minimal.cjs +48 -1
  150. package/dist/hero-newsletter-minimal.d.cts +16 -1
  151. package/dist/hero-newsletter-minimal.d.ts +16 -1
  152. package/dist/hero-newsletter-minimal.js +48 -1
  153. package/dist/hero-overlay-cta-grid.cjs +46 -1
  154. package/dist/hero-overlay-cta-grid.d.cts +16 -1
  155. package/dist/hero-overlay-cta-grid.d.ts +16 -1
  156. package/dist/hero-overlay-cta-grid.js +46 -1
  157. package/dist/hero-portfolio-creative.cjs +46 -1
  158. package/dist/hero-portfolio-creative.d.cts +16 -1
  159. package/dist/hero-portfolio-creative.d.ts +16 -1
  160. package/dist/hero-portfolio-creative.js +46 -1
  161. package/dist/hero-premium-split-avatars.cjs +46 -1
  162. package/dist/hero-premium-split-avatars.d.cts +16 -1
  163. package/dist/hero-premium-split-avatars.d.ts +16 -1
  164. package/dist/hero-premium-split-avatars.js +46 -1
  165. package/dist/hero-presentation-platform-video.cjs +47 -1
  166. package/dist/hero-presentation-platform-video.d.cts +16 -1
  167. package/dist/hero-presentation-platform-video.d.ts +16 -1
  168. package/dist/hero-presentation-platform-video.js +47 -1
  169. package/dist/hero-pricing-comparison.cjs +47 -1
  170. package/dist/hero-pricing-comparison.d.cts +16 -1
  171. package/dist/hero-pricing-comparison.d.ts +16 -1
  172. package/dist/hero-pricing-comparison.js +47 -1
  173. package/dist/hero-product-showcase-floating.cjs +46 -1
  174. package/dist/hero-product-showcase-floating.d.cts +16 -1
  175. package/dist/hero-product-showcase-floating.d.ts +16 -1
  176. package/dist/hero-product-showcase-floating.js +46 -1
  177. package/dist/hero-productivity-launcher-video.cjs +68 -20
  178. package/dist/hero-productivity-launcher-video.d.cts +16 -1
  179. package/dist/hero-productivity-launcher-video.d.ts +16 -1
  180. package/dist/hero-productivity-launcher-video.js +68 -20
  181. package/dist/hero-saas-dashboard-preview.cjs +46 -1
  182. package/dist/hero-saas-dashboard-preview.d.cts +16 -1
  183. package/dist/hero-saas-dashboard-preview.d.ts +16 -1
  184. package/dist/hero-saas-dashboard-preview.js +46 -1
  185. package/dist/hero-shared-inbox-layered.cjs +46 -1
  186. package/dist/hero-shared-inbox-layered.d.cts +16 -1
  187. package/dist/hero-shared-inbox-layered.d.ts +16 -1
  188. package/dist/hero-shared-inbox-layered.js +46 -1
  189. package/dist/hero-simple-centered-image.cjs +46 -1
  190. package/dist/hero-simple-centered-image.d.cts +16 -1
  191. package/dist/hero-simple-centered-image.d.ts +16 -1
  192. package/dist/hero-simple-centered-image.js +46 -1
  193. package/dist/hero-software-growth-video-dialog.cjs +46 -1
  194. package/dist/hero-software-growth-video-dialog.d.cts +16 -1
  195. package/dist/hero-software-growth-video-dialog.d.ts +16 -1
  196. package/dist/hero-software-growth-video-dialog.js +46 -1
  197. package/dist/hero-spiral-pattern-cards.cjs +46 -1
  198. package/dist/hero-spiral-pattern-cards.d.cts +16 -1
  199. package/dist/hero-spiral-pattern-cards.d.ts +16 -1
  200. package/dist/hero-spiral-pattern-cards.js +46 -1
  201. package/dist/hero-split-geometric-shapes.cjs +46 -1
  202. package/dist/hero-split-geometric-shapes.d.cts +16 -1
  203. package/dist/hero-split-geometric-shapes.d.ts +16 -1
  204. package/dist/hero-split-geometric-shapes.js +46 -1
  205. package/dist/hero-split-icon-cards.cjs +47 -1
  206. package/dist/hero-split-icon-cards.d.cts +16 -1
  207. package/dist/hero-split-icon-cards.d.ts +16 -1
  208. package/dist/hero-split-icon-cards.js +47 -1
  209. package/dist/hero-split-image-newsletter.cjs +46 -1
  210. package/dist/hero-split-image-newsletter.d.cts +16 -1
  211. package/dist/hero-split-image-newsletter.d.ts +16 -1
  212. package/dist/hero-split-image-newsletter.js +47 -2
  213. package/dist/hero-split-spiral-shapes.cjs +46 -1
  214. package/dist/hero-split-spiral-shapes.d.cts +16 -1
  215. package/dist/hero-split-spiral-shapes.d.ts +16 -1
  216. package/dist/hero-split-spiral-shapes.js +46 -1
  217. package/dist/hero-startup-launch-cta.cjs +46 -1
  218. package/dist/hero-startup-launch-cta.d.cts +16 -1
  219. package/dist/hero-startup-launch-cta.d.ts +16 -1
  220. package/dist/hero-startup-launch-cta.js +46 -1
  221. package/dist/hero-stats-social-proof.cjs +46 -1
  222. package/dist/hero-stats-social-proof.d.cts +16 -1
  223. package/dist/hero-stats-social-proof.d.ts +16 -1
  224. package/dist/hero-stats-social-proof.js +46 -1
  225. package/dist/hero-task-timer-animated.cjs +46 -1
  226. package/dist/hero-task-timer-animated.d.cts +16 -1
  227. package/dist/hero-task-timer-animated.d.ts +16 -1
  228. package/dist/hero-task-timer-animated.js +46 -1
  229. package/dist/hero-testimonial-image-grid.cjs +46 -1
  230. package/dist/hero-testimonial-image-grid.d.cts +16 -1
  231. package/dist/hero-testimonial-image-grid.d.ts +16 -1
  232. package/dist/hero-testimonial-image-grid.js +46 -1
  233. package/dist/hero-therapy-testimonial-grid.cjs +46 -1
  234. package/dist/hero-therapy-testimonial-grid.d.cts +16 -1
  235. package/dist/hero-therapy-testimonial-grid.d.ts +16 -1
  236. package/dist/hero-therapy-testimonial-grid.js +46 -1
  237. package/dist/hero-ui-library-showcase.cjs +3 -2
  238. package/dist/hero-ui-library-showcase.d.cts +13 -5
  239. package/dist/hero-ui-library-showcase.d.ts +13 -5
  240. package/dist/hero-ui-library-showcase.js +3 -2
  241. package/dist/hero-video-background-dark.cjs +47 -1
  242. package/dist/hero-video-background-dark.d.cts +16 -1
  243. package/dist/hero-video-background-dark.d.ts +16 -1
  244. package/dist/hero-video-background-dark.js +47 -1
  245. package/dist/{hero-video-dialog-gradient-Cr96k01H.d.ts → hero-video-dialog-gradient-B6-kFIvZ.d.ts} +14 -1
  246. package/dist/{hero-video-dialog-gradient-Dc0wRYdW.d.cts → hero-video-dialog-gradient-DPnh6Vn-.d.cts} +14 -1
  247. package/dist/hero-video-dialog-gradient.cjs +46 -1
  248. package/dist/hero-video-dialog-gradient.d.cts +4 -1
  249. package/dist/hero-video-dialog-gradient.d.ts +4 -1
  250. package/dist/hero-video-dialog-gradient.js +46 -1
  251. package/dist/hero-welcome-asymmetric-images.cjs +46 -1
  252. package/dist/hero-welcome-asymmetric-images.d.cts +16 -1
  253. package/dist/hero-welcome-asymmetric-images.d.ts +16 -1
  254. package/dist/hero-welcome-asymmetric-images.js +46 -1
  255. package/dist/link-page-bento-layout.cjs +59 -3
  256. package/dist/link-page-bento-layout.d.cts +16 -1
  257. package/dist/link-page-bento-layout.d.ts +16 -1
  258. package/dist/link-page-bento-layout.js +59 -3
  259. package/dist/link-page-grid-cards.cjs +59 -3
  260. package/dist/link-page-grid-cards.d.cts +16 -1
  261. package/dist/link-page-grid-cards.d.ts +16 -1
  262. package/dist/link-page-grid-cards.js +59 -3
  263. package/dist/link-page-minimal-profile.cjs +59 -3
  264. package/dist/link-page-minimal-profile.d.cts +16 -1
  265. package/dist/link-page-minimal-profile.d.ts +16 -1
  266. package/dist/link-page-minimal-profile.js +59 -3
  267. package/dist/link-page-newsletter-social.cjs +59 -3
  268. package/dist/link-page-newsletter-social.d.cts +16 -1
  269. package/dist/link-page-newsletter-social.d.ts +16 -1
  270. package/dist/link-page-newsletter-social.js +59 -3
  271. package/dist/link-tree-block.cjs +58 -2
  272. package/dist/link-tree-block.d.cts +16 -1
  273. package/dist/link-tree-block.d.ts +16 -1
  274. package/dist/link-tree-block.js +58 -2
  275. package/dist/registry.cjs +704 -182
  276. package/dist/registry.js +704 -182
  277. package/dist/social-link-icon.d.cts +1 -1
  278. package/dist/social-link-icon.d.ts +1 -1
  279. package/package.json +1 -1
@@ -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 HeroInnovationImageGrid({
474
515
  sectionId = "hero-innovation-image-grid",
475
516
  heading,
@@ -489,7 +530,10 @@ function HeroInnovationImageGrid({
489
530
  headingClassName,
490
531
  descriptionClassName,
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;
@@ -559,6 +603,7 @@ function HeroInnovationImageGrid({
559
603
  className: cn("flex flex-col gap-2 md:gap-12", contentClassName),
560
604
  children: [
561
605
  /* @__PURE__ */ jsxs("div", { children: [
606
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
562
607
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
563
608
  "h1",
564
609
  {
@@ -423,6 +423,47 @@ var Section = React__namespace.default.forwardRef(
423
423
  }
424
424
  );
425
425
  Section.displayName = "Section";
426
+ var SIZE_CLASSES = {
427
+ sm: "max-h-6 sm:max-h-7",
428
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
429
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
430
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
431
+ };
432
+ var BrandLogo = ({
433
+ logo,
434
+ logoSlot,
435
+ logoClassName,
436
+ size = "md",
437
+ optixFlowConfig
438
+ }) => {
439
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
440
+ if (!logo || !logo.src) return null;
441
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
442
+ img.Img,
443
+ {
444
+ src: logo.src,
445
+ className: cn(
446
+ "w-auto object-contain",
447
+ SIZE_CLASSES[size],
448
+ logo.className
449
+ ),
450
+ alt: logo.alt || "Logo",
451
+ optixFlowConfig,
452
+ loading: "eager"
453
+ }
454
+ );
455
+ if (logo.url) {
456
+ return /* @__PURE__ */ jsxRuntime.jsx(
457
+ pressable.Pressable,
458
+ {
459
+ href: logo.url,
460
+ className: cn("flex items-center", logoClassName),
461
+ children: imgElement
462
+ }
463
+ );
464
+ }
465
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
466
+ };
426
467
  function HeroMarketplaceScatteredImages({
427
468
  sectionId = "hero-marketplace-scattered-images",
428
469
  heading,
@@ -444,7 +485,10 @@ function HeroMarketplaceScatteredImages({
444
485
  headingClassName,
445
486
  descriptionClassName,
446
487
  imagesClassName,
447
- optixFlowConfig
488
+ optixFlowConfig,
489
+ logo,
490
+ logoSlot,
491
+ logoClassName
448
492
  }) {
449
493
  const renderAction = React.useMemo(() => {
450
494
  if (actionSlot) return actionSlot;
@@ -574,6 +618,7 @@ function HeroMarketplaceScatteredImages({
574
618
  contentClassName
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';
@@ -87,9 +90,21 @@ interface HeroMarketplaceScatteredImagesProps {
87
90
  * OptixFlow image optimization configuration
88
91
  */
89
92
  optixFlowConfig?: OptixFlowConfig;
93
+ /**
94
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
95
+ */
96
+ logo?: LogoConfig;
97
+ /**
98
+ * Custom slot for logo (overrides logo prop)
99
+ */
100
+ logoSlot?: React.ReactNode;
101
+ /**
102
+ * Additional CSS classes for the logo container
103
+ */
104
+ logoClassName?: string;
90
105
  /** Optional Section ID */
91
106
  sectionId?: string;
92
107
  }
93
- declare function HeroMarketplaceScatteredImages({ sectionId, heading, description, action, actionSlot, tagline, taglineIcon, taglineSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroMarketplaceScatteredImagesProps): React.JSX.Element;
108
+ declare function HeroMarketplaceScatteredImages({ sectionId, heading, description, action, actionSlot, tagline, taglineIcon, taglineSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMarketplaceScatteredImagesProps): React.JSX.Element;
94
109
 
95
110
  export { HeroMarketplaceScatteredImages, type HeroMarketplaceScatteredImagesProps };
@@ -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';
@@ -87,9 +90,21 @@ interface HeroMarketplaceScatteredImagesProps {
87
90
  * OptixFlow image optimization configuration
88
91
  */
89
92
  optixFlowConfig?: OptixFlowConfig;
93
+ /**
94
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
95
+ */
96
+ logo?: LogoConfig;
97
+ /**
98
+ * Custom slot for logo (overrides logo prop)
99
+ */
100
+ logoSlot?: React.ReactNode;
101
+ /**
102
+ * Additional CSS classes for the logo container
103
+ */
104
+ logoClassName?: string;
90
105
  /** Optional Section ID */
91
106
  sectionId?: string;
92
107
  }
93
- declare function HeroMarketplaceScatteredImages({ sectionId, heading, description, action, actionSlot, tagline, taglineIcon, taglineSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroMarketplaceScatteredImagesProps): React.JSX.Element;
108
+ declare function HeroMarketplaceScatteredImages({ sectionId, heading, description, action, actionSlot, tagline, taglineIcon, taglineSlot, images, imagesSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMarketplaceScatteredImagesProps): React.JSX.Element;
94
109
 
95
110
  export { HeroMarketplaceScatteredImages, type HeroMarketplaceScatteredImagesProps };
@@ -402,6 +402,47 @@ var Section = React__default.forwardRef(
402
402
  }
403
403
  );
404
404
  Section.displayName = "Section";
405
+ var SIZE_CLASSES = {
406
+ sm: "max-h-6 sm:max-h-7",
407
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
408
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
409
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
410
+ };
411
+ var BrandLogo = ({
412
+ logo,
413
+ logoSlot,
414
+ logoClassName,
415
+ size = "md",
416
+ optixFlowConfig
417
+ }) => {
418
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
419
+ if (!logo || !logo.src) return null;
420
+ const imgElement = /* @__PURE__ */ jsx(
421
+ Img,
422
+ {
423
+ src: logo.src,
424
+ className: cn(
425
+ "w-auto object-contain",
426
+ SIZE_CLASSES[size],
427
+ logo.className
428
+ ),
429
+ alt: logo.alt || "Logo",
430
+ optixFlowConfig,
431
+ loading: "eager"
432
+ }
433
+ );
434
+ if (logo.url) {
435
+ return /* @__PURE__ */ jsx(
436
+ Pressable,
437
+ {
438
+ href: logo.url,
439
+ className: cn("flex items-center", logoClassName),
440
+ children: imgElement
441
+ }
442
+ );
443
+ }
444
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
445
+ };
405
446
  function HeroMarketplaceScatteredImages({
406
447
  sectionId = "hero-marketplace-scattered-images",
407
448
  heading,
@@ -423,7 +464,10 @@ function HeroMarketplaceScatteredImages({
423
464
  headingClassName,
424
465
  descriptionClassName,
425
466
  imagesClassName,
426
- optixFlowConfig
467
+ optixFlowConfig,
468
+ logo,
469
+ logoSlot,
470
+ logoClassName
427
471
  }) {
428
472
  const renderAction = useMemo(() => {
429
473
  if (actionSlot) return actionSlot;
@@ -553,6 +597,7 @@ function HeroMarketplaceScatteredImages({
553
597
  contentClassName
554
598
  ),
555
599
  children: [
600
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
556
601
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
557
602
  "h1",
558
603
  {
@@ -8,6 +8,7 @@ var jsxRuntime = require('react/jsx-runtime');
8
8
  var pressable = require('@page-speed/pressable');
9
9
  var reactSlot = require('@radix-ui/react-slot');
10
10
  var classVarianceAuthority = require('class-variance-authority');
11
+ var img = require('@page-speed/img');
11
12
 
12
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
14
 
@@ -503,6 +504,47 @@ function ActionComponent({ action }) {
503
504
  }
504
505
  );
505
506
  }
507
+ var SIZE_CLASSES = {
508
+ sm: "max-h-6 sm:max-h-7",
509
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
510
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
511
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
512
+ };
513
+ var BrandLogo = ({
514
+ logo,
515
+ logoSlot,
516
+ logoClassName,
517
+ size = "md",
518
+ optixFlowConfig
519
+ }) => {
520
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
521
+ if (!logo || !logo.src) return null;
522
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
523
+ img.Img,
524
+ {
525
+ src: logo.src,
526
+ className: cn(
527
+ "w-auto object-contain",
528
+ SIZE_CLASSES[size],
529
+ logo.className
530
+ ),
531
+ alt: logo.alt || "Logo",
532
+ optixFlowConfig,
533
+ loading: "eager"
534
+ }
535
+ );
536
+ if (logo.url) {
537
+ return /* @__PURE__ */ jsxRuntime.jsx(
538
+ pressable.Pressable,
539
+ {
540
+ href: logo.url,
541
+ className: cn("flex items-center", logoClassName),
542
+ children: imgElement
543
+ }
544
+ );
545
+ }
546
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
547
+ };
506
548
  function HeroMinimalCenteredDark({
507
549
  sectionId = "hero-minimal-centered-dark",
508
550
  badge,
@@ -523,7 +565,10 @@ function HeroMinimalCenteredDark({
523
565
  headingClassName,
524
566
  descriptionClassName,
525
567
  actionsClassName,
526
- statsClassName
568
+ statsClassName,
569
+ logo,
570
+ logoSlot,
571
+ logoClassName
527
572
  }) {
528
573
  const renderStats = React.useMemo(() => {
529
574
  if (statsSlot) return statsSlot;
@@ -552,6 +597,7 @@ function HeroMinimalCenteredDark({
552
597
  containerClassName,
553
598
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
554
599
  badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { className: cn("px-4 py-1", badgeClassName), children: typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge }),
600
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
555
601
  (heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
556
602
  "h1",
557
603
  {
@@ -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 } 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';
@@ -86,9 +89,21 @@ interface HeroMinimalCenteredDarkProps {
86
89
  * Additional CSS classes for the stats container
87
90
  */
88
91
  statsClassName?: string;
92
+ /**
93
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
94
+ */
95
+ logo?: LogoConfig;
96
+ /**
97
+ * Custom slot for logo (overrides logo prop)
98
+ */
99
+ logoSlot?: React.ReactNode;
100
+ /**
101
+ * Additional CSS classes for the logo container
102
+ */
103
+ logoClassName?: string;
89
104
  /** Optional Section ID */
90
105
  sectionId?: string;
91
106
  }
92
- declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
107
+ declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
93
108
 
94
109
  export { HeroMinimalCenteredDark, type HeroMinimalCenteredDarkProps };
@@ -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 } 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';
@@ -86,9 +89,21 @@ interface HeroMinimalCenteredDarkProps {
86
89
  * Additional CSS classes for the stats container
87
90
  */
88
91
  statsClassName?: string;
92
+ /**
93
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
94
+ */
95
+ logo?: LogoConfig;
96
+ /**
97
+ * Custom slot for logo (overrides logo prop)
98
+ */
99
+ logoSlot?: React.ReactNode;
100
+ /**
101
+ * Additional CSS classes for the logo container
102
+ */
103
+ logoClassName?: string;
89
104
  /** Optional Section ID */
90
105
  sectionId?: string;
91
106
  }
92
- declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
107
+ declare function HeroMinimalCenteredDark({ sectionId, badge, heading, headingHighlight, description, actions, actionsSlot, stats, statsSlot, background, containerClassName, spacing, pattern, patternOpacity, className, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, logo, logoSlot, logoClassName, }: HeroMinimalCenteredDarkProps): React.JSX.Element;
93
108
 
94
109
  export { HeroMinimalCenteredDark, type HeroMinimalCenteredDarkProps };
@@ -6,6 +6,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
  import { Pressable, buttonVariants } from '@page-speed/pressable';
7
7
  import { Slot } from '@radix-ui/react-slot';
8
8
  import { cva } from 'class-variance-authority';
9
+ import { Img } from '@page-speed/img';
9
10
 
10
11
  // components/blocks/hero/hero-minimal-centered-dark.tsx
11
12
  function cn(...inputs) {
@@ -497,6 +498,47 @@ function ActionComponent({ action }) {
497
498
  }
498
499
  );
499
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
+ };
500
542
  function HeroMinimalCenteredDark({
501
543
  sectionId = "hero-minimal-centered-dark",
502
544
  badge,
@@ -517,7 +559,10 @@ function HeroMinimalCenteredDark({
517
559
  headingClassName,
518
560
  descriptionClassName,
519
561
  actionsClassName,
520
- statsClassName
562
+ statsClassName,
563
+ logo,
564
+ logoSlot,
565
+ logoClassName
521
566
  }) {
522
567
  const renderStats = useMemo(() => {
523
568
  if (statsSlot) return statsSlot;
@@ -546,6 +591,7 @@ function HeroMinimalCenteredDark({
546
591
  containerClassName,
547
592
  children: /* @__PURE__ */ jsxs("div", { className: "relative", children: [
548
593
  badge && /* @__PURE__ */ jsx(Badge, { className: cn("px-4 py-1", badgeClassName), children: typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge }),
594
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
549
595
  (heading || headingHighlight) && (typeof heading === "string" ? /* @__PURE__ */ jsx(
550
596
  "h1",
551
597
  {
@@ -456,6 +456,47 @@ function Badge({
456
456
  }
457
457
  );
458
458
  }
459
+ var SIZE_CLASSES = {
460
+ sm: "max-h-6 sm:max-h-7",
461
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
462
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
463
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
464
+ };
465
+ var BrandLogo = ({
466
+ logo,
467
+ logoSlot,
468
+ logoClassName,
469
+ size = "md",
470
+ optixFlowConfig
471
+ }) => {
472
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
473
+ if (!logo || !logo.src) return null;
474
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
475
+ img.Img,
476
+ {
477
+ src: logo.src,
478
+ className: cn(
479
+ "w-auto object-contain",
480
+ SIZE_CLASSES[size],
481
+ logo.className
482
+ ),
483
+ alt: logo.alt || "Logo",
484
+ optixFlowConfig,
485
+ loading: "eager"
486
+ }
487
+ );
488
+ if (logo.url) {
489
+ return /* @__PURE__ */ jsxRuntime.jsx(
490
+ pressable.Pressable,
491
+ {
492
+ href: logo.url,
493
+ className: cn("flex items-center", logoClassName),
494
+ children: imgElement
495
+ }
496
+ );
497
+ }
498
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
499
+ };
459
500
  function HeroMobileAppDownload({
460
501
  sectionId = "hero-mobile-app-download",
461
502
  badgeText,
@@ -483,7 +524,10 @@ function HeroMobileAppDownload({
483
524
  description,
484
525
  descriptionClassName,
485
526
  imageClassName,
486
- optixFlowConfig
527
+ optixFlowConfig,
528
+ logo,
529
+ logoSlot,
530
+ logoClassName
487
531
  }) {
488
532
  const renderBadge = React.useMemo(() => {
489
533
  if (badgeSlot) return badgeSlot;
@@ -617,6 +661,7 @@ function HeroMobileAppDownload({
617
661
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "pt-8 md:pt-0", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid items-center gap-12 grid-cols-1 md:grid-cols-2 md:gap-20", children: [
618
662
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
619
663
  renderBadge,
664
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
620
665
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
621
666
  "h1",
622
667
  {
@@ -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';
@@ -146,9 +149,21 @@ interface HeroMobileAppDownloadProps {
146
149
  * OptixFlow image optimization configuration
147
150
  */
148
151
  optixFlowConfig?: OptixFlowConfig;
152
+ /**
153
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
154
+ */
155
+ logo?: LogoConfig;
156
+ /**
157
+ * Custom slot for logo (overrides logo prop)
158
+ */
159
+ logoSlot?: React.ReactNode;
160
+ /**
161
+ * Additional CSS classes for the logo container
162
+ */
163
+ logoClassName?: string;
149
164
  /** Optional Section ID */
150
165
  sectionId?: string;
151
166
  }
152
- declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, }: HeroMobileAppDownloadProps): React.JSX.Element;
167
+ declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMobileAppDownloadProps): React.JSX.Element;
153
168
 
154
169
  export { HeroMobileAppDownload, type HeroMobileAppDownloadProps };
@@ -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';
@@ -146,9 +149,21 @@ interface HeroMobileAppDownloadProps {
146
149
  * OptixFlow image optimization configuration
147
150
  */
148
151
  optixFlowConfig?: OptixFlowConfig;
152
+ /**
153
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
154
+ */
155
+ logo?: LogoConfig;
156
+ /**
157
+ * Custom slot for logo (overrides logo prop)
158
+ */
159
+ logoSlot?: React.ReactNode;
160
+ /**
161
+ * Additional CSS classes for the logo container
162
+ */
163
+ logoClassName?: string;
149
164
  /** Optional Section ID */
150
165
  sectionId?: string;
151
166
  }
152
- declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, }: HeroMobileAppDownloadProps): React.JSX.Element;
167
+ declare function HeroMobileAppDownload({ sectionId, badgeText, badgeIcon, badgeSlot, heading, storeActions, storeActionsSlot, ratingValue, ratingLabel, starCount, ratingSlot, image, imageSlot, notification, notificationSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, description, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroMobileAppDownloadProps): React.JSX.Element;
153
168
 
154
169
  export { HeroMobileAppDownload, type HeroMobileAppDownloadProps };