@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
@@ -516,6 +516,47 @@ function ActionComponent({ action }) {
516
516
  }
517
517
  );
518
518
  }
519
+ var SIZE_CLASSES = {
520
+ sm: "max-h-6 sm:max-h-7",
521
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
522
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
523
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
524
+ };
525
+ var BrandLogo = ({
526
+ logo,
527
+ logoSlot,
528
+ logoClassName,
529
+ size = "md",
530
+ optixFlowConfig
531
+ }) => {
532
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
533
+ if (!logo || !logo.src) return null;
534
+ const imgElement = /* @__PURE__ */ jsx(
535
+ Img,
536
+ {
537
+ src: logo.src,
538
+ className: cn(
539
+ "w-auto object-contain",
540
+ SIZE_CLASSES[size],
541
+ logo.className
542
+ ),
543
+ alt: logo.alt || "Logo",
544
+ optixFlowConfig,
545
+ loading: "eager"
546
+ }
547
+ );
548
+ if (logo.url) {
549
+ return /* @__PURE__ */ jsx(
550
+ Pressable,
551
+ {
552
+ href: logo.url,
553
+ className: cn("flex items-center", logoClassName),
554
+ children: imgElement
555
+ }
556
+ );
557
+ }
558
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
559
+ };
519
560
  function HeroTestimonialImageGrid({
520
561
  sectionId = "hero-testimonial-image-grid",
521
562
  heading,
@@ -535,7 +576,10 @@ function HeroTestimonialImageGrid({
535
576
  containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
536
577
  headingClassName,
537
578
  descriptionClassName,
538
- optixFlowConfig
579
+ optixFlowConfig,
580
+ logo,
581
+ logoSlot,
582
+ logoClassName
539
583
  }) {
540
584
  const renderTestimonial = useMemo(() => {
541
585
  if (testimonialSlot) return testimonialSlot;
@@ -594,6 +638,7 @@ function HeroTestimonialImageGrid({
594
638
  children: /* @__PURE__ */ jsx("div", { className: "pt-10 md:pt-0", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-8 md:flex-row", children: [
595
639
  /* @__PURE__ */ jsxs("div", { className: "flex-1", children: [
596
640
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 lg:gap-8", children: [
641
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
597
642
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
598
643
  "h1",
599
644
  {
@@ -470,6 +470,47 @@ function ActionComponent({ action }) {
470
470
  }
471
471
  );
472
472
  }
473
+ var SIZE_CLASSES = {
474
+ sm: "max-h-6 sm:max-h-7",
475
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
476
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
477
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
478
+ };
479
+ var BrandLogo = ({
480
+ logo,
481
+ logoSlot,
482
+ logoClassName,
483
+ size = "md",
484
+ optixFlowConfig
485
+ }) => {
486
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
487
+ if (!logo || !logo.src) return null;
488
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
489
+ img.Img,
490
+ {
491
+ src: logo.src,
492
+ className: cn(
493
+ "w-auto object-contain",
494
+ SIZE_CLASSES[size],
495
+ logo.className
496
+ ),
497
+ alt: logo.alt || "Logo",
498
+ optixFlowConfig,
499
+ loading: "eager"
500
+ }
501
+ );
502
+ if (logo.url) {
503
+ return /* @__PURE__ */ jsxRuntime.jsx(
504
+ pressable.Pressable,
505
+ {
506
+ href: logo.url,
507
+ className: cn("flex items-center", logoClassName),
508
+ children: imgElement
509
+ }
510
+ );
511
+ }
512
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
513
+ };
473
514
  function HeroTherapyTestimonialGrid({
474
515
  sectionId = "hero-therapy-testimonial-grid",
475
516
  heading,
@@ -490,7 +531,10 @@ function HeroTherapyTestimonialGrid({
490
531
  headerClassName,
491
532
  headingClassName,
492
533
  descriptionClassName,
493
- optixFlowConfig
534
+ optixFlowConfig,
535
+ logo,
536
+ logoSlot,
537
+ logoClassName
494
538
  }) {
495
539
  const renderTestimonial = React.useMemo(() => {
496
540
  if (testimonialSlot) return testimonialSlot;
@@ -580,6 +624,7 @@ function HeroTherapyTestimonialGrid({
580
624
  headerClassName
581
625
  ),
582
626
  children: [
627
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
583
628
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
584
629
  "h1",
585
630
  {
@@ -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';
@@ -96,9 +99,21 @@ interface HeroTherapyTestimonialGridProps {
96
99
  * Additional CSS classes for the actions container
97
100
  */
98
101
  actionsClassName?: string;
102
+ /**
103
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
104
+ */
105
+ logo?: LogoConfig;
106
+ /**
107
+ * Custom slot for logo (overrides logo prop)
108
+ */
109
+ logoSlot?: React.ReactNode;
110
+ /**
111
+ * Additional CSS classes for the logo container
112
+ */
113
+ logoClassName?: string;
99
114
  /** Optional Section ID */
100
115
  sectionId?: string;
101
116
  }
102
- declare function HeroTherapyTestimonialGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, testimonial, testimonialSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroTherapyTestimonialGridProps): React.JSX.Element;
117
+ declare function HeroTherapyTestimonialGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, testimonial, testimonialSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTherapyTestimonialGridProps): React.JSX.Element;
103
118
 
104
119
  export { HeroTherapyTestimonialGrid, type HeroTherapyTestimonialGridProps };
@@ -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';
@@ -96,9 +99,21 @@ interface HeroTherapyTestimonialGridProps {
96
99
  * Additional CSS classes for the actions container
97
100
  */
98
101
  actionsClassName?: string;
102
+ /**
103
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
104
+ */
105
+ logo?: LogoConfig;
106
+ /**
107
+ * Custom slot for logo (overrides logo prop)
108
+ */
109
+ logoSlot?: React.ReactNode;
110
+ /**
111
+ * Additional CSS classes for the logo container
112
+ */
113
+ logoClassName?: string;
99
114
  /** Optional Section ID */
100
115
  sectionId?: string;
101
116
  }
102
- declare function HeroTherapyTestimonialGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, testimonial, testimonialSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroTherapyTestimonialGridProps): React.JSX.Element;
117
+ declare function HeroTherapyTestimonialGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, testimonial, testimonialSlot, background, spacing, pattern, patternOpacity, className, containerClassName, headerClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroTherapyTestimonialGridProps): React.JSX.Element;
103
118
 
104
119
  export { HeroTherapyTestimonialGrid, type HeroTherapyTestimonialGridProps };
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
464
464
  }
465
465
  );
466
466
  }
467
+ var SIZE_CLASSES = {
468
+ sm: "max-h-6 sm:max-h-7",
469
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
470
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
471
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
472
+ };
473
+ var BrandLogo = ({
474
+ logo,
475
+ logoSlot,
476
+ logoClassName,
477
+ size = "md",
478
+ optixFlowConfig
479
+ }) => {
480
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
481
+ if (!logo || !logo.src) return null;
482
+ const imgElement = /* @__PURE__ */ jsx(
483
+ Img,
484
+ {
485
+ src: logo.src,
486
+ className: cn(
487
+ "w-auto object-contain",
488
+ SIZE_CLASSES[size],
489
+ logo.className
490
+ ),
491
+ alt: logo.alt || "Logo",
492
+ optixFlowConfig,
493
+ loading: "eager"
494
+ }
495
+ );
496
+ if (logo.url) {
497
+ return /* @__PURE__ */ jsx(
498
+ Pressable,
499
+ {
500
+ href: logo.url,
501
+ className: cn("flex items-center", logoClassName),
502
+ children: imgElement
503
+ }
504
+ );
505
+ }
506
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
507
+ };
467
508
  function HeroTherapyTestimonialGrid({
468
509
  sectionId = "hero-therapy-testimonial-grid",
469
510
  heading,
@@ -484,7 +525,10 @@ function HeroTherapyTestimonialGrid({
484
525
  headerClassName,
485
526
  headingClassName,
486
527
  descriptionClassName,
487
- optixFlowConfig
528
+ optixFlowConfig,
529
+ logo,
530
+ logoSlot,
531
+ logoClassName
488
532
  }) {
489
533
  const renderTestimonial = useMemo(() => {
490
534
  if (testimonialSlot) return testimonialSlot;
@@ -574,6 +618,7 @@ function HeroTherapyTestimonialGrid({
574
618
  headerClassName
575
619
  ),
576
620
  children: [
621
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
577
622
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
578
623
  "h1",
579
624
  {
@@ -499,6 +499,7 @@ function HeroUiLibraryShowcase({
499
499
  sectionId = "hero-ui-library-showcase",
500
500
  logo,
501
501
  logoSlot,
502
+ logoClassName,
502
503
  heading,
503
504
  description,
504
505
  actions,
@@ -526,11 +527,11 @@ function HeroUiLibraryShowcase({
526
527
  {
527
528
  src: logo.src,
528
529
  alt: logo.alt,
529
- className: cn("h-11 w-fit", logo.className),
530
+ className: cn("h-11 w-fit", logo.className, logoClassName),
530
531
  optixFlowConfig
531
532
  }
532
533
  );
533
- }, [logoSlot, logo, optixFlowConfig]);
534
+ }, [logoSlot, logo, logoClassName, optixFlowConfig]);
534
535
  const renderImage = React.useMemo(() => {
535
536
  if (imageSlot) return imageSlot;
536
537
  if (!image) return null;
@@ -1,20 +1,27 @@
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 { I as ImageItem, A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
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';
8
11
 
9
12
  interface HeroUiLibraryShowcaseProps {
10
13
  /**
11
- * Logo image configuration
14
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
12
15
  */
13
- logo?: ImageItem;
16
+ logo?: LogoConfig;
14
17
  /**
15
18
  * Custom slot for logo (overrides logo prop)
16
19
  */
17
20
  logoSlot?: React.ReactNode;
21
+ /**
22
+ * Additional CSS classes for the logo container
23
+ */
24
+ logoClassName?: string;
18
25
  /**
19
26
  * Main heading content
20
27
  */
@@ -42,7 +49,8 @@ interface HeroUiLibraryShowcaseProps {
42
49
  /**
43
50
  * Custom slot for image (overrides image prop)
44
51
  */
45
- imageSlot?: React.ReactNode; /**
52
+ imageSlot?: React.ReactNode;
53
+ /**
46
54
  * Background style for the section
47
55
  */
48
56
  background?: SectionBackground;
@@ -89,6 +97,6 @@ interface HeroUiLibraryShowcaseProps {
89
97
  /** Optional Section ID */
90
98
  sectionId?: string;
91
99
  }
92
- declare function HeroUiLibraryShowcase({ sectionId, logo, logoSlot, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, headerClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroUiLibraryShowcaseProps): React.JSX.Element;
100
+ declare function HeroUiLibraryShowcase({ sectionId, logo, logoSlot, logoClassName, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, headerClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroUiLibraryShowcaseProps): React.JSX.Element;
93
101
 
94
102
  export { HeroUiLibraryShowcase, type HeroUiLibraryShowcaseProps };
@@ -1,20 +1,27 @@
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 { I as ImageItem, A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
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';
8
11
 
9
12
  interface HeroUiLibraryShowcaseProps {
10
13
  /**
11
- * Logo image configuration
14
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
12
15
  */
13
- logo?: ImageItem;
16
+ logo?: LogoConfig;
14
17
  /**
15
18
  * Custom slot for logo (overrides logo prop)
16
19
  */
17
20
  logoSlot?: React.ReactNode;
21
+ /**
22
+ * Additional CSS classes for the logo container
23
+ */
24
+ logoClassName?: string;
18
25
  /**
19
26
  * Main heading content
20
27
  */
@@ -42,7 +49,8 @@ interface HeroUiLibraryShowcaseProps {
42
49
  /**
43
50
  * Custom slot for image (overrides image prop)
44
51
  */
45
- imageSlot?: React.ReactNode; /**
52
+ imageSlot?: React.ReactNode;
53
+ /**
46
54
  * Background style for the section
47
55
  */
48
56
  background?: SectionBackground;
@@ -89,6 +97,6 @@ interface HeroUiLibraryShowcaseProps {
89
97
  /** Optional Section ID */
90
98
  sectionId?: string;
91
99
  }
92
- declare function HeroUiLibraryShowcase({ sectionId, logo, logoSlot, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, headerClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroUiLibraryShowcaseProps): React.JSX.Element;
100
+ declare function HeroUiLibraryShowcase({ sectionId, logo, logoSlot, logoClassName, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, headerClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroUiLibraryShowcaseProps): React.JSX.Element;
93
101
 
94
102
  export { HeroUiLibraryShowcase, type HeroUiLibraryShowcaseProps };
@@ -474,6 +474,7 @@ function HeroUiLibraryShowcase({
474
474
  sectionId = "hero-ui-library-showcase",
475
475
  logo,
476
476
  logoSlot,
477
+ logoClassName,
477
478
  heading,
478
479
  description,
479
480
  actions,
@@ -501,11 +502,11 @@ function HeroUiLibraryShowcase({
501
502
  {
502
503
  src: logo.src,
503
504
  alt: logo.alt,
504
- className: cn("h-11 w-fit", logo.className),
505
+ className: cn("h-11 w-fit", logo.className, logoClassName),
505
506
  optixFlowConfig
506
507
  }
507
508
  );
508
- }, [logoSlot, logo, optixFlowConfig]);
509
+ }, [logoSlot, logo, logoClassName, optixFlowConfig]);
509
510
  const renderImage = useMemo(() => {
510
511
  if (imageSlot) return imageSlot;
511
512
  if (!image) return null;
@@ -9,6 +9,7 @@ var jsxRuntime = require('react/jsx-runtime');
9
9
  var pressable = require('@page-speed/pressable');
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 _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
15
 
@@ -565,6 +566,47 @@ function ActionComponent({ action }) {
565
566
  }
566
567
  );
567
568
  }
569
+ var SIZE_CLASSES = {
570
+ sm: "max-h-6 sm:max-h-7",
571
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
572
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
573
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
574
+ };
575
+ var BrandLogo = ({
576
+ logo,
577
+ logoSlot,
578
+ logoClassName,
579
+ size = "md",
580
+ optixFlowConfig
581
+ }) => {
582
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
583
+ if (!logo || !logo.src) return null;
584
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
585
+ img.Img,
586
+ {
587
+ src: logo.src,
588
+ className: cn(
589
+ "w-auto object-contain",
590
+ SIZE_CLASSES[size],
591
+ logo.className
592
+ ),
593
+ alt: logo.alt || "Logo",
594
+ optixFlowConfig,
595
+ loading: "eager"
596
+ }
597
+ );
598
+ if (logo.url) {
599
+ return /* @__PURE__ */ jsxRuntime.jsx(
600
+ pressable.Pressable,
601
+ {
602
+ href: logo.url,
603
+ className: cn("flex items-center", logoClassName),
604
+ children: imgElement
605
+ }
606
+ );
607
+ }
608
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
609
+ };
568
610
  function HeroVideoBackgroundDark({
569
611
  sectionId = "hero-video-background-dark",
570
612
  badgeText,
@@ -586,7 +628,10 @@ function HeroVideoBackgroundDark({
586
628
  containerClassName = "px-0 sm:px-0 md:px-0 lg:px-0 min-h-screen w-screen h-full max-w-screen",
587
629
  contentClassName,
588
630
  headingClassName,
589
- descriptionClassName
631
+ descriptionClassName,
632
+ logo,
633
+ logoSlot,
634
+ logoClassName
590
635
  }) {
591
636
  const renderVideo = React.useMemo(() => {
592
637
  if (videoSlot) return videoSlot;
@@ -632,6 +677,7 @@ function HeroVideoBackgroundDark({
632
677
  ),
633
678
  children: [
634
679
  badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: badgeText }) : badgeText),
680
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
635
681
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
636
682
  "h1",
637
683
  {
@@ -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';
@@ -89,9 +92,21 @@ interface HeroVideoBackgroundDarkProps {
89
92
  * Additional CSS classes for the description
90
93
  */
91
94
  descriptionClassName?: string;
95
+ /**
96
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
97
+ */
98
+ logo?: LogoConfig;
99
+ /**
100
+ * Custom slot for logo (overrides logo prop)
101
+ */
102
+ logoSlot?: React.ReactNode;
103
+ /**
104
+ * Additional CSS classes for the logo container
105
+ */
106
+ logoClassName?: string;
92
107
  /** Optional Section ID */
93
108
  sectionId?: string;
94
109
  }
95
- declare function HeroVideoBackgroundDark({ sectionId, badgeText, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
110
+ declare function HeroVideoBackgroundDark({ sectionId, badgeText, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
96
111
 
97
112
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -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';
@@ -89,9 +92,21 @@ interface HeroVideoBackgroundDarkProps {
89
92
  * Additional CSS classes for the description
90
93
  */
91
94
  descriptionClassName?: string;
95
+ /**
96
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
97
+ */
98
+ logo?: LogoConfig;
99
+ /**
100
+ * Custom slot for logo (overrides logo prop)
101
+ */
102
+ logoSlot?: React.ReactNode;
103
+ /**
104
+ * Additional CSS classes for the logo container
105
+ */
106
+ logoClassName?: string;
92
107
  /** Optional Section ID */
93
108
  sectionId?: string;
94
109
  }
95
- declare function HeroVideoBackgroundDark({ sectionId, badgeText, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
110
+ declare function HeroVideoBackgroundDark({ sectionId, badgeText, heading, description, actions, actionsSlot, actionsClassName, backgroundVideo, videoSrc, videoSlot, background, videoBrightness, videoOverlayIntensity, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroVideoBackgroundDarkProps): React.JSX.Element;
96
111
 
97
112
  export { HeroVideoBackgroundDark, type HeroVideoBackgroundDarkProps };
@@ -7,6 +7,7 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
  import { Slot } from '@radix-ui/react-slot';
9
9
  import { cva } from 'class-variance-authority';
10
+ import { Img } from '@page-speed/img';
10
11
 
11
12
  // components/blocks/hero/hero-video-background-dark.tsx
12
13
  function cn(...inputs) {
@@ -559,6 +560,47 @@ function ActionComponent({ action }) {
559
560
  }
560
561
  );
561
562
  }
563
+ var SIZE_CLASSES = {
564
+ sm: "max-h-6 sm:max-h-7",
565
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
566
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
567
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
568
+ };
569
+ var BrandLogo = ({
570
+ logo,
571
+ logoSlot,
572
+ logoClassName,
573
+ size = "md",
574
+ optixFlowConfig
575
+ }) => {
576
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
577
+ if (!logo || !logo.src) return null;
578
+ const imgElement = /* @__PURE__ */ jsx(
579
+ Img,
580
+ {
581
+ src: logo.src,
582
+ className: cn(
583
+ "w-auto object-contain",
584
+ SIZE_CLASSES[size],
585
+ logo.className
586
+ ),
587
+ alt: logo.alt || "Logo",
588
+ optixFlowConfig,
589
+ loading: "eager"
590
+ }
591
+ );
592
+ if (logo.url) {
593
+ return /* @__PURE__ */ jsx(
594
+ Pressable,
595
+ {
596
+ href: logo.url,
597
+ className: cn("flex items-center", logoClassName),
598
+ children: imgElement
599
+ }
600
+ );
601
+ }
602
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
603
+ };
562
604
  function HeroVideoBackgroundDark({
563
605
  sectionId = "hero-video-background-dark",
564
606
  badgeText,
@@ -580,7 +622,10 @@ function HeroVideoBackgroundDark({
580
622
  containerClassName = "px-0 sm:px-0 md:px-0 lg:px-0 min-h-screen w-screen h-full max-w-screen",
581
623
  contentClassName,
582
624
  headingClassName,
583
- descriptionClassName
625
+ descriptionClassName,
626
+ logo,
627
+ logoSlot,
628
+ logoClassName
584
629
  }) {
585
630
  const renderVideo = useMemo(() => {
586
631
  if (videoSlot) return videoSlot;
@@ -626,6 +671,7 @@ function HeroVideoBackgroundDark({
626
671
  ),
627
672
  children: [
628
673
  badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx(Badge, { children: badgeText }) : badgeText),
674
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
629
675
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
630
676
  "h1",
631
677
  {
@@ -1,5 +1,6 @@
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, M as MediaItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
4
5
 
5
6
  /**
@@ -104,7 +105,19 @@ interface HeroVideoDialogGradientProps {
104
105
  * Additional CSS classes for the actions container
105
106
  */
106
107
  actionsClassName?: string;
108
+ /**
109
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
110
+ */
111
+ logo?: LogoConfig;
112
+ /**
113
+ * Custom slot for logo (overrides logo prop)
114
+ */
115
+ logoSlot?: React.ReactNode;
116
+ /**
117
+ * Additional CSS classes for the logo container
118
+ */
119
+ logoClassName?: string;
107
120
  }
108
- declare function HeroVideoDialogGradient({ videoAspectRatio, heading, description, actions, videoAction, image, imageSlot, modalVideo, videoDialogTitle, videoDialog, background, containerClassName, spacing, pattern, onVideoClick, patternOpacity, actionsClassName, className, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroVideoDialogGradientProps): React.JSX.Element;
121
+ declare function HeroVideoDialogGradient({ videoAspectRatio, heading, description, actions, videoAction, image, imageSlot, modalVideo, videoDialogTitle, videoDialog, background, containerClassName, spacing, pattern, onVideoClick, patternOpacity, actionsClassName, className, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroVideoDialogGradientProps): React.JSX.Element;
109
122
 
110
123
  export { HeroVideoDialogGradient as H, type VideoDialogConfig as V, type HeroVideoDialogGradientProps as a };