@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
@@ -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
3
  import { FormFieldConfig, PageSpeedFormConfig } from '@page-speed/forms/integration';
4
+ import { L as LogoConfig } from './types-mWZcgKth.cjs';
4
5
  import { A as ActionConfig, 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';
@@ -125,9 +128,21 @@ interface HeroSaasDashboardPreviewProps {
125
128
  * OptixFlow image optimization configuration
126
129
  */
127
130
  optixFlowConfig?: OptixFlowConfig;
131
+ /**
132
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
133
+ */
134
+ logo?: LogoConfig;
135
+ /**
136
+ * Custom slot for logo (overrides logo prop)
137
+ */
138
+ logoSlot?: React.ReactNode;
139
+ /**
140
+ * Additional CSS classes for the logo container
141
+ */
142
+ logoClassName?: string;
128
143
  /** Optional Section ID */
129
144
  sectionId?: string;
130
145
  }
131
- declare function HeroSaasDashboardPreview({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
146
+ declare function HeroSaasDashboardPreview({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
132
147
 
133
148
  export { HeroSaasDashboardPreview, type HeroSaasDashboardPreviewProps };
@@ -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
3
  import { FormFieldConfig, PageSpeedFormConfig } from '@page-speed/forms/integration';
4
+ import { L as LogoConfig } from './types-hJ2R0GoH.js';
4
5
  import { A as ActionConfig, 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';
@@ -125,9 +128,21 @@ interface HeroSaasDashboardPreviewProps {
125
128
  * OptixFlow image optimization configuration
126
129
  */
127
130
  optixFlowConfig?: OptixFlowConfig;
131
+ /**
132
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
133
+ */
134
+ logo?: LogoConfig;
135
+ /**
136
+ * Custom slot for logo (overrides logo prop)
137
+ */
138
+ logoSlot?: React.ReactNode;
139
+ /**
140
+ * Additional CSS classes for the logo container
141
+ */
142
+ logoClassName?: string;
128
143
  /** Optional Section ID */
129
144
  sectionId?: string;
130
145
  }
131
- declare function HeroSaasDashboardPreview({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
146
+ declare function HeroSaasDashboardPreview({ sectionId, badgeText, badgeIcon, badgeSlot, heading, description, formFields, formConfig, onSubmit, onSuccess, onError, successMessage, buttonAction, helperText, formSlot, browserPreview, browserPreviewSlot, background, containerClassName, spacing, pattern, patternOpacity, className, headerClassName, headingClassName, descriptionClassName, previewClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroSaasDashboardPreviewProps): React.JSX.Element;
132
147
 
133
148
  export { HeroSaasDashboardPreview, type HeroSaasDashboardPreviewProps };
@@ -403,6 +403,47 @@ var Section = React4__default.forwardRef(
403
403
  }
404
404
  );
405
405
  Section.displayName = "Section";
406
+ var SIZE_CLASSES = {
407
+ sm: "max-h-6 sm:max-h-7",
408
+ md: "max-h-8 sm:max-h-9 lg:max-h-10",
409
+ lg: "max-h-10 sm:max-h-12 lg:max-h-14",
410
+ xl: "max-h-12 sm:max-h-14 lg:max-h-16"
411
+ };
412
+ var BrandLogo = ({
413
+ logo,
414
+ logoSlot,
415
+ logoClassName,
416
+ size = "md",
417
+ optixFlowConfig
418
+ }) => {
419
+ if (logoSlot) return /* @__PURE__ */ jsx(Fragment, { children: logoSlot });
420
+ if (!logo || !logo.src) return null;
421
+ const imgElement = /* @__PURE__ */ jsx(
422
+ Img,
423
+ {
424
+ src: logo.src,
425
+ className: cn(
426
+ "w-auto object-contain",
427
+ SIZE_CLASSES[size],
428
+ logo.className
429
+ ),
430
+ alt: logo.alt || "Logo",
431
+ optixFlowConfig,
432
+ loading: "eager"
433
+ }
434
+ );
435
+ if (logo.url) {
436
+ return /* @__PURE__ */ jsx(
437
+ Pressable,
438
+ {
439
+ href: logo.url,
440
+ className: cn("flex items-center", logoClassName),
441
+ children: imgElement
442
+ }
443
+ );
444
+ }
445
+ return /* @__PURE__ */ jsx("div", { className: cn("flex items-center", logoClassName), children: imgElement });
446
+ };
406
447
  var DEFAULT_FORM_FIELDS = [
407
448
  {
408
449
  name: "email",
@@ -441,7 +482,10 @@ function HeroSaasDashboardPreview({
441
482
  headingClassName,
442
483
  descriptionClassName,
443
484
  previewClassName,
444
- optixFlowConfig
485
+ optixFlowConfig,
486
+ logo,
487
+ logoSlot,
488
+ logoClassName
445
489
  }) {
446
490
  const {
447
491
  uploadTokens,
@@ -614,6 +658,7 @@ function HeroSaasDashboardPreview({
614
658
  ),
615
659
  children: [
616
660
  renderBadge,
661
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
617
662
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
618
663
  "h1",
619
664
  {
@@ -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 HeroSharedInboxLayered({
474
515
  sectionId = "hero-shared-inbox-layered",
475
516
  eyebrow,
@@ -492,7 +533,10 @@ function HeroSharedInboxLayered({
492
533
  descriptionClassName,
493
534
  imagesClassName,
494
535
  optixFlowConfig,
495
- patternClassName
536
+ patternClassName,
537
+ logo,
538
+ logoSlot,
539
+ logoClassName
496
540
  }) {
497
541
  const renderLayeredImages = React.useMemo(() => {
498
542
  if (layeredImagesSlot) return layeredImagesSlot;
@@ -563,6 +607,7 @@ function HeroSharedInboxLayered({
563
607
  children: eyebrow
564
608
  }
565
609
  ) : eyebrow),
610
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
566
611
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
567
612
  "h1",
568
613
  {
@@ -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';
@@ -100,9 +103,21 @@ interface HeroSharedInboxLayeredProps {
100
103
  * Additional CSS classes for the actions container
101
104
  */
102
105
  actionsClassName?: string;
106
+ /**
107
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
108
+ */
109
+ logo?: LogoConfig;
110
+ /**
111
+ * Custom slot for logo (overrides logo prop)
112
+ */
113
+ logoSlot?: React.ReactNode;
114
+ /**
115
+ * Additional CSS classes for the logo container
116
+ */
117
+ logoClassName?: string;
103
118
  /** Optional Section ID */
104
119
  sectionId?: string;
105
120
  }
106
- declare function HeroSharedInboxLayered({ sectionId, eyebrow, eyebrowClassName, heading, description, layeredImages, layeredImagesSlot, background, actions, actionsSlot, actionsClassName, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, }: HeroSharedInboxLayeredProps): React.JSX.Element;
121
+ declare function HeroSharedInboxLayered({ sectionId, eyebrow, eyebrowClassName, heading, description, layeredImages, layeredImagesSlot, background, actions, actionsSlot, actionsClassName, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, logo, logoSlot, logoClassName, }: HeroSharedInboxLayeredProps): React.JSX.Element;
107
122
 
108
123
  export { HeroSharedInboxLayered, type HeroSharedInboxLayeredProps };
@@ -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';
@@ -100,9 +103,21 @@ interface HeroSharedInboxLayeredProps {
100
103
  * Additional CSS classes for the actions container
101
104
  */
102
105
  actionsClassName?: string;
106
+ /**
107
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
108
+ */
109
+ logo?: LogoConfig;
110
+ /**
111
+ * Custom slot for logo (overrides logo prop)
112
+ */
113
+ logoSlot?: React.ReactNode;
114
+ /**
115
+ * Additional CSS classes for the logo container
116
+ */
117
+ logoClassName?: string;
103
118
  /** Optional Section ID */
104
119
  sectionId?: string;
105
120
  }
106
- declare function HeroSharedInboxLayered({ sectionId, eyebrow, eyebrowClassName, heading, description, layeredImages, layeredImagesSlot, background, actions, actionsSlot, actionsClassName, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, }: HeroSharedInboxLayeredProps): React.JSX.Element;
121
+ declare function HeroSharedInboxLayered({ sectionId, eyebrow, eyebrowClassName, heading, description, layeredImages, layeredImagesSlot, background, actions, actionsSlot, actionsClassName, containerClassName, spacing, pattern, patternOpacity, className, contentClassName, headingClassName, descriptionClassName, imagesClassName, optixFlowConfig, patternClassName, logo, logoSlot, logoClassName, }: HeroSharedInboxLayeredProps): React.JSX.Element;
107
122
 
108
123
  export { HeroSharedInboxLayered, type HeroSharedInboxLayeredProps };
@@ -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 HeroSharedInboxLayered({
468
509
  sectionId = "hero-shared-inbox-layered",
469
510
  eyebrow,
@@ -486,7 +527,10 @@ function HeroSharedInboxLayered({
486
527
  descriptionClassName,
487
528
  imagesClassName,
488
529
  optixFlowConfig,
489
- patternClassName
530
+ patternClassName,
531
+ logo,
532
+ logoSlot,
533
+ logoClassName
490
534
  }) {
491
535
  const renderLayeredImages = useMemo(() => {
492
536
  if (layeredImagesSlot) return layeredImagesSlot;
@@ -557,6 +601,7 @@ function HeroSharedInboxLayered({
557
601
  children: eyebrow
558
602
  }
559
603
  ) : eyebrow),
604
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
560
605
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
561
606
  "h1",
562
607
  {
@@ -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 HeroSimpleCenteredImage({
474
515
  sectionId = "hero-simple-centered-image",
475
516
  heading,
@@ -490,7 +531,10 @@ function HeroSimpleCenteredImage({
490
531
  actionsClassName,
491
532
  imageWrapperClassName,
492
533
  imageClassName,
493
- optixFlowConfig
534
+ optixFlowConfig,
535
+ logo,
536
+ logoSlot,
537
+ logoClassName
494
538
  }) {
495
539
  React.useMemo(() => {
496
540
  if (actionsSlot) return actionsSlot;
@@ -539,6 +583,7 @@ function HeroSimpleCenteredImage({
539
583
  contentClassName
540
584
  ),
541
585
  children: [
586
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
542
587
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
543
588
  "h1",
544
589
  {
@@ -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 HeroSimpleCenteredImageProps {
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 HeroSimpleCenteredImage({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
104
+ declare function HeroSimpleCenteredImage({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroSimpleCenteredImageProps): React.JSX.Element;
90
105
 
91
106
  export { HeroSimpleCenteredImage, type HeroSimpleCenteredImageProps };
@@ -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 HeroSimpleCenteredImageProps {
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 HeroSimpleCenteredImage({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, }: HeroSimpleCenteredImageProps): React.JSX.Element;
104
+ declare function HeroSimpleCenteredImage({ sectionId, heading, description, actions, actionsSlot, imageSrc, imageAlt, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageWrapperClassName, imageClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroSimpleCenteredImageProps): React.JSX.Element;
90
105
 
91
106
  export { HeroSimpleCenteredImage, type HeroSimpleCenteredImageProps };
@@ -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 HeroSimpleCenteredImage({
468
509
  sectionId = "hero-simple-centered-image",
469
510
  heading,
@@ -484,7 +525,10 @@ function HeroSimpleCenteredImage({
484
525
  actionsClassName,
485
526
  imageWrapperClassName,
486
527
  imageClassName,
487
- optixFlowConfig
528
+ optixFlowConfig,
529
+ logo,
530
+ logoSlot,
531
+ logoClassName
488
532
  }) {
489
533
  useMemo(() => {
490
534
  if (actionsSlot) return actionsSlot;
@@ -533,6 +577,7 @@ function HeroSimpleCenteredImage({
533
577
  contentClassName
534
578
  ),
535
579
  children: [
580
+ (logo || logoSlot) && /* @__PURE__ */ jsx("div", { className: cn("mb-4 flex justify-center", logoClassName), children: /* @__PURE__ */ jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
536
581
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
537
582
  "h1",
538
583
  {
@@ -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 HeroSoftwareGrowthVideoDialog({
562
603
  videoAspectRatio = "horizontal",
563
604
  heading,
@@ -579,7 +620,10 @@ function HeroSoftwareGrowthVideoDialog({
579
620
  headingClassName,
580
621
  descriptionClassName,
581
622
  showcaseClassName,
582
- optixFlowConfig
623
+ optixFlowConfig,
624
+ logo,
625
+ logoSlot,
626
+ logoClassName
583
627
  }) {
584
628
  const [isVideoOpen, setIsVideoOpen] = React.useState(false);
585
629
  const [skinClasses, setSkinClasses] = React.useState(null);
@@ -664,6 +708,7 @@ function HeroSoftwareGrowthVideoDialog({
664
708
  containerClassName,
665
709
  children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-10 md:gap-6", children: [
666
710
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center justify-center gap-8 pt-6 md:pt-0", children: [
711
+ (logo || logoSlot) && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-4", logoClassName), children: /* @__PURE__ */ jsxRuntime.jsx(BrandLogo, { logo, logoSlot, size: "lg" }) }),
667
712
  heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
668
713
  "h1",
669
714
  {
@@ -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, M as MediaItem, 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';
@@ -104,7 +107,19 @@ interface HeroSoftwareGrowthVideoDialogProps {
104
107
  * Video aspect ratio
105
108
  */
106
109
  videoAspectRatio?: "horizontal" | "vertical";
110
+ /**
111
+ * Brand logo configuration. LOGO MEDIA ONLY — do not use photos or hero images.
112
+ */
113
+ logo?: LogoConfig;
114
+ /**
115
+ * Custom slot for logo (overrides logo prop)
116
+ */
117
+ logoSlot?: React.ReactNode;
118
+ /**
119
+ * Additional CSS classes for the logo container
120
+ */
121
+ logoClassName?: string;
107
122
  }
108
- declare function HeroSoftwareGrowthVideoDialog({ videoAspectRatio, heading, description, videoAction, actions, showcaseImages, showcaseImagesSlot, modalVideo, videoDialogTitle, videoDialog, onVideoClick, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, showcaseClassName, optixFlowConfig, }: HeroSoftwareGrowthVideoDialogProps): React.JSX.Element;
123
+ declare function HeroSoftwareGrowthVideoDialog({ videoAspectRatio, heading, description, videoAction, actions, showcaseImages, showcaseImagesSlot, modalVideo, videoDialogTitle, videoDialog, onVideoClick, background, spacing, pattern, patternOpacity, className, containerClassName, headingClassName, descriptionClassName, showcaseClassName, optixFlowConfig, logo, logoSlot, logoClassName, }: HeroSoftwareGrowthVideoDialogProps): React.JSX.Element;
109
124
 
110
125
  export { HeroSoftwareGrowthVideoDialog, type HeroSoftwareGrowthVideoDialogProps };