@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
@@ -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, 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';
@@ -79,9 +82,21 @@ interface HeroCenteredScreenshotProps {
79
82
  * OptixFlow image optimization configuration
80
83
  */
81
84
  optixFlowConfig?: OptixFlowConfig;
85
+ /**
86
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
87
+ */
88
+ logo?: LogoConfig;
89
+ /**
90
+ * Custom slot for logo (overrides logo prop)
91
+ */
92
+ logoSlot?: React.ReactNode;
93
+ /**
94
+ * Additional CSS classes for the logo container
95
+ */
96
+ logoClassName?: string;
82
97
  /** Optional Section ID */
83
98
  sectionId?: string;
84
99
  }
85
- declare function HeroCenteredScreenshot({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroCenteredScreenshotProps): React.JSX.Element;
100
+ declare function HeroCenteredScreenshot({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCenteredScreenshotProps): React.JSX.Element;
86
101
 
87
102
  export { HeroCenteredScreenshot, type HeroCenteredScreenshotProps };
@@ -386,6 +386,47 @@ var Section = React.forwardRef(
386
386
  }
387
387
  );
388
388
  Section.displayName = "Section";
389
+ var SIZE_CLASSES = {
390
+ sm: "max-h-6 sm:max-h-7",
391
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
392
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
393
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
394
+ };
395
+ var BrandLogo = ({
396
+ logo,
397
+ logoSlot,
398
+ logoClassName,
399
+ size = "md",
400
+ optixFlowConfig
401
+ }) => {
402
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
403
+ if (!logo || !logo.src) return null;
404
+ const imgElement = /* @__PURE__ */ jsx(
405
+ Img,
406
+ {
407
+ src: logo.src,
408
+ className: cn(
409
+ "w-auto object-contain",
410
+ SIZE_CLASSES[size],
411
+ logo.className
412
+ ),
413
+ alt: logo.alt || "Logo",
414
+ optixFlowConfig,
415
+ loading: "eager"
416
+ }
417
+ );
418
+ if (logo.url) {
419
+ return /* @__PURE__ */ jsx(
420
+ Pressable,
421
+ {
422
+ href: logo.url,
423
+ className: cn("flex items-center", logoClassName),
424
+ children: imgElement
425
+ }
426
+ );
427
+ }
428
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
429
+ };
389
430
  function HeroCenteredScreenshot({
390
431
  sectionId = "hero-centered-screenshot",
391
432
  heading,
@@ -405,7 +446,10 @@ function HeroCenteredScreenshot({
405
446
  descriptionClassName,
406
447
  actionsClassName,
407
448
  imageClassName,
408
- optixFlowConfig
449
+ optixFlowConfig,
450
+ logo,
451
+ logoSlot,
452
+ logoClassName
409
453
  }) {
410
454
  const renderActions = useMemo(() => {
411
455
  if (actionsSlot) return actionsSlot;
@@ -451,6 +495,7 @@ function HeroCenteredScreenshot({
451
495
  {
452
496
  className: cn("z-10 items-center text-center", contentClassName),
453
497
  children: [
498
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
454
499
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
455
500
  "h1",
456
501
  {
@@ -13,6 +13,7 @@ var classVarianceAuthority = require('class-variance-authority');
13
13
  var usePlatformFromUrl = require('@opensite/hooks/usePlatformFromUrl');
14
14
  var forms = require('@page-speed/forms');
15
15
  var integration = require('@page-speed/forms/integration');
16
+ var img = require('@page-speed/img');
16
17
 
17
18
  function _interopNamespace(e) {
18
19
  if (e && e.__esModule) return e;
@@ -547,6 +548,47 @@ var SocialLinkIcon = React4__namespace.forwardRef(
547
548
  }
548
549
  );
549
550
  SocialLinkIcon.displayName = "SocialLinkIcon";
551
+ var SIZE_CLASSES = {
552
+ sm: "max-h-6 sm:max-h-7",
553
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
554
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
555
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
556
+ };
557
+ var BrandLogo = ({
558
+ logo,
559
+ logoSlot,
560
+ logoClassName,
561
+ size = "md",
562
+ optixFlowConfig
563
+ }) => {
564
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
565
+ if (!logo || !logo.src) return null;
566
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
567
+ img.Img,
568
+ {
569
+ src: logo.src,
570
+ className: cn(
571
+ "w-auto object-contain",
572
+ SIZE_CLASSES[size],
573
+ logo.className
574
+ ),
575
+ alt: logo.alt || "Logo",
576
+ optixFlowConfig,
577
+ loading: "eager"
578
+ }
579
+ );
580
+ if (logo.url) {
581
+ return /* @__PURE__ */ jsxRuntime.jsx(
582
+ pressable.Pressable,
583
+ {
584
+ href: logo.url,
585
+ className: cn("flex items-center", logoClassName),
586
+ children: imgElement
587
+ }
588
+ );
589
+ }
590
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
591
+ };
550
592
  var DEFAULT_FORM_FIELDS = [
551
593
  {
552
594
  name: "email",
@@ -626,7 +668,10 @@ function HeroComingSoonCountdown({
626
668
  descriptionClassName,
627
669
  countdownClassName,
628
670
  formClassName,
629
- socialLinksClassName
671
+ socialLinksClassName,
672
+ logo,
673
+ logoSlot,
674
+ logoClassName
630
675
  }) {
631
676
  const [timeLeft, setTimeLeft] = React4__namespace.useState(null);
632
677
  const {
@@ -779,6 +824,7 @@ function HeroComingSoonCountdown({
779
824
  badgeIcon && /* @__PURE__ */ jsxRuntime.jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
780
825
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: badgeText })
781
826
  ] }),
827
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
782
828
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
783
829
  "h1",
784
830
  {
@@ -1,8 +1,11 @@
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 { FormFieldConfig, PageSpeedFormConfig } from '@page-speed/forms/integration';
4
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
4
5
  import { A as ActionConfig, j as SocialLinkItem } from './blocks-DyouPohq.cjs';
5
6
  import 'react/jsx-runtime';
7
+ import './dynamic-icon.cjs';
8
+ import '@page-speed/icon';
6
9
  import 'class-variance-authority';
7
10
  import '@page-speed/pressable';
8
11
  import '@opensite/hooks/usePlatformFromUrl';
@@ -130,9 +133,21 @@ interface HeroComingSoonCountdownProps {
130
133
  * Additional CSS classes for the pattern overlay
131
134
  */
132
135
  patternClassName?: string;
136
+ /**
137
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
138
+ */
139
+ logo?: LogoConfig;
140
+ /**
141
+ * Custom slot for logo (overrides logo prop)
142
+ */
143
+ logoSlot?: React.ReactNode;
144
+ /**
145
+ * Additional CSS classes for the logo container
146
+ */
147
+ logoClassName?: string;
133
148
  /** Optional Section ID */
134
149
  sectionId?: string;
135
150
  }
136
- declare function HeroComingSoonCountdown({ sectionId, badgeIcon, badgeText, heading, description, countdownDate, countdownSlot, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, socialLinks, socialLinksSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, badgeClassName, headingClassName, descriptionClassName, countdownClassName, formClassName, socialLinksClassName, }: HeroComingSoonCountdownProps): React.JSX.Element;
151
+ declare function HeroComingSoonCountdown({ sectionId, badgeIcon, badgeText, heading, description, countdownDate, countdownSlot, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, socialLinks, socialLinksSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, badgeClassName, headingClassName, descriptionClassName, countdownClassName, formClassName, socialLinksClassName, logo, logoSlot, logoClassName, }: HeroComingSoonCountdownProps): React.JSX.Element;
137
152
 
138
153
  export { HeroComingSoonCountdown, type HeroComingSoonCountdownProps };
@@ -1,8 +1,11 @@
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 { FormFieldConfig, PageSpeedFormConfig } from '@page-speed/forms/integration';
4
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
4
5
  import { A as ActionConfig, j as SocialLinkItem } from './blocks-DyouPohq.js';
5
6
  import 'react/jsx-runtime';
7
+ import './dynamic-icon.js';
8
+ import '@page-speed/icon';
6
9
  import 'class-variance-authority';
7
10
  import '@page-speed/pressable';
8
11
  import '@opensite/hooks/usePlatformFromUrl';
@@ -130,9 +133,21 @@ interface HeroComingSoonCountdownProps {
130
133
  * Additional CSS classes for the pattern overlay
131
134
  */
132
135
  patternClassName?: string;
136
+ /**
137
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
138
+ */
139
+ logo?: LogoConfig;
140
+ /**
141
+ * Custom slot for logo (overrides logo prop)
142
+ */
143
+ logoSlot?: React.ReactNode;
144
+ /**
145
+ * Additional CSS classes for the logo container
146
+ */
147
+ logoClassName?: string;
133
148
  /** Optional Section ID */
134
149
  sectionId?: string;
135
150
  }
136
- declare function HeroComingSoonCountdown({ sectionId, badgeIcon, badgeText, heading, description, countdownDate, countdownSlot, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, socialLinks, socialLinksSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, badgeClassName, headingClassName, descriptionClassName, countdownClassName, formClassName, socialLinksClassName, }: HeroComingSoonCountdownProps): React.JSX.Element;
151
+ declare function HeroComingSoonCountdown({ sectionId, badgeIcon, badgeText, heading, description, countdownDate, countdownSlot, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, socialLinks, socialLinksSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, badgeClassName, headingClassName, descriptionClassName, countdownClassName, formClassName, socialLinksClassName, logo, logoSlot, logoClassName, }: HeroComingSoonCountdownProps): React.JSX.Element;
137
152
 
138
153
  export { HeroComingSoonCountdown, type HeroComingSoonCountdownProps };
@@ -12,6 +12,7 @@ import { cva } from 'class-variance-authority';
12
12
  import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
13
13
  import { Form } from '@page-speed/forms';
14
14
  import { useFileUpload, useContactForm, DynamicFormField } from '@page-speed/forms/integration';
15
+ import { Img } from '@page-speed/img';
15
16
 
16
17
  // components/blocks/hero/hero-coming-soon-countdown.tsx
17
18
  function cn(...inputs) {
@@ -526,6 +527,47 @@ var SocialLinkIcon = React4.forwardRef(
526
527
  }
527
528
  );
528
529
  SocialLinkIcon.displayName = "SocialLinkIcon";
530
+ var SIZE_CLASSES = {
531
+ sm: "max-h-6 sm:max-h-7",
532
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
533
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
534
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
535
+ };
536
+ var BrandLogo = ({
537
+ logo,
538
+ logoSlot,
539
+ logoClassName,
540
+ size = "md",
541
+ optixFlowConfig
542
+ }) => {
543
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
544
+ if (!logo || !logo.src) return null;
545
+ const imgElement = /* @__PURE__ */ jsx(
546
+ Img,
547
+ {
548
+ src: logo.src,
549
+ className: cn(
550
+ "w-auto object-contain",
551
+ SIZE_CLASSES[size],
552
+ logo.className
553
+ ),
554
+ alt: logo.alt || "Logo",
555
+ optixFlowConfig,
556
+ loading: "eager"
557
+ }
558
+ );
559
+ if (logo.url) {
560
+ return /* @__PURE__ */ jsx(
561
+ Pressable,
562
+ {
563
+ href: logo.url,
564
+ className: cn("flex items-center", logoClassName),
565
+ children: imgElement
566
+ }
567
+ );
568
+ }
569
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
570
+ };
529
571
  var DEFAULT_FORM_FIELDS = [
530
572
  {
531
573
  name: "email",
@@ -605,7 +647,10 @@ function HeroComingSoonCountdown({
605
647
  descriptionClassName,
606
648
  countdownClassName,
607
649
  formClassName,
608
- socialLinksClassName
650
+ socialLinksClassName,
651
+ logo,
652
+ logoSlot,
653
+ logoClassName
609
654
  }) {
610
655
  const [timeLeft, setTimeLeft] = React4.useState(null);
611
656
  const {
@@ -758,6 +803,7 @@ function HeroComingSoonCountdown({
758
803
  badgeIcon && /* @__PURE__ */ jsx(DynamicIcon, { name: badgeIcon, size: 16 }),
759
804
  /* @__PURE__ */ jsx("span", { children: badgeText })
760
805
  ] }),
806
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
761
807
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
762
808
  "h1",
763
809
  {
@@ -504,6 +504,47 @@ function ActionComponent({ action }) {
504
504
  }
505
505
  );
506
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
+ };
507
548
  function HeroCommunitySurveyCta({
508
549
  sectionId = "hero-community-survey-cta",
509
550
  announcementPrimary,
@@ -529,7 +570,10 @@ function HeroCommunitySurveyCta({
529
570
  descriptionClassName,
530
571
  actionsClassName,
531
572
  imagesClassName,
532
- optixFlowConfig
573
+ optixFlowConfig,
574
+ logo,
575
+ logoSlot,
576
+ logoClassName
533
577
  }) {
534
578
  const renderAnnouncement = React.useMemo(() => {
535
579
  if (announcementSlot) return announcementSlot;
@@ -678,6 +722,7 @@ function HeroCommunitySurveyCta({
678
722
  children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative grid grid-cols-1 items-center gap-8 lg:grid-cols-2 lg:gap-12", children: [
679
723
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-start gap-6 md:gap-8 pt-8 md:pt-0", children: [
680
724
  renderAnnouncement,
725
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
681
726
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
682
727
  "h1",
683
728
  {
@@ -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';
@@ -103,9 +106,21 @@ interface HeroCommunitySurveyCtaProps {
103
106
  * OptixFlow image optimization configuration
104
107
  */
105
108
  optixFlowConfig?: OptixFlowConfig;
109
+ /**
110
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
111
+ */
112
+ logo?: LogoConfig;
113
+ /**
114
+ * Custom slot for logo (overrides logo prop)
115
+ */
116
+ logoSlot?: React.ReactNode;
117
+ /**
118
+ * Additional CSS classes for the logo container
119
+ */
120
+ logoClassName?: string;
106
121
  /** Optional Section ID */
107
122
  sectionId?: string;
108
123
  }
109
- declare function HeroCommunitySurveyCta({ sectionId, announcementPrimary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
124
+ declare function HeroCommunitySurveyCta({ sectionId, announcementPrimary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
110
125
 
111
126
  export { HeroCommunitySurveyCta, type HeroCommunitySurveyCtaProps };
@@ -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';
@@ -103,9 +106,21 @@ interface HeroCommunitySurveyCtaProps {
103
106
  * OptixFlow image optimization configuration
104
107
  */
105
108
  optixFlowConfig?: OptixFlowConfig;
109
+ /**
110
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
111
+ */
112
+ logo?: LogoConfig;
113
+ /**
114
+ * Custom slot for logo (overrides logo prop)
115
+ */
116
+ logoSlot?: React.ReactNode;
117
+ /**
118
+ * Additional CSS classes for the logo container
119
+ */
120
+ logoClassName?: string;
106
121
  /** Optional Section ID */
107
122
  sectionId?: string;
108
123
  }
109
- declare function HeroCommunitySurveyCta({ sectionId, announcementPrimary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
124
+ declare function HeroCommunitySurveyCta({ sectionId, announcementPrimary, announcementLinkText, announcementHref, announcementSlot, heading, description, actions, actionsSlot, mainImage, leftOverlayImage, rightOverlayImage, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, announcementClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCommunitySurveyCtaProps): React.JSX.Element;
110
125
 
111
126
  export { HeroCommunitySurveyCta, type HeroCommunitySurveyCtaProps };
@@ -498,6 +498,47 @@ function ActionComponent({ action }) {
498
498
  }
499
499
  );
500
500
  }
501
+ var SIZE_CLASSES = {
502
+ sm: "max-h-6 sm:max-h-7",
503
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
504
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
505
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
506
+ };
507
+ var BrandLogo = ({
508
+ logo,
509
+ logoSlot,
510
+ logoClassName,
511
+ size = "md",
512
+ optixFlowConfig
513
+ }) => {
514
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
515
+ if (!logo || !logo.src) return null;
516
+ const imgElement = /* @__PURE__ */ jsx(
517
+ Img,
518
+ {
519
+ src: logo.src,
520
+ className: cn(
521
+ "w-auto object-contain",
522
+ SIZE_CLASSES[size],
523
+ logo.className
524
+ ),
525
+ alt: logo.alt || "Logo",
526
+ optixFlowConfig,
527
+ loading: "eager"
528
+ }
529
+ );
530
+ if (logo.url) {
531
+ return /* @__PURE__ */ jsx(
532
+ Pressable,
533
+ {
534
+ href: logo.url,
535
+ className: cn("flex items-center", logoClassName),
536
+ children: imgElement
537
+ }
538
+ );
539
+ }
540
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
541
+ };
501
542
  function HeroCommunitySurveyCta({
502
543
  sectionId = "hero-community-survey-cta",
503
544
  announcementPrimary,
@@ -523,7 +564,10 @@ function HeroCommunitySurveyCta({
523
564
  descriptionClassName,
524
565
  actionsClassName,
525
566
  imagesClassName,
526
- optixFlowConfig
567
+ optixFlowConfig,
568
+ logo,
569
+ logoSlot,
570
+ logoClassName
527
571
  }) {
528
572
  const renderAnnouncement = useMemo(() => {
529
573
  if (announcementSlot) return announcementSlot;
@@ -672,6 +716,7 @@ function HeroCommunitySurveyCta({
672
716
  children: /* @__PURE__ */ jsxs("div", { className: "relative grid grid-cols-1 items-center gap-8 lg:grid-cols-2 lg:gap-12", children: [
673
717
  /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-start gap-6 md:gap-8 pt-8 md:pt-0", children: [
674
718
  renderAnnouncement,
719
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
675
720
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
676
721
  "h1",
677
722
  {
@@ -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 HeroConversationIntelligence({
474
515
  sectionId = "hero-conversation-intelligence",
475
516
  headingPrimary,
@@ -490,7 +531,10 @@ function HeroConversationIntelligence({
490
531
  descriptionClassName,
491
532
  actionsClassName,
492
533
  imageClassName,
493
- optixFlowConfig
534
+ optixFlowConfig,
535
+ logo,
536
+ logoSlot,
537
+ logoClassName
494
538
  }) {
495
539
  const renderImage = React.useMemo(() => {
496
540
  if (imageSlot) return imageSlot;
@@ -537,6 +581,7 @@ function HeroConversationIntelligence({
537
581
  contentClassName
538
582
  ),
539
583
  children: [
584
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
540
585
  /* @__PURE__ */ jsxRuntime.jsx(
541
586
  "h1",
542
587
  {
@@ -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';
@@ -83,9 +86,21 @@ interface HeroConversationIntelligenceProps {
83
86
  * OptixFlow image optimization configuration
84
87
  */
85
88
  optixFlowConfig?: OptixFlowConfig;
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 HeroConversationIntelligence({ sectionId, headingPrimary, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroConversationIntelligenceProps): React.JSX.Element;
104
+ declare function HeroConversationIntelligence({ sectionId, headingPrimary, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroConversationIntelligenceProps): React.JSX.Element;
90
105
 
91
106
  export { HeroConversationIntelligence, type HeroConversationIntelligenceProps };
@@ -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';
@@ -83,9 +86,21 @@ interface HeroConversationIntelligenceProps {
83
86
  * OptixFlow image optimization configuration
84
87
  */
85
88
  optixFlowConfig?: OptixFlowConfig;
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 HeroConversationIntelligence({ sectionId, headingPrimary, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroConversationIntelligenceProps): React.JSX.Element;
104
+ declare function HeroConversationIntelligence({ sectionId, headingPrimary, description, actions, actionsSlot, image, imageSlot, background, containerClassName, spacing, pattern, patternOpacity, patternClassName, className, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroConversationIntelligenceProps): React.JSX.Element;
90
105
 
91
106
  export { HeroConversationIntelligence, type HeroConversationIntelligenceProps };