@opensite/ui 3.7.2 → 3.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/hero-ad-campaign-expert.cjs +46 -1
  2. package/dist/hero-ad-campaign-expert.d.cts +16 -1
  3. package/dist/hero-ad-campaign-expert.d.ts +16 -1
  4. package/dist/hero-ad-campaign-expert.js +46 -1
  5. package/dist/hero-adaptable-product-grid.cjs +46 -1
  6. package/dist/hero-adaptable-product-grid.d.cts +16 -1
  7. package/dist/hero-adaptable-product-grid.d.ts +16 -1
  8. package/dist/hero-adaptable-product-grid.js +46 -1
  9. package/dist/hero-agency-animated-images.cjs +46 -1
  10. package/dist/hero-agency-animated-images.d.cts +16 -1
  11. package/dist/hero-agency-animated-images.d.ts +16 -1
  12. package/dist/hero-agency-animated-images.js +46 -1
  13. package/dist/hero-ai-powered-carousel.cjs +56 -8
  14. package/dist/hero-ai-powered-carousel.d.cts +16 -1
  15. package/dist/hero-ai-powered-carousel.d.ts +16 -1
  16. package/dist/hero-ai-powered-carousel.js +56 -8
  17. package/dist/hero-announcement-badge.cjs +47 -1
  18. package/dist/hero-announcement-badge.d.cts +16 -1
  19. package/dist/hero-announcement-badge.d.ts +16 -1
  20. package/dist/hero-announcement-badge.js +47 -1
  21. package/dist/hero-architecture-fullscreen.cjs +46 -1
  22. package/dist/hero-architecture-fullscreen.d.cts +16 -1
  23. package/dist/hero-architecture-fullscreen.d.ts +16 -1
  24. package/dist/hero-architecture-fullscreen.js +46 -1
  25. package/dist/hero-badge-image-split.cjs +46 -1
  26. package/dist/hero-badge-image-split.d.cts +16 -1
  27. package/dist/hero-badge-image-split.d.ts +16 -1
  28. package/dist/hero-badge-image-split.js +46 -1
  29. package/dist/hero-badge-shadow-overlay.cjs +54 -3
  30. package/dist/hero-badge-shadow-overlay.d.cts +16 -1
  31. package/dist/hero-badge-shadow-overlay.d.ts +16 -1
  32. package/dist/hero-badge-shadow-overlay.js +54 -3
  33. package/dist/hero-business-carousel-dots.cjs +46 -1
  34. package/dist/hero-business-carousel-dots.d.cts +16 -1
  35. package/dist/hero-business-carousel-dots.d.ts +16 -1
  36. package/dist/hero-business-carousel-dots.js +46 -1
  37. package/dist/hero-business-operations-mosaic.cjs +46 -1
  38. package/dist/hero-business-operations-mosaic.d.cts +16 -1
  39. package/dist/hero-business-operations-mosaic.d.ts +16 -1
  40. package/dist/hero-business-operations-mosaic.js +46 -1
  41. package/dist/hero-centered-gradient-cta.cjs +47 -1
  42. package/dist/hero-centered-gradient-cta.d.cts +16 -1
  43. package/dist/hero-centered-gradient-cta.d.ts +16 -1
  44. package/dist/hero-centered-gradient-cta.js +47 -1
  45. package/dist/hero-centered-image-grid.cjs +46 -1
  46. package/dist/hero-centered-image-grid.d.cts +16 -1
  47. package/dist/hero-centered-image-grid.d.ts +16 -1
  48. package/dist/hero-centered-image-grid.js +46 -1
  49. package/dist/hero-centered-screenshot.cjs +46 -1
  50. package/dist/hero-centered-screenshot.d.cts +16 -1
  51. package/dist/hero-centered-screenshot.d.ts +16 -1
  52. package/dist/hero-centered-screenshot.js +46 -1
  53. package/dist/hero-coming-soon-countdown.cjs +47 -1
  54. package/dist/hero-coming-soon-countdown.d.cts +16 -1
  55. package/dist/hero-coming-soon-countdown.d.ts +16 -1
  56. package/dist/hero-coming-soon-countdown.js +47 -1
  57. package/dist/hero-community-survey-cta.cjs +46 -1
  58. package/dist/hero-community-survey-cta.d.cts +16 -1
  59. package/dist/hero-community-survey-cta.d.ts +16 -1
  60. package/dist/hero-community-survey-cta.js +46 -1
  61. package/dist/hero-conversation-intelligence.cjs +46 -1
  62. package/dist/hero-conversation-intelligence.d.cts +16 -1
  63. package/dist/hero-conversation-intelligence.d.ts +16 -1
  64. package/dist/hero-conversation-intelligence.js +46 -1
  65. package/dist/hero-creative-studio-stacked.cjs +46 -1
  66. package/dist/hero-creative-studio-stacked.d.cts +17 -2
  67. package/dist/hero-creative-studio-stacked.d.ts +17 -2
  68. package/dist/hero-creative-studio-stacked.js +46 -1
  69. package/dist/hero-crm-streamlined.cjs +58 -9
  70. package/dist/hero-crm-streamlined.d.cts +16 -1
  71. package/dist/hero-crm-streamlined.d.ts +16 -1
  72. package/dist/hero-crm-streamlined.js +58 -9
  73. package/dist/hero-customer-support-layered.cjs +46 -1
  74. package/dist/hero-customer-support-layered.d.cts +16 -1
  75. package/dist/hero-customer-support-layered.d.ts +16 -1
  76. package/dist/hero-customer-support-layered.js +46 -1
  77. package/dist/hero-design-system-3d.cjs +67 -20
  78. package/dist/hero-design-system-3d.d.cts +16 -1
  79. package/dist/hero-design-system-3d.d.ts +16 -1
  80. package/dist/hero-design-system-3d.js +67 -20
  81. package/dist/hero-developer-tools-code.cjs +47 -1
  82. package/dist/hero-developer-tools-code.d.cts +16 -1
  83. package/dist/hero-developer-tools-code.d.ts +16 -1
  84. package/dist/hero-developer-tools-code.js +47 -1
  85. package/dist/hero-digital-agency-fullscreen.cjs +46 -1
  86. package/dist/hero-digital-agency-fullscreen.d.cts +16 -1
  87. package/dist/hero-digital-agency-fullscreen.d.ts +16 -1
  88. package/dist/hero-digital-agency-fullscreen.js +46 -1
  89. package/dist/hero-ecommerce-product-showcase.cjs +46 -1
  90. package/dist/hero-ecommerce-product-showcase.d.cts +16 -1
  91. package/dist/hero-ecommerce-product-showcase.d.ts +16 -1
  92. package/dist/hero-ecommerce-product-showcase.js +46 -1
  93. package/dist/hero-enterprise-security.cjs +47 -1
  94. package/dist/hero-enterprise-security.d.cts +16 -1
  95. package/dist/hero-enterprise-security.d.ts +16 -1
  96. package/dist/hero-enterprise-security.js +47 -1
  97. package/dist/hero-feature-cards-grid.cjs +47 -1
  98. package/dist/hero-feature-cards-grid.d.cts +16 -1
  99. package/dist/hero-feature-cards-grid.d.ts +16 -1
  100. package/dist/hero-feature-cards-grid.js +47 -1
  101. package/dist/hero-fullscreen-background-image.cjs +46 -1
  102. package/dist/hero-fullscreen-background-image.d.cts +16 -1
  103. package/dist/hero-fullscreen-background-image.d.ts +16 -1
  104. package/dist/hero-fullscreen-background-image.js +46 -1
  105. package/dist/hero-gradient-avatars-rating.cjs +46 -1
  106. package/dist/hero-gradient-avatars-rating.d.cts +16 -1
  107. package/dist/hero-gradient-avatars-rating.d.ts +16 -1
  108. package/dist/hero-gradient-avatars-rating.js +46 -1
  109. package/dist/hero-gradient-client-focused.cjs +46 -1
  110. package/dist/hero-gradient-client-focused.d.cts +16 -1
  111. package/dist/hero-gradient-client-focused.d.ts +16 -1
  112. package/dist/hero-gradient-client-focused.js +46 -1
  113. package/dist/hero-grid-pattern-efficiency.cjs +47 -1
  114. package/dist/hero-grid-pattern-efficiency.d.cts +16 -1
  115. package/dist/hero-grid-pattern-efficiency.d.ts +16 -1
  116. package/dist/hero-grid-pattern-efficiency.js +47 -1
  117. package/dist/hero-grid-pattern-solutions.cjs +46 -1
  118. package/dist/hero-grid-pattern-solutions.d.cts +16 -1
  119. package/dist/hero-grid-pattern-solutions.d.ts +16 -1
  120. package/dist/hero-grid-pattern-solutions.js +46 -1
  121. package/dist/hero-hiring-animated-text.cjs +47 -1
  122. package/dist/hero-hiring-animated-text.d.cts +16 -1
  123. package/dist/hero-hiring-animated-text.d.ts +16 -1
  124. package/dist/hero-hiring-animated-text.js +47 -1
  125. package/dist/hero-image-left-content.cjs +46 -1
  126. package/dist/hero-image-left-content.d.cts +16 -1
  127. package/dist/hero-image-left-content.d.ts +16 -1
  128. package/dist/hero-image-left-content.js +46 -1
  129. package/dist/hero-image-slider.cjs +46 -1
  130. package/dist/hero-image-slider.d.cts +16 -1
  131. package/dist/hero-image-slider.d.ts +16 -1
  132. package/dist/hero-image-slider.js +46 -1
  133. package/dist/hero-innovation-image-grid.cjs +46 -1
  134. package/dist/hero-innovation-image-grid.d.cts +16 -1
  135. package/dist/hero-innovation-image-grid.d.ts +16 -1
  136. package/dist/hero-innovation-image-grid.js +46 -1
  137. package/dist/hero-marketplace-scattered-images.cjs +46 -1
  138. package/dist/hero-marketplace-scattered-images.d.cts +16 -1
  139. package/dist/hero-marketplace-scattered-images.d.ts +16 -1
  140. package/dist/hero-marketplace-scattered-images.js +46 -1
  141. package/dist/hero-minimal-centered-dark.cjs +47 -1
  142. package/dist/hero-minimal-centered-dark.d.cts +16 -1
  143. package/dist/hero-minimal-centered-dark.d.ts +16 -1
  144. package/dist/hero-minimal-centered-dark.js +47 -1
  145. package/dist/hero-mobile-app-download.cjs +46 -1
  146. package/dist/hero-mobile-app-download.d.cts +16 -1
  147. package/dist/hero-mobile-app-download.d.ts +16 -1
  148. package/dist/hero-mobile-app-download.js +46 -1
  149. package/dist/hero-newsletter-minimal.cjs +48 -1
  150. package/dist/hero-newsletter-minimal.d.cts +16 -1
  151. package/dist/hero-newsletter-minimal.d.ts +16 -1
  152. package/dist/hero-newsletter-minimal.js +48 -1
  153. package/dist/hero-overlay-cta-grid.cjs +46 -1
  154. package/dist/hero-overlay-cta-grid.d.cts +16 -1
  155. package/dist/hero-overlay-cta-grid.d.ts +16 -1
  156. package/dist/hero-overlay-cta-grid.js +46 -1
  157. package/dist/hero-portfolio-creative.cjs +46 -1
  158. package/dist/hero-portfolio-creative.d.cts +16 -1
  159. package/dist/hero-portfolio-creative.d.ts +16 -1
  160. package/dist/hero-portfolio-creative.js +46 -1
  161. package/dist/hero-premium-split-avatars.cjs +46 -1
  162. package/dist/hero-premium-split-avatars.d.cts +16 -1
  163. package/dist/hero-premium-split-avatars.d.ts +16 -1
  164. package/dist/hero-premium-split-avatars.js +46 -1
  165. package/dist/hero-presentation-platform-video.cjs +47 -1
  166. package/dist/hero-presentation-platform-video.d.cts +16 -1
  167. package/dist/hero-presentation-platform-video.d.ts +16 -1
  168. package/dist/hero-presentation-platform-video.js +47 -1
  169. package/dist/hero-pricing-comparison.cjs +47 -1
  170. package/dist/hero-pricing-comparison.d.cts +16 -1
  171. package/dist/hero-pricing-comparison.d.ts +16 -1
  172. package/dist/hero-pricing-comparison.js +47 -1
  173. package/dist/hero-product-showcase-floating.cjs +46 -1
  174. package/dist/hero-product-showcase-floating.d.cts +16 -1
  175. package/dist/hero-product-showcase-floating.d.ts +16 -1
  176. package/dist/hero-product-showcase-floating.js +46 -1
  177. package/dist/hero-productivity-launcher-video.cjs +68 -20
  178. package/dist/hero-productivity-launcher-video.d.cts +16 -1
  179. package/dist/hero-productivity-launcher-video.d.ts +16 -1
  180. package/dist/hero-productivity-launcher-video.js +68 -20
  181. package/dist/hero-saas-dashboard-preview.cjs +46 -1
  182. package/dist/hero-saas-dashboard-preview.d.cts +16 -1
  183. package/dist/hero-saas-dashboard-preview.d.ts +16 -1
  184. package/dist/hero-saas-dashboard-preview.js +46 -1
  185. package/dist/hero-shared-inbox-layered.cjs +46 -1
  186. package/dist/hero-shared-inbox-layered.d.cts +16 -1
  187. package/dist/hero-shared-inbox-layered.d.ts +16 -1
  188. package/dist/hero-shared-inbox-layered.js +46 -1
  189. package/dist/hero-simple-centered-image.cjs +46 -1
  190. package/dist/hero-simple-centered-image.d.cts +16 -1
  191. package/dist/hero-simple-centered-image.d.ts +16 -1
  192. package/dist/hero-simple-centered-image.js +46 -1
  193. package/dist/hero-software-growth-video-dialog.cjs +46 -1
  194. package/dist/hero-software-growth-video-dialog.d.cts +16 -1
  195. package/dist/hero-software-growth-video-dialog.d.ts +16 -1
  196. package/dist/hero-software-growth-video-dialog.js +46 -1
  197. package/dist/hero-spiral-pattern-cards.cjs +46 -1
  198. package/dist/hero-spiral-pattern-cards.d.cts +16 -1
  199. package/dist/hero-spiral-pattern-cards.d.ts +16 -1
  200. package/dist/hero-spiral-pattern-cards.js +46 -1
  201. package/dist/hero-split-geometric-shapes.cjs +46 -1
  202. package/dist/hero-split-geometric-shapes.d.cts +16 -1
  203. package/dist/hero-split-geometric-shapes.d.ts +16 -1
  204. package/dist/hero-split-geometric-shapes.js +46 -1
  205. package/dist/hero-split-icon-cards.cjs +47 -1
  206. package/dist/hero-split-icon-cards.d.cts +16 -1
  207. package/dist/hero-split-icon-cards.d.ts +16 -1
  208. package/dist/hero-split-icon-cards.js +47 -1
  209. package/dist/hero-split-image-newsletter.cjs +46 -1
  210. package/dist/hero-split-image-newsletter.d.cts +16 -1
  211. package/dist/hero-split-image-newsletter.d.ts +16 -1
  212. package/dist/hero-split-image-newsletter.js +47 -2
  213. package/dist/hero-split-spiral-shapes.cjs +46 -1
  214. package/dist/hero-split-spiral-shapes.d.cts +16 -1
  215. package/dist/hero-split-spiral-shapes.d.ts +16 -1
  216. package/dist/hero-split-spiral-shapes.js +46 -1
  217. package/dist/hero-startup-launch-cta.cjs +46 -1
  218. package/dist/hero-startup-launch-cta.d.cts +16 -1
  219. package/dist/hero-startup-launch-cta.d.ts +16 -1
  220. package/dist/hero-startup-launch-cta.js +46 -1
  221. package/dist/hero-stats-social-proof.cjs +46 -1
  222. package/dist/hero-stats-social-proof.d.cts +16 -1
  223. package/dist/hero-stats-social-proof.d.ts +16 -1
  224. package/dist/hero-stats-social-proof.js +46 -1
  225. package/dist/hero-task-timer-animated.cjs +46 -1
  226. package/dist/hero-task-timer-animated.d.cts +16 -1
  227. package/dist/hero-task-timer-animated.d.ts +16 -1
  228. package/dist/hero-task-timer-animated.js +46 -1
  229. package/dist/hero-testimonial-image-grid.cjs +46 -1
  230. package/dist/hero-testimonial-image-grid.d.cts +16 -1
  231. package/dist/hero-testimonial-image-grid.d.ts +16 -1
  232. package/dist/hero-testimonial-image-grid.js +46 -1
  233. package/dist/hero-therapy-testimonial-grid.cjs +46 -1
  234. package/dist/hero-therapy-testimonial-grid.d.cts +16 -1
  235. package/dist/hero-therapy-testimonial-grid.d.ts +16 -1
  236. package/dist/hero-therapy-testimonial-grid.js +46 -1
  237. package/dist/hero-ui-library-showcase.cjs +3 -2
  238. package/dist/hero-ui-library-showcase.d.cts +13 -5
  239. package/dist/hero-ui-library-showcase.d.ts +13 -5
  240. package/dist/hero-ui-library-showcase.js +3 -2
  241. package/dist/hero-video-background-dark.cjs +47 -1
  242. package/dist/hero-video-background-dark.d.cts +16 -1
  243. package/dist/hero-video-background-dark.d.ts +16 -1
  244. package/dist/hero-video-background-dark.js +47 -1
  245. package/dist/{hero-video-dialog-gradient-Cr96k01H.d.ts → hero-video-dialog-gradient-B6-kFIvZ.d.ts} +14 -1
  246. package/dist/{hero-video-dialog-gradient-Dc0wRYdW.d.cts → hero-video-dialog-gradient-DPnh6Vn-.d.cts} +14 -1
  247. package/dist/hero-video-dialog-gradient.cjs +46 -1
  248. package/dist/hero-video-dialog-gradient.d.cts +4 -1
  249. package/dist/hero-video-dialog-gradient.d.ts +4 -1
  250. package/dist/hero-video-dialog-gradient.js +46 -1
  251. package/dist/hero-welcome-asymmetric-images.cjs +46 -1
  252. package/dist/hero-welcome-asymmetric-images.d.cts +16 -1
  253. package/dist/hero-welcome-asymmetric-images.d.ts +16 -1
  254. package/dist/hero-welcome-asymmetric-images.js +46 -1
  255. package/dist/link-page-bento-layout.cjs +59 -3
  256. package/dist/link-page-bento-layout.d.cts +16 -1
  257. package/dist/link-page-bento-layout.d.ts +16 -1
  258. package/dist/link-page-bento-layout.js +59 -3
  259. package/dist/link-page-grid-cards.cjs +59 -3
  260. package/dist/link-page-grid-cards.d.cts +16 -1
  261. package/dist/link-page-grid-cards.d.ts +16 -1
  262. package/dist/link-page-grid-cards.js +59 -3
  263. package/dist/link-page-minimal-profile.cjs +59 -3
  264. package/dist/link-page-minimal-profile.d.cts +16 -1
  265. package/dist/link-page-minimal-profile.d.ts +16 -1
  266. package/dist/link-page-minimal-profile.js +59 -3
  267. package/dist/link-page-newsletter-social.cjs +59 -3
  268. package/dist/link-page-newsletter-social.d.cts +16 -1
  269. package/dist/link-page-newsletter-social.d.ts +16 -1
  270. package/dist/link-page-newsletter-social.js +59 -3
  271. package/dist/link-tree-block.cjs +58 -2
  272. package/dist/link-tree-block.d.cts +16 -1
  273. package/dist/link-tree-block.d.ts +16 -1
  274. package/dist/link-tree-block.js +58 -2
  275. package/dist/registry.cjs +734 -199
  276. package/dist/registry.js +734 -199
  277. package/dist/social-link-icon.d.cts +1 -1
  278. package/dist/social-link-icon.d.ts +1 -1
  279. package/package.json +1 -1
