@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
@@ -427,6 +427,47 @@ var Section = React__default.forwardRef(
427
427
  }
428
428
  );
429
429
  Section.displayName = "Section";
430
+ var SIZE_CLASSES = {
431
+ sm: "max-h-6 sm:max-h-7",
432
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
433
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
434
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
435
+ };
436
+ var BrandLogo = ({
437
+ logo,
438
+ logoSlot,
439
+ logoClassName,
440
+ size = "md",
441
+ optixFlowConfig
442
+ }) => {
443
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
444
+ if (!logo || !logo.src) return null;
445
+ const imgElement = /* @__PURE__ */ jsx(
446
+ Img,
447
+ {
448
+ src: logo.src,
449
+ className: cn(
450
+ "w-auto object-contain",
451
+ SIZE_CLASSES[size],
452
+ logo.className
453
+ ),
454
+ alt: logo.alt || "Logo",
455
+ optixFlowConfig,
456
+ loading: "eager"
457
+ }
458
+ );
459
+ if (logo.url) {
460
+ return /* @__PURE__ */ jsx(
461
+ Pressable,
462
+ {
463
+ href: logo.url,
464
+ className: cn("flex items-center", logoClassName),
465
+ children: imgElement
466
+ }
467
+ );
468
+ }
469
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
470
+ };
430
471
  function HeroPortfolioCreative({
431
472
  sectionId = "hero-portfolio-creative",
432
473
  profile,
@@ -449,7 +490,10 @@ function HeroPortfolioCreative({
449
490
  headingClassName,
450
491
  descriptionClassName,
451
492
  portfolioClassName,
452
- optixFlowConfig
493
+ optixFlowConfig,
494
+ logo,
495
+ logoSlot,
496
+ logoClassName
453
497
  }) {
454
498
  const renderProfile = useMemo(() => {
455
499
  if (profileSlot) return profileSlot;
@@ -593,6 +637,7 @@ function HeroPortfolioCreative({
593
637
  children: /* @__PURE__ */ jsx("div", { className: cn("container", containerClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid items-center gap-12 lg:grid-cols-2 lg:gap-20", children: [
594
638
  /* @__PURE__ */ jsxs("div", { className: cn("flex flex-col gap-8", contentClassName), children: [
595
639
  renderProfile,
640
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
596
641
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
597
642
  "h1",
598
643
  {
@@ -627,6 +627,47 @@ function MediaAspectRatio({
627
627
  )
628
628
  ] });
629
629
  }
630
+ var SIZE_CLASSES = {
631
+ sm: "max-h-6 sm:max-h-7",
632
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
633
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
634
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
635
+ };
636
+ var BrandLogo = ({
637
+ logo,
638
+ logoSlot,
639
+ logoClassName,
640
+ size = "md",
641
+ optixFlowConfig
642
+ }) => {
643
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
644
+ if (!logo || !logo.src) return null;
645
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
646
+ img.Img,
647
+ {
648
+ src: logo.src,
649
+ className: cn(
650
+ "w-auto object-contain",
651
+ SIZE_CLASSES[size],
652
+ logo.className
653
+ ),
654
+ alt: logo.alt || "Logo",
655
+ optixFlowConfig,
656
+ loading: "eager"
657
+ }
658
+ );
659
+ if (logo.url) {
660
+ return /* @__PURE__ */ jsxRuntime.jsx(
661
+ pressable.Pressable,
662
+ {
663
+ href: logo.url,
664
+ className: cn("flex items-center", logoClassName),
665
+ children: imgElement
666
+ }
667
+ );
668
+ }
669
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
670
+ };
630
671
  function HeroPremiumSplitAvatars({
631
672
  sectionId = "hero-premium-split-avatars",
632
673
  brandName,
@@ -653,7 +694,10 @@ function HeroPremiumSplitAvatars({
653
694
  imageClassName,
654
695
  optixFlowConfig,
655
696
  mediaAspectRatios = { desktop: "vertical", mobile: "vertical" },
656
- directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" }
697
+ directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" },
698
+ logo,
699
+ logoSlot,
700
+ logoClassName
657
701
  }) {
658
702
  const responsiveClassName = React.useMemo(() => {
659
703
  const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
@@ -760,6 +804,7 @@ function HeroPremiumSplitAvatars({
760
804
  children: [
761
805
  renderBrand,
762
806
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 md:gap-8", children: [
807
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
763
808
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading })),
764
809
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-2.5 lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
765
810
  renderAction
@@ -1,11 +1,14 @@
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
3
  import { ResponsiveMediaAspectRatioProps } from './media-aspect-ratio.cjs';
4
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
4
5
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig, h as DirectionConfig } from './blocks-DyouPohq.cjs';
5
6
  import 'react/jsx-runtime';
6
7
  import 'class-variance-authority';
7
8
  import '@page-speed/pressable';
8
9
  import '@opensite/hooks/usePlatformFromUrl';
10
+ import './dynamic-icon.cjs';
11
+ import '@page-speed/icon';
9
12
 
10
13
  interface AvatarItem {
11
14
  /**
@@ -110,6 +113,18 @@ interface HeroPremiumSplitAvatarsProps {
110
113
  * OptixFlow image optimization configuration
111
114
  */
112
115
  optixFlowConfig?: OptixFlowConfig;
116
+ /**
117
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
118
+ */
119
+ logo?: LogoConfig;
120
+ /**
121
+ * Custom slot for logo (overrides logo prop)
122
+ */
123
+ logoSlot?: React.ReactNode;
124
+ /**
125
+ * Additional CSS classes for the logo container
126
+ */
127
+ logoClassName?: string;
113
128
  /** Optional Section ID */
114
129
  sectionId?: string;
115
130
  /**
@@ -123,6 +138,6 @@ interface HeroPremiumSplitAvatarsProps {
123
138
  */
124
139
  directionConfig?: DirectionConfig;
125
140
  }
126
- declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
141
+ declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, logo, logoSlot, logoClassName, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
127
142
 
128
143
  export { HeroPremiumSplitAvatars, type HeroPremiumSplitAvatarsProps };
@@ -1,11 +1,14 @@
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
3
  import { ResponsiveMediaAspectRatioProps } from './media-aspect-ratio.js';
4
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
4
5
  import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig, h as DirectionConfig } from './blocks-DyouPohq.js';
5
6
  import 'react/jsx-runtime';
6
7
  import 'class-variance-authority';
7
8
  import '@page-speed/pressable';
8
9
  import '@opensite/hooks/usePlatformFromUrl';
10
+ import './dynamic-icon.js';
11
+ import '@page-speed/icon';
9
12
 
10
13
  interface AvatarItem {
11
14
  /**
@@ -110,6 +113,18 @@ interface HeroPremiumSplitAvatarsProps {
110
113
  * OptixFlow image optimization configuration
111
114
  */
112
115
  optixFlowConfig?: OptixFlowConfig;
116
+ /**
117
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
118
+ */
119
+ logo?: LogoConfig;
120
+ /**
121
+ * Custom slot for logo (overrides logo prop)
122
+ */
123
+ logoSlot?: React.ReactNode;
124
+ /**
125
+ * Additional CSS classes for the logo container
126
+ */
127
+ logoClassName?: string;
113
128
  /** Optional Section ID */
114
129
  sectionId?: string;
115
130
  /**
@@ -123,6 +138,6 @@ interface HeroPremiumSplitAvatarsProps {
123
138
  */
124
139
  directionConfig?: DirectionConfig;
125
140
  }
126
- declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
141
+ declare function HeroPremiumSplitAvatars({ sectionId, brandName, brandSuffix, brandSlot, heading, description, action, actionSlot, avatars, avatarsSlot, socialProofText, image, imageSlot, className, spacing, containerClassName, background, pattern, patternOpacity, contentClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, mediaAspectRatios, directionConfig, logo, logoSlot, logoClassName, }: HeroPremiumSplitAvatarsProps): React.JSX.Element;
127
142
 
128
143
  export { HeroPremiumSplitAvatars, type HeroPremiumSplitAvatarsProps };
@@ -601,6 +601,47 @@ function MediaAspectRatio({
601
601
  )
602
602
  ] });
603
603
  }
604
+ var SIZE_CLASSES = {
605
+ sm: "max-h-6 sm:max-h-7",
606
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
607
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
608
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
609
+ };
610
+ var BrandLogo = ({
611
+ logo,
612
+ logoSlot,
613
+ logoClassName,
614
+ size = "md",
615
+ optixFlowConfig
616
+ }) => {
617
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
618
+ if (!logo || !logo.src) return null;
619
+ const imgElement = /* @__PURE__ */ jsx(
620
+ Img,
621
+ {
622
+ src: logo.src,
623
+ className: cn(
624
+ "w-auto object-contain",
625
+ SIZE_CLASSES[size],
626
+ logo.className
627
+ ),
628
+ alt: logo.alt || "Logo",
629
+ optixFlowConfig,
630
+ loading: "eager"
631
+ }
632
+ );
633
+ if (logo.url) {
634
+ return /* @__PURE__ */ jsx(
635
+ Pressable,
636
+ {
637
+ href: logo.url,
638
+ className: cn("flex items-center", logoClassName),
639
+ children: imgElement
640
+ }
641
+ );
642
+ }
643
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
644
+ };
604
645
  function HeroPremiumSplitAvatars({
605
646
  sectionId = "hero-premium-split-avatars",
606
647
  brandName,
@@ -627,7 +668,10 @@ function HeroPremiumSplitAvatars({
627
668
  imageClassName,
628
669
  optixFlowConfig,
629
670
  mediaAspectRatios = { desktop: "vertical", mobile: "vertical" },
630
- directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" }
671
+ directionConfig = { desktop: "mediaRight", mobile: "mediaBottom" },
672
+ logo,
673
+ logoSlot,
674
+ logoClassName
631
675
  }) {
632
676
  const responsiveClassName = useMemo(() => {
633
677
  const desktopOrder = directionConfig.desktop === "mediaRight" ? "md:flex-row" : "md:flex-row-reverse";
@@ -734,6 +778,7 @@ function HeroPremiumSplitAvatars({
734
778
  children: [
735
779
  renderBrand,
736
780
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 md:gap-8", children: [
781
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
737
782
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("h2", { className: cn("text-4xl lg:text-6xl", headingClassName), children: heading })),
738
783
  description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("mt-2.5 lg:text-xl", descriptionClassName), children: description }) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
739
784
  renderAction
@@ -7,6 +7,7 @@ var clsx = require('clsx');
7
7
  var tailwindMerge = require('tailwind-merge');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var pressable = require('@page-speed/pressable');
10
+ var img = require('@page-speed/img');
10
11
 
11
12
  function _interopNamespace(e) {
12
13
  if (e && e.__esModule) return e;
@@ -518,6 +519,47 @@ function ActionComponent({ action }) {
518
519
  }
519
520
  );
520
521
  }
522
+ var SIZE_CLASSES = {
523
+ sm: "max-h-6 sm:max-h-7",
524
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
525
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
526
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
527
+ };
528
+ var BrandLogo = ({
529
+ logo,
530
+ logoSlot,
531
+ logoClassName,
532
+ size = "md",
533
+ optixFlowConfig
534
+ }) => {
535
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
536
+ if (!logo || !logo.src) return null;
537
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
538
+ img.Img,
539
+ {
540
+ src: logo.src,
541
+ className: cn(
542
+ "w-auto object-contain",
543
+ SIZE_CLASSES[size],
544
+ logo.className
545
+ ),
546
+ alt: logo.alt || "Logo",
547
+ optixFlowConfig,
548
+ loading: "eager"
549
+ }
550
+ );
551
+ if (logo.url) {
552
+ return /* @__PURE__ */ jsxRuntime.jsx(
553
+ pressable.Pressable,
554
+ {
555
+ href: logo.url,
556
+ className: cn("flex items-center", logoClassName),
557
+ children: imgElement
558
+ }
559
+ );
560
+ }
561
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
562
+ };
521
563
  function HeroPresentationPlatformVideo({
522
564
  sectionId = "hero-presentation-platform-video",
523
565
  subtitle,
@@ -538,7 +580,10 @@ function HeroPresentationPlatformVideo({
538
580
  contentClassName,
539
581
  headingClassName,
540
582
  descriptionClassName,
541
- videoClassName
583
+ videoClassName,
584
+ logo,
585
+ logoSlot,
586
+ logoClassName
542
587
  }) {
543
588
  const contentItems = React4.useMemo(() => {
544
589
  const items = [];
@@ -635,6 +680,7 @@ function HeroPresentationPlatformVideo({
635
680
  contentClassName
636
681
  ),
637
682
  children: [
683
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
638
684
  /* @__PURE__ */ jsxRuntime.jsx(ContentGroup, { items: contentItems }),
639
685
  /* @__PURE__ */ jsxRuntime.jsx(
640
686
  BlockActions,
@@ -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, M as MediaItem } 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';
@@ -83,9 +86,21 @@ interface HeroPresentationPlatformVideoProps {
83
86
  * Additional CSS classes for the actions container
84
87
  */
85
88
  actionsClassName?: string;
89
+ /**
90
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
91
+ */
92
+ logo?: LogoConfig;
93
+ /**
94
+ * Custom slot for logo (overrides logo prop)
95
+ */
96
+ logoSlot?: React.ReactNode;
97
+ /**
98
+ * Additional CSS classes for the logo container
99
+ */
100
+ logoClassName?: string;
86
101
  /** Optional Section ID */
87
102
  sectionId?: string;
88
103
  }
89
- declare function HeroPresentationPlatformVideo({ sectionId, subtitle, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, videoClassName, }: HeroPresentationPlatformVideoProps): React.JSX.Element;
104
+ declare function HeroPresentationPlatformVideo({ sectionId, subtitle, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, videoClassName, logo, logoSlot, logoClassName, }: HeroPresentationPlatformVideoProps): React.JSX.Element;
90
105
 
91
106
  export { HeroPresentationPlatformVideo, type HeroPresentationPlatformVideoProps };
@@ -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, M as MediaItem } 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';
@@ -83,9 +86,21 @@ interface HeroPresentationPlatformVideoProps {
83
86
  * Additional CSS classes for the actions container
84
87
  */
85
88
  actionsClassName?: string;
89
+ /**
90
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
91
+ */
92
+ logo?: LogoConfig;
93
+ /**
94
+ * Custom slot for logo (overrides logo prop)
95
+ */
96
+ logoSlot?: React.ReactNode;
97
+ /**
98
+ * Additional CSS classes for the logo container
99
+ */
100
+ logoClassName?: string;
86
101
  /** Optional Section ID */
87
102
  sectionId?: string;
88
103
  }
89
- declare function HeroPresentationPlatformVideo({ sectionId, subtitle, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, videoClassName, }: HeroPresentationPlatformVideoProps): React.JSX.Element;
104
+ declare function HeroPresentationPlatformVideo({ sectionId, subtitle, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, videoClassName, logo, logoSlot, logoClassName, }: HeroPresentationPlatformVideoProps): React.JSX.Element;
90
105
 
91
106
  export { HeroPresentationPlatformVideo, type HeroPresentationPlatformVideoProps };
@@ -6,6 +6,7 @@ import { clsx } from 'clsx';
6
6
  import { twMerge } from 'tailwind-merge';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
  import { Pressable, buttonVariants } from '@page-speed/pressable';
9
+ import { Img } from '@page-speed/img';
9
10
 
10
11
  // components/blocks/hero/hero-presentation-platform-video.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 HeroPresentationPlatformVideo({
501
543
  sectionId = "hero-presentation-platform-video",
502
544
  subtitle,
@@ -517,7 +559,10 @@ function HeroPresentationPlatformVideo({
517
559
  contentClassName,
518
560
  headingClassName,
519
561
  descriptionClassName,
520
- videoClassName
562
+ videoClassName,
563
+ logo,
564
+ logoSlot,
565
+ logoClassName
521
566
  }) {
522
567
  const contentItems = useMemo(() => {
523
568
  const items = [];
@@ -614,6 +659,7 @@ function HeroPresentationPlatformVideo({
614
659
  contentClassName
615
660
  ),
616
661
  children: [
662
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
617
663
  /* @__PURE__ */ jsx(ContentGroup, { items: contentItems }),
618
664
  /* @__PURE__ */ jsx(
619
665
  BlockActions,
@@ -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 @@ var Section = React__namespace.default.forwardRef(
533
534
  }
534
535
  );
535
536
  Section.displayName = "Section";
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 HeroPricingComparison({
537
579
  sectionId = "hero-pricing-comparison",
538
580
  badgeText,
@@ -550,7 +592,10 @@ function HeroPricingComparison({
550
592
  headerClassName,
551
593
  headingClassName,
552
594
  descriptionClassName,
553
- plansClassName
595
+ plansClassName,
596
+ logo,
597
+ logoSlot,
598
+ logoClassName
554
599
  }) {
555
600
  const renderBadge = React.useMemo(() => {
556
601
  if (badgeSlot) return badgeSlot;
@@ -608,6 +653,7 @@ function HeroPricingComparison({
608
653
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("container", containerClassName), children: [
609
654
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto max-w-4xl text-center", headerClassName), children: [
610
655
  renderBadge,
656
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
611
657
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("h1", { className: cn("text-4xl font-bold tracking-tight md:text-5xl lg:text-6xl", headingClassName), children: heading })),
612
658
  description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("mt-6 text-lg md:text-xl", getTextColor(background, "muted"), descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
613
659
  ] }),
@@ -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';
@@ -104,9 +107,21 @@ interface HeroPricingComparisonProps {
104
107
  * Additional CSS classes for the plans grid
105
108
  */
106
109
  plansClassName?: string;
110
+ /**
111
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
112
+ */
113
+ logo?: LogoConfig;
114
+ /**
115
+ * Custom slot for logo (overrides logo prop)
116
+ */
117
+ logoSlot?: React.ReactNode;
118
+ /**
119
+ * Additional CSS classes for the logo container
120
+ */
121
+ logoClassName?: string;
107
122
  /** Optional Section ID */
108
123
  sectionId?: string;
109
124
  }
110
- declare function HeroPricingComparison({ sectionId, badgeText, badgeSlot, heading, description, plans, plansSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, plansClassName, }: HeroPricingComparisonProps): React.JSX.Element;
125
+ declare function HeroPricingComparison({ sectionId, badgeText, badgeSlot, heading, description, plans, plansSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, plansClassName, logo, logoSlot, logoClassName, }: HeroPricingComparisonProps): React.JSX.Element;
111
126
 
112
127
  export { HeroPricingComparison, type HeroPricingComparisonProps };
@@ -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';
@@ -104,9 +107,21 @@ interface HeroPricingComparisonProps {
104
107
  * Additional CSS classes for the plans grid
105
108
  */
106
109
  plansClassName?: string;
110
+ /**
111
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
112
+ */
113
+ logo?: LogoConfig;
114
+ /**
115
+ * Custom slot for logo (overrides logo prop)
116
+ */
117
+ logoSlot?: React.ReactNode;
118
+ /**
119
+ * Additional CSS classes for the logo container
120
+ */
121
+ logoClassName?: string;
107
122
  /** Optional Section ID */
108
123
  sectionId?: string;
109
124
  }
110
- declare function HeroPricingComparison({ sectionId, badgeText, badgeSlot, heading, description, plans, plansSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, plansClassName, }: HeroPricingComparisonProps): React.JSX.Element;
125
+ declare function HeroPricingComparison({ sectionId, badgeText, badgeSlot, heading, description, plans, plansSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, plansClassName, logo, logoSlot, logoClassName, }: HeroPricingComparisonProps): React.JSX.Element;
111
126
 
112
127
  export { HeroPricingComparison, type HeroPricingComparisonProps };