@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
@@ -655,6 +655,47 @@ function ActionComponent({ action }) {
655
655
  }
656
656
  );
657
657
  }
658
+ var SIZE_CLASSES = {
659
+ sm: "max-h-6 sm:max-h-7",
660
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
661
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
662
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
663
+ };
664
+ var BrandLogo = ({
665
+ logo,
666
+ logoSlot,
667
+ logoClassName,
668
+ size = "md",
669
+ optixFlowConfig
670
+ }) => {
671
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
672
+ if (!logo || !logo.src) return null;
673
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
674
+ img.Img,
675
+ {
676
+ src: logo.src,
677
+ className: cn(
678
+ "w-auto object-contain",
679
+ SIZE_CLASSES[size],
680
+ logo.className
681
+ ),
682
+ alt: logo.alt || "Logo",
683
+ optixFlowConfig,
684
+ loading: "eager"
685
+ }
686
+ );
687
+ if (logo.url) {
688
+ return /* @__PURE__ */ jsxRuntime.jsx(
689
+ pressable.Pressable,
690
+ {
691
+ href: logo.url,
692
+ className: cn("flex items-center", logoClassName),
693
+ children: imgElement
694
+ }
695
+ );
696
+ }
697
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
698
+ };
658
699
  function HeroAiPoweredCarousel({
659
700
  sectionId = "hero-ai-powered-carousel",
660
701
  badge,
@@ -677,7 +718,10 @@ function HeroAiPoweredCarousel({
677
718
  headingClassName,
678
719
  descriptionClassName,
679
720
  actionsClassName,
680
- optixFlowConfig
721
+ optixFlowConfig,
722
+ logo,
723
+ logoSlot,
724
+ logoClassName
681
725
  }) {
682
726
  return /* @__PURE__ */ jsxRuntime.jsx(
683
727
  Section,
@@ -711,6 +755,7 @@ function HeroAiPoweredCarousel({
711
755
  ]
712
756
  }
713
757
  ),
758
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
714
759
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
715
760
  "h1",
716
761
  {
@@ -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';
@@ -91,9 +94,21 @@ interface HeroAiPoweredCarouselProps {
91
94
  * OptixFlow image optimization configuration
92
95
  */
93
96
  optixFlowConfig?: OptixFlowConfig;
97
+ /**
98
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
99
+ */
100
+ logo?: LogoConfig;
101
+ /**
102
+ * Custom slot for logo (overrides logo prop)
103
+ */
104
+ logoSlot?: React.ReactNode;
105
+ /**
106
+ * Additional CSS classes for the logo container
107
+ */
108
+ logoClassName?: string;
94
109
  /** Optional Section ID */
95
110
  sectionId?: string;
96
111
  }
97
- declare function HeroAiPoweredCarousel({ sectionId, badge, badgeTagline, heading, description, actions, actionsSlot, carouselImages1, carouselImages2, carouselSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroAiPoweredCarouselProps): React.JSX.Element;
112
+ declare function HeroAiPoweredCarousel({ sectionId, badge, badgeTagline, heading, description, actions, actionsSlot, carouselImages1, carouselImages2, carouselSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroAiPoweredCarouselProps): React.JSX.Element;
98
113
 
99
114
  export { HeroAiPoweredCarousel, type HeroAiPoweredCarouselProps };
@@ -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';
@@ -91,9 +94,21 @@ interface HeroAiPoweredCarouselProps {
91
94
  * OptixFlow image optimization configuration
92
95
  */
93
96
  optixFlowConfig?: OptixFlowConfig;
97
+ /**
98
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
99
+ */
100
+ logo?: LogoConfig;
101
+ /**
102
+ * Custom slot for logo (overrides logo prop)
103
+ */
104
+ logoSlot?: React.ReactNode;
105
+ /**
106
+ * Additional CSS classes for the logo container
107
+ */
108
+ logoClassName?: string;
94
109
  /** Optional Section ID */
95
110
  sectionId?: string;
96
111
  }
97
- declare function HeroAiPoweredCarousel({ sectionId, badge, badgeTagline, heading, description, actions, actionsSlot, carouselImages1, carouselImages2, carouselSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, }: HeroAiPoweredCarouselProps): React.JSX.Element;
112
+ declare function HeroAiPoweredCarousel({ sectionId, badge, badgeTagline, heading, description, actions, actionsSlot, carouselImages1, carouselImages2, carouselSlot, background, spacing, containerClassName, pattern, patternOpacity, className, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroAiPoweredCarouselProps): React.JSX.Element;
98
113
 
99
114
  export { HeroAiPoweredCarousel, type HeroAiPoweredCarouselProps };
@@ -630,6 +630,47 @@ function ActionComponent({ action }) {
630
630
  }
631
631
  );
632
632
  }
633
+ var SIZE_CLASSES = {
634
+ sm: "max-h-6 sm:max-h-7",
635
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
636
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
637
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
638
+ };
639
+ var BrandLogo = ({
640
+ logo,
641
+ logoSlot,
642
+ logoClassName,
643
+ size = "md",
644
+ optixFlowConfig
645
+ }) => {
646
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
647
+ if (!logo || !logo.src) return null;
648
+ const imgElement = /* @__PURE__ */ jsx(
649
+ Img,
650
+ {
651
+ src: logo.src,
652
+ className: cn(
653
+ "w-auto object-contain",
654
+ SIZE_CLASSES[size],
655
+ logo.className
656
+ ),
657
+ alt: logo.alt || "Logo",
658
+ optixFlowConfig,
659
+ loading: "eager"
660
+ }
661
+ );
662
+ if (logo.url) {
663
+ return /* @__PURE__ */ jsx(
664
+ Pressable,
665
+ {
666
+ href: logo.url,
667
+ className: cn("flex items-center", logoClassName),
668
+ children: imgElement
669
+ }
670
+ );
671
+ }
672
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
673
+ };
633
674
  function HeroAiPoweredCarousel({
634
675
  sectionId = "hero-ai-powered-carousel",
635
676
  badge,
@@ -652,7 +693,10 @@ function HeroAiPoweredCarousel({
652
693
  headingClassName,
653
694
  descriptionClassName,
654
695
  actionsClassName,
655
- optixFlowConfig
696
+ optixFlowConfig,
697
+ logo,
698
+ logoSlot,
699
+ logoClassName
656
700
  }) {
657
701
  return /* @__PURE__ */ jsx(
658
702
  Section,
@@ -686,6 +730,7 @@ function HeroAiPoweredCarousel({
686
730
  ]
687
731
  }
688
732
  ),
733
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
689
734
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
690
735
  "h1",
691
736
  {
@@ -8,6 +8,7 @@ var classVarianceAuthority = require('class-variance-authority');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var React = require('react');
10
10
  var pressable = require('@page-speed/pressable');
11
+ var img = require('@page-speed/img');
11
12
 
12
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
13
14
 
@@ -503,6 +504,47 @@ function ActionComponent({ action }) {
503
504
  }
504
505
  );
505
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
+ };
506
548
  function HeroAnnouncementBadge({
507
549
  sectionId = "hero-announcement-badge",
508
550
  badge,
@@ -520,7 +562,10 @@ function HeroAnnouncementBadge({
520
562
  spacing = "pt-32 pb-16 md:pt-32 md:pb-32",
521
563
  badgeClassName,
522
564
  headingClassName,
523
- descriptionClassName
565
+ descriptionClassName,
566
+ logo,
567
+ logoSlot,
568
+ logoClassName
524
569
  }) {
525
570
  return /* @__PURE__ */ jsxRuntime.jsx(
526
571
  Section,
@@ -545,6 +590,7 @@ function HeroAnnouncementBadge({
545
590
  ),
546
591
  typeof badge === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: "truncate whitespace-nowrap pr-2", children: badge }) : badge
547
592
  ] }),
593
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
548
594
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
549
595
  "h1",
550
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 } 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';
@@ -71,9 +74,21 @@ interface HeroAnnouncementBadgeProps {
71
74
  * Additional CSS classes for the actions container
72
75
  */
73
76
  actionsClassName?: string;
77
+ /**
78
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
79
+ */
80
+ logo?: LogoConfig;
81
+ /**
82
+ * Custom slot for logo (overrides logo prop)
83
+ */
84
+ logoSlot?: React.ReactNode;
85
+ /**
86
+ * Additional CSS classes for the logo container
87
+ */
88
+ logoClassName?: string;
74
89
  /** Optional Section ID */
75
90
  sectionId?: string;
76
91
  }
77
- declare function HeroAnnouncementBadge({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, actionsClassName, background, pattern, patternOpacity, className, containerClassName, spacing, badgeClassName, headingClassName, descriptionClassName, }: HeroAnnouncementBadgeProps): React.JSX.Element;
92
+ declare function HeroAnnouncementBadge({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, actionsClassName, background, pattern, patternOpacity, className, containerClassName, spacing, badgeClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroAnnouncementBadgeProps): React.JSX.Element;
78
93
 
79
94
  export { HeroAnnouncementBadge, type HeroAnnouncementBadgeProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -71,9 +74,21 @@ interface HeroAnnouncementBadgeProps {
71
74
  * Additional CSS classes for the actions container
72
75
  */
73
76
  actionsClassName?: string;
77
+ /**
78
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
79
+ */
80
+ logo?: LogoConfig;
81
+ /**
82
+ * Custom slot for logo (overrides logo prop)
83
+ */
84
+ logoSlot?: React.ReactNode;
85
+ /**
86
+ * Additional CSS classes for the logo container
87
+ */
88
+ logoClassName?: string;
74
89
  /** Optional Section ID */
75
90
  sectionId?: string;
76
91
  }
77
- declare function HeroAnnouncementBadge({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, actionsClassName, background, pattern, patternOpacity, className, containerClassName, spacing, badgeClassName, headingClassName, descriptionClassName, }: HeroAnnouncementBadgeProps): React.JSX.Element;
92
+ declare function HeroAnnouncementBadge({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, actionsClassName, background, pattern, patternOpacity, className, containerClassName, spacing, badgeClassName, headingClassName, descriptionClassName, logo, logoSlot, logoClassName, }: HeroAnnouncementBadgeProps): React.JSX.Element;
78
93
 
79
94
  export { HeroAnnouncementBadge, type HeroAnnouncementBadgeProps };
@@ -6,6 +6,7 @@ import { cva } from 'class-variance-authority';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import React from 'react';
8
8
  import { Pressable, buttonVariants } from '@page-speed/pressable';
9
+ import { Img } from '@page-speed/img';
9
10
 
10
11
  // lib/utils.ts
11
12
  function cn(...inputs) {
@@ -497,6 +498,47 @@ function ActionComponent({ action }) {
497
498
  }
498
499
  );
499
500
  }
501
+ var SIZE_CLASSES = {
502
+ sm: "max-h-6 sm:max-h-7",
503
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
504
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
505
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
506
+ };
507
+ var BrandLogo = ({
508
+ logo,
509
+ logoSlot,
510
+ logoClassName,
511
+ size = "md",
512
+ optixFlowConfig
513
+ }) => {
514
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
515
+ if (!logo || !logo.src) return null;
516
+ const imgElement = /* @__PURE__ */ jsx(
517
+ Img,
518
+ {
519
+ src: logo.src,
520
+ className: cn(
521
+ "w-auto object-contain",
522
+ SIZE_CLASSES[size],
523
+ logo.className
524
+ ),
525
+ alt: logo.alt || "Logo",
526
+ optixFlowConfig,
527
+ loading: "eager"
528
+ }
529
+ );
530
+ if (logo.url) {
531
+ return /* @__PURE__ */ jsx(
532
+ Pressable,
533
+ {
534
+ href: logo.url,
535
+ className: cn("flex items-center", logoClassName),
536
+ children: imgElement
537
+ }
538
+ );
539
+ }
540
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
541
+ };
500
542
  function HeroAnnouncementBadge({
501
543
  sectionId = "hero-announcement-badge",
502
544
  badge,
@@ -514,7 +556,10 @@ function HeroAnnouncementBadge({
514
556
  spacing = "pt-32 pb-16 md:pt-32 md:pb-32",
515
557
  badgeClassName,
516
558
  headingClassName,
517
- descriptionClassName
559
+ descriptionClassName,
560
+ logo,
561
+ logoSlot,
562
+ logoClassName
518
563
  }) {
519
564
  return /* @__PURE__ */ jsx(
520
565
  Section,
@@ -539,6 +584,7 @@ function HeroAnnouncementBadge({
539
584
  ),
540
585
  typeof badge === "string" ? /* @__PURE__ */ jsx("p", { className: "truncate whitespace-nowrap pr-2", children: badge }) : badge
541
586
  ] }),
587
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
542
588
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
543
589
  "h1",
544
590
  {
@@ -393,6 +393,47 @@ var Section = React__default.default.forwardRef(
393
393
  }
394
394
  );
395
395
  Section.displayName = "Section";
396
+ var SIZE_CLASSES = {
397
+ sm: "max-h-6 sm:max-h-7",
398
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
399
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
400
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
401
+ };
402
+ var BrandLogo = ({
403
+ logo,
404
+ logoSlot,
405
+ logoClassName,
406
+ size = "md",
407
+ optixFlowConfig
408
+ }) => {
409
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
410
+ if (!logo || !logo.src) return null;
411
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
412
+ img.Img,
413
+ {
414
+ src: logo.src,
415
+ className: cn(
416
+ "w-auto object-contain",
417
+ SIZE_CLASSES[size],
418
+ logo.className
419
+ ),
420
+ alt: logo.alt || "Logo",
421
+ optixFlowConfig,
422
+ loading: "eager"
423
+ }
424
+ );
425
+ if (logo.url) {
426
+ return /* @__PURE__ */ jsxRuntime.jsx(
427
+ pressable.Pressable,
428
+ {
429
+ href: logo.url,
430
+ className: cn("flex items-center", logoClassName),
431
+ children: imgElement
432
+ }
433
+ );
434
+ }
435
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
436
+ };
396
437
  function HeroArchitectureFullscreen({
397
438
  sectionId = "hero-architecture-fullscreen",
398
439
  tagline,
@@ -410,7 +451,10 @@ function HeroArchitectureFullscreen({
410
451
  taglineClassName,
411
452
  headingClassName,
412
453
  descriptionClassName,
413
- optixFlowConfig
454
+ optixFlowConfig,
455
+ logo,
456
+ logoSlot,
457
+ logoClassName
414
458
  }) {
415
459
  const renderAction = React.useMemo(() => {
416
460
  if (actionSlot) return actionSlot;
@@ -464,6 +508,7 @@ function HeroArchitectureFullscreen({
464
508
  children: tagline
465
509
  }
466
510
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
511
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
467
512
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
468
513
  react.motion.h1,
469
514
  {
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
3
4
  import { A as ActionConfig } from './blocks-DyouPohq.cjs';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.cjs';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -74,9 +77,21 @@ interface HeroArchitectureFullscreenProps {
74
77
  apiKey: string;
75
78
  compression?: number;
76
79
  };
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroArchitectureFullscreen({ sectionId, tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroArchitectureFullscreenProps): React.JSX.Element;
95
+ declare function HeroArchitectureFullscreen({ sectionId, tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroArchitectureFullscreenProps): React.JSX.Element;
81
96
 
82
97
  export { HeroArchitectureFullscreen, type HeroArchitectureFullscreenProps };
@@ -1,7 +1,10 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
3
4
  import { A as ActionConfig } from './blocks-DyouPohq.js';
4
5
  import 'react/jsx-runtime';
6
+ import './dynamic-icon.js';
7
+ import '@page-speed/icon';
5
8
  import 'class-variance-authority';
6
9
  import '@page-speed/pressable';
7
10
  import '@opensite/hooks/usePlatformFromUrl';
@@ -74,9 +77,21 @@ interface HeroArchitectureFullscreenProps {
74
77
  apiKey: string;
75
78
  compression?: number;
76
79
  };
80
+ /**
81
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
82
+ */
83
+ logo?: LogoConfig;
84
+ /**
85
+ * Custom slot for logo (overrides logo prop)
86
+ */
87
+ logoSlot?: React.ReactNode;
88
+ /**
89
+ * Additional CSS classes for the logo container
90
+ */
91
+ logoClassName?: string;
77
92
  /** Optional Section ID */
78
93
  sectionId?: string;
79
94
  }
80
- declare function HeroArchitectureFullscreen({ sectionId, tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, }: HeroArchitectureFullscreenProps): React.JSX.Element;
95
+ declare function HeroArchitectureFullscreen({ sectionId, tagline, heading, description, action, actionSlot, backgroundImage, background, spacing, pattern, patternOpacity, className, containerClassName, taglineClassName, headingClassName, descriptionClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroArchitectureFullscreenProps): React.JSX.Element;
81
96
 
82
97
  export { HeroArchitectureFullscreen, type HeroArchitectureFullscreenProps };
@@ -387,6 +387,47 @@ var Section = React.forwardRef(
387
387
  }
388
388
  );
389
389
  Section.displayName = "Section";
390
+ var SIZE_CLASSES = {
391
+ sm: "max-h-6 sm:max-h-7",
392
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
393
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
394
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
395
+ };
396
+ var BrandLogo = ({
397
+ logo,
398
+ logoSlot,
399
+ logoClassName,
400
+ size = "md",
401
+ optixFlowConfig
402
+ }) => {
403
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
404
+ if (!logo || !logo.src) return null;
405
+ const imgElement = /* @__PURE__ */ jsx(
406
+ Img,
407
+ {
408
+ src: logo.src,
409
+ className: cn(
410
+ "w-auto object-contain",
411
+ SIZE_CLASSES[size],
412
+ logo.className
413
+ ),
414
+ alt: logo.alt || "Logo",
415
+ optixFlowConfig,
416
+ loading: "eager"
417
+ }
418
+ );
419
+ if (logo.url) {
420
+ return /* @__PURE__ */ jsx(
421
+ Pressable,
422
+ {
423
+ href: logo.url,
424
+ className: cn("flex items-center", logoClassName),
425
+ children: imgElement
426
+ }
427
+ );
428
+ }
429
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
430
+ };
390
431
  function HeroArchitectureFullscreen({
391
432
  sectionId = "hero-architecture-fullscreen",
392
433
  tagline,
@@ -404,7 +445,10 @@ function HeroArchitectureFullscreen({
404
445
  taglineClassName,
405
446
  headingClassName,
406
447
  descriptionClassName,
407
- optixFlowConfig
448
+ optixFlowConfig,
449
+ logo,
450
+ logoSlot,
451
+ logoClassName
408
452
  }) {
409
453
  const renderAction = useMemo(() => {
410
454
  if (actionSlot) return actionSlot;
@@ -458,6 +502,7 @@ function HeroArchitectureFullscreen({
458
502
  children: tagline
459
503
  }
460
504
  ) : /* @__PURE__ */ jsx("div", { className: taglineClassName, children: tagline })),
505
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
461
506
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
462
507
  motion.h1,
463
508
  {