@opensite/ui 3.7.2 → 3.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (279) hide show
  1. package/dist/hero-ad-campaign-expert.cjs +46 -1
  2. package/dist/hero-ad-campaign-expert.d.cts +16 -1
  3. package/dist/hero-ad-campaign-expert.d.ts +16 -1
  4. package/dist/hero-ad-campaign-expert.js +46 -1
  5. package/dist/hero-adaptable-product-grid.cjs +46 -1
  6. package/dist/hero-adaptable-product-grid.d.cts +16 -1
  7. package/dist/hero-adaptable-product-grid.d.ts +16 -1
  8. package/dist/hero-adaptable-product-grid.js +46 -1
  9. package/dist/hero-agency-animated-images.cjs +46 -1
  10. package/dist/hero-agency-animated-images.d.cts +16 -1
  11. package/dist/hero-agency-animated-images.d.ts +16 -1
  12. package/dist/hero-agency-animated-images.js +46 -1
  13. package/dist/hero-ai-powered-carousel.cjs +46 -1
  14. package/dist/hero-ai-powered-carousel.d.cts +16 -1
  15. package/dist/hero-ai-powered-carousel.d.ts +16 -1
  16. package/dist/hero-ai-powered-carousel.js +46 -1
  17. package/dist/hero-announcement-badge.cjs +47 -1
  18. package/dist/hero-announcement-badge.d.cts +16 -1
  19. package/dist/hero-announcement-badge.d.ts +16 -1
  20. package/dist/hero-announcement-badge.js +47 -1
  21. package/dist/hero-architecture-fullscreen.cjs +46 -1
  22. package/dist/hero-architecture-fullscreen.d.cts +16 -1
  23. package/dist/hero-architecture-fullscreen.d.ts +16 -1
  24. package/dist/hero-architecture-fullscreen.js +46 -1
  25. package/dist/hero-badge-image-split.cjs +46 -1
  26. package/dist/hero-badge-image-split.d.cts +16 -1
  27. package/dist/hero-badge-image-split.d.ts +16 -1
  28. package/dist/hero-badge-image-split.js +46 -1
  29. package/dist/hero-badge-shadow-overlay.cjs +46 -1
  30. package/dist/hero-badge-shadow-overlay.d.cts +16 -1
  31. package/dist/hero-badge-shadow-overlay.d.ts +16 -1
  32. package/dist/hero-badge-shadow-overlay.js +46 -1
  33. package/dist/hero-business-carousel-dots.cjs +46 -1
  34. package/dist/hero-business-carousel-dots.d.cts +16 -1
  35. package/dist/hero-business-carousel-dots.d.ts +16 -1
  36. package/dist/hero-business-carousel-dots.js +46 -1
  37. package/dist/hero-business-operations-mosaic.cjs +46 -1
  38. package/dist/hero-business-operations-mosaic.d.cts +16 -1
  39. package/dist/hero-business-operations-mosaic.d.ts +16 -1
  40. package/dist/hero-business-operations-mosaic.js +46 -1
  41. package/dist/hero-centered-gradient-cta.cjs +47 -1
  42. package/dist/hero-centered-gradient-cta.d.cts +16 -1
  43. package/dist/hero-centered-gradient-cta.d.ts +16 -1
  44. package/dist/hero-centered-gradient-cta.js +47 -1
  45. package/dist/hero-centered-image-grid.cjs +46 -1
  46. package/dist/hero-centered-image-grid.d.cts +16 -1
  47. package/dist/hero-centered-image-grid.d.ts +16 -1
  48. package/dist/hero-centered-image-grid.js +46 -1
  49. package/dist/hero-centered-screenshot.cjs +46 -1
  50. package/dist/hero-centered-screenshot.d.cts +16 -1
  51. package/dist/hero-centered-screenshot.d.ts +16 -1
  52. package/dist/hero-centered-screenshot.js +46 -1
  53. package/dist/hero-coming-soon-countdown.cjs +47 -1
  54. package/dist/hero-coming-soon-countdown.d.cts +16 -1
  55. package/dist/hero-coming-soon-countdown.d.ts +16 -1
  56. package/dist/hero-coming-soon-countdown.js +47 -1
  57. package/dist/hero-community-survey-cta.cjs +46 -1
  58. package/dist/hero-community-survey-cta.d.cts +16 -1
  59. package/dist/hero-community-survey-cta.d.ts +16 -1
  60. package/dist/hero-community-survey-cta.js +46 -1
  61. package/dist/hero-conversation-intelligence.cjs +46 -1
  62. package/dist/hero-conversation-intelligence.d.cts +16 -1
  63. package/dist/hero-conversation-intelligence.d.ts +16 -1
  64. package/dist/hero-conversation-intelligence.js +46 -1
  65. package/dist/hero-creative-studio-stacked.cjs +46 -1
  66. package/dist/hero-creative-studio-stacked.d.cts +17 -2
  67. package/dist/hero-creative-studio-stacked.d.ts +17 -2
  68. package/dist/hero-creative-studio-stacked.js +46 -1
  69. package/dist/hero-crm-streamlined.cjs +46 -1
  70. package/dist/hero-crm-streamlined.d.cts +16 -1
  71. package/dist/hero-crm-streamlined.d.ts +16 -1
  72. package/dist/hero-crm-streamlined.js +46 -1
  73. package/dist/hero-customer-support-layered.cjs +46 -1
  74. package/dist/hero-customer-support-layered.d.cts +16 -1
  75. package/dist/hero-customer-support-layered.d.ts +16 -1
  76. package/dist/hero-customer-support-layered.js +46 -1
  77. package/dist/hero-design-system-3d.cjs +67 -20
  78. package/dist/hero-design-system-3d.d.cts +16 -1
  79. package/dist/hero-design-system-3d.d.ts +16 -1
  80. package/dist/hero-design-system-3d.js +67 -20
  81. package/dist/hero-developer-tools-code.cjs +47 -1
  82. package/dist/hero-developer-tools-code.d.cts +16 -1
  83. package/dist/hero-developer-tools-code.d.ts +16 -1
  84. package/dist/hero-developer-tools-code.js +47 -1
  85. package/dist/hero-digital-agency-fullscreen.cjs +46 -1
  86. package/dist/hero-digital-agency-fullscreen.d.cts +16 -1
  87. package/dist/hero-digital-agency-fullscreen.d.ts +16 -1
  88. package/dist/hero-digital-agency-fullscreen.js +46 -1
  89. package/dist/hero-ecommerce-product-showcase.cjs +46 -1
  90. package/dist/hero-ecommerce-product-showcase.d.cts +16 -1
  91. package/dist/hero-ecommerce-product-showcase.d.ts +16 -1
  92. package/dist/hero-ecommerce-product-showcase.js +46 -1
  93. package/dist/hero-enterprise-security.cjs +47 -1
  94. package/dist/hero-enterprise-security.d.cts +16 -1
  95. package/dist/hero-enterprise-security.d.ts +16 -1
  96. package/dist/hero-enterprise-security.js +47 -1
  97. package/dist/hero-feature-cards-grid.cjs +47 -1
  98. package/dist/hero-feature-cards-grid.d.cts +16 -1
  99. package/dist/hero-feature-cards-grid.d.ts +16 -1
  100. package/dist/hero-feature-cards-grid.js +47 -1
  101. package/dist/hero-fullscreen-background-image.cjs +46 -1
  102. package/dist/hero-fullscreen-background-image.d.cts +16 -1
  103. package/dist/hero-fullscreen-background-image.d.ts +16 -1
  104. package/dist/hero-fullscreen-background-image.js +46 -1
  105. package/dist/hero-gradient-avatars-rating.cjs +46 -1
  106. package/dist/hero-gradient-avatars-rating.d.cts +16 -1
  107. package/dist/hero-gradient-avatars-rating.d.ts +16 -1
  108. package/dist/hero-gradient-avatars-rating.js +46 -1
  109. package/dist/hero-gradient-client-focused.cjs +46 -1
  110. package/dist/hero-gradient-client-focused.d.cts +16 -1
  111. package/dist/hero-gradient-client-focused.d.ts +16 -1
  112. package/dist/hero-gradient-client-focused.js +46 -1
  113. package/dist/hero-grid-pattern-efficiency.cjs +47 -1
  114. package/dist/hero-grid-pattern-efficiency.d.cts +16 -1
  115. package/dist/hero-grid-pattern-efficiency.d.ts +16 -1
  116. package/dist/hero-grid-pattern-efficiency.js +47 -1
  117. package/dist/hero-grid-pattern-solutions.cjs +46 -1
  118. package/dist/hero-grid-pattern-solutions.d.cts +16 -1
  119. package/dist/hero-grid-pattern-solutions.d.ts +16 -1
  120. package/dist/hero-grid-pattern-solutions.js +46 -1
  121. package/dist/hero-hiring-animated-text.cjs +47 -1
  122. package/dist/hero-hiring-animated-text.d.cts +16 -1
  123. package/dist/hero-hiring-animated-text.d.ts +16 -1
  124. package/dist/hero-hiring-animated-text.js +47 -1
  125. package/dist/hero-image-left-content.cjs +46 -1
  126. package/dist/hero-image-left-content.d.cts +16 -1
  127. package/dist/hero-image-left-content.d.ts +16 -1
  128. package/dist/hero-image-left-content.js +46 -1
  129. package/dist/hero-image-slider.cjs +46 -1
  130. package/dist/hero-image-slider.d.cts +16 -1
  131. package/dist/hero-image-slider.d.ts +16 -1
  132. package/dist/hero-image-slider.js +46 -1
  133. package/dist/hero-innovation-image-grid.cjs +46 -1
  134. package/dist/hero-innovation-image-grid.d.cts +16 -1
  135. package/dist/hero-innovation-image-grid.d.ts +16 -1
  136. package/dist/hero-innovation-image-grid.js +46 -1
  137. package/dist/hero-marketplace-scattered-images.cjs +46 -1
  138. package/dist/hero-marketplace-scattered-images.d.cts +16 -1
  139. package/dist/hero-marketplace-scattered-images.d.ts +16 -1
  140. package/dist/hero-marketplace-scattered-images.js +46 -1
  141. package/dist/hero-minimal-centered-dark.cjs +47 -1
  142. package/dist/hero-minimal-centered-dark.d.cts +16 -1
  143. package/dist/hero-minimal-centered-dark.d.ts +16 -1
  144. package/dist/hero-minimal-centered-dark.js +47 -1
  145. package/dist/hero-mobile-app-download.cjs +46 -1
  146. package/dist/hero-mobile-app-download.d.cts +16 -1
  147. package/dist/hero-mobile-app-download.d.ts +16 -1
  148. package/dist/hero-mobile-app-download.js +46 -1
  149. package/dist/hero-newsletter-minimal.cjs +48 -1
  150. package/dist/hero-newsletter-minimal.d.cts +16 -1
  151. package/dist/hero-newsletter-minimal.d.ts +16 -1
  152. package/dist/hero-newsletter-minimal.js +48 -1
  153. package/dist/hero-overlay-cta-grid.cjs +46 -1
  154. package/dist/hero-overlay-cta-grid.d.cts +16 -1
  155. package/dist/hero-overlay-cta-grid.d.ts +16 -1
  156. package/dist/hero-overlay-cta-grid.js +46 -1
  157. package/dist/hero-portfolio-creative.cjs +46 -1
  158. package/dist/hero-portfolio-creative.d.cts +16 -1
  159. package/dist/hero-portfolio-creative.d.ts +16 -1
  160. package/dist/hero-portfolio-creative.js +46 -1
  161. package/dist/hero-premium-split-avatars.cjs +46 -1
  162. package/dist/hero-premium-split-avatars.d.cts +16 -1
  163. package/dist/hero-premium-split-avatars.d.ts +16 -1
  164. package/dist/hero-premium-split-avatars.js +46 -1
  165. package/dist/hero-presentation-platform-video.cjs +47 -1
  166. package/dist/hero-presentation-platform-video.d.cts +16 -1
  167. package/dist/hero-presentation-platform-video.d.ts +16 -1
  168. package/dist/hero-presentation-platform-video.js +47 -1
  169. package/dist/hero-pricing-comparison.cjs +47 -1
  170. package/dist/hero-pricing-comparison.d.cts +16 -1
  171. package/dist/hero-pricing-comparison.d.ts +16 -1
  172. package/dist/hero-pricing-comparison.js +47 -1
  173. package/dist/hero-product-showcase-floating.cjs +46 -1
  174. package/dist/hero-product-showcase-floating.d.cts +16 -1
  175. package/dist/hero-product-showcase-floating.d.ts +16 -1
  176. package/dist/hero-product-showcase-floating.js +46 -1
  177. package/dist/hero-productivity-launcher-video.cjs +68 -20
  178. package/dist/hero-productivity-launcher-video.d.cts +16 -1
  179. package/dist/hero-productivity-launcher-video.d.ts +16 -1
  180. package/dist/hero-productivity-launcher-video.js +68 -20
  181. package/dist/hero-saas-dashboard-preview.cjs +46 -1
  182. package/dist/hero-saas-dashboard-preview.d.cts +16 -1
  183. package/dist/hero-saas-dashboard-preview.d.ts +16 -1
  184. package/dist/hero-saas-dashboard-preview.js +46 -1
  185. package/dist/hero-shared-inbox-layered.cjs +46 -1
  186. package/dist/hero-shared-inbox-layered.d.cts +16 -1
  187. package/dist/hero-shared-inbox-layered.d.ts +16 -1
  188. package/dist/hero-shared-inbox-layered.js +46 -1
  189. package/dist/hero-simple-centered-image.cjs +46 -1
  190. package/dist/hero-simple-centered-image.d.cts +16 -1
  191. package/dist/hero-simple-centered-image.d.ts +16 -1
  192. package/dist/hero-simple-centered-image.js +46 -1
  193. package/dist/hero-software-growth-video-dialog.cjs +46 -1
  194. package/dist/hero-software-growth-video-dialog.d.cts +16 -1
  195. package/dist/hero-software-growth-video-dialog.d.ts +16 -1
  196. package/dist/hero-software-growth-video-dialog.js +46 -1
  197. package/dist/hero-spiral-pattern-cards.cjs +46 -1
  198. package/dist/hero-spiral-pattern-cards.d.cts +16 -1
  199. package/dist/hero-spiral-pattern-cards.d.ts +16 -1
  200. package/dist/hero-spiral-pattern-cards.js +46 -1
  201. package/dist/hero-split-geometric-shapes.cjs +46 -1
  202. package/dist/hero-split-geometric-shapes.d.cts +16 -1
  203. package/dist/hero-split-geometric-shapes.d.ts +16 -1
  204. package/dist/hero-split-geometric-shapes.js +46 -1
  205. package/dist/hero-split-icon-cards.cjs +47 -1
  206. package/dist/hero-split-icon-cards.d.cts +16 -1
  207. package/dist/hero-split-icon-cards.d.ts +16 -1
  208. package/dist/hero-split-icon-cards.js +47 -1
  209. package/dist/hero-split-image-newsletter.cjs +46 -1
  210. package/dist/hero-split-image-newsletter.d.cts +16 -1
  211. package/dist/hero-split-image-newsletter.d.ts +16 -1
  212. package/dist/hero-split-image-newsletter.js +47 -2
  213. package/dist/hero-split-spiral-shapes.cjs +46 -1
  214. package/dist/hero-split-spiral-shapes.d.cts +16 -1
  215. package/dist/hero-split-spiral-shapes.d.ts +16 -1
  216. package/dist/hero-split-spiral-shapes.js +46 -1
  217. package/dist/hero-startup-launch-cta.cjs +46 -1
  218. package/dist/hero-startup-launch-cta.d.cts +16 -1
  219. package/dist/hero-startup-launch-cta.d.ts +16 -1
  220. package/dist/hero-startup-launch-cta.js +46 -1
  221. package/dist/hero-stats-social-proof.cjs +46 -1
  222. package/dist/hero-stats-social-proof.d.cts +16 -1
  223. package/dist/hero-stats-social-proof.d.ts +16 -1
  224. package/dist/hero-stats-social-proof.js +46 -1
  225. package/dist/hero-task-timer-animated.cjs +46 -1
  226. package/dist/hero-task-timer-animated.d.cts +16 -1
  227. package/dist/hero-task-timer-animated.d.ts +16 -1
  228. package/dist/hero-task-timer-animated.js +46 -1
  229. package/dist/hero-testimonial-image-grid.cjs +46 -1
  230. package/dist/hero-testimonial-image-grid.d.cts +16 -1
  231. package/dist/hero-testimonial-image-grid.d.ts +16 -1
  232. package/dist/hero-testimonial-image-grid.js +46 -1
  233. package/dist/hero-therapy-testimonial-grid.cjs +46 -1
  234. package/dist/hero-therapy-testimonial-grid.d.cts +16 -1
  235. package/dist/hero-therapy-testimonial-grid.d.ts +16 -1
  236. package/dist/hero-therapy-testimonial-grid.js +46 -1
  237. package/dist/hero-ui-library-showcase.cjs +3 -2
  238. package/dist/hero-ui-library-showcase.d.cts +13 -5
  239. package/dist/hero-ui-library-showcase.d.ts +13 -5
  240. package/dist/hero-ui-library-showcase.js +3 -2
  241. package/dist/hero-video-background-dark.cjs +47 -1
  242. package/dist/hero-video-background-dark.d.cts +16 -1
  243. package/dist/hero-video-background-dark.d.ts +16 -1
  244. package/dist/hero-video-background-dark.js +47 -1
  245. package/dist/{hero-video-dialog-gradient-Cr96k01H.d.ts → hero-video-dialog-gradient-B6-kFIvZ.d.ts} +14 -1
  246. package/dist/{hero-video-dialog-gradient-Dc0wRYdW.d.cts → hero-video-dialog-gradient-DPnh6Vn-.d.cts} +14 -1
  247. package/dist/hero-video-dialog-gradient.cjs +46 -1
  248. package/dist/hero-video-dialog-gradient.d.cts +4 -1
  249. package/dist/hero-video-dialog-gradient.d.ts +4 -1
  250. package/dist/hero-video-dialog-gradient.js +46 -1
  251. package/dist/hero-welcome-asymmetric-images.cjs +46 -1
  252. package/dist/hero-welcome-asymmetric-images.d.cts +16 -1
  253. package/dist/hero-welcome-asymmetric-images.d.ts +16 -1
  254. package/dist/hero-welcome-asymmetric-images.js +46 -1
  255. package/dist/link-page-bento-layout.cjs +59 -3
  256. package/dist/link-page-bento-layout.d.cts +16 -1
  257. package/dist/link-page-bento-layout.d.ts +16 -1
  258. package/dist/link-page-bento-layout.js +59 -3
  259. package/dist/link-page-grid-cards.cjs +59 -3
  260. package/dist/link-page-grid-cards.d.cts +16 -1
  261. package/dist/link-page-grid-cards.d.ts +16 -1
  262. package/dist/link-page-grid-cards.js +59 -3
  263. package/dist/link-page-minimal-profile.cjs +59 -3
  264. package/dist/link-page-minimal-profile.d.cts +16 -1
  265. package/dist/link-page-minimal-profile.d.ts +16 -1
  266. package/dist/link-page-minimal-profile.js +59 -3
  267. package/dist/link-page-newsletter-social.cjs +59 -3
  268. package/dist/link-page-newsletter-social.d.cts +16 -1
  269. package/dist/link-page-newsletter-social.d.ts +16 -1
  270. package/dist/link-page-newsletter-social.js +59 -3
  271. package/dist/link-tree-block.cjs +58 -2
  272. package/dist/link-tree-block.d.cts +16 -1
  273. package/dist/link-tree-block.d.ts +16 -1
  274. package/dist/link-tree-block.js +58 -2
  275. package/dist/registry.cjs +704 -182
  276. package/dist/registry.js +704 -182
  277. package/dist/social-link-icon.d.cts +1 -1
  278. package/dist/social-link-icon.d.ts +1 -1
  279. package/package.json +1 -1
