@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
@@ -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 HeroBadgeImageSplit({
508
549
  sectionId = "hero-badge-image-split",
509
550
  badge,
@@ -526,7 +567,10 @@ function HeroBadgeImageSplit({
526
567
  descriptionClassName,
527
568
  actionsClassName,
528
569
  imageClassName,
529
- optixFlowConfig
570
+ optixFlowConfig,
571
+ logo,
572
+ logoSlot,
573
+ logoClassName
530
574
  }) {
531
575
  return /* @__PURE__ */ jsxRuntime.jsx(
532
576
  Section,
@@ -551,6 +595,7 @@ function HeroBadgeImageSplit({
551
595
  badge,
552
596
  badgeIcon
553
597
  ] }),
598
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
554
599
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
555
600
  "h1",
556
601
  {
@@ -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';
@@ -91,9 +94,21 @@ interface HeroBadgeImageSplitProps {
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 HeroBadgeImageSplit({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroBadgeImageSplitProps): React.JSX.Element;
112
+ declare function HeroBadgeImageSplit({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroBadgeImageSplitProps): React.JSX.Element;
98
113
 
99
114
  export { HeroBadgeImageSplit, type HeroBadgeImageSplitProps };
@@ -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';
@@ -91,9 +94,21 @@ interface HeroBadgeImageSplitProps {
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 HeroBadgeImageSplit({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, }: HeroBadgeImageSplitProps): React.JSX.Element;
112
+ declare function HeroBadgeImageSplit({ sectionId, badge, badgeIcon, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroBadgeImageSplitProps): React.JSX.Element;
98
113
 
99
114
  export { HeroBadgeImageSplit, type HeroBadgeImageSplitProps };
@@ -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 HeroBadgeImageSplit({
502
543
  sectionId = "hero-badge-image-split",
503
544
  badge,
@@ -520,7 +561,10 @@ function HeroBadgeImageSplit({
520
561
  descriptionClassName,
521
562
  actionsClassName,
522
563
  imageClassName,
523
- optixFlowConfig
564
+ optixFlowConfig,
565
+ logo,
566
+ logoSlot,
567
+ logoClassName
524
568
  }) {
525
569
  return /* @__PURE__ */ jsx(
526
570
  Section,
@@ -545,6 +589,7 @@ function HeroBadgeImageSplit({
545
589
  badge,
546
590
  badgeIcon
547
591
  ] }),
592
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
548
593
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
549
594
  "h1",
550
595
  {
@@ -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 HeroBadgeShadowOverlay({
538
579
  sectionId = "hero-badge-shadow-overlay",
539
580
  announcementBadge,
@@ -554,7 +595,10 @@ function HeroBadgeShadowOverlay({
554
595
  containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
555
596
  announcementClassName,
556
597
  headingClassName,
557
- actionsClassName
598
+ actionsClassName,
599
+ logo,
600
+ logoSlot,
601
+ logoClassName
558
602
  }) {
559
603
  return /* @__PURE__ */ jsxRuntime.jsxs(
560
604
  Section,
@@ -583,6 +627,7 @@ function HeroBadgeShadowOverlay({
583
627
  ]
584
628
  }
585
629
  ),
630
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
586
631
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
587
632
  "h1",
588
633
  {
@@ -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';
@@ -83,9 +86,21 @@ interface HeroBadgeShadowOverlayProps {
83
86
  * OptixFlow image optimization configuration
84
87
  */
85
88
  optixFlowConfig?: OptixFlowConfig;
89
+ /**
90
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
91
+ */
92
+ logo?: LogoConfig;
93
+ /**
94
+ * Custom slot for logo (overrides logo prop)
95
+ */
96
+ logoSlot?: React.ReactNode;
97
+ /**
98
+ * Additional CSS classes for the logo container
99
+ */
100
+ logoClassName?: string;
86
101
  /** Optional Section ID */
87
102
  sectionId?: string;
88
103
  }
89
- declare function HeroBadgeShadowOverlay({ sectionId, announcementBadge, announcementText, announcementHref, description, descriptionClassName, heading, actions, actionsSlot, backgroundImageUrl, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, actionsClassName, }: HeroBadgeShadowOverlayProps): React.JSX.Element;
104
+ declare function HeroBadgeShadowOverlay({ sectionId, announcementBadge, announcementText, announcementHref, description, descriptionClassName, heading, actions, actionsSlot, backgroundImageUrl, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, actionsClassName, logo, logoSlot, logoClassName, }: HeroBadgeShadowOverlayProps): React.JSX.Element;
90
105
 
91
106
  export { HeroBadgeShadowOverlay, type HeroBadgeShadowOverlayProps };
@@ -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';
@@ -83,9 +86,21 @@ interface HeroBadgeShadowOverlayProps {
83
86
  * OptixFlow image optimization configuration
84
87
  */
85
88
  optixFlowConfig?: OptixFlowConfig;
89
+ /**
90
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
91
+ */
92
+ logo?: LogoConfig;
93
+ /**
94
+ * Custom slot for logo (overrides logo prop)
95
+ */
96
+ logoSlot?: React.ReactNode;
97
+ /**
98
+ * Additional CSS classes for the logo container
99
+ */
100
+ logoClassName?: string;
86
101
  /** Optional Section ID */
87
102
  sectionId?: string;
88
103
  }
89
- declare function HeroBadgeShadowOverlay({ sectionId, announcementBadge, announcementText, announcementHref, description, descriptionClassName, heading, actions, actionsSlot, backgroundImageUrl, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, actionsClassName, }: HeroBadgeShadowOverlayProps): React.JSX.Element;
104
+ declare function HeroBadgeShadowOverlay({ sectionId, announcementBadge, announcementText, announcementHref, description, descriptionClassName, heading, actions, actionsSlot, backgroundImageUrl, optixFlowConfig, background, spacing, pattern, patternOpacity, className, containerClassName, announcementClassName, headingClassName, actionsClassName, logo, logoSlot, logoClassName, }: HeroBadgeShadowOverlayProps): React.JSX.Element;
90
105
 
91
106
  export { HeroBadgeShadowOverlay, type HeroBadgeShadowOverlayProps };
@@ -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 HeroBadgeShadowOverlay({
517
558
  sectionId = "hero-badge-shadow-overlay",
518
559
  announcementBadge,
@@ -533,7 +574,10 @@ function HeroBadgeShadowOverlay({
533
574
  containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
534
575
  announcementClassName,
535
576
  headingClassName,
536
- actionsClassName
577
+ actionsClassName,
578
+ logo,
579
+ logoSlot,
580
+ logoClassName
537
581
  }) {
538
582
  return /* @__PURE__ */ jsxs(
539
583
  Section,
@@ -562,6 +606,7 @@ function HeroBadgeShadowOverlay({
562
606
  ]
563
607
  }
564
608
  ),
609
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "xl" }) }),
565
610
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
566
611
  "h1",
567
612
  {
@@ -505,6 +505,47 @@ function ActionComponent({ action }) {
505
505
  }
506
506
  );
507
507
  }
508
+ var SIZE_CLASSES = {
509
+ sm: "max-h-6 sm:max-h-7",
510
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
511
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
512
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
513
+ };
514
+ var BrandLogo = ({
515
+ logo,
516
+ logoSlot,
517
+ logoClassName,
518
+ size = "md",
519
+ optixFlowConfig
520
+ }) => {
521
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
522
+ if (!logo || !logo.src) return null;
523
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
524
+ img.Img,
525
+ {
526
+ src: logo.src,
527
+ className: cn(
528
+ "w-auto object-contain",
529
+ SIZE_CLASSES[size],
530
+ logo.className
531
+ ),
532
+ alt: logo.alt || "Logo",
533
+ optixFlowConfig,
534
+ loading: "eager"
535
+ }
536
+ );
537
+ if (logo.url) {
538
+ return /* @__PURE__ */ jsxRuntime.jsx(
539
+ pressable.Pressable,
540
+ {
541
+ href: logo.url,
542
+ className: cn("flex items-center", logoClassName),
543
+ children: imgElement
544
+ }
545
+ );
546
+ }
547
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
548
+ };
508
549
  var fadeVariants = {
509
550
  initial: { opacity: 0 },
510
551
  animate: {
@@ -539,7 +580,10 @@ function HeroBusinessCarouselDots({
539
580
  descriptionClassName,
540
581
  actionsClassName,
541
582
  carouselClassName,
542
- optixFlowConfig
583
+ optixFlowConfig,
584
+ logo,
585
+ logoSlot,
586
+ logoClassName
543
587
  }) {
544
588
  const [currentIndex, setCurrentIndex] = React.useState(0);
545
589
  const timerRef = React.useRef(null);
@@ -578,6 +622,7 @@ function HeroBusinessCarouselDots({
578
622
  ),
579
623
  children: [
580
624
  badge && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: badgeVariant, className: badgeClassName, children: badge }),
625
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
581
626
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
582
627
  "h1",
583
628
  {
@@ -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';
@@ -95,9 +98,21 @@ interface HeroBusinessCarouselDotsProps {
95
98
  * Additional CSS classes for the pattern overlay
96
99
  */
97
100
  patternClassName?: string;
101
+ /**
102
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
103
+ */
104
+ logo?: LogoConfig;
105
+ /**
106
+ * Custom slot for logo (overrides logo prop)
107
+ */
108
+ logoSlot?: React.ReactNode;
109
+ /**
110
+ * Additional CSS classes for the logo container
111
+ */
112
+ logoClassName?: string;
98
113
  /** Optional Section ID */
99
114
  sectionId?: string;
100
115
  }
101
- declare function HeroBusinessCarouselDots({ sectionId, badge, badgeVariant, heading, description, actions, actionsSlot, carouselImages, carouselSlot, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, carouselClassName, optixFlowConfig, }: HeroBusinessCarouselDotsProps): React.JSX.Element;
116
+ declare function HeroBusinessCarouselDots({ sectionId, badge, badgeVariant, heading, description, actions, actionsSlot, carouselImages, carouselSlot, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, carouselClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroBusinessCarouselDotsProps): React.JSX.Element;
102
117
 
103
118
  export { HeroBusinessCarouselDots, type HeroBusinessCarouselDotsProps };
@@ -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';
@@ -95,9 +98,21 @@ interface HeroBusinessCarouselDotsProps {
95
98
  * Additional CSS classes for the pattern overlay
96
99
  */
97
100
  patternClassName?: string;
101
+ /**
102
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
103
+ */
104
+ logo?: LogoConfig;
105
+ /**
106
+ * Custom slot for logo (overrides logo prop)
107
+ */
108
+ logoSlot?: React.ReactNode;
109
+ /**
110
+ * Additional CSS classes for the logo container
111
+ */
112
+ logoClassName?: string;
98
113
  /** Optional Section ID */
99
114
  sectionId?: string;
100
115
  }
101
- declare function HeroBusinessCarouselDots({ sectionId, badge, badgeVariant, heading, description, actions, actionsSlot, carouselImages, carouselSlot, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, carouselClassName, optixFlowConfig, }: HeroBusinessCarouselDotsProps): React.JSX.Element;
116
+ declare function HeroBusinessCarouselDots({ sectionId, badge, badgeVariant, heading, description, actions, actionsSlot, carouselImages, carouselSlot, background, spacing, pattern, patternOpacity, patternClassName, className, containerClassName, contentClassName, badgeClassName, headingClassName, descriptionClassName, actionsClassName, carouselClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroBusinessCarouselDotsProps): React.JSX.Element;
102
117
 
103
118
  export { HeroBusinessCarouselDots, type HeroBusinessCarouselDotsProps };
@@ -499,6 +499,47 @@ function ActionComponent({ action }) {
499
499
  }
500
500
  );
501
501
  }
502
+ var SIZE_CLASSES = {
503
+ sm: "max-h-6 sm:max-h-7",
504
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
505
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
506
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
507
+ };
508
+ var BrandLogo = ({
509
+ logo,
510
+ logoSlot,
511
+ logoClassName,
512
+ size = "md",
513
+ optixFlowConfig
514
+ }) => {
515
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
516
+ if (!logo || !logo.src) return null;
517
+ const imgElement = /* @__PURE__ */ jsx(
518
+ Img,
519
+ {
520
+ src: logo.src,
521
+ className: cn(
522
+ "w-auto object-contain",
523
+ SIZE_CLASSES[size],
524
+ logo.className
525
+ ),
526
+ alt: logo.alt || "Logo",
527
+ optixFlowConfig,
528
+ loading: "eager"
529
+ }
530
+ );
531
+ if (logo.url) {
532
+ return /* @__PURE__ */ jsx(
533
+ Pressable,
534
+ {
535
+ href: logo.url,
536
+ className: cn("flex items-center", logoClassName),
537
+ children: imgElement
538
+ }
539
+ );
540
+ }
541
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
542
+ };
502
543
  var fadeVariants = {
503
544
  initial: { opacity: 0 },
504
545
  animate: {
@@ -533,7 +574,10 @@ function HeroBusinessCarouselDots({
533
574
  descriptionClassName,
534
575
  actionsClassName,
535
576
  carouselClassName,
536
- optixFlowConfig
577
+ optixFlowConfig,
578
+ logo,
579
+ logoSlot,
580
+ logoClassName
537
581
  }) {
538
582
  const [currentIndex, setCurrentIndex] = useState(0);
539
583
  const timerRef = useRef(null);
@@ -572,6 +616,7 @@ function HeroBusinessCarouselDots({
572
616
  ),
573
617
  children: [
574
618
  badge && /* @__PURE__ */ jsx(Badge, { variant: badgeVariant, className: badgeClassName, children: badge }),
619
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
575
620
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
576
621
  "h1",
577
622
  {
@@ -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 HeroBusinessOperationsMosaic({
499
540
  sectionId = "hero-business-operations-mosaic",
500
541
  heading,
@@ -514,7 +555,10 @@ function HeroBusinessOperationsMosaic({
514
555
  contentClassName,
515
556
  headingClassName,
516
557
  mosaicClassName,
517
- optixFlowConfig
558
+ optixFlowConfig,
559
+ logo,
560
+ logoSlot,
561
+ logoClassName
518
562
  }) {
519
563
  const renderMosaic = React.useMemo(() => {
520
564
  if (imagesSlot) return imagesSlot;
@@ -578,6 +622,7 @@ function HeroBusinessOperationsMosaic({
578
622
  contentClassName
579
623
  ),
580
624
  children: [
625
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
581
626
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
582
627
  "h1",
583
628
  {