@@ -426,6 +426,47 @@ function Badge({
426
426
  }
427
427
  );
428
428
  }
429
+ var SIZE_CLASSES = {
430
+ sm: "max-h-6 sm:max-h-7",
431
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
432
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
433
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
434
+ };
435
+ var BrandLogo = ({
436
+ logo,
437
+ logoSlot,
438
+ logoClassName,
439
+ size = "md",
440
+ optixFlowConfig
441
+ }) => {
442
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
443
+ if (!logo || !logo.src) return null;
444
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
445
+ img.Img,
446
+ {
447
+ src: logo.src,
448
+ className: cn(
449
+ "w-auto object-contain",
450
+ SIZE_CLASSES[size],
451
+ logo.className
452
+ ),
453
+ alt: logo.alt || "Logo",
454
+ optixFlowConfig,
455
+ loading: "eager"
456
+ }
457
+ );
458
+ if (logo.url) {
459
+ return /* @__PURE__ */ jsxRuntime.jsx(
460
+ pressable.Pressable,
461
+ {
462
+ href: logo.url,
463
+ className: cn("flex items-center", logoClassName),
464
+ children: imgElement
465
+ }
466
+ );
467
+ }
468
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
469
+ };
429
470
  function HeroSplitSpiralShapes({
430
471
  sectionId = "hero-split-spiral-shapes",
431
472
  badgeText,
@@ -445,7 +486,10 @@ function HeroSplitSpiralShapes({
445
486
  contentClassName,
446
487
  headingClassName,
447
488
  descriptionClassName,
448
- imagesClassName
489
+ imagesClassName,
490
+ logo,
491
+ logoSlot,
492
+ logoClassName
449
493
  }) {
450
494
  const renderActions = React.useMemo(() => {
451
495
  if (actionsSlot) return actionsSlot;
@@ -546,6 +590,7 @@ function HeroSplitSpiralShapes({
546
590
  ),
547
591
  children: [
548
592
  badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsxRuntime.jsx(Badge, { children: badgeText }) : badgeText),
593
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
549
594
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
550
595
  "h1",
551
596
  {
@@ -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';
@@ -79,9 +82,21 @@ interface HeroSplitSpiralShapesProps {
79
82
  * Additional CSS classes for the images container
80
83
  */
81
84
  imagesClassName?: string;
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 HeroSplitSpiralShapes({ sectionId, badgeText, heading, description, actions, actionsSlot, images, imagesSlot, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, }: HeroSplitSpiralShapesProps): React.JSX.Element;
100
+ declare function HeroSplitSpiralShapes({ sectionId, badgeText, heading, description, actions, actionsSlot, images, imagesSlot, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, logo, logoSlot, logoClassName, }: HeroSplitSpiralShapesProps): React.JSX.Element;
86
101
 
87
102
  export { HeroSplitSpiralShapes, type HeroSplitSpiralShapesProps };
@@ -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';
@@ -79,9 +82,21 @@ interface HeroSplitSpiralShapesProps {
79
82
  * Additional CSS classes for the images container
80
83
  */
81
84
  imagesClassName?: string;
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 HeroSplitSpiralShapes({ sectionId, badgeText, heading, description, actions, actionsSlot, images, imagesSlot, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, }: HeroSplitSpiralShapesProps): React.JSX.Element;
100
+ declare function HeroSplitSpiralShapes({ sectionId, badgeText, heading, description, actions, actionsSlot, images, imagesSlot, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, contentClassName, headingClassName, descriptionClassName, imagesClassName, logo, logoSlot, logoClassName, }: HeroSplitSpiralShapesProps): React.JSX.Element;
86
101
 
87
102
  export { HeroSplitSpiralShapes, type HeroSplitSpiralShapesProps };
@@ -420,6 +420,47 @@ function Badge({
420
420
  }
421
421
  );
422
422
  }
423
+ var SIZE_CLASSES = {
424
+ sm: "max-h-6 sm:max-h-7",
425
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
426
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
427
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
428
+ };
429
+ var BrandLogo = ({
430
+ logo,
431
+ logoSlot,
432
+ logoClassName,
433
+ size = "md",
434
+ optixFlowConfig
435
+ }) => {
436
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
437
+ if (!logo || !logo.src) return null;
438
+ const imgElement = /* @__PURE__ */ jsx(
439
+ Img,
440
+ {
441
+ src: logo.src,
442
+ className: cn(
443
+ "w-auto object-contain",
444
+ SIZE_CLASSES[size],
445
+ logo.className
446
+ ),
447
+ alt: logo.alt || "Logo",
448
+ optixFlowConfig,
449
+ loading: "eager"
450
+ }
451
+ );
452
+ if (logo.url) {
453
+ return /* @__PURE__ */ jsx(
454
+ Pressable,
455
+ {
456
+ href: logo.url,
457
+ className: cn("flex items-center", logoClassName),
458
+ children: imgElement
459
+ }
460
+ );
461
+ }
462
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
463
+ };
423
464
  function HeroSplitSpiralShapes({
424
465
  sectionId = "hero-split-spiral-shapes",
425
466
  badgeText,
@@ -439,7 +480,10 @@ function HeroSplitSpiralShapes({
439
480
  contentClassName,
440
481
  headingClassName,
441
482
  descriptionClassName,
442
- imagesClassName
483
+ imagesClassName,
484
+ logo,
485
+ logoSlot,
486
+ logoClassName
443
487
  }) {
444
488
  const renderActions = useMemo(() => {
445
489
  if (actionsSlot) return actionsSlot;
@@ -540,6 +584,7 @@ function HeroSplitSpiralShapes({
540
584
  ),
541
585
  children: [
542
586
  badgeText && (typeof badgeText === "string" ? /* @__PURE__ */ jsx(Badge, { children: badgeText }) : badgeText),
587
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
543
588
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
544
589
  "h1",
545
590
  {
@@ -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 HeroStartupLaunchCta({
508
549
  sectionId = "hero-startup-launch-cta",
509
550
  badge,
@@ -533,7 +574,10 @@ function HeroStartupLaunchCta({
533
574
  actionsClassName,
534
575
  socialProofClassName,
535
576
  imageClassName,
536
- optixFlowConfig
577
+ optixFlowConfig,
578
+ logo,
579
+ logoSlot,
580
+ logoClassName
537
581
  }) {
538
582
  const renderAvatars = React.useMemo(() => {
539
583
  if (avatarsSlot) return avatarsSlot;
@@ -588,6 +632,7 @@ function HeroStartupLaunchCta({
588
632
  badgeIcon,
589
633
  typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
590
634
  ] }),
635
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
591
636
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
592
637
  "h1",
593
638
  {
@@ -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';
@@ -123,9 +126,21 @@ interface HeroStartupLaunchCtaProps {
123
126
  * OptixFlow image optimization configuration
124
127
  */
125
128
  optixFlowConfig?: OptixFlowConfig;
129
+ /**
130
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
131
+ */
132
+ logo?: LogoConfig;
133
+ /**
134
+ * Custom slot for logo (overrides logo prop)
135
+ */
136
+ logoSlot?: React.ReactNode;
137
+ /**
138
+ * Additional CSS classes for the logo container
139
+ */
140
+ logoClassName?: string;
126
141
  /** Optional Section ID */
127
142
  sectionId?: string;
128
143
  }
129
- declare function HeroStartupLaunchCta({ sectionId, badge, badgeIcon, badgeCard, badgeCardSlot, badgeClassName, heading, description, actions, actionsSlot, avatars, avatarsSlot, socialProofText, imageSrc, imageAlt, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, socialProofClassName, imageClassName, optixFlowConfig, }: HeroStartupLaunchCtaProps): React.JSX.Element;
144
+ declare function HeroStartupLaunchCta({ sectionId, badge, badgeIcon, badgeCard, badgeCardSlot, badgeClassName, heading, description, actions, actionsSlot, avatars, avatarsSlot, socialProofText, imageSrc, imageAlt, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, socialProofClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStartupLaunchCtaProps): React.JSX.Element;
130
145
 
131
146
  export { HeroStartupLaunchCta, type HeroStartupLaunchCtaProps };
@@ -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';
@@ -123,9 +126,21 @@ interface HeroStartupLaunchCtaProps {
123
126
  * OptixFlow image optimization configuration
124
127
  */
125
128
  optixFlowConfig?: OptixFlowConfig;
129
+ /**
130
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
131
+ */
132
+ logo?: LogoConfig;
133
+ /**
134
+ * Custom slot for logo (overrides logo prop)
135
+ */
136
+ logoSlot?: React.ReactNode;
137
+ /**
138
+ * Additional CSS classes for the logo container
139
+ */
140
+ logoClassName?: string;
126
141
  /** Optional Section ID */
127
142
  sectionId?: string;
128
143
  }
129
- declare function HeroStartupLaunchCta({ sectionId, badge, badgeIcon, badgeCard, badgeCardSlot, badgeClassName, heading, description, actions, actionsSlot, avatars, avatarsSlot, socialProofText, imageSrc, imageAlt, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, socialProofClassName, imageClassName, optixFlowConfig, }: HeroStartupLaunchCtaProps): React.JSX.Element;
144
+ declare function HeroStartupLaunchCta({ sectionId, badge, badgeIcon, badgeCard, badgeCardSlot, badgeClassName, heading, description, actions, actionsSlot, avatars, avatarsSlot, socialProofText, imageSrc, imageAlt, background, pattern, patternOpacity, patternClassName, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, socialProofClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStartupLaunchCtaProps): React.JSX.Element;
130
145
 
131
146
  export { HeroStartupLaunchCta, type HeroStartupLaunchCtaProps };
@@ -498,6 +498,47 @@ function ActionComponent({ action }) {
498
498
  }
499
499
  );
500
500
  }
501
+ var SIZE_CLASSES = {
502
+ sm: "max-h-6 sm:max-h-7",
503
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
504
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
505
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
506
+ };
507
+ var BrandLogo = ({
508
+ logo,
509
+ logoSlot,
510
+ logoClassName,
511
+ size = "md",
512
+ optixFlowConfig
513
+ }) => {
514
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
515
+ if (!logo || !logo.src) return null;
516
+ const imgElement = /* @__PURE__ */ jsx(
517
+ Img,
518
+ {
519
+ src: logo.src,
520
+ className: cn(
521
+ "w-auto object-contain",
522
+ SIZE_CLASSES[size],
523
+ logo.className
524
+ ),
525
+ alt: logo.alt || "Logo",
526
+ optixFlowConfig,
527
+ loading: "eager"
528
+ }
529
+ );
530
+ if (logo.url) {
531
+ return /* @__PURE__ */ jsx(
532
+ Pressable,
533
+ {
534
+ href: logo.url,
535
+ className: cn("flex items-center", logoClassName),
536
+ children: imgElement
537
+ }
538
+ );
539
+ }
540
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
541
+ };
501
542
  function HeroStartupLaunchCta({
502
543
  sectionId = "hero-startup-launch-cta",
503
544
  badge,
@@ -527,7 +568,10 @@ function HeroStartupLaunchCta({
527
568
  actionsClassName,
528
569
  socialProofClassName,
529
570
  imageClassName,
530
- optixFlowConfig
571
+ optixFlowConfig,
572
+ logo,
573
+ logoSlot,
574
+ logoClassName
531
575
  }) {
532
576
  const renderAvatars = useMemo(() => {
533
577
  if (avatarsSlot) return avatarsSlot;
@@ -582,6 +626,7 @@ function HeroStartupLaunchCta({
582
626
  badgeIcon,
583
627
  typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
584
628
  ] }),
629
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
585
630
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
586
631
  "h1",
587
632
  {
@@ -534,6 +534,47 @@ function ActionComponent({ action }) {
534
534
  }
535
535
  );
536
536
  }
537
+ var SIZE_CLASSES = {
538
+ sm: "max-h-6 sm:max-h-7",
539
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
540
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
541
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
542
+ };
543
+ var BrandLogo = ({
544
+ logo,
545
+ logoSlot,
546
+ logoClassName,
547
+ size = "md",
548
+ optixFlowConfig
549
+ }) => {
550
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
551
+ if (!logo || !logo.src) return null;
552
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
553
+ img.Img,
554
+ {
555
+ src: logo.src,
556
+ className: cn(
557
+ "w-auto object-contain",
558
+ SIZE_CLASSES[size],
559
+ logo.className
560
+ ),
561
+ alt: logo.alt || "Logo",
562
+ optixFlowConfig,
563
+ loading: "eager"
564
+ }
565
+ );
566
+ if (logo.url) {
567
+ return /* @__PURE__ */ jsxRuntime.jsx(
568
+ pressable.Pressable,
569
+ {
570
+ href: logo.url,
571
+ className: cn("flex items-center", logoClassName),
572
+ children: imgElement
573
+ }
574
+ );
575
+ }
576
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
577
+ };
537
578
  function HeroStatsSocialProof({
538
579
  sectionId = "hero-stats-social-proof",
539
580
  badge,
@@ -561,7 +602,10 @@ function HeroStatsSocialProof({
561
602
  actionsClassName,
562
603
  statsClassName,
563
604
  imageClassName,
564
- optixFlowConfig
605
+ optixFlowConfig,
606
+ logo,
607
+ logoSlot,
608
+ logoClassName
565
609
  }) {
566
610
  const renderStats = React.useMemo(() => {
567
611
  if (statsSlot) return statsSlot;
@@ -608,6 +652,7 @@ function HeroStatsSocialProof({
608
652
  badgeIcon,
609
653
  typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("span", { children: badge }) : badge
610
654
  ] }),
655
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
611
656
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
612
657
  "h1",
613
658
  {
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
3
4
  import { A as ActionConfig, k as StatItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -114,9 +117,21 @@ interface HeroStatsSocialProofProps {
114
117
  * OptixFlow image optimization configuration
115
118
  */
116
119
  optixFlowConfig?: OptixFlowConfig;
120
+ /**
121
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
122
+ */
123
+ logo?: LogoConfig;
124
+ /**
125
+ * Custom slot for logo (overrides logo prop)
126
+ */
127
+ logoSlot?: React.ReactNode;
128
+ /**
129
+ * Additional CSS classes for the logo container
130
+ */
131
+ logoClassName?: string;
117
132
  /** Optional Section ID */
118
133
  sectionId?: string;
119
134
  }
120
- declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, }: HeroStatsSocialProofProps): React.JSX.Element;
135
+ declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStatsSocialProofProps): React.JSX.Element;
121
136
 
122
137
  export { HeroStatsSocialProof, type HeroStatsSocialProofProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig, k as StatItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -114,9 +117,21 @@ interface HeroStatsSocialProofProps {
114
117
  * OptixFlow image optimization configuration
115
118
  */
116
119
  optixFlowConfig?: OptixFlowConfig;
120
+ /**
121
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
122
+ */
123
+ logo?: LogoConfig;
124
+ /**
125
+ * Custom slot for logo (overrides logo prop)
126
+ */
127
+ logoSlot?: React.ReactNode;
128
+ /**
129
+ * Additional CSS classes for the logo container
130
+ */
131
+ logoClassName?: string;
117
132
  /** Optional Section ID */
118
133
  sectionId?: string;
119
134
  }
120
- declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, }: HeroStatsSocialProofProps): React.JSX.Element;
135
+ declare function HeroStatsSocialProof({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, stats, statsSlot, imageSrc, imageAlt, statusCard, statusCardSlot, background, pattern, patternOpacity, className, spacing, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, statsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroStatsSocialProofProps): React.JSX.Element;
121
136
 
122
137
  export { HeroStatsSocialProof, type HeroStatsSocialProofProps };
@@ -513,6 +513,47 @@ function ActionComponent({ action }) {
513
513
  }
514
514
  );
515
515
  }
516
+ var SIZE_CLASSES = {
517
+ sm: "max-h-6 sm:max-h-7",
518
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
519
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
520
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
521
+ };
522
+ var BrandLogo = ({
523
+ logo,
524
+ logoSlot,
525
+ logoClassName,
526
+ size = "md",
527
+ optixFlowConfig
528
+ }) => {
529
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
530
+ if (!logo || !logo.src) return null;
531
+ const imgElement = /* @__PURE__ */ jsx(
532
+ Img,
533
+ {
534
+ src: logo.src,
535
+ className: cn(
536
+ "w-auto object-contain",
537
+ SIZE_CLASSES[size],
538
+ logo.className
539
+ ),
540
+ alt: logo.alt || "Logo",
541
+ optixFlowConfig,
542
+ loading: "eager"
543
+ }
544
+ );
545
+ if (logo.url) {
546
+ return /* @__PURE__ */ jsx(
547
+ Pressable,
548
+ {
549
+ href: logo.url,
550
+ className: cn("flex items-center", logoClassName),
551
+ children: imgElement
552
+ }
553
+ );
554
+ }
555
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
556
+ };
516
557
  function HeroStatsSocialProof({
517
558
  sectionId = "hero-stats-social-proof",
518
559
  badge,
@@ -540,7 +581,10 @@ function HeroStatsSocialProof({
540
581
  actionsClassName,
541
582
  statsClassName,
542
583
  imageClassName,
543
- optixFlowConfig
584
+ optixFlowConfig,
585
+ logo,
586
+ logoSlot,
587
+ logoClassName
544
588
  }) {
545
589
  const renderStats = useMemo(() => {
546
590
  if (statsSlot) return statsSlot;
@@ -587,6 +631,7 @@ function HeroStatsSocialProof({
587
631
  badgeIcon,
588
632
  typeof badge === "string" ? /* @__PURE__ */ jsx("span", { children: badge }) : badge
589
633
  ] }),
634
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
590
635
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
591
636
  "h1",
592
637
  {
@@ -495,6 +495,47 @@ function ActionComponent({ action }) {
495
495
  }
496
496
  );
497
497
  }
498
+ var SIZE_CLASSES = {
499
+ sm: "max-h-6 sm:max-h-7",
500
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
501
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
502
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
503
+ };
504
+ var BrandLogo = ({
505
+ logo,
506
+ logoSlot,
507
+ logoClassName,
508
+ size = "md",
509
+ optixFlowConfig
510
+ }) => {
511
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
512
+ if (!logo || !logo.src) return null;
513
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
514
+ img.Img,
515
+ {
516
+ src: logo.src,
517
+ className: cn(
518
+ "w-auto object-contain",
519
+ SIZE_CLASSES[size],
520
+ logo.className
521
+ ),
522
+ alt: logo.alt || "Logo",
523
+ optixFlowConfig,
524
+ loading: "eager"
525
+ }
526
+ );
527
+ if (logo.url) {
528
+ return /* @__PURE__ */ jsxRuntime.jsx(
529
+ pressable.Pressable,
530
+ {
531
+ href: logo.url,
532
+ className: cn("flex items-center", logoClassName),
533
+ children: imgElement
534
+ }
535
+ );
536
+ }
537
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
538
+ };
498
539
  function HeroTaskTimerAnimated({
499
540
  sectionId = "hero-task-timer-animated",
500
541
  heading,
@@ -514,7 +555,10 @@ function HeroTaskTimerAnimated({
514
555
  headerClassName,
515
556
  headingClassName,
516
557
  imagesClassName,
517
- optixFlowConfig
558
+ optixFlowConfig,
559
+ logo,
560
+ logoSlot,
561
+ logoClassName
518
562
  }) {
519
563
  const renderImages = React.useMemo(() => {
520
564
  if (imagesSlot) return imagesSlot;
@@ -574,6 +618,7 @@ function HeroTaskTimerAnimated({
574
618
  headerClassName
575
619
  ),
576
620
  children: [
621
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
577
622
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
578
623
  "h1",
579
624
  {