@@ -4,6 +4,7 @@ import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
6
6
  import { Pressable, buttonVariants } from '@page-speed/pressable';
7
+ import { Img } from '@page-speed/img';
7
8
 
8
9
  // components/blocks/hero/hero-hiring-animated-text.tsx
9
10
  function cn(...inputs) {
@@ -463,6 +464,47 @@ function ActionComponent({ action }) {
463
464
  }
464
465
  );
465
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
+ };
466
508
  function HeroHiringAnimatedText({
467
509
  sectionId = "hero-hiring-animated-text",
468
510
  headingPrefix,
@@ -481,7 +523,10 @@ function HeroHiringAnimatedText({
481
523
  contentClassName,
482
524
  headingClassName,
483
525
  descriptionClassName,
484
- actionsClassName
526
+ actionsClassName,
527
+ logo,
528
+ logoSlot,
529
+ logoClassName
485
530
  }) {
486
531
  const [activeIndex, setActiveIndex] = useState(0);
487
532
  const cycleText = useCallback(() => {
@@ -547,6 +592,7 @@ function HeroHiringAnimatedText({
547
592
  contentClassName
548
593
  ),
549
594
  children: [
595
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
550
596
  renderHeading,
551
597
  /* @__PURE__ */ jsxs("div", { className: "flex items-stretch md:items-start flex-col gap-8", children: [
552
598
  description && (typeof description === "string" ? /* @__PURE__ */ jsx(
@@ -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 HeroImageLeftContent({
508
549
  sectionId = "hero-image-left-content",
509
550
  badge,
@@ -528,7 +569,10 @@ function HeroImageLeftContent({
528
569
  actionsClassName,
529
570
  imageContainerClassName,
530
571
  imageClassName,
531
- optixFlowConfig
572
+ optixFlowConfig,
573
+ logo,
574
+ logoSlot,
575
+ logoClassName
532
576
  }) {
533
577
  return /* @__PURE__ */ jsxRuntime.jsx(
534
578
  Section,
@@ -565,6 +609,7 @@ function HeroImageLeftContent({
565
609
  badge,
566
610
  badgeIcon
567
611
  ] }),
612
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
568
613
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
569
614
  "h1",
570
615
  {
@@ -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, 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';
@@ -99,9 +102,21 @@ interface HeroImageLeftContentProps {
99
102
  * OptixFlow image optimization configuration
100
103
  */
101
104
  optixFlowConfig?: OptixFlowConfig;
105
+ /**
106
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
107
+ */
108
+ logo?: LogoConfig;
109
+ /**
110
+ * Custom slot for logo (overrides logo prop)
111
+ */
112
+ logoSlot?: React.ReactNode;
113
+ /**
114
+ * Additional CSS classes for the logo container
115
+ */
116
+ logoClassName?: string;
102
117
  /** Optional Section ID */
103
118
  sectionId?: string;
104
119
  }
105
- declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, }: HeroImageLeftContentProps): React.JSX.Element;
120
+ declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroImageLeftContentProps): React.JSX.Element;
106
121
 
107
122
  export { HeroImageLeftContent, type HeroImageLeftContentProps };
@@ -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';
@@ -99,9 +102,21 @@ interface HeroImageLeftContentProps {
99
102
  * OptixFlow image optimization configuration
100
103
  */
101
104
  optixFlowConfig?: OptixFlowConfig;
105
+ /**
106
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
107
+ */
108
+ logo?: LogoConfig;
109
+ /**
110
+ * Custom slot for logo (overrides logo prop)
111
+ */
112
+ logoSlot?: React.ReactNode;
113
+ /**
114
+ * Additional CSS classes for the logo container
115
+ */
116
+ logoClassName?: string;
102
117
  /** Optional Section ID */
103
118
  sectionId?: string;
104
119
  }
105
- declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, }: HeroImageLeftContentProps): React.JSX.Element;
120
+ declare function HeroImageLeftContent({ sectionId, badge, badgeIcon, badgeVariant, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageContainerClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroImageLeftContentProps): React.JSX.Element;
106
121
 
107
122
  export { HeroImageLeftContent, type HeroImageLeftContentProps };
@@ -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 HeroImageLeftContent({
502
543
  sectionId = "hero-image-left-content",
503
544
  badge,
@@ -522,7 +563,10 @@ function HeroImageLeftContent({
522
563
  actionsClassName,
523
564
  imageContainerClassName,
524
565
  imageClassName,
525
- optixFlowConfig
566
+ optixFlowConfig,
567
+ logo,
568
+ logoSlot,
569
+ logoClassName
526
570
  }) {
527
571
  return /* @__PURE__ */ jsx(
528
572
  Section,
@@ -559,6 +603,7 @@ function HeroImageLeftContent({
559
603
  badge,
560
604
  badgeIcon
561
605
  ] }),
606
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
562
607
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
563
608
  "h1",
564
609
  {
@@ -692,6 +692,47 @@ function ActionComponent({ action }) {
692
692
  }
693
693
  );
694
694
  }
695
+ var SIZE_CLASSES = {
696
+ sm: "max-h-6 sm:max-h-7",
697
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
698
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
699
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
700
+ };
701
+ var BrandLogo = ({
702
+ logo,
703
+ logoSlot,
704
+ logoClassName,
705
+ size = "md",
706
+ optixFlowConfig
707
+ }) => {
708
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
709
+ if (!logo || !logo.src) return null;
710
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
711
+ img.Img,
712
+ {
713
+ src: logo.src,
714
+ className: cn(
715
+ "w-auto object-contain",
716
+ SIZE_CLASSES[size],
717
+ logo.className
718
+ ),
719
+ alt: logo.alt || "Logo",
720
+ optixFlowConfig,
721
+ loading: "eager"
722
+ }
723
+ );
724
+ if (logo.url) {
725
+ return /* @__PURE__ */ jsxRuntime.jsx(
726
+ pressable.Pressable,
727
+ {
728
+ href: logo.url,
729
+ className: cn("flex items-center", logoClassName),
730
+ children: imgElement
731
+ }
732
+ );
733
+ }
734
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
735
+ };
695
736
  var DEFAULT_STYLE_RULES = {
696
737
  formContainer: "",
697
738
  fieldsContainer: "",
@@ -762,7 +803,10 @@ function HeroImageSlider({
762
803
  formHeadingClassName,
763
804
  privacyNotice,
764
805
  privacyNoticeClassName,
765
- gridClassName
806
+ gridClassName,
807
+ logo,
808
+ logoSlot,
809
+ logoClassName
766
810
  }) {
767
811
  const renderContent = React3.useMemo(() => {
768
812
  if (contentSlot) return contentSlot;
@@ -784,6 +828,7 @@ function HeroImageSlider({
784
828
  children: eyebrow
785
829
  }
786
830
  ) : eyebrow : null,
831
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
787
832
  heading ? typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
788
833
  "h1",
789
834
  {
@@ -2,11 +2,14 @@ import * as React from 'react';
2
2
  import { ImageSliderImage } from './image-slider.cjs';
3
3
  import { FormEngineProps } from '@page-speed/forms/integration';
4
4
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
5
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
6
7
  import 'react/jsx-runtime';
7
8
  import 'class-variance-authority';
8
9
  import '@page-speed/pressable';
9
10
  import '@opensite/hooks/usePlatformFromUrl';
11
+ import './dynamic-icon.cjs';
12
+ import '@page-speed/icon';
10
13
 
11
14
  interface HeroImageSliderProps {
12
15
  /**
@@ -157,6 +160,18 @@ interface HeroImageSliderProps {
157
160
  * Additional CSS classes for the grid layout
158
161
  */
159
162
  gridClassName?: string;
163
+ /**
164
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
165
+ */
166
+ logo?: LogoConfig;
167
+ /**
168
+ * Custom slot for logo (overrides logo prop)
169
+ */
170
+ logoSlot?: React.ReactNode;
171
+ /**
172
+ * Additional CSS classes for the logo container
173
+ */
174
+ logoClassName?: string;
160
175
  /** Optional Section ID */
161
176
  sectionId?: string;
162
177
  }
@@ -164,6 +179,6 @@ interface HeroImageSliderProps {
164
179
  * HeroImageSlider - A full-width hero with background image slider,
165
180
  * split layout with content on the left and a form card on the right.
166
181
  */
167
- declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, }: HeroImageSliderProps): React.JSX.Element;
182
+ declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, logo, logoSlot, logoClassName, }: HeroImageSliderProps): React.JSX.Element;
168
183
 
169
184
  export { HeroImageSlider, type HeroImageSliderProps };
@@ -2,11 +2,14 @@ import * as React from 'react';
2
2
  import { ImageSliderImage } from './image-slider.js';
3
3
  import { FormEngineProps } from '@page-speed/forms/integration';
4
4
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
5
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
5
6
  import { A as ActionConfig, O as OptixFlowConfig } from './blocks-DyouPohq.js';
6
7
  import 'react/jsx-runtime';
7
8
  import 'class-variance-authority';
8
9
  import '@page-speed/pressable';
9
10
  import '@opensite/hooks/usePlatformFromUrl';
11
+ import './dynamic-icon.js';
12
+ import '@page-speed/icon';
10
13
 
11
14
  interface HeroImageSliderProps {
12
15
  /**
@@ -157,6 +160,18 @@ interface HeroImageSliderProps {
157
160
  * Additional CSS classes for the grid layout
158
161
  */
159
162
  gridClassName?: string;
163
+ /**
164
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
165
+ */
166
+ logo?: LogoConfig;
167
+ /**
168
+ * Custom slot for logo (overrides logo prop)
169
+ */
170
+ logoSlot?: React.ReactNode;
171
+ /**
172
+ * Additional CSS classes for the logo container
173
+ */
174
+ logoClassName?: string;
160
175
  /** Optional Section ID */
161
176
  sectionId?: string;
162
177
  }
@@ -164,6 +179,6 @@ interface HeroImageSliderProps {
164
179
  * HeroImageSlider - A full-width hero with background image slider,
165
180
  * split layout with content on the left and a form card on the right.
166
181
  */
167
- declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, }: HeroImageSliderProps): React.JSX.Element;
182
+ declare function HeroImageSlider({ sectionId, eyebrow, heading, description, actions, actionsSlot, contentSlot, images, autoplay, autoplayIntervalMs, direction, overlay, overlaySlot, background, containerClassName, spacing, pattern, patternOpacity, className, sliderClassName, contentClassName, eyebrowClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, overlayClassName, optixFlowConfig, formHeading, buttonText, buttonIcon, formEngineSetup, cardClassName, cardContentClassName, formHeadingClassName, privacyNotice, privacyNoticeClassName, gridClassName, logo, logoSlot, logoClassName, }: HeroImageSliderProps): React.JSX.Element;
168
183
 
169
184
  export { HeroImageSlider, type HeroImageSliderProps };
@@ -671,6 +671,47 @@ function ActionComponent({ action }) {
671
671
  }
672
672
  );
673
673
  }
674
+ var SIZE_CLASSES = {
675
+ sm: "max-h-6 sm:max-h-7",
676
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
677
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
678
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
679
+ };
680
+ var BrandLogo = ({
681
+ logo,
682
+ logoSlot,
683
+ logoClassName,
684
+ size = "md",
685
+ optixFlowConfig
686
+ }) => {
687
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
688
+ if (!logo || !logo.src) return null;
689
+ const imgElement = /* @__PURE__ */ jsx(
690
+ Img,
691
+ {
692
+ src: logo.src,
693
+ className: cn(
694
+ "w-auto object-contain",
695
+ SIZE_CLASSES[size],
696
+ logo.className
697
+ ),
698
+ alt: logo.alt || "Logo",
699
+ optixFlowConfig,
700
+ loading: "eager"
701
+ }
702
+ );
703
+ if (logo.url) {
704
+ return /* @__PURE__ */ jsx(
705
+ Pressable,
706
+ {
707
+ href: logo.url,
708
+ className: cn("flex items-center", logoClassName),
709
+ children: imgElement
710
+ }
711
+ );
712
+ }
713
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
714
+ };
674
715
  var DEFAULT_STYLE_RULES = {
675
716
  formContainer: "",
676
717
  fieldsContainer: "",
@@ -741,7 +782,10 @@ function HeroImageSlider({
741
782
  formHeadingClassName,
742
783
  privacyNotice,
743
784
  privacyNoticeClassName,
744
- gridClassName
785
+ gridClassName,
786
+ logo,
787
+ logoSlot,
788
+ logoClassName
745
789
  }) {
746
790
  const renderContent = useMemo(() => {
747
791
  if (contentSlot) return contentSlot;
@@ -763,6 +807,7 @@ function HeroImageSlider({
763
807
  children: eyebrow
764
808
  }
765
809
  ) : eyebrow : null,
810
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
766
811
  heading ? typeof heading === "string" ? /* @__PURE__ */ jsx(
767
812
  "h1",
768
813
  {
@@ -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 HeroInnovationImageGrid({
499
540
  sectionId = "hero-innovation-image-grid",
500
541
  heading,
@@ -514,7 +555,10 @@ function HeroInnovationImageGrid({
514
555
  headingClassName,
515
556
  descriptionClassName,
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;
@@ -584,6 +628,7 @@ function HeroInnovationImageGrid({
584
628
  className: cn("flex flex-col gap-2 md:gap-12", contentClassName),
585
629
  children: [
586
630
  /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
631
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
587
632
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
588
633
  "h1",
589
634
  {
@@ -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';
@@ -78,9 +81,21 @@ interface HeroInnovationImageGridProps {
78
81
  * OptixFlow image optimization configuration
79
82
  */
80
83
  optixFlowConfig?: OptixFlowConfig;
84
+ /**
85
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
86
+ */
87
+ logo?: LogoConfig;
88
+ /**
89
+ * Custom slot for logo (overrides logo prop)
90
+ */
91
+ logoSlot?: React.ReactNode;
92
+ /**
93
+ * Additional CSS classes for the logo container
94
+ */
95
+ logoClassName?: string;
81
96
  /** Optional Section ID */
82
97
  sectionId?: string;
83
98
  }
84
- declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroInnovationImageGridProps): React.JSX.Element;
99
+ declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroInnovationImageGridProps): React.JSX.Element;
85
100
 
86
101
  export { HeroInnovationImageGrid, type HeroInnovationImageGridProps };
@@ -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';
@@ -78,9 +81,21 @@ interface HeroInnovationImageGridProps {
78
81
  * OptixFlow image optimization configuration
79
82
  */
80
83
  optixFlowConfig?: OptixFlowConfig;
84
+ /**
85
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
86
+ */
87
+ logo?: LogoConfig;
88
+ /**
89
+ * Custom slot for logo (overrides logo prop)
90
+ */
91
+ logoSlot?: React.ReactNode;
92
+ /**
93
+ * Additional CSS classes for the logo container
94
+ */
95
+ logoClassName?: string;
81
96
  /** Optional Section ID */
82
97
  sectionId?: string;
83
98
  }
84
- declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, }: HeroInnovationImageGridProps): React.JSX.Element;
99
+ declare function HeroInnovationImageGrid({ sectionId, heading, description, actions, actionsSlot, actionsClassName, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroInnovationImageGridProps): React.JSX.Element;
85
100
 
86
101
  export { HeroInnovationImageGrid, type HeroInnovationImageGridProps };