@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
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
464
464
  }
465
465
  );
466
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
+ };
467
508
  function HeroConversationIntelligence({
468
509
  sectionId = "hero-conversation-intelligence",
469
510
  headingPrimary,
@@ -484,7 +525,10 @@ function HeroConversationIntelligence({
484
525
  descriptionClassName,
485
526
  actionsClassName,
486
527
  imageClassName,
487
- optixFlowConfig
528
+ optixFlowConfig,
529
+ logo,
530
+ logoSlot,
531
+ logoClassName
488
532
  }) {
489
533
  const renderImage = useMemo(() => {
490
534
  if (imageSlot) return imageSlot;
@@ -531,6 +575,7 @@ function HeroConversationIntelligence({
531
575
  contentClassName
532
576
  ),
533
577
  children: [
578
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
534
579
  /* @__PURE__ */ jsx(
535
580
  "h1",
536
581
  {
@@ -558,6 +558,47 @@ function ActionComponent({ action }) {
558
558
  }
559
559
  );
560
560
  }
561
+ var SIZE_CLASSES = {
562
+ sm: "max-h-6 sm:max-h-7",
563
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
564
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
565
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
566
+ };
567
+ var BrandLogo = ({
568
+ logo,
569
+ logoSlot,
570
+ logoClassName,
571
+ size = "md",
572
+ optixFlowConfig
573
+ }) => {
574
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
575
+ if (!logo || !logo.src) return null;
576
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
577
+ img.Img,
578
+ {
579
+ src: logo.src,
580
+ className: cn(
581
+ "w-auto object-contain",
582
+ SIZE_CLASSES[size],
583
+ logo.className
584
+ ),
585
+ alt: logo.alt || "Logo",
586
+ optixFlowConfig,
587
+ loading: "eager"
588
+ }
589
+ );
590
+ if (logo.url) {
591
+ return /* @__PURE__ */ jsxRuntime.jsx(
592
+ pressable.Pressable,
593
+ {
594
+ href: logo.url,
595
+ className: cn("flex items-center", logoClassName),
596
+ children: imgElement
597
+ }
598
+ );
599
+ }
600
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
601
+ };
561
602
  function HeroCreativeStudioStacked({
562
603
  videoAspectRatio = "horizontal",
563
604
  tagline,
@@ -584,7 +625,10 @@ function HeroCreativeStudioStacked({
584
625
  descriptionClassName,
585
626
  actionsClassName,
586
627
  imagesClassName,
587
- optixFlowConfig
628
+ optixFlowConfig,
629
+ logo,
630
+ logoSlot,
631
+ logoClassName
588
632
  }) {
589
633
  const [isVideoOpen, setIsVideoOpen] = React.useState(false);
590
634
  const [skinClasses, setSkinClasses] = React.useState(null);
@@ -708,6 +752,7 @@ function HeroCreativeStudioStacked({
708
752
  }
709
753
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
710
754
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex max-w-160 flex-col gap-6", children: [
755
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
711
756
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
712
757
  "h1",
713
758
  {
@@ -1,8 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Cgd-IXlI.cjs';
3
- import { V as VideoDialogConfig } from './hero-video-dialog-gradient-Dc0wRYdW.cjs';
3
+ import { V as VideoDialogConfig } from './hero-video-dialog-gradient-DPnh6Vn-.cjs';
4
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
4
5
  import { A as ActionConfig, M as MediaItem, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.cjs';
5
6
  import 'react/jsx-runtime';
7
+ import './dynamic-icon.cjs';
8
+ import '@page-speed/icon';
6
9
  import 'class-variance-authority';
7
10
  import '@page-speed/pressable';
8
11
  import '@opensite/hooks/usePlatformFromUrl';
@@ -112,7 +115,19 @@ interface HeroCreativeStudioStackedProps {
112
115
  * Additional CSS classes for the pattern overlay
113
116
  */
114
117
  patternClassName?: string;
118
+ /**
119
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
120
+ */
121
+ logo?: LogoConfig;
122
+ /**
123
+ * Custom slot for logo (overrides logo prop)
124
+ */
125
+ logoSlot?: React.ReactNode;
126
+ /**
127
+ * Additional CSS classes for the logo container
128
+ */
129
+ logoClassName?: string;
115
130
  }
116
- declare function HeroCreativeStudioStacked({ videoAspectRatio, tagline, heading, description, videoAction, patternClassName, actions, onVideoClick, modalVideo, videoDialogTitle, videoDialog, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, taglineClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCreativeStudioStackedProps): React.JSX.Element;
131
+ declare function HeroCreativeStudioStacked({ videoAspectRatio, tagline, heading, description, videoAction, patternClassName, actions, onVideoClick, modalVideo, videoDialogTitle, videoDialog, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, taglineClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCreativeStudioStackedProps): React.JSX.Element;
117
132
 
118
133
  export { HeroCreativeStudioStacked, type HeroCreativeStudioStackedProps };
@@ -1,8 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { S as SectionBackground, s as SectionSpacing, t as PatternName } from './community-initiatives-Dud0DKXB.js';
3
- import { V as VideoDialogConfig } from './hero-video-dialog-gradient-Cr96k01H.js';
3
+ import { V as VideoDialogConfig } from './hero-video-dialog-gradient-B6-kFIvZ.js';
4
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
4
5
  import { A as ActionConfig, M as MediaItem, I as ImageItem, O as OptixFlowConfig } from './blocks-DyouPohq.js';
5
6
  import 'react/jsx-runtime';
7
+ import './dynamic-icon.js';
8
+ import '@page-speed/icon';
6
9
  import 'class-variance-authority';
7
10
  import '@page-speed/pressable';
8
11
  import '@opensite/hooks/usePlatformFromUrl';
@@ -112,7 +115,19 @@ interface HeroCreativeStudioStackedProps {
112
115
  * Additional CSS classes for the pattern overlay
113
116
  */
114
117
  patternClassName?: string;
118
+ /**
119
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
120
+ */
121
+ logo?: LogoConfig;
122
+ /**
123
+ * Custom slot for logo (overrides logo prop)
124
+ */
125
+ logoSlot?: React.ReactNode;
126
+ /**
127
+ * Additional CSS classes for the logo container
128
+ */
129
+ logoClassName?: string;
115
130
  }
116
- declare function HeroCreativeStudioStacked({ videoAspectRatio, tagline, heading, description, videoAction, patternClassName, actions, onVideoClick, modalVideo, videoDialogTitle, videoDialog, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, taglineClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, }: HeroCreativeStudioStackedProps): React.JSX.Element;
131
+ declare function HeroCreativeStudioStacked({ videoAspectRatio, tagline, heading, description, videoAction, patternClassName, actions, onVideoClick, modalVideo, videoDialogTitle, videoDialog, images, imagesSlot, background, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, taglineClassName, headingClassName, descriptionClassName, actionsClassName, imagesClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCreativeStudioStackedProps): React.JSX.Element;
117
132
 
118
133
  export { HeroCreativeStudioStacked, type HeroCreativeStudioStackedProps };
@@ -535,6 +535,47 @@ function ActionComponent({ action }) {
535
535
  }
536
536
  );
537
537
  }
538
+ var SIZE_CLASSES = {
539
+ sm: "max-h-6 sm:max-h-7",
540
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
541
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
542
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
543
+ };
544
+ var BrandLogo = ({
545
+ logo,
546
+ logoSlot,
547
+ logoClassName,
548
+ size = "md",
549
+ optixFlowConfig
550
+ }) => {
551
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
552
+ if (!logo || !logo.src) return null;
553
+ const imgElement = /* @__PURE__ */ jsx(
554
+ Img,
555
+ {
556
+ src: logo.src,
557
+ className: cn(
558
+ "w-auto object-contain",
559
+ SIZE_CLASSES[size],
560
+ logo.className
561
+ ),
562
+ alt: logo.alt || "Logo",
563
+ optixFlowConfig,
564
+ loading: "eager"
565
+ }
566
+ );
567
+ if (logo.url) {
568
+ return /* @__PURE__ */ jsx(
569
+ Pressable,
570
+ {
571
+ href: logo.url,
572
+ className: cn("flex items-center", logoClassName),
573
+ children: imgElement
574
+ }
575
+ );
576
+ }
577
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
578
+ };
538
579
  function HeroCreativeStudioStacked({
539
580
  videoAspectRatio = "horizontal",
540
581
  tagline,
@@ -561,7 +602,10 @@ function HeroCreativeStudioStacked({
561
602
  descriptionClassName,
562
603
  actionsClassName,
563
604
  imagesClassName,
564
- optixFlowConfig
605
+ optixFlowConfig,
606
+ logo,
607
+ logoSlot,
608
+ logoClassName
565
609
  }) {
566
610
  const [isVideoOpen, setIsVideoOpen] = useState(false);
567
611
  const [skinClasses, setSkinClasses] = useState(null);
@@ -685,6 +729,7 @@ function HeroCreativeStudioStacked({
685
729
  }
686
730
  ) : /* @__PURE__ */ jsx("div", { className: taglineClassName, children: tagline })),
687
731
  /* @__PURE__ */ jsxs("div", { className: "flex max-w-160 flex-col gap-6", children: [
732
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
688
733
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
689
734
  "h1",
690
735
  {
@@ -470,6 +470,47 @@ function ActionComponent({ action }) {
470
470
  }
471
471
  );
472
472
  }
473
+ var SIZE_CLASSES = {
474
+ sm: "max-h-6 sm:max-h-7",
475
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
476
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
477
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
478
+ };
479
+ var BrandLogo = ({
480
+ logo,
481
+ logoSlot,
482
+ logoClassName,
483
+ size = "md",
484
+ optixFlowConfig
485
+ }) => {
486
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
487
+ if (!logo || !logo.src) return null;
488
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
489
+ img.Img,
490
+ {
491
+ src: logo.src,
492
+ className: cn(
493
+ "w-auto object-contain",
494
+ SIZE_CLASSES[size],
495
+ logo.className
496
+ ),
497
+ alt: logo.alt || "Logo",
498
+ optixFlowConfig,
499
+ loading: "eager"
500
+ }
501
+ );
502
+ if (logo.url) {
503
+ return /* @__PURE__ */ jsxRuntime.jsx(
504
+ pressable.Pressable,
505
+ {
506
+ href: logo.url,
507
+ className: cn("flex items-center", logoClassName),
508
+ children: imgElement
509
+ }
510
+ );
511
+ }
512
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
513
+ };
473
514
  function HeroCrmStreamlined({
474
515
  sectionId = "hero-crm-streamlined",
475
516
  tagline,
@@ -491,7 +532,10 @@ function HeroCrmStreamlined({
491
532
  headingClassName,
492
533
  descriptionClassName,
493
534
  imageClassName,
494
- optixFlowConfig
535
+ optixFlowConfig,
536
+ logo,
537
+ logoSlot,
538
+ logoClassName
495
539
  }) {
496
540
  return /* @__PURE__ */ jsxRuntime.jsx(
497
541
  Section,
@@ -512,6 +556,7 @@ function HeroCrmStreamlined({
512
556
  children: tagline
513
557
  }
514
558
  ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: taglineClassName, children: tagline })),
559
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
515
560
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
516
561
  "h1",
517
562
  {
@@ -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';
@@ -87,9 +90,21 @@ interface HeroCrmStreamlinedProps {
87
90
  * OptixFlow image optimization configuration
88
91
  */
89
92
  optixFlowConfig?: OptixFlowConfig;
93
+ /**
94
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
95
+ */
96
+ logo?: LogoConfig;
97
+ /**
98
+ * Custom slot for logo (overrides logo prop)
99
+ */
100
+ logoSlot?: React.ReactNode;
101
+ /**
102
+ * Additional CSS classes for the logo container
103
+ */
104
+ logoClassName?: string;
90
105
  /** Optional Section ID */
91
106
  sectionId?: string;
92
107
  }
93
- declare function HeroCrmStreamlined({ sectionId, tagline, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroCrmStreamlinedProps): React.JSX.Element;
108
+ declare function HeroCrmStreamlined({ sectionId, tagline, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCrmStreamlinedProps): React.JSX.Element;
94
109
 
95
110
  export { HeroCrmStreamlined, type HeroCrmStreamlinedProps };
@@ -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';
@@ -87,9 +90,21 @@ interface HeroCrmStreamlinedProps {
87
90
  * OptixFlow image optimization configuration
88
91
  */
89
92
  optixFlowConfig?: OptixFlowConfig;
93
+ /**
94
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
95
+ */
96
+ logo?: LogoConfig;
97
+ /**
98
+ * Custom slot for logo (overrides logo prop)
99
+ */
100
+ logoSlot?: React.ReactNode;
101
+ /**
102
+ * Additional CSS classes for the logo container
103
+ */
104
+ logoClassName?: string;
90
105
  /** Optional Section ID */
91
106
  sectionId?: string;
92
107
  }
93
- declare function HeroCrmStreamlined({ sectionId, tagline, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, }: HeroCrmStreamlinedProps): React.JSX.Element;
108
+ declare function HeroCrmStreamlined({ sectionId, tagline, heading, description, actions, actionsSlot, actionsClassName, image, imageSlot, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroCrmStreamlinedProps): React.JSX.Element;
94
109
 
95
110
  export { HeroCrmStreamlined, type HeroCrmStreamlinedProps };
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
464
464
  }
465
465
  );
466
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
+ };
467
508
  function HeroCrmStreamlined({
468
509
  sectionId = "hero-crm-streamlined",
469
510
  tagline,
@@ -485,7 +526,10 @@ function HeroCrmStreamlined({
485
526
  headingClassName,
486
527
  descriptionClassName,
487
528
  imageClassName,
488
- optixFlowConfig
529
+ optixFlowConfig,
530
+ logo,
531
+ logoSlot,
532
+ logoClassName
489
533
  }) {
490
534
  return /* @__PURE__ */ jsx(
491
535
  Section,
@@ -506,6 +550,7 @@ function HeroCrmStreamlined({
506
550
  children: tagline
507
551
  }
508
552
  ) : /* @__PURE__ */ jsx("div", { className: taglineClassName, children: tagline })),
553
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
509
554
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
510
555
  "h1",
511
556
  {
@@ -470,6 +470,47 @@ function ActionComponent({ action }) {
470
470
  }
471
471
  );
472
472
  }
473
+ var SIZE_CLASSES = {
474
+ sm: "max-h-6 sm:max-h-7",
475
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
476
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
477
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
478
+ };
479
+ var BrandLogo = ({
480
+ logo,
481
+ logoSlot,
482
+ logoClassName,
483
+ size = "md",
484
+ optixFlowConfig
485
+ }) => {
486
+ if (logoSlot) return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, { children: logoSlot });
487
+ if (!logo || !logo.src) return null;
488
+ const imgElement = /* @__PURE__ */ jsxRuntime.jsx(
489
+ img.Img,
490
+ {
491
+ src: logo.src,
492
+ className: cn(
493
+ "w-auto object-contain",
494
+ SIZE_CLASSES[size],
495
+ logo.className
496
+ ),
497
+ alt: logo.alt || "Logo",
498
+ optixFlowConfig,
499
+ loading: "eager"
500
+ }
501
+ );
502
+ if (logo.url) {
503
+ return /* @__PURE__ */ jsxRuntime.jsx(
504
+ pressable.Pressable,
505
+ {
506
+ href: logo.url,
507
+ className: cn("flex items-center", logoClassName),
508
+ children: imgElement
509
+ }
510
+ );
511
+ }
512
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
513
+ };
473
514
  function HeroCustomerSupportLayered({
474
515
  sectionId = "hero-customer-support-layered",
475
516
  tagline,
@@ -492,7 +533,10 @@ function HeroCustomerSupportLayered({
492
533
  descriptionClassName,
493
534
  imagesClassName,
494
535
  optixFlowConfig,
495
- patternClassName
536
+ patternClassName,
537
+ logo,
538
+ logoSlot,
539
+ logoClassName
496
540
  }) {
497
541
  const renderImages = React.useMemo(() => {
498
542
  if (imagesSlot) return imagesSlot;
@@ -566,6 +610,7 @@ function HeroCustomerSupportLayered({
566
610
  children: tagline
567
611
  }
568
612
  ) : tagline),
613
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
569
614
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
570
615
  "h1",
571
616
  {
@@ -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 { I as ImageItem, O as OptixFlowConfig, 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';
@@ -91,9 +94,21 @@ interface HeroCustomerSupportLayeredProps {
91
94
  * Additional CSS classes for the actions container
92
95
  */
93
96
  actionsClassName?: string;
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 HeroCustomerSupportLayered({ sectionId, tagline, heading, description, images, imagesSlot, background, pattern, patternOpacity, className, actions, actionsSlot, actionsClassName, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, }: HeroCustomerSupportLayeredProps): React.JSX.Element;
112
+ declare function HeroCustomerSupportLayered({ sectionId, tagline, heading, description, images, imagesSlot, background, pattern, patternOpacity, className, actions, actionsSlot, actionsClassName, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, logo, logoSlot, logoClassName, }: HeroCustomerSupportLayeredProps): React.JSX.Element;
98
113
 
99
114
  export { HeroCustomerSupportLayered, type HeroCustomerSupportLayeredProps };
@@ -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 { I as ImageItem, O as OptixFlowConfig, 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';
@@ -91,9 +94,21 @@ interface HeroCustomerSupportLayeredProps {
91
94
  * Additional CSS classes for the actions container
92
95
  */
93
96
  actionsClassName?: string;
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 HeroCustomerSupportLayered({ sectionId, tagline, heading, description, images, imagesSlot, background, pattern, patternOpacity, className, actions, actionsSlot, actionsClassName, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, }: HeroCustomerSupportLayeredProps): React.JSX.Element;
112
+ declare function HeroCustomerSupportLayered({ sectionId, tagline, heading, description, images, imagesSlot, background, pattern, patternOpacity, className, actions, actionsSlot, actionsClassName, containerClassName, spacing, contentClassName, taglineClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, logo, logoSlot, logoClassName, }: HeroCustomerSupportLayeredProps): React.JSX.Element;
98
113
 
99
114
  export { HeroCustomerSupportLayered, type HeroCustomerSupportLayeredProps };
@@ -464,6 +464,47 @@ function ActionComponent({ action }) {
464
464
  }
465
465
  );
466
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
+ };
467
508
  function HeroCustomerSupportLayered({
468
509
  sectionId = "hero-customer-support-layered",
469
510
  tagline,
@@ -486,7 +527,10 @@ function HeroCustomerSupportLayered({
486
527
  descriptionClassName,
487
528
  imagesClassName,
488
529
  optixFlowConfig,
489
- patternClassName
530
+ patternClassName,
531
+ logo,
532
+ logoSlot,
533
+ logoClassName
490
534
  }) {
491
535
  const renderImages = useMemo(() => {
492
536
  if (imagesSlot) return imagesSlot;
@@ -560,6 +604,7 @@ function HeroCustomerSupportLayered({
560
604
  children: tagline
561
605
  }
562
606
  ) : tagline),
607
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
563
608
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
564
609
  "h1",
565
610
